Proto0 Hardware Hacker's Guide

This page describes nitty-gritty hardware details about the Proto0 hardware.

You probably want the Proto0 User Guide instead!

Hardware Overview

Proto0 Hardware Developer Annotations

  1. (Red) JTAG connector. Compatible with TagConnect TC2030-IDC-NL.
  2. (Purple) UART connector. Available for emergency debugging / bootloader debugging but requires DeviceTree changes to enable. Currently disabled.
  3. (Blue) Charger programming jumper. Connects the appropriate resistance to configure the charger for 2S LiPo charging on power-up. The jumper configuration is now standard across all Proto0 units — do not remove it.
  4. (Green) Charger thermal-override jumper. Intended to connect a dummy resistance to the battery charger to mimic a thermistor. This jumper is non-functional on most units. The firmware works around this by overriding the charger's NTC thermal check in software at startup (bq25792_temp_override() in src/power.cpp; no thermistor is fitted on Proto0), so thermal management does not depend on this jumper.
  5. (Yellow) Thermistor connector. Allows connecting an NTC thermistor to the battery charger. Unused on Proto0 (see note 4).
  6. (Cyan) Wake button. Intended to wake the battery charger + MCU from sleep. Non-functional on Proto0 — it is a known hardware defect (the WAKE_N line, shared with the charger's /QON, reads stuck-low and caused a GPIO interrupt storm), so the wake-button handler is disabled in firmware (CONFIG_APP_WAKE_BUTTON=n).

JTAG

JTAG is exposed via a TagConnect TC2030 interface. To connect to JTAG, you'll require the following hardware from TagConnect: