SouthPing · the carrier board, from the box to the first boot

Carrier Assembly

Five rev. 4 carriers arrive with every small part already placed by the fab. What is left is the through-hole work — eighty joints a board, all of them forgiving — cut here into six stages. Each stage says what parts it takes and where they came from, explains in plain words what they do and how they work inside, shows the board as it should look when the stage is done, walks the joints, and closes with a meter check that has to pass before the next stage starts — with the reason each reading comes out the way it does. Written for someone soldering their first board, and meant to leave them understanding the board, not just having built it.

Companion to carrier-pcb-brief.html (what the board is) and probe-wiring-guide.html (the same probe built without it). Parts and orders from device/hardware/bom/bom-carrier.md and inventory.md; nets from device/hardware/carrier/connection-table.csv; placement from the generator scripts; pin 1 of each port from the board file's copper. The bring-up order is the carrier spec's. Since 2026-10-17 boards 2–5 are built from its short form, the flight board checklist; boards 1–3 have been level with it since 2026-10-28.

⚠ Four rules that hold for the whole page

Nine ideas this page runs on

Everything below uses these, and nothing below explains them again. If one is new, read it twice; each is a sentence of physics and a sentence of what it looks like on this board.

IdeaWhat it isWhere you meet it here
VoltageA difference in electrical pressure between two points. It is always measured between two points, never “at” one — which is why the black probe lives on a fixed reference and only the red one moves.Every reading in volts: black on A, red on the point named.
GroundThe point everyone agrees to call 0 V. On this board it is the cell's − terminal, carried everywhere by the copper fill on both faces. “To ground” means a path back to that.Point A; every pin called GND; the ground pins that solder slowly because the fill soaks heat.
CurrentThe flow, in amps. It only flows in a closed loop, and the same amount flows through every part of a series loop — so a meter placed in the loop reads what the whole board draws.The meter in the + lead's gap; the 0.00 mA bare board; the module's tens of milliamps.
Resistance, and Ohm's lawHow hard a path resists flow. Volts = amps × ohms, always. Put 3.3 V across 100 kΩ and 0.033 mA flows; put it across a 0 Ω solder bridge and only the source's limits stop the flow — that is a short, and the heat is the volts times the amps.The ~0.03 mA in the switch test; the fab's resistors read through your joints; every “no short” check.
Open and shortOL on the meter means no path at all (infinite ohms). A short is the opposite: a path of a few ohms where there should be none. A bridge of solder between two pads is the way a beginner makes one.Stage 0's four checks and the first check of every stage after it.
A railOne net that carries a supply voltage to many parts, like a water main. This board has three: VBAT (the cell's voltage), 3V3 (always on), and two switched ones — 3V3_GPS and VBAT_RB — that are rails only while their switch is on.The power-path lines in each stage's opener.
A capacitorA tiny reservoir. It fills (charges) when voltage is applied, through whatever resistance is in the way, and once full no steady current passes. Across a supply it smooths dips; in a meter's Ω mode it first looks like a low resistance and then “climbs” to OL as it fills.C1–C3 round the regulator; every “OL, or climbing” expectation.
Pull-up, pull-downA resistor from a signal line to 3.3 V or to ground, so the line has a definite level when nothing is driving it — instead of floating and picking up noise. The resistor is large (10–100 kΩ) so that whatever does drive the line wins easily.R1/R2 hold the switches off until the brain says otherwise; R3 holds the probe's data wire up.
A digital pin, and a diodeA brain's pin is either high (3.3 V) or low (0 V); as an input it draws almost nothing, which is why a jumper wire can safely stand in for it. A diode is a one-way valve for current that charges a toll of about 0.3–0.8 V to pass; the meter's diode mode measures that toll, and every MOSFET carries one inside.The switch test; the diode-mode check on Q1.

How the page is cut

StageWhat goes on the boardWhat the check proves
0nothing — the board as deliveredfive boards, the placed parts present and the right way round, no short the fab made
1J5, U1, JP1, J10 — the power inletthe board makes 3.3 V from a cell and draws nothing doing it
2J6, JP2, J7, J9, J8 — the other portsevery port reaches its net; the fab's resistors read right; the switched rails are off
3SOCK_BARO, SOCK_BME — the sensor seats, and the BMP581's own headerboth seats sit on the always-on rail and share one I²C bus with QW1
4SOCK_FB — the module seat, soldered with the module as the jigno bridges on 32 pins; every seat pin reaches its port; both load switches switch, driven from a jumper
5nothing — the module, flashed, seated and run from the cellthe regulator holds the rail with an ESP32 on it

The sensors, the GPS, the thermistor, the probe and the modem are not on this page: they need firmware, and they are the carrier spec's steps 6–9, which the flight board checklist carries on.

Everything the carrier work uses, and where it stands

Per board, and for the five. owned means inventory.md counts it — the boards were counted and the DigiKey bag opened on 2026-10-13, so no row here waits on an order any more; not on record means an ordinary bench item nobody listed.

PartPer boardFor fiveWhere fromPer the recordsStage
meteo-carrier rev. 4, top side assembled15JLCPCB W2026100309193023, 2026-10-02 (cost log order 4)owned, 5 — counted 2026-10-13, all five passed stage 0; boards 1–3 built, level since 2026-10-28; 4 and 5 untouched, the spares0
MCP1700-3302E/TO regulator, TO-921510-pack, 2026-10-13 — the Bridgold bag of 2026-08-05 was not foundowned, 101
JST B5B-XH-A, 5-position header210DigiKey 455-B5B-XH-A-ND × 15 (order 5, 2026-10-02)owned — bag opened 2026-10-131, 2
JST B3B-XH-A, 3-position header315DigiKey 455-2248-ND × 20 (order 5)owned2
1×40 male header, breakaway (Sullins PREC040SAAN)41 pins205 pins — 2 strips a boardDigiKey S1012EC-40-ND × 15 (order 5)owned1, 2, 4
1×40 female header, 8.5 mm (Same Sky SSK02-FPH-254-A40)17 positions + 3 lost to cuts100 — half a strip a boardDigiKey 2223-SSK02-FPH-254-A40-ND × 6 (order 5)owned3
Jumper shunt, closed top (Sullins SPC02SYAN)210DigiKey S9001-ND × 30 (order 5)owned1, 2
JST XHP-5 housing — the bench harness's plug1 (bench)1DigiKey 455-2268-ND × 12 (order 5); the rest are the probes' harnessesowned1
Pre-crimped XH lead, 22 AWG, 305 mm, contacts both ends (JST ASXHSXH22K305)1, cut in half1DigiKey 455-3241-ND × 36 (order 5)owned1
DFRobot Fermion BMP581 (SEN0667), with its own 10-pin header to cut13 — LAND, SEA, the transfer standardowned before 2026-09-09; three more arrived 2026-10-30owned, 3 + 3 — one of the first three is bad (2026-10-18)3
SparkFun BME280 (SEN-13905), with headers131 owned; 2 more on SparkFun order 000460515, 2026-10-02; 2 on #000477281owned — three on boards 1–3, one bad (2026-10-28), one spare3
DFRobot FireBeetle 2 ESP32-E (DFR0654-F), female headers fitted13ordered 2026-08-09owned, 3 — all three on boards since 2026-10-274 (as the jig), 5
Panasonic NCR18650GA, protected, in a holder with leads1 (bench)1cells: 2026-08-12 order and before; the holder: the demo rig'sowned, 19 cells1–5
Qwiic → male-header cable, 150 mm1 (bench)1inventory, wiring and consumablesowned, 43, 4
Kester 44 solder wire, 63/37, 0.020"a metre or so for five boardsinventory, consumablesowned1–4
Female–female jumper wires (Dupont), 2bench2—owned — packs of all three kinds, inventory.md 2026-10-144
Multimeter (the Klein MM325, the bench meter since 2026-10-30), soldering iron, flush cutters, pliers, tape, magnifierbench——the meter is owned (inventory.md); the rest not on recordall

Not used on this page, though in the same DigiKey bag: the 17 XHP-3 housings and the 15 thermistors (the probes' harnesses, later), and 34 of the 36 leads. Note the leads are all black.

The kit, and the two skills

ToolWhy
Soldering iron, temperature-controlled, fine chisel or conical tip, at 320–350 °CThe 63/37 wire melts at 183 °C [D]; the board's pads are lead-free HASL, which hand solder wets fine. Brass wool or a damp sponge to clean the tip; wash hands after
Flush cutters and small pliersCutting the female strip, snapping the male strip, splaying U1's legs, trimming legs
A digital multimeter with a continuity beeper, DC volts, a mA range and a 10 A jackEvery check on this page. The bench meter is the Klein Tools MM325 since 2026-10-30 (manual ranging; •)) beeps below 50 Ω [D] and shows the ohms), the EverStart 10709WDI the second. Any meter with those four does
Masking tape or Blu-Tack; a magnifier or the phone camera's zoomHolding parts while the board is upside down; looking at joints
Safety glasses, an open window or a small fanFlux fumes and the occasional solder flick

