FreeRTOS on Self-powered Devices


As part of our lab’s research on Energy Harvesting Intermittent Computing Systems, we have designed and implemented modifications to the FreeRTOS kernel to enable multitasking on intermittently-powered IoT devices (making IoT devices battery-less and intermittence transparent to programmers).

  1. Run multiple tasks concurrently to improve computation progress
  2. Achieve consistency between data and computing progress
  3. Recover the system instantly from power failures
  4. Accumulatively preserve computation progress across power cycles to avoid progress stagnation

We have developed and tested our design on the Texas Instruments MSP430FRxx and Cypress PSoC 6 platforms.
You can find the open-source code at:

Do bear in mind that this is not production code and requires significant further development before it can be used in a live product. Having said this, if you are interested in a FreeRTOS extension with Intermittent Power support, you should hopefully find it useful!

Kind Regards,

EMCLab - Academia Sinica, Taiwan

1 Like

Wow, great and thanks for sharing. I look forward to taking a look.

Hi @meenchen. Thank you so much for this valuable contribution to the FreeRTOS community. I haven’t looked at the code, but noticed the GPL V2 license. One question that I have is, is there a possibility to apply a more permissive license (e.g. MIT) to this repo?

Thanks for the suggestion. I have changed the license as MIT. Hope this can help people who also work on intermittent systems.

1 Like

Thank you so much Wei-Ming Chen, Pi-Cheng Hsiu, Tei-Wei Kuo, as well as Dr. Pi-Cheng Hsiu and Dr. Tei-Wei Kuo for this contribution!