My MSc. thesis project presents a detail of desinging a control system for an existing LED-matrix display, which doesn’t worked in the begining. The new system had to be able to screen flexibily configurable and extendable animations on LED matrix in a way, that makes the obsolete device to an up-to-date display, which satisfies the modern era’s demands. The only restriction was that the new system had to be based on an STM32 microcontroller. My thesis’s structure follows the desining process’ steps.
The first task was to plan the system desing. One big highlight of this is that I choosed a solution, which is based on the cooperation of the STM32 microcontroller and logic which is realized on an FPGA. The point of this idea was to share the visualization and communication with the user interface between the FPGA logic and the microcontroller.
After I choosed the main components, as the reverse-engineering part of the task I had to make up how was the original system worked. This knowledge estabilised a lot of claim to the hardware to desing. Based on these I choosed the proper components, I planned the schmatics, thereafter I designed the layout.
After soldering the necessary components, I planned a logic on the FPGA, which could test the most significant functioning regarding the LED matrix original controlling conception. After that I soldered up the rest of the components, and I got familiar with the most fundamental FPGA knowledge, which were necessary to accomplish the task. Based on these I realized the logic on the FPGA, which was responsible for displaying and storing the animations which comes from the microcontroller.
The next step was to make the embedded software of the microcontroller. I started this with getting acquainted with the elementary theoritical knowledge. (VCP over USB, Bluetooh, FreeRTOS). After implementing all the SW components to produce the pictures and animations and I wrote some test applications for the hardware modules. Based on all these SW components I created the final embedded software.
As a last step I wrote a PC client software and a mobile application, with wich I could test the implemented functions of the control system I designed.