SouthPing · the probe's electrics, built by hand

Probe Wiring Guide

How to build one probe's complete electrical assembly without a custom circuit board: the FireBeetle on a terminal shield, everything else on a solderable breadboard, and every connection drawn, done and checked one at a time. It is written for a builder who can hold an iron but has wired very little — nothing is assumed, and where this project does not know something, the page says so instead of guessing.

Companion to buoy-parts-book.html, carrier-pcb-brief.html, battery-pack-wiring.html and thermal-probe-wiring.html. Every net — every point that is the same piece of copper, one wire's worth of connections whatever its shape — and every pin comes from device/hardware/carrier/connection-table.csv, the electrical contract — the table the fabbed carrier's netlist is checked against, row for row (ADR 0017). The route — shield plus daughter board — was decided on 2026-09-30. Numbers carry [M] measured, [D] datasheet, [S] sliced or [C] computed. The text was brought up to date on 2026-11-04; the drawings are the 2026-09-30 set with stale labels corrected, so a caption is newer than its drawing.

⚠ The decision this page does not make: whether this board flies

The carrier's rev. 3 order spec decided that the hand-built carrier never flies (decision 3: “C is bench-only, forever. All three probes fly Track A boards”). That ruling was written for Track C, an FR-4 protoboard with SOT-23 breakout carriers; the shield-and-breadboard build on this page is a third configuration, and the same ruling covers it by plain analogy.

This page builds it to flight standard anyway — strain relief, no push-on jumpers in the hull, conformal coat, every joint checked — so that the choice stays open. Flying it would overturn decision 3, and that takes an ADR after bench gates ①–④ have passed on a board built from this page. Until then the decision is open (DOC-18), this board is a bench and candidate build, and no hull goes in the water on the strength of this page.

Both Track A boards are now in hand: the carrier (ordered 2026-10-02, rev. 4, five assembled, JLCPCB W2026100309193023, box opened 2026-10-13) and the solar combiner (ordered 2026-10-03, five, JLCPCB W2026100401592470, arrived 2026-10-15). Carrier boards 1–3 have been built and level since 2026-10-28, the charger on J5 of all three since 2026-10-29; no board has been built from this page. The carrier order went without waiting for a board built from this page, so this build is now the bench rig and the fallback, and the fabbed carrier is the other's (ADR 0017).

On this page

The whole probe at a glance

Power comes in from three panels and a six-cell pack, meets at the charger, and reaches the daughter board as one pair of wires on J5. On the board it becomes three rails: an always-on 3.3 V rail, a GPS rail that is on only while a fix is taken, and a modem rail that is on only for a transmit window. Fifteen wires carry 3.3 V, ground and thirteen signals across to the shield, where the FireBeetle sits.

P123 panel 1V+ / V− padsP123 panel 2V+ / V− padsP123 panel 3V+ / V− padssolar combiner3 × SS14, bandtoward the output;upper shellXHcharger #4755bq24074VBUS, GND holes ← solarLIPO, GND pads → J5THM link cutTHERM: NTC ‖ 200 kat the pack (ADR 0018)Load Out: taped overbattery pack6 × NCR18650GA, parallel1.6 A fuse in the + legMAX17048inline: pack on theLEFT JST-PH, chargeron the RIGHTJST-PHDAUGHTER BOARD (ElectroCookie)ALWAYS ONGPS DOMAIN — switched by IO25MODEM DOMAIN — switched by IO26J5F1U1 MCP1700JP13V3 railQW1 · SOCK_BARO · BME seatJ7 · J8 · J9U2QW23V3 in, 3V3_GPS outU3JP2J6VBAT tapped BEFORE F1DFR0923 shieldFireBeetle 2 ESP32-Eplugged in on topLED switch: OFFVIN 7–24 V: empty5V terminals: empty15 wiresI²C0, always onMAX17048 0x36 · BMP581 0x47BME280 0x77SAM-M8Q GPSI²C1: 0x42, 0x47RockBLOCK 9603VBAT on pin 8UART + On/Offantenna linkAmphenol 135110 plug → 9603jack ← Maxtena SMA-maleharness portsJ7 → NTC at the packJ8 → DS18B20 (thermal page)J9 → hull leak padsShaded regions are the three power domains.Orange is the pack voltage; red is the 3.3 V rail.The charger is not in the discharge path: the pack,its LIPO pad and J5 are one node.
The whole probe. Everything inside the dashed outline is the daughter board this page builds; the FireBeetle sits on the DFR0923 shield to its right. The charger is beside the discharge path, not in it: the pack, the charger's BAT pad and J5 are one node. Not drawn: the second BMP581, on the GPS's second Qwiic port (§7.6).

The schematic, and every net

This is the drawing to check your finished board against, connection by connection. It is a hand-made snapshot of the CSV as of 2026-09-30, and the CSV has moved since — the caption under the drawing lists what it gained: the CSV stays the contract, and a later change to it does not update this page by itself (the same drift DOC-11 records for the carrier spec). If the two ever disagree, the CSV wins.

ALWAYS-ON POWERJ5 chargerto #4755 LIPO / GNDBAT+1GND2VBATto U3 — tapped BEFORE F112F1 1.1 A hold12C1 1 µFVBAT_FU1 MCP1700-3302E/TOVIN2VOUT3GND13V3_RAW12C2 1 µF12C3 10 µF12JP1 shunt3V3MODEM RAIL — ON ONLY FOR A TRANSMIT WINDOWU3 TPS22918on a SOT-23-6 adapterVIN1GND2GNDON3VOUT6QOD5CT4VBATRB_EN12R2 100 kΩVBAT_RB12JP2 shuntVBAT_RB_SWJ6 RockBLOCKto the 9603’s 10-way connectorVBAT1GND2GNDRX3RB_RXTX4RB_TXOn/Off5RB_ONOFFGPS RAIL — ON ONLY FOR A FIX · I²C1U2 TPS22918on a SOT-23-6 adapterVIN13V3GND2GNDON3VOUT6QOD5CT4GPS_EN12R1 100 kΩ3V3_GPSQW2 Qwiicto the SAM-M8Q, 0x423V32GND1GNDSDA3SDA1SCL4SCL1SENSOR BUS · I²C0 · ALWAYS ONQW1 Qwiicto the MAX17048, 0x36GND1GND3V323V3SDA3SDA0SCL4SCL0SOCK_BARO7-way female · BMP581, 0x471 INT2 SDO3 CSB4 SDASDA05 SCLSCL06 GNDGND7 3V33V3BME280 seatSOCK_BME in the CSVGNDGND3.3V3V3SDASDA0SCLSCL0SENSE PORTS — HARNESSES TO THE PACK, THE PROBE, THE HULLJ8 DS18B20DATA1GND2GND3V33OW_DATA12R3 4.7 kΩ3V3J7 NTCEXC1vacant2SENSE3SENSE_EXCNTC_SENSE12R4 10 kΩJ9 leakPAD1vacant2GND3GND12R5 100 kΩSENSE_EXCLEAK_SENSE12C6 100 nFDAUGHTER BOARDDFR0923 SHIELD + FIREBEETLE15 wires cross this line: 3V3, GND and 13 signalsSOCK_FBFireBeetle 2 ESP32-Eseated on the DFR09233V33V33V3GNDGNDGNDGPS_ENIO25D2RB_ENIO26D3RB_ONOFFIO14D6SDA0IO21SDASCL0IO22SCLSDA1IO18SCKSCL1IO19MISORB_RXIO17TX2 ?RB_TXIO16RX2 ?OW_DATAIO4D12SENSE_EXCIO13D7NTC_SENSEIO39A1LEAK_SENSEIO35A3
Every net in connection-table.csv except the bench-only SOCK_DEVKIT, which this route does not use and which left the table on 2026-10-02 with the fabbed board's layout (ADR 0017); the same day NTC_SENSE moved from IO34 to IO39 (the FireBeetle loads IO34 with its own battery divider) and is drawn so here, and the table gained the parts the fabbed carrier's reviews added, none of them drawn in this guide: Q1 (a MOSFET at J5 that blocks a reversed pack, with the new net VBAT_IN), C7 and C10 (1 µF at each load switch's input), C8 and C9 (4.7 nF on each switch's CT pin), R6 and R7 (100 Ω in the DS18B20 port's supply and data), JP3 (an open solder jumper to the module's VCC), J10 (a five-pin service header), SOCK_BME and the Qwiic shells on GND; and the charger port became a five-way plug with ground on pin 5, where this build's two-way terminal has it on pin 2. If you build after that date, add C7 beside U3 and the two CT capacitors (§7.6), and know what the rest buys: without Q1 a reversed pack lead is not survivable, and without R6 and R7 a flooded probe cable can pull the always-on rail down. A net name in a flag means the same copper wherever that name appears. Red crosses are pins that connect to nothing on purpose. The dashed BME280 seat is SOCK_BME in the CSV. CT, QOD: drawn floating, as the table had them on 2026-09-30 — the fabbed carrier now puts 4.7 nF on CT, and so should you (§7.6).

The same thing as a table, one row per net, as the CSV stood on 2026-09-30. The BME280 seat and the other parts the CSV gained on 2026-10-02 are not in it — the caption above lists them.

