# RemoteRig — Camera Node Hardware Design

> **Version:** 0.2.0 | **Status:** Draft  
> **Target:** GoPro Hero 3 Black/Silver + ESP8266 + ESP32 + USB power bank

## Overview

Each camera node is two ESP boards in a small case that clips to the tripod/stand. The case **does not attach to the camera** — only to the stand. Powered by a standard USB power bank.

```
     ┌─────────────────┐
     │  USB Power Bank │── USB ──→ GoPro (power only)
     │  (off-the-shelf)│── USB ──→ ESP32 + ESP8266 (shared)
     └─────────────────┘
              │
     ┌────────┴────────┐
     │  Tripod Case    │ ← clips to stand leg
     │  ┌────────────┐ │
     │  │ ESP8266    │ │ ← Wi-Fi → GoPro AP (10.5.5.1)
     │  │ (camera)   │ │
     │  ├────────────┤ │ ← UART between boards
     │  │ ESP32      │ │ ← Wi-Fi → Travel Router
     │  │ (MQTT)     │ │
     │  └────────────┘ │
     └─────────────────┘
```

## Bill of Materials

| Item | Qty | Cost | Notes |
|------|-----|------|-------|
| ESP32 Dev Board | 1 | ~$5 | MQTT bridge — talks to hub |
| ESP8266 D1 Mini | 1 | ~$3 | Camera bridge — talks to GoPro |
| USB power bank (5000mAh+) | 1 | ~$10 | Powers both boards + GoPro |
| Micro-USB cable (short) | 2 | ~$2 | Power bank → boards + GoPro |
| Jumper wires F-F | 3 | ~$0.25 | UART TX/RX/GND between boards |
| PETG filament | ~25g | ~$0.50 | 3D printed case |
| Velcro strap (small) | 1 | ~$0.25 | Secure power bank to stand |

**Total per node:** ~$21 (+ GoPro already owned)

## 3D Printed Case

**Current source:** `hardware/case/tripod-case-v3.scad`
**Pipeline:** `hardware/DESIGN_PIPELINE.md`

Four exported prototype files:
1. **Case body** — holds both boards stacked, cable ports, rear dovetail-style receiver
2. **Case lid** — screw-on cover with ventilation
3. **Tripod clamp** — separate screw-tightened C-clamp sized around a 35mm stand/pole
4. **Full preview** — combined visualization STL only, not intended as the print job

### Print Settings
- **Material:** PETG preferred for heat/outdoor use and clamp flex
- **Layer:** 0.2mm | **Infill:** 20% gyroid minimum; 35%+ recommended for clamp
- **Supports:** Likely yes for clamp ears / dovetail overhangs depending on slicer orientation
- **Post-processing:** M3x8mm screws for lid (4x), one M3 screw + M3 nut for clamp tightening

## Wiring

```
USB Power Bank
  ├── USB-A → Micro-USB cable → ESP32 USB port
  │                              (powers ESP32, shared 5V rail)
  │
  ├── USB-A → Micro-USB cable → GoPro USB port
  │                              (power only — no data)
  │
  └── (ESP8266 powered via ESP32 3.3V pin, or via shared USB)

UART (inside case):
  ESP8266 TX (GPIO1)  ──→ ESP32 RX (GPIO16)
  ESP8266 RX (GPIO3)  ←── ESP32 TX (GPIO17)
  ESP8266 GND ─────────── ESP32 GND
```

**Power note:** Both boards can be powered from a single USB cable if the ESP32's VIN/5V pin is bridged to the ESP8266's VIN. Alternatively, use a USB Y-splitter cable.

## Wi-Fi Topology

```
GoPro Hero 3 ──(AP @ 10.5.5.1)──→ ESP8266 (camera bridge)
                                        │
                                   UART │ (inside case)
                                        │
Travel Router ──(AP)─────────────────→ ESP32 (MQTT bridge)
(10.60.1.1)                           │
                                        │
                                   MQTT │
                                        ▼
                                   Pi Hub (10.60.1.56)
```

The ESP8266 and GoPro talk over Wi-Fi — **no data cable between them**. The only cable to the GoPro is USB power from the battery pack.

## Field Setup

1. **Mount GoPro** on tripod/stand
2. **Clip case** to tripod leg
3. **Connect power bank** via USB to case + GoPro
4. **Power on** — ESP32 auto-connects to travel router, ESP8266 auto-connects to GoPro
5. **Monitor** from `http://10.60.1.56:8080`

## Case Dimensions

| | W × D × H (mm) |
|---|---|
| Case body external | ~56.8 × 36.6 × 19.0 |
| Lid external | ~56.8 × 32.8 × 4.0 |
| Tripod clamp | ~43.0 × 53.5 × 16.0 |
| Clamp-to-case mount | Two side-by-side M3 screws through flat mounting plate |
| Clamp pole fit | Nominal 35mm; smaller poles TBD / may need inserts |
| Total weight | TBD after prototype print |
