Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/peterhinch/micropython-micropower
Support for building ultra low power systems based on the Pyboard (1.x and D series).
https://github.com/peterhinch/micropython-micropower
embedded micropython
Last synced: 3 months ago
JSON representation
Support for building ultra low power systems based on the Pyboard (1.x and D series).
- Host: GitHub
- URL: https://github.com/peterhinch/micropython-micropower
- Owner: peterhinch
- License: mit
- Created: 2015-09-02T06:24:39.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2023-09-11T16:00:05.000Z (about 1 year ago)
- Last Synced: 2024-04-22T13:31:31.058Z (7 months ago)
- Topics: embedded, micropython
- Language: Python
- Homepage:
- Size: 2.28 MB
- Stars: 44
- Watchers: 13
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-micropython - Pyboard micropower - Tutorial and code for low power applications on Pyboard 1.x and Pyboard D. (Tutorials / Utilities)
README
# Reducing Pyboard system power consumption
This repository is specific to STM systems. It primarily supports Pyboard 1.x
and Pyboard D. An alternative micropower architecture is to use ESPNow with
ESP8266 or ESP32. [This document](https://github.com/peterhinch/micropython-mqtt/tree/master/mqtt_as/esp32_gateway)
describes an MQTT client suitable for long term battery operation.The Pyboard can be used to build systems with extremely low power consumption,
and it is possible to build systems capable of running for over a year on
standard batteries such as AA cells or even coin cells. With the Pyboard 1.x
series, achieving the lowest possible power consumption where peripheral
devices are attached requires a little additional hardware. The Pyboard D
overcomes this requirement by virtue of a software switchable 3.3V regulator
which also powers the I2C pullups.Broadly there are two approaches, depending on the acceptable level of power
consumption. If an idle current in the range of 500uA to 1mA is acceptable,
code can be largely conventional with `pyb.stop()` being employed to reduce
power consumption during periods when the Pyboard is idle.For the lowest possible power consumption `pyb.standby()` must be used, cutting
consumption to around 6μA. With external hardware on the Pyboard 1.x or via the
switchable regulator on the D series the peripherals may be turned off ensuring
that the entire system uses only this amount. The drawback of `standby` is that
on waking the Pyboard restarts as if from a reboot. This introduces potential
difficulties regarding determining the source of the wakeup and the storage of
program state while sleeping.Two sets of resources are provided to assist with the development of low power
solutions.### Hardware
[hardware](./HARDWARE.md) A discussion of techniques to minimise power
consumption including ways to shut down attached devices, calculation of
battery usage and measurements of results. A schematic for a typical system is
provided with accompanying PCB layout.### Software
[upower](./UPOWER.md) This documents `upower.py`, a module providing access to
features of the Pyboard SOC which are currently unsupported in the official
firmware. Some of these features may be of wider use, such as using the battery
backed RAM to store arbitrary Python objects and accessing the RTC registers.All code is issued under the [MIT license](./LICENSE)