Close

Low-Power Testing

A project log for Snailbot

Cute snail robot.

adam-demuriAdam Demuri 01/04/2022 at 04:380 Comments

My intention is for the snail bot to run for months in between charges. To accomplish this, I will need to get the current consumption to be very low when the device isn't doing anything.

The motor drivers have very low quiescent current - they are rated at 0uA typical, and 2uA max. The processor is the primary power draw on the board. When not in use, the processor can be put into low-power states, where most functionality is turned off. There is a low-power library for STM32 Arduino, which makes this easy.

I added some quick code to make the processor go into a low-power sleep, Stop 1. According to the datasheet, in this mode the processor should consume in the single microamps. I used a variant of the uCurrent to measure the board's sleep current. Fortunately, I didn't have much to do - it's at 3.4uA. The battery has a capacity of 600 mAh, so in an idealized world, the board would run for 20 years while sleeping! This means that the motor current will dominate the power consumption.

I also measured the current draw when the processor is awake and idle. This came to 1.8mA. Depending on whether the logic is CPU- or IO-bound, there are easy options to reduce the clock speed, which reduces the power consumption. Once I've implemented the snail bot's behavior, I'll spend some time optimizing this.

Discussions