One joint

  1. Tin the tip: a little fresh solder on the hot tip, wipe, a little more. A tip that is not shiny does not transfer heat.
  2. Touch the tip to the pad and the pin at once, on the underside, for about one second.
  3. Feed the solder wire into the joint — where the pin meets the pad — not onto the iron. It should flow and run around the pin in a second. Two to three millimetres of 0.020" wire is a whole joint.
  4. Pull the wire away, then the iron. Do not move the part for two seconds.
  5. Look. Good: a small shiny cone that climbs the pin and spreads over the whole pad. Bad: a dull grey ball sitting on top (too cold, too quick — reheat and feed a touch more); a blob touching the next pad (a bridge — reheat and drag the iron away along the gap); solder on the pin but not on the copper (the pad was not heated).

Ground pins take longer, by design

Every ground pin — U1 pin 1, J5 pin 5, J6 pin 2, J8 pin 2, J9 pin 3, J10's GND, both seat GNDs, the sockets' GNDs — is tied into the copper fill on both faces by narrow spokes, and the fill soaks heat. Stay on those joints a second or two longer until the solder flows; do not answer a slow joint with more solder. Five seconds on a pad is the limit before it starts to lift.

One of them has failed twice. J10's GND pin is probe point A, the black probe's home, and the carrier's one habitual bad joint: unwetted on board 1 (2026-10-14) and board 2 (2026-10-28) [M]; a dead A reads 0.00 V on every rail. Ring it to J5 pin 5 before trusting a reading.

The meter

ModeWhat it tells youHow it is used on this page
continuity ·)))Beeps when the two probes are joined by under a few tens of ohmsPower off. A new joint beeps to where its net goes, and does not beep to the pad next to it. A single short chirp when the probes first touch is a capacitor charging, not a bridge; a bridge is a steady tone. Without a beeper, the lowest Ω range stands in — on the Klein, 2k (it has no 200 Ω position [M]), in kΩ to three decimals: OL is open and any small number is joined — 0.001 or 0.002 is probe contact on flux residue, not a weak joint, unless it stays however hard you press; touch the probes together for the leads' own baseline
ΩThe resistance between the probesPower off. Reading a resistor the fab placed through two pins; and the first check on every stage — a rail to GND must read OL (open) or a number that keeps climbing as a capacitor charges, never a steady low number
→| diodeThe voltage a diode drops, red probe on its anodePower off. Once, to prove Q1 is in the path
V⎓ DC voltsVoltage between the probesPower on. Black probe on A (J10 GND) always; red on the point named
mACurrent through the meterPower on. Red lead moved to the mA socket. In this mode the meter is a piece of wire with a number on it: it sits in the + lead, bridging a gap you leave in it — never across two points. Across the cell it blows the meter's fuse, and then every current reads 0 until the fuse is replaced. On a manual-range meter OL (the EverStart draws it 0L) on a current range means over-range, not open: lift the probes and check the dial before anything else. And a reading that looks like a voltage — about 2.7 across JP1 with its shunt off, or the cell's 3.5 — means the dial is still on V: this has happened twice on board 1 [M]
10 AThe same, coarser, for the moduleStage 5 only. The mA range drops up to a volt at a hundred milliamps, enough to starve the regulator and fake a fault; the 10 A jack drops almost nothing

Probe tips are pointed and the pads are small. Hold the probe like a pen, rest the heel of your hand on the bench, and touch the pin's solder joint on the underside or the pin's top — not the pad's edge. A probe that slips between two live pins is the one way a voltage check can cause a fault, which is why J10 puts a GND pin between VBAT and 3V3.

Reading the stage drawings

Every stage shows the same map of the board, seen from above with the module's USB edge at the top. The fab's placed parts are always drawn; the through-hole parts change look with the stage:

not yet fitted fitted in an earlier stage fitted in THIS stage A–K: probe points the tables name; A is where the black probe always sits

Square pads are pin 1. The broken line beside each XH port is where the silk draws the shroud's windowed wall. The fab's render, device/hardware/kicad/meteo-carrier/out/board-top.png, is the photo-like view to hold a real board against.

Stage 0 — the board as delivered

In plain words

What this stage is: looking, not soldering. The factory has already put twenty-one tiny parts on the board. Before we add ours, we check that theirs are all there, the right way round, and not shorted — because a factory mistake found now costs a photograph, and found after eighty of our joints it costs a board.

What the factory's parts do — none of them is ours to touch, but it helps to know what they are when the later checks mention them:

  • Q1 is a transistor used as a one-way valve: battery current gets in only the right way round. A reversed battery plug does nothing instead of damage.
  • F1 is a polyfuse — a fuse that heals. Too much current and it goes high-resistance and stops the flow; cool it down and it works again.
  • U2 and U3 are load switches: electronic switches the brain turns on with a pin. U2 gives the GPS its power, U3 gives the modem its power, and while they are off those two draw nothing at all — which is how the probe sleeps at its floor instead of at tens of milliamps.
  • QW1 and QW2 are Qwiic connectors: tiny four-wire plugs that carry power plus a two-wire data bus (I²C) to the fuel gauge and to the GPS.
  • The Rs are resistors and the Cs capacitors, each with one small job — holding a switch off until told otherwise (R1, R2), pulling a data line up (R3), making the thermistor readable (R4), sensing a leak (R5, C6), protecting the probe port (R6, R7), steadying the regulator (C1–C3) and softening the switches' turn-on (C7–C10). They get named in the later checks as the fab's parts being read through your joints.

Power: none. Nothing is connected and nothing is powered in this stage; the meter's own little battery is the only source involved.

Parts for this stage

PartQtyPer the records
meteo-carrier rev. 4, assembled — JLCPCB W20261003091930235owned, 5 — counted into inventory.md 2026-10-13
The multimeter (the Klein MM325); a magnifier or the phone—multimeter owned; the magnifier not on record

Target state — nothing added

What the fab placed: Q1 (three legs) and F1 (a dark block) beside J5's pads; U3 and U2 (six legs each) with their small parts; the two white Qwiic connectors on the right edge; resistors and capacitors in the corners. Everything faint is still a row of empty plated holes.

How it works inside — what a factory-assembled board is

  • Two kinds of part, two kinds of joint. The fab's parts are surface-mount: they sit on pads on the top face with no legs through the board, placed by a machine onto printed solder paste and baked in an oven that melts the paste under every part at once. Yours are through-hole: legs through plated holes, soldered one joint at a time from underneath. The fab does the small, fiddly, many-at-once kind; the hand does the big, forgiving, few kind. That split is the whole reason this page exists.
  • What can be wrong on a machine-placed board. A part can be missing, can have stood up on one end as the paste melted (a “tombstone”), can have paste bridging two of its legs, or — for a part whose legs are symmetric — can be turned 180° so that its pin 1 is at the wrong corner. The six-leg chips U2 and U3 are that last kind: three legs a side, so they fit either way round and only the mark tells. Q1 has two legs on one side and one on the other and cannot be placed wrong. The resistors and capacitors have no orientation at all.
  • Why a resistance check before anything else. A bridge or a wrong part on the fab's side would show as a low resistance between a rail and ground. Found now, it is a photograph and an e-mail to the fab; found after your eighty joints, the question of whose fault it was has no clean answer.

Steps

  1. Count five and photograph each board, both faces. Hold one against the render out/board-top.png: the twenty-one placed parts, each where the render has it.
  2. Pin 1 on the six-leg chips. The silk prints a small triangle at one corner of U2 and of U3; the chip's own mark — a dot, or the start of its printed code — must sit at that corner. The fab's engineer confirmed this from the placement image before production; you are confirming it survived the oven. Q1 fits its pads only one way round.
  3. Every placed joint under the magnifier: no solder bridging two legs of U2, U3, QW1 or QW2; no part standing on one end; no part missing.
  4. The short checks, in Ω — the pads are bare and plated, so touch them directly.

✔ Stage 0 passes when

Red probeBlack probeExpectWhat it proves
J5 pad 1 (square, top)J5 pad 5 (bottom)OL, or climbingThe battery input is not shorted to ground
JP1 upper padJ10 GND pad (A)OL, or climbingThe regulator's output is not shorted
JP1 lower padJ10 GND pad (A)OL, or climbingThe 3V3 rail is not shorted — this net reaches every sensor seat
JP2 upper padJ10 GND pad (A)OLThe modem rail is not shorted

A pair reading a steady few ohms is a fault the fab made: do not solder that board, photograph it, compare with the other four.

Why the readings come out this way

  • OL or climbing, never a steady low number. Between each rail and ground the design has only capacitors and sleeping chips — no resistor, no wire. The meter's Ω mode pushes a tiny current; a capacitor takes it at first and the reading starts low, then rises as it fills, toward OL. A bridge is a wire, and a wire reads a few ohms and stays there.
  • Why these four pairs. They are the three rails that exist on a bare board — the battery input, the regulator's output, the 3V3 rail — plus the modem rail, each against ground. Every other net is a signal that goes nowhere until a module or a sensor is plugged in, and so cannot short anything that matters yet.
  • Why bare pads can be probed. The holes are plated through and finished with a tin alloy (HASL) so that solder wets them; that finish conducts, and a probe tip pressed on it makes a good enough contact for a resistance reading.

Stage 1 — the power inlet: J5, U1, JP1, J10

Four parts, fifteen joints, and at the end of it the board makes 3.3 V from a cell. Everything later is checked against this rail, so it is proven first and alone.

In plain words

The goal: turn a battery's 3 to 4.2 volts into the clean, steady 3.3 V that the brain and the sensors live on — and prove it with a meter before anything that could be hurt is connected.

