โฐ Menu
๐ Overview
0. THE BINDING CONSTRAINT โ READ THIS FIRST
1. PROJECT OVERVIEW
2. HARDWARE โ ALREADY OWNED (No Cost)
3. CARPUTER โ HARDWARE TO PURCHASE
4. SYSTEM ARCHITECTURE โ THREE TIERS
5. POWER ARCHITECTURE (the keystone)
6. ESP32 NODE NETWORK (Tier 0)
7. CAMERA SYSTEM + NVR
8. CAN BUS INTEGRATION
9. SOFTWARE STACK
10. THERMAL MANAGEMENT
11. HOME RAG SERVER (HP Z440 #1)
12. OFF-GRID MESH + REMOTE ACCESS (Phase 2/3)
13. PENDING ACTIONS
14. PHASED ROADMAP
15. COST SUMMARY
16. ARCHITECTURE AT A GLANCE
17. MASTER PARTS LIST (BOM) (rev 3.43)
โฃ Wire Diagrams
Displays & media routing โ 5080 as media hub
๏ผ
๏ผ
Fit
100%
wheel / pinch = zoom ยท drag = pan
media_routing
2014 RAM 1500 Carputer โ DISPLAYS & MEDIA ROUTING ยท OptiPlex 5080 as the media hub (brain in control)
The 5080 ingests the S23 once (scrcpy, on the phone's UNLIMITED on-device data) and fans it out to many screens via go2rtc (the restreamer bundled with Frigate).
CONTROL plane (MQTT/PWA) is separate, local, and instant. MEDIA plane (video) takes the restream path = slight lag, fine for parked viewing.
LEGEND: gold dashed = phone unlimited data ยท teal = video (WebRTC/RTSP) ยท blue = wired display (DP/HDMI) ยท purple dashed = control plane (MQTT/PWA)
cluster_src
SOURCES
cluster_brain
OptiPlex 5080 โ THE BRAIN (media hub)
cluster_screens
SCREENS
s23
S23 phone โ YouTube app
UNLIMITED on-device data
(phone is the streamer)
scrcpy
scrcpy (open-source)
USB-C dock OR WiFi/ADB
phone screen -> a 5080 window
s23->scrcpy
unlimited on-device data
cams
PoE cameras (RTSP, H.265)
go2rtc
go2rtc โ restream any source
-> WebRTC / RTSP (bundled w/ Frigate)
cams->go2rtc
RTSP
local
5080 local: browser YouTube,
gauges, RAG, voice
local->go2rtc
local source
scrcpy->go2rtc
phone frames -> source
bed
Bed USB-C touch monitor
WIRED DP/HDMI (docked) โ primary
go2rtc->bed
WIRED DP/HDMI (desktop)
phoenix
Phoenix dash (Android)
browser / WebRTC โ parked media
go2rtc->phoenix
WebRTC over Cudy WiFi
tablet
Removable tablet
browser/WebRTC + PWA (WiFi/battery)
go2rtc->tablet
WebRTC over Cudy WiFi
flask
Flask / PWA โ "pick a SOURCE
-> send to SCREEN(s)" + gauges
mqtt
MQTT broker (Pi 3 B+)
control plane โ local, instant
flask->mqtt
control bus
flask->bed
flask->phoenix
flask->tablet
phoneui
S23 โ PWA control
flask->phoneui
PWA: control + gauges (instant, local)
note
WHY THIS SHAPE
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โข Ingest the phone ONCE (scrcpy) -> the 5080 becomes the
distribution point for the phone's UNLIMITED pipe.
โข go2rtc fans ONE source out to MANY screens (WebRTC, sub-second).
โข 5080 Micro wired video: 1x DP + 1x HDMI (+1 optional flex port)
= ~2-3 WIRED heads; everything else is NETWORKED (browser).
CAVEATS
โข Latency stacks per hop: scrcpy + re-encode + WebRTC ~ 0.3-1.5s
-> great for watching parked; NOT for twitch-interactive.
โข Re-encode = CPU + watts (QuickSync helps); a parked-movie load,
mind deep-winter battery (sec 5.2).
โข Use the RIGHT plane: control = direct PWA (instant) ยท
media = go2rtc restream (slight lag).
DATA SPLIT (by who's present)
โข phone tether/hotspot = CAPPED (~5GB) -> avoid for video.
โข phone ON-DEVICE = unlimited -> reached via scrcpy ingest.
โข Cudy/Keepgo SIM = always-on automation (Fireworks, Tailscale,
alerts) for when the phone isn't there.
open the PDF version โบ
โน prev
next โบ