Monthly Archives: August 2014

Incandescent Driver boards, 8/23/2014

So as I’m typing this, the incandescent driver boards are finished.  Of course, since I can’t bear to waste an inch of PCB, I’ve also started working on the next generation of driver boards.

I’ve decided to start working on the next generation of boards.  This is solely based on the fact that I have extra PCB area.  The incandescent driver boards are 2.5 cm x 5 cm.  The PCB house I use sells 10 cm x 10 cm boards.  That leaves 5 cm x 10 cm of board space.  That happens to be just enough space for the next generation driver design.

Here are the list of improvements:

  • Completely open source solution.  The next generation will switch from the HCS08 processor to the an ARM based processor.  This allows to switch from Freescale’s CodeWarrior, to CooCox and the CoIDE which are both free and open source.
  • The first generation required an $80 debugger to program the bootloader in the processor the first time.  After that, code could be updated using the serial port and the boot loader.  The fact that the debugger is required, makes the first generation more expensive for people trying to independently create a pinball machine.  The next generation contains the debugger on the development board.  There is also an embedded bootloader, so if creating cards from scratch to make them cheaper, that bootloader can be used.
  • The HCS08 in the first version used a DIP package for the processor.  That package for the processor is end of life, so the cards would have to be laid out again.  That would involve switching from DIP packages to surface mount packages which would make home assembly more difficult.
  • The next generation uses a standard off the shelf development board.  The solenoid driver/input driver boards mount to the development board using the breakout header pins.  All soldering remains through-hole components to make it easy for hobbyists.
  • The first generation cards were either solenoid drivers or input cards.  The next generation allows the cards to be either input or solenoid drivers, or a mixture by populating the boards differently.  Since there are less different cards, a single order of 10 cm x 10 cm PCBs can build two complete pinball machines.
  • The next generation of boards have switched from 5V processors to 3.3V processors.  Previously a voltage conversion needed to take place between the solenoids drivers/input drivers and the Raspberry Pi.  Now that everything is running at 3.3V, that converter can be removed.  This makes interfacing between those two cards, that much easier.

So, I don’t really have time to write the firmware for the next generation of cards.  I’ve done minimal amounts of work getting interrupts working on the ARM processor, and blinking LEDs.  I started looking at doing the bootloader, but it would take about a full month of work to get everything up and running.  While it would be fun to do that, I’m busy getting the rest of the framework done.

That put everything on hold for a while, but then, suddenly a couple weeks ago somebody approached me to help with the Open Pinball Project.  This seemed like a natural fit to have him work on the next generation.  He has some Arduino experience, but we will see if he can show production quality firmware.

There are other things that are happening too, but there isn’t enough time for me to do all the updates this evening.


8/12/2014, Promised video of first flips

Not much to add from yesterday, but did a short video last night with the driver boards kicking all the solenoids.  Link is at:

Well, at least Joe will watch it.  (Enjoy Joe!  Hopefully your layout is coming along.)

Progress 8/10/2014, Popping MOSFETS like Jiffy Pop Popcorn…and more.

[Week ago information that wasn’t posted]  Title pretty much says it all.  I got around to testing some of the MOSFETs that I was using with the flippers.  If the flippers are only around 1.2 ohms, and I throw 48V across them, it gives me about 40A of current (worst case, ignoring increases in resistance due to heat).  Needless to say, a 12A MOSFET doesn’t last very long at that point.

I tossed the flippers onto another channel on the solenoid driver (oops, it was one that I had set as a really strong kick), and of course popped another FET after about a minute of flipping.  I had already dropped the voltage down to 24V (since the power supply outputs it), but it was still a little bit too much current.  I had cheaped out on the FETs that I bought which is fine for all of the channels except for the flippers.  Those channels really need an IRL540N that can handle 26A continuously at 100C.  The funny part is that it would have worked on a newer pinball machine since the current is lower.  I may cobble something together so that I can keep moving, and I still have a good amount of wiring to do to get all the solenoids firing automatically.

Spent the time today to tighten up the rotisserie.  It is now much more stable, and an absolute pleasure.  I added foam beneath the playfield so that it couldn’t short to the rails.  The foam also raises the playfield enough so that the electrical components don’t touch the rail.

[New information]  Of course I wrote the previous stuff a week ago and never posted it.  Ordered the heftier FETs and got them in on Saturday.  Wired all of the ground connections to both the switches and the switches on the solenoids.  It took a couple hours but one of the kids helped me.  Eight year old children are able to cut wires to length, strip them, and do small amounts of soldering.  The nice part was that it only left about 30 minutes of wiring for today to get all of the solenoids working.  That happened before the end of the night, flipped the pinball machine around on the rotisserie, and there was a functional pinball machine.  Right before bed the kid tossed around the ball to fire all the solenoids.  There might have been an aha moment realizing that the wiring work brought the machine back from the dead.

So what do I have right now?  A powered pinball machine that the playfield layout can be tested.  The solenoids drivers are configured to drive the solenoids properly so no coding is necessary to get that to happen.  The goal of being able to test the layout without needing to program the machine has been achieved.  There are no rules, no switches that don’t attach to a solenoid, and no feature lights.  I have two GI light bulbs wired, which is used to tell if the machine is on/off.  Right now the drop targets aren’t working because I need to fix the broken targets, and wire those switches.  When the game is finished, the main processor will reset the drop targets, but right now, I have a separate switch to do it.  I still need to wire all the normal switches.  The feature lights I’m building another board so I can support the incandescent bulbs.  That is probably the long lead item at this point since it takes about 4 weeks to get the cards.

Video.  Yeah, words are great, but a video is the only proof that it is actually working.  I will probably try and get something together Monday night.   The flipper buttons are just hanging in mid-air at this point, so I need something a little better for them.

I also want to do some measurements on currents drawn etc.  I can’t find any truly good resources on the web about what the current curves should look like for flippers, pop bumpers, etc.  There are a couple sites which list resistances, but I don’t know the inductance.  I soldered up a current sense resistor, and I have a oscilloscope, so I should be able to get the information relatively easily and post it.