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
- Have Python 3.12+ with virtualenv support installed
- If no USB Type-A on your laptop: USB-C to USB Type A adapter
Materials: https://github.com/jonnor/micropython-iot-sensors-course
Section 1: Basics — Running in Simulator (Wokwi)
- Introduction — Microcontroller / MicroPython / Wokwi
- Analog and Digital GPIO
- Concurrency with Asyncio
- Digital Bus (I2C)
- Talk to Servers using HTTP Client
- IoT Networks using MQTT
Section 2: Running on Device (RPi Pico)
- Deploying on Device with mpremote
- Standalone IoT Device with HTTP Server and WebUI
Section 3: Running MicroPython on PC
- Install & Run MicroPython on Linux/macOS/Windows
Section 4: Advanced Topics (Self Study)
- Installing MicroPython on Device (ESP32, RP2)
- Efficient Code — JIT Decorators, Inline Assembler, C Modules
- DSP and Machine Learning with emlearn-micropython
- MicroPython for Embedded Linux
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.