The RTPy story
You may not notice it immediately, but of course you know it well. Embedded systems are all around us. From standing desks to smart TVs, and production lines to medical equipment: nowadays, many devices contain a certain level of detection, control, and communication capabilities.
A programmer of embedded systems must therefore be skilled in both software and hardware. Additionally, there is a trend of increasing complexity but also capacity of these embedded systems with limited resources. This puts pressure on the embedded programmer as well as on the existing tools and programming languages being used. One of these widely used tools in the industry is Real-time Operating Systems (RTOS). This provides deterministic execution of tasks, priority management, and supports hardware interactions for time-sensitive applications.
To develop an embedded product, a team of embedded programmers is not enough; what needs to be managed is often conceived by a team of engineers. This team is capable of devising complex algorithms but often does not go beyond programming solutions in Arduino or Python on a Raspberry Pi. However, these options do not offer the reliability or real-time determinism that an industrial solution requires.
This is where RTPy comes in. RTPy stands for Real Time Python and combines the best of both worlds. For engineers, RTPy provides essential tools such as hot reloading and the ability to interactively inspect the application's state with graphs. Because RTPy works at a higher level than the C/C++ programming language normally used, it is possible to write code in complex systems that is more readable, maintainable, and reusable. For the embedded programmer, control is not taken away. RTPy is an add-on to the C/C++ code written by the embedded programmer and works with any RTOS.
Of course, there is a trade-off. The RTPy code is not directly converted into machine instructions but requires additional software on the controller. Modern controllers have become so powerful and cost-effective that this solution is a serious consideration for small to medium-sized product series.
RTPy opens doors to collaboration and accelerates development without compromising control, reliability, or efficiency. This is achieved by enabling engineers to leverage the expertise of embedded programmers.
Differences with MicroPython
As RTPy might at first sight look like another version of MicroPython, I think this deserves a dedicated chapter in the story of RTPy to show the differences.
Similarities
Both enable anyone to write Python for embedded systems.
Both enable engineers to inspect the state of a program.
Differences
Micropython takes over the whole embedded system, where embedded programmers can take their existing code and incorporate it within the micropython core, although this is really hard. RTPy is an addon to existing embedded system software stacks.
MicroPython does not incorporate a RTOS, but rather uses its own “asyncio” library to create asynchronous tasks. Even for a Python application, using this library requires extensive knowledge. RTPy is integrated into existing RTOS systems and only exposes the Python programmer with simple instructions to interact with it, leaving complexities for the embedded programmer.
MicroPython is easy to set up, a five minute tutorial empowers anyone to download and install Micropython to a select hardware selection and start programming. While RTPy is designed to be integrated within any embedded software stack with ease, it requires specific knowledge about the underlying embedded software. This process has however to be completed only once per company that uses RTPy in their standardized software stack.
Creator
Kevin Robben
Driven by a passion for innovation, I am an energy technical mechanical engineer with a strong proficiency in Python and C programming. As the founder of Real Time Python, I am dedicated to crafting an inventive programming language tailored for embedded systems. Within a Dutch engineering firm, I assume the role of an Engineer & Consultant, actively engaged in diverse projects spanning energy generation, district heating networks, and solar PV systems. My professional journey encompasses R&D internships, service engineering in Solar Energy, and leadership in projects such as the software-based parametric design of technical spaces. Control technology resonates deeply with me, trying to integrate the best parts into embedded systems through RTPy.