GET IN TOUCH

Data Management Platform for Electronic Test Equipment

Custom software development Industrial solutions IoT Kernel and driver development

Producers of household appliances use test and measurement instruments for validating their designs, testing different operating modes, and troubleshooting. During testing these devices collect a large amount of data that help engineers find out where the problems lie. One common system stores all the acquired data in a central database and displays the results to the engineers in the form of graphs and charts via special Business Intelligence software.

Request

One of the leading providers of household appliances needed to implement a software system for their test and measurement devices. They were looking for a technology partner with expertise in firmware and software development.

Solution

We implemented a solid software system that manages devices under test (DUT), collects data from sensors, and visualizes these data in a web-based Business Intelligence platform.


Scope of work

  • Embedded Linux development. The single board computer manages unpluggable devices such as relays, temperature sensors, voltmeter, amperemeter, and GPIO expander, and records data they collect.
  • Backend development. We implemented a database system for collecting, handling and processing data recorded by the single board computer.
  • Front-end development. We built a web-based Business Intelligence system that displays the data collected from sensors.

Technologies Used

  • We used Quad core SBC for the hardware part of this project.
  • We built a custom Linux image for the hardware part.
  • Websockets is used for direct communication between the GUI part and hardware.
  • ZeroMQ library was used for socket communication between hardware and server.
  • The software on the hardware side and part of the server software were implemented using C/C++.
  • For GUI we used HTML, CSS, and JS (Javascript).
  • Backend part was implemented using PHP.

The functionality of the system

The project consisted of three parts: 1) single board computer, 2) database server, and 3) web interface. Here is the functionality we implemented for each part:

Single board computer

  • Connection to the database server
  • Macros for different sensors and electronic components
  • An ecosystem with an API for running testing applications
  • Support for MCP23017, GPIO expander
  • Support for various temperature sensors
  • Measurements of voltage, current, and power consumed by the device (DUT)

Database server

  • Database on PostgreSQL
  • Rest API for communication with web UI
  • ZeroMQ socket connection with the SBC
  • Socket forwarding to provide direct access to DUT from web UI

Web UI

  • User permissions for different user categories
  • The ability to write test scripts in the C-like language
  • The ability to assign a test script to run on several DUTs of the same type (eg. irons)
  • The ability to execute multiple test scripts on one DUT
  • –°harts and logs that display the results of completed tests
  • Real-time DUT monitoring

Challenges solved

  1. We implemented two user modes: test mode and debugging mode. In the test mode a user can view test results both online and offline, and in the debugging mode, a user can view the testing process in real time.
  2. Each second, every DUT collects from 1 to 10 measurements. With the average testing time of about 10 hours, every single chart with the testing results needed to display from 36,000 to 360,000 dots for each sensor. We optimized the system so this huge amount of data (testing results) could be displayed without lags and delays.
  3. We implemented APIs for the relay, temperature sensor and other sensors to simplify working with them using testing scripts.
  4. Our main task was to make the software flexible so it could work with different types of devices from irons to microwave ovens for 24 hours straight. In our system, a user can easily assign scripts to different devices and monitor the state of the devices online.

Result

The system for testing and measurement is based on a single board computer (SBC) that acts as a middleman between the server and the sensors attached to the DUT. The SBC sends commands to the sensors, monitors the data they collect and records these data to the database. The testing results are then displayed in a web interface.