The request
Elettronica Santerno is a leading company in designing and marketing inverters for producing electricity from renewable sources.
The client asked us to refactor the graphic interface code of the inverter’s control/data logging board—based on Linux and Qt libraries—with the goal of increasing their performance and solving some stability problems.
After the first phase of the project, which solved the problems of the old code, new advanced measurement and data logging functions were added for better visualization of the inverter’s operating parameters.
The client then asked us to implement kernel drivers and provide advice on electronic design for developing a new version of the board.
Challenges faced
- Embedded card management
- HMI interface
- Multithread synchronization problems
- Card software update
Solutions implemented
- Created a specific Linux distribution, complete with drivers
- GUI in C++ with use of Qt libraries
- Used asynchronous programming with Qt signals
- Created an automatic update procedure on boot
Requirements
- Refactor existing code to optimize performance and solve some problems
- Implement data logging functionality
- Implement device drivers in the Linux kernel
Develer’s contribution
- C++/Qt code for the HMI part
- C code for the kernel driver part
- Consulting for the new version of the board’s electronic design
Results
- Reduced boot time
- Better product stability
- Automated development and testing processes
- Reduced production costs
Advantages of our solution
- Simplified present code structure: better code maintainability.
- Generalized application code: the same application can run on different versions and models of inverters which also use different CPUs.
- Increasing performance: reduced boot times, greater graphical interface reactivity, optimized use of the inverter’s resources.
Do you need a renewed GUI?
Advantages of our approach
Applying Agile development methodologies (scrum, test-driven development, etc.) made it possible to follow the product’s evolution in detail which, being the first of a new generation, had requirements that were not yet fully specified.
Advantages of open source
We can definitely say that the presence of open-source and free software has been fundamental. The card was actually completely based on Linux and used the Qt libraries with the LGPL license; without them, the project certainly wouldn’t have been possible.
Client
Elettronica Santerno
Makers of inverters for the production of electricity from renewable sources.
Staff
“It was a very interesting project with some parts that were inherited from a previous implementation. It was a difficult challenge to have to change the entire interior without changing anything externally.”