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
Struggling to keep your development skills up to date or facing outdated processes that slow down your team, raise costs, and impact product quality?
Here are 4 ways I can help you:
- Embedded Software Academy: Enhance your skills, streamline your processes, and elevate your architecture. Join my academy for on-demand, hands-on workshops and cutting-edge development resources designed to transform your career and keep you ahead of the curve.
- Consulting Services: Get personalized, expert guidance to streamline your development processes, boost efficiency, and achieve your project goals faster. Partner with us to unlock your team's full potential and drive innovation, ensuring your projects success.
- Team Training and Development: Empower your team with the latest best practices in embedded software. Our expert-led training sessions will equip your team with the skills and knowledge to excel, innovate, and drive your projects to success.
- Customized Design Solutions: Get design and development assistance to enhance efficiency, ensure robust testing, and streamline your development pipeline, driving your projects success.
Take action today to upgrade your skills, optimize your team, and achieve success.