New Life Games LLC
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

News:

Welcome to the NewLifeGames.com message forum! 

 


NLG Site Navigation Menu


Archives of old posts can be found at...... Newlifegames.net/nlg/

Author Topic: Driving bally player tracking display, card reader, and keypad using I2C  (Read 9821 times)

0 Members and 1 Guest are viewing this topic.

Offline Merlin

  • New NLG Member 3 to 100 Posts
  • **
  • Posts: 86
  • Reputation Power: 6
  • Merlin New User has no influence.
  • Gender: Male
I've been tinkering with a Bally player tracking system with the goal of getting it usable without replacing
the Bally controller boards. I poked around a MC250 and MC300, but I was unable to find any information
and even if I did get it to configure a message I'm not sure what else I could do with it.


My boards all have a chip with a Bally label "BG&S (C) 1998 4405", "28 8751 K01 RB". Removing this
label reveals the Philips 8 bit microcontroller S87C751-4N24. A look at the data sheet reveals it's driven
via I2C, which makes sense since the reader, keypad, and display are all daisy chained. If you'd like to
check out the data sheet:


http://pdf1.alldatasheet.com/datasheet-pdf/view/15893/PHILIPS/S87C751-4N24.html


All of the boards are interfaced via a 4 pin 4P4C connector. If you're looking at the jack the pin out
is left-to-right (see photo):


+12V SCL SDA GND


I bought a logic analyzer and sniffed the I2C bus when the MC300 boots up and displays a flashing
"UNCONFIGURED" message on the screen. Attached is the capture between the MC300 and the
display. (mc300-boot.txt)


Included is a photo of my display board.

Offline foster

  • The S2000 Guru
  • Topic Moderator
  • NLG Member 251 to 500 Posts
  • *
  • Posts: 409
  • Reputation Power: 29
  • foster New User barely matters.foster New User barely matters.
  • Gender: Male
To save yourself some work I would forget about using the card reader and just interface to the kaypad and display directly

it would be easy to assign each player a user number and PIN (not recommended for arduino)
 
Depending on which Noritake itron display you have

CU20025ECPB is the Parallel version use the LiquidCrystal library for Arduino
GUxxxxx is the Serial version will need additional serial output, SoftwareSerial


The Keypad is just 12 switches in a matrix which there is a Arduino keypad library
I have the keypad layout in my arduino code and its the same for both the 3x4 and the 2x6 keypad layouts
IF you are not using the Arduino platform at least you can look at the library code to transfer it to whatever platform you are going to use

My TITO system drives the display and reads the keypad to do a legacy bonus, lock/unlock game and activate a function to read and display Coin in, Coin out meters on the Display

« Last Edit: March 07, 2014, 07:19:20 PM by foster »
Coca-Cola and Slot Machine Addict

If you find this site helpful
Please Consider Making a Donation to help defray the cost of hosting and bandwidth. OR Subscribe to NLG

Offline ANIslots

  • Sr NLG Member
  • NLG Member 101 to 250 Posts
  • *
  • Posts: 201
  • Reputation Power: 14
  • ANIslots New User has no influence.
  • Gender: Male
  • Zarobhr
To save yourself some work I would forget about using the card reader and just interface to the kaypad and display directly

it would be easy to assign each player a user number and PIN (not recommended for arduino)
 
Depending on which Noritake itron display you have

CU20025ECPB is the Parallel version use the LiquidCrystal library for Arduino
GUxxxxx is the Serial version will need additional serial output, SoftwareSerial


The Keypad is just 12 switches in a matrix which there is a Arduino keypad library
I have the keypad layout in my arduino code and its the same for both the 3x4 and the 2x6 keypad layouts
IF you are not using the Arduino platform at least you can look at the library code to transfer it to whatever platform you are going to use

My TITO system drives the display and reads the keypad to do a legacy bonus, lock/unlock game and activate a function to read and display Coin in, Coin out meters on the Display


I basically did the same as you foster, i removed the controller boards from keypad, display and card reader, and interface card reader directly to UNO and the display and keypad through a small interface i had custom made


the custom interface is compatible with a couple different displays and keypads, and plugs in where the original controller was before, cuts down on alot of wiring,