The parts and their jobs:

  • J5 is the socket where the battery comes in. In the probe the pack arrives here through the charger board; on the bench, one cell in a holder stands in for the pack. It has five positions but only the two outer ones carry wires. This page has read the three empty ones as a key; FW-27 records that the bench cable's XH end has no key against J5. Until that is settled, every plug is metered for sign before it mates (below).
  • U1 is the regulator: a three-legged part that takes whatever the battery gives (3.0–4.2 V as it discharges) and puts out 3.3 V regardless. It was chosen because it wastes almost nothing itself — about 1.6 µA [D] — which matters when the probe sleeps for most of every hour. C1 before it and C2/C3 after it are small reservoirs that smooth the flow.
  • JP1 is a removable link in the 3.3 V line: two pins and a little plastic bridge (the shunt). Pull the bridge and the regulator is cut off from the rest of the board — which is how a current meter gets put in series later, and how the board is kept safe when the module is on USB instead.
  • J10 is the service header: five pins in a row that copy the battery voltage, ground, the 3.3 V rail, and the module's reset and boot pins. Once the module is seated it covers most of the board and its own buttons face down; J10 is how you still measure and still reset.

How the power flows after this stage:

cell + → J5 pin 1 → Q1 (one-way valve) → VBAT → F1 (fuse) → U1 (3.3 V out) → JP1 → the 3V3 rail · cell − → J5 pin 5 → GND

Two side branches start at VBAT, before the fuse: one to J10's VBAT pin for measuring, and one to U3 — the modem will draw straight from the battery through its switch, never through the regulator, because a transmitting modem wants far more current than a 250 mA regulator can give. Nothing talks to anything yet: this stage is power only.

Parts for this stage

PartQty per boardWhere fromPer the records
J5 — JST B5B-XH-A, 5-position1DigiKey 455-B5B-XH-A-ND, order 5owned
U1 — MCP1700-3302E/TO110-pack, 2026-10-13 — the Bridgold bag of 2026-08-05 was not foundowned, 10
JP1 — 2 pins snapped from the male strip; J10 — 5 pins from the same strip7 pinsDigiKey S1012EC-40-ND, order 5owned
Shunt for JP11DigiKey S9001-ND, order 5owned
The bench harness: one XHP-5 housing, one 305 mm pre-crimped lead cut in half (two 150 mm leads, a contact on each)bench, onceDigiKey 455-2268-ND and 455-3241-ND, order 5owned
The bench supply: one NCR18650GA in a holder with leads; red tapebench, oncethe demo rig's cell and holder — unfused: the audit of 2026-10-15 names it (FW-25, awaiting the lead's go-ahead); the pack fuse rule is under the stepsowned

Target state — the inlet, powered through the meter

Four parts fitted. The harness on the left is the first-power arrangement: the meter bridges a gap left in the + lead and reads the whole board's current. Afterwards the gap is joined and the meter moves to volts, black probe on A.
U1 — which way round MCP1700 the marked FLAT face toward you GNDVINVOUT 123 legs read left to right [D] the board, from above GNDVINVOUT flat face on this line (toward the board's middle) square hole = pin 1 = GND holes 2.54 mm apart: splay the outer legs if the part's are closer
The MCP1700 datasheet's TO-92 drawing, redrawn: GND · VIN · VOUT with the marked face toward you [D]. One widely copied web page has this reversed; the datasheet does not.
An XH header — which way round the silk's broken line window window plain wall — on the solid silk line 12345 1. windowed wall on the broken line, plain wall on the solid line 2. square pad = pin 1, at the end the silk numbers “1” 3. tape it, solder one END pin, check it sits flat, then the rest The 3-position headers are the same shape, shorter.
The pins are symmetric — what the windowed wall fixes is which way the plug can go, and so which wire lands on which pad. On J6 a header turned round would put the modem's VBAT wire on its ON/OFF pin.

How it works inside — the regulator, the valve and the fuse

  • The regulator (U1) is a throttle with a thermostat. Inside, a transistor sits between VIN and VOUT like a tap; a reference tells it what 3.3 V is; it opens or closes the tap continuously so the output stays there whatever the input does and whatever the load draws. The price is heat: the volts it drops, times the current, is wasted in the part — at 50 mA from a 4 V cell that is 0.7 V × 0.05 A = 35 mW, warm to a finger at most. It needs the input a few tenths of a volt above 3.3 to regulate; below that it simply passes what it has, minus the tap. And it runs its own housekeeping on 1.6 µA [D], which is why this part and not a bigger, faster one: the probe sleeps for most of every hour, so every idle microamp is paid all day. The whole floor is ~648 µA [C] and the regulator's 1.6 is the least of it: two LEDs left in by decision (2026-11-03), the FireBeetle's WS2812 ~500 µA [D] and the gauge board's ~100 µA [C], are nearly all of it.
  • The valve (Q1) is a transistor used backwards. A P-channel MOSFET conducts between two of its legs when the third, the gate, is pulled below the source. Here the gate is tied to ground and the source faces the board: with the battery the right way round the gate sits a whole battery-voltage below the source, the transistor is fully on, and it costs a few thousandths of a volt — far less than a diode's 0.3–0.8 V toll, which is why a transistor is used instead of a diode. Reversed, the gate is not below the source, the transistor stays off, and the diode it carries inside points the wrong way too. Nothing flows; nothing is harmed. That internal diode is what the diode-mode check reads.
  • The fuse (F1) is a thermostat with no moving parts. A polyfuse is a slab of polymer loaded with carbon. Cold, the carbon grains touch and it conducts (a few hundredths of an ohm cold, more after a trip; no datasheet note for it is filed). Too much current warms it, the polymer expands, the grains part, and its resistance jumps a thousandfold — the flow stops. Remove the fault, let it cool, and it is a fuse again. “1.1 A hold” means it never trips below that; it trips at roughly twice it. It guards only the regulator's branch; the modem taps VBAT before it, which is why the pack has a fuse of its own.
  • Why first power goes through the meter. A closed loop with the meter in it shows the whole board's draw as a single number. Ohm's law says a bare board should draw almost nothing — microamps of regulator housekeeping, zero through pull-downs with 0 V across them, nanoamps through switches that are off. A reading in milliamps means a path exists that the design does not have, and the meter has found it before anything got hot.

Steps

  1. J5. Windowed wall on the broken silk line, square pad at the end the silk calls 1=BATT+ — the top. Tape it, flip the board, solder one end pin, flip back, check it sits flat and square; if not, reheat that joint and press. Then the other end, then the three in the middle.
  2. U1, the regulator. Flat face on the straight silk line (toward the board's middle); GND in the square pad. The holes are 2.54 mm apart; if the legs come closer than that, splay the outer two outward with the pliers, bending about 1 mm below the body, middle leg straight. Insert with 2–3 mm of leg showing above the board, bend two legs a little outward underneath to hold it, solder all three, trim the legs flush with the joint. This is bench gate ④'s first half — the pinout on a real part; the voltage check below is its second.
  3. JP1 and J10. Snap a 2-pin and a 5-pin piece from the male strip (it snaps at the notch between pins). Short end down through the board, plastic sitting on the top face, long pins up. Tape, solder one pin, check it stands straight, solder the rest.
  4. Look, then continuity — the first table below, power off.
  5. Make the bench harness. Cut one 305 mm lead in half; tape one half red at both ends (every lead in the bag is black). Push the empty housing onto the soldered J5 — it goes only one way — and click the red lead's contact into the housing position sitting over the silk's 1, the black lead's into the position over 5; the contact's small barb faces the housing's lance window and will not click in the other way. Join the far ends to the holder's + and − leads (soldered and taped, or a small screw terminal), the red one to +. Leave a gap in the + lead for the meter: simplest is to not join it yet and bridge it with the probes. Once that lead is joined for good, the board's own gap takes over: JP1 with its shunt off is a break in the 3V3 rail, and the meter across its two pins (red on the upper, regulator side) reads everything the rail draws — that is what the seat is for, and it is the current check for every later stage.
  6. First power, through the meter — both shunts off, nothing plugged in anywhere else, cell in its holder. Red lead in the meter's mA socket, dial on mA. Meter the plug for sign first: on the unmated XH plug, red probe on position 1, black on position 5, a plus sign expected. Then plug the harness into J5; no current flows yet. Close the gap: red probe on the cell's + lead, black probe on the red-taped lead going to J5. Read the second table.
  7. Volts. Join the gap (twist and tape is enough for the bench), meter to DC volts, black probe on A, read the third table.
  8. Fit the JP1 shunt — a separate part, not the two pins just soldered: the small black block from the S9001-ND bag, about 6 mm each way, two holes in its open face and a metal clip inside. Push it over JP1's two pins until its plastic sits on the header's plastic. Harness unplugged for this, then plug in through the meter again: still 0.00–0.01 mA. Then volts: D now reads what C did. The shunt's closed top covers JP1's pins from here on; D is the 3V3 rail's probe point for the rest of the page.

A plug is metered for sign before it mates; a pack has a fuse, this cell does not

One pack plugged into a gauge with + and − swapped, before 2026-10-25, killed a MAX17048 and both bq24074 chargers then owned; only the carrier's Q1 survived it. So the unmated plug is metered first — red probe on position 1, black on the ground position, a plus sign expected — whether it goes into J5, a gauge or a charger. The bench cable's XH end has no key against J5; a pack lead that mates one way only is wanted (FW-27).

This bench cell has no fuse in its + lead; the audit of 2026-10-15 names that (FW-25, awaiting the lead's go-ahead) and this page does not change it. A pack has one, a uxcell T1.6A slow-blow micro fuse soldered inline in its + lead. The rule since 2026-11-02 (FW-28): 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. Five of the twenty are bad, and whether this is the right part is open (FW-28).

✔ Stage 1 passes when

Power off: fifteen cones, none touching a neighbour, and —

RedBlackModeExpectProves
U1 left leg (square pad)A — J10 GND·)))beepU1's GND leg is in the ground
U1 right legC — JP1 upper pin·)))beepVOUT reaches JP1
U1 middle legeither end of F1·)))beepVIN comes through the fuse
J5 pin 5A — J10 GND·)))beepThe charger port's ground — and that A itself is wetted: its joint is the carrier's habitual bad one
J5 pin 1B — J10 VBAT→| diode0.3–0.8 V [C]Q1 sits between the port and the board: that is its body diode, and it only passes one way — red on J5 pin 1, black on B. The other way round it reads OL, which is right. With the probes as written, 0.00 means Q1 is bridged and OL means J5's pin 1 joint or Q1 is open. A meter without a beeper shows this mode in millivolts: 456 is 0.456 V (board 1 read 456 [M])
each J10 pinthe pin next to it·)))no beep, ×4No bridge on the header — VBAT–GND and GND–3V3 are the two that matter
JP1 upper, then lowerA — J10 GNDΩOL / climbingStill no short, now that U1 is in

