Pinball Clock [180307-1]
Shows time and date and even plays a simple pinball game on your computer or mobile device via WiFi!
Vintage displays always attract attention, not only because they look nice. In this project they also make noise, so passage of time will not stay unnoticed…
Elektor presented numerous projects with old displays like Nixies, Numitrons and VFD tubes, but until now we only had one thermometer project that used electromechanical (EM) pinball score reels units, and a remake of this device with a pinball credit reel unit to display temperature. About time for a follow-up, let’s make a clock with score reels this time. Not exactly the most original application for recycling old displays, but it is one with the highest practical value and WAF (until it’s 12 o’clock…. But we will discuss that later).
To honour the displays’ original application, there’s even a simple pinball machine inside that can be played on your computer or mobile device and uses the reels where they were designed and intended for: score keeping!
There are many pinball clock designs to be found on the internet, but as far as we know this will be one of the more sophisticated and anachronistic designs thus far, with an ESP8266 connecting the clock via WiFi to the internet for time and date synchronization. All settings of the clock can be accessed and adjusted via WiFi (smartphone, tablet or PC). Time and date can also be set manually and a battery-backed DS3231 Real Time Clock IC will keep track of the time with 5ppm accuracy, even with the power switched off.
You can set a daily (or should we say: nightly) interval during which the clock will be silenced, the score reels and chimes will not be active then. Alternatively, you can switch the display on and off manually (or pull the power plug, of course).
During normal operation time will be displayed either in 12 or 24 hours format, and it shows the date (either in normal or US format) every 30 minutes.
Most pinball machines built from the mid 50’s until mid 70’s of the last century relied on electromechanical score reels (AKA score drums) for displaying a player’s score. The operating principle hasn’t changed much over the years: a short pulse is applied to a coil, which causes the reel to increment one step for every pulse. A switch detects the reel’s zero position, allowing the pinball machine to reset the score to zero when a new game is started.
In real life things are a bit more complicated, there are other switches on a score reel unit, for example a contact that signals if the reel has completed its step, one that closes in position ‘9’ (carry to higher decade), and some reels can even register every digit position for free play scores and the so-called ‘match’ feature. But we don’t use these contacts in our project, the coil and zero switch are the only electrical parts of interest for the clock.
There was one important change in design of score reels: the diameter of the drums was reduced from 5” until the early 60’s, to 4” and even later to 3”. The inertia of the larger counters limited the timing of score handling, smaller reels could easier keep up with faster gameplay. That’s one of the reasons why older pinball machines sound slower, less ‘snappy’ than more recent models. To mimic the pace and sound of the real pinball machine (i.e. the real games where the reels were designed for), our clock display can also be adjusted to the size of the score drums.
Pinball score drums can only be incremented, which for instance means that a reel at position ‘1’ can only be reset to ‘0’ by pulsing it nine times. Needless to say that this will definitely be the noisiest clock ever presented in Elektor. To be absolutely sure of that, and for the real ‘pinheads’ amongst us: an optional three tone electromechanical pinball chime can be connected to strike quarter, half and full hours.
The latter feature could be the most expensive part to add to the clock, since these chimes are becoming increasingly difficult to find and –in other words- more and more expensive. Alternatively, you can use a single bell from an older pinball machine.
Coils in electromechanical pinball machines are AC powered, with the exception of the flippers and so-called pop bumpers in later models. In brief, AC-coils can also be DC-operated, but at a lower voltage than their AC rating. Please note that this document is about permanently powering AC-relays with DC. In this clock and in pinball machines (most) solenoids are only powered with short pulses, so it’s very unlikely that the coils will overheat. This could only happen when a coil is permanently energised if the clock is malfunctioning, in that case a fuse will blow and cut the current before the coil fries. In real pinball life, a stuck-closed score switch will result in an evil smelling, burnt score reel coil that blows the 10A+ fuse when the windings’ isolation is melted and the coil is turned into a solid short-circuit, these coils where never designed to be permanently powered!
With the exception of early Williams games (before 1963: 50VAC), the coil voltage of both Williams and Gotllieb pinball machines was 28VAC during the EM age, all Bally EM games used 50VAC. All score drums will work fine on approx. 35VDC, although a lower voltage (+/- 20VDC) will also do for Gottlieb and Williams.
The schematic of the pinball clock (see Figure 1) isn’t too complicated, but let’s explain all sections in more detail anyway.
Power supply
The power supply of our clock is rather straight-forward. A 2 x 12VAC toroidal transformer (secondary windings in series) is connected to K4, resulting in a +/- 32VDC coil voltage at the positive terminal of the bridge rectifier D1..D4. That is… in theory, in practice the unloaded transformer will have a much higher output voltage, resulting in a coil voltage of more than 35VDC. If you have Willams or Gotllieb score reels, a 2 x 9V transformer will do too.
IC1 is a LM2576 stepdown converter that supplies the 3.3V for the digital section of the hardware for the pinball clock. To be on the safe side, we used a HV version with a maximum input voltage of 60V, ‘normal’ LM2576s have an absolute maximum rating of 40V at the input. LED1 will light when the 3.3V power supply is switched on.
One note about the electrolytic capacitor C1, one of the few through-hole electronic components in this project, that may look a bit odd on the PCB, but this was a deliberate choice. First of all: it’s difficult –if not impossible- to find a big SMD electrolytic capacitor with a voltage rating of more than 35V, through hole versions are much easier to find. On top of that, for the sake of mechanical stability a through-hole capacitor is to be preferred and (most important!) readily available with maximum voltage rating of 50V (or even higher).
The coils of the score reels and chimes are controlled with NTF3055 N-channel MOSFETs, which have a sufficiently low Vth to reliably pulse the coils with 3.3V logic outputs. In our first prototype these FETs were directly controlled by the ESP8266’s GPIO-pins. This proved to be a bad choice: the ESP8266 doesn’t have many IO’s and some of them have special functions during power up, making it very tricky to keep the coils completely switched off during startup. IC3, an MCP2300 I2C I/O expander, made the hardware a lot easier to control and it also offers a kind of protection/buffering between the ESP and the power FETs.
In the first design the four zero-switches were connected to the ESP’s ADC to save IO pins. Although this ADC is not really accurate, this solution proved to be reliable enough to keep it this way. The ESP will only detect a change in ADC value in this application, it can only determine if a zero switch opens after the coil of a score reel is pulsed, i.e. when this reel has reached its zero position. This means that during a complete reset all reels will turn, even if they were already at position zero.
A 1k2 resistor must be soldered across all four ‘zero’ switches (see Figure 2), all these switches in series connected to K3.
If there is no change in ADC value after 12 subsequent pulses on one reel, FAULT LED2 will light and pulsing this particular coil will be suspended until the clock is reset, but first check the zero switches and their wiring before you do so. This feature is not only implemented to protect your nerves, but also to protect the coil from heating up by being pulsed to reach a zero-position that will never register.
An I2C OLED display can be connected to K6 to display clock status information of the clock. This connector can also be used for future developments, like adding an I2C temperature sensor.
S2 is the reset push button, if you keep S1 depressed until S2 is released, the ESP8266 will start in bootloader mode, enabling the user to reprogram the clock via UART connector K1. S2 can also revert the clock to default (factory) settings, this can be useful if the clock is to be connected to a different WiFi network. To do so, reset the clock and press S1 while the red FAULT LED is lit.
IC2 is the highly accurate (only 5 p.p.m!) DS3231 I2C Real Time Clock, a CR2032 coin cell battery will keep the correct time even when the pinball clock is switched off. This means that you don’t have to adjust the clock manually every time after power up if it isn’t synchronized via NTP.
Building the pinball clock
First you’ll need four score reels, be sure you have them before you buy any other hardware for this project. Three-tone chimes, or maybe a single pinball bell would be a bonus, but these are not absolutely necessary to build the clock and even if you have them: chances are that you will disconnect very soon them to keep the noise down.
Although most parts on the PCB are SMDs, soldering will not be too difficult if you use a small soldering iron and thin (preferably <1mm) soldering wire. Solder one pad of each component first and check if all other connections are well aligned with the PCB and double-check the orientation/polarity of the semiconductor parts and electrolytic capacitors before you solder the other pads.
Clean the score drums and do not forget to install a 1N4007 (or equivalent) freewheel diode on all coils, the same goes for the optional chime solenoid(s). Connect the coil tabs at the cathodes of the diodes to the V+ connection on the PCB (at K2 for the reels, K5 for the chimes). The other side of the rightmost score drum (minutes) coil must be wired to RL1, the second (ten minutes coil) to RL2 on K2 and so on, the highest note of the chimes to CH1 on K5 etc.
The resistors for score reel zero detection will be soldered directly to the tabs of the zero position switches of the score drum units. After that these switches must be daisy-chained and the ends of this chain are wired to K3.
Elektor presented numerous projects with old displays like Nixies, Numitrons and VFD tubes, but until now we only had one thermometer project that used electromechanical (EM) pinball score reels units, and a remake of this device with a pinball credit reel unit to display temperature. About time for a follow-up, let’s make a clock with score reels this time. Not exactly the most original application for recycling old displays, but it is one with the highest practical value and WAF (until it’s 12 o’clock…. But we will discuss that later).
To honour the displays’ original application, there’s even a simple pinball machine inside that can be played on your computer or mobile device and uses the reels where they were designed and intended for: score keeping!
There are many pinball clock designs to be found on the internet, but as far as we know this will be one of the more sophisticated and anachronistic designs thus far, with an ESP8266 connecting the clock via WiFi to the internet for time and date synchronization. All settings of the clock can be accessed and adjusted via WiFi (smartphone, tablet or PC). Time and date can also be set manually and a battery-backed DS3231 Real Time Clock IC will keep track of the time with 5ppm accuracy, even with the power switched off.
You can set a daily (or should we say: nightly) interval during which the clock will be silenced, the score reels and chimes will not be active then. Alternatively, you can switch the display on and off manually (or pull the power plug, of course).
During normal operation time will be displayed either in 12 or 24 hours format, and it shows the date (either in normal or US format) every 30 minutes.
Most pinball machines built from the mid 50’s until mid 70’s of the last century relied on electromechanical score reels (AKA score drums) for displaying a player’s score. The operating principle hasn’t changed much over the years: a short pulse is applied to a coil, which causes the reel to increment one step for every pulse. A switch detects the reel’s zero position, allowing the pinball machine to reset the score to zero when a new game is started.
In real life things are a bit more complicated, there are other switches on a score reel unit, for example a contact that signals if the reel has completed its step, one that closes in position ‘9’ (carry to higher decade), and some reels can even register every digit position for free play scores and the so-called ‘match’ feature. But we don’t use these contacts in our project, the coil and zero switch are the only electrical parts of interest for the clock.
There was one important change in design of score reels: the diameter of the drums was reduced from 5” until the early 60’s, to 4” and even later to 3”. The inertia of the larger counters limited the timing of score handling, smaller reels could easier keep up with faster gameplay. That’s one of the reasons why older pinball machines sound slower, less ‘snappy’ than more recent models. To mimic the pace and sound of the real pinball machine (i.e. the real games where the reels were designed for), our clock display can also be adjusted to the size of the score drums.
Pinball score drums can only be incremented, which for instance means that a reel at position ‘1’ can only be reset to ‘0’ by pulsing it nine times. Needless to say that this will definitely be the noisiest clock ever presented in Elektor. To be absolutely sure of that, and for the real ‘pinheads’ amongst us: an optional three tone electromechanical pinball chime can be connected to strike quarter, half and full hours.
The latter feature could be the most expensive part to add to the clock, since these chimes are becoming increasingly difficult to find and –in other words- more and more expensive. Alternatively, you can use a single bell from an older pinball machine.
Coils in electromechanical pinball machines are AC powered, with the exception of the flippers and so-called pop bumpers in later models. In brief, AC-coils can also be DC-operated, but at a lower voltage than their AC rating. Please note that this document is about permanently powering AC-relays with DC. In this clock and in pinball machines (most) solenoids are only powered with short pulses, so it’s very unlikely that the coils will overheat. This could only happen when a coil is permanently energised if the clock is malfunctioning, in that case a fuse will blow and cut the current before the coil fries. In real pinball life, a stuck-closed score switch will result in an evil smelling, burnt score reel coil that blows the 10A+ fuse when the windings’ isolation is melted and the coil is turned into a solid short-circuit, these coils where never designed to be permanently powered!
With the exception of early Williams games (before 1963: 50VAC), the coil voltage of both Williams and Gotllieb pinball machines was 28VAC during the EM age, all Bally EM games used 50VAC. All score drums will work fine on approx. 35VDC, although a lower voltage (+/- 20VDC) will also do for Gottlieb and Williams.
The schematic of the pinball clock (see Figure 1) isn’t too complicated, but let’s explain all sections in more detail anyway.
Power supply
The power supply of our clock is rather straight-forward. A 2 x 12VAC toroidal transformer (secondary windings in series) is connected to K4, resulting in a +/- 32VDC coil voltage at the positive terminal of the bridge rectifier D1..D4. That is… in theory, in practice the unloaded transformer will have a much higher output voltage, resulting in a coil voltage of more than 35VDC. If you have Willams or Gotllieb score reels, a 2 x 9V transformer will do too.
IC1 is a LM2576 stepdown converter that supplies the 3.3V for the digital section of the hardware for the pinball clock. To be on the safe side, we used a HV version with a maximum input voltage of 60V, ‘normal’ LM2576s have an absolute maximum rating of 40V at the input. LED1 will light when the 3.3V power supply is switched on.
One note about the electrolytic capacitor C1, one of the few through-hole electronic components in this project, that may look a bit odd on the PCB, but this was a deliberate choice. First of all: it’s difficult –if not impossible- to find a big SMD electrolytic capacitor with a voltage rating of more than 35V, through hole versions are much easier to find. On top of that, for the sake of mechanical stability a through-hole capacitor is to be preferred and (most important!) readily available with maximum voltage rating of 50V (or even higher).
The coils of the score reels and chimes are controlled with NTF3055 N-channel MOSFETs, which have a sufficiently low Vth to reliably pulse the coils with 3.3V logic outputs. In our first prototype these FETs were directly controlled by the ESP8266’s GPIO-pins. This proved to be a bad choice: the ESP8266 doesn’t have many IO’s and some of them have special functions during power up, making it very tricky to keep the coils completely switched off during startup. IC3, an MCP2300 I2C I/O expander, made the hardware a lot easier to control and it also offers a kind of protection/buffering between the ESP and the power FETs.
In the first design the four zero-switches were connected to the ESP’s ADC to save IO pins. Although this ADC is not really accurate, this solution proved to be reliable enough to keep it this way. The ESP will only detect a change in ADC value in this application, it can only determine if a zero switch opens after the coil of a score reel is pulsed, i.e. when this reel has reached its zero position. This means that during a complete reset all reels will turn, even if they were already at position zero.
A 1k2 resistor must be soldered across all four ‘zero’ switches (see Figure 2), all these switches in series connected to K3.
If there is no change in ADC value after 12 subsequent pulses on one reel, FAULT LED2 will light and pulsing this particular coil will be suspended until the clock is reset, but first check the zero switches and their wiring before you do so. This feature is not only implemented to protect your nerves, but also to protect the coil from heating up by being pulsed to reach a zero-position that will never register.
An I2C OLED display can be connected to K6 to display clock status information of the clock. This connector can also be used for future developments, like adding an I2C temperature sensor.
S2 is the reset push button, if you keep S1 depressed until S2 is released, the ESP8266 will start in bootloader mode, enabling the user to reprogram the clock via UART connector K1. S2 can also revert the clock to default (factory) settings, this can be useful if the clock is to be connected to a different WiFi network. To do so, reset the clock and press S1 while the red FAULT LED is lit.
IC2 is the highly accurate (only 5 p.p.m!) DS3231 I2C Real Time Clock, a CR2032 coin cell battery will keep the correct time even when the pinball clock is switched off. This means that you don’t have to adjust the clock manually every time after power up if it isn’t synchronized via NTP.
Building the pinball clock
First you’ll need four score reels, be sure you have them before you buy any other hardware for this project. Three-tone chimes, or maybe a single pinball bell would be a bonus, but these are not absolutely necessary to build the clock and even if you have them: chances are that you will disconnect very soon them to keep the noise down.
Although most parts on the PCB are SMDs, soldering will not be too difficult if you use a small soldering iron and thin (preferably <1mm) soldering wire. Solder one pad of each component first and check if all other connections are well aligned with the PCB and double-check the orientation/polarity of the semiconductor parts and electrolytic capacitors before you solder the other pads.
Clean the score drums and do not forget to install a 1N4007 (or equivalent) freewheel diode on all coils, the same goes for the optional chime solenoid(s). Connect the coil tabs at the cathodes of the diodes to the V+ connection on the PCB (at K2 for the reels, K5 for the chimes). The other side of the rightmost score drum (minutes) coil must be wired to RL1, the second (ten minutes coil) to RL2 on K2 and so on, the highest note of the chimes to CH1 on K5 etc.
The resistors for score reel zero detection will be soldered directly to the tabs of the zero position switches of the score drum units. After that these switches must be daisy-chained and the ends of this chain are wired to K3.
Discussion (11 comments)