attached is a pic of the custome intrface


the front has the pc8574, jumpers to change the ic2 address, and the pins to connect ic2
the back has connectors to connect to display or keypad, on this particular one was connected to a keypad so i didnt bother to solder the display connecter or other keypad on. since you can only have one connected at a time


the plan is to ship all three on board so can just plug it to correct displat and go






Offline bhinkley

  • NLG Member 101 to 250 Posts
  • ***
  • Posts: 144
  • Reputation Power: 7
  • bhinkley New User has no influence.
  • Gender: Male
  • NLG
This sounds interesting.  I have been wanting to work with someone to get all the features working on my MC250 units all the way to the card reader for some fun.  Anyone up to the challenge?

Offline foster

  • The S2000 Guru
  • Topic Moderator
  • NLG Member 251 to 500 Posts
  • *
  • Posts: 409
  • Reputation Power: 29
  • foster New User barely matters.foster New User barely matters.
  • Gender: Male
I think part of the problem is figuring out the address bally assigned to each device
The MasterCom 250, 300 main box, keypad, display, and card reader.

I just didn't dive into it when I found out the VFD and keypad could be used with existing Arduino libraries which with some tweeking could be used for Raspberry PI or other microcontroller platforms.
Coca-Cola and Slot Machine Addict

If you find this site helpful
Please Consider Making a Donation to help defray the cost of hosting and bandwidth. OR Subscribe to NLG

Offline bhinkley

  • NLG Member 101 to 250 Posts
  • ***
  • Posts: 144
  • Reputation Power: 7
  • bhinkley New User has no influence.
  • Gender: Male
  • NLG
Foster,  did you have the Mastercom 250 manual at all?  I found it online if you would like to have more info.  It shows things like what value is sent for each command

Offline Eddiie

  • Contributing NLG Member
  • NLG Member 501 to 10,000 Posts
  • *
  • Posts: 571
  • Reputation Power: 45
  • Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...
  • Gender: Male
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #6 on: December 12, 2017, 05:13:21 PM »
Any progress on this?

I too have done some hacking on these devices and found they are I2C.
My analyzer mangles the Read / Write bit on the output and shows everything as a write, which seems odd to me.  The dump posted by Merlin looks like the same situation.. Curious to know what analyzer you used... Saleae?


Someone asked for i2c addresses of the devices:

Mastrercom 250 = 0x28 (40)
VFD  =  0x27 (39)
Card Reader = 0x1F (31)
Keypad = 0x1E (30)

Those are all the devices I have.  There are more, relay board(s), service button, order button, change button...

I am now trying to compile panalyzer for Raspberry Pi and will recapture if it works.

The addresses were found by running a I2C scanner on the Arduino with the device(s) connected and cross-referenced with what I saw in the captures.

Funny how the Mastercom 250 has an address..  It is the master.   Maybe that is the norm in a multi-master type of setup?


Why all the effort making new boards to interface with the devices?   My first thought was remove old microcontroller, install new one (with your code on it).  The existing board has the traces for power, comms, filters, power regulation, etc.   Just need to match the pinouts, or put an arduino boot loader on one that does match or the philips one that is on there, use it.  ??????

Any hints or code people can send where they've made some steps forward or discovered something new, even old, let me know.

Offline ANIslots

  • Sr NLG Member
  • NLG Member 101 to 250 Posts
  • *
  • Posts: 201
  • Reputation Power: 14
  • ANIslots New User has no influence.
  • Gender: Male
  • Zarobhr
Any progress on this?



Why all the effort making new boards to interface with the devices?   My first thought was remove old microcontroller, install new one (with your code on it).  The existing board has the traces for power, comms, filters, power regulation, etc.   Just need to match the pinouts, or put an arduino boot loader on one that does match or the philips one that is on there, use it.  ??? ???

Any hints or code people can send where they've made some steps forward or discovered something new, even old, let me know.
the reason i am making the interface is so that as time passes i can make it compatible with different player tracking keypads,displays and card readers. instead of just the bally ones


just change a jumper or 2 , remove the old interface, plug in mine, connect my ip arduino interface , and plugin and start up the sas host,
then away you go. my sas host handles all the polling and player tracking. on my test system , i just overwrote existing player cards .


