Ardunio Conversion of a one-armed bandit... (1980's Poker Machine)

Hi Everyone,

I am on UNI break at the moment so I have been looking for a decent project to pull together all my experience with the Arduino platform so far.

We have an 1980 Aristocrat Esprit - Inca King poker machine that has been sitting in the shed for a long time. It was broken before it was put into storage. Last time I looked at it,
approx 9 years ago, I had discovered that the batteries onboard the mainboard had corroded, I didn't have time to look into it further. I decided to have another look at it
when I started cleaning the shed out. The board has 8 eproms which are more than likely erased now, a few of the HEX inverters are dead. And it looks like the PSU is dead too.

So here is the plan...

  • First determine if the idea is feasible. That's where this wonderful community comes in.


  • Keep the outside appearance as stock... should be easy

  • 5, 12, 24 and 24ac volt power supplies... easy

  • Switching of moderate DC and AC loads (Solenoids, motors etc.) ... easy

  • Credit meter. Detect coin insert, increment 7 segment display, activate lever handle, coin despensing.

  • Reel Control. Set, spin and stop reels when handle is pulled... Easy

  • Symbol Recognition. Determine symbols from the 5 reels. 22 symbol & 9 unique characters on each. Output in appropriate form to processor to calculate prizes. Might not be able to use existing decoders. Ill explain later.

  • Prize Calculation. Read symbols, determine prize. Send to credit meter.... HARD! We are talking 59,049 combinations. Check out the score panel below.

The project will be split into a few sections/Arduinos...

Section/Arduino 1 - Credit Meter. Increment by 1 every time a coin is inserted. Allow handle operation if credit is > 0. Increment display as prizes are won. Activate coin retrieval motor.

Reel Spinners - Activate 24 volt AC motor for setting/stopping reels and activate solenoids for spinning reels.

Section/Arduino 2 - Read/Retrieve values for each reel using stock circuitry or using a position encoder of some sort. Analyze values and determine prizes. Send value to credit meter. See below...

Section/Arduino 3 - Sound and lighting board. This will come later. This just adds sounds and lighting effects to the machine.

Prizes... Below are the prize winning combinations. This will be the determining factor, and the part that will place me into undiscovered territory with microprocessors. It might not be even possible for the Arduino.

My two biggest concerns are the Pyramids which act as wilds and the suns which can appear anywhere in the 5 x 3 symbol window.

I just need to know if this sort of thing is possible or within the realm of the Arduino environment. I know MOST of it is, but those calculations scare the crap out of me.
Can I store the permutations on an SD card and have the Arduino reference them. I have never done any coding to do with combinations and permutations, so I am definitely
in the dark on this aspect. What about networking the Arduino to a computer? I would prefer to do it all inside the case though.

These people got it working using 1980 technology, I really want to see what it takes 30 years later.

Are there actual moving wheels or is the display electronic?

I think the Arduino can handle controlling lights, switching solenoids, and monitoring sensors for this type of machine. You may run out of inputs or outputs depending on how complex the machine is. I would add up how many things you want to control or sense first. That will help you decide if you need an Arduino Mega, or extra chips to add inputs/outputs.

I don't think the calculations involved will be too much for any Arduino.

There are specific forums for these types of machines, you might want to join one for questions about the specific operation of the machine.

Looks like fun.

Hey, I just realised that I have posted the above twice. My browser did something weird, and I thought I had lost what I had written.
MODS: Feel free to delete the other one... I have combined the two into this one. Nevermind, didn't realise I could do it myself.

I will make a list walterr and post it up. I will most likely get it working on a few off the shelf Arduinos. Then I will make a PCB to hold all the processors/components.

I have spent the last day or two figuring out how all the mechanical stuff works, took me a while to work out how the reels spin. Turns out that it uses one motor attached to a cam shaft,
the cams push up the locking pins sequentially. They are locked in place by a plat attached to a solenoid. When the solenoids release, the locking arms snap down and spin the reels,
the motor would then come on again to sequentially stop and reset the reels. Quite clever actually.

I will post some more photos if people want to see more of the inner workings.

Can I store the permutations on an SD card and have the Arduino reference them

Yes, but it may not be necessary. Storing the ~23 scoring patterns wouldn't take much space and you can have a special routine to take care of the suns. You'll need to store the order of symbols on the wheels to help with this - are they all the same? Are the patterns as shown literal? i.e. is a scoring line of three jacks required to be on wheels 1, 2 and 3? Either way, it doesn't look that difficult to code without pushing all possible results onto a memory card.

walterr, Here are a list of IO's...


1x Coin Insert – from Sensor
1x Payout Button – coin release
1x Reel Lock position switch. Switches each time the cam moves around.
3x? Reel Symbol Positions – Reels 1-5 (These would have to be combined into a serial output to the processor).
2x Handle pull down. There are two switches. Maybe one to spin and as you let go the other starts the stop sequence. I would want to have a slight random delay in there too.
?x Extras I have missed. Random position sensors. Some I may not need.


1x Solenoid to unlock handle
1x Motor to set/reset reel spinning mechanism
1x Solenoids for spin release. There are 5 by I assume they are all activated at once.

3x Serial 7 Segment Display for Credit meter
3x Various indicators on Credit display.

3x? Coin Release/Payout

?x Sound Output. I have some ISD chips left over from another project, might use those.

There might be a few more that I haven’t discovered yet. There are LOTS of wires in this thing.

I want to start with getting the reels spinning, and something reading the result. Maybe just display it on an LCD for now. That’s my goal before I go back to UNI.

The other half of the project is more labour intensive. The chrome is getting a little rusted and I think I need to replace the two wood panels. The plexiglass is still good. Some minor scratches.

I will leave the small fluros in the doors. I will replace them with LED’s later.

wildbill, I was hoping that the reels would be the same, but unfortunately they are not, the ACES and the PYRAMIDS line up. And when they do all the encoder holes all line up.

The order of the other cards are not the same. I think this is done to work the machines odds to the owners favour.

I see what you mean about the results, however I think that three jacks would mean that three jacks appear anywhere on the 5 reels. This will add a few more combinations. Can somebody
that plays slots correct me?

Plus the Pyramids act as wild cards so I will need a routine to work out the best possible cards to replace them.

With the suns, they are counted as being anywhere in the playing window. I was going to add another IR sensor, and have a white strip which will extend two spaces either side of the sun. So you
will get a 1 or 0 for each reel to determine if the sun is present in the window.

Here are the orders:

Reel 1: A, J, Sun, Q, 10, J, K, J,Q, J, Wild, J, 8, J, Q, J, 7, J, 10, J, Q, J
Reel 2: A, 10, 7, J, 7, 10, K, 10, 7, 10, Wild, 10, 7, 8, 7, Q, 10, K, 10, 7, SUN, 7
Reel 3: A, 8, 10, 8, J, 8, K, 8, 10, 8, Wild, 8, 10, 8, 7, 8, Q, 8, 10, 8, SUN, 8
Reel 4: A, J, K, J, 8, 7, Q, 8, K, J, Wild, 7, 8, K, 7, J, Q, 7, K, SUN, 8, 7
Reel 5: A, Q, 7, Q, 8, 7, Q, 8, K, Q, Wild, 7, Q, K, J, 8, Q, 7, SUN, Q, K, 8

I hope I haven't broken any laws by posting this... I can't imagine any of these machines would still be in circulation.

Looks like you are beyond using a single normal Arduino without shift registers and what not. Sounds like you are leaning towards multiple Arduinos? Seems like there are 3 ways to go, single normal Arduino with port expanders to handle the additional i/o lines, multiple normal Arduinos that talk to each other, or go to something like the Arduino Mega or the Maple board.

I think you are on the right track to get one part working and then add more. Get the wheels to spin and stop on command and then add the other parts as you go.

Sounds like the 5 wheels have some sort of optical encoding, but not something you can use directly I guess? I don't know that much about encoder wheels, but it would be nice if you could get a direct output on where each wheel stops and then do the rest in code instead of trying to watch for a particular symbol to go by. Should be possible to write a function that takes the 5 wheel positions, and knowing what is on each wheel calculate the best score. I'm beginning to see how tricky it will be to find all possible scores for a particular set of wheel locations. At first it seemed like it would be easy.

A serial 7 segment display shouldn't be too hard to drive if you can get the specs.

With the suns, they are counted as being anywhere in the playing window. I was going to add another IR sensor, and have a white strip which will extend two spaces either side of the sun. So you
will get a 1 or 0 for each reel to determine if the sun is present in the window.

If you can figure out how to read the encoders - which you'll need anyway, you can figure out whether suns are present in code, using the card order you showed for the reels. i.e. if you know what position the reels are in, figuring out whether suns are present is given by the card order info.