Sunday, March 13, 2016

Pinball electronics


I finally started on the hardware design. This will make it easer to start testing playfield parts.

The pinball will be driven by the following parts:

- A custom designed pinball IO board. This controls 8 coils and reads 16 inputs.It can control 2 led chains.  It is connected with an 100baseT Ethernet port. A firepower based pinball will use 3 or 4 boards, depending on design.

- A Raspberry Pie as central pinball controller. Alternative the custom IO board can play the pinball controller.

- Ethernet switch to connect it all.

- A 12V power supply to feed the LEDs and electronics

- A 24v or 48v  power supply for the coils.

- 7 segments units for score and ball counters.

Except for the IO board are all other of the shelf parts.

The first version will have simple 7 segment number displays for scores. Later on I like to add a LED matrix display.


Pinball IO controller

The pinball controller will have the following interfaces:

- 100 BaseT Ethernet interface

- 8x high current coil driver outputs with overcurrent protection.

- 16 inputs, working both at 5v and 12v

- 2x ws2812B led chain outputs

- Some digital IO to control stepper motor driver or other electronics.

- 2x servo outputs.

- Cpu program header.

- power connectors.

- if PCB space allows: 2 analog outputs

- Also pcb space depending : mini usb-b connector and micro Sd card connector.

To feed the ws2812b LEDs the IO board will need to have a switch mode power supply to generate 5v from 12v. The board will have a glass fuse for the coil , and PTC fuses for the rest.

The board is quite generic, and can be used for other purposes besides driving a pinball machine.

Design choices


There are not many low end ARM processors that have an Ethernet interface.  Initially the NXP LPC1759  was a good candidate, but it already some years old.  The ST  STM32F407VGT6  is a more modern chip with more ram and faster cpu. The 100QFP package has enough IO pins, so can interface with all the IO’s directly.

The issue is that all the IO pins of the CPU have about 5 functions. So it will be a puzzle how to connect them up.

Because of the Ethernet phy clock requirement, the cpu has to run on 25Mhz.  To reduce any risk I selected a crystal oscillator for this. They are the size of a grain of salt in:3225metric or 3mm long and 2mm wide.

Ethernet PHY

I was searching for an Ethernet phy with a PLL. It seems that the only types available all have a QFN package. This leadless package is a bit tricky to use. Even worse it has an exposed pad that also need soldering.  You really need to  work with a paste stencil and reflow oven to use them. Settled for a LAN8720 .  Both mechanical as electrical. IT is supplied with 25,hz from the CPU, and the phy PLL creates the 50mhz needed for the RMII interface. This part will be the most critical part of the whole design.

The rj45 connector has an integrated common mode coil and transformer.


Used here a super standard switch mode chip: LM2596S-ADJ. This device is used on 1000’s of designs. It will create 5v at max 3A. The 3.3v rails for cpu and phy are using a LM1117 LDO linear regulator from 5v rail.

Coil driver

Tons of fet available for this. Selected the same transistor as used the Medieval Madness Remade (MMR) electronics only in SMD version: the IRF3710ZS. These N channel Fets have impressive characterises for their price: 100V rating at 59A with a resistance of 18mohm.  You can get lower resistance versions, but the price rises. Also the transistor is not switched on all the time. At 10A continues they only dissipate 1.8watt.

The n channel fet needs to be driven to saturation. To do this the gate has to be above 8v. A dedicated driver is easier to use, and I selected a dual channel low end driver IR4427S. This so8 device can drive 2 fets, so there will be 4 present to drive the 8 fets.

A 0.01 resistor is used to sense the current through the transistor, monitored by the CPU.


For all low current connections the family of Kf2510 connectors is used. A 3 pins version for each of the digital switch input. This connectors has a latch function that prevents the connector falling out. Sadly it is a through hole part, so can’t be reflow soldered.

For the higher current connections the family of  Vh3.96 connectors is selected. also these are lockable. The coil outputs are 2 pins.


Most parts are sourced from Aliexpress. I really hope that there will be no fake chips send, particularly for the CPU.


I am using Kicad as PCB design tool. A very nice tool with extensive PCB footprint library. Sadly the BOM part of the program is not implemented very will, but no complains. It is free.

A common and thus cost effective size for the PCB is 10 by 10 cm for double sided board. I would have preferred a longer and smaller board, but that would increase the costs a quite lot. To much for a prototype.

On this moment still drawing the schematics and need to finalise the cpu pin selection.

No comments:

Post a Comment