play machine as normal. if you insert player card, then my sas host retrieves the card number and starts tracking the win loss, you can press * on keypad then a predetermined pin number and $500 in promo gets transfer to the machine, if card is removed unused promo gets transfered back to host, and a force cashout and ticket is printed. if you press cashout while card is inserted, all promo and winnings is transferred to host


oh course this will change, but its still in testing


Offline Eddiie

  • Contributing NLG Member
  • NLG Member 501 to 10,000 Posts
  • *
  • Posts: 571
  • Reputation Power: 45
  • Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...
  • Gender: Male
  • NLG
To save yourself some work I would forget about using the card reader and just interface to the kaypad and display directly

FWIW,
The card reader's microcontroller does a lot of the work.  It is not a simple dumb read the strip and put the bits on the bus.  After much tinkering, I found it looks for a stream of 8 or 9 numbers.
Making a simple I2C sketch, purchasing some 100+ old-school player tracking cards off ebay, ... about card 60 I finally got a result...  !  Pretty exciting to finally see something come across the bus...
The first 3 bytes are EPI protocol info (any packet has this), the address of the device (Card Reader = 3E), the other 2 are a calculation of the number of bytes in the message and the checksum.  The real data comes after the first 3.
The last byte seems to be another checksum but havent spent any time with it..   The odd thing is, not all cards would return 11 bytes, some would return 10.  Meaning the player id was up to 2 digits shorter.

Player ID on Card = 17010024195590
Byte[0] = 3E
Byte[1] = 88
Byte[2] = 40

Byte[3] = 17
Byte[4] = 1
Byte[5] = 0
Byte[6] = 24
Byte[7] = 19
Byte[8] = 55
Byte[9] = 90
Byte[10] = 48


Player ID on Card = 34513709201330
Byte[0] = 3E
Byte[1] = 88
Byte[2] = 40

Byte[3] = 34
Byte[4] = 51
Byte[5] = 37
Byte[6] = 9
Byte[7] = 20
Byte[8] = 13
Byte[9] = 30
Byte[10] = FE

Shorter Player Number - 111000519881
Byte[0] = 3E
Byte[1] = 87
Byte[2] = 41

Byte[3] = 11
Byte[4] = 10
Byte[5] = 0
Byte[6] = 51
Byte[7] = 98
Byte[8] = 81
Byte[9] = E1



Bally's EPI protocol and devices use a multi-master I2C bus, which is not typical.  I've learned so much about the EPI protocol it is insane.  Thanks to Bitpusher for his help back in the day for helping crack the packet structure and checksums for me.  It was a fun project at the time.

The Card reader I2C address (probably posted elsewhere) is
#define CARD_READER_I2C_ADDRESS      0x1f  // << 0x3e   one is master one is slave, if I recall.

It has been about year or more since I've played with these but slowly getting the desire again.   My event handler needs to be re-written, works fine with one or two devices connected but with all 3, there is a lot of hello packets between the devices and my loop is too slow,  maybe rewrite in C++.  The Arduino library is taking care of a lot of the I2C communication,  I am no programmer.   

Offline ptc559

  • New NLG Member 3 to 100 Posts
  • **
  • Posts: 18
  • Reputation Power: 1
  • ptc559 New User has no influence.
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #9 on: December 30, 2020, 05:57:55 PM »
Guys I know this is an old post but Did you ever get the Bally Mastercom 250 to work ...
-Create a new Player card
- put in vfd and enter a player PIN
- Message to say Welcome "Player Name"
- and then capture the data for future reference like points etc


I would love to have it actually capture data out put to a PC or tablet... 


Any Ideas


Offline marcdavis

  • NLG Member 101 to 250 Posts
  • ***
  • Posts: 175
  • Reputation Power: 13
  • marcdavis New User has no influence.
  • Gender: Male
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #10 on: December 30, 2020, 06:58:15 PM »
My Arduino TITO and Player Tracking project can replace the BalyComm device and do all of the things you are looking for - feel free to take a look.  https://github.com/marcrdavis/ArduinoTITO-PlayerTracking

