Here, the code moves something.

And when it moves the wrong thing, you can’t undo it with an update. A motor has already made that movement, a part has already shifted, sometimes there’s a person sitting on top of it.

That’s why this software is written differently. And, above all, tested differently.

Where it gets complicated

Five problems ordinary software doesn’t have.

The test

You can’t test it by clicking

To know whether logic works you need the physical piece that moves, or a faithful simulation of how it behaves. The write-test-fix cycle is slower and more expensive, and that has to be factored in when estimating timelines.

The timing

An actuator doesn’t wait

A delay nobody would notice on a screen becomes a mistimed movement here. Tolerances are tight and you don’t recover them with more compute power: you recover them by writing the code a different way.

The distance

The device isn’t where you are

It’s in a room, a warehouse, on a plant. Updating it, understanding why it stopped, and knowing what state it’s in without going there in person are three separate problems, and they need solving before you install a hundred of them.

The boundary

When it doesn’t work, you need someone who reads both sides

Between whoever built the mechanics and whoever wrote the software there’s a grey zone where problems bounce back and forth. You need someone who can read both sides well enough to say where the issue actually is, instead of defending their own piece.

The field

What’s already installed stays installed

A bad update on a device two hundred kilometres away doesn’t undo itself with a keystroke. Every change has to be planned knowing that rolling it back costs a trip.

Where we’ve done it

Mechit — control software for driving simulators.

Before

Simulators installed in venues open to the public: cabins that move on actuators, controls that have to respond instantly, and venue management that has to work without a technician on site.

After

The software for the boards that drive the motors, the interfaces for whoever uses the machine, and the system that manages the venue.

Why it matters

The missing piece is always the one in between.

Whoever builds machines has engineers who know everything about the mechanical side. Software houses know how to build applications. In between is the line of code that translates a command into a movement, and it isn’t fully either one’s trade.

It’s the point where projects stall: not because the skill is missing, but because that skill is split between two vendors who bounce the problem back and forth.

We don’t build the machine. We build the part that moves it.

This isn’t the right page if

You need certified industrial automation.

The world of industrial controllers has its own technologies, standards and certifications, and it isn’t our trade. If what you need lives inside a production line with certified safety requirements, you need someone else — and it’s worth knowing that now.

We work on general-purpose programmable boards: the ones that drive a motor, read a sensor, open a gate, talk to a server.

How it starts

If the software side doesn’t exist yet, you start by understanding what’s actually needed and what it costs — Build Plan. If it exists, half-works, and nobody can say whose problem it is, the door is Rescue.

If instead you already know what needs doing and want to see how we work before committing, there’s the Dry Run: two weeks, and it ends there.

Astrorei · When software matters

When software becomes
a business matter.