feat: initial project setup with camera control panel
3D printing project with Ender 3 V3 SE documentation, OctoPrint/Pi infrastructure docs, and PTZ camera control webapp for two TENVIS cameras proxied through Raspberry Pi to Frigate NVR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# 3D Printing Project
|
||||
|
||||
## Project Overview
|
||||
|
||||
3D printing setup and management for two Creality Ender 3 printers, with OctoPrint remote control and IP camera monitoring via a Raspberry Pi proxy.
|
||||
|
||||
## Hardware
|
||||
|
||||
### Printer
|
||||
| Printer | Speed | Extruder | Auto-Level | Build Volume | Hot End |
|
||||
|---|---|---|---|---|---|
|
||||
| Creality Ender 3 V3 SE | 250 mm/s | Sprite Direct Drive | CR Touch | 220x220x250 mm | Standard |
|
||||
|
||||
### Filament Inventory
|
||||
| Material | Color | Brand | Diameter |
|
||||
|---|---|---|---|
|
||||
| PLA | White | OVERTURE | 1.75 mm |
|
||||
| PLA | Black | OVERTURE | 1.75 mm |
|
||||
| PLA | Black | ELEGOO | 1.75 mm |
|
||||
| PLA | Dark Blue | ELEGOO | 1.75 mm |
|
||||
| PLA | Transparent | SUNLU | 1.75 mm |
|
||||
| ABS | Black | Creality | 1.75 mm |
|
||||
| PETG | Red | Creality | 1.75 mm |
|
||||
| PETG | Black | Creality | 1.75 mm |
|
||||
|
||||
### Accessories
|
||||
- Creality Hardened Steel MK8 Nozzles (5-pack)
|
||||
|
||||
## Remote Printing Infrastructure
|
||||
|
||||
### Raspberry Pi 3 B+ (`seth-pi`)
|
||||
- **Hostname:** seth-pi
|
||||
- **OS:** Debian 13 (Raspberry Pi OS Lite)
|
||||
- **User:** seth (key-only SSH, no root login)
|
||||
- **wlan0:** 192.168.0.102 (main network, DHCP) — default route
|
||||
- **eth0:** 192.168.0.101/24 (isolated camera router subnet)
|
||||
- **WiFi SSID:** WiFrei
|
||||
|
||||
### OctoPrint
|
||||
- **URL:** http://octopi.sethpc.xyz (port 5000 on Pi)
|
||||
- **API key:** see `octopi.sethpc.xzy_api_key.md`
|
||||
|
||||
### go2rtc (v1.9.14)
|
||||
Restreams both cameras with H.264 hardware transcoding and MJPEG fallback.
|
||||
- **API:** http://192.168.0.102:1984
|
||||
- **RTSP:** rtsp://192.168.0.102:8554
|
||||
- **Streams:**
|
||||
- `cam1` / `cam1_mjpeg` — Camera 1 (192.168.0.100)
|
||||
- `cam2` / `cam2_mjpeg` — Camera 2 (192.168.0.103)
|
||||
|
||||
### IP Cameras — TENVIS (on isolated eth0 subnet)
|
||||
Both TENVIS cameras use credentials `admin:admin` and expose RTSP on port 554 (`/11` path), HTTP on 80, and ONVIF on 8080.
|
||||
- **Internal model:** C9F0SeZ0N0P4L0 (Hi3510-based SoC)
|
||||
- **Firmware:** V9.1.6.1.24-20170925
|
||||
- **Hardware version:** V1.0.0.1
|
||||
- **CGI interface:** `/cgi-bin/hi3510/param.cgi`
|
||||
- **cam2 has an SD card inserted** (59GB)
|
||||
|
||||
| Camera | Isolated IP | Proxy Ports (on .102) |
|
||||
|---|---|---|
|
||||
| cam1 | 192.168.0.100 | HTTP:18080, ONVIF:18081, RTSP:18554 |
|
||||
| cam2 | 192.168.0.103 | HTTP:28080, ONVIF:28081, RTSP:28554 |
|
||||
|
||||
### Proxy Architecture
|
||||
The Pi bridges two networks:
|
||||
- **eth0** (192.168.0.101) connects to an isolated router with the two IP cameras
|
||||
- **wlan0** (192.168.0.102) connects to the main homelab network
|
||||
- **socat** systemd services proxy each camera port from the isolated subnet to the main network
|
||||
- Port scheme: `1xxxx` = cam1, `2xxxx` = cam2
|
||||
|
||||
Proxy services (all systemd, auto-restart):
|
||||
- `ipcam-proxy-http.service` — 18080 -> 192.168.0.100:80
|
||||
- `ipcam-proxy-onvif.service` — 18081 -> 192.168.0.100:8080
|
||||
- `ipcam-proxy-rtsp.service` — 18554 -> 192.168.0.100:554
|
||||
- `ipcam2-proxy-http.service` — 28080 -> 192.168.0.103:80
|
||||
- `ipcam2-proxy-onvif.service` — 28081 -> 192.168.0.103:8080
|
||||
- `ipcam2-proxy-rtsp.service` — 28554 -> 192.168.0.103:554
|
||||
|
||||
## Camera Control Panel
|
||||
- **URL:** http://192.168.0.220:8090
|
||||
- **Location:** `/opt/cam-control/server.py` on CT 241 (Frigate)
|
||||
- **Service:** `cam-control.service` (systemd, enabled)
|
||||
- **Features:** Live MJPEG feeds, PTZ D-pad (continuous/step), speed control, flip/mirror toggles
|
||||
- **Source:** `./cam-control/server.py`
|
||||
|
||||
## Gitea
|
||||
- **Repo:** https://git.sethpc.xyz/Seth/3d-printing
|
||||
- **Remote:** `https://Seth:REDACTED_GITEA_TOKEN@git.sethpc.xyz/Seth/3d-printing.git`
|
||||
|
||||
## Conventions
|
||||
- Camera credentials: admin/admin (default, isolated network only)
|
||||
- Pi SSH: key-only as `seth`, no password auth
|
||||
- Internal password for homelab services: REDACTED_PASSWORD
|
||||
Reference in New Issue
Block a user