Offline ptc559

  • New NLG Member 3 to 100 Posts
  • **
  • Posts: 18
  • Reputation Power: 1
  • ptc559 New User has no influence.
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #11 on: December 30, 2020, 07:30:14 PM »
WOW
OK I will look into it and be contacting you TY

Offline Eddiie

  • Contributing NLG Member
  • NLG Member 501 to 10,000 Posts
  • *
  • Posts: 571
  • Reputation Power: 45
  • Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...
  • Gender: Male
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #12 on: December 31, 2020, 06:41:54 PM »
My Arduino TITO and Player Tracking project can replace the BalyComm device and do all of the things you are looking for - feel free to take a look.  https://github.com/marcrdavis/ArduinoTITO-PlayerTracking

How do you prefer to be contacted?  I got no reply to an email I sent to the address noted on the project.
Do you want issues opened under the project?


Offline ptc559

  • New NLG Member 3 to 100 Posts
  • **
  • Posts: 18
  • Reputation Power: 1
  • ptc559 New User has no influence.
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #13 on: December 31, 2020, 06:53:25 PM »
Eddie Not sure if you referring to me ? I did say I will look into it ASAP


ITY

Offline Eddiie

  • Contributing NLG Member
  • NLG Member 501 to 10,000 Posts
  • *
  • Posts: 571
  • Reputation Power: 45
  • Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...Eddiie Might someday be someone...
  • Gender: Male
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #14 on: December 31, 2020, 07:00:26 PM »
haha no, I was speaking out to the author of the software.  :)

Offline marcdavis

  • NLG Member 101 to 250 Posts
  • ***
  • Posts: 175
  • Reputation Power: 13
  • marcdavis New User has no influence.
  • Gender: Male
  • NLG
Re: Driving bally player tracking display, card reader, and keypad using I2C
« Reply #15 on: January 01, 2021, 11:53:55 AM »
My Arduino TITO and Player Tracking project can replace the BalyComm device and do all of the things you are looking for - feel free to take a look.  https://github.com/marcrdavis/ArduinoTITO-PlayerTracking

How do you prefer to be contacted?  I got no reply to an email I sent to the address noted on the project.
Do you want issues opened under the project?


Hi - did not see any direct message - may have gone to junk by mistake. I did get the messages through github though.


 

Cell Phone and Pad Mode

imode wap wap2

NLG Archives

Archives @ newlifegames.net Wayback Machine

Contact Us

NLG Shop 928 754-4147 Email Us 1788 Highway 95 30 BHC City AZ 86442
If you find this site helpful, please consider becoming a Contributing NLG Member with a monthly subscription to help cover the cost of pizza, coffee, aspirin, hosting, and bandwidth.
Contributing Members: get unlimited personal messages, can save topics and replies as drafts,
can post to the Classified ads, get unlimited access to the downloads, and also get this minty badge:



**Subscription Link** (Click Here) **Subscription Link**



           
If you would rather remain anonymous Thank You or just want to help support the site, please use this "make a donation" button:




From your entire NLG staff, thank you for supporting NLG.


New Life Games LLC 1788 HIGHWAY 95 UNIT 30 BULLHEAD CITY AZ 86442




Newlifegames.com     Newlifegames.net     Newlifegames.org

Newlifegame.com     Newlifegame.net     Newlifegame.org    Newlifegames.us

   New Life Games     NewLifeGames  NLG

 We Bring new Life to old Games    1-888-NLG-SLOTS

Are all Copyright and Trademarks of New Life Games LLC 1992 - 2022


FAIR USE NOTICE:



This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner.
We make such material available in an effort to advance awareness and understanding of the issues involved.
We believe this constitutes a fair use of any such copyrighted material as provided for in section 107 of the US Copyright Law.
In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit to those
who have expressed a prior interest in receiving the included information for research and educational purposes.

For more information please visit: http://www.law.cornell.edu/uscode/17/107.shtml
If you wish to use copyrighted material from this site for purposes of your own that go beyond fair use,
you must obtain permission directly from the copyright owner.




The NewLifeGames.com website is optimized for use with Firefox and a minimum screen resolution of 1600 x 900 pixels.

SimplePortal 2.3.5 © 2008-2012, SimplePortal