First power, meter in the gap:

ReadingExpectIf not
current, bare board0.00–0.01 mA [C]Anything over 0.1 mA with nothing on the board is a bridge or a wrong part: open the gap, find it. The regulator alone takes 1.6 µA [D], the two switches less
touch U1, Q1, F1coldWarm on 0 mA is impossible; warm on a real current is the fault's address

Volts, black on A:

Red onNetExpect
B — J10 VBATVBATthe cell's voltage, 3.0–4.2 V, within 0.02 V of the cell itself
U1 middle legVBAT_Fthe same — nothing is drawn, so the fuse drops nothing
C — JP1 upper pin3V3_RAW3.20–3.40 V [D] — the MCP1700's ±3 % over its whole temperature range; at room temperature typically within ±0.4 %, so expect 3.29–3.31. This is bench gate ④'s 3.3 V
JP1 lower pin, and D — J10 3V33V30 V — the shunt is out, so the rail is dead; 3.3 V once it is in

Why the readings come out this way

  • “OL, or climbing” — in Ω mode the meter pushes a tiny current and reads the voltage it causes. Between a rail and ground there is no resistor, only capacitors: they accept the current at first (a low reading), fill, and the reading climbs toward OL. A solder bridge would hold at a few ohms and never climb.
  • The diode test's 0.3–0.8 V is the toll of a silicon junction — Q1's internal diode — seen from the battery side. Red on the drain pushes current through that diode toward the source. A bridge across Q1 would read 0.00 (a metal path, no toll); an open joint reads OL.
  • Current 0.00–0.01 mA — add up what the design has on a bare board: 1.6 µA of regulator housekeeping, 0 through R1 and R2 (0 V across them), under a microamp through two switches that are off. The meter's last digit is 10 µA, so the sum rounds to nothing.
  • VBAT equals the cell because Q1, fully on, drops only milliohms × microamps: Ohm's law with almost no current gives almost no drop. The fuse's fraction of an ohm costs the same nothing, but it sits after B — J10's VBAT pin is Q1's output, ahead of F1 — so only U1's middle leg ever sees it. In stage 5, when the module draws real current, B reads a few tens of millivolts below the cell: Q1, the harness and the cell's own resistance.
  • 3V3_RAW at 3.29–3.31 is the regulator's reference doing its job; the ±3 % figure is the worst case across −40 to +125 °C, not what a warm bench sees.
  • The 3V3 rail at 0 V with the shunt out — the rail is simply an open circuit from the regulator; no path, no voltage. Fit the shunt and the two pins become one net.

Stage 2 — the other ports: J6, JP2, J7, J9, J8

Sixteen joints, the same technique as stage 1. Read the silk at each port: J6 1=VBAT 5=ONOFF, NTC 1=EXC, LEAK 1=SENSE, DS18B20 1=DATA; windowed wall on the broken line, square pad at the “1” end.

In plain words

The goal: fit every socket through which the carrier reaches the outside world — the satellite modem, and the three cheap sensors that hang off wires — and show that each socket is wired to the right place, with nothing yet plugged into any of them.

The parts and their jobs:

  • J6 is the modem port, five wires to the RockBLOCK satellite modem. Two are power: the battery voltage (through U3's switch) and ground. Two are a serial link — the brain sends the modem short text commands on one wire and reads its replies on the other, the same way a terminal talks to a modem. The fifth, ON/OFF, is a line the brain pulls to tell the modem to sleep. The modem runs on battery voltage, not 3.3 V, because its transmit bursts draw more than the regulator could supply.
  • JP2 is a removable link in the modem's power line, exactly as JP1 is in the 3.3 V line — a place to put the meter in series when the modem's draw is measured, and a way to leave the modem unpowered until it is wanted.
  • J7 is the thermistor port. A thermistor is a resistor whose value changes with temperature; it is wired between pin 1 and pin 3, and with R4 on the board it forms a voltage divider. The brain puts 3.3 V on pin 1 for a moment (the “excitation”, pin IO13 — only while measuring, so it costs nothing asleep) and reads the voltage in the middle on IO39. Its job is to report the battery pack's temperature in the message; the charger board has a thermistor of its own that stops charging in the cold, and this one is the brain's view of the same thing. They are separate parts so that one broken lead cannot take both. The charger's own cold gate (a 10 kΩ thermistor in parallel with 200 kΩ on the bq24074's THERM pad) was measured by ice on all three chargers: they stop at about −2.3, −2.0 and −0.4 … −1.0 °C and resume just above 0 °C [C], accepted as built on 2026-11-03 (ADR 0018). The proof is the ice and the ISET pad falling to zero, never the charge light, which went dark in charger 1's stop and stayed dark while it charged [M], so it proves nothing either way.
  • J8 is the temperature probe port, for the waterproof DS18B20 that goes out through the hull into the sea or the ground. Three wires: 3.3 V (through R6, a 100 Ω guard), ground, and one data wire. That one wire is a “1-Wire” bus: the question and the answer travel on the same line, which R3 holds at 3.3 V whenever nobody is pulling it down to talk. R7 guards the brain's pin if the cable ever floods.
  • J9 is the leak port: two bare pads low inside the hull. The same excitation pulse feeds pin 1 through R5; dry, the brain's pin IO35 reads 3.3 V; water across the pads pulls it toward ground, and the probe reports that it is taking water.

Power and talk after this stage:

VBAT → U3 (off until IO26 says on) → JP2 → J6 pin 1 · 3V3 → R6 → J8 pin 3 · IO13 pulse → J7 pin 1 and (via R5) J9 pin 1

Still nothing plugged in, so the checks read the sockets empty: the modem's rail must be off, the probe port's supply must be on, and the fab's resistors are read through your new joints.

Parts for this stage

PartQty per boardWhere fromPer the records
J6 — JST B5B-XH-A, 5-position1DigiKey 455-B5B-XH-A-ND, order 5owned
J7, J9, J8 — JST B3B-XH-A, 3-position3DigiKey 455-2248-ND, order 5owned
JP2 — 2 pins from the male strip2 pinsDigiKey S1012EC-40-ND, order 5owned
Shunt for JP2 — kept out until stage 4's switch test1DigiKey S9001-ND, order 5owned

Target state — every port in

Five parts fitted. The modem port's pin 1 is at the top, like J5's; the three bottom ports have pin 1 at the left. JP2's shunt stays in the bag for now.

Why every harness is loaded with its housing plugged in

The XH pins are the same whichever way the header went in; the windowed wall decides which way the plug goes, and so which wire meets which pad. So build every harness the way the bench one was built in stage 1: empty housing on the soldered header, then each contact into the position that sits over the silk's number.

