diff --git a/docs/hardware-bringup-checklist.md b/docs/hardware-bringup-checklist.md new file mode 100644 index 0000000..4b5b731 --- /dev/null +++ b/docs/hardware-bringup-checklist.md @@ -0,0 +1,162 @@ +# Hardware Bring-Up Checklist + +## ESP32 Cargo Controller + +### Compile + +* Firmware compiles successfully +* Required libraries installed: + + * ArduinoJson + * OneWire + * DallasTemperature + +### Upload + +* Board: ESP32 Dev Module +* Serial monitor opens at 115200 baud +* Boot message appears + +### WiFi AP + +Verify ESP32 creates AP: + +* SSID: XterraController + +### HTTP API + +Test: + +``` +http://192.168.4.1/status +``` + +Expected: + +* JSON response +* Battery placeholder values present +* Relay states present +* Sensor health present +* Network status present + +### Relays + +Test endpoints: + +``` +/relay/starlink/on +/relay/starlink/off +/relay/fridge/on +/relay/fridge/off +``` + +Verify: + +* GPIO16 controls Starlink relay channel +* GPIO17 controls Fridge relay channel +* Relay logic is correct +* If relay behavior is backwards, update relay active-high/active-low logic + +### DS18B20 Sensors + +Verify: + +* Sensor bus initializes +* Missing sensors do not crash firmware +* Connected sensors report temperatures +* Sensor fault state works + +### UART + +Verify: + +* UART initializes +* ESP32 does not crash without Pico connected +* Serial JSON protocol works once Pico or USB-UART test is connected + +--- + +## Pico Dashboard + +### Pico Boot + +Verify: + +* Pico 2 W boots +* MicroPython or CircuitPython environment works +* Main script runs + +### Display + +Verify: + +* ST7796S initializes +* Screen fill works +* Text drawing works +* Rotation/orientation is correct + +### Touch + +Verify: + +* FT6336U initializes +* Touch events are detected +* X/Y coordinates match screen orientation +* Bottom navigation zones match expected touch positions + +### Buzzer + +Verify: + +* Active buzzer turns on +* Active buzzer turns off +* Buzzer does not block UI loop + +### UART to ESP32 + +Verify: + +* Pico sends status request +* ESP32 responds with status response +* Pico parses response +* Pico updates app state +* Pico sends relay command +* ESP32 toggles relay +* Pico receives relay response + +--- + +## System Integration + +### Dashboard + +Verify: + +* Battery placeholder data displays +* Temperatures display +* Relay states display +* Communication state displays + +### Alarms + +Verify: + +* Communication loss alarm triggers +* Sensor fault alarm triggers +* Fridge high-temp alarm triggers +* Low battery alarm triggers +* Critical alarms trigger buzzer + +--- + +## Do Not Proceed Until + +Before moving to production wiring: + +* ESP32 firmware boots reliably +* Relays behave correctly +* UART protocol works +* Pico display works +* Pico touch works +* Buzzer works +* No high-current loads pass through ESP32 relay contacts