Low power uasyncio fork

Discussion about programs, libraries and tools that work with MicroPython. Mostly these are provided by a third party.
Target audience: All users and developers of MicroPython.
Post Reply
User avatar
pythoncoder
Posts: 2799
Joined: Fri Jul 18, 2014 8:01 am
Location: UK
Contact:

Low power uasyncio fork

Post by pythoncoder » Wed Jul 25, 2018 4:46 pm

I have produced a module enabling my modified uasyncio to be used in low power applications.

This is Pyboard specific: it requires the pyb module and uses the RTC as the uasyncio timebase. In some applications it enables mean current draw to be reduced below 1mA. It may be found in my uasyncio repo.

With some reluctance I have decided to maintain a fork of uasyncio. This is for the following reasons:
  • It is evident that PR's to uasyncio are not a priority. I believe I have identified a number of useful imrovements and am loath to wait for PR's to be addressed.
  • The added functionality in this version (a fast I/O option, low power operation, a bugfix to read/write I/O devices) modifies uasyncio.
  • Low power operation is provided by a module whose operation relies on the details of the scheduling algorithm.
  • In the absence of a fork if the algorithm changes (as happened with uasyncio 2) a significant amount of work is required to accommodate the changes. My previous fast I/O solution was broken for a period when uasyncio 2 was released.
  • In such a situation a fork gives users the option of using either version while I update my version. I can re-issue it when the changes are done and tested.
If indications emerge that uasyncio PR's have become a priority I will aim to get at least some of the changes into master.
Peter Hinch

Post Reply