An overview and lessons learned about building a custom machine to be used on daily basis at ATX Hardware GmbH. Lomecs is an acronym that stands for laser-guided, optomechanical control system.
Lomecs was a project I worked on and developed for ATX Hardware GmbH in 2016 and 2017. The goal was to build a machine that could automatically test and capture data for arbitrary circuit boards provided by customers.
This data would then be used by several other softwares to create risk assessments and provide additional data for the people in charge of preparing the adapters. This is important because more often than not, the circuit board files come without information about the height and sometimes even the size of the components on it. This is however quintessential to build a safe adapter, hence why this and the “NH-Software” were created.
The two main components of Lomecs are a camera system consisting of a “normal” and a microscopic camera, both of which have orthographic lenses instead of the usual perspective lenses. Additionally there is a laser that can turn 180° and a disc-shaped white studio light. The system is capable of moving in three dimensions up to 0.8×0.6×0.3m, as well as adjust the ground plate‘s X-angle by about 2° and the Z-angle by almost 35°.
The software was developed in VB.Net and consists of a front-end UI and a back-end engine that runs the control and movement (both of which is property of ATX Hardware GmbH, hence not provided).
It was quite a challenge to build wrappers around the provided libraries for the axes’ controllers, since they are mostly used in production facilities where the same steps are executed over and over. For our own needs, however, the system had to be flexible and somewhat interactive.
Synchronizing the workflow, the interaction between laser, cameras and the axes turned out to be more difficult than we originally planned, too. Due to the need for flexibility, a lot of time was spent to make sure no crashes between circuit boards/adapters and the various components could occur, as well as guaranteeing safe operation in respect to people working with the machine.
The axis control is established over a COM-Port interface and updated several times per second. A lot of experimentation was needed in order for it to work reliably and without timeouts, but the axes do operate pretty much flawlessly now. The camera system and laser were easier to integrate, since both the libraries and the documentation were a lot better. This part worked very well right off the bat, but was gradually improved during developement nevertheless.
The software still works well today, even though it has seen a few patches to support needs that developed after I stopped working on it full-time.
The ground plate of the machine was built to be able to adjust based on the board or adapter being tested. Since a lot of our adapters are slightly tilted (see images below), the Z-angle was most important. When the execution of a test is started, the software uses the laser to automatically determine the angle of the corresponding test object and adjust the bottom axes accordingly.
Afterwards a series of height and size measuring operations are run and an orthographic image of the circuit board is captured. Since the size of a single image is rather small (about 5x4cm), it is captured in several steps and stiched together in the end of the process.
The software supports a custom input format that is generated for every board indiviually. After a short calibration phase the entire test is run automatically. It is also possible to only capture an image; this is what is mostly used, because a high quality image is almost always needed for further processing.
When the software was nearly completed, we realized that the axes in use were not very precise, which made it impossible to achieve accurate measurements (errors of 0.1mm were toleratable, but the mean error was 0.5mm). Even with several filters and correction algorithms in place, it was still not possible to achieve the resolution and accuracy needed to improve the safety of adapters or provide additional accurate data.
The bottom line is, Lomecs has been reduced to the optomechanical part. It is now used only for orthographic image capturing, while the data capturing part has been abandoned for now. The image capture results however are very good and a second machine that features capturing only is in planning.
I can provide some captured images, but most images of boards potentially contain sensitive / protected information.
The whole project was a learning experience for everybody involved, even though we could not achieve everything we originally planned due to the hardware limitations described above. I, myself, certainly learned a lot about hardware, circuit boards, some image processing and implementing big architectures.
If you have any additional questions you can contact me either in the comment section or via the provided social media links.