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
Prototype with Raspberry Pi Pico
Run code on Teensy boards
Connect peripherals over I2C
Link modules over SPI
Network devices over Wi-Fi
Stream data over BLE
Flash and debug via ST-Link
Create autonomous IoT devices

Requirements 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
  • Concepts of microcontrollers and their applications in robotics and drones.
  • Comparison of STM32, ESP32, RP2040 and Teensy.
  • Fundamentals of electrical circuits and prototyping.
  • Practice: soldering, working with a multimeter and an oscilloscope.
  • 10 acad. hrs
    2. Fundamentals of Programming in Python
  • Data types, variables, arithmetic.
  • Loops, conditions, functions.
  • Working with arrays and strings.
  • Practice: writing and debugging simple programs.
  • 16 acad. hrs
    3. Python for Microcontrollers (MicroPython)
  • Classes, objects and encapsulation in Python.
  • Inheritance and data structures.
  • Memory management and garbage collection in MicroPython.
  • Working with built-in modules and libraries.
  • Building peripheral control libraries.
  • 14 acad. hrs
    4. Working with the ESP32 Platform (optionally STM32 – MicroPython)
  • Installing and using ESP-IDF, Pico SDK and Arduino Core.
  • GPIO, timers, PWM, ADC, interrupts, DMA.
  • Communication: UART, I2C, SPI, BLE, Wi-Fi.
  • Working with sensors and motors, integration with real-world devices.
  • 30 acad. hrs
    5. Debugging and Testing Microcontroller Systems
  • Working with ST-Link, J-Link, UART and SWD/JTAG.
  • Using a logic analyser and an oscilloscope.
  • Diagnostics and error-correction techniques.
  • Bug hunting and on-hardware debugging.
  • 14 acad. hrs
    6. Final Project
  • Choosing a project: a drone, a mobile robot or an IoT device.
  • Designing the circuit and software architecture.
  • Integrating sensors, motors, communication and control.
  • Project presentation and defence.
  • 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.
    Gamma Intelligence Training Centre
    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.

    View CV