A Bigger, Better Power Supply

Motors are fairly power hungry. Especially if they can't spin when power is applied. This can cause at best noise, and at worst a voltage drop (like a brownout). Since the same supply is used for the CRICKIT and the connected motors as well as for the Circuit Playground Express (or other board, depending on your CRICKIT) this can cause some problems. MCU boards really like smooth steady power. Alkaline or NiMH AA batteries don't fair well in these situations. There are a couple options if this is a problem: you can use separate supplies for the motors and the controller board. This means more parts, more bulk, and the fact that the CRICKIT isn't designed for separate supplies. The other option is to use a beefier supply that can deal with the motor loads.

Beefing up the batteries is fairly simple. Adafruit stocks a massive 6600 mAh LiPo battery pack that provides far more power than Alkalines (up to 3000 mAh) or Ni-MH (about 2500 mAh). The problem is that LiPos are 3.7v and CRCKIT requires 5v.

Lithium Ion Battery Pack - 3.7V 6600mAh

PRODUCT ID: 353
Need a massive battery for your project? This lithium ion pack is made of 3 balanced 2200mAh cells for a total of 6600mA capacity! The cells are connected in parallel and spot-welded...
$29.50
IN STOCK

Fortunately, there is another product that can deal with that as well as provide several additional benefits: the PowerBoost 1000C.

PowerBoost 1000 Charger - Rechargeable 5V Lipo USB Boost @ 1A

PRODUCT ID: 2465
PowerBoost 1000C is the perfect power supply for your portable project! With a built-in load-sharing battery charger circuit, you'll be able to keep your power-hungry...
$19.95
IN STOCK

This board's core function is to convert (aka boost) the LiPo's 3.7v to 5v. It also provides a charger using micro USB as a power source, and can supply 5v while the LiPo is being charged. There are indicator LEDs to indicate charging/full, 5v power being supplied, and low battery output. The latter is also available as a high/low signal that can be read by the controller board.

You can get power out of this board by soldering directly onto the + and - pads, soldering on the supplied USB-A socket (included), or soldering on a 2-pin terminal block (not included).

Finally, there is an enable input on that row of pins that will shut down the power booster (leaving the charger active). A truly nice piece of the design of this board is that the enable connection is flanked by ground and Vs. This lets you directly solder on a breadboard friendly slide switch.

The wiring is shown below. Note the switch that turns the power supply on/off as well as the LBO signal connected to Signal 4 of the CRICKIT.

Either double-sided tape or hot glue can be used to mount the board. Double-sided tape was used to secure the battery pack in place.

Code

This is even less of a change to the code than adding the buzzer was. In fact you don't really need any changes to the code if you don't want to monitor the Low Battery Level signal from the PowerBoost1000 board.  Assuming you do, it's just the matter of setting up the input pin:

Download: file
LBO = crickit.SIGNAL4
ss.pin_mode(LBO, ss.INPUT_PULLUP)

and checking it at the top of the main loop:

Download: file
if not ss.digital_read(LBO):
    break

Like the case of getting stuck, this will turn off the motors and start calling for help (assuming you installed the buzzer).

This guide was first published on Jul 30, 2018. It was last updated on Jul 30, 2018. This page (A Bigger, Better Power Supply) was last updated on Nov 06, 2019.