How it works inside — a serial link, a one-wire bus, a divider and two wet pads

  • The modem's serial link (J6 pins 3 and 4) is two one-way wires. The brain sends on one and listens on the other — its TX goes to the modem's RX and back the other way, which is why the carrier labels them from the modem's side and the harness must not cross them. Each wire carries bits as timed pulses of 3.3 V and 0 V at a speed both ends agree on beforehand (19200 per second for this modem); there is no clock wire, the timing is the agreement. The brain types text — AT+SBDIX — and the modem types answers back. ON/OFF (pin 5) is simpler still: a wire the brain holds high to keep the modem awake and drops to put it to sleep, so the modem's rail can stay on while it draws almost nothing.
  • The probe's 1-Wire bus (J8 pin 1) is one wire doing both jobs. R3 holds it at 3.3 V when idle. To send a bit, the brain pulls it to ground for a short or a long moment; the sensor reads the length. To answer, the sensor pulls the same wire down in slots the brain opens for it. Because nobody ever drives the wire high — they only let go and let R3 lift it — two talkers can never fight, and several sensors could share the wire, each with a factory serial number. R7, in series, limits what a flooded cable could push into the brain's pin; R6 does the same on the supply wire.
  • The thermistor port (J7) is a voltage divider. Two resistances in series across 3.3 V — the thermistor from pin 1 to pin 3, then R4 (10 kΩ) to ground — share the voltage in proportion to their size. The middle, pin 3, sits at 3.3 × R4 / (R4 + Rntc): at room temperature the thermistor is about 10 kΩ too, so the middle reads about half, 1.65 V; cold, the thermistor grows and the middle falls; warm, it shrinks and the middle rises. The brain reads that voltage and looks the temperature up. The 3.3 V on pin 1 is an excitation the brain supplies only during the reading, because a divider across 20 kΩ burns 3.3/20000 = 165 µA [C] for as long as it is powered — a quarter of the probe's whole sleeping floor, ~648 µA [C] (board 1 read 0.73 mA at JP1 [M]).
  • The leak port (J9) is a divider whose bottom leg is water. R5 (100 kΩ) carries the same excitation to pin 1 and to the brain's pin IO35. Dry, nothing flows through R5, so there is no drop across it and the pin sees the full 3.3 V. Wet, the water between the pads is a resistance of some tens of kilohms to ground; R5 and the water now divide the 3.3 V, and the pin falls. C6 (100 nF) is a small reservoir that keeps a damp fluctuation from reading as a flicker.

Steps

  1. J6 — as J5: windowed wall on the broken line, square pad at the top. One end pin, check, the rest.
  2. J7, J9, J8 — the same, square pad at the left. Do all three before the checks.
  3. JP2 — a 2-pin piece, as JP1 was. No shunt yet.
  4. Look, continuity and the resistor readings — power off, first table.
  5. Power through the meter — in the lead's gap, or across JP1 with its shunt off; JP2 out: 0.00–0.01 mA. Then JP1's shunt in, volts, second table.

✔ Stage 2 passes when

The resistor readings are the fab's parts being read through your new joints — a value far off means a wrong part placed, which is worth knowing now.

RedBlackModeExpectProves
J6 pin 2 · J8 pin 2 · J9 pin 3A — J10 GND·)))beep, eachThe three port grounds
J6 pin 1JP2 lower pin·)))beepThe modem's supply pin is behind the shunt
J6 pin 1J6 pin 2·)))no beepNo bridge on the modem port's supply
F — J8 pin 3D — J10 3V3Ω~100 Ω [D]R6, the DS18B20 supply's series resistor — too small for the beeper, right for Ω
G — J8 pin 1D — J10 3V3Ω~4.8 kΩ [D]R7 + R3: the data line's series resistor and its pull-up
J7 pin 3A — J10 GNDΩ~10 kΩ [D]R4, the thermistor divider's bottom leg
E — JP2 upper pinA — J10 GNDΩOL / climbingThe modem rail is not shorted, now that JP2 and J6 are in

Power through the meter: 0.00–0.01 mA. Volts, black on A:

Red onNetExpect
F — J8 pin 3OW_3V33.3 V — the sensor port's supply, through R6 with nothing drawing
G — J8 pin 1OW_DATA_J3.3 V — the data line, held up by R3
E — JP2 upper pinVBAT_RB0 V — the modem switch is off; R2 holds its enable down
J6 pin 1VBAT_RB_SW0 V — and JP2 is out besides
J7 pin 1 · J9 pin 1SENSE_EXC · LEAK_SENSE0 V — both are module pins, and there is no module

Why the readings come out this way

  • 100 Ω does not beep. A continuity beeper sounds below a threshold of a few tens of ohms; R6 is above it. So the probe port's supply pin shows as no beep to the rail, which is correct, and the Ω range is the right tool: it reads the resistor the fab placed, through two of your joints.
  • 4.8 kΩ from J8 pin 1 to 3V3 is R7 and R3 in series — resistances in a chain add. The data pin reaches 3.3 V only through those two, which is also why it reads 3.3 V in the volts table: with nothing drawing, no current flows through them and so nothing is dropped across them.
  • 10 kΩ from J7 pin 3 to ground is R4 alone: the thermistor is not plugged in, so the top half of the divider is missing and only the bottom leg is there to read.
  • J8 pin 3 reads a full 3.3 V through R6 for the same Ohm's-law reason: no load, no current, no drop. Plug a sensor in later and a few millivolts will go missing across R6 — harmless, and the sign that it is working.
  • JP2's upper pin reads 0 V because U3's ON pin is held at ground by R2 and a load switch that is off passes nothing — not even a leak the meter can see. The rail exists only when the brain, or stage 4's jumper, lifts pin 26.
  • J7 pin 1 and J9 pin 1 read 0 V because they are wired straight to a brain pin that is not there; an empty seat pin floats near ground on a board this quiet.

Stage 3 — the sensor seats: SOCK_BARO and SOCK_BME

Seventeen socket joints on the carrier, and seven on the BMP581 breakout itself, which ships bare. The breakouts then serve as jigs so the sockets go in square.

In plain words

The goal: give the two sensors that live on the carrier itself — the mission barometer and the weather sensor — sockets to plug into, and show that both sockets sit on the always-on 3.3 V and share one data bus with the fuel gauge's port.

The parts and their jobs:

  • The BMP581 is the mission's barometer: air pressure to ±0.3 hPa [D], the measurement the whole science case rests on. It comes as a small board with seven holes and no pins, so it gets a 7-pin header soldered on first. Only its last four pins are used — data, clock, ground, 3.3 V — but the seat is seven wide so the board cannot be plugged in one position off.
  • The BME280 measures temperature, humidity and pressure — the general weather sensor. Its board has two rows of pins; the four-pin row is the one wired (ground, 3.3 V, data, clock), the six-pin row only holds it steady.
  • SOCK_BARO and SOCK_BME are the female sockets you cut from the strip, so each sensor plugs in and can be swapped without soldering.

