Skip to content
Snowbird Power Systems
In stock, ships from BC Feather-compatible Qwiic

Power for things that live outside.

Snowbird is the module that makes a raw cell safe to build on, charges from USB-C or solar, and reports to your code over Qwiic or Bluetooth. Charger, BMS, fuel gauge and two regulated rails on a Feather.

28 µA
idle, gauge and supervisor awake
20 W
solar in, MPPT, on the Pack
5
chemistries, one jumper
The Snowbird Feather 1S: a matte navy Feather-sized circuit board with gold castellated edges, a USB-C port, white JST connectors, a shielded Bluetooth module with a chip antenna, a power inductor and the Snowbird wordmark in white silkscreen.
Snowbird Feather 1S $59.00 CAD
CHG PG SOC 87 % · 3.91 V · 412 mA in

Why Snowbird

Four things no other module does together.

Most charger boards do one job and leave the rest to you. Snowbird is the whole power path, from a bare cell to two regulated rails, with a supervisor that keeps the safety rules even when your firmware does not.

Raw cells, no external BMS

A programmable protector and fuel gauge on the board, so a bare pouch, an 18650 or a 4S pack is safe to build on. Thresholds follow the chemistry you set.

Solar and USB-C in one part

One MPPT charger with two inputs and a power path. The load runs from the input while the battery charges, and hands over without a glitch when the sun goes.

One register map, three languages

A supervisor on Qwiic with one I2C address. The same calls in Arduino, C and MicroPython, on every board in the line, with settings that survive a host reflash.

LiSOCl2 primary cells, properly

A primary-cell mode no other module offers: charging disabled in hardware, a gauge that counts out, and USB or solar still powers the load for service.

Macro close-up of the USB-C end of a Snowbird Feather 1S: the USB-C receptacle, two small white Qwiic connectors, the solar connector and the amber charging LED.
Yellow: charging · Green: charge complete

Inside

Five layers between your firmware and a fire.

A lithium charger has to be safe when the code is wrong. Snowbird's safety stack is five independent layers; a bug has to misconfigure two separate chips to overcharge a cell.

  1. 1

    Chemistry jumper

    Sets the voltage ceiling in hardware. Software can only select at or below it; the PRIMARY position disables charging entirely.

  2. 2

    Charger

    Charge voltage, current and the JEITA temperature profile enforced on the TS pin, with no firmware in the loop.

  3. 3

    BMS

    Independent per-cell cutoffs for overcharge, overdischarge, overcurrent, short and temperature. Safe defaults if the supervisor is absent.

  4. 4

    Comparator

    A hard over-temperature cutoff that pulls both regulators' enables low at 65 °C.

  5. 5

    Fuse

    On the battery input. The last line, and the only one that cannot be reconfigured.

The safety page

One register map

Same calls on every board.

A capability register tells the library which board it is on. A call a board cannot honour returns a clear error instead of silently doing nothing.

Arduino C MicroPython Zephyr Home Assistant Web Bluetooth
Library reference
solar_node.ino
#include <Snowbird.h>

Snowbird pmic;

void setup() {
  pmic.begin(Wire);
  pmic.setChemistry(Chem::LiFePO4);     // refused above the jumper's ceiling
  pmic.setCapacity_mAh(2000);
  pmic.setChargeCurrent_mA(1000);       // clamped; returns the applied value
  pmic.onEvent(CHARGE_DONE | POWER_LOST | TEMP_HOLD, onPower);
}

void loop() {
  Serial.printf("%d%%  %d mV  %d mW solar  %s\n",
      pmic.soc(), pmic.voltage_mV(), pmic.solarPower_mW(),
      pmic.inputSource() == Input::Solar ? "sun" : "usb");
  delay(5000);
}

Reference builds

Three nodes, wired and measured.

Each build is a wiring card, a sketch and the numbers we got in the field. They double as the documentation examples.

All builds

Built in Kelowna, for January

Charge windows are the cell's, not the datasheet's.

Below 0 °C a lithium cell plates when charged. Snowbird gates charging on the cell's own thermistor, in hardware, and keeps the load running from solar in the meantime. The node survives February.

Temperature windows per chemistry