generated from CubeCraft-Creations/Tracehound
141 lines
5.3 KiB
Markdown
141 lines
5.3 KiB
Markdown
|
|
# RemoteRig — Camera Node Hardware Design
|
|||
|
|
|
|||
|
|
> **Version:** 0.1.0 | **Status:** Draft
|
|||
|
|
> **Target:** GoPro Hero 3 Black/Silver + ESP32 D1 Mini + 1000mAh LiPo
|
|||
|
|
|
|||
|
|
## 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
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────┐
|
|||
|
|
│ GoPro Hero 3 │
|
|||
|
|
│ ┌─────────────────────────┐ │
|
|||
|
|
│ │ Lens (front) │ │
|
|||
|
|
│ └─────────────────────────┘ │
|
|||
|
|
│ ┌─────────────────────────┐ │
|
|||
|
|
│ │ Screen │ │
|
|||
|
|
│ └─────────────────────────┘ │
|
|||
|
|
│ ┌──────────┐ │
|
|||
|
|
│ 3D Sleeve ─────→│ ESP32 │ │ ← clips onto back/bottom
|
|||
|
|
│ │ D1 Mini │ │
|
|||
|
|
│ └──────────┘ │
|
|||
|
|
│ ┌──────────┐ │
|
|||
|
|
│ │ LiPo │ │ ← slides under GoPro
|
|||
|
|
│ │ 1000mAh │ │
|
|||
|
|
│ └──────────┘ │
|
|||
|
|
└─────────────────────────────────┘
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Bill of Materials
|
|||
|
|
|
|||
|
|
| Item | Qty | Cost | Notes |
|
|||
|
|
|------|-----|------|-------|
|
|||
|
|
| GoPro Hero 3 Black/Silver | 1 | Already owned | Target camera |
|
|||
|
|
| ESP32 D1 Mini | 1 | ~$4 | Or NodeMCU-32S (~$5) |
|
|||
|
|
| LiPo 3.7V 1000mAh | 1 | ~$8 | 50x34x8mm typical |
|
|||
|
|
| 5V/3A buck converter | 1 | ~$2 | LiPo → GoPro USB |
|
|||
|
|
| 3.3V buck converter | 1 | ~$1 | LiPo → ESP32 VIN |
|
|||
|
|
| JST-XH 2-pin connectors | 2 | ~$1 | Battery quick-disconnect |
|
|||
|
|
| Micro-USB right-angle cable | 1 | ~$2 | Buck → GoPro |
|
|||
|
|
| Velcro strap (20cm) | 1 | ~$0.50 | Secure to GoPro |
|
|||
|
|
| PETG filament | ~30g | ~$0.60 | 3D printed case |
|
|||
|
|
|
|||
|
|
**Total per node:** ~$20
|
|||
|
|
|
|||
|
|
## 3D Printed Case
|
|||
|
|
|
|||
|
|
The case consists of three parts (see `hardware/case/remoterig-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
|
|||
|
|
|
|||
|
|
### 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
|
|||
|
|
|
|||
|
|
## Wiring
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
LiPo 3.7V
|
|||
|
|
├── JST-XH connector
|
|||
|
|
│
|
|||
|
|
├──→ 5V/3A Buck Converter → Micro-USB right-angle → GoPro USB port
|
|||
|
|
│ (power only — no data over USB)
|
|||
|
|
│
|
|||
|
|
└──→ 3.3V Buck Converter → ESP32 VIN + GND
|
|||
|
|
(or ESP32 D1 Mini has built-in regulator — connect directly to 5V pin)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Note:** ESP32 D1 Mini has an onboard 3.3V regulator. You can feed it 5V directly to the 5V pin if using a single 5V buck converter. This simplifies wiring:
|
|||
|
|
```
|
|||
|
|
LiPo → 5V Buck → ├── ESP32 5V pin
|
|||
|
|
└── GoPro USB port
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Wi-Fi Topology (No Cables for Camera Control)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
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)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
The ESP32 has **no wired data connection** to the GoPro. All camera control is over Wi-Fi. The USB cable is **power only**.
|
|||
|
|
|
|||
|
|
## Enclosure Dimensions
|
|||
|
|
|
|||
|
|
| 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 |
|
|||
|
|
|
|||
|
|
## Usage in the Field
|
|||
|
|
|
|||
|
|
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
|