MicroPython for LEON, pre-qualified version
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments. One of its aims is to bring the Python high-level scripting language to low-level and embedded control systems. It was developed from scratch by Damien George (using crowd-funding) and is available under the MIT Open Source license.
The MicroPython VM has been ported to LEON on top of RTEMS 4.8. The following aspects have been taken into account for the porting activity: optimization of resources, deterministic and bounded use of resources, interface with the Operating System, interface with C code, and concurrency and multitasking. The supported Python version is 3.4 and the number of language features is very high (most of the language, classes, exceptions, etc.). The port to RTEMS includes a Python rtems module which gives access to commonly used RTEMS services such as message queues and semaphores.
The MicroPython VM has been pre-qualIfied on top of Edisoft RTEMS 4.8 as CAT-B SW according to ECSS standards.
The MicroPython source code is distributed in two flavours (same source code, different test benches):
- SDE version with full SPB test bench (official pre-qualification)
- George Robotic with reduced test bench
Spacebel (www.spacebel.be) has developed and qualified an OBCP engine built on top of the MicroPython VM. This OBCP product is property of SPB and licensed/distributed by SpaceBel. The Euclid mission will use this OBCP engine.
See links section with a DASIA 2018 paper describing the OBCP engine