Software Development & Linux Porting for Smart PDU with Open-Source Solutions
Project in Nutshell:
Promwad developed software for a smart power distribution unit (PDU) for data centres based on a Microchip Cortex-A5 microprocessor for data centres. The software included Linux OS and power distribution management applications. With open-source libraries, we reduced development and licensing costs, providing our client with a competitive advantage due to the reduced cost and enhanced functionality of the final product.Â
Client & ChallengeÂ
A leading supplier of server equipment for data centres was planning to expand its product line and release a new model of PDU devices for server rooms. As it did not have the internal resources to develop firmware, it turned to Promwad to leverage our expertise in embedded systems and Linux-based solutions.Â
Solution
Our task was to develop firmware for a power distribution unit (PDU) designed for remote power management and monitoring of server room equipment. The PDU device should control power distribution, measure consumption, and manage events on other connected devices. Â
The project consisted of two phases:Â Â
- porting the Linux OS to the hardware;Â Â
- development of applications for PDU management.Â
For this purpose, we formed a team of software engineers who specialise in C/C++ and Linux under the guidance of a technical leader. The team worked on a fixed-price model and executed the project in a cascade mode.Â
1. Hardware Description
The power distribution unit (PDU) was based on a Microchip Cortex-A5 microprocessor and was equipped with the LAN, serial, and LCD interfaces. The PDUs could operate in different master-slave modes and could be assembled in the chain. Â
The PDU contained a lot of sub-modules, each of them operated with its own logic. The sub-modules, together with PDU, handled the whole electrical power distribution logic; they facilitated the power line commutation and protected the power consumers. Â
This modular structure and complex interconnections influenced firmware development, but we successfully implemented all the logic.
Â
2. Software Development
In the first development phase, the team focused on porting the Linux operating system to control the PDU and porting the OS to the Microchip Cortex-A5 microprocessor using the Isar database.Â
The second stage was application development. To develop applications for the PDU, Promwad’s engineers used C++ (17 standard), CMake tools, Isar, and open-source libraries:Â
- Google protocol buffer for organising interprocess communication between software and hardware components;Â
- libraries for working with JSON data structures;Â
- LDAP, RADIUS and SSL libraries for user authorisation in different modes;Â
- SWUpdate for managing system and application updates;Â
- SQL-based database engine;Â
- Net-SNMP is a simple network management protocol (SNMP) for device management. Â
During the application development process, the engineers performed load testing with full data flow simulation.
Â
The developed applications perform the following functions:Â
- device parameters and configuration management;Â
- scheduling of actions and processing of the rules for the events;Â
- interrogation, aggregation and processing of the measured data;Â
- user and role management via different security and authorisation protocols;Â
- software updates for all components.Â
All applications and devices communicate using the Inter-Process Communication (IPC) protocol based on the Google protocol buffers.Â
Â
Our team faced some challenges during the project but successfully found solutions:Â
Partial lack of hardware
At the time of firmware development, the client did not yet have ready hardware. To avoid putting the project on pause and understand the algorithms and characteristics of the future hardware, we developed an emulation of the expected data based on the client's specifications.Â
Unstable device performance dataÂ
Performance data was needed to determine whether the device met response time and load requirements. Â
So, the team periodically developed load-testing applications and evaluated different algorithm implementations. For example, we needed to ensure that the PDU could collect and process data from other connected devices and produce results in less than one second.Â
Business ValueÂ
Â
More of What We Do for Energy Management
- Power Metering & Quality: explore our expertise in power system design, from minor adjustments to complex design.Â
- Power Quality Analyser: a case study on developing a power quality analyser that combines AMP (asymmetric multiprocessing) Linux with RTOS.Â
- IEC 61850 and Seamless Energy Management: explore our study of the industry standard and options for its application in industrial automation.Â