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

Rich text editor