Embedded Software Development in C/C++


Course Information

Course Objective: to provide basic theoretical knowledge and pPractical skills necessary for developing embedded software in C/C++.

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 an aspiring embedded developer and want to learn professional firmware development in C/C++;
  • are a C/C++ developer (desktop) and would like to move into microcontroller development;
  • are an electronics or hardware engineer and need to write efficient firmware for your own devices;
  • are an automation or industrial control engineer and are interested in developing control software for controllers;
  • are a developer in another language and want to add low-level embedded development to your stack;
  • are a student of a technical or electronics discipline and would like hands-on skills;
  • are looking to enter embedded/IoT and aim to master an in-demand and growing field.

What you'll learn on this course:

Write firmware in C
Program microcontrollers in C++
Develop on STM32
Build connected devices on ESP32
Prototype with Raspberry Pi
Start in the Arduino IDE
Build projects with PlatformIO
Configure MCUs in STM32CubeIDE
Write code in VS Code
Connect peripherals over I2C / SPI
Flash and debug with ST-Link
Network devices for IoT (Wi-Fi / BLE)

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 if needed.
  • Learning Outcomes:

    After completing the course, participants will:

  • Understand how popular microcontrollers such as STM32, ESP32, RP2040, and Teensy work
  • Be able to write software for microcontrollers using C/C++
  • Know how to connect sensors and actuators to microcontrollers
  • Use debugging tools, logic analyzers, and oscilloscopes
  • Understand the principles of building autonomous devices (robots, drones, IoT)
  • Learning Methods:

    Total course volume: 180 academic hours, including 100 academic hours in the classroom (42 hours of practical work and 2 seminars totaling 8 hours)

    Assessment Criteria:

    Learning outcomes are assessed based on independently completed practical work.

    Assessment Methods:

    Successful completion of practical and homework tasks is marked as "passed".

    Course Completion Requirements:

    To complete the course and receive a certificate, at least 75% of homework must be completed and passed.

    Additional Information:

    General rules for organizing studies (in Estonian)
    Rules for ensuring study quality (in Estonian)

    Course program

    Module Main topics Volume
    1. Introduction to Microcontrollers and Electronics
  • Basic concepts of microcontrollers and their applications in robotics and drones.
  • Comparison of STM32, ESP32, RP2040, and Teensy.
  • Fundamentals of electrical circuits and prototyping.
  • Practical skills: simple circuits assembling, working with a multimeter and an oscilloscope.
  • 8 ac/h
    2. Fundamentals of Programming in C
  • Data types, variables, arithmetic
  • Loops, conditions, functions, pointers
  • Working with arrays and strings
  • Practice: writing and debugging simple programs
  • 16 acad. hrs
    3. Fundamentals of C++ for Microcontrollers
  • Classes, objects, encapsulation
  • Inheritance, templates, data structures
  • RAII, memory handling, standard libraries
  • Creating peripheral control libraries
  • 14 acad. hrs
    4. Working with STM32, ESP32, RP2040, Teensy
  • Using STM32CubeIDE, ESP-IDF, Pico SDK, Arduino Core
  • GPIO, timers, PWM, ADC, interrupts, DMA
  • Communication: UART, I2C, SPI, BLE, Wi-Fi
  • Working with sensors and motors, real-world integration
  • 30 acad. hrs
    5. Debugging and Testing Embedded Systems
  • Using ST-Link, J-Link, UART, SWD/JTAG
  • Using logic analyzers and oscilloscopes
  • Debugging and troubleshooting techniques
  • Bug tracking and hardware debugging
  • 14 acad. hrs
    6. Final Project
  • Selecting a project: drone, mobile robot, or IoT device
  • Designing circuit and software architecture
  • Integrating sensors, motors, communication, and control
  • Project presentation and defense
  • 16 acad. hrs

    Course Details

    Course Schedule:
    20.07.2026 - 22.09.2026
    17.08.2026 - 19.10.2026
    07.09.2026 - 09.11.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: 1967.21 EUR + VAT 24%

    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

    Nikolai Barbanov

    Qualification: Over 10 years of experience managing physical systems and automation — from manufacturing (Ericsson) to logistics and e-commerce. A hands-on practitioner and hobbyist in robotics and programming.

    Specialization: Design of controllable systems, automation of physical and virtual processes, orchestration of distributed components.

    Teaching Experience: 10+ years in corporate operations, training, and consulting. Speaker at technical conferences, including PyCon Estonia (https://pycon.ee/).

    Education: Master of Science in Physics, Lomonosov Moscow State University, 2015. Thesis focused on signal analysis from bottom pressure recorders used in the DART (Deep-ocean Assessment and Reporting of Tsunamis) system for early tsunami detection. The topic is directly related to sensor data processing and the architecture of distributed systems — the core foundation of this course.

    View CV