generated from CubeCraft-Creations/Tracehound
feat: redesigned case — tripod-clip box for dual ESPs, USB power bank
Replaced GoPro-sleeve case design with simpler stand-mounted box: - Case clips to tripod leg/stand pole (20-35mm diameter) - No camera sleeve needed — case sits on the stand - Powered by standard USB power bank (off-the-shelf) - Holds ESP8266 + ESP32 stacked with UART wiring - Cable ports for USB in/out, LED window, ventilation Simplified BOM: ~1/node (down from 4), no buck converters needed
This commit is contained in:
+67
-102
@@ -1,144 +1,109 @@
|
||||
# RemoteRig — Camera Node Hardware Design
|
||||
|
||||
> **Version:** 0.1.0 | **Status:** Draft
|
||||
> **Target:** GoPro Hero 3 Black/Silver + ESP32 D1 Mini + 1000mAh LiPo
|
||||
> **Version:** 0.2.0 | **Status:** Draft
|
||||
> **Target:** GoPro Hero 3 Black/Silver + ESP8266 + ESP32 + USB power bank
|
||||
|
||||
## Overview
|
||||
|
||||
Each camera node is a self-contained unit clipped onto a GoPro Hero 3. It provides:
|
||||
- Camera control (start/stop recording) via Wi-Fi
|
||||
- Status monitoring (battery, storage, recording state)
|
||||
- MQTT communication to the central Pi Zero 2 W hub
|
||||
- Battery power for both the ESP32 and GoPro
|
||||
|
||||
## Physical Assembly
|
||||
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.
|
||||
|
||||
```
|
||||
┌─────────────────────────────────┐
|
||||
│ GoPro Hero 3 │
|
||||
│ ┌─────────────────────────┐ │
|
||||
│ │ Lens (front) │ │
|
||||
│ └─────────────────────────┘ │
|
||||
│ ┌─────────────────────────┐ │
|
||||
│ │ Screen │ │
|
||||
│ └─────────────────────────┘ │
|
||||
│ ┌──────────┐ │
|
||||
│ 3D Sleeve ─────→│ ESP8266 │ │ ← Camera bridge (GoPro Wi-Fi)
|
||||
│ │ D1 Mini │ │
|
||||
│ ├──────────┤ │
|
||||
│ │ ESP32 │ │ ← MQTT bridge (travel router)
|
||||
│ │ Dev │ │
|
||||
│ ├──────────┤ │
|
||||
│ │ LiPo │ │ ← Shared power
|
||||
│ │ 1000mAh │ │
|
||||
│ └──────────┘ │
|
||||
└─────────────────────────────────┘
|
||||
┌─────────────────┐
|
||||
│ 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 |
|
||||
|------|-----|------|-------|
|
||||
| GoPro Hero 3 Black/Silver | 1 | Already owned | Target camera |
|
||||
| ESP32 Dev Board | 1 | ~$5 | MQTT bridge — talks to hub |
|
||||
| ESP8266 D1 Mini | 1 | ~$3 | Camera bridge — talks to GoPro |
|
||||
| LiPo 3.7V 1000mAh | 1 | ~$8 | 50x34x8mm typical |
|
||||
| 3.3V buck converter | 1 | ~$1 | LiPo → both boards (shared VIN) |
|
||||
| 5V/3A buck converter | 1 | ~$2 | LiPo → GoPro USB (power only) |
|
||||
| JST-XH 2-pin connectors | 2 | ~$1 | Battery quick-disconnect |
|
||||
| Micro-USB right-angle cable | 1 | ~$2 | Buck → GoPro |
|
||||
| Jumper wires (female-female) | 4 | ~$0.50 | UART + GND between boards |
|
||||
| Velcro strap (20cm) | 1 | ~$0.50 | Secure to GoPro |
|
||||
| PETG filament | ~35g | ~$0.70 | 3D printed case |
|
||||
| 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:** ~$24
|
||||
**Total per node:** ~$21 (+ GoPro already owned)
|
||||
|
||||
## 3D Printed Case
|
||||
|
||||
The case consists of three parts (see `hardware/case/remoterig-case.scad`):
|
||||
**File:** `hardware/case/tripod-case.scad`
|
||||
|
||||
### Part 1: GoPro Sleeve
|
||||
Wraps around the GoPro body with cutouts for:
|
||||
- Lens (front)
|
||||
- Screen/viewfinder (back)
|
||||
- USB port (side)
|
||||
- Bottom mounting fingers
|
||||
- Mounting ears for electronics compartment
|
||||
|
||||
### Part 2: Electronics Compartment
|
||||
Clips onto the sleeve's mounting ears. Holds:
|
||||
- ESP32 D1 Mini board (recessed fit)
|
||||
- USB cable routing (in → ESP32, out → GoPro)
|
||||
- Ventilation slots (top)
|
||||
- LED visibility window
|
||||
|
||||
### Part 3: Battery Compartment
|
||||
Slides under the GoPro. Contains:
|
||||
- LiPo battery cavity
|
||||
- Cable exits (to ESP32, to GoPro buck converter)
|
||||
- Velcro strap slots
|
||||
Three parts:
|
||||
1. **Case body** — holds both boards stacked, cable ports, rail for clip
|
||||
2. **Case lid** — screw-on cover with ventilation
|
||||
3. **Tripod clip** — C-clamp for 20-35mm poles, slides into case rail
|
||||
|
||||
### Print Settings
|
||||
- **Material:** PETG (outdoor/heat resistant) or PLA+
|
||||
- **Layer height:** 0.2mm
|
||||
- **Infill:** 20% gyroid
|
||||
- **Supports:** Yes (for cable channels)
|
||||
- **Bed adhesion:** Brim (5mm) for sleeve
|
||||
- **Orientation:** Print sleeve on its back, compartments flat
|
||||
- **Material:** PETG (outdoor/heat) or PLA+
|
||||
- **Layer:** 0.2mm | **Infill:** 20% gyroid
|
||||
- **Supports:** Yes (for clip overhang)
|
||||
- **Post-processing:** M3x8mm screws for lid (4x)
|
||||
|
||||
## Wiring
|
||||
|
||||
```
|
||||
LiPo 3.7V
|
||||
├── JST-XH connector
|
||||
USB Power Bank
|
||||
├── USB-A → Micro-USB cable → ESP32 USB port
|
||||
│ (powers ESP32, shared 5V rail)
|
||||
│
|
||||
├──→ 3.3V Buck Converter → ESP8266 VIN + GND
|
||||
│ → ESP32 VIN + GND
|
||||
│ (both boards share the same 3.3V rail)
|
||||
├── USB-A → Micro-USB cable → GoPro USB port
|
||||
│ (power only — no data)
|
||||
│
|
||||
└──→ 5V/3A Buck Converter → Micro-USB right-angle → GoPro USB port
|
||||
(power only — no data over USB)
|
||||
└── (ESP8266 powered via ESP32 3.3V pin, or via shared USB)
|
||||
|
||||
UART (ESP8266 ↔ ESP32):
|
||||
UART (inside case):
|
||||
ESP8266 TX (GPIO1) ──→ ESP32 RX (GPIO16)
|
||||
ESP8266 RX (GPIO3) ←── ESP32 TX (GPIO17)
|
||||
ESP8266 GND ─────────── ESP32 GND
|
||||
```
|
||||
|
||||
## Wi-Fi Topology (No Cables for Camera Control)
|
||||
**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 ──(Wi-Fi AP @ 10.5.5.1)──→ ESP32 STA #1
|
||||
│
|
||||
Travel Router ──(Wi-Fi AP)─────────────────→ ESP32 STA #2
|
||||
(192.168.4.1) │
|
||||
│
|
||||
└──→ MQTT → Pi Hub (192.168.4.10)
|
||||
GoPro Hero 3 ──(AP @ 10.5.5.1)──→ ESP8266 (camera bridge)
|
||||
│
|
||||
UART │ (inside case)
|
||||
│
|
||||
Travel Router ──(AP)─────────────────→ ESP32 (MQTT bridge)
|
||||
(192.168.4.1) │
|
||||
│
|
||||
MQTT │
|
||||
▼
|
||||
Pi Hub (192.168.4.10)
|
||||
```
|
||||
|
||||
The ESP32 has **no wired data connection** to the GoPro. All camera control is over Wi-Fi. The USB cable is **power only**.
|
||||
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.
|
||||
|
||||
## Enclosure Dimensions
|
||||
## Field Setup
|
||||
|
||||
| Component | W × H × D (mm) |
|
||||
|-----------|-----------------|
|
||||
| GoPro Hero 3 | 60 × 42 × 30 |
|
||||
| ESP32 D1 Mini | 34 × 26 × 5 |
|
||||
| LiPo 1000mAh | 50 × 34 × 8 |
|
||||
| Full assembly | ~70 × 60 × 55 |
|
||||
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://192.168.4.10:8080`
|
||||
|
||||
## Usage in the Field
|
||||
## Case Dimensions
|
||||
|
||||
1. **Pre-show:** Charge LiPos, flash ESP32 firmware, verify MQTT connectivity
|
||||
2. **At venue:** Mount cameras, power on ESP32s (they auto-connect to travel router)
|
||||
3. **Monitoring:** Open `http://192.168.4.10:8080` on laptop/kiosk
|
||||
4. **Control:** Start/stop recording from dashboard
|
||||
5. **Post-show:** Stop recording, power down, swap batteries for next session
|
||||
|
||||
## Future Improvements
|
||||
|
||||
- **Hot-swap battery:** Quick-release battery tray with spring contacts
|
||||
- **Weather sealing:** O-ring groove in sleeve for outdoor rain protection
|
||||
- **Lens hood:** Integrated sun shield for outdoor daytime recording
|
||||
- **Mount adapter:** 1/4"-20 tripod mount thread on bottom
|
||||
- **Antenna routing:** External antenna connector for improved Wi-Fi range in stadiums
|
||||
| | W × D × H (mm) |
|
||||
|---|---|
|
||||
| Case external | ~64 × 38 × 27 |
|
||||
| Case internal | ~57 × 31 × 18 |
|
||||
| Fits poles | 20-35mm diameter |
|
||||
| Total weight | ~50g (case + boards, without power bank) |
|
||||
|
||||
Reference in New Issue
Block a user