Create Multitasking Apps in MicroPython and CircuitPython

Juggling in Small Spaces

© Lead Image © andreykrushk, 123RF.com

© Lead Image © andreykrushk, 123RF.com

Article from Issue 305/2026
Author(s):

You don't have to learn C to create multitasking applications on a microcontroller. Instead, you can use pyRTOS, a native Python multitasking library, on your next microcontroller project.

Multitasking on server hardware is quite a bit different from trying to do it on a small microcontroller. A server system supports hardware and operating systems that take advantage of multiple processors, task scheduling, and multithreading. An industrial microcontrollers, or Programmable Logic Controller (PLC), has a lean real-time operating system (RTOS) like VxWorks [1] that supports task scheduling and task priorities.

For C/C# programmers, RTOS functionality is available on ESP32 and Pi Pico hardware with options like FreeRTOS [2] and Pico-RTOS [3]. Unfortunately, for Python programmers integrating either a MicroPython or a CircuitPython application into these RTOS environments can be rather challenging. Luckily, there is a native Python library, pyRTOS [4], that offers FreeRTOS functionality totally within both MicroPython and CircuitPython environments.

Figure 1 shows control of a conveyor belt where a microcontroller application would need to manage three tasks: an emergency stop button, a local information display, and a link to remote dashboards. In this article, I will introduce multitasking using pyRTOS to manage the first two of these tasks, that is, reacting to an emergency stop button and showing local information.

[...]

Use Express-Checkout link below to read the full article (PDF).

Buy this article as PDF

Download Article PDF now with Express Checkout
Price $2.95
(incl. VAT)

Buy Linux Magazine

Related content

  • FreeRTOS

    Exploit the full power of your microcontroller with the FreeRTOS multitasking operating system.

  • Yocto

    The Yocto project gives you all the tools you'll need to build a custom Linux for IoT device.

  • Eclipse IoT

    Eclipse IoT is a collection of 26 open source projects with the common goal of building an open development environment for the Internet of Things.

  • Python and Node-RED

    Adding Python to your Node-RED arsenal lets you create easy Raspberry Pi robotic and IoT projects.

comments powered by Disqus