Add Codex handoff doc
This commit is contained in:
@@ -0,0 +1,169 @@
|
|||||||
|
# Xterra Overland Dashboard - Codex Handoff
|
||||||
|
|
||||||
|
## Repository
|
||||||
|
|
||||||
|
This repository is the source of truth.
|
||||||
|
|
||||||
|
Before making any code changes:
|
||||||
|
|
||||||
|
1. Read:
|
||||||
|
- docs/project-state.md
|
||||||
|
- docs/hardware-status.md
|
||||||
|
- docs/protocol.md
|
||||||
|
- docs/pico-architecture.md
|
||||||
|
- docs/ui-wireframes.md
|
||||||
|
- docs/implementation-roadmap.md
|
||||||
|
|
||||||
|
2. Inspect the existing codebase.
|
||||||
|
|
||||||
|
3. Do not assume documentation is correct.
|
||||||
|
Verify implementation against documentation.
|
||||||
|
|
||||||
|
4. Prefer incremental commits.
|
||||||
|
|
||||||
|
5. Run tests before proposing changes.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project Overview
|
||||||
|
|
||||||
|
The project is an overland vehicle monitoring and control system for a Nissan Xterra.
|
||||||
|
|
||||||
|
Architecture:
|
||||||
|
|
||||||
|
## Dashboard
|
||||||
|
|
||||||
|
- Raspberry Pi Pico 2 W
|
||||||
|
- 3.5" 320x480 ST7796S display
|
||||||
|
- FT6336U capacitive touch
|
||||||
|
- Active buzzer
|
||||||
|
|
||||||
|
Responsibilities:
|
||||||
|
|
||||||
|
- Live monitoring
|
||||||
|
- Relay control
|
||||||
|
- Alarms
|
||||||
|
- Touchscreen UI
|
||||||
|
|
||||||
|
## Cargo Controller
|
||||||
|
|
||||||
|
- ESP32 relay board
|
||||||
|
- GPIO16 = Starlink relay trigger
|
||||||
|
- GPIO17 = Fridge relay trigger
|
||||||
|
|
||||||
|
Important:
|
||||||
|
|
||||||
|
The ESP32 relay outputs do NOT carry load current.
|
||||||
|
|
||||||
|
They only trigger Bosch automotive relays.
|
||||||
|
|
||||||
|
High-current loads never pass through ESP32 relay contacts.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Communications
|
||||||
|
|
||||||
|
Primary:
|
||||||
|
|
||||||
|
- UART over CAT5
|
||||||
|
- 115200 baud
|
||||||
|
- Newline-delimited JSON
|
||||||
|
|
||||||
|
Backup:
|
||||||
|
|
||||||
|
- WiFi HTTP API
|
||||||
|
|
||||||
|
Fallback only:
|
||||||
|
|
||||||
|
- RS-485 (not currently planned)
|
||||||
|
|
||||||
|
Protocol specification:
|
||||||
|
|
||||||
|
docs/protocol.md
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Temperature Sensors
|
||||||
|
|
||||||
|
DS18B20 sensors:
|
||||||
|
|
||||||
|
- Fridge Zone 1
|
||||||
|
- Fridge Zone 2
|
||||||
|
- Rear Seat Area
|
||||||
|
- Outside Air
|
||||||
|
|
||||||
|
Missing sensors should report:
|
||||||
|
|
||||||
|
- temperature = null
|
||||||
|
- sensor_health = false
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Current Status
|
||||||
|
|
||||||
|
Completed:
|
||||||
|
|
||||||
|
- ESP32 firmware compiles
|
||||||
|
- UART protocol defined
|
||||||
|
- Pico architecture defined
|
||||||
|
- Pico state management implemented
|
||||||
|
- Alarm system implemented
|
||||||
|
- Communication service implemented
|
||||||
|
- HTTP fallback implemented
|
||||||
|
- Touch routing abstraction implemented
|
||||||
|
- Display abstraction implemented
|
||||||
|
- Unit tests implemented
|
||||||
|
|
||||||
|
In Progress:
|
||||||
|
|
||||||
|
- ESP32 hardware bring-up
|
||||||
|
|
||||||
|
Not Started:
|
||||||
|
|
||||||
|
- Pico display integration
|
||||||
|
- Pico touch integration
|
||||||
|
- Pico UART integration
|
||||||
|
- Real hardware drivers
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Development Rules
|
||||||
|
|
||||||
|
1. Prefer small commits.
|
||||||
|
|
||||||
|
2. Preserve existing architecture.
|
||||||
|
|
||||||
|
3. Keep business logic hardware-independent.
|
||||||
|
|
||||||
|
4. Hardware-specific code belongs in:
|
||||||
|
|
||||||
|
hardware/
|
||||||
|
|
||||||
|
5. Communication-specific code belongs in:
|
||||||
|
|
||||||
|
comms/
|
||||||
|
|
||||||
|
6. UI state transformation belongs in:
|
||||||
|
|
||||||
|
view models
|
||||||
|
|
||||||
|
7. Add tests whenever possible.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Immediate Goal
|
||||||
|
|
||||||
|
Current milestone:
|
||||||
|
|
||||||
|
ESP32 hardware bring-up.
|
||||||
|
|
||||||
|
Success criteria:
|
||||||
|
|
||||||
|
- Firmware uploads
|
||||||
|
- WiFi AP starts
|
||||||
|
- HTTP API responds
|
||||||
|
- Relay outputs work
|
||||||
|
- DS18B20 framework works
|
||||||
|
- UART initializes
|
||||||
|
|
||||||
|
Do not begin large UI rewrites until ESP32 hardware validation is complete.
|
||||||
Reference in New Issue
Block a user