Software Development for Microcontrollers in Python
Course Information
Course Objective: to provide the basic theoretical knowledge and practical skills required to develop software for microcontrollers in Python.
The training is conducted in a classroom format, in a practical lab at Tartu mnt. 18, Tallinn. Group size up to 6 people. All study materials are included in the course price. A laptop can be provided for the duration of the course if needed.
Target group:
This course is for you if you:
- are a beginner in microcontroller programming and want to enter embedded development through the approachable Python language;
- are a Python developer and would like to extend your skills to hardware, microcontrollers and IoT;
- are an electronics or circuit engineer and need to program your own devices in Python;
- are an automation or industrial control engineer and are interested in rapid prototyping of microcontroller-based solutions;
- are a maker or IoT enthusiast and want to bring projects to life on boards such as ESP32 or Raspberry Pi Pico;
- are a student of a technical discipline and would like to gain hands-on embedded development skills;
- are a specialist from another field and have an interest in electronics and IoT.
What you'll learn on this course:
Program in Python
Write firmware in MicroPython
Develop on STM32
Build devices on ESP32
Run code on Teensy boards
Connect peripherals over I2C
Link modules over SPI
Network devices over Wi-Fi
Flash and debug via ST-Link
Create autonomous IoT devicesRequirements for Participants:
- Confident PC user
- Basic level of English (approximate A1/A2 level)
- Preferably with your own laptop (Windows / Mac, 8 GB RAM, screen size > 13.3"); a laptop can be provided for the duration of the course if needed.
Learning Outcomes:
After completing the course, participants will:
- Understand how the most in-demand programmable controllers — STM32, ESP32, RP2040 and Teensy — work
- Be able to write programs for controllers in Python
- Know how to connect sensors and actuators to programmable controllers
- Be able to work with a debugger, a logic analyser and an oscilloscope
- Understand the core principles of building autonomous devices (robots, drones, IoT)
Learning Methods:
Total course volume: 180 academic hours, of which 100 academic hours take place in the classroom (including 42 hours of practical work and 2 seminars totalling 8 academic hours).
Assessment Criteria:
Learning outcomes are assessed on the basis of independently completed practical work.
Assessment Methods:
Practical and homework assignments are marked as "passed" upon successful completion.
Course Completion Requirements:
To successfully complete the course and receive a certificate, at least 75% of the homework assignments must be passed.
Additional Information:
General rules for organising studies (in Estonian)
Rules for ensuring study quality (in Estonian)
Course program
| Module | Main topics | Volume |
| 1. Introduction to Microcontrollers and Electronics |
|
10 acad. hrs |
| 2. Fundamentals of Programming in Python |
|
16 acad. hrs |
| 3. Python for Microcontrollers (MicroPython) |
|
14 acad. hrs |
| 4. Working with the ESP32 Platform (optionally STM32 – MicroPython) |
|
30 acad. hrs |
| 5. Debugging and Testing Microcontroller Systems |
|
14 acad. hrs |
| 6. Final Project |
|
16 acad. hrs |
Course Details
Course Schedule:
20.07.2026 - 22.09.2026
26.08.2026 - 28.10.2026
Class Time:
Mon, Wed, Fri 17:45 - 21:00
Apply →We'll reply within 1 business day
Course Duration:
2 months
Format and Location:
Address: Tartu mnt. 18-53, Tallinn.

In-person training at our lab located at Tartu mnt. 18-53, Tallinn. Group size up to 6 people.
Language of Instruction: English
Price: 2400 EUR (VAT 24% included)
Total Course Volume: 180 acad. hrs
Includes:
- Classroom sessions: 100 acad. hrs (including 42 practical hrs and 2 seminars – 8 acad. hrs)
- Independent work: 80 acad. hrs
Instructors
Aleksandr Bobyrev
Qualification: Senior Embedded Software Engineer with over 15 years of experience in embedded software development. Has worked at Stoneridge, HARMAN, Unikie and Symantec, building firmware for automotive electronics (camera monitoring systems, audio amplifiers), diagnostic systems and medical devices.Specialisation: Embedded software development in C/C++, real-time operating systems (RTOS), microcontrollers (ESP32, Raspberry Pi, NXP S32K), automotive standards (AUTOSAR, CAN/LIN, UDS diagnostics), the Qt framework and Python, unit testing (GTest) and CI/CD (Jenkins, Docker, CMake).
Teaching Experience: Taught C/C++ and OOP at Tallinn University of Technology (TalTech) and OOP, design patterns and testing with the Qt framework at Tallinna Tööstushariduskeskus.
Education: Master of Science in IT and Automation, Tallinn University of Technology (TalTech), 2012.