BO'S Amusement · 2023
Multikiosk: a certified gaming kiosk
All the software for a regulated gaming machine: four games on a Raspberry Pi 4, e-ID age checks, printers and payment devices, recovery after power loss, and the accounting that regulators audit.
- Role
- Machine software and peripheral integration
- Stack
- Certified under Belgian model approval B-23-041001
- 4 games, 1 Raspberry Pi 4, 7 kinds of peripheral
- Game state survives a power cut mid-round
The Multikiosk is a gaming machine for Belgian class III venues: bars that hold a gaming licence. BO’S Amusement provided the technology and Bingosreno NV, the licensee, assembled the machines. In October 2023 it was certified under Belgian model approval B-23-041001.
The cabinet and the I/O board were designed by BO’S founder. I wrote everything that runs on the machine and integrated every device connected to it.

What I built
- Four games written in BlitzMax: Treasure Chest, Triple Wheel, Pile ’m Up and Xtra6. Each one has its own pay table, bonus features and mystery-spin rounds, and the game selector presents them on a 43” curved portrait screen.
- Device integration on a Raspberry Pi 4 running Raspbian: a PC/SC e-ID card reader, an RFID proximity reader, a thermal ticket printer, an Alberici coin mechanism and bill acceptor, push buttons, electronic counters and a GPRS modem.
- The protocol to the I/O board, which has its own microcontroller and talks to the Pi over RS232 through the GPIO header.
- Everything regulators look at: software integrity checks, protected meters, archived statistics, and reporting to the fleet server that feeds the Gaming Commission.
Two processes, one machine
The software on the machine is split in two, each part in the language that suits it:
| Part | Language | Responsibilities |
|---|---|---|
| Game application | BlitzMax | All gameplay and graphics, serial communication with the I/O board, meters, power-loss recovery, checksum, bookkeeping |
| Device services | C++ | e-ID card reader, ticket printing, and sending counter reports to the fleet server |
The two talk over a local socket. The game never waits on slow hardware such as a printer or a card read, and each device driver can be developed, tested and restarted on its own.
Engineering highlights
Talking to a board that holds the truth
The I/O board is not a simple relay card. It stores the machine’s meters in EEPROM, has a battery-backed real-time clock, and detects when the cabinet is opened. When the machine starts, the software loads the full EEPROM contents over RS232 before anything else happens. While it runs, the Pi and the board compare their data at regular intervals and log any difference.
Buttons and coin pulses arrive from the board as serial messages, and outputs such as lamps and counters are switched by serial commands from the Pi. The protocol had to be robust, because a lost message here means a lost coin.
Surviving a power cut in the middle of a game
Bars lose power. If that happens mid-round, the player must get back exactly what they had. The game saves its progress as it goes, and on start-up it restores the interrupted round to exactly where it stopped before letting play continue. That includes the cards on screen, the bonus state and the credits.
Age verification with the Belgian e-ID
With no credits on the machine, it won’t take coins until a player inserts a Belgian e-ID card and the software confirms they are 18 or older. A verified session then runs on a 300-second timer that resets whenever the player adds money or presses a button. When it expires, the machine asks for the card again.

Timing that doesn’t depend on the hardware
The main loop runs on a fixed 25 frames-per-second tick, independent of CPU and GPU speed. Animation may render slightly differently from one Pi to another, but nothing that affects bets, wins or game duration can change. Regulators require exactly this.
Proving the software hasn’t been changed
The certification requires that an inspector can check the software on site. In attract mode, a service sequence opens a screen where the inspector enters keys and the machine computes a checksum over its own software, then shows it next to the version and approval numbers. The same identifiers are available over the RS232 data interface.
Bookkeeping and reporting
Total bets, total wins, games played and play time are kept in a database and archived every 20,000 games as CSV files on the machine. A C++ service sends the machine’s status and counters over a 4G/GPRS modem to the fleet server, which reports to the Gaming Commission, so machines in bars need no local network. How the fleet server works →
Inside the cabinet


The games



Credits
- Cabinet, I/O board and its microcontroller firmware: BO’S founder
- Machine assembly and licence: Bingosreno NV
- All machine software, device integration, the fleet server and the reporting chain: me