IMA: an IoT system for collecting and analysing laser cutting data
Knowing whether the machine could hold meant months of embedded software. The answer arrived sooner, on 10% of the resources.
- Year
- 2024
- Client
- IMA
- Development
- Quinck
The problem
Working out whether the machine could hold required measurements from software that did not exist yet, and justifying the development of that software required measurements from the machine. IMA had identified a quality-control system built around an optical laser and wanted to bring it into the production line, but embedded development is the expensive part of the job and nobody wanted to take it on without proof it would work.
How we solved it
In 2024 Quinck built for IMA, a world leader in automatic machinery for processing and packaging pharmaceuticals, cosmetics, food, tea and coffee, the IoT system that measures the quality of laser cuts on parts in motion. The sensor reads every part that passes, the backend processes the samples one by one and carries them to a web dashboard, where an alerting system flags measurements outside the threshold while the line keeps running.
R&D on machinery is expensive largely because of the order in which things are done: you develop the software that will run on the machine, put it in the field, and only then discover whether performance holds. The team turned that order around and built a web simulation of the software, then used it to measure data collection, analysis and display right up to the highest throughput speeds expected. Three steps in all: simulation algorithm, interface software, field test.
Simulating the software costs a fraction of writing it for the machine.

The results
The final test happened on the machine itself, with real measurements at speed instead of simulated data. It confirmed the technical choices and the performance targets set at the start, and gave IMA the proof of fitness it needed in order to decide.
The backend is written in Go, chosen for the concurrent, asynchronous nature of the software and for the volume of incoming data, which the system has to measure sample by sample in real time. Internal components talk to one another through synchronised channels and concurrent operations. Data comes in over TCP on a direct connection to the laser sensor, and configuration commands travel over TCP in both directions. The server exposes REST APIs to the web dashboard and a WebSocket channel that carries data in near real time. On top of the parsing and processing of measurements sits the alerting system, with thresholds set by the user. The front end is built in Svelte, with Chart.js for the live sample chart, and also handles sensor and user settings.
The backend is written in Go, chosen for the concurrent, asynchronous nature of the software and for the volume of incoming data, which the system has to measure sample by sample in real time. Internal components talk to one another through synchronised channels and concurrent operations. Data comes in over TCP on a direct connection to the laser sensor, and configuration commands travel over TCP in both directions. The server exposes REST APIs to the web dashboard and a WebSocket channel that carries data in near real time. On top of the parsing and processing of measurements sits the alerting system, with thresholds set by the user. The front end is built in Svelte, with Chart.js for the live sample chart, and also handles sensor and user settings.
- Year
- 2024
- Client
- IMA
- Development
- Quinck
Got something similar in mind?
Tell us what you want to build and we will help you find the shortest way there.