NetEvery pin on it (ref:pin, CSV order)What it does
VBATJ5:1 · F1:1 · U3:1The pack node, straight from the charger's LIPO pad. Feeds F1 and, tapped before the fuse, U3
VBAT_FF1:2 · U1:2 · C1:1The pack after F1 — the regulator's input, bypassed by C1
3V3_RAWU1:3 · C2:1 · C3:1 · JP1:1The regulator's output before JP1. C2 and C3 hold it steady; JP1 pin 1 is where you first measure 3.3 V
3V3JP1:2 · SOCK_FB:3V3 · QW1:2 · SOCK_BARO:VDD · U2:1 · R3:1 · J8:3The always-on 3.3 V rail: the FireBeetle's 3V3 pin, the sensor bus, U2's input, the DS18B20
3V3_GPSU2:6 · QW2:23.3 V for the GPS only, and only while IO25 holds U2 on
GPS_ENSOCK_FB:IO25 · U2:3 · R1:1IO25 turns the GPS rail on. R1 holds it off at boot and whenever the MCU is unpowered
RB_ENSOCK_FB:IO26 · U3:3 · R2:1IO26 turns the modem rail on. R2 holds it off at boot and through a reset
SDA0SOCK_FB:IO21 · QW1:3 · SOCK_BARO:SDASensor-bus data: MAX17048, BMP581 (and the BME280 seat, SOCK_BME)
SCL0SOCK_FB:IO22 · QW1:4 · SOCK_BARO:SCLSensor-bus clock, same three devices
SDA1SOCK_FB:IO18 · QW2:3GPS-bus data. Nothing but the SAM-M8Q ever goes on this bus
SCL1SOCK_FB:IO19 · QW2:4GPS-bus clock. Its only pull-ups are on the GPS board
OW_DATASOCK_FB:IO4 · J8:1 · R3:21-Wire to the DS18B20. R3 pulls it up; the sensor only ever pulls it down
SENSE_EXCSOCK_FB:IO13 · J7:1 · R5:1IO13 goes high only for the hourly read: it powers the NTC divider and, through R5, the leak pads
NTC_SENSESOCK_FB:IO39 · J7:3 · R4:1The NTC/R4 divider's middle, read by ADC1 on IO39
LEAK_SENSESOCK_FB:IO35 · R5:2 · J9:1 · C6:1The leak pads' sense node on IO35: high when dry, pulled down when water bridges the pads
GNDU3:2 · J5:2 · J6:2 · J8:2 · J9:3 · U1:1 · U2:2 · C1:2 · C2:2 · C3:2 · C6:2 · R1:2 · R2:2 · R4:2 · QW1:1 · QW2:1 · SOCK_BARO:GND · SOCK_FB:GNDOne ground for everything
VBAT_RBU3:6 · JP2:1U3's output, before JP2 — the modem rail while IO26 is high
VBAT_RB_SWJP2:2 · J6:1The modem rail after JP2, to J6 pin 1 and the modem's pin 8
RB_ONOFFJ6:5 · SOCK_FB:IO14IO14 to the modem's On/Off pin. Wired; whether firmware uses it is FW-10
RB_RXSOCK_FB:IO17 · J6:3The modem receives on this line: the ESP32 transmits on IO17
RB_TXSOCK_FB:IO16 · J6:4The modem transmits on this line: the ESP32 receives on IO16

Three things the CSV says that older documents do not

The modem's rail taps VBAT before F1, on purpose. A 1.1 A polyfuse carries real resistance, and several hundred millivolts lost across it at the modem's ~500 mA would eat the margin against its 3.0 V minimum [D] (ADR 0014). The pack fuse protects that path instead.

J6 has five terminals, not four. Pin 5 is RB_ONOFF on IO14. The Track C card's port table and bring-up still show four.

There is no RB_5V, no BOOST_EN and no C4/C5. Those names left the design with ADR 0014 on 2026-09-08; IO26 now drives RB_EN.

Parts and tools

Quantities are for one probe and for three. “Owned” is what parts.md and inventory.md record; the procurement documents own the numbers, and this table only gathers what this build touches.

Owned

PartRecordedPer probeNote
FireBeetle 2 ESP32-E, DFR0654-F, headers fitted31All three deploy and sit on fabbed carrier boards since 2026-10-27, so none is free for this build. Low Power Pad left uncut (decided 2026-11-03); the sleeping floor, ~648 µA [C], is still to be measured on each board (FW-30)
Adafruit bq24074 charger #47557, two dead1The charger since 15 October (ADR 0018). Three are modified and charging in the chains of boards 1–3; two are dead since 2026-10-26, killed by a reversed pack plug (FW-27); two are unmodified spares, to be modified and metered (§7.1) before power
Adafruit MAX17048 fuel gauge #55808, two bad, one suspect1Three are on boards 1–3, two are new spares; two are bad (each answered at 0x36 with a fixed voltage, FW-26) and one is suspect, all kept labelled
DFRobot Fermion BMP581, SEN06673 + 3, one bad1Three more arrived 2026-10-30; one of the first three is bad (it froze a bus scan), kept labelled
SparkFun BME280, SEN-13905, with headers5: three on boards, one bad, one spare1Both orders arrived (2026-10-02, 2026-10-28); the bad one is kept labelled. Check the packing slip: the Qwiic board has a near-identical name
SparkFun SAM-M8Q GNSS, GPS-152103, one on each of boards 1–31Two were ordered 2026-10-02 (SparkFun order 000460515); the inventory does not record that arrival, but boards 1–3 each carry one
DS18B20 waterproof probe31Board 1's probe was rung out by diode test on 2026-10-15 (black = GND [M]); the other two are not (HULL-28)
RockBLOCK 9603 (SMA), v3.D21Third to buy — ask which revision ships
Maxtena M1621HCT-P-SMA antenna21Third to buy
Amphenol RF 135110-03-06.00 cable11Two to buy
Voltaic P123 panel3 + 3, the second set unidentified3A second set of three exists since 2026-11-03, on XH plugs into combiner board 2, unidentified (FW-29). Six more to buy, less this set once identified
Panasonic NCR18650GA, protected19 + 20 ordered6The pack has its own page
MCP1700-3302E/TO regulator10 in hand1Bench gate ④ passed 2026-10-14 on fabbed board 1: flat face GND–VIN–VOUT as drawn, 3.34 V out [M]
Qwiic (JST-SH) to male-header cable, 150 mm42QW1 to the gauge, QW2 to the GPS — two more for three probes
JST-PH 2-pin lead, 100 mm10see §7.1“Battery/panel leads”; the pack page uses one; one in each of the three charging chains
Kester 44 solder, 63/37, 0.020″1—Fine for every joint here
INA219 current sensor4bench±0.4 mA floor [M]: fine for the modem's transmit current, useless for sleep current

Ordered 2026-09-30

PartQtyWhat it is for
DFRobot DFR0923, FireBeetle 2 terminal-block shield4The FireBeetle plugs into it; every pin comes out on a screw terminal. 61 × 93.5 mm [D]
ElectroCookie solderable breadboard, 5-pack + 1 mini1 packThe daughter board; the mini is practice, and the solar combiner if you build that by hand (§7.2)
ElectroCookie 6-colour pack + 7 screw terminals1 packSpare boards; the terminals' pitch and size were not on the listing — check them
DFRobot FIT0181, 2-pin screw terminal203.5 mm pitch [D] — it does not sit on the 2.54 mm grid. Bench use only; buy 2.54 mm terminals for the board

These four were ordered 2026-09-30, and their arrival is recorded nowhere — not in inventory.md, the cost log or a backlog row. The slip must be found and the inventory written from it.

To buy

