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
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News