# 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 │
     │  (off-the-shelf)│
     └────────┬────────┘
              │ USB-C cable into bottom USB-C female input
              ▼
     ┌─────────────────────────────────────┐
     │  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   │
     │  side USB-A female power output ────┼── USB cable ──→ GoPro power
     └─────────────────────────────────────┘
```

## 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-C female panel/breakout connector | 1 | ~$1–$4 | Bottom power input; prototype CAD assumes ~10.5 × 4.5 mm rounded visible opening plus shallow underside recess; measure purchased part |
| USB-A female panel/breakout connector | 1 | ~$1–$4 | Right-side GoPro power passthrough output; prototype CAD assumes ~16 × 8 mm side opening; measure purchased part |
| IPEX/U.FL antenna pigtail or bulkhead lead | 1 | TBD | Left-side antenna exit opposite the USB-A port; prototype CAD assumes a 5.0 mm circular through-hole plus shallow exterior recess; measure exact pigtail/bulkhead diameter before production |
| USB power bank (5000 mAh+) | 1 | ~$10 | Powers camera node and GoPro |
| Short USB cables / wiring | as needed | ~$2–$5 | Power bank → node USB-C input; node 5 V passthrough → USB-A female → GoPro USB cable; 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 vertical zip-tie brackets with lateral side-feed openings |

**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, a bottom USB-C female power input, a right-side USB-A female passthrough power port for the GoPro, and a left-side IPEX/U.FL antenna pigtail/connector hole opposite the USB-A. 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 vertical zip-tie pass-through brackets** — two low-profile external brackets, one left and one right of center, with top/bottom anchor pads and long vertical side-access openings. Zip ties feed laterally in the X direction behind each raised bridge face instead of top-to-bottom, while the rear wall stays sealed.
5. **USB power ports** — bottom USB-C female power input and right-side USB-A female passthrough power output for a GoPro USB power cable.
6. **Left-side antenna exit** — prototype 5.0 mm round through-wall IPEX/U.FL antenna pigtail/connector clearance, placed opposite the right-side USB-A port at the same vertical position, with a shallow exterior circular recess for visual/exit relief. Measure the actual antenna pigtail/bulkhead before production.

### 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/angled so the OLED, LED, rocker, USB connector, 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 vertical zip-tie bracket anchor pads/bridges.
- **Supports:** likely minimal/none depending on orientation; verify the rear lateral side-feed openings remain open and check USB-C/USB-A port cutouts in slicer.
- **Post-processing:** fit 4 lid screws; deburr OLED/LED/switch and IPEX antenna exit cutouts; clear any stringing inside the rear side-feed openings; soften strap-contact 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-C cable → bottom USB-C female input on Camera Node Case
          ├── rocker switch → node power rail
          ├── PWR LED indicator
          ├── XIAO ESP32-C6
          ├── ESP-01S / ESP8266
          ├── 1.3-inch OLED display
          ├── RGB status LED
          └── 5 V passthrough rail → side USB-A female output
                                      └── USB cable → GoPro USB port
                                          (power only — no data)

UART / control inside case:
  ESP-01S TX (GPIO1)  ──→ XIAO D7 (RX)
  ESP-01S RX (GPIO3)  ←── XIAO D6 (TX)
  ESP-01S GND         ─── XIAO GND

  # Reserved for UART OTA (XIAO reflashes the ESP-01S — no adapter):
  ESP-01S RST         ←── XIAO D8   (pulse low to reset)
  ESP-01S GPIO0       ←── XIAO D10  (low at reset = bootloader)
  # See docs/design/esp01s-uart-ota.md
```

**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
(192.168.8.1)                                │
                                             │
                                        MQTT │
                                             ▼
                                   Pi Hub (192.168.8.56)
```

The ESP8266/ESP-01S and GoPro talk over Wi-Fi. The only cable to the GoPro is USB power from the case side USB-A passthrough port.

## Field Setup

1. Mount GoPro on tripod/stand.
2. Feed two reusable cloth zip ties / Velcro straps laterally through the long side openings behind the rear vertical brackets.
3. Strap the case to a tripod/stand leg; use both strap paths to resist rotation.
4. Connect the power bank to the case bottom USB-C input; connect the GoPro USB power cable to the case side USB-A passthrough output.
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://192.168.8.56:8080`.

## Case Dimensions

Prototype v4 nominal CAD dimensions:

| Part / feature | W × D × H (mm) |
|---|---|
| Case shell external | ~56 × 36 × 82 |
| Case with rear zip-tie brackets | ~56 × 41.2 × 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 |
| Bottom USB-C power input cutout | ~10.5 × 4.5 opening with ~18 × 10 shallow underside recess |
| Right-side USB-A passthrough cutout | ~16 Y/front-back × 8 Z opening through side wall |
| Rear vertical zip-tie brackets | two external side-feed brackets, each ~8.5 mm wide × 50 mm tall; lateral tunnel has ~40 mm vertical side-window length × ~3.8 mm strap-thickness clearance behind the raised bridge |
| 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-C/USB-A connector flanges and body depths, USB cable bend radius, and strap width/thickness before committing to production prints.
