How AI Helped Us Recreate the Iskra Delta Partner Motherboard

There is a certain kind of magic in old computers. Not just nostalgia, but something more fundamental. It is like peeling back the layers of a time when computing still felt like exploration.

A while ago, we decided to bring back the Iskra Delta Partner, a Slovene computer from the 1980s. Most people have never heard of it, and that is partly the point. It was not famous. But it was ours. And like all forgotten machines, it had something to teach us.

Our goal was ambitious. We wanted to replicate the motherboard exactly. Not emulate, not approximate. Recreate it, down to the last via. That turned out to be more work than it sounds. The board had more than a thousand vias, which are the tiny copper bridges that connect different layers of the circuit. Placing them manually in KiCad quickly became a grind. The kind of work that makes you question why you started in the first place.

So we did what any curious programmer would do. We automated it.

The Usual Way

Normally, you take a scan of the board, load it into KiCad, and begin tracing. You connect the pads, draw the tracks, and slowly add each via by hand. It is tedious in the way that sanding wood with a toothbrush is tedious. Not difficult, just slow and repetitive. And when you are doing it more than a thousand times, it starts to feel less like engineering and more like penance.

After a few hours, I realized I was spending all my time searching for tiny, identical holes and placing them one by one. It was detailed work, but not intellectually demanding. My focus would drift while my hand kept moving. It felt inefficient to do something so purely visual by hand, especially when I had a computer nearby that could probably be taught to do it better.

Using Computer Vision

We started with OpenCV. It is a solid library filled with useful tools for image processing. On our first scanned image, it worked surprisingly well. The algorithm identified the vias with decent accuracy. It felt like a small miracle.

Then we tried a different image. And it stopped working.

The problem was simple but hard to avoid. The lighting, contrast, and resolution change from one image to another. What worked in one case completely failed in another. So we set OpenCV aside and built our own solution.

Initial OpenCV-based detection attempt. Unfortunately, this initial scan was too distorted to fit onto the KiCad grid. As a result, we had to create a different type of scan, which did not work as effectively with the via recognition algorithm. (Credit: Tomaž Štih)

The Algorithm (It Is Simpler Than You Think)

At the core, our algorithm is a moving window. We drag a small square across the entire image and ask, "Does this square contain a via?"

To answer that, we describe the contents of each square using a feature vector with histogram-like features. It is like turning the square into a list of numbers that summarize what it looks like. Then we compare that list to examples of known vias. We only needed to mark around ten of them by hand. That was enough.

We measure the similarity using cosine similarity. If the square looks enough like the examples, we mark it as a via. It worked. In one run, we found around 970 out of 1000 vias. Automatically. In minutes.

Grid-aligned scan with recognized vias. A cleaner, grid-aligned scan allowed the custom algorithm to detect and place around 970 vias accurately.

The Unexpected Improvement

The biggest boost did not come from tweaking the similarity metric or adding more training data. It came from doing something much simpler.

We told the algorithm where not to look.

We created what we call a tabu mask. It is a kind of map that marks off areas where vias cannot be. We built it from the traces in the image. When we excluded those areas from the search, the accuracy improved dramatically. The process became faster too.

Removing noise is just as important as finding signal.

Tabu mask used for the final result. This mask was created by extracting the traces from the scan and converting them into a single one-bit image. It told the algorithm where not to search for vias, improving accuracy and speed.

Why This Matters

This project was never about publishing a paper or building a product. It was about solving an interesting problem. We wanted to bring a computer back to life. And along the way, we found ourselves solving a tiny computer vision problem that no one else cared about. That is what made it fun.

In the end, the code worked. It helped us finish the board faster, with less frustration. And we felt something that is increasingly rare in modern tech: satisfaction. Not from likes or retweets or investor interest. Just from the quiet feeling of making something work.

Try It Yourself

We have published the code. It is all in one file. If you know basic machine learning, you will understand it. It is not fancy. It is not the latest thing. But it works.

If you are interested in more advanced methods, there are neural networks that can detect anything in any image with remarkable accuracy. But if you just want to find a thousand dots on a circuit board scan, this is probably enough.

And most of the time, enough is exactly what you need.

Resources

Read Also