PartPer probeThree probesPlain description
TPS22918 load switch, SOT-23-6 (U2, U3)26Still to buy for this build (“buy 8”). The fabbed carrier needs none: the fab places both on each board
SOT-23-6 to DIP adapter board26 + sparesA tiny board with six plated pads at the SOT-23-6's 0.95 mm pitch and six 2.54 mm pins. No current rating applies at these loads. Buy a pack: the first one is practice. On bom-carrier.md's Track C order list as “1 pack”
Polyfuse, 1.1 A hold, radial (F1)13On bom-carrier.md's Track C order list; nothing records it as bought
Resistors, through-hole100 kΩ ×3, 10 kΩ ×1, 4.7 kΩ ×1×3 eachR1, R2, R5; R4; R3
Ceramic capacitors, through-hole1 µF ×2, 10 µF ×1, 100 nF ×1×3 eachC1, C2; C3; C6. Building after 2026-10-02, add 1 µF ×1 (C7) and 4.7 nF ×2 (the CT capacitors, §7.6)
2-pin male header + shunt26JP1, JP2: a 2-pin header with a removable shunt — a small plastic cap that bridges the two pins; pull it to open the circuit so a meter can sit in its place
Female header strip, 2.54 mm, turned-pin7-way ×1, 4-way ×3×3SOCK_BARO; the BME280 seat; QW1 and QW2 for bench plugging. On bom-carrier.md's Track C order list, cut to length
PCB screw terminal, 2.54 mm pitch16 positions48J5 2, J6 5, J7 3, J8 3, J9 3. Rated at least 1 A per position: J5 and J6 carry the modem's 470 mA burst [D] (0.45 A measured [M])
22 AWG solid-core hookup wire8 colours—red, black, orange, blue, yellow, white, purple, green (§7.4)
Silicone stranded wire20 AWG red/black; 24 AWG red/black—20 AWG for the pack and modem rail, 24 AWG for the panels' leads (architecture's wire rules)
1N5817 Schottky diode39Only for a combiner built by hand; the fabbed combiner board arrives with its three SS14 placed (§7.2). Not on any order: buy them only if a combiner is built by hand
10 kΩ NTC thermistor, leaded26One for J7; one for the charger's THERM pad, in parallel with a 200 kΩ resistor (§7.1). Owned, not to buy: 15 from the DigiKey order of 2026-10-02 (Vishay NTCLE100E3103JB0, B 3977 K [D])
Pack fuse 1.6 A, soldered inline13uxcell T1.6A square radial-lead micro fuse, slow-blow, soldered into the + lead, no holder; 20 owned, the first fitted 2026-10-18. Five of the twenty are bad (three open, two resistive) and the part is in question (FW-28), so: pliers as a heat sink on each leg and a few seconds of iron; the fuse metered 0.000 on the Klein's 2k range before it goes in; 0.00 V across it with the board drawing, read before the hull closes
JST-XH 2-position header (B2B-XH-A); housing (XHP-2)1; 13; 3Combiner → charger, the one connector in the solar path by the design; the panels are soldered to the combiner (architecture's connector rules), but as built every panel lead is plugged too (FW-29, §7.2). The two wires are pre-crimped 22 AWG XH leads, 305 mm [D], from the carrier's order. Ordered 2026-10-03 and arrived 2026-10-15, ten of each, DigiKey 102021131 (455-B2B-XH-A-ND and 455-2266-ND) — bom-solar-combiner.md
JST-PH 2-pin lead, plug at each end13Gauge's right port → charger: the owned 100 mm leads, one in each charging chain
RockBLOCK 10-way PicoBlade cable13Check what shipped with your units first; Ground Control sells one
Flux, solder wick, isopropyl alcohol, a stiff brush——No-clean flux, gel or liquid
Heatshrink assortment; conformal coating; masking for it——§9
Bootlace ferrules (optional)——For stranded wire into screw terminals

Tools

Soldering, the ten-minute version

GOODconcave, shiny, the lead's outlinevisible; wets pad and leadCOLDdull, grainy, a ball sitting onthe pad; reheat with fluxSTARVEDthe hole is not filled; padcopper shows; add solderBRIDGEDtwo pads joined; drag awaywith flux, or wick it offTHE TECHNIQUE, ONE JOINT1 Flux the pad and lead.2 Iron touches pad AND lead together, about two seconds.3 Feed solder to the JOINT, on the far side from the tip, not onto the iron.4 Solder off first, then iron.5 Hold still while it sets.iron tipsolder wirethe tip heats both; the solder melts on the hot joint and flows round it
What you are aiming for, and the three ways it goes wrong. All three are fixed the same way: fresh flux, then heat.
  1. Tin the tip. Hot iron, a touch of solder on the tip, wipe it on the sponge or brass wool. A shiny tip moves heat; a dull one does not.
  2. Flux first. A dab on the pad and the lead. Flux is what lets solder flow instead of balling up.
  3. Heat the pad and the lead together, for a couple of seconds — two to three is usual. Then feed solder to the joint, on the side away from the tip, not onto the iron. It should flow round the lead by itself.
  4. Solder away, then the iron away. Do not move the part while it sets.
  5. Header strips: solder one end pin only, check the strip sits flat and square, re-melt that one pin to straighten it if not, and only then do the rest.
  6. The SOT-23-6 adapter: flux all six pads; tin one pad lightly; slide the chip on with tweezers, pin 1 at the adapter's pin-1 pad, and re-melt that one pad so the chip drops flat; check under the magnifier that all six legs sit on their pads; then do the other five with a small amount of solder each. Finally, put the meter's continuity probes on each pair of neighbouring pins: a beep is a bridge.
  7. Undoing a mistake: flux the joint, lay solder wick on it, press the iron on the wick until the solder wicks up, lift both together.

⚠ Leaded solder and static: five habits

The Kester 44 you own is 63/37 tin-lead with a rosin flux. Work with a window open or a fume extractor pulling the smoke away from your face; keep food and drink off the bench; wash your hands when you stop; and never test a joint or hold a wire end with your mouth.

Static: before you pick up the load switches, the breakouts or the FireBeetle, touch something earthed, and work on a hard, non-carpeted surface.

Practise in this order

On the mini board: three resistors, then one header strip, then one SOT-23-6 adapter with a spare chip — and only then the real board. The adapter is the one joint on this page that is genuinely fiddly, and the first one is practice whoever does it.

The daughter board: floorplan and column map

A breadboard-style solderable board is a breadboard you can solder: each column of five holes either side of the centre channel is one piece of copper, and the long rails along each edge are separate. The listing did not publish the hole count or how the rails are tied, so check your board with the meter before soldering: continuity between two holes of the same five should beep; between neighbouring columns, between the two halves of a column, and between the two ends of a long rail (some boards split their rails in the middle) should be checked rather than assumed.

The plan keeps power on the left (J5, F1, U1, C1–C3, JP1 in columns 1–6), the modem on the right (U3 in 19–21, JP2 at 17–18 top, J6 in 26–30), the harness ports together along the bottom edge (J7 7–9, J9 11–13, J8 15–17), and the sensor sockets along the top. The GPS bus (QW2, top columns 25–28) is kept well apart from the sensor bus (top columns 1–15). On both edges the rail marked + is 3V3 and the rail marked − is GND; the + rails are joined under the board at column 3 and the − rails at column 6.

Why some columns are left empty: a terminal body covers the rail under it

A screw terminal's body is wider than its row of pins, and its depth is not published. So the plan assumes the worst: a terminal owns the two holes nearest the edge in its columns (i and j) and both bottom rail holes beneath it. Nothing else uses them. That leaves three usable holes (f, g, h) in every terminal column, and it means a terminal column can never reach a rail directly.

So the terminals sit with a free column between each pair — columns 10, 14 and 18 — and those gap columns do the rail work: column 10 is a ground strip for R4 and C6, column 14 carries J9's ground to the rail, column 18 carries J8's 3V3 to the rail. J5's ground reaches the rail through column 3, J8's ground and J6's ground through wires under the board. The generator that drew this page checks the rule: no part, link or wire uses a hole under a terminal, and no rail hole is used twice.

VBAT is on no rail. It lives in column 1 with J5:1 and F1, and leaves by exactly one wire, under the board to U3 in column 19 — so nothing else can ever tap the unfused pack by accident.

−− GND++ 3V3++ 3V3−− GND112233445566778899101011111212131314141515161617171818191920202121222223232424252526262727282829293030abcdefghijJ5 charger12U1J7 NTC123J9 leak123J8 DS18B20123U3 adapterU2 adapterJ6 RockBLOCK12345QW1SOCK_BAROBME280 seatSOCK_BMEQW2F1C1C2C3C6R1R2R3R4R5JP1JP23V3IO13IO39IO35IO4IO26IO25IO17IO16IO14IO21IO22IO18IO19GND to the shield3V3 supplyGNDVBAT family (pack voltage)SDA (both buses)SCL (both buses)enables: IO25, 26, 14UART: RB_RX, RB_TXsense lines: IO4, 13, 34, 35Dashed: runs on the UNDERSIDE (insulated wire), the two rail ties included. Coloured stub + IO name: one of the 15 wires to the shield.Green blocks: screw terminals, drawn over every hole and rail hole they own — nothing else uses those. Each five-hole column half is one piece of copper.Dashed red outline: the BME280 seat, SOCK_BME in the CSV. The DFR0923 shield with the FireBeetle (SOCK_FB) is off this board.
The daughter board from above, component side, columns numbered as most breadboard-style boards print them. Count your board's columns before you solder anything: this plan uses 30, and the listing did not say how many yours has. The two dashed wires run on the underside.

The same plan as a list. “link” is a short wire on the component side; “wire” runs under the board; “shield wire” is one of the fifteen.

StripNetHole: what goes in it
1BVBATg: wire VBAT→19B · h: F1:1 · j: J5:1
1TGNDa: QW1:1 · b: link GND→T−1
2BGNDg: link GND→3B · j: J5:2
2T3V3a: QW1:2 · b: link 3V3→T+2
3BGNDf: C1:2 · g: link GND←2B · h: U1:1 · i: wire GND←27B · j: link GND→B−3
3TSDA0a: QW1:3 · c: link SDA0→8T · e: shield wire IO21
4BVBAT_Ff: C1:1 · g: F1:2 · h: U1:2
4TSCL0a: QW1:4 · c: link SCL0→9T · e: shield wire IO22
5B3V3_RAWg: JP1:1 · h: U1:3 · i: C2:1 · j: C3:1
5T(BARO INT, no-connect)a: SOCK_BARO:INT
6B3V3f: shield wire 3V3 · g: JP1:2 · j: link 3V3→B+6
6T(BARO SDO, no-connect)a: SOCK_BARO:SDO
7BSENSE_EXCf: R5:1 · g: shield wire IO13 · j: J7:1
7T(BARO CSB, no-connect)a: SOCK_BARO:CSB
8B(vacant)j: J7:2
8TSDA0a: SOCK_BARO:SDA · c: link SDA0←3T · d: link SDA0→14T
9BNTC_SENSEg: R4:1 · h: shield wire IO39 · j: J7:3
9TSCL0a: SOCK_BARO:SCL · c: link SCL0←4T · d: link SCL0→15T
10BGNDg: R4:2 · h: C6:2 · j: link GND→B−10
10TGNDa: SOCK_BARO:GND · b: link GND→T−10
11BLEAK_SENSEf: R5:2 · g: shield wire IO35 · h: C6:1 · j: J9:1
11T3V3a: SOCK_BARO:VDD · b: link 3V3→T+11
12B(vacant)j: J9:2
12TGNDa: SOCK_BME:GND · b: link GND→T−12
13BGNDg: link GND→14B · j: J9:3
13T3V3a: SOCK_BME:3.3V · b: link 3V3→T+13
14BGNDg: link GND←13B · j: link GND→B−14
14TSDA0a: SOCK_BME:SDA · d: link SDA0←8T
15BOW_DATAg: shield wire IO4 · h: R3:2 · j: J8:1
15TSCL0a: SOCK_BME:SCL · d: link SCL0←9T
16BGNDg: wire GND→B−18 · j: J8:2
17B3V3g: link 3V3→18B · h: R3:1 · j: J8:3
17TVBAT_RB_SWc: JP2:2 · d: wire VBAT_RB_SW→26B
18B3V3g: link 3V3←17B · j: link 3V3→B+18
18TVBAT_RBb: link VBAT_RB←19T · c: JP2:1
19BVBATf: U3:1 · h: wire VBAT←1B
19TVBAT_RBb: link VBAT_RB→18T · e: U3:6
20BGNDf: U3:2 · j: link GND→B−20
20T(U3 QOD, no-connect)e: U3:5
21BRB_ENf: U3:3 · g: shield wire IO26 · i: R2:1
21T(U3 CT, no-connect)e: U3:4
22B3V3f: U2:1 · j: link 3V3→B+22
22T3V3_GPSc: link 3V3_GPS→26T · e: U2:6
23BGNDf: U2:2 · j: link GND→B−23
23T(U2 QOD, no-connect)e: U2:5
24BGPS_ENf: U2:3 · g: shield wire IO25 · i: R1:1
24T(U2 CT, no-connect)e: U2:4
25TGNDa: QW2:1 · b: link GND→T−25
26BVBAT_RB_SWh: wire VBAT_RB_SW←17T · j: J6:1
26T3V3_GPSa: QW2:2 · c: link 3V3_GPS←22T
27BGNDh: wire GND→3B · j: J6:2
27TSDA1a: QW2:3 · e: shield wire IO18
28BRB_RXg: shield wire IO17 · j: J6:3
28TSCL1a: QW2:4 · e: shield wire IO19
29BRB_TXg: shield wire IO16 · j: J6:4
30BRB_ONOFFg: shield wire IO14 · j: J6:5
rails+ 3V3, − GNDC2:2 → B− rail, col 5 · C3:2 → B− rail, col 4 · R1:2 → B− rail, col 24 · R2:2 → B− rail, col 21 · T+ col 3 ↔ B+ col 3, under the board · T− col 6 ↔ B− col 6, under the board · the GND wire to the shield leaves the B− rail at col 25

SOCK_BME is the CSV's own designator since 2026-10-02; the fabbed carrier seats the BME280 on a 1×4 socket for this I²C row plus a 1×6 that only holds the SPI row. The DFR0923 shield with the FireBeetle, SOCK_FB in the CSV, is off this board, reached by the fifteen wires (§7.4).

Build the board low parts first

Underside wires first (they are easiest with the board bare), then links and resistors, then capacitors and the regulator, then the two adapters, then headers, and the screw terminals last. A terminal's body sits over holes i and j and the rails in its columns; the plan leaves all of those empty, so nothing has to be squeezed under it.

7.1

Power in: pack, gauge, charger, and J5

What this is

The pack's two wires reach the charger through the fuel gauge, and the charger's LIPO and GND pads hand the same node to J5. The charger is the Adafruit #4755 (bq24074) since 15 October (ADR 0018); the bq25185 it replaced has no thermistor pad, see the note below. The pack itself — cells, bus bars, fuse, plug — is the Battery Pack page; this chapter starts at its plug.

Parts

Drawing

battery pack6 × NCR18650GA parallelsee the Battery Pack page20 AWG silicone leads1.6 Apack fuse, 1.6 AJST-PHMAX17048 #5580silkscreen upLEFTRIGHTQwiic → QW1 (§7.5)PH lead solar pair (§7.2): marked lead → VBUS, the other → GND Adafruit bq24074 #4755links: THM cut · 1.0A cut · 0.5A bridgedLiPo Batt (JST-PH) ← the gaugeLoad Out: TAPED OVER —a regulated output, never the pack VBUSGNDOpt. Cap holes the pad row, in Adafruit’s silkscreen order: VBUSGNDTHERMISETCEPGOODCHGOUTGNDLIPOGND THERM, GND → the pair The charger’s own thermistor: the pair10 kΩ NTC ‖ 200 kΩ on thin wires,the bead at a cell (ADR 0018).Stops −2.3 to −0.4 °C, resumes just above0 °C [C]; ice and ISET prove it, not LED. 20 AWG silicone21J5 on the daughter board: 1 = BAT (VBAT), 2 = G (GND)
Power in. The pack and its fuse are the Battery Pack page's; this page starts at the gauge.

⚠ A plug is metered for sign before it mates

Before the pack's plug goes into the gauge, put the meter on the unmated plug: red probe on position 1, black on the ground position, a plus sign expected. A minus sign means the plug is wired backwards — do not mate it; the same for every plug after it that carries power. One pack plugged into a gauge with + and − swapped, before 2026-10-25, opened the pack fuse and killed a MAX17048 (its CELL pin is rated to −0.3 V [D]) and both bq24074 chargers then owned, which have no reverse protection; the carrier's Q1 saved the carrier only, and this board has no Q1. The bench cable's XH end has no key against J5: only the meter protects (FW-27).

Steps

  1. The gauge goes inline — this is settled. Once its plug has passed the sign check above, the pack's plug goes into the gauge's left JST-PH port, board silkscreen up; a lead from the right port goes to the charger's LiPo Batt socket — never Load Out, which is a regulated output and would charge a pack plugged into it toward 4.4 V [D]. The two gauge ports are electrically the same (Adafruit: “connect the battery to either one, then the load/charger to the other”); left and right is a convention so every board can be checked against one picture.
  2. Modify the charger before it is ever powered — three things, in this order, each checked (ADR 0018). First the THERM link (the spec and the drawing call it THM), the printed bar between two dots just above the THERM pad: cut it with the knife, then meter THERM to GND — open, megohms or OL. A partial cut leaves the board's own 10 kΩ in parallel with the thermistor and the cold gate can then never trip; the open check must come first, and afterwards a reading below about 6.5 kΩ at room temperature [C] says the link is still there. Second, the charge-rate links: cut 1.0A, bridge the 0.5A pads with a blob of solder; meter ISET to GND: 2.0 kΩ [C] — 1.99 kΩ was read [M] on charger 1 (1.0 kΩ means unmodified; 667 Ω means the 1.0A link survived and the charge would be 1.33 A; the cut link's own pads read 3 kΩ, never open — all [C]). Then the back-side EN1/EN2 jumpers: EN2 to OUT and EN1 to GND each a beep — they arrived bridged [M] though the board file shows both open, and both open means a 100 mA input limit. Third, tape over Load Out.
  3. Solder the thermistor pair to THERM and the GND beside it, through a 2-pin XH break near the charger so the pack and the charger can part without unsoldering; label it, it is not keyed — the solar lead's XHP-2 fits it too. The 10 kΩ NTC and the 200 kΩ resistor in parallel at the far end of the twisted pair, so the bead can sit against a cell later; cover the pair's twisted joints with heat-shrink — bare, they leaked in the ice bag and the bead read +8 °C warm [M]. The gate was measured by ice on all three chargers and accepted as built on 2026-11-03 (ADR 0018, decision 3): charger 1 stops at about −2.3 °C, charger 2 at about −2.0 °C, charger 3 between −0.4 and −1.0 °C, and all three resume just above 0 °C [C]. The bare thermistor would stop at about +3 °C [C], inside the water SEA floats in. An unplugged pair reads as cold and the charger stops: keep the break plugged in whenever the charger has power.
  4. Solder the orange 20 AWG wire to LIPO and the black one to the GND pad next to it, at the right end of the row. Heatshrink is not possible on a pad, so add strain relief at the wire (a dab of hot glue or a tie to the board's mounting hole), never on the joint itself.
  5. Solder the solar pair into the two Opt. Cap holes: the marked lead into VBUS, the other into GND. It is soldered, not plugged, and it goes in the holes rather than the edge row because a through-hole holds a wire. Mind the polarity more than anywhere else on this page: VBUS sits after the board's own input diodes, so a swapped pair puts the panels' negative on a pin rated −0.3 V [D] and kills the chip.
  6. Land them on J5: orange to pin 1, black to pin 2. Leave the charger's USB-C socket and its DC jack empty in flight; the USB-C is the bench's way of charging a pack.

Why the charger changed under this page

The bq25185 (#6106) this page drew until 15 October was replaced: it has no thermistor pad. Adafruit's own schematic (Eagle file, fetched 2026-09-30) ties that board's TS/MR pin to ground through a fixed 10 kΩ resistor, R16, and the pinout page names no TS pad at all. Reaching the pin means lifting a grain-sized part, which this project does not do. Tying its boost enable to G would have cost current: the same schematic pulls EN up through 100 kΩ, R2, roughly 30–42 µA [C] for as long as the probe lives. The bq24074 (#4755) has its thermistor pad behind a printed link a knife can cut, and no boost to tie off; that is the whole of ADR 0018. The two bq25185s stay in the drawer.

Check

The pack's plug has been metered for sign (stop box above). Then, pack in and nothing on J5 yet: the meter across J5 pin 1 (+) and pin 2 reads the pack voltage, between 3.0 and 4.2 V and positive [D] — the pack's working range. The ISET pad to GND: 2.0 kΩ [C]. THERM to GND with the pair on: about 9.5 kΩ at 25 °C, 11.8 kΩ at 20 °C [C]; about half of that means the THERM link is still there. The gate itself is proven by ice on the bead and the ISET pad falling to zero, never by the charge LED: charger 1's CHG went dark in a stop and stayed dark while it charged [M]. Before the solar plug first goes into the combiner's J4: continuity from the marked lead's contact to VBUS, and none from it to GND; then, with the panels uncovered, J4 pin 1 on the combiner positive against pin 2 — the charger's input tolerates only −0.3 V the wrong way round [D].

If it is wrong

A negative reading on the unmated plug is a plug wired backwards: do not mate it. A negative reading at J5 with the pack in means the sign check was skipped: unplug the pack before anything else touches J5, and meter the gauge and the charger before trusting either. No reading: the pack fuse (FW-28), or the pigtail's crimp — the Battery Pack page's checks first. A reading that sags when you touch the wires is a cold joint at a pad; reflow it with fresh flux. THERM to GND reading about half the expected 9.5 kΩ with the pair on points at an uncut THERM link: unsolder the pair, cut again, meter open, refit.

7.2

Solar: three panels, three diodes, one pair

What this is

Each panel feeds the charger through its own Schottky diode, so a shaded panel cannot pull current out of the lit ones. The diodes live on a small combiner board next to the panels, so only one solar pair crosses the equator to the charger. The flight probes use a fabbed board, meteo-solar-combiner (ordered 2026-10-03, arrived 2026-10-15, five boards): three SS14 diodes placed by the fab, a pad pair and a strain-relief hole for each panel's leads, one 2-pin JST-XH header, and five meter pads — TP1–TP3 on each panel before its diode, TP4 on the output, TP5 on ground. A scrap of perfboard with three 1N5817 is the same circuit built by hand. Either way the panels' leads are soldered to the combiner, with no connector: the panels are bonded into the shell the combiner sits in, and the two never part. As built, every panel lead ends in an XH plug into a socket on the combiner's pad pair, on all three combiner boards; accept the plugs or solder is open (FW-29). The second set's plugs were crimped red to minus and caught by the sign check.

Parts

Drawing

P123 #1V+ V−SS14P123 #2V+ V−SS14P123 #3V+ V−SS14solar combiner board (upper shell)band = cathode,toward the outputJST-XHtwo 22 AWG XH leads,both black; + marked redsoldered at the chargercharger #4755VBUS (Opt. Cap hole)GND (Opt. Cap hole)Panel leads: 24 AWG silicone, soldered at both ends. The pair down: pre-crimped 22 AWG XH leads, soldered at the charger.
Three panels, three diodes, one pair to the charger. The diodes are SS14 on the fabbed combiner board and 1N5817 on a perfboard; the wiring is the same. The combiner sits by the panels so only one solar pair crosses the equator. Drawn soldered, as the combiner spec has it; as built, plugged (FW-29).

Steps

  1. Leads on the panels. Red to V+, black to V−, 24 AWG silicone. The panel is live in any light and the far ends of its leads are bare: keep it covered — face down, or taped over — from now until both leads are soldered to the combiner.
  2. Prove each panel's polarity before it is bonded into the hull. Uncover it, red probe on the red lead, black on the black: a positive reading. Cover it again. After bonding, a reversed panel is a destructive rework.
  3. Diodes on the combiner, band toward the output. On the fabbed board they arrive placed. On a perfboard each panel's red will go to a diode's plain end (anode); the three banded ends (cathodes) join into one positive bus, and the three blacks into one negative bus. Run the diode check below before any panel is soldered in.
  4. Solder each panel's leads to the combiner — no connector. Both wires go through the strain-relief hole first, so a pull lands on the board and never on a joint; red to the rectangular + pad. On a perfboard, lace them through a spare hole the same way. (Built plugged, as above: sign-check each panel plug first.)
  5. One JST-XH header on the output, pin 1 = +, and one pair down. Mark one of the two black leads red at both ends; the marked one goes in cavity 1 of the housing, the + side. At the charger the pair is soldered into the Opt. Cap holes, VBUS and GND, not plugged — §7.1.

Check

The bare combiner first, no panels, meter in diode mode: red probe on each panel-side point (TP1–TP3; on a perfboard, the diode's plain end), black on the output (TP4): 0.2–0.4 V [C] (combiner boards 2 and 3 read 0.21 V on the Klein [M]; a Schottky at the meter's small test current can read 0.15 V [C]). Probes swapped: OL. Then with the panels soldered in: a 1 kΩ resistor across the output, black probe on ground, one panel uncovered at a time. Its point reads that panel's voltage — a few volts; the open-circuit figure is 7.09 V at 25 °C [D] — and the output reads 0.2–0.4 V less [C]. Last, all three uncovered and one then covered: that panel's own point falls toward zero.

If it is wrong

A diode that reads the other way about on the bare board is reversed. So is the diode of a covered panel whose own point stays near the output voltage: the output is feeding the dark panel through it. Watching the output alone cannot show this — the other two panels hold it up either way. A negative reading at a panel's point is a panel wired backwards: harmless, and dead. Re-check every band against the drawing. Never put the charger's input above 10 V [D]: the bq24074 shuts its input off between 10.2 and 10.8 V [D]; the panels cannot reach that, a bench supply set wrong can.

7.3

The board's power section: J5 → F1 → U1 → JP1

What this is

The fuse, the regulator and its three capacitors make the always-on 3.3 V rail. JP1 is the rail's on/off switch, and later the place a meter goes to measure what the probe draws.

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND112233445566abcdefghijJ5 charger12U1QW1F1 1.1 AC1 1µC2 1µC3 10µJP13V3IO21IO22to 19B (underside)to 27B (underside)J5 → F1 → U1 → JP1 → 3V3 railU1 legs in columns 3, 4, 5 = pins 1, 2, 3so the FLAT face points at the bottom edgeJ5 owns holes i, j and the rails in columns1–2: its ground reaches the rail via column 3U1 from the FRONT — flat, marked face toward you, legs downMCP1700(marking)1GNDGND2VINVBAT_F3VOUT3V3_RAWMicrochip DS20001826E, Package Types and Table 3-1:TO-92 pin 1 GND, 2 VIN, 3 VOUT. Confirmed on the real part [M].
Columns 1–6. Read the regulator's legs off the datasheet drawing on the right, not off this page's memory of it, and then off the real part (bench gate ④, passed on fabbed board 1 on 2026-10-14).

Steps

  1. Under the board first: the two rail ties (+ rails at column 3, − rails at column 6), and leave room for the orange VBAT wire from column 1 (§7.10) and the black modem return into column 3, hole i.
  2. Links: column 2 to column 3 (hole g, black — J5's ground has no rail hole of its own, because J5's body covers it); column 3 to the − rail at column 3; column 6 to the + rail at column 6.
  3. C1 across columns 3 and 4 (hole f); C2 from column 5 to the − rail at column 5, C3 from column 5 to the − rail at column 4. Ceramic capacitors have no polarity.
  4. U1. Find pin 1 on the real part first: hold it flat, marked face toward you, legs down — Microchip's drawing then reads 1 GND, 2 VIN, 3 VOUT left to right (DS20001826E, Package Types; Table 3-1). Put its legs in columns 3, 4, 5 (hole h) with the flat face toward the bottom edge, so pin 1 lands in column 3.
  5. F1 from column 1 (hole h) to column 4 (hole g), bending the legs to fit.
  6. JP1 in columns 5 and 6 (hole g). Leave the shunt off.
  7. J5 last, pin 1 in column 1, pin 2 in column 2, hole j, wire entries facing the bottom edge.

Check

Unpowered: no beep between column 1 and the − rail, nor between column 5 and the − rail; a beep between column 2 and the − rail. Then the pack on J5 (its plug metered for sign first, §7.1), JP1 shunt off: column 4 reads the same as column 1 to within a few hundredths of a volt [C] — almost no current flows; JP1 pin 1 (column 5) reads 3.30 V ± 0.1 V [D] — the carrier spec's acceptance band; column 6 reads 0 V. Only now fit the shunt, and column 6 and both + rails read the same 3.3 V.

If it is wrong

About the pack voltage at JP1 means VIN and VOUT are swapped — U1 is in backwards. 0 V with the pack present: U1's GND leg is not in column 3, the column 2 → 3 link is missing, or F1 is open. Warm regulator with nothing connected: a short on the output; disconnect the pack and ring column 5 to the − rail. The pinout itself was bench gate ④ and passed on 2026-10-14 on fabbed board 1 (flat face GND–VIN–VOUT as drawn, 3.34 V out [M]); read the legs of the part you hold off the datasheet drawing all the same.

7.4

The fifteen wires to the DFR0923

What this is

3V3, ground and thirteen signals, one 22 AWG solid wire each, from the daughter board to the shield's screw terminals. The FireBeetle plugs into the shield last, after every wire is checked.

Parts

Drawing

daughter board — stripDFR0923 terminals (look for this label)6B3V33V33V3B− rail, col 25GNDGNDGND24BGPS_ENIO25D221BRB_ENIO26D330BRB_ONOFFIO14D63TSDA0IO21SDA4TSCL0IO22SCL27TSDA1IO18SCK28TSCL1IO19MISO28BRB_RXIO17TX2UNVERIFIED29BRB_TXIO16RX2UNVERIFIED15BOW_DATAIO4D127BSENSE_EXCIO13D79BNTC_SENSEIO39A111BLEAK_SENSEIO35A3Silk labels: DFRobot’s FireBeetle 2 ESP32-E pinout table; IO16/IO17 are missing from it.Whether the DFR0923 prints the same labels on its terminals is not published — read the board.
The fifteen wires. Colour by job, and a paper flag with the IO number on both ends of every wire — two wires share each colour except red and black.
WireNetESP32FireBeetle silkBoard stripSilk source
red3V33V33V36BDFRobot wiki: “3V3 outputs 3.3V”
blackGNDGNDGNDB− rail, col 25—
whiteGPS_ENIO25D224BDFRobot wiki “25/D2”
whiteRB_ENIO26D321BDFRobot wiki “26/D3”
whiteRB_ONOFFIO14D630BDFRobot wiki “14/D6”
blueSDA0IO21SDA3TDFRobot wiki “21/SDA”
yellowSCL0IO22SCL4TDFRobot wiki “22/SCL”
blueSDA1IO18SCK27TDFRobot wiki “18/SCK”
yellowSCL1IO19MISO28TDFRobot wiki “19/MISO”
purpleRB_RXIO17TX2?28BUNVERIFIED — not in DFRobot’s table; espboards.dev says TX2
purpleRB_TXIO16RX2?29BUNVERIFIED — not in DFRobot’s table; espboards.dev says RX2
greenOW_DATAIO4D1215BDFRobot wiki “4/D12”
greenSENSE_EXCIO13D77BDFRobot wiki “13/D7”
greenNTC_SENSEIO39A19BDFRobot vendor file: “IO39/A1”
greenLEAK_SENSEIO35A311BDFRobot wiki “35/A3”

⚠ Two things to read off the boards before the first wire goes in

IO16 and IO17 are missing from DFRobot's own FireBeetle pinout table. The carrier spec lists them as exposed, and a third-party pinout calls them RX2 and TX2, but the maker's table does not include them. They carry the modem's UART. Find two terminals on the shield you can prove are IO16 and IO17 — the silk on the FireBeetle and on the shield, or continuity from the FireBeetle's pin to the terminal with the FireBeetle seated and unpowered. If you cannot, stop: the modem has no UART on this route until that is answered.

DFRobot publishes no terminal-by-terminal list for the DFR0923. Its wiki gives counts — 5V ×3, 3.3V ×3, GND ×6, digital ×12, analog ×5, I2C ×3, SPI ×1 — and not the labels. The “look for” column is the FireBeetle's silk, which is what the shield most likely repeats; confirm each one by continuity before trusting it.

How a screw terminal grips a wire (side section)screw turns downthe clamp plate squeezesbare copper only — no insulationunder the clamp, no copper showingoutside it; tug test after tightening
The same grip on every screw terminal on this page.

Steps

  1. Shield first, empty. Leave its 7–24 V input terminal and the 5V terminals empty — nothing on this probe uses them — and set the LED switch to off: the wiki puts a status LED on every terminal but GND.
  2. Cut each wire to length with some slack, strip both ends, and flag both ends with the IO number before soldering anything.
  3. Board end: solder each wire into a free hole of the column the table gives. Solid wire, because it stays where you put it on a board.
  4. Shield end: strip a little at a time until the bare copper reaches the back of the clamp with none showing outside it. Insert, tighten, tug. One wire per terminal.
  5. Plug the FireBeetle in last, the right way round — match its pin labels to the shield's.

⚠ The FireBeetle is fed through its 3V3 pin, and nothing else

Its own regulator, LiPo charger and JST battery connector stay unused (architecture-power-and-wiring.md, the always-on domain): never plug a battery, or anything else, into the FireBeetle's battery connector.

With USB plugged in and JP1 fitted, two live 3.3 V sources — the MCP1700 and the FireBeetle's own regulator — would drive the same rail, and current can then flow backwards into whichever sits lower, which neither is designed to take. So pull JP1 whenever USB is connected, and fit it again only after USB is out.

Check

FireBeetle out, nothing powered: ring each of the fifteen from its board column to its shield terminal — a beep, and no beep to the two neighbouring terminals. Then with the FireBeetle seated, ring from each FireBeetle pin to its board column. Fifteen beeps, no extras.

If it is wrong

A wire landed one terminal over is the classic fault, and it is silent until a sensor “does not answer”. The flags are what catch it: every flag must match the terminal label it sits under.

7.5

The sensor bus, I²C0: QW1, the BMP581, the BME280 seat

What this is

The always-on bus on IO21/IO22: the fuel gauge on QW1, the barometer in SOCK_BARO, and the BME280 in a seat of its own.

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND112233445566778899101011111212131314141515abcdefghijJ5 charger12U1J7 NTC123J9 leak123123QW1SOCK_BAROBME280 seatSOCK_BMEF1 1.1 AC1 1µC2 1µC3 10µC6 100nR4 10kR5 100kJP13V3IO13IO39IO35IO4IO21IO22BMP581 (SEN0667) pin row, back silkscreen → SOCK_BAROINT1SDO2CSB3SDA4SCL5GND63V37Pins 4–7 carry SDA0, SCL0, GND, 3V3; 1–3 seat in the socket but connect to nothing.Order from dfrobot-bmp581-sen0667.md (read off the photographed board).BME280 (SEN-13905) I²C row → the seatGND3.3VSDASCLAs listed in the datasheet note; UNKEYED — match the silk, not this drawing,and check GND/3.3V with a meter before the first power-up.
The sensor bus. Three pull-up sets sit on the breakouts and none on this board — that is deliberate (carrier spec, “Parts”).

Steps

  1. QW1 in columns 1–4: pin 1 GND, 2 3V3, 3 SDA0, 4 SCL0. The owned Qwiic cable plugs the gauge's Qwiic socket into it; the proto card records its leads as red 3V3, blue SDA, yellow SCL (and black GND) — ring them before trusting that.
  2. The BMP581's header, once: cut the supplied header to 7 pins and solder it to the board's seven holes. Leave both of its solder jumpers as shipped: I2C ADDR at its default, 0x47, and I2C_Pull_Up untouched — its pull-ups are part of the bus's total.
  3. SOCK_BARO, 7-way, in columns 5–11, so all seven pins are held and an offset is impossible. Pins 1–3 (INT, SDO, CSB) connect to nothing; 4 SDA, 5 SCL, 6 GND, 7 3V3.
  4. The BME280 seat — SOCK_BME in the CSV since 2026-10-02, drawn dashed. A 4-way female strip in columns 12–15 for the board's I²C row, which the datasheet note lists as GND, 3.3V, SDA, SCL. It is unkeyed: mark pin 1 (GND) on the board in ink. If your BME280 also has its 6-pin SPI row soldered, it will overhang the seat on one row — note how it sits, and support it (§9). The fabbed carrier answers this with a second, 6-way socket that is mechanical only.
  5. The links: blue column 3→8→14 (SDA0), yellow column 4→9→15 (SCL0), and each GND and 3V3 column to its rail.

Check

Unpowered: ring the three SDA columns together (3, 8, 14), the three SCL columns together (4, 9, 15), and confirm SDA does not beep to SCL. Powered, with the FireBeetle running an I²C scan on IO21/IO22: exactly 0x36 (MAX17048), 0x47 (BMP581) and 0x77 (BME280) [D] — the second BMP581 is also at 0x47, but on the other bus (§7.6), so no clash. An address is not a working gauge: read its voltage against the meter on the pack, and see it move when the modem rail first comes on (§7.10): a live one falls 0.1–0.19 V within a second [M]; one that does not move gives no reading (FW-26).

If it is wrong

One address missing: that sensor's seat is offset or reversed — the BME280's is the likeliest, because it is unkeyed. The scan hangs or finds nothing: SDA and SCL crossed somewhere, or a GND/3V3 swap at a seat; unpower and ring it. A gauge that answers at 0x36 but reports a nonsense voltage has power and no pack on its JST-PH ports — it still enumerates. So does a failed one: two answered at 0x36 with the right ID and a fixed, plausible voltage (3.547 V against a 3.95 V cell; 3.192–3.195 V against 3.55 V [M]); an ID-only scan catches neither (FW-26). A resistive pack fuse fools it too: it read the charger, 4.23 V over a 3.54 V cell [M] (FW-28).

7.6

The GPS bus, I²C1: U2, R1, QW2

What this is

A load switch, U2, gives the GPS 3.3 V only while IO25 is high, and the GPS has a bus of its own on IO18/IO19. Left on the sensor bus with its rail off, it would leak about 2 mA [C] backwards through its protection diodes from the other boards' pull-ups (carrier spec, “The backfeed problem”). That is why nothing from the sensor bus goes on this bus. One board does ride on it: since 2026-11-03 a second BMP581 plugs into the GPS's second Qwiic port, sits on I²C1 at 0x47 and has power only while the GPS rail is up (whether it stays there is FW-29's).

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND21212222232324242525262627272828abcdefghijU2 adapter12345QW2R1 100kR2 100kIO26IO25IO17IO18IO19to 3B (underside)to 17T (underside)GND to the shieldU2 straddles the channel: no two of itspins may share a five-hole strip.QOD (col 23) and CT (col 24), top half,stay EMPTY — nothing else in those strips.U2: the chip on its adapter, from above1625346 VOUT 5 QOD 4 CT1 VIN 2 GND 3 ONPin map: TI SLVSD76C §5, SOT-23-6 top view, as recorded inti-tps22918.md. Pin 1 is at the chip’s marked corner; how YOURadapter numbers its pins is not known — ring each pad to its pin.CT and QOD stay unconnected (the note’s two decisions).
The GPS gets its own bus and its own rail; only the second BMP581, on the GPS's own second Qwiic port, joins them.

Steps

  1. Solder U2 onto its adapter (the fiddly joint — §5). The pin map, from the TI datasheet note: 1 VIN, 2 GND, 3 ON, 4 CT, 5 QOD, 6 VOUT, top view.
  2. Ring the adapter: each chip pin to its adapter pin, and no pin to its neighbour. Write the pin numbers on the adapter.
  3. Seat it across the channel in columns 22–24, pins 1–3 in the bottom half, so: 22B VIN, 23B GND, 24B ON; 22T VOUT, 23T QOD, 24T CT.
  4. QOD connects to nothing; CT takes a 4.7 nF capacitor to ground. QOD floating disables the output discharge. CT was left floating too when this page was drawn, and the drawings still show it so — but the reviews of the fabbed carrier on 2026-10-02 found that a floating CT switches the rail on in about 0.1 ms [C], fast enough for a breakout's capacitors to drag the 3.3 V rail toward the ESP32's brown-out. The ordered board carries 4.7 nF on each switch's CT pin (C8, C9) for a rise of a few milliseconds. On this board: one 4.7 nF ceramic from each switch's CT strip (24T for U2, 21T for U3) to the nearest − rail.
  5. R1 from column 24 to the − rail at column 24; the IO25 wire into column 24; links 22B → + rail, 23B → − rail; a red link 22T → 26T.
  6. QW2 in top columns 25–28: 1 GND, 2 3V3_GPS, 3 SDA1, 4 SCL1; link 25T → − rail.
  7. Never cut the SAM-M8Q's I2C jumper. Its two 2.2 kΩ resistors are the pull-ups on this bus, and they are what make the backfeed fix work; whether the second BMP581's board adds any of its own is not recorded.
  8. The second BMP581 plugs into the SAM-M8Q's second Qwiic port and answers at 0x47 only while IO25 is high.

Check

Before the FireBeetle, with 3V3 up: column 24 reads 0 V (R1 holding it off) and column 22T reads 0 V. Touch a test lead from column 24 to the + rail: 22T rises to 3.3 V; remove it and 22T falls back toward 0 V. With the FireBeetle: drive IO25 high, scan IO18/IO19, and find 0x42 (the GPS) [D] and 0x47 (the second BMP581, once plugged in) [M]; drive it low and the rail collapses.

If it is wrong

22T sits at 3.3 V with column 24 at 0 V: the adapter is rotated — VIN and VOUT have swapped sides. Empty scan with the rail up: SDA1/SCL1 swapped, or the GPS's I2C jumper has been cut. 0x42 without 0x47: the second barometer is not plugged in, or its silkscreen says BMP384 — the same red board.

7.7

DS18B20 on J8

What this is

The sea or ground temperature probe on 1-Wire, IO4, with its 4.7 kΩ pull-up on the board. Its lead, the gland and why it has three wires are the Thermal Probe page.

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND14141515161617171818abcdefghijJ8 DS18B20123R3 4.7kJP2IO4to 13BJ8 pin 1 OW_DATA · 2 GND · 3 3V3R3 4.7 kΩ from column 15 to column 17Column 18 is J8's way to the rails.The probe's wire colours are NOT recorded:ring them out first (HULL-28).
J8 in columns 15–17, with the free column 18 doing its rail work. The order DATA, GND, 3V3 is the keying decision the thermal page explains.

Steps

  1. R3 from column 15 to column 17 (hole h); the IO4 wire into 15. Column 16 (J8's ground) reaches the − rail through a wire under the board to the rail at column 18; column 17 (3V3) is linked to column 18, and column 18 to the + rail — J8's own rail holes are under its body.
  2. J8 in columns 15–17: pin 1 OW_DATA, 2 GND, 3 3V3.
  3. Identify the probe's three wires with the meter before they go near J8 (HULL-28): only board 1's probe has been rung out, by diode test on 2026-10-15 (black = GND [M]; red and yellow by the convention) — the other two have not, and reversing VDD and GND destroys a sensor there is no spare of. Use the DS18B20's own datasheet pinout and the meter's diode test between the wires.

Check

Probe unplugged, unpowered: column 15 to column 17 reads about 4.7 kΩ (within the resistor's printed tolerance). With the probe in and the FireBeetle running: a 1-Wire search on IO4 returns a ROM ID and a plausible temperature.

If it is wrong

Nothing found: DATA and 3V3 swapped, or R3 missing. A device reading −85 °C is usually one that is not powered — check pin 3.

7.8

The carrier's NTC on J7

What this is

A 10 kΩ thermistor at the pack, in a divider with R4, read by IO39. IO13 powers the divider only for the hourly read, so it draws nothing the rest of the time. This is the reporting thermistor; the charger's own one is the pair of §7.1 (ADR 0018).

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND667788991010abcdefghijJ7 NTC123R4 10k3V3IO13IO39J7 pin 1 SENSE_EXC · 2 vacant · 3 NTC_SENSER4 10 kΩ from column 9 to the groundstrip in column 10Column 8 carries NOTHING but J7's centreterminal, which stays empty.
J7 in columns 7–9, with the centre terminal deliberately empty and column 10 as its ground.

Steps

  1. R4 from column 9 to column 10 (hole g) — column 10 is the gap after J7 and a ground strip, linked to the − rail at column 10. The IO13 wire into 7, the IO39 wire into 9.
  2. J7 in columns 7–9: pin 1 SENSE_EXC, 2 vacant, 3 NTC_SENSE. The thermistor's two legs go to terminals 1 and 3; the centre terminal stays empty.
  3. Why the centre stays empty: the harness rule builds NTC and leak leads as 3-position, centre-vacant, so the same lead later fits the fabricated board's JST-XH port and cannot offset-mate it with one contact dead.

Check

Arithmetic first: with IO13 at 3.3 V, a 10 kΩ NTC over a 10 kΩ R4 puts 3.3 × 10/(10 + 10) = 1.65 V on IO39 at 25 °C [C]; at 20 °C the NTC is about 10 kΩ × e3977(1/293.15 − 1/298.15) ≈ 12.6 kΩ, giving about 1.46 V [C]. On the bench, FireBeetle out: jumper column 7 to the + rail and read column 9 — 1.4–1.7 V at room temperature [C], and it falls as you warm the thermistor in your fingers. While excited the divider draws 3.3 V ÷ 20 kΩ ≈ 165 µA [C].

If it is wrong

3.3 V on column 9: R4 or the column 10 link to the − rail is missing. 0 V: the thermistor is in the centre terminal or open. A reading that rises when warmed means the NTC and R4 have swapped places.

7.9

Leak sense on J9

What this is

Two pads in the hull, normally an open circuit. IO13 excites them through R5 only during a read; water across the pads pulls IO35 down. C6 gives the ADC the low source impedance it wants: τ = R5·C6 = 100 kΩ × 100 nF = 10 ms [C], which is why firmware waits 50 ms before reading.

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND6677889910101111121213131414abcdefghijJ7 NTC123J9 leak123C6 100nR4 10kR5 100k3V3IO13IO39IO35J9 pin 1 LEAK_SENSE · 2 vacant · 3 GNDR5 100 kΩ from column 7 to column 11C6 100 nF from column 11 to column 10J9's ground: column 13 → 14 → rail
J9 in columns 11–13. R5 spans from J7's excitation column; that is the IO13 the two sensors share.

Steps

  1. R5 from column 7 to column 11 (hole f); C6 from column 11 to the ground strip in column 10 (hole h); link column 13 (J9's ground) to column 14, and column 14 to the − rail; the IO35 wire into 11.
  2. J9 in columns 11–13: pin 1 LEAK_SENSE, 2 vacant, 3 GND. The pad lead uses terminals 1 and 3.

Check

FireBeetle out: jumper column 7 to the + rail. Column 11 reads 3.3 V with the pads dry [C] — nothing loads it. Bridge terminals 1 and 3 with a damp finger: it falls clearly below 3.3 V. Remove the jumper: column 11 decays to 0 V — no bias on the pads between reads.

If it is wrong

Column 11 at 0 V with column 7 high: C6 or a lead is shorted to ground, or R5 is missing. Column 11 at 3.3 V even when wet: the pad lead is in the centre terminal, or terminal 3 is not on ground.

7.10

The RockBLOCK: U3, JP2, J6, and the antenna

What this is

The modem runs straight from the pack: VBAT, tapped before F1, through load switch U3 on IO26 and jumper JP2 to J6 pin 1 and the modem's pin 8 (ADR 0014). The modem takes 3.0–5.4 V [D] there and buffers its own transmit burst; the supply sees at most 470 mA [D], and the charge peak measured 0.45 A across JP2 [M].

Where the modem sits. Since 2026-10-20 the RockBLOCK hangs under the solar deck in the crown (a 3 mm plate at z +42 to +45, right under the antenna), not on the main platform; its bay is 45 × 45 mm with no clearance yet (HULL-34). No document records the platform-to-deck distance the J6 lead must span: do not cut the modem's cable, or the five wires from J6, to length until it is measured.

Parts

Drawing

−− GND++ 3V3++ 3V3−− GND161617171818191920202121222223232424252526262727282829293030abcdefghij123U3 adapterU2 adapterJ6 RockBLOCK12345QW2R1 100kR2 100kJP2IO26IO25IO17IO16IO14IO18IO19to 1B (underside)to 3B (underside)GND to the shieldU3 is fed from VBAT BEFORE F1, by theorange wire under the board.J6: 1 VBAT_RB_SW · 2 GND · 3 RB_RX 4 RB_TX · 5 RB_ONOFF (CSV order)J6's rails are under its body: its groundgoes under the board to column 3.RockBLOCK 9603 user connector: PicoBlade, 1.25 mm, 10-way1RXDIridium RX (output)J6:4 RB_TX → IO162CTS—3RTS—4NetAv—5RI—6TXDIridium TX (input)J6:3 RB_RX ← IO177OnOffsleep controlJ6:5 RB_ONOFF ← IO1485v Inthe pin a Li-ion feedsJ6:1 VBAT_RB_SW9Li-Ionbehind the RockBLOCK’s own D1 — NOT USED—10GNDJ6:2 GND
Columns 16–30 and where J6's five wires land on the modem. The modem-side mapping is read from Ground Control's pin table against the CSV's notes, not from any document in this repo — check it against your own cable before power.

Steps

  1. U3 onto its adapter, ring it, seat it across the channel in columns 19–21 exactly as U2: 19B VIN, 20B GND, 21B ON; 19T VOUT, 20T QOD, 21T CT — QOD connects to nothing, and CT takes its 4.7 nF to the − rail as on U2 (§7.6).
  2. The VBAT wire, under the board: 20 AWG orange from column 1 to column 19. It is the only wire that taps the pack before the fuse, deliberately: a polyfuse's resistance would eat the modem's margin against its 3.0 V minimum [D].
  3. R2 from column 21 to the − rail at column 21; the IO26 wire into 21; link 20B → − rail; a short 20 AWG orange link 19T → 18T.
  4. JP2 in top columns 18 (pin 1) and 17 (pin 2), hole c, shunt off; a 20 AWG orange wire under the board from 17T to 26B.
  5. J6 in columns 26–30, in the CSV's order: 1 VBAT_RB_SW, 2 GND, 3 RB_RX, 4 RB_TX, 5 RB_ONOFF. J6's rail holes are under its body, so its ground (column 27) reaches ground by a 20 AWG black wire under the board to column 3, hole i, beside J5 — which also keeps the modem's return current off the thin rail.
  6. The modem's cable. Ground Control's knowledgebase: the 9603's user connector is a Molex PicoBlade, 1.25 mm pitch, 10-way, mating part 51021-1000. No cable shipped with the two owned units. A pre-crimped MX1.25 kit (PicoBlade-compatible) fits — one is owned, the Cermant 2–10P kit (28 AWG, 150 mm) — and fills only the five positions J6 uses; its 150 mm is the kit's, not a measured need. Ground Control's own tails cable carries all ten. Pin 1 is not marked on the modem's board: it is the end of the header away from the mounting hole beside it. Whichever cable is used, ring each wire to its connector pin and flag it.
  7. J6 to the modem, by Ground Control's pin table: J6:1 → pin 8 (“5v In” — the pin their power page says a 3.7 V Li-ion source connects to directly); J6:2 → pin 10 GND; J6:3 (the ESP32 transmits, IO17) → pin 6 TXD, which their table calls “Iridium TX (input)”; J6:4 (the ESP32 receives, IO16) → pin 1 RXD, “Iridium RX (output)”; J6:5 → pin 7 OnOff. Pin 9 is labelled “Li-Ion” and is not used: it sits behind the RockBLOCK's own internal diode (D1 in ADR 0014). Pins 2–5 stay unconnected.
  8. Both power controls are wired. U3 cuts the whole rail; J6:5 drives the modem's own On/Off pin, which on the owned v3.D units is ordinary logic — off below 2.0 V, on above 2.4 V [D]. Which one the firmware uses is a measurement, FW-10 (ADR 0014, “The On/Off trade”), which FW-07's supercapacitor test settles first. Whether a v3.D modem treats an undriven On/Off pin as on is not recorded, so firmware must drive IO14 high during a window either way — though the audit of 2026-10-15 holds this fails on a Rev F modem with a full pack (FW-25). (The datasheet note's “leave On/Off floating” is the Rev F rule, which ADR 0014 superseded for these boards.)
  9. The antenna link. The Amphenol cable's plug screws onto the 9603's SMA connector; its jack takes the Maxtena's SMA-male. Finger-tight only — the antenna's datasheet caps assembly torque at 8 in·lb [D], and a hand on a small SMA nut stays well under it; no tools on SMA. About 100 mm of the cable bends [C], from the drawing's connector lengths.

Check

Modem not connected, JP2 off, pack on J5. Column 19B reads the pack voltage; column 21B reads 0 V; column 19T reads 0 V. Test lead from 21B to the + rail: 19T rises to the pack voltage; remove it, it falls. Then the modem on J6: remove the JP2 shunt and bridge its two pins with the meter set to measure current; drive IO26 high and give the supercapacitors time to charge — the current is high and falling meanwhile (0.45 A for about 13 s, then 0.13 A for about 10 s [M]) — until AT on the UART returns OK: cold, that took 7.0, 9.0 and 12.0 s [M], so keep asking rather than count ten. Read the gauge before and after IO26 goes high: it falls 0.1–0.19 V within a second [M] (FW-26). J6:5 reads above 2.4 V with IO14 high, and with IO14 low the modem stops answering. Before the first +SBDIX, confirm the antenna link is mated at both SMA ends — never command a transmit into an open connector.

If it is wrong

Silence for the first dozen seconds is normal (12.0 s was the slowest cold start [M]), not a fault. Silence after: RX and TX swapped — unpower, swap J6:3 and J6:4, and try again; both are 3.3 V logic and the modem's RX tolerates up to 5.5 V [D]. Before you retry, check the antenna link is still mated at both SMA ends. Never command a transmit into an open connector. The meter's current never rises: U3 rotated on its adapter, or JP2 not seated. Never feed the modem from a bench supply above 5.4 V [D].

Bring-up, in order

The Track C card's nine steps, corrected to the CSV: no BOOST_EN, no 5 V rail, J6 with five terminals, and the On/Off check it never had. Do them in this order, and do not skip ahead when one fails.

  1. Look, then ring. Every joint under the magnifier. No beep from the + rail to the − rail, nor from column 1 (VBAT) to the − rail. A short here is found now or found as smoke.
  2. Shunts off. JP1 and JP2 both removed. Pack on J5, its plug metered for sign first (§7.1): column 1 reads 3.0–4.2 V [D]; column 4 reads the same — F1 passes.
  3. The regulator. JP1 pin 1 (column 5): 3.30 V ± 0.1 V [D]. Only now fit the JP1 shunt.
  4. Both enables off. FireBeetle out: column 24 (GPS_EN) and column 21 (RB_EN) read 0 V — R1 and R2 doing their job. Touch each to the + rail and see its rail come up (§7.6, §7.10).
  5. The FireBeetle. Seat it on the shield — never with USB and the 3V3 wire both live: pull JP1 whenever USB is connected, and nothing ever goes in its own battery connector (§7.4). Read 3.3 V at the shield's 3.3V terminal before flashing anything. With the board drawing, read 0.00 V across the pack fuse, or it comes out (FW-28).
  6. Sensor bus. Gauge on QW1, BMP581 in SOCK_BARO, BME280 in its seat (GND/3.3V orientation checked first). Scan I²C0: 0x36, 0x47, 0x77 [D]. Read the gauge against the meter; at step 9 it must move (FW-26).
  7. GPS bus. GPS on QW2 (the second BMP581 on its second port), IO25 high, scan I²C1: 0x42 [D] and 0x47 [M]. IO25 low: the rail collapses and IO18/IO19 go high-impedance. An empty scan may be the GPS's I2C jumper, not the wiring.
  8. Sense ports. DS18B20 on J8: a ROM ID and a plausible temperature. NTC on J7: IO13 high, IO39 near mid-scale at room temperature (1.4–1.7 V [C]). Damp finger across J9: IO35 falls from 3.3 V.
  9. Modem last. On J6; JP2's shunt removed and its two pins bridged by the meter set to measure current. IO26 high, the gauge read before and after (FW-26), then wait for the OK — 7 to 12 s cold [M], not a fixed count: AT → OK. New for J6:5: with IO14 high the modem answers; with IO14 low it does not. Immediately before the first +SBDIX, confirm the antenna link is mated at both SMA ends — never command a transmit into an open connector; then send it with the meter watching (bench gate ②, FW-02).

Write every reading down with its tag — the first build's numbers are the lab note this page does not have yet.

Making it survive the sea

Open, and not to be guessed at the bench

Closed since this list was written: the charger's cold gate, measured by ice on all three chargers and accepted as built on 2026-11-03 (§7.1, ADR 0018); the MCP1700's legs, passed on 2026-10-14; the charger's mounting, on a pillar of the main platform; the chargers, bought, with three modified and charging.

DOC-18
Whether this board flies. Rev. 3 says the hand-built carrier never does; this page builds it to flight standard. Closes by ADR after bench gates ①–④.
FW-12
The DFR0923's own draw is unmeasured. A status LED on every terminal but GND, behind a switch, and its own 7–24 V input circuitry. What it costs asleep with the switch off — and whether those LEDs load the analog inputs with it on — is a bench gate ① item for the Klein's 200 µA range.
HULL-31
The daughter board and the shield have no mounting on the main platform.
PROC-19
20 AWG versus JST-PH. The pack's wire rule and its connector contradict each other; the Battery Pack page sets out the two ways out. The carrier harness was bought as pre-crimped 22 AWG XH leads; what stays open is the pack link.
FW-02
Bench gate ②: a full +SBDIX from the pack through U3, supercapacitor charge included. The cold start is measured [M] (7.0–12.0 s, 0.45 A peak); the pack's low end is owed.
FW-03
Bench gate ③: the SAM-M8Q over I²C with the adapted firmware.
FW-10
Rail-cut or On/Off for the modem — both are wired. It is decided first by whether the supercapacitor survives a cut (FW-07, the INA219); only then does the modem's standby want the µA meter.
HULL-28
The DS18B20's wire colours — board 1's probe was rung out on 2026-10-15, the other two are not — and its cable diameter against the PG7 gland's range.
DOC-11
The carrier spec's table disagrees with the CSV. This page follows the CSV — and is itself a snapshot of it as of 2026-09-30.
FW-25 to FW-29, HULL-34
Opened since this list was written, argued where cited: FW-25 (§7.10), FW-26 (§7.5), FW-27 (§7.1), FW-28 (the pack fuse), FW-29 (§7.2, §7.6), HULL-34 (§7.10).
not tracked
IO16 and IO17 on the FireBeetle and the shield: absent from DFRobot's pinout table; prove them by continuity before wiring the UART (§7.4).
not tracked
The shield's terminal labels and the breadboard's hole count and rails: not published; read and ring them on arrival.
not tracked
The modem cable's wire colours, and how a v3.D modem treats an undriven On/Off pin.

Part of SouthPing — southping.org. This page is licensed CC BY 4.0: reuse it, adapt it, publish it, with credit to SouthPing and a link back. Source code in the project is Apache-2.0. Manufacturers' datasheets and product photographs remain theirs and are not covered by this grant.