Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
5인치 흑백 튜브에 대시캠, 위성 이동 지도, 파이프보이식 HUD를 라즈베리파이 CM4의 핀111에 연결된 한 줄 와이어로 구동
Dashcam, satellite moving map and a Pip-Boy-style HUD on a 5-inch black-and-white tube, fed by a single wire soldered to pin 111 of a Raspberry Pi CM4.
라이프스타일Python · JavaScriptGitHub @ceoptrsltd온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A Raspberry Pi CM4 dashcam + wasteland-style satellite navigator on a 2001 black-and-white CRT (composite straight from the SoC)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A 2001 black‑and‑white reversing monitor, a Raspberry Pi Compute Module 4 and a wasteland navigator.
fallout.nav turns a Raspberry Pi CM4 into an in‑car computer for an old van:
fsync every second: a power cut loses ≤ 2 s of video.VDAC_COMP), NTSC 480i/60 Hz with output
margins and mirroring tuned for the RV‑50. The button on the GPS module switches the video output off so it
does not bleed into the monitor's other camera input.https://<server>/fnadmin/; live video there is a low‑bitrate
H.264 stream that is only encoded while someone watches.Project page with a live demo: https://ptrs.ltd/apps/fallout.nav/
| Part | Notes |
|---|---|
| Raspberry Pi CM4 (eMMC, Wi‑Fi, 4 GB) on Waveshare CM4‑NANO‑B | Raspberry Pi OS (Debian 13 trixie) |
| OV5647 camera | CSI0, dtoverlay=ov5647,cam0 |
| Holybro M8N GPS + IST8310 compass (10‑pin JST‑GH) | UART5 /dev/gps0 + I2C‑1 |
| WAECO Mobitronic RV‑50 monitor | composite input, B/W CRT |
| GH pin | Signal | → | 40‑pin | Pi signal |
|---|---|---|---|---|
| 1 | VCC 5V | → | 2 | 5V |
| 2 | RX (GPS input) | → | 32 | GPIO12 TXD5 |
| 3 | TX (GPS output) | → | 33 | GPIO13 RXD5 |
| 4 | SCL | → | 5 | GPIO3 SCL |
| 5 | SDA | → | 3 | GPIO2 SDA |
| 6 | SAFETY_SWITCH | → | 16 | GPIO23 — short press: video output on/off, long press: protect recording |
| 7 | SAFETY_SWITCH_LED | → | 18 | GPIO24 — blinks while recording |
| 8 | VDD_3V3 | → | 1 | 3.3V |
| 10 | GND | → | 6 | GND |
The GPS uses the PL011 UART5 (dtoverlay=uart5) so that the primary UART0 stays with the on‑board Bluetooth,
which plays the internet radio on a Bluetooth speaker.
CM4 connector J2, pin 111 VDAC_COMP (inner/odd row, 6th from the pin‑101 end; its neighbours are
109 PCIe_nRST and 113 GND — "ground immediately on the far side" is the reliable check) → video pin of the
monitor input, GND → its ground. See docs/device-report.md.
fnav/core FastAPI backend: auth, settings, 10 Hz WebSocket telemetry, nav logic, Esri tile cache, recordings, system
fnav/camera Picamera2 pipeline, crash-safe MPEG-TS recorder, RTSP to MediaMTX (WebRTC), MJPEG for the screen
fnav/sensors gpsd client, UBX configuration, IST8310 driver, calibration + GPS auto-calibration, heading fusion, GPIO
web/display the car screen (Canvas renderer for Esri tiles + Pip-Boy HUD), also runs as an in-browser demo (?demo=1)
web/admin the web UI
pi/ install.sh, deploy.sh, systemd units, boot config, MediaMTX, sudoers/polkit
server/ fnav-relay (position log, login while the device is offline; stdlib Python) and the nginx snippet
tools/ remote.sh (server + tunnel setup), publish_site.sh, UBX/I2C helpers
site/ the project page
Services on the device: fnav-core (port 80; 127.0.0.1:8090 for the tunnel), fnav-camera, mediamtx,
fnav-display (cage + Chromium kiosk), fnav-radio (mpv), bluetooth + bluealsa, fnav-tunnel, gpsd, chrony.
Weather on the car screen (now + the next two days while the radio is off, wind streaks around the vehicle):
Open-Meteo for the GPS position, every 30 min or after 25 km, cached for offline use
(fnav/core/weather.py). Weather data by Open-Meteo.com, CC BY 4.0.
Speed limit sign next to the speedometer: offline OpenStreetMap roads. tools/speedlimits.sh builds the database on
the server from the Geofabrik extract (Poland by default; implicit limits such as PL:urban and defaults by road
class) and copies it to /var/lib/fnav/speedlimits.sqlite; fnav/core/speedlimit.py matches the GPS position and
course to the road once a second. Rerun the script now and then for fresh data. Data © OpenStreetMap contributors, ODbL.
pi/deploy.sh --stage # from a PC (Git Bash / Linux): upload the repo to the device
ssh <device> 'cd ~/fallout.nav && sudo ./pi/install.sh && sudo reboot'
pi/deploy.sh # later updates
browser ─ https://<server>/fnadmin/ ─ nginx ─┬─ static copy of web/ (opens even when the device is off)
├─ /api/tracking/ → fnav-relay (the log lives on the server)
└─ /api, /ws → 127.0.0.1:18080 ─ ssh -R ─ device fnav-core :8090
device: fnav-core ─ a point a minute → SQLite outbox ─ ssh -L 127.0.0.1:18095 → fnav-relay
Requests through the tunnel arrive at a separate listener with no localhost trust; the password is the same as on
the device (the server checks the same session cookie). One-time setup from a PC, after pi/deploy.sh:
cp tools/remote.env.example tools/.remote.env # server login, site name, nginx site file
tools/remote.sh setup # relay, nginx, tunnel user/key, device config, web copy
tools/remote.sh web # after UI changes
Details: docs/contracts/remote.md.
pip install -e .[dev]
python -m fnav.core --mock --port 8000 # http://127.0.0.1:8000/admin/ (password: fnav-dev)
python -m fnav.camera --fake # synthetic camera + recorder
python -m pytest # Python tests (core, camera, sensors, server)
node --test tests/display/*.test.mjs # display tests
The project was designed and written in about a day by Claude acting as lead/integrator with seven parallel
sub‑agents (backend, map renderer, HUD design, web UI, camera/recorder, sensors, system), coordinated through
written contracts in docs/contracts/. Plan and decisions: PLAN.md; hardware bring‑up notes:
docs/device-report.md.
Map imagery © Esri and its data providers (Esri, Maxar, Earthstar Geographics and the GIS user community).
MIT — see LICENSE. Third‑party parts keep their own licenses: fonts in web/display/ui/fonts/
(SIL OFL 1.1, see LICENSES.md there) and web/admin/vendor/mpegts.js (Apache‑2.0).