Monthly Archives: November 2012

Layout completed for display project

Mark and I have been working hard on finishing up the display project layout.

The list of changes include the following:  move the silkscreen positions so populating the board is easier, finished adding the power connectors in the current version, moved all of the connectors to the back because the Williams connectors only have contacts on one side, connectors for the i2c bus were changed to right angle connectors to reduce height  (straight connectors were too close to the backglass), added extra clearance for mounting hardware, added silkscreen for connector cutouts, and added silkscreen/copper for revision of the board/assembly.

If you need to grab the newest version of the board and you already followed the directions in the last post on how to grab the board, you simply right click on the directory that you downloaded before and choose SVN Update.  That will grab the latest and the greatest.

The goal is to send this board out to be fabricated this week.  I will also try to update the parts in the board so that a BOM (bill of materials) can be generated in Kicad.  Right now, all the information is in my notebook, but hasn’t been transferred to the parts.  This will allow me to get a final cost on the board.  If you have any questions, feel free to send me an email.


Initial layout for display board

!!! Warning !!!:  The current version of the display driver board is untested.  While I think they will work, Mark and I will be reviewing them this week, and I would not try to build this project until we build the first version.  I’m hoping to send the boards out at the end of this week.   At that time, I should have a good idea of the final cost.  My estimates at this point are under $120 for a full replacement (4 player scores, and the master display) of a Williams system 3-6 display system.

The four player scores, and the master display all use the same board.  Since ordering 5×20 cm boards from ITeadStudio gives you five boards in an order this is perfect.  The player score boards do not populate the microprocessor, or the muxes.  The master display populates these components, but doesn’t populate one of the i2c register chips since the board has four instead of six displays on it.  This keeps the cost to a minimum, and only requires a little bit more programming in the microprocessor.

The code will constantly poll the strobe signals.  Since there are a lot of strobes (more than can be simply attached to pins in the processor), the strobes are muxed into two different groups.  When polling the strobe signals, it first looks at one group of strobes, then another group of strobes.  If it finds that a strobe signal is active, it polls that bank sixteen more times to makes sure that it isn’t a glitch.  At that point, it reads the two BCD nibbles.  We measured a strobe width of about 1 ms on Williams yellow PROMs.  The reading multiple times gives us a simple digital filter and reduces the need of filtering on these input pins.

The player displays use sixteen bit i2c registers for driving the LCDs.  Each sixteen bit register controls two digits on the display.  That means there are three register chips on the player scores, while only two on the master display since there are only credits and ball count.  That gives a total of fourteen register chips for a whole set of boards.  The register chip addresses are chosen using jumpers on each of the boards.  There is also a jumper to pick if it is a player score display or the master display.

Once a new BCD digit is read, it compares it to the current value that it is displaying.   If there is a change, the processor sends the new value across the i2c bus and updates the correct display.  The processor does the conversion from BCD to the register outputs.

The only other part of the design is using a low dropout voltage regulator to control the brightness of the displays.  This is done once for all of the displays with the master display board generating the voltage for all the cards.

The open pinball project is in a subversion repository in Google code.  The easiest way to grab it is to grab a copy of tortoiseSVN (a free windows GUI client for subversion, there are also versions for linux/Mac)  Install that program, and then create a folder where you want to have the open pinball project files stored.   Right click on the folder, choose SVN Checkout… from the menu.  This will bring up a window, and the address of the repository is  The display driver files are under the Kicad/1008-DispDrv directory.  It should have everything that you need.

Mark and I will review the schematic this week and hopefully send it out to get built.  This should be a very good solution if you need to replace all your Williams display boards.