🎰 CabiNet — turn your home slot collection into a live casino like floor
https://github.com/ajs1616/CabiNet · open source (GPL-3.0) · runs on a cheap Linux box
I've been building CabiNet to solve the thing every slot collector eventually wants: not just machines sitting in a row, but a floor — where credits move between cabinets, friends have player cards, tickets print on one machine and redeem in another, and the whole room feels like a casino night you're running. It links your machines over their real casino protocols (G2S and SAS) and runs the whole show off one cheap computer. No cloud, no accounts, all fun-money.
Here's what it does today, live on my own floor:
🎰 Live Floor View — every machine a tile in your browser: real credits, what game's up, online/offline at a glance.
💵 Fun-Money Wallets — a central House Bank you set to whatever you like. Make player accounts for friends and push credits to any machine from your phone.
💳 RFID Player Cards — tap a fob on a cabinet reader and the machine knows who's playing.
🎫 Real Cross-Machine TITO — print a ticket on one machine, walk it across the room, feed it into another.
🖥️ Player menu on the machine's own glass (IGT media-window cabinets) or a small companion screen (SAS machines) — no extra hardware where the slot can show it itself.
🎁 On-glass bonusing & handpay clearing — hit a handpay, tap your attendant fob, clear it back to credits without a jackpot key.
🏆 Tournament Night — the big one. Arm the floor and every machine becomes a seat: it clears the glass back to the House, funds each machine with tournament credits, and locks. One countdown on the big screen, the whole floor unlocks at once, and it's a race. Only wins count — not losses — so it's about who hits. Time's up, machines lock, a winner ceremony fires, and the leftovers sweep home. Friends who don't card in get a random funny name off a roster you can edit.
📺 The Gameroom Board — point any TV at the host and get a spectator screen: your room's name in lights, an attract rotation, and fireworks on the big hits. During a tournament it becomes the countdown, the live leaderboard, and the ceremony.
🏷️ Your game room's name in lights — set it once, it shows on the machines and the board.
What you need:
- A machine that speaks G2S or SAS (SAS is most vintage/hobbyist cabinets)
- For SAS: a Raspberry Pi (3B+ or newer) + a MAX3232 board as the bridge; add a small HDMI screen if you want the player menu on it
- For player cards: a PN532 reader per machine
- The host: any Linux box with a spare Ethernet port — I use a Pi 5, an old laptop works fine. Dependency-free Python 3, no cloud
- A cheap dumb Ethernet switch to keep your slot floor on its own segment
Flash, plug in, run one script. It's all documented in the repo (deploy/DEPLOY.md, and deploy/TOURNAMENT.md for tournament night).
Status & who I need: The goal is to be universal — to support every SAS and G2S cabinet. The whole thing is built to the standard specs, and on the G2S side CabiNet speaks the IGT flavor — which matters because most G2S cabinets let you select the flavor, so you set yours to IGT and it speaks the dialect CabiNet drives (that's exactly how my WMS Bluebird runs G2S). I run it daily on an IGT AVP and a WMS Bluebird 2, so those are proven — but the goal is all of them, and I only own two. If you run anything on SAS or G2S — Bally, IGT, Konami, Aristocrat, WMS, whatever you've got — I want it on your cabinet. It'll either just work or turn up something I'll fix — either way, drop a GitHub issue and send me the log bundle via email. (if you prefer to put it in a GitHub issue that is fine but the diagnostic data includes player names and wallet balances) and we'll get your machine on the supported list. That list grows with every collector who tries it.
⚠️ CabiNet is a non-commercial hobby project for home game rooms. It's entirely fun-money, handles no real currency, is not certified, and must never be used for real-money or regulated gaming.
Ask me anything — and if you throw a tournament, I want to hear how it went.
--AJ