The one-line ask
“I need to solder two fine wires onto two small pads on the underside of this board, so it can run off a rechargeable battery. The battery stays disconnected while we solder. Can someone with steady hands help?”
+ on both with a dab of paint or tape. JST polarity is not standardised between suppliers — the two may not agree even though the plugs mate.| Item | Why |
|---|---|
| XIAO ESP32-S3 (POC board) | The board being wired |
| 2–3 × 500mAh LiPo, one charged | Spares matter — a botched cell ends the session |
| 2 × JST-PH pigtails | One to fit, one spare |
| Multimeter | Polarity and continuity — the critical tool |
| Micro Lipo charger + USB-C cable | Charging and power |
| LiPo bag | Transport, and a visible precaution to point at |
| Kapton or electrical tape | Strain relief and insulating bare ends |
| Laptop | Reflash and read serial output on the spot |
| The diymore C3 board | For the regulator check in §4 |
Never apply heat to a battery tab. Cell tabs are spot-welded, not soldered. Our cells come with leads already fitted, so nobody needs to go near the cell with an iron. This is the single rule that matters.
Nothing is soldered with a cell connected. The battery is plugged in last, after the meter checks pass.
The cell holds about 1.9 Wh — roughly a tenth of a phone battery. Real hazard, manageable scale. Charging happens at home, not here, so the Shed is only being asked for the soldering.
The XIAO has bare solder pads on the underside, not a socket. We fit a pigtail so the battery becomes plug-in and keyed, rather than soldering the cell on permanently.
Polarity — from Seeed's own documentation:
Negative (−) = the pad on the side closest to the USB-C port.
Positive (+) = the pad on the side away from the USB-C port.
| Test | Expected | Result |
|---|---|---|
| Unplug USB — does the board still run? | Yes. It should boot and keep advertising on battery alone | |
| Plug USB back in | Red charge LED lights or flashes | |
| Leave on USB until charged | Red LED goes out when full | |
| Measure voltage across the cell | 3.7–4.2 V. Below 3.0 V = retire the cell, do not recharge | |
| 5 V pin while on battery | Dead — this is normal and documented, not a fault |
Ask for a second JST-PH pigtail with the RED wire cut, and both cut ends brought out to small loops or pin ends. This drops the multimeter straight into the battery's positive line, so measuring current is a plug-in job rather than a soldering job every time.
Why it is worth five minutes: M0 needs a deep-sleep current figure, and every future battery-life measurement needs the same connection. Without it, each measurement means unsoldering something.
Your CHY A830L will read this fine — full procedure in §3c below.
This is the other half of M0. Range tells you whether the radio reaches; current draw tells you how long a cell will last, and it is the number that decides how small the production battery can be.
| Your meter | Figure | Good enough? |
|---|---|---|
| DC current ranges | 200µA · 2mA · 20mA · 200mA · 10A | Yes — the 200µA range is the one |
| Resolution on 200µA | 0.1µA (1999-count display) | Yes |
| DC current accuracy | ±1.8% | Fine — you are telling 14µA from 300µA, not calibrating |
| Meter battery | 9V PP3 (6F22 / NEDA1604) | Carry a spare — a dying 9V drifts rather than dies |
| Reading | Verdict | Implied standby on 500mAh |
|---|---|---|
| ~14µA | Correct — matches Seeed’s spec for the S3 | Years in theory; months in practice |
| 50–200µA | Acceptable, some leakage | ~3–12 months |
| ~43µA (C3, LED removed) / ~400µA (C3, as shipped) | Expected for the C3 SuperMini — documented, not a fault. See §4 | Weeks to months / days |
| Hundreds of µA to mA | Something is leaking — usually the power LED or a lazy regulator. Fixable by desoldering the LED, or gone entirely on a bare production module | Days to weeks — not viable |
Record the figure for both boards. The C3 vs S3 sleep-current gap is the second half of the board decision, alongside range.
Two rules. Never probe a voltage while the meter is still in current mode — in current mode the leads are a near short through the shunt, and that is how these meters die.
You cannot measure a board that wakes up and transmits. On the 200µA range a BLE burst is a thousand times over-range; the burden voltage collapses the rail and the board resets, so you would be measuring a reset loop. That is the entire reason for the dedicated sleep sketch.
Sleep test — sleeps 5 minutes at a time so the reading settles:
arduino-cli compile --fqbn esp32:esp32:esp32c3:CDCOnBoot=cdc --upload -p /dev/cu.usbmodemXXXX "POC Firmware/06_deep_sleep_test"
Back to the range/app sketch afterwards:
arduino-cli compile --fqbn esp32:esp32:esp32c3:CDCOnBoot=cdc --upload -p /dev/cu.usbmodemXXXX "POC Firmware/05_ble_range_test"
For the XIAO S3 swap the FQBN to esp32:esp32:XIAO_ESP32S3. Always use compile --upload as one command when switching between boards — a bare upload can pick up the other board’s image from the build cache (it fails on chip ID, 5 vs 9, but only after wasting a flash).
The board is marked SuperMini, and that design is documented by the community: it carries an ME6211 LDO. That is a low-dropout regulator, so it can hold 3.3 V as a LiPo sags toward 3.0 V. The fear that the C3 simply could not run from a cell looks unfounded.
diymore is a reseller and clones vary, so the job here is now confirmation, not discovery. Borrow a magnifier and read the marking on the small 3-pin SOT-23 chip near the USB-C connector. Photograph both sides of the board while you have the loupe out.
| If the marking reads… | It means |
|---|---|
ME6211 (expected) | Confirms the documented design. Low dropout — a LiPo works |
XC6206, 662K, SGM2212 or similar | Also low dropout — fine |
AMS1117 or 1117 | Unexpected. ~1.1 V dropout, so it could not hold 3.3 V from a sagging cell. Would rule the board out for battery use |
The question that actually matters now is the power LED, not the regulator. The SuperMini is documented at roughly 43µA in deep sleep — but only with the POW LED physically removed. As shipped, with the LED in place on the 5 V rail through a 5.1k resistor, community reports put it nearer 400µA.
Against the XIAO S3’s specified 14µA, that is around 3× worse at best and roughly 30× worse as shipped. On a 500mAh cell that is the difference between months of standby and days. So if the C3 reads in the hundreds of µA tomorrow, that is the documented behaviour of the board, not a fault to debug — record it and move on.
Worth keeping in proportion: at production neither board is used as-is. A bare module has no power LED and no dev-board regulator, so this particular penalty disappears. It still counts against the C3 for the MVP units, which are built on dev boards.
While the magnifier is out, also note whether the board has a U.FL / IPEX socket for an external antenna. The XIAO S3 has one; if the C3 does not, that is a real difference for a device that has to work inside a pocket or bag.
The C3 is already flashed and advertising as PG-ESP32-C3. It needs no buttons and no second person.
| Run | C3 result | S3 result |
|---|---|---|
| Bedroom → kitchen (through walls) — the product case | ||
| Open street, distance at drop-out — the antenna comparison | ||
| Phone locked, app backgrounded — still receiving? |
Transmit power is pinned in the sketch so both boards transmit at the same level. Don't change it between runs — otherwise you measure the setting, not the antenna.