CEC – Designing Embedded Systems using MicroPython

The C/C++ programming languages have long dominated the embedded systems industry, with very few other languages being able to find a foothold. The winds of change are upon us, however, and MicroPython may be the programming language you use to build your next product. Python’s shallow learning curve and the fact that even elementary-school students are learning how to use it is positioning it to be a dominant language in the next half-century. In this course, we will examine how to use MicroPython to develop products and point out the little “gotchas” and learning points that can often be stumbling blocks to developers. Attendees will walk away from this course with a detailed understanding of what they need to do in order to use MicroPython in their next product.

Registration and Playback located here (May require login to access)

June 10 – Day 1 – Designing Products with MicroPython

MicroPython offers developers an interesting and unique strategy to rapidly accelerate product development by leveraging existing libraries and hardware modules to develop a product. In this session, we will examine what tools are available to developers and help them to understand the ecosystem surrounding MicroPython, which includes development boards, modules and software.

June 11 – Day 2 – Getting Started with the Pyboard D-Series

A critical component to accelerate development in any embedded system is to leverage existing modules and libraries to accelerate design. The PyBoard D-Series development board can be leveraged by designers, not just to prototype their systems, but to also be used in production systems. In this session, we will fire up the Pyboard D-Series module and look at how we can interface to it to write our first MicroPython scripts. Attendees will walk away with a better understanding of how to use the available software libraries.

June 12 – Day 3 – Customizing the MicroPython Kernel for Production

A production-intent system may require that developers make modifications to the MicroPython kernel and recompile it themselves. Developers may want to do this to protect their own IP modules, to improve the robustness of the kernel, or to customize the start-up sequence. In this session, we will examine how developers can do just that.

June 13 – Day 4 – Developing Real-time Application Projects

The Python language provides developers with many libraries and language features. Still, not all features will necessarily work on an embedded target as one might expect. In this session, we will look at how we can develop real-time applications using simple schedulers and the built-in Python threads class. Attendees will walk away with an understanding of real-time Python and how it works in a resource-constrained environment.

June 14 – Day 5 – Testing MicroPython Projects

Testing is an important piece of production system development. There are many ways that developers can test their MicroPython code and one interesting way is to create a test harness. In this session, we will explore different test-harness schemes and show how they can be used during development to ensure that the MicroPython code is working as expected. We will also discuss robust coding techniques in Python before reviewing the week’s course and discussing how developers can go further with MicroPython.

Course Resources

Jacob’s General Embedded System Resources

  • Sign-Up for the Embedded Bytes Newsletter here
  • Embedded Software Design Techniques – An API Standard for MCU’s here
  • Technology Primer – TrustZone here
  • Developing Reusable Firmware – A Practical Guide to API’s, HAL’s and Drivers here
  • Doxygen C Templates Download can be here
  • DesignNews Blog Articles can be found here
  • Jacob’s YouTube Channel – here

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.