Skip to content

Latest commit

 

History

History
4 lines (3 loc) · 1.25 KB

README.md

File metadata and controls

4 lines (3 loc) · 1.25 KB

Sleeper

The Raspberry Pi doesn't have a proper "deep" sleep mode, so this is a short program for an AVR microprocessor to switch the Pi power supply on and off. Even a Raspberry Pi that is switched off still consumes quite a bit of power, which makes it rather unsuitable for long term battery powered applications. Sometimes it is fine to use a low power microprocessor instead, but sometimes you need a full Linux stack for whatever reason. The solution is to use a low power microprocessor to control the power supply, which can then switch the Pi on for the short durations when it's needed.

In more detail, the Raspberry Pi has a pin go high for its UART interface when it turns on. When it turns off, this pin goes low again. This AVR program waits for that pin to go low and then sets another AVR pin to go low as well. In my implementation, this pin is connected to the power supply for the RPi and causes it to disable the power supply of he Raspberry Pi. The AVR then sleeps for a predetermined time before switching the power supply back on. The Raspberry Pi it set to run a script on startup that shuts it down again after it ends. In this way, the UART pin will eventually go down, causing the AVR to switch the power supply off for a while and so the cycle repeats.