{"id":13802654,"url":"https://github.com/peterhinch/micropython-micropower","last_synced_at":"2025-04-30T15:31:31.337Z","repository":{"id":86072661,"uuid":"41783941","full_name":"peterhinch/micropython-micropower","owner":"peterhinch","description":"Support for building ultra low power systems based on the Pyboard (1.x and D series).","archived":false,"fork":false,"pushed_at":"2023-09-11T16:00:05.000Z","size":2394,"stargazers_count":44,"open_issues_count":0,"forks_count":3,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-04-22T13:31:31.058Z","etag":null,"topics":["embedded","micropython"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peterhinch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-09-02T06:24:39.000Z","updated_at":"2023-09-11T16:00:09.000Z","dependencies_parsed_at":"2024-01-27T08:46:50.151Z","dependency_job_id":null,"html_url":"https://github.com/peterhinch/micropython-micropower","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython-micropower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython-micropower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython-micropower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peterhinch%2Fmicropython-micropower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peterhinch","download_url":"https://codeload.github.com/peterhinch/micropython-micropower/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224215505,"owners_count":17274798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded","micropython"],"created_at":"2024-08-04T00:01:49.560Z","updated_at":"2024-11-12T04:21:12.751Z","avatar_url":"https://github.com/peterhinch.png","language":"Python","readme":"# Reducing Pyboard system power consumption\n\nThis repository is specific to STM systems. It primarily supports Pyboard 1.x\nand Pyboard D. An alternative micropower architecture is to use ESPNow with\nESP8266 or ESP32. [This document](https://github.com/peterhinch/micropython-mqtt/tree/master/mqtt_as/esp32_gateway)\ndescribes an MQTT client suitable for long term battery operation.\n\nThe Pyboard can be used to build systems with extremely low power consumption,\nand it is possible to build systems capable of running for over a year on\nstandard batteries such as AA cells or even coin cells. With the Pyboard 1.x\nseries, achieving the lowest possible power consumption where peripheral\ndevices are attached requires a little additional hardware. The Pyboard D\novercomes this requirement by virtue of a software switchable 3.3V regulator\nwhich also powers the I2C pullups.\n\nBroadly there are two approaches, depending on the acceptable level of power\nconsumption. If an idle current in the range of 500uA to 1mA is acceptable,\ncode can be largely conventional with `pyb.stop()` being employed to reduce\npower consumption during periods when the Pyboard is idle.\n\nFor the lowest possible power consumption `pyb.standby()` must be used, cutting\nconsumption to around 6μA. With external hardware on the Pyboard 1.x or via the\nswitchable regulator on the D series the peripherals may be turned off ensuring\nthat the entire system uses only this amount. The drawback of `standby` is that\non waking the Pyboard restarts as if from a reboot. This introduces potential\ndifficulties regarding determining the source of the wakeup and the storage of\nprogram state while sleeping.\n\nTwo sets of resources are provided to assist with the development of low power\nsolutions.\n\n### Hardware\n\n[hardware](./HARDWARE.md) A discussion of techniques to minimise power\nconsumption including ways to shut down attached devices, calculation of\nbattery usage and measurements of results. A schematic for a typical system is\nprovided with accompanying PCB layout. \n\n### Software\n\n[upower](./UPOWER.md) This documents `upower.py`, a module providing access to\nfeatures of the Pyboard SOC which are currently unsupported in the official\nfirmware. Some of these features may be of wider use, such as using the battery\nbacked RAM to store arbitrary Python objects and accessing the RTC registers.\n\nAll code is issued under the [MIT license](./LICENSE)\n","funding_links":[],"categories":["Tutorials"],"sub_categories":["Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterhinch%2Fmicropython-micropower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeterhinch%2Fmicropython-micropower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeterhinch%2Fmicropython-micropower/lists"}