Notes & FAQ
A few things that aren't obvious from the schematic alone.
The two I2C buses are not interchangeable
This board has two independent I2C buses:
- Internal bus (
J6STEMMA QT) — always-on, shared with the charger and the fuel gauge. Adding your own devices here means sharing bus time and address space with the board's own power-management traffic. - User bus (
J203STEMMA QT, plus the two 8P8C jacks via the differential I2C buffer) — switched, and electrically isolated from the internal bus by the buffer IC. This is the right bus for your own sensors and peripherals.
The 8P8C jacks speak differential I2C, not Ethernet. They use the same PCA9615 scheme and pinout as the SparkFun QwiicBus EndPoint, so an ordinary Ethernet patch cable runs from a jack here to an EndPoint, and your Qwiic/STEMMA QT sensors plug into that. Don't plug a network switch into these — nothing will be damaged, but nothing will work either.
This board is a pass-through node and carries no termination resistors, so the far end has to be an EndPoint that provides them.
Downstream STEMMA QT/Qwiic accessories typically carry their own pull-up resistors, which combine in parallel as you chain more devices onto a bus — worth keeping in mind if you chain many devices onto the user bus.
VCC_2 is a separate, cuttable power rail on the 8P8C jacks
Each 8P8C jack carries two power nets, not one. VCC_1 feeds the differential I2C buffer
itself and is always tied to the board's 3.3V user rail. VCC_2 — routed on its own wire pair
— is a second, independent rail that only reaches VCC_1/GND through two solder-jumper
bridges (JP2 and JP3), which are shorted as shipped.
This mirrors the SparkFun QwiicBus reference layout, and it exists for one reason: to leave the
door open for powering hungrier sensors — soil-moisture ADCs, for example — at something other
than 3.3V, without a board revision. Cut JP2 and JP3 and VCC_2 is fully isolated from this
board's own supply and ground. An unpopulated 2-pin header sits on that same net pair, ready to
accept an external 5V or 12V boost converter once the jumpers are cut.
Cutting the jumpers only isolates the rail here. The EndPoint at the far end of the cable needs
its own jumpers set to accept the injected voltage instead of drawing VCC_2 from its own
VCC_1.
J7 and J8 aren't fitted at the factory
These headers exist in the schematic and PCB layout, but they're excluded from both the bill of materials and the pick-and-place file. The assembler leaves the pads bare. If you want them, solder a standard 2.54mm header strip on yourself.
Connector families are intentionally mismatched
The battery input (J4, JST PH) and the DC/solar input (CN5, screw terminal) use physically
different connector families on purpose, so a solar panel can't be plugged into the battery
input (or vice versa) even by accident.
Reverse-polarity protection doesn't cover USB-C
The battery and DC/solar inputs both have reverse-polarity protection, sized to each source's expected voltage range. USB-C doesn't — it's a mechanically keyed, spec-defined connector, so there's no practical way to connect it backwards in the first place.
Battery polarity
Double-check your battery pack's JST-PH cable polarity against the board's silkscreen marking before connecting. JST-PH battery cables aren't universally standardized across vendors, and a mismatched cable is one of the few ways to damage the board despite the onboard protection.
The charger taps the USB data lines through cuttable bridges
The USB-C D+ and D- lines are shared. Each one meets the ESD diode D5, the MCU's native USB
peripheral, and the charger's BC1.2 detection input. The three branches join at D5 itself,
whose footprint carries the junction internally so the clamp sits at a single star point.
The charger's branch runs through R9 (D+) and R11 (D-). These are not fitted resistors.
They are 0603 pads with a 0.3 mm copper bridge built into the footprint, shorted from the
factory and excluded from the assembly BOM. The charger therefore sees the data lines directly,
and BC1.2 detection works as intended on a prototype out of the box.
The bridges exist so the link can be broken later without a board revision. If the charger's input capacitance turns out to disturb USB enumeration — most likely during firmware flashing — cut the bridge through the soldermask window and, if a real value is wanted, hand-solder a 0603 resistor onto the same pads.
JUMP_CHGR_GND2 is a three-way solder jumper that grounds the charger-side pins after a cut:
bridge the centre pad to one outer pad to ground D+, to the other to ground D-. Grounded is the
correct resting state for those pins, since a floating detection input can read as anything.
:::warning Cut before you ground
Bridging JUMP_CHGR_GND2 while R9/R11 are still intact shorts the live USB data lines to
ground and kills the port. Cut the bridges first, then ground. Nothing on the board prevents
this — the jumper is an open footprint and the bridges are declared as net ties, so neither
DRC nor the ratsnest will flag the mistake.
:::
Cutting a bridge also puts the board out of step with the design files, which continue to show the nets as connected.
Thermistors are required, not optional, for full charger/fuel-gauge behavior
The charger's JEITA temperature-qualified fast charging and the fuel gauge's temperature
compensation both depend on their respective thermistor inputs (J302 and J401) actually
having a thermistor attached. Without them, both ICs still function, but you lose
temperature-qualified charging and accurate temperature-compensated state-of-charge.