How they talk: both sensors use I²C, a two-wire bus — one wire for data (SDA), one for the clock (SCL) that paces it. Several devices share the same two wires, each answering only to its own address: the BMP581 at 0x47, the BME280 at 0x77, and the fuel gauge, plugged into QW1, at 0x36. All three hang on the brain's pins 21 and 22, which the page calls I²C0. The GPS is deliberately not on this bus: it sits on a second one (I²C1, pins 18 and 19, through QW2) behind its own power switch, so it can be switched fully off. A second barometer, a SparkFun Qwiic BMP581, rides the GPS's own second Qwiic port (decided 2026-11-03): QW2 reaches the GPS and that sensor, both on I²C1, the barometer at 0x47 (the seat's address, on the other bus) and powered only while the GPS rail is up (FW-29); the bench scan with that rail up finds 0x42 and 0x47 there.

Power:

3V3 rail → SOCK_BARO pin 7 · 3V3 rail → SOCK_BME pin 2 · 3V3 rail → QW1 red · (U2 → QW2 red stays at 0 V until stage 4 turns it on)

These sensors stay powered all the time — they draw microamps asleep and the brain simply stops talking to them — so their seats are on the always-on rail, not on a switch.

Parts for this stage

PartQty per boardWhere fromPer the records
SOCK_BARO — a 7-way cut from the female strip7 positions (+1 lost)DigiKey 2223-SSK02-FPH-254-A40-ND, order 5owned
SOCK_BME — a 4-way and a 6-way from the same strip10 positions (+2 lost)same stripowned
DFRobot Fermion BMP581 (SEN0667) and the 10-pin male header it ships with, cut to 71owned before 2026-09-09; three more arrived 2026-10-30owned, 3 + 3 — LAND, SEA, the transfer standard; one of the first three is bad (2026-10-18)
SparkFun BME280 (SEN-13905), with its headers already on11 owned; 2 more on SparkFun order 000460515; 2 on #000477281owned — three on boards 1–3, one bad (2026-10-28), one spare
Qwiic → male-header cable, for probing QW1benchinventory, consumablesowned, 4

Target state — two seats, each holding its breakout while it is soldered

The BMP581 seat is seven wide though only its last four — SDA, SCL, GND, 3V3 — are wired: the three extra holes stop the breakout being plugged in offset by one. The BME280's 6-way is purely mechanical.
Cutting the female strip — a cut costs one position cut through the 8th cavity 1 … 7: the 7-way 4-way: cut through the 5th · 6-way: cut through the 7th The BMP581 gets its own header first sensor on the top face — stays up INTSDOCSBSDASCLGND3V3 7 pins on the back, pointing down INT end ↔ silk INT<
The BMP581's pin names are on its back silk, reading INT … 3V3; the header goes on that face so the sensor stays up and the names stay readable when it is plugged in. Only the last four pins carry anything.

The breakout is the jig

A female socket soldered on its own leans. Drop the socket into its holes, plug the breakout into the socket, and the breakout holds it vertical and — for the BME280's two columns — parallel. Solder one end pin underneath, look along it, then the rest. The breakout's pins get warm; that is all.

Pull both breakouts off before the checks. They are not part of this page: the first time they are powered is the carrier spec's step 6.

The BMP581 covers J10

Seated, the barometer's board reaches over the service header with about 2.5 mm [C] between its underside and J10's pin tips: the two rows are 7 mm apart on this revision, and the breakout is 16 mm wide. Nothing on this page needs J10's pin tops while the sensor is in: the meter points A, B and D are the cones underneath, and stage 4's jumper and stage 5's reset are taken with the barometer pulled off, one tug. In flight nothing plugs into J10. Moving the header clear is parked “with rev. 5, if there is one” (backlog FW-18).

While the cell has no fuse in its + lead, no probe touches J10's pin tops at all. The bench cell has none (FW-25; the pack's fuse rule is in stage 1's note). VBAT there is the cell before any fuse, and GND is the next pin: on board 1 a black probe moved onto J10 from above bridged the two and made smoke (lab-notes/2026-10-14-carrier-board-1-stage-3.md, fault 4). The black probe lives on A, the GND cone underneath; the red reads cones.

How it works inside — I²C, and why the carrier has no pull-up resistors

  • Two wires, many devices, one boss. I²C puts every device on the same two wires: SDA carries the bits, SCL the clock that says when to read each one. The brain is the boss — it drives the clock and starts every conversation by sending a 7-bit address; only the device with that address answers, the rest stay silent. That is how the BMP581 (0x47), the BME280 (0x77) and the fuel gauge (0x36) share pins 21 and 22 without confusion. The BMP581 has a solder jumper that moves it to 0x46, which only matters if two of them ever share a bus.
  • Nobody drives the wires high. Like 1-Wire, I²C devices can only pull a line down; resistors — the pull-ups — lift it back when everyone lets go. Two devices can therefore never push against each other. Each wire needs pull-ups somewhere, and here is the design choice: the carrier has none. Every breakout already carries its own pair, and three or four pairs in parallel are still a fine pull-up. On the sensor bus that is merely tidy.
  • On the GPS bus it is the whole point. The GPS sits on a second bus (pins 18/19 through QW2) with its rail switched by U2, and the GPS board's own pull-ups are the only ones on that bus (the second barometer behind it shares that rail, so it goes dark with it). A pull-up is a resistor to a rail — so a pull-up on the carrier, tied to the always-on 3.3 V, would keep feeding the switched-off GPS a trickle of current through its data pins, and the switch would never really switch it off. With the pull-ups living on the GPS board, they die when its rail does. Do not “improve” the carrier with pull-ups.
  • Why the seats are on the always-on rail. A sensor that is powered but not spoken to sleeps on a microamp or two; switching it off and on would cost a settling time at every reading and gain almost nothing. The GPS is different — it draws tens of milliamps whenever it is powered — so it, and only it, gets a switch.

Steps

  1. Cut a 7-way, a 4-way and a 6-way from the female strip, each cut through the next cavity along.
  2. The BMP581's own header. Snap 7 pins from the 10-pin header it came with. Pins through the board from the back (the face with the pin names), plastic against the back, long pins down; the sensor's face stays up. Push the long pins into the cut 7-way socket as a stand so the header sits square, then solder the seven on the sensor's top face.
  3. SOCK_BARO. Drop the 7-way into its holes and plug the BMP581 into it, INT end at the silk's “INT<”, 3V3 end at “>3V3”. Solder one end pin underneath, check, then the rest.
  4. SOCK_BME. The 4-way into the left column of holes (GND at the top), the 6-way into the right, the BME280 plugged across both so the two columns end up parallel. One pin in each, check, then all ten.
  5. Pull the breakouts off — straight up.
  6. Continuity, then power through the meter, then volts. Plug the Qwiic cable into QW1 to reach that port.

✔ Stage 3 passes when

Count socket positions from the square pad.

RedBlackModeExpectProves
BARO position 6 · BME 4-way topA — J10 GND·)))beep, eachThe seats' grounds
BARO position 7 · BME 4-way 2ndD — J10 3V3·)))beep, eachBoth breakouts sit on the always-on rail
BARO position 4BME 4-way 3rd·)))beepSDA is one net across the two seats
BARO position 5BME 4-way 4th·)))beepSCL likewise
Qwiic cable black · red · blue · yellowA · D · BME SDA · BME SCL·)))beep, eachQW1 is on the same bus
each socket positionthe next one·)))no beepNo bridges — GND–3V3 at the top of each seat is the pair that matters
BMP581 breakout: its 3V3 pinits GND pinΩOL / climbingYour seven joints on the breakout bridged nothing

On a meter without a beeper the ·))) rows are the lowest Ω range — the Klein's 2k (no 200 Ω position [M]): OL is no beep, and 0.000 to a few thousandths of a kΩ is beep — those few ohms are the trace and the probe contact.

Power through the meter, or across JP1 with its shunt off: 0.00–0.01 mA. Volts, black on A, red on the cones underneath: BARO position 7 and the BME 4-way's 2nd pin read 3.3 V; the Qwiic cable in QW1 reads 3.3 V on red; moved to QW2 it reads 0 V on red — the GPS rail is switched, and its switch is off.

Why the readings come out this way

  • SDA beeps between the two seats, and SCL likewise, because a bus is one net: every SDA pin on it is the same piece of copper. The Qwiic cable's blue and yellow beep to the same two pins for the same reason — QW1 is a third door onto the same two wires.
  • A seat position beeps to no neighbour because the four wired pins are all different nets, and the bus wires carry no pull-ups on the carrier — so with the breakouts off, SDA and SCL are not even joined to 3.3 V by a resistor. Plug a breakout in and its pull-ups appear: SDA to 3V3 would then read a few kilohms, not OL.
  • QW2's red reads 0 V and QW1's reads 3.3 because one is behind U2 and one is not — the whole difference between the switched rail and the always-on rail, seen in two measurements a centimetre apart.
  • The BMP581's own 3V3-to-GND reads OL/climbing for the same reason the carrier's does: between a sensor's supply pins there is a capacitor and a sleeping chip, nothing resistive. A steady few ohms there would be a bridge among your seven joints on the breakout.

Stage 4 — the module seat

Thirty-two male pins that have to land exactly where a real FireBeetle's two female strips are — so the FireBeetle itself is the jig. It is not powered and nothing is plugged into it during this stage. Then the one test that exercises both load switches before a module ever does.

In plain words

The goal: fit the seat for the brain, prove that every one of its 32 pins reaches the right place on the carrier, and then — with a single jumper wire standing in for the brain — prove the two power switches actually switch.

