2026-07-22 –, Room 1.19 (Ground Floor, Shannon)
In this workshop, you will create practical internet-connected sensors with MicroPython. We will cover the basics of setting up the development environment, both for developing on PC and deploying/developing on a microcontroller device.
Targeted towards those that are already comfortable programming in Python, but that have little exposure to embedded/hardware/electronics.
We will provide some MicroPython-capable hardware to develop against, pre-flashed with MicroPython. You may need to sit together in pairs or small groups for the on-device part.
Prerequisites
Participants must bring:
- Laptop with Linux/MacOS/Windows Subsystem for Linux
- Have Python 3.12+ with virtualenv support installed
- USB-C to USB-C cable or USB Type A adapter (our kit only has Type A plug)
Outline of tutorial
Part I: MicroPython development
- Introduction to MicroPython. 5 minutes
- Developing with MicroPython on PC using Unix port. 15 min
- Serving data and handling requests using MicroDot HTTP server. 10 min
- Storing/loading sensor data using on-board filesystem. 5 min
- Using frontend/browser for user interfaces. 20 min
- Sending data to external servers using HTTP. 5 min
Part II: Deploying on device
- Deploying our server on device. WiFi setup etc. 30 min
- Physical input/output using GPIO. 10 min
- Reading digital sensors using I2C. 10 min
- Sending data to shared MQTT broker. 10 min
Part III: Open hacking
- Extend the application skeleton.
Pick one of 3 provided ideas (TBD).
Jon is a Machine Learning Engineer specialized in IoT systems. He has a Master in Data Science and a Bachelor in Electronics Engineering, and has published several papers on applied Machine Learning.
He has been contributing to open-source software since 2010.
These days Jon is co-founder and Head of Data Science at Soundsensing, a leading provider of condition monitoring solutions for commercial buildings and HVAC systems.
He is also the creator and maintainer of emlearn, an open-source Machine Learning library for microcontrollers and embedded systems.