A Client-Server System for Test & Measurement Applications
Testing electronic devices normally require setting up an electronics laboratory with expensive equipment and tools. But what if these tools could all be accessed by any web browser from a tablet or laptop computer?
A Slovenian test and measurement equipment manufacturing company developed an ecosystem of open-source out-of-the-box applications that allow electronics enthusiasts to test their electronic projects. While the entire ecosystem was open source, some of the test and measurement applications were supposed to be paid. The company was looking for a software development agency that could implement a software licensing mechanism to ensure that paid applications could not be distributed without a license.
We came up with a software licensing mechanism that generates a special license key on the server using an encryption algorithm. When a user buys an app or makes in-app purchases this mechanism initiates a license check, making it harder for hackers to remove security controls built into the software application.
After we successfully completed this project, our client decided to continue working with us. Together we improved their existing oscilloscope app and created a number of new apps including a spectrum analyzer with in-app purchases, a bode analyzer (an app for building amplitude-frequency characteristics), and a logic analyzer.
We automated the build delivery process, built frontend and backend, and provided proper documentation for our client.
Scope of work
Software licensing mechanism development. We implemented the licensing procedures for the paid applications.
Software development for test and measurement applications:
- Oscilloscope application
- Spectrum analyzer application
- Logic analyzer with support for UART, SPI, and I2C
- Bode analyzer application
- Vector network analyzer application
- Digital multimeter application
- Low-level part of this project was implemented using C/C++.
- The device has 2 options for networking: Ethernet and WiFi.
- Some utilities were implemented using Python.
- Websockets is used to stream data from the device to the GUI part.
- All software except GUI works on the Xilinx SoC platform.
- We participated in custom Linux image building for the device.
Minimized dead-time. When the oscilloscope is processing data, it can't capture and display signals. The dead-time or delay between the acquired signal and the displayed signal was about two seconds. We dug into the library and optimized rendering signals. We also optimized the web user interface to reduce the amount of data it needed to process. As a result, we reduced the dead-time to less than a second.
Improved performance. The logic analyzer uses eight channels to capture multiple signals. This is approximately four billion data points captured simultaneously. We improved the performance of eight concurrent channels to achieve the max ACQ speed of 125 MS/s per channel and up to five seconds per signal at a frequency of 125 MS/s.
We helped the test and measurement company integrate a software licensing mechanism that allows users to buy applications and make in-app purchases. We also developed a client-server system with a backend based on customized Nginx.
The system provides web access for starting and manipulating numerous applications for a measurement device from the browser. It allows users to measure signals with ACQ speed up to 125 MS/s, extract some information such as spectrum and decompose signals into logical data.
Fast analog inputs
Fast analog outputs
Digital inputs for a logic analyzer
Integra Sources' engineering team exceeded expectations. Daily reports on development projects made it easy for the client to stay on top of every task. The team at Integra Sources is easy to talk to, regardless of the topic of discussion.
CTO of Test & Measurement Equipment Company
You might also like...
IoT System Development for Manufacturing Reinforced Composites
The IoT device detects leaks on a vacuum bag and communicates this information to the user via a phone, tablet or PC.
Data Management Platform for Electronic Test Equipment
We implemented a data management solution for controlling devices under test (DUT), a database for collecting and analyzing data, and a web interface for the end user to visualize these data