Attention!
We publish the curriculum parts every two or three weeks.
The course material is also available via a mobile application called „Kristálytiszta Elektronika” or „Crystal Clear Electronics” - depending on the language and region settings of the Android device - on Google Play. It also contains the data sheets related to the free course material in an organized manner! The application will be updated in parallel with the publication of new parts of the curriculum.

01 - Number Representations, History of Microprocessors and Microcontrollers
By reading this part of the course material, you can gain an insight into how thousands and millions of transistors become a much more complex, multifunctional circuit when properly connected, and how it led to the world of high-performance microprocessors known today. In order to put together the picture in our head, we must first review some basic concepts.
02 - Advanced Microcontroller Types, ARM Cortex Cores
In this part of the curriculum, you are able to learn about the advantages and disadvantages of different architectures. You can dive deeper into the structure of ARM-based systems, more precisely into the STMicroelectrics' STM32 product line. You can also learn about the needs that led to the development of today's modern controllers.
03 - Low-Level Programming in C Language, Process of Compilation
Now you can learn why some programs can run on some computers and not others. You can also get a glimpse into the mysteries of programming close to hardware and the operation of the C compiler.
04 - STM Programming Environment (CubeIDE, ST-Link)
In this part of the curriculum, you are introduced to the interface for programming STM microcontrollers, CubeIDE. We will show how this interface facilitates the configuration of the controller and the creation of the software. Finally, we get to know the ST-Link programmer.
You can find the example code for this chapter here
05 - Hardware Abstraction Layer
Now you can learn how the use of "Hardware Abstraction Layer" helps programming. Even in the case of the simplest programs, it speeds up the development time, "hides" the registers of the given controller, thereby helping the portability of the code.
You can find the example code for this chapter here
06 - Debugging and Analysis (JTAG and SWD)
Debugging and checking operation is an essential process of software development. Fortunately, nowadays we have a well-equipped toolbox at our disposal in order to find anomalies. In this tutorial, you can get to know the related functions of STM32CubeIDE and learn how to perform the debugging process itself.
You can find the example code for this chapter here
07 - I/O Ports of the Microcontroller
Now you can see how the microcontroller communicates with the other devices on the development board. We will show you how the input and output units are built, and what special functions each leg can perform. It also sheds light on how you can protect sensitive devices from unwanted effects, such as overvoltage and overcurrent.
You can find the example code for this chapter here
08 - Serial Communication Lines Part I. (I2C, SPI)
In this part, you learn about data transfer types and the differences between serial and parallel communication. You will learn how I2C and SPI communication is structured and how they can be used in practice.
You can find the example code for this chapter here
09 - Human-Machine Interface
Have you ever wondered how we are able to connect with our electronic devices? The easiest way is with switches and indicator lights. Fortunately, the development of technology has not stopped, so we can now use various graphic displays for feedback. You can read more about these tools in this section of the curriculum.
You can find the example code for this chapter here
10 - Serial Communication Lines Part II. (UART, CAN, USB)
In this part of the curriculum, you will learn about new types of serial communication. You can deepen your knowledge of the UART topic, find out how CAN (which is mostly used in vehicles) and USB (which has gone through many versions) are structured.
You can find the example code for this chapter here
11 - A-D Conversion
In this part of the course material, you can get to know the analog-to-digital converter (ADC), you can find out what steps are necessary to convert our analog signals into information that can be interpreted by the microcontroller. You can see what errors can occur during the conversion and how we can eliminate them, thus increasing the accuracy of the measurement.
You can find the example code for this chapter here
12 - D-A Conversion
In this part of the curriculum, you will learn about the design of digital-to-analog converters (DACs) and the resulting error phenomena. You can examine the DAC in the STM32F4 microcontroller in detail and learn how to configure it according to the application through interesting examples.
You can find the example code for this chapter here
13 - Sensor Types and Their Applications
In this chapter, you can learn about the operating principle and structure of the various sensors. You can expand your knowledge of temperature, pressure, humidity and, last but not least, light sensors, as well as their programming and use.
You can find the example code for this chapter here
14 - Calibration of Sensors
In this part of the curriculum, you can get to know NTC and PTC temperature sensors in more detail, you can find out what correlations can be observed between the design of the sensors and the measurement results, and finally, with the help of a measurement arrangement, you can try how to calibrate a temperature sensor.
You can find the example code for this chapter here
Currently recommended development tools and components
We have prepared a summary table in which you can find which STM32 development card (Nucleo / Discovery) and which additional elements you can use to try out what is described in the course material.
The example codes must be rewritten (ported) according to the given card, but you will find help for this in the first chapters of the course material.
For example, when creating a project in STM32CubeIDE, you select the available board, then in the hardware configurator you set the device according to the example code.
The project can then be compiled by copying the appropriate files of the example codes.
In the schools that test the curriculum, the students use a unique development card that can be seen in the curriculum, but we have not yet found a suitable opportunity to produce it. The suggestions in the table above offer cheap, full-featured, generally available solutions.