<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=504731893395981&amp;ev=PageView&amp;noscript=1">

Cross-Platform GUI App and Custom Driver Development for Naval Communications Systems

Securing better customer service through timely technological moves

The client is a leading global provider of customized naval communications systems and services for navies, procurement agencies, and shipyards. Located in the EU, it supplies over 45 navies worldwide.

Case Highlights

  • Upgrading the embedded driver that was triggering a system shutdown
  • Creating a cross-platform GUI app for Linux, which replicates the Windows version’s functionality
  • Building a custom driver for the system ported to Linux
Project Information
Engagement model





Embedded Developers

More Details


The client provides communications systems—custom-made applications running on proprietary hardware—for their customers. They help naval ships with their tactical and administrative tasks. The complete solution employs compact PCI cards, which enable digital communication across the board. It also features a diagnostic system designed to evaluate the performance of these cards and make sure they function as expected.

If a malfunction occurs, end-users can run diagnostic tests and send reports to the provider. This helps reveal any hardware or configuration issues in a timely manner. Some customers had reported that the system had started shutting down. Our task was to solve this issue within the shortest time possible.

As a strategic move, the company planned to migrate their diagnostic system to Linux—so they needed a competent technical partner to help them with this, too.



The project was implemented in several stages. The first involved upgrading the driver to fix the incompatibility issue that was triggering the system to shut down. During the second stage, we helped the company migrate the system to Linux to level up its product service and enable a more rewarding customer experience. For this, we developed a cross-platform GUI app that replicates the functionality of the app created for Windows. We also built a custom, cross-platform driver.

Upgrading the Driver

This was an urgent hotfix due to customers’ complaints. The diagnostic system had stopped working for those with Windows 10 installed. There was a BSOD failure, which usually manifests in a system shutting down or restarting. The BSOD can be caused by software issues, like incompatible driver updates or problems with hardware.

To fix the issue, we started with some technical investigation. We identified a few problems in the driver source code affiliated with the dump the client provided. As this file contains data stored in RAM prior to a system failure, we used it to find out the cause of the crash.

The task for our embedded development team was to upgrade the driver source code. The client provided a part of the diagnostic system—one of the nodes that contains communication cards and has an operating system (OS) installed. We used it to ensure the fixed driver was compatible with the OS. It also helped us check whether the driver was recognizing and initializing the cards.

The client was pleased with how quickly we resolved the critical issue and engaged Softeq in a broader range of technical tasks.

Facilitating the Migration of the System to Linux

The client came to us with the idea of the diagnostic system running on Linux. This strategic plan could help them reach a new level in their service offering. Our task was to replicate the functionality of the existing GUI application designed to perform diagnostic tests. We also had to create a new, compatible driver.

We recommended the client build a cross-platform application because it would help them maintain it in the foreseeable future. To rewrite the GUI app, the client provided the source code of the original application written in C++ and Borland. We used this code to rewrite the app. As a result, we kept C++ for the core part and built the rest with the Qt framework—our framework of choice due to its multi-platform capabilities. It can run across all major OSs on desktop, mobile, and embedded systems and has a native-looking interface. We made sure the new app has the same functionality as the app written for Windows to reduce the learning curve for existing app users.

As part of the migration to Linux, we created a custom, cross-platform driver. We replicated its functionality from the Windows version. We also made sure that it recognizes and initializes communication cards in tests.

Looking for the Right Technology Partner?

Turn to us to develop embedded apps, human–machine interfaces, device drivers, or complex embedded software solutions for enterprise-grade IoT systems Learn more
Margarita Account Manager


Project Outcomes

With the driver upgrade, the client experiences no interruptions in their diagnosis system’s work. The software recognizes and initializes the communication cards flawlessly. As a result, the company can offer top-notch services to its clients: no complaints have been received since.

Migrating to Linux allowed the company to achieve its strategic goal of leveling up its product service. Should they want to take advantage of Linux’s customization capabilities, it will be easier and faster to tailor the platform according to their growing pool of needs. The cross-platform app we built is also easier to maintain. Committed to delivering results in line with our promise, we successfully completed the solution within the agreed time of 2.5 months.