The parts and their jobs:

  • The FireBeetle 2 ESP32-E is the brain: a small computer on a 25 × 60 mm board. It wakes once an hour, reads the sensors, stores the readings, and every so often packs a batch into a short message for the modem; the rest of the time it sleeps. It has WiFi (never used here), a USB-C port for programming, and its own regulator and battery charger (the carrier's U1 does that job better; the module's are back-fed from the 3V3 pin, not bypassed — FW-19, stage 5's K reading). In this stage it is only a jig: unpowered, it holds the two pin strips at exactly its own spacing while they are soldered.
  • SOCK_FB is the pair of male pin strips, 14 on the left and 18 on the right. The module plugs onto them upside down — its own female strips are on the same face as its radio can — so when seated you see its back.
  • The jumper wire plays the brain's part in the switch test: a brain “turns a pin on” by putting 3.3 V on it, and a wire from a 3V3 pin — the seat's own, left row second from the top — does exactly that.

Which pin does what — the carrier's silk names them, and these are the ones that matter: 21/22 are the sensor bus (I²C0, stage 3); 18/19 the GPS bus (I²C1, through QW2); 16/17 the serial link to the modem and 14 its ON/OFF line; 25 turns the GPS's power switch U2 on, 26 the modem's switch U3; 4 is the temperature probe's 1-Wire line; 13 fires the excitation pulse, 39 reads the thermistor and 35 the leak pads; 0 and RST are the boot and reset buttons, brought out on J10. The two 3V3 pins are where the carrier feeds the module, and VCC goes nowhere while JP3 stays open.

Power and talk after this stage:

3V3 rail → seat 3V3 pins → (the module, once seated) · seat 25 → U2 → QW2 (GPS rail) · seat 26 → U3 → JP2 → J6 (modem rail)

With no module on, pins 25 and 26 rest at 0 V — R1 and R2 hold them down — so both switches are off and both switched rails read 0. The jumper lifts one pin to 3.3 V and the matching rail comes alive; pull it and the rail dies. That is the whole power-gating idea of the probe, seen working on the bench.

Parts for this stage

PartQty per boardWhere fromPer the records
SOCK_FB — a 14-pin and an 18-pin piece of the male strip32 pinsDigiKey S1012EC-40-ND, order 5owned
DFRobot FireBeetle 2 ESP32-E, female headers fitted — the jig, unpowered1ordered 2026-08-09owned, 3
Shunt for JP2 — fitted during the switch test, then pulled1DigiKey S9001-ND, order 5owned
Female–female jumper wire1 (bench)—owned
Qwiic → male-header cable, for probing QW2benchinventoryowned, 4

Target state — the seat in, the carrier complete

All eighty joints in. The seat's pin names on the silk are what you ring against: the right row's 21 and 22 are the wired I²C0 pins (the left row's SCL/SDA are deliberately unconnected), 25 and 26 drive the two switches, VCC goes nowhere while JP3 is open.
The module as the jig — side view carrier USB-C can, facing down module short ends through the board — NOT soldered yet module upside down: its female strips down onto the pins, its USB over the carrier's USB box Flip the pair to solder solder these: one at each end of each row first, check flat, then all 32 carrier module on its back, on the bench
Pins into the carrier, module onto the pins (USB over the USB box, its four mounting holes over the seat's four small holes), flip, solder. Pull the module off afterwards, rocking end to end.
The switch test — a jumper stands in for the module seat 3V3 jumper seat 25 U2 GPS H — QW2 red: 3.3 V on, 0 V off or, then seat 26 U3 modem E — JP2 upper: cell volts on, 0 off Nothing here can be hurt: the switch inputs are high-impedance, the only current is 3.3 V through a 100 kΩ pull-down, ~0.03 mA. With the JP2 shunt in, J6 pin 1 follows E — the rail reaches the port.
The one measurement that proves U2 and U3 — and R1, R2, C8, C9 — with nothing that can be damaged, before a module ever drives them.

How it works inside — the load switch, and why the probe sleeps at its floor

  • A load switch is a transistor with a doorbell. Inside U2 and U3 is a MOSFET between VIN and VOUT, like Q1's, plus a little control circuit on the ON pin. ON high (anything over about a volt) and the control circuit drives the gate so the transistor conducts — a few tens of milliohms, nothing lost. ON low and it is off, passing under a microamp. The ON pin itself draws nothing measurable, which is why a plain jumper from 3.3 V can work it and why the brain's pin can hold it all hour for free.
  • R1 and R2 are the default. A pin with nothing connected floats, and a floating ON pin could drift high and turn the GPS or the modem on by itself — while the brain is asleep, or before it has booted and taken charge of its pins. A 100 kΩ to ground makes “off” the answer whenever nobody is asking, at a cost of 3.3/100000 = 33 µA only while the pin is held high, zero while off.
  • C8 and C9 make the switch gentle. The CT pin sets how fast the output rises when the switch turns on; with 4.7 nF there it ramps over a few milliseconds instead of a tenth of one. The reason is the reservoirs on the far side: the GPS board and the modem both carry capacitors on their supply, and a capacitor presented with a voltage that appears instantly gulps a large current to fill itself in no time. That gulp, pulled through the regulator or through the pack link, would sag the rail and reset the brain. A ramp fills the same reservoirs slowly and nothing notices.
  • Why this is the whole design in one test. The probe's budget rests on one idea: the things that draw real current — the GPS at tens of milliamps, the modem at hundreds during a burst — must draw nothing for the 59 minutes an hour they are not needed. Not little; nothing. A switch in their supply is the only way to get there, and this is the moment both switches are seen doing it, with a voltmeter, before any firmware exists to blame.

Steps

  1. Snap a 14-pin and an 18-pin piece from the male strip. Drop them, short end down, into the seat's two rows: the 14 on the left under VCC…17, the 18 on the right under RST…RX. Do not solder.
  2. Plug the FireBeetle onto the long pins, upside down: its female strips face the carrier, so you are looking at the module's back; its USB connector sits over the carrier's USB box, its antenna end over the ANTENNA box. Its four mounting holes line up with the four small holes at the seat's corners — if they do not, it is turned round.
  3. Flip the pair so the module lies on its back and the carrier sits on top of it, pins standing up through the carrier. Solder one pin at each end of each row. Flip back, look along the gap: the module must sit flat and parallel on the two strips. Flip and solder the other twenty-eight.
  4. Pull the module off — straight up, rocking a little end to end, not side to side.
  5. The bridge walk, then the net checks — first table, power off.
  6. Power through the meter — across JP1 with its shunt off — no module: 0.00–0.01 mA. Volts: both seat 3V3 pins 3.3 V; seat VCC 0 V; seat 25 and 26 (I) 0 V — R1 and R2 holding the switches off with nothing driving them, the carrier spec's step 4.
  7. The switch test — second table. Both sensors off their seats — the BMP581 covers J10. Jumper from the seat's own 3V3 pin (left row, second from the top — not J10's: the seat pin's neighbours are VCC on no net and GND, both harmless if the sleeve slips, and the cell's VBAT is nowhere near; board 1 did it this way) to seat 25, read, pull it; to seat 26, read, pull it; fit the JP2 shunt, jumper to 26 again, read at J6 pin 1, pull it. Pull the shunt. Unplug the cell.

✔ Stage 4 passes when

Bridges first: hold one probe on a seat pin and walk the other down the row, pin by pin, both rows. No two neighbours share a net, so any steady beep is a bridge. Without a beeper: the lowest Ω range (the Klein's 2k), OL down both rows, and any number at all is a bridge. Then the nets:

Seat pinReachesModeExpect
3V3 (left row 2nd) and 3V3 (right row 2nd)D — J10 3V3·)))beep
GND (left row 3rd) and GND (right row 4th)A — J10 GND·)))beep
21 · 22 (right row)BME SDA · BME SCL·)))beep — I²C0
18 · 19QW2 via the cable: blue · yellow·)))beep — I²C1, the GPS bus (and the second barometer behind it)
14 · 16 · 17J6 pin 5 · J6 pin 4 · J6 pin 3·)))beep — ON/OFF, modem TX, modem RX
13 · 39J7 pin 1 · J7 pin 3·)))beep — the thermistor's excitation and sense
35J9 pin 1·)))beep — leak sense
4G — J8 pin 1Ω~100 Ω — R7 is in the way
0 · RSTJ10 IO0 · J10 RST·)))beep — the service header reaches the seated module's buttons
VCC (left row top, square)anything·)))no beep to any rail — JP3 is open

The switch test, cell on, JP1 in:

Jumper from the seat's 3V3 pin →Read, red onExpectProves
seat 25H — Qwiic cable red, in QW23.3 V; pull the jumper, 0 V within a secondU2 switches the GPS rail on and off
seat 26E — JP2 upper pinthe cell's voltage; pull the jumper, 0 VU3 switches the modem rail on — and the rail is the pack's voltage, not 3.3, as ADR 0014 wants
seat 26, JP2 shunt fittedJ6 pin 1the cell's voltage; pull the jumper, 0 VThe shunt carries the rail to the modem port

The carrier is finished and every net on it has been seen from both ends.

