
Extending Control System to Support New Hardware
Developing a unified software library to allow the control application to work with both legacy and new hardware
Upgrading complex systems often requires replacing or enhancing individual components while keeping the rest of the system intact. In this case, our client needed to move from an older mechanical positioner to a newer, more advanced unit, without rewriting their entire control application.
A mechanical positioner is a device that precisely moves and orients large equipment under computer control. It is typically used in industrial and research environments where heavy or complex machinery must be positioned accurately and repeatably.
We addressed this task by developing a software library that provided a common interface for both the old and new positioners. This ensured the client’s application could continue to operate as before, while gaining compatibility with the upgraded hardware.
Challenge
The new positioner communicated using RS422, like the original, but the underlying protocol was entirely different. Without a new driver library, the client’s existing application would not be able to communicate with it.
Adding to the complexity, the new hardware would not be available until late in the project, meaning development had to proceed without access to the device itself.
Project Overview
Our client’s control system was designed to operate a range of mechanical positioners used in precision movement and alignment tasks. As part of an equipment upgrade, they needed to introduce a new generation of positioner hardware while maintaining full compatibility with their existing control application.
Rewriting the entire application was not practical, so the goal was to develop a unified software layer that would allow both the legacy and new devices to be operated through the same interface. We were commissioned to design and implement this compatibility layer, ensuring a smooth transition to the new hardware and reducing long-term maintenance overhead.
Action
We began by analysing the protocols of both positioners to confirm the new unit could meet the application’s needs.
Because the hardware was not available for most of the project, we built a simulator that mimicked the device’s protocol layer. This enabled us to test and refine the software early, reducing risk and avoiding delays.
We then developed a software library with a common interface that worked with either positioner. The library managed the differences in communication internally, so the client’s application required only minimal changes.
Once the new hardware became available, we carried out thorough testing to confirm reliability and ensure a smooth transition to the upgraded device.
OUTCOME
The client now has a future-ready software library that allows their application to control either the original or the new positioner through the same interface. This minimised disruption to the existing system and avoided the need for a costly software rewrite.
By using a simulator during development, we also reduced project risk and ensured progress without waiting for hardware. The modular design of the library means it can be extended in future, giving the client a flexible foundation that supports new hardware upgrades as their system evolves.
TECHNOLOGIES & SERVICES INVOLVED
- Software library (C, Python)
- RS422
- Linux
- Buildroot
- NXP i.MX6 (ARM)
Linux, Software, Industrial
If you require assistance with software and electronics, please do not hesitate to reach out. We are here to provide support and expertise in these areas. Feel free to contact us, and we'll be happy to discuss your specific needs and explore how we can collaborate to meet your goals.
Click for a FREE Consultation