# RemoteRig — Camera Node Hardware Design > **Version:** 0.3.0 | **Status:** v4 CAD prototype ready for measurement/print validation > **Target:** GoPro Hero 3 Black/Silver + ESP32-C3 Super Mini + ESP-01S + USB power bank ## Overview Each camera node is two ESP boards in a small upright stand-mounted case. The case **does not attach to the camera**; it straps to a tripod/lighting stand with reusable cloth zip ties / Velcro straps. Powered by a standard USB power bank. ``` ┌─────────────────┐ │ USB Power Bank │── USB ──→ GoPro (power only) │ (off-the-shelf)│── USB ──→ Camera Node Case └─────────────────┘ │ ┌────────┴────────────────────────────┐ │ Camera Node Case v4 │ ← Velcro/cloth straps to stand │ ┌──────────────────────────────┐ │ │ │ Flush/recessed service lid │ │ │ │ 1.3 OLED: CAM/REC/BAT/LINK │ │ │ │ PWR LED + RGB STAT LED │ │ │ │ Small rocker power switch │ │ │ └──────────────────────────────┘ │ │ ESP-01S camera bridge ↔ ESP32-C3 │ └─────────────────────────────────────┘ ``` ## Bill of Materials | Item | Qty | Cost | Notes | |------|-----|------|-------| | ESP32-C3 Super Mini | 1 | ~$4–$6 | MQTT / hub-side bridge; known board envelope 22.5 × 18 mm | | ESP-01S / ESP8266 module | 1 | ~$2–$3 | Camera-side GoPro Wi-Fi bridge; known envelope ~24.7 × 14.3 × 12 mm | | 1.3-inch OLED/status screen | 1 | ~$4–$8 | Prototype CAD assumes ~31 × 16 mm visible window / ~37 × 22 mm panel recess; confirm exact module | | 3 mm power LED | 1 | <$1 | Separate always-power/5V indicator | | 3 mm RGB status LED | 1 | <$1 | Replaces separate red/green status LEDs; firmware can map node states to color | | Small rocker switch | 1 | ~$1–$3 | On/off switch; prototype CAD assumes 13 × 19 mm snap-in opening | | USB power bank (5000 mAh+) | 1 | ~$10 | Powers camera node and GoPro | | Short USB cables / wiring | as needed | ~$2–$5 | Power bank → node + GoPro; internal power/signal wiring | | M2 or small self-tapping screws | 4 | <$1 | Front service lid screws; pilot holes are parametric | | PETG filament | ~35–50 g | ~$1 | 3D printed case body + lid | | Reusable cloth zip ties / Velcro straps | 2 | ~$1 | Primary stand mount through rear strap channels | **Total per node:** roughly ~$25–$35 plus GoPro and power bank, depending on display/switch choice. ## 3D Printed Case **Current source:** `hardware/case/camera-node-case-v4.scad` **Pipeline:** `hardware/DESIGN_PIPELINE.md` The current v4 CAD replaces the rejected wide/low electronics-box layout with a tall appliance-style enclosure matching the original upright reference: a clean vertical body, large inset front panel, OLED near the top, open blank middle area, two long rounded lower slots, and a bottom-center cable exit. It also replaces the v3 clamp/dovetail concept with a simpler strap-mounted field enclosure: 1. **Case body** — shell sized around ESP32-C3 Super Mini + ESP-01S with service/wiring clearance. 2. **Flush/recessed full-height front service lid** — screw-on front panel with locating lip and a restrained raised/recessed border. 3. **Front panel controls/indicators**: - 1.3-inch OLED/status screen window. - 3 mm **PWR** LED. - single 3 mm **RGB STAT** LED for state-dependent colors. - small rectangular rocker switch cutout. - two long rounded lower front slots styled after the reference appliance face. 4. **Rear strap channels** — two low-profile external belt-loop cloth zip-tie / Velcro strap paths to reduce rotation on a tripod/stand without visually dominating the body. 5. **Bottom cable exit** — cable/strain-relief notch for USB/power wiring. ### Export wrappers Simple per-part OpenSCAD wrappers are included: - `hardware/case/camera-node-case-v4-body.scad` - `hardware/case/camera-node-case-v4-lid.scad` - `hardware/case/camera-node-case-v4-preview.scad` - `hardware/case/camera-node-case-v4-front-review.scad` Example CLI exports, if OpenSCAD is installed: ```bash openscad -o hardware/case/camera-node-case-v4-body.stl hardware/case/camera-node-case-v4-body.scad openscad -o hardware/case/camera-node-case-v4-lid.stl hardware/case/camera-node-case-v4-lid.scad openscad -o hardware/case/camera-node-case-v4-preview.stl hardware/case/camera-node-case-v4-preview.scad openscad -o hardware/case/camera-node-case-v4-front-review.stl hardware/case/camera-node-case-v4-front-review.scad ``` Or render the main file directly: ```bash openscad -D 'part="body"' -o hardware/case/camera-node-case-v4-body.stl hardware/case/camera-node-case-v4.scad openscad -D 'part="lid"' -o hardware/case/camera-node-case-v4-lid.stl hardware/case/camera-node-case-v4.scad openscad -D 'part="preview"' -o hardware/case/camera-node-case-v4-preview.stl hardware/case/camera-node-case-v4.scad openscad -D 'part="front_review"' -o hardware/case/camera-node-case-v4-front-review.stl hardware/case/camera-node-case-v4.scad ``` `camera-node-case-v4-preview.stl` is the seated fit-check assembly. `camera-node-case-v4-front-review.stl` is a non-print review layout with the body and front panel separated so the OLED, LED, rocker, cable-relief, and lower-slot cutouts are obvious in a slicer. ### Print Settings - **Material:** PETG preferred for heat/outdoor use and strap-tab durability. - **Layer:** 0.2 mm typical. - **Infill:** 20% gyroid minimum; 30%+ recommended around rear strap bridges. - **Supports:** likely minimal/none depending on orientation; verify rear strap bridge spans and cable notch in slicer. - **Post-processing:** fit 4 lid screws; deburr OLED/LED/switch cutouts; soften strap-channel edges if the printed radius is too sharp for cloth ties. ## Expected Status Screen Content Preferred 1.3-inch OLED layout/content style: ```text CAM 03 REC ● BAT 87% LINK OK 00:12:34 ``` Suggested fields: - `CAM` / node ID. - `REC` state with a clear recording indicator. - Battery percentage or supply estimate. - `LINK OK` / degraded / disconnected state. - Recording/session timer. ## Wiring ```text USB Power Bank ├── USB-A → Camera Node Case │ ├── rocker switch → node power rail │ ├── PWR LED indicator │ ├── ESP32-C3 Super Mini │ ├── ESP-01S / ESP8266 │ ├── 1.3-inch OLED display │ └── RGB status LED │ └── USB-A → GoPro USB port (power only — no data) UART / control inside case: ESP-01S TX ──→ ESP32-C3 RX ESP-01S RX ←── ESP32-C3 TX ESP-01S GND ─── ESP32-C3 GND ``` **Power note:** exact wiring depends on the regulator/power board used. Confirm OLED voltage, LED current limiting, and whether the rocker switches USB 5 V input or a regulated node rail. ## Wi-Fi Topology ```text GoPro Hero 3 ──(AP @ 10.5.5.1)──→ ESP-01S / ESP8266 camera bridge │ UART │ (inside case) │ Travel Router ──(AP)────────────────────→ ESP32-C3 MQTT bridge (10.60.1.1) │ │ MQTT │ ▼ Pi Hub (10.60.1.56) ``` The ESP8266/ESP-01S and GoPro talk over Wi-Fi. The only cable to the GoPro is USB power from the battery pack. ## Field Setup 1. Mount GoPro on tripod/stand. 2. Route two reusable cloth zip ties / Velcro straps through the rear v4 case channels. 3. Strap the case to a tripod/stand leg; use both strap paths to resist rotation. 4. Connect power bank to case and GoPro. 5. Toggle rocker switch on. 6. Verify PWR LED, RGB status LED, and OLED status: camera ID, REC state, battery, link, timer. 7. Monitor from `http://10.60.1.56:8080`. ## Case Dimensions Prototype v4 nominal CAD dimensions: | Part / feature | W × D × H (mm) | |---|---| | Case shell external | ~56 × 36 × 82 | | Case with rear strap bridges | ~56 × 40 × 82 | | Front recessed lid | visible panel ~48 × 2 × 74; total with locating lip ~48 × 3 × 74 | | OLED visible window assumption | ~31 × 16 | | Rocker cutout assumption | ~13 × 19 | | Rear strap channels | two low-profile external belt-loop paths, ~33 mm usable slot width, ~4.2 mm strap-thickness clearance | | Board clearance targets | ESP32-C3 22.5 × 18 mm + ESP-01S 24.7 × 14.3 × 12 mm plus wiring/service clearance | These dimensions are placeholders for the first CAD prototype. Measure the actual OLED module, rocker switch, LEDs, screws, USB cable bend radius, and strap width/thickness before committing to production prints.