Hardware + software · Part of Synero · Prototype

Smart Vending.The machine, yours again.

A vending machine that, out of the box, only works if it can reach a server on the other side of the world. We wrote the software that drives it directly — and makes it manageable from one place.

Status
Software works and is tested; the physical motor control is waiting on an answer from the supplier
Type
An app on the machine itself + a central management platform
For whom
Operators of one or more machines: chip shops, companies, farms, sports clubs
Our role
Own R&D within Synero: hardware research, app, platform
Synero Smart Vending
0
Connections to unknown servers
The machine runs on your own infrastructure
48
Coils per machine
Each with its own product, price and stock — remotely
0
Machine updates for a price change
Everything that carries meaning lives on the platform

A machine that
phones home.

You buy a machine, put it in your shop — and discover it does nothing without permission from a server you've never heard of.

Modern vending machines are computers with a motor behind them. The manufacturer ships software that looks nice but doesn't do one thing: work without its own cloud. No connection to the manufacturer's servers, no product drops. And what travels over that connection — sales, prices, timestamps — you never see.

For an operator that means dependence: on a server abroad, on an app you can't change, on prices you can only edit through their system. And if that service ever stops, you're left with an expensive cabinet that does nothing.

We wanted the opposite: a machine that listens to your platform, with your data on your infrastructure.

Dumb machine,
smart platform.

Our own app on the machine

We replaced the manufacturer's software with our own Android app that talks directly to the motor board, through the manufacturer's official SDK. No detour via the cloud.

The machine checks in

On start-up the machine connects to the Synero platform and waits in a pool until an operator claims it. If the connection drops, it reconnects by itself.

Set up remotely

The operator links the machine to their business and fills in product, price and stock per coil — from the dashboard, without walking to the machine.

Order, spin, log

A dispense travels from dashboard to machine in a fraction of a second. The motor spins, the product drops, stock goes down by one and the sale is in the log.

“The machine only knows coils. What's in them, what it costs and who may sell it — only the platform knows. That's why a price changes without a single machine ever needing an update.”

The design principle

Built like
the rest of Synero.

The same pattern as the ordering platform: one system, every operator their own environment.

Direct control

The app addresses the motor board directly over the serial port. The board acknowledges configuration and dispense commands as it should.

Diagnostic tool

Read live what the board sees, coil by coil. Indispensable for knowing whether a problem is in the software or in the cabinet.

Every operator their own fleet

Operator → machines → coils. Several businesses on one platform, strictly separated, exactly like the Synero ordering platform.

Prices as data

Product, price, capacity and stock live on the server. Changing them is a click; the machine doesn't need to know.

A connection that heals itself

Wi-Fi gone for a moment? The machine calmly retries, each time a little later, until it's back online. No manual restart.

Stock & sales

Every dispense deducts stock and writes a transaction, per machine and per operator. Filterable, exportable.

Testable without the cabinet

A simulated motor board lets us test the whole chain on a laptop. Thirteen automated tests make sure everything keeps working.

Paying at the machine

Bancontact, Payconiq or a payment terminal before the dispense — the hook is already in the flow. Planned

Dashboard for operators

Management currently runs through the API; the visual admin follows in Synero's style. Planned

From click
to falling product.

Operator

Dashboard

Picks machine and product, or a payment gives the go-ahead.

Synero cloud

The platform

Checks stock and permissions, numbers the command and waits for the result.

Live connection

To the machine

Over a permanent connection, in milliseconds.

In the cabinet

The app

Translates the command into the motor board's language.

Motor board

Coil spins

Product drops. Confirmation travels the same way back; stock and log are updated.

Two programs, strictly separated. In the cabinet runs a deliberately simple app: it can spin a coil and phone home, nothing more. In the cloud runs the brain: operators, machines, prices, stock, transactions. Every dispense passes through one central point that keeps track of what was asked and what was answered.

The part that talks to the hardware lives in one isolated module. If something there isn't right, the system would rather send nothing than something wrong — and says clearly why.

In the cabinet
  • Android app (Java)Runs on the machine's own computer
  • Manufacturer's official SDKFor communication with the motor board
  • Motor board with 48 coilsDriven over a serial connection
In the cloud
  • Node.jsLight, no framework — only what's needed
  • WebSocketPermanent line between platform and machine
  • REST APIFor the dashboard and payment integrations

Owner of
your own machine.

  1. No more cloud lock

    The machine no longer needs to reach any foreign server to work. Data stays with the operator, on infrastructure they know.

  2. The official route, not a hack

    Control runs through the manufacturer's own SDK. Robust, supported, and clean.

  3. The unknown in one box

    Everything that is certain is built and tested. The one piece still waiting on the supplier is isolated in a single function — the rest of the stack doesn't stand still because of it.

  4. Developing without the cabinet

    A simulated motor board lets us run the whole chain on a laptop. Faster building, less risk on the real machine.

  5. Part of the Synero family

    Same multi-tenant pattern, same way of thinking. An operator with a cafeteria and a vending machine will soon manage both in one place.

Hardware doesn't lie,
but it does keep quiet.

Challenge

The manufacturer's software sends nothing to the motor board as long as it can't reach its cloud. So there was nothing to observe or compare.

Approach

Get to know the board directly through the official SDK, step by step: which port, which speed, which address. Believe every assumption only once the board confirmed it.

Challenge

The first commands were completely ignored.

Approach

The board turned out to speak a different message format than the documentation of a sister board. With the right "language" it immediately answered both configuration and dispense commands.

Challenge

The board accepts everything, but the motors stay silent.

Approach

Systematically ruled out until one explanation remained: the software does what it should, the motors are electrically unreachable. That's the cabinet, not the code — and it's now with the supplier.

Challenge

Only one program may talk to the board at a time.

Approach

The manufacturer's app is disabled and our app gets the port exclusively. Simple, but it saves hours of chasing ghost errors.

Until the first
product drops.

PreviousVespaTrack
NextProvaux

A machine you want to manage yourself?

We make hardware
yours.

Send a message