Interface for Bingo simulation programs and a real Cabinet
This manual describes the interface needed for communication between a modified Bingo Cabinet and a computer running Bingo simulation programs.
You’ll find no information here how to modify the Cabinet, that’s something you have to find out yourself. Some guys already went through the process and published a set of documents about the subject, including source for the microcontrollers.
Most likely you will start with an old Bingo Cabinet where you’ll have to strip all unnecessary cables, and rewire it in such a way that it fits to the microcontroller. Cables to and from Cabinet’s switches, buttons and liftmotor are led to the microcontroller I/O-pins.
The microcontroller communicates with a computer running the Bingo games, to which a large screen is connected displaying the Backglass of the current game.
After all the work is done, the result will basically look like this:
To cover all possible Bingo simulations, the following buttons, switches and units are required on your Cabinet. They will all have to be wired to the microcontroller. Bingo Cabinet Simulator emulates all required buttons, switches and lights.
On front of Cabinet:
Red button, for playing credits (all games)
Yellow button, for Extra Balls (all games)
Green button, for playing Features (OK games like Silver Sails, Bounty, Lido)
Blue button, for playing Scores (OK games)
White button, for advancing Skill Shot Score or Yellow/Red Supersections (Bounty, Lido)
Turning knob, to select Spotting Numbers (a.o. Miami Beach, Double Header)
Ball lift button (all games)
On Button rail:
6 Feature buttons A, B, C, D, E and F (turning corners, but E and F are for example also used on Magic Screens as buttons Left and Right, to shift the screen
R-button, to detect wins and start payouts (OK games and others)
Golden button, to select Skill Shot number (Bounty), Double Game (Magic Ring) or collect Futurity Game (Bikini, Lido)
A switch or button for 10 credits (all games)
A switch or button for inserting one coin (all games). It may be ignored if you don’t use an actual coin insert.
With some creativity these buttons will cover all possible games, although it’s not a bad idea to have some spare ones.
Other requirements on your modified Bingo Cabinet:
Ball Lift unit
Ball Board unit (shutter board)
Ballswitch (right above plunger, ball ready to launch)
Through-gate switch (ball leaves shooting lane and enters playfield)
Tilt mechanism
General
BCS interface with Bingo simulations is kept as simple as possible. All signaling is performed by sending and receiving one-byte codes without any handshake (except for initial contact). Error checking and handling has to be done by the controller. If anything goes wrong inside the Cabinet there is no way to let the Bingo simulation know.
Ball lift
An error free operation of the ball lift is important. The Bingo program keeps track of balls in play and will send a single ‘l’ (lowercase L) to the controller if the next ball can be lifted. No further handshake or confirmation is required nor available. So if a ball gets stucked in the ball lift, your controller should fix it.
Ball board
Not much to say about this. Controller receives an ‘h’ from the Bingo game program when the board should open, an ‘i’ when it has to close.
Ball switch
Only your controller handles the ball switch, the game program is unaware of its status. Its main job is to prevent a new ball from lifting if a ball already rests on the switch.
If a ‘lift next ball’ command (‘l’) is received and a ball is already on the ballswitch, controller logic should ignore this command.
If the ball lift button is pressed, your controller should send a ‘.’ (dot) to the Bingo program as a request for a new ball. It will answer with an ‘l’ in case it’s ok to lift a ball. One exeption: because the Bingo program is not aware of a ball on the ball switch, your controller should not send this ‘.’ if there is a ball already on the switch.
Through-gate sensor
It seems like a simple switch. But be careful: it is absolutely necessary that a ball really leaves the shooting lane and enters the playfield, and not for example fires the Through-gate notification ‘z’ and then accidentally rolls back into the shooting lane. Probably it‘s better to make this a double sensor. For example a normal switch at the Gate, and an electronic eye or a magnetic reed switch underneath the playfield, on a ball distance. Just to be absolutely sure that the ball has left the shooting lane and is definitely moving in the playfield. Some controller logic needed here!
Tilt mechanism
If Cabinet is nudged too much your controller should fire a Tilt notification ‘t’, which will put the Backglass into Tilt mode.
Communication between microcontroller and computer running the games is conducted through a serial connection. Even without a physical connection it is possible to watch communication between your future microcontroller and a Bingo game program. For this purpose a helper program called ‘Bingo Cabinet Simulator’ (BCS) is developed, for both Windows and OSX.
Possible configurations are:
Bingo game running on a PC or Mac, BCS running on the same computer.
This is the most simple configuration. Hardware required: just a Windows or Mac computer
Aim: observe communication between a Bingo simulation and BCS
Bingo game running on a PC or Mac, BCS running on another PC or Mac. Hardware required: two computers (Windows or Mac, or mixed) with a Serial or SerialUSB connection. Preferably SerialUSB (because tested), but a regular Serial connection (D-type connector, often found on older Windows PCs) should also work (watch out: check line voltages!) Aim: quickly test the Serial USB connection
BCS running on a computer. Microcontroller running remotely, wired and programmed. Connected by Serial USB.
Commands can be sent directly from BCS to the microcontroller for quick testing of functions like ball lift, shutterboard, rollover lights etc. Hardware required: programmed and wired microcontroller, Serial USB connection between computer and controller Aim: to test hardware connected to the microcontroller.
x
Configuration 1: Bingo game program and Cabinet Simulator running together on Windows PC or Mac. Game program and BCS communicate internally. Use it to watch communication between game program and controller. No hardware or Serial USB connection required.
x
Configuration 2: Bingo game program running on Computer 1 (Windows PC or Mac). Cabinet Simulator running on Computer 2 (Windows PC or Mac). Communication through Serial USB.
x
Configuration 3: BCS running on a computer. Controller, wired and programmed, maybe already mounted in Cabinet, receives Backglass-related commands directly from Cabinet Simulator through Serial USB connection.
Use this Configuration for quickly testing Cabinet hardware like ballift, shutterboard etc.
We will use Configuration 1 to watch the codes being transmitted and received without having any hardware attached. Watch the communication carefully because when your microcontroller is programmed and wired it should behave exactly like BCS.
Start Configuration 1
Be sure no Serial USB cable is inserted!
Start Bingo Cabinet Simulator
Start a game, Bally Show Time for example
After a succesful handshake BCS now shows ‘Connected to {BallyShowTime} via eTCP’ in its titlebar, and Show Time > Preferences > tab USB interface will show ‘eTCP connected to {BingoCabinetSimulator}’. Show Time only displays its Backglass, no Cabinet.
Initial communication
For this connection some communication has already taken place automagically. Look at the bottom pane of BCS and you’ll see something like this:
The left of the list displays commands sent from Backglass (game program) to Playfield (microcontroller), on the right commands from Playfield to Backglass.
1 The very first instruction sent from Playfield to Backglass was a ?, meaning ‘remote side identify yourself’. It was sent at BCS’ startup and it didn’t receive an answer because Show Time didn’t start yet. 2 When the two connected after Show Time’s start, BCS issued a second ?. 3 Now Show Time answered with its name: {BallyShowTime} ... 4 ... and issued also a ? ... 5 ... answered by Playfield with {BingoPFsimulator}. Note: your microcontroller should use the name {BingoPlayfield}.
By exchanging names a successful connection is made. The names are the only multibyte strings during the whole session, the rest are all singlebyte instructions.
6 Backglass sends its first real command q, which means ‘Playfield reset yourself’. 7 Backglass is initially always in Tiltmode and sends a i to let the microcontroller close the shutterboard. 8 & 9 The ‘6’ and ‘4’ are requests from Backglass to turn resp. Yellow and Red rollover lights off
Start of a game
The part from BCS in the image above is a representation of buttonrail and frontside cabinet. Let’s start with pushing the 10 credits button. You’ll see that a ) is sent to the Backglass where 10 credits will be added to the Creditcounter.
Now hit the Red button. A lot of codes seem to be transmitted, but most of them are commands to flash the rollover lights. Scroll the pane back until you see n and ^. The n stands for pressing the Red button, the ^ indicates the release of any button. Buttons can be pressed once, but also can be kept pressed, to repeat the spincycle or to keep a feature shifting/rotating; that’s where the ^ is useful.
The ballboard was closed the moment the Red button was pressed, so the Backglass sends an h to open it.
Followed by a l (lowercase L) to lift a ball. Note: controller has to take care that all 8 balls are collected in the ballift’s ‘waiting room’ before lifting the first ball.
The rest of the codes are a repetition of 4, 5, 6 and 7’s, used to flash the rollover lights during spincycle.
If you press the Red button a second or more times to advance Features and Scores, communication will be about the same, of course now without the ‘open shutterboard’ and ‘lift ball’ commands.
Bring a ball into play
To bring a ball into play with Bingo Gameroom Simulator:
Press the button Ball through Gate(important, this simulates the through-gate-switch on your real Playfield).
BCS sends a z to the Backglass. Because this brings the first ball into play Backglass in return requests to close the shutterboard by sending a i and to lift the next ball by a l.
As a help for the microcontroller to keep track of balls in play, Backglass sends a ballnumber identifier: a hexadecimal number in the range from &hB0 (no balls in play) to &hB8 when all 8 balls have passed the gate and are somewhere in the playfield, either in a ballhole or still running around.
To simulate a ball-in-hole press one of the 25 holebuttons or Ball Return.
Repeat from step 1 to bring all 5 balls into play.
Press the R-button to collect wins, and/or the Yellow button to try for Extra Balls.
Char
Ascii
Hex
Description
BG <-> PF*
)
41
29
Add 10 credits
<-
1
49
31
Single coin inserted
<-
4
52
34
Turn Red rollover light off
->
5
53
35
Turn Red rollover light on
->
6
54
36
Turn Yellow rollover light off
->
7
55
37
Turn Yellow rollover light on
->
8
56
38
Yellow rollover button is hit
<-
9
57
39
Red rollover button is hit
<-
<
60
3C
Turning knob left
<-
>
62
3E
Turning knob right
<-
?
63
3F
Remote side: identify yourself
<->
A ... Y
65 ... 89
41 ... 59
Ball in hole 1 to 25
<-
Z
90
5A
Ball in Ball Return
<-
[
91
5B
Open ballboard, keep Odd numbers
->
\
92
5C
Abort the connection
<->
]
93
5D
Open ballboard, keep Even numbers
->
a
97
61
Feature button A pressed
<-
b
98
62
Feature button B pressed
<-
c
99
63
Feature button C pressed
<-
d
100
64
Feature button D pressed
<-
e
101
65
Feature button E / button Left pressed
<-
f
102
66
Feature button F / button Right pressed
<-
g
103
67
Golden/orange button pressed
<-
h
104
68
Open ballboard
->
i
105
69
Close ballboard
->
l
108
6C
Lift a ball
->
m
109
6D
Bump (HiFi)
->
n
110
6E
Red button pressed
<-
q
113
71
Reset
<->
r
114
72
R-button pressed
<-
t
116
74
Tilt
<->
u
117
75
Green button pressed
<-
v
118
76
Blue button pressed
<-
w
119
77
White button pressed
<-
x
120
78
Yellow button pressed
<-
z
122
7A
Ball through Gate
<-
128 ... 136
B0 ... B8
Ball number identifier
->
* -> = message from Backglass to microcontroller <- = message from microcontroller to Backglass <-> = message can come from both sides
Note: if you press key F1 in Bingo Cabinet Simulator you’ll see all codes as an overlay over the various buttons.
With the ASCII/Hex button you can toggle between Ascii / Hex notation.
Communication between microcontroller and computer running the games is conducted through a Serial USB connector:
SerialUSB connectors are for sale everywhere over the internet and cost only a few dollars. You need two of them. There are many compatible ones, but let’s assume you’ve managed to get a set similar to above image on Ebay.
Make a connection cable out of the two adapters by tying both GND wires together, leave VCC’s open and cross the TxD and RxD lines, like this:
To connect Bingo games with the microcontroller or Cabinet Simulator, you have to use Bingo Gameroom. The thought behind this is to prevent that every single game has to make this connection separately. So Bingo Gameroom is used to set up the initial connection and saves it as Global default. All new (suitable) games will use this setting.
You’ll need 2 computers (can be Windows or Mac, or mixed) with a free USB-slot. If you plug in your Serial USB connector in a USB-slot the very first time, appropriate drivers are loaded (on a Mac you may have to do that by hand).
To test the cable we’ll use Configuration 2. Start Gameroom on one, and Cabinet Simulator on the other. First we check if the correct drivers for the Serial USB connectors are loaded. Goto Bingo Gameroom > Preferences > SerialUSB tab and try to find the USB port. On a Mac it will probably be named usbserial, on a Windows machine something like COM3 or COM6.
Do the same in BCS. When both USB ports are set correctly, convince yourself that other settings like Baudrate, Parity and Stopbits are identical on both sides. Then check in Bingo Gameroom the checkbox Use Serial USB interface for all compatible Bingo Games. This will enable the Serial USB connection and both sides will try to make contact.
There is a very basic test available by pressing the button Test connection. It can send commands to the controller/BCS and it shows the messages received.
By pressing Save and Close in Bingo Gameroom’s Preferences all settings are saved globally. It will ensure that all compatible games will connect automagically to the microcontroller when they’re started.
After all this testing it’s time to start building. So buy a big screen and try to find an old Bingo Cabinet to modify it so it can be controlled by a microcontroller.
And when you have your 25-hole Cabinet ready, why not go for a 20-holer, maybe just a replaceable playfield? The games are ready for it, they just wait for the first person to just do it...!
I wish you lots of success, and please keep me posted at info@joopriem.nl