Motivations for MicroPython:
- To provide a high level language to control sophisticated micro-controllers.
- Approached it as an intellectually stimulating research problem.
- Wasn't even sure it was possible.
- Chose Python because:
- It was a high level language with powerful features.
- Large existing community.
- Naively thought it would be easy.
- Found Python easy to learn.
- Shallow but long learning curve of python makes it good for beginners and
- Bitwise operaitons make it usefult for micro-controllers.
Why Not Use CPython?
- CPython pre-allocates memory, resulting in inefficient memory usage which is
problematic for low RAM devices like micro controllers.
- If you know Python, you know MicroPython - it's implemented the same
Damien covered his experiences with Kickstarter.
Internals of MicroPython:
- Damien covered the parser, lexer, compiler and runtime.
- Walked us through the workflows of the internals.
- Spoke about object represntation and the three machine word object forms:
- Covered the emitters:
- Native (machine code).
- Inline assembler.
Coding was more based on a physicist trying to make things work, than a
- There's a code dashboard
- Hosted on GitHub
- Noted that he could not have done this without the support of the community.
Listed some of the micro controller boards that it runs on ad larger computers
that currently run OpenWRT.
Spoke about the BBC micron:bit project. Demo'd speech synthesis and image
display running on it.
MicroPython in Space:
Spoke about the port to LEON / SPARC / RTEMS for the European Space agency for
satellite control, particularly the application layer.
Damien closed with an overview of current applications and ongoing software and