Clever software solutions for sophisticated instruments
We develop industrial-grade software
for analytical and technological equipment
Our expertise is not just in programming
  • 1
    Experience in analytical instruments
    Our previous experience comprises more than 15 years of service and analytical support of OE and XRF spectrometers, X-Ray diffractometers, digital radiography and CT systems. We use this knowledge to develop novel products, combining the best from the past with new ideas and solutions.
  • 2
    Development of new analysis methods and algorithms
    We successfully use our knowledge and PhD degrees in physics, math and modern data processing approaches to develop new algorithms and methods of analysis. For example, Bath Ratio measurement by combined XRD/XRF analysis in the aluminum industry, real-time processing of large X-Ray images by GPU etc.
  • 3
    Hardware and integration in mind
    The years of experience allows us to effectively communicate with a variety of target hardware: 1D-2D-3D signal detectors, X-Ray and optical image sensors, X-Ray generators, mechanical components and robotic systems, protection and safety devices. Our products can be easily integrated to a central plant control system or connected to third-party equipment.
  • 4
    UX/UI are important
    Software for complicated technological equipment is often developed by hardware engineers and suffers from outdated approaches. This results in overcomplicated old-fashioned interfaces and rather disagreeable user experience. We make every effort to bring convenient UI to unveil all advantages of modern hardware.
  • 5
    Industrial-grade software quality
    Our products are designed for reliable and efficient 24/7 work and have been successfully tested for already more than 10 years of industrial applications. Our support team is quite upset, as we receive no bug reports for years.
Current project:
Software for X-Ray PCB Inspection system
Customer:
Prodis.NDT (Russia)

Objectives:
To develop cross-platform software for digital X-Ray PCB Inspection system control, real-time image acquisition and processing, capturing of stitches and computed tomography sets, image analysis and reporting, organizing results.

Operating systems:
Linux, Windows

Platforms:
x64, Elbrus (Russian VLIW CPU)

Technology stack:
C++ 14–17, Qt/Qml, OpenGL, OpenCV, Flow

Languages:
English, Russian, other on request

Links and publications:
Digital X-Ray: a trip to Elbrus (publication on Habr, Russian)
60 fps real-time 16384×16384px X-Ray image processing on GPU (Youtube)
Automatic counting of electronic components by X-Ray radiography (Youtube)
X-Ray PCB Inspection system Prodis.Electro
proDIS Software
Unicore Solutions is doing a good job. Their high productivity is not restricted by limited team size and their high development speed does not lead to increase in bug spawning which is quite rare.

I'd like to note their expertise in image processing including non-typical architectures (like Elbrus) and ability to work at a low level (OpenGL) which is not very common. The whole bunch of our heterogeneous hardware was integrated without any problems. These guys definitely have experience in working with industrial equipment.

I'd recommend this company for developing products from scratch including when efficient autonomous remote work of RnD team is needed.


Artem Ustinov
Director General, Prodis.NDT

Software description

Software is designed for digital processing and storing of static and dynamic X-Ray images from any Mark detector.

Software is able to measure dimensions, add annotations, has unique mathematical tools for image processing in both real time video and static modes.

Suitable for PCB X-Ray inspection, NDT, electronic parts analysis, tomography and special checkups. Software includes best practices in the area of PCB inspection.
Key features

  • Simple and intuitive interface
  • Variety of filters, including user filters
  • Video mode with controlled binning
  • Support of any “Mark” detector
  • Supports TIFF and JPG file formats
  • Gapless stitching of images
  • SMD components counter
  • Void searching in SMD/BGA
  • Bad contact zones search in BGA arrays
  • X-Ray source control
  • Positioning system control
  • Tomography
  • Gain calibration for all energy ranges
  • Navigation upon technological map
Development process

Software for X-Ray PCB Inspection system requires extensive real-time processing of large images and communication with different hardware modules. It was one of our first projects on Elbrus (apart from Linux & Windows) so we were primarily focused on efficiently solving these tasks in a cross-platform manner.

The heart of the system is high resolution X-Ray flat panel detector working over 1 Gb Ethernet by GigE Vision protocol. Existing open-source solutions (for example, Aravis) were not good enough in terms of performance/quality. Known commercial SDK were not compatible with Elbrus. Therefore, we were forced to implement GigE Vision protocol ourselves. At present it completely absorbs 1 Gb channel on all platforms and produces maximum possible image framerate. Our solution offers a fully automatic discovery procedure to find all the detectors connected to the system using different filters and choose the most appropriate one.

For the same reason we have implemented from scratch the support of all other hardware: different mechanic set-ups (up to 9 axis), a range of X-Ray generators (Spellman, Hamamatsu, Eltech, X-Pro), optical cameras, protection keys. An automatic discovery functionality can be used for all the other hardware devices.

Digital radiography systems work with large 16-bit images. It can be more than 16 Mp in real-time acquisition mode and much more than 100 Mp in case of stitches and maps. For all of them end-users expect fast real-time processing at least for most common operations (30 fps or more) which is not feasible on all target CPUs. Due to the lack of CUDA/OpenCL/Vulkan support the whole image processing routine from capturing detector frames, calibration, to histogram estimation and correction, sharpening and noise reduction, geometrical transformations and region coloring was developed on pure OpenGL 3.0. Benchmarks of 3000x3000px 16-bit image range from ~33 ms/frame on old AMD R5 cards up to ~2 ms/frame on GeForce RTX 2070 Max-Q. These values include all processing steps — from capturing image to processing and displaying results.

Complex image postprocessing and analysis was implemented using OpenCV which works quite fast on all platforms. Elbrus really surprised us, showing comparable or better performance than modern Intel/AMD processors.

The application is equipped with a powerful scripting engine allowing to create custom routines to control all hardware modules and perform any image processing operations, analysis and reporting.

While working on the project we have also developed several algorithms for bad pixel correction and detector shading, borderless image stitching, etc.

Software has an advanced multilingual support. It is originally shipped with English and Russian translations but any other languages can be added by local distributors on site. The UI is modular and can be easily adapted in accordance with the required product options. To make daily personnel work more comfortable it supports several skins, including traditional light and dark themes.

The project is based on Qt/Qml. We have actively used our in-house library and Flow approach to speed-up development process, achieve required flexibility and product quality.