# 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