Why the readings come out this way

  • Any beep between neighbouring seat pins is a bridge because the designer arranged that no two adjacent pins share a net — so the walk down the row has no exceptions to remember. (The two pins marked NC and the left row's SCL/SDA are connected to nothing on the carrier; a bridge onto one of those is harmless but still sloppy.)
  • Seat 4 to J8 pin 1 reads 100 Ω, not a beep — R7 sits between them, by design, so a flooded probe cable meets a resistor before it meets the brain. Board 1 read 0L here first and 99 [M] once the probe was pressed into J8's cone: a probe resting on flux reads open. Before reheating anything, read each end to D on the 20 kΩ range — seat 4 gives R3, J8 pin 1 gives R7 + R3 — and if both answer, the gap is the probe.
  • Seat 25 and 26 read 0 V with nothing on them — R1 and R2 pulling them to ground, the pull-down idea at work. If one read 3.3 V here, a switch would be on with nobody asking, and a sleeping probe would be burning its GPS budget.
  • The jumper lifts a rail within a blink and pulling it drops the rail within a second — the rise is the soft-start ramp (milliseconds), the fall is the far side's reservoir draining through the meter's own 10 MΩ and whatever is on the cable; nothing on the carrier actively discharges it, which is fine.
  • JP2's upper pin shows the cell's voltage, not 3.3, because U3's input is VBAT: the modem is deliberately fed from the pack, ahead of the regulator, so its transmit bursts never pass through a 250 mA part. That was decision ADR 0014; this reading is it, on the bench.
  • The current during the test is ~0.03 mA — the 3.3 V on the jumper, across R1's or R2's 100 kΩ to ground. Ohm's law, and the only thing on the board that is drawing.

Stage 5 — the module's first boot from the carrier

Nothing is soldered. Two things are asked: does the carrier's regulator hold the rail with an ESP32 drawing from it, and does feeding 3.3 V into the module's own 3V3 pin — how this board powers it, and undocumented by DFRobot — leave the module running cleanly. The first is pass/fail; the second is a measurement to record either way.

In plain words

The goal: the brain runs on the carrier, from the cell, for the first time — and the regulator you fitted in stage 1 keeps the 3.3 V steady while a real computer draws from it.

The parts and their jobs:

  • The FireBeetle, this time powered. It carries the project's firmware in its bench build: the same program the probe will run, with every “hour” shortened to ten seconds so a whole day of wake-read-sleep plays out in a minute. It prints what it is doing over USB — but USB is not plugged in during this test, so what you watch instead is the current it draws and the voltage it leaves on the rail.
  • The cell and harness from stage 1, and the JP1 shunt — in, so the regulator feeds the module. The JP2 shunt stays out: no modem is connected, and its rail stays dead.
  • The meter on its 10 A range in the + lead, because the module's draw would make the fine mA range itself steal too much voltage.

How the power reaches the brain:

cell → J5 → Q1 → F1 → U1 → JP1 → 3V3 rail → the module's 3V3 pin → the ESP32

That last hop is the unusual one. The module's 3V3 pin is normally an output of its own regulator; the carrier pushes 3.3 V into it instead, which DFRobot never documented either way. If the module runs cleanly, fine. If it keeps resetting, or its USB-side rail (probe point K) comes alive from the inside — it has, on every module measured — that is one input to whether JP3, the alternative feed through the module's own regulator, ever gets closed, not the whole of it (FW-19). Either way you write the numbers down; this stage is as much a measurement as a test.

Talk: none yet. The sensors are not plugged in, so the firmware will note that it found nothing and carry on; the modem port is dead. Both are the next phases' work, on USB, with the JP1 shunt pulled — the flight board checklist's, for boards 2–5.

Parts for this stage

PartQtyWhere fromPer the records
DFRobot FireBeetle 2 ESP32-E, flashed with the project firmware's bench build1ordered 2026-08-09owned, 3
A USB-C cable and the laptop with PlatformIO, for the flash — off the carrierbench—not on record
The bench harness and cell from stage 1; JP1's shunt——made in stage 1

Target state — the module seated and running from the cell

JP1 in, JP2 out, no USB. The module hides the seat pins, which is what J10 is for: VBAT, GND and 3V3 stay reachable beside it, and the module's reset and boot buttons, now facing the carrier, are reachable through J10's RST and IO0 — with the BMP581 pulled off its seat first, since it covers J10. The meter in the gap is on the 10 A range for this stage.

How it works inside — what the brain does with the power, and what the meter will show

  • A boot is a surge, then a rhythm. When power arrives the ESP32 charges its own reservoirs and starts its clocks — a brief spike of a hundred milliamps or more — then runs the firmware's loop: wake, try the sensors, try the GPS, note what answered, sleep. In the bench build an “hour” is ten seconds, so on the 10 A range you will see the number flick up during a wake and settle during a sleep, over and over. A radio burst would be a far bigger spike, and this build never makes one.
  • Why the mA range would lie here. A meter measures current by passing it through a small internal resistor and reading the voltage across it. On the mA range that resistor is a few ohms: at 100 mA, Ohm's law says it drops a few tenths of a volt — enough, from a 3.7 V cell, to pull the regulator's input under what it needs and brown the module out. The 10 A jack uses a resistor a hundred times smaller, and the drop vanishes. The price is a coarser last digit, which this test does not need.
  • Why the module runs on its own 3V3 pin. The FireBeetle expects to be fed 5 V on VCC and to make its own 3.3 V. The carrier skips that: U1 was chosen for its 1.6 µA [D] idle, and feeding 3.3 V straight into the pin the module's regulator would normally drive keeps that second regulator's own idle out of the sleep budget. A regulator whose output is held at its own setpoint simply does nothing — unless some current finds its way backwards through it into the module's 5 V side, which is what the K reading looks for, and on every module measured it does: the back-fed VCC reaches the module's battery node through Q3, where the WS2812 hangs through the uncut Low Power Pad. JP3, if it is ever closed, would feed VCC instead; energy does not decide it, and a closed JP3 puts USB's ~4.7 V onto the 3.3 V rail (FW-19, where K, which follows the module, is one input).
  • What “the rail holds” means. The regulator can give 250 mA; a brain without its radio asks for well under that. If J10's 3V3 stays near 3.3 V while the current moves, supply and demand are matched. If it keeps dipping and recovering, the module is drawing more than the regulator can give at some instant — resetting, and starting again — and the design, not the soldering, is what that result is about.

Steps

  1. Flash the module off the carrier, on USB, with the project firmware's bench build — pio run -e bench -t upload from device/firmware/, as its README says. It prints over serial at 115200 and never touches WiFi or Bluetooth, which is the point: the radio's bursts are what a 250 mA regulator cannot feed. A module that arrives with a factory demo on it may well scan WiFi at boot, so do not seat an unflashed one. On a Mac the module's CH340 may need WCH's own driver before a port appears at all — board 1's module reports a USB product ID that Apple's built-in driver does not list — and a cable that only charges shows no port either. Watch the serial monitor for a wake line before unplugging: that is the flashed build running.
  2. Unplug USB. JP1 shunt in, JP2 shunt out, cell not yet plugged. Seat the module, USB end to the USB box.
  3. Move the meter's red lead to the 10 A jack, dial on A. Put it in the + lead's gap as before — or, when that gap has been soldered shut, across JP1's two pins with the shunt off, as board 1 did — and plug the harness into J5. Across JP1 the meter is the shunt: nothing lights until both probes land, the module boots the moment they do, and a minus sign is only the probes the other way round.
  4. Read the table. Then unplug the cell. That closes the soldering.

✔ Stage 5 passes when

ReadingExpectMeans
current, 10 A range0.02–0.15 A [C]An ESP32 running without its radio is tens of milliamps. On the bench build the “sleep” keeps the chip and its serial port awake, so the number may hold still — board 1 read 0.03 A [M], boards 2 and 3 the same by 2026-10-28, and it did not move (lab-notes/2026-10-14-carrier-board-1-stage-5.md). A steady 0 is a module not booting; a steady half-amp is a fault — unplug
D — J10 3V3, on its cone underneath, meter out of the gap and the gap joined3.2–3.37 V, steadyThe regulator holds the rail. A reading that keeps dipping toward 2.5 V and recovering is the module browning out and resetting — stop, record it: that is the design's problem, not the soldering's
B — J10 VBAT, its cone underneaththe cell's voltage, down a few tens of mVQ1, the harness and the cell's own resistance carrying a real current — B is upstream of the polyfuse, so F1 is not in this reading
K — the square pad at the top of the 14-pin row, underneath the boardrecord itThat is the module's VCC — its USB-side rail. 0 V would mean the carrier's feed stays on the 3V3 side; a reading near the rail means it passes back through the module's regulator onto VCC, and through Q3 to the module's battery node (the CH340K USB chip is on VUSB behind D2 and is not back-fed, on paper; the VCC-side µA reading is owed, FW-30). Either is a fact the power budget needs; neither is a fault on this page. Board 1 read 3.03 V with 3.33 V on the rail [M] — the leak case; later, three modules read 3.29, 3.14 and 3.24 → 3.02 V [M]: K follows the module, not the board (FW-19)
touch U1 after a minutebarely warm at mostAt 50 mA from a 4 V cell it dissipates ~35 mW [C]

Why the readings come out this way

  • The current sits at tens of milliamps because the chip is working with its radio off. The bench build's “sleep” keeps the chip and the serial port awake, so the number need not move at all; it is the real build's deep sleep that drops it to the floor, ~648 µA [C] as built (board 1 read 0.73 mA at JP1 [M]), which only a meter with a fine current range can see. A zero is a chip that never started.
  • VBAT is now a few tens of millivolts below the cell — the same Q1 that dropped nothing on the bare board now carries real current, and Ohm's law gives it a real drop, plus the harness's contacts and the cell's own internal resistance. B is Q1's output, ahead of F1, so the fuse is not in this reading (at a working 0.1 Ω it drops 0.1 Ω × 0.05 A = 5 mV [C], seen only at U1's middle leg).
  • U1 is barely warm because its waste is the volts it drops times the current: 0.7 V × 0.05 A = 35 mW [C], a small fraction of what a finger notices.
  • K is “record it”, not pass/fail, because either answer is consistent with a working board. 0 V would say the module's regulator blocks backward flow; a reading near the rail says it does not, and that the module's battery node (its charger chip, a divider and the status LED) is being fed through Q3, which the sleep budget must then account for. So far every module has, by a different amount.

To see the serial output and go on to the sensors: pull the JP1 shunt, plug USB in. The module then feeds the carrier's 3V3 rail from its own regulator, every seat is live, and the carrier spec's steps 6–9 — the I²C scans, the DS18B20, the thermistor, the leak pads, the modem last — run from there — for boards 2–5, in the flight board checklist. They need firmware, not solder.

What this page does not prove

FW-01 · FW-30
Anything in microamps. The EverStart's mA range reads to 10 µA at best; every “0.00 mA” above means “below the first digit”, not a measurement. The Klein MM325 reads 0.1 µA steps since 2026-10-30, and the floor as built — ~648 µA [C] (~617 at JP1), the two LEDs most of it — is FW-30’s reading, not this page’s: board 1 read 0.73 mA at JP1 on 2026-11-03 [M] (1.0–1.3 before its BME280 went into forced mode, FW-31); boards 2–3 and the VCC side are owed.
FW-19
What the back-fed VCC side costs. Stage 5 showed the module's own regulator passing the carrier's 3.3 V backwards onto its VCC rail, which reaches the module's battery node through Q3; the CH340K USB chip is on VUSB behind D2 and is not back-fed, on paper. What the VCC side idles at is a µA reading on each module (K follows the module, not the board). This page only records the volts.
FW-02 · FW-03
The modem and the GPS. Both rails are shown to switch here; the loads have since been on them, off this page. The modem sent three times on 2026-10-17 and its cold start is measured: 12.0 s, 7.0 s, and 9.0 s on both modems outdoors [M]; FW-02 owes only the pack's low end. The SAM-M8Q gave NMEA at 0x42 over I²C1 and a fix in 26 s [M]; FW-03's adapter is what remains.
DOC-18
Which carrier flies. This page builds the fabbed carrier; the wiring guide builds the hand-made one to the same standard. The decision between them is an ADR after bench gates ①–④, not a soldering outcome.
not tracked
The shunts for flight. JP1 and JP2 are shunts on the bench and get soldered or replaced by a wire link before a board goes to sea — a loose shunt on a drifting buoy is a silent dead station. Not yet.

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.