Monthly Archives: August 2016

8/14/2016: Cost Smackdown – OPP vs Fast vs P-ROC

I’ll try to make this as factual based as possible.  I originally did the above style article comparing the original boards with P-ROC.  (I’m not sure that Fast existed at that point.)  Here is a link to the old article that still gets a good number of hits.  P-ROC versus open pinball project solution.

Here is the current state of affairs.  I’m going to try and be as fair in my assessment as possible, but I’m sure I will tend towards the stuff that I designed because, well, I would have designed it differently if I thought there was a better way.  The OPP hardware is based on the fact that I wanted the absolutely lowest price.  I tend to buy machines that other people have cast off and decided were unsalvageable.  Because of this, I don’t want to spend a ton on a controller.  Pinball is a hobby for me, and I personally don’t want to spend a large amount of money on something that is a hobby.  I do it for fun, and not for any personal gain.  The only money that I’ve ever made back from pinball is by getting free entrance to Pintastic for the weekend, and when I give a talk, I tend to hand out more free stuff than the value of the multiple day pass.

OPP board prices can be found in Gen2Board.pdf.  For basis of this comparison, I’m using the following costs for each OPP board:

  • PSOC4200 – processor board – $4.25
  • Solenoid Wing – 4 solenoids/4 inputs – $4.22
  • Input Wing – 8 direct inputs, just a connector – $0.29
  • Interface board – includes 40 pin header for attaching boards – $3.06
  • Incandescent through-hole board – 8 incandescent/LED bulbs – $2.37
  • Incandescent SM Low side driver – 8 incandescent/LED bulbs – $1.78
  • Incandescent SM high side driver – combined with above to form light matrix – $2.20

Let’s first go though all the available cards from each of the manufacturers and see how they stack up.  I’ll go in alphabetical order to be fair, so Fast is the first one.


Fast pinball has the following controllers:  they have controllers called Fast I/O 0804, Fast I/O 1616, Fast I/O 3208.  The first two digits is the number of inputs, and the second two digits is the number solenoids.  For examples, Fast I/O 0804 has 8 inputs and 4 solenoids.

0804:  The closest board that OPP could simulate to this one is a 1204.  That would contain a PSOC 4200, interface board, 1 solenoid wing board, and 1 input connector.  The Fast board costs $59.  The OPP setup would cost $11.82 and has an extra 4 inputs.

1616:  That’s a full up OPP board with 4 solenoid wing boards and interface card.  100% match.  The Fast board costs $159.  The OPP board costs $24.19.

3208:  OPP can’t quite match this, but the closes would be is a 2408.  That would contain a PSOC 4200, interface board, 2 solenoid wing boards, and 2 input connectors.  The Fast board costs $159, the OPP board costs $16.33.

One big hole I see in the Fast stuff is that I don’t see anything that you can easily drive incandescent/LED bulbs and flashers.  Yeah, you could use regular drivers, but that is really, really expensive.  Sure, Fast has RGB LEDs, but I would probably use a FadeCandy board to control such things.  Seems like a hole.

Their Fast RGB/LED insert product is interesting. It would make mounting really simple.  The downside is that you still need to solder three wires to each pixel.  That would get tiring really quickly.


Multimorphic or Pinball Controllers have the following boards:  PD-16 (16 solenoids/16 inputs), PD-8×8 (8×8 lamp matrix), and SW-16 (16 inputs board).

PD-16:  This is equivalent to the Fast 1616 board.  Multimorphic charges $100 for the board, and the OPP equivalent was $24.19.  The price on this board is not actually too bad.  The only problem is really that I don’t like the density of it.  I don’t have any spots in my machine where I have 16 solenoids in one group.  Maybe if I had a newer machine with more features, this board would make a lot of sense.

PD-8×8:  8×8 lamp matrix.  Gerry argues that switch matrices don’t make any sense, but then sells a lamp matrix.  (Yeah, a lamp matrix is easier to debug).  So doing a lamp matrix with OPP boards requires a PSOC 4200, interface board, high side incandescent driver, and low side incandescent driver board.  Multimorphic charges $100 for the board, and the OPP equivalent costs $11.29.

SW-16: Simple 16 input board.  This is equivalent to a PSOC 4200, interface board, and 2 input connectors.  Multimorphic charges $60 for the board, and the OPP equivalent costs $7.89.

OK.  None of this stuff is an apples to apples comparison.  The OPP boards, you have to solder them yourself.  Each board takes 5 to 8 minutes to solder, so that is a major pain in the butt.  I accept that.

Many of the OPP boards that I’ve quoted above have extra wing board positions.  (Each processor board supports up to 4 wing boards and the interface board does not count).  The processor and interface board are already built into the prices, so with the extra positions you can add even more functionality.  That’s another big difference.  The OPP boards are much more modular by design.  I tend to put the boards that I need where they need to be.  That means my wiring is really, really short.  My wiring is very easy to diagnose, because most of my wires are less than 8 inches in length.  Put a board where it makes sense, not where it is required because the boards force you to make inconvenient decisions.

Both the PROC system, and Fast system require a RS485 interface board which adds another $5.  This is the best case scenario assuming that you don’t need a USB to serial port converter because that adds yet another board.  If using something like a Raspberry Pi, you can simply use the output of the embedded serial port straight into the RS-485 interface board.  The PSOC4200 prototype board comes with a USB to serial connector, so that interface is already built the system.

Let’s move on to some real world examples.  These include SharpeShooter3 (early 80s solid state pinball machine), Jokerz (late 80s DMD alphanumeric displays), and The Addams Family (just because everybody knows this machine).

SharpeShooter3 Comparison

The SharpeShooter3 pinball machine requires 31 inputs, 10 solenoids (with 10 direct inputs), and 43 incandescent bulbs.

The Fast required hardware would be a 3208, and two 0804s just because I need the extra inputs.  So that ends up being $159 + (2 * $59) + $5 = $282.  At that price, it hasn’t given me the 43 incandescent bulbs that I need to drive, so I’m quite a ways from actually having a working pinball machine.  Frankly, I don’t necessary want to change all of my incandescent bulbs into RGB LEDs, so I’m not sure what I’m supposed to do.

OPP ended up being 4 processor boards with the following:  4 interface, 3 solenoid, 6 incandescent, 5 input connectors.  The 6 incandescent wing boards allow me to keep those boards close to the lamps that they are controlling.  If I had a lamp matrix, all of that wiring would need to go towards one single card, which would make the harness that much more difficult.  The total cost for the OPP boards is $59.42.

Multimorphic ends up requiring a PD-16, PD-8×8, 2 SW-16 and an RS-485 interface board.  The total for that ends up being $325.  To make it as cheap as possible, I ended up using a lamp matrix, which I’ve already mentioned my displeasure.

Jokerz Comparison

So I know a couple of guys doing Jokerz rethemes.  For one of them, I went through the manual trying to figure out everything that was needed to drive the playfield including all the flashers.  So the Jokerz playfield has 19 solenoids (includes direct inputs), 39 inputs, 63 incandescent bulbs (which includes 9 flashers).  The ramp that raises/lowers is a simple direct motor drive with a limiting switch on each end.  At first I thought it was going to need to be an H-bridge to move the motor in both directions, but seems pinball machines tend away from such things and use cams.  Using cams makes the electronics easier because you don’t drive the motor in two different directions, and way back in the 80s/90s they didn’t have an H-bridge available to drive the motor in two different directions.  Other examples of this that I know off the top of my head include the ship motion in Pirates of the Caribbean, Thing in The Addams Family, and the bookcase in The Addams Family.  With a cam, all you do is run the motor until you see a limit switch close, then you know that you are in the final position.  To go to the other position, run the motor again until the next limit switch is detected.  You use what you have available in the machine without adding more electronics.

The Fast required hardware would be two 3208s, and a 0804.  So that ends up being (2 * $159) + $59 + $5 = $382.  At that price, it hasn’t given me the 54 incandescent bulbs and the 9 flashers that I need to drive, so again, I’m a long way from home free.  I once again don’t know where I’m supposed to go from here.

OPP ended up being 5 processor boards with the following:  5 interface, 4 solenoid, 8 incandescent, 5 input connectors.  The 8 incandescent wing boards also have enough power to be used as flashers, so I don’t have to waste expensive high current drivers on those things.  The total cost for the OPP boards is $80.73.
Multimorphic ends up requiring a 2 PD-16, PD-8×8, 2 SW-16 and an RS-485 interface board.  The total for that ends up being $425.  There are enough extra drivers to be used for the flashers, so that works out well.  The lamp matrix is used fro all the normal incandescent bulbs.

The Addams Family

It seems like it consists of the following hardware:
26 solenoids (includes flashers for motors)
4 illumination circuits

6 flashers

63 incandescent bulbs
40 inputs (tried to remove all inputs that directly control solenoids).  Note:  This number

may not be exactly right because I haven’t really spent more than 15 minutes to look at the manual.

The Fast required hardware would be a 3208, two 1616s, and a 0804.  So that ends up being $159 + (2 * $159) + $59 + $5 = $541.  Again, no solution for incandescent bulbs.  I ended up simulating all the necessary drivers for solenoids/illumination circuits and flashers as driver circuits.
OPP ended up being 6 processor boards with the following:  6 interface, 8 solenoid, 9 incandescent, 5 input connectors.  The incandescent wing boards also have enough power to be used as flashers, so the can be placed at the appropriate locations under the playfield to keep wiring simple.  The total cost for the OPP boards is $100.40.
Multimorphic ends up requiring a 3 PD-16, PD-8×8, 2 SW-16 and an RS-485 interface board.  The total for that ends up being $525.  I stole some of the direct inputs to be used as normal inputs to save cost.  Since 36 circuits need high power drivers, it really hurts that I need to buy one more card to get those last 4 drivers I need.  There are enough extra drivers to be used for the flashers, so that works out well.  The lamp matrix is used fro all the normal incandescent bulbs.
That’s the best comparison that I can come up with at this point.  Looks like Fast/Multimorphic ends up being approximately 3-5 times more expensive than the OPP stuff.  That makes a lot of sense because most people use Bill of Materials (BOM) * 4 to figure out what their price should be.  I’m flummoxed with how I’m supposed to drive incandescent bulbs with Fast hardware.  I literally have no idea how I am supposed to drive those elements using their stuff.  If I use how power drivers, their stuff would be hugely more expensive.
I’ve also noticed that the Fast and Multimorphic stuff are approximately the same price.  Why build a new pinball control system where there isn’t a huge cost or feature improvement.  I was expecting Fast to be $100 or $200 cheaper on a full up system, but I just don’t see it.  Truth be told (and for complete disclosure, I have talked with Gerry multiple times and have never talked to the Fast guys), I would probably choose the PROC system to drive a machine if I wasn’t such a tinkerer.  Notice, also, in the above prices there are no main driver cards.  (PROC or P3ROC, or Fast Nano or Core).  Adding one of those controllers really jumps up the price, but I guess is a necessary evil if trying to add a DMD.
Things I don’t like about Fast include not having a way to drive incandescent bulbs, or really any low voltage features.  If I’m retheming a machine, I don’t want to remove all the bulbs and replace them with RGB LED strips.  RGB Neopixels have a really bright “hot spot” which is very difficult to diffuse properly and light a whole insert.  I don’t really like the prices either, it just seems a little too expensive to me.
Things I don’t like about Multimorphic include using a lamp matrix to drive incandescent bulbs.  This complicates wiring immensely.  Besides that, and price, I think that they have a great product.


8/5/2016 – Rev of OPP Firmware Released

Firmware guys never like to say anything is done.  I had a bootloader I wrote which was used in medical products that was still at version 0.1 when used in the final products.  The problem is you can always add more features, make things better, etc.  Previous released versions included which was the first version that I accidentally left a debug statement that overwrote the configuration each time it booted. came out as soon as I realized the bug which was wayyy before kickstarters and such. was fully functional, but had the issue that you had to program onto the board and then program  to do it.  (Easy to work around, but still annoying).  Here is which boasts a full set of regression tests to verify the functionality.

Here is a quick list of things that have been added/fixed:

  • Fixed bug where had to be programmed before updating the firmware.  This means that you can simply program onto a board and you are good to go.  I will update the programming instructions in the next week or so.
  • Feature to add ability for on/off solenoid functionality.  Previously solenoids could not just be turned on at 100%, then turned off at 100% depending on a switch or a command sent by the main controller.  That has now been implemented using a new configuration bit for the solenoid.  This feature was targeted at dual wound flippers low power coil and driving DC motors for all you Jokerz fans out there.
  • Feature to kick a solenoid after a certain delay of a switch.  This feature is for those people out there (all 1 of them) who wants to do a kickback in the outlane, and his switch is pretty high up in the outlane.
  • Fixed bug where serial number was not working properly.  This is for those guys doing head to head machines and requiring a way to tell which group of OPP boards are player 1, player 2, etc.  There is a small remaining bit of work on this that whenever the software is updated, the serial number gets cleared again.  I’m going to add code in the firmware updater to read the serial number, and then replace that information after the upgrade.  Then the user doesn’t need to worry about it.
  • Feature to allow different inputs to kick a solenoid.  This allows things like wacky flippers (left button kicks right flipper) and other really exciting things.  You can now use any input on the board to trigger a solenoid.  Note:  For bat-a-ball mode and white wood mode you still have to use the designated input for the solenoid.  This change is only for people using MPF, OPP framework, or writing their own serial interface.
  • Feature to allow one input to kick multiple solenoids.  Let the dual wound flipper configurations commence.  This is now supported.  If you want to do this in bat-a-ball mode or white wood mode, you still need to pass the flipper button input to all the designated inputs for the two solenoids.  If configuring through serial commands (i.e. MPF), this can now be controlled by the framework.

This firmware contains a completely rewritten digital processing section.  That has allowed the code to become smaller and even more efficient.  There were also some processing that was spread across two different parts of a function that have all been combined.  Essentially, the code just looks cleaner at this point.  At this point the firmware is using less than 65% of the flash and less than 65% of the RAM.  Plenty of space to grow and add more features.

The bootloader which is provided by Cypress toggles all the output lines as it is updating the firmware.  This means that you can’t update the firmware with high voltages going to solenoids.  This would make all the solenoids toggle at once, and would probably trigger the short circuit detection in the power supply.  I could rewrite their bootloader, but that would involve getting people to update the bootloader, which if power is lost during that process, the device will be bricked.  Leaving the default bootloader Cypress provides means that the device can’t be bricked.  At this point, that is much more important.

The documentation still needs to be updated for the added serial command and extra options.  I might be able to get to that this week.  Jan is probably the only person who really cares about that info.  (Jan was the source of half of the feature requests.)  I also need to update the populate boards document with the simplified instructions for updating the firmware.  At this point (because of the work I did on the regression tests), I can probably write a simple one line command that upgrades a blank from the factory card and puts a configuration on the card.  That should make it a lot easier for people.

Next up, I really need to finish the rewire on SS3.  Gah…  I just need to suck it up and finish it.  At that point, I will start hitting the MPF hard.  0.30 has been officially released, so I need to grab that from the repository.  That’s all for today.

8/02/2016 – A couple notes on power supplies

The power supplies in pinball machines are magical things that convert AC voltage into a DC voltage.  Without them, the wonderful toys that we enjoy tinkering with, would not work, and we would be forced to play bagatelle machines.  Not nearly as much fun.

Power supplies come in many different varieties, but the two that you see most frequently in a pinball machine is a toroidal transformer (linear unregulated power supplies), and switched mode power supplies (SMPS).  Toroidal transformers have been used in pinball machines since the beginning of time and just slightly before electricity was added for lighting.  (OK, I just made that last part up).  If you look in your pinball machine and you see a big hunk of metal in the bottom that looks like it weighs 20 pounds, you have a toroidal transformer.

A simple toroidal power supply works like this.  (Note:  This is going to be overly simplified)  It takes the AC voltage from the wall and runs it through a transformer.  That transformer converts from a high AC voltage to a lower AC voltage.  That lower AC voltage is converted to DC using a full bridge rectifier (makes positive and negative voltages all positive), and then a large cap to filter out the 60 Hz noise so a constant DC voltage is output.  The power that it can deliver is based on the number of windings, type of material of the toroid, etc.  The AC voltage is converted using magnetic waves or flux in the transformer.  If too much current is being drawn from the transformer, the output voltage droops.  (In power supply terminology, this would be a linear unregulated power supply).

Switched mode power supplies are being used in newer pinball machines.  They convert the AC voltage to high voltage DC using an itty bitty transformer, and then use buck/boost converters to convert the high voltage to the desired lower output voltage.  Because things are done at a high frequency, energy storage components can be much smaller which means a lot less weight.  They are also more efficient.  They also cost a lot less. A 48V 8.3A SMPS is going for about  $22 shipped on Ebay right now.  A 48V 10A supply goes for about $35 if you prefer.  The equivalent toroidal power supply such as a PS-5N48 goes for $107 and weighs 12 lbs.

You may ask why this matters to you.  One point is that the SMPS seem to always have active circuits to make sure that they aren’t shorted.  (Probably for safety reasons.)  If too much current is drawn they shut down.  If it goes from a relatively quiescent state to full on, they can detect that as a short.  When a solenoid fires, it goes from requiring no current to requiring max current in a very short time.  That can trick the power supply into thinking that it has a short and shut down.  To get around this problem, you need to add some bulk capacitors to reduce the instantaneous current draw of the power supply.  Either 8.2 mF (listed normally as 8200 uF), or 10 mF (listed normally as 0.010 F).  Here are the links for the Mouser capacitors.  (8200 uF, .010 F).  The capacitors run about $4 each in low quantities for the 63VDC ones.  These capacitors act as storage, so when there is an immediate draw of current, the capacitor can help provide that current, so that there is a lower current draw from the power supply itself.

Ahh, but these capacitors come with a terrible curse.  At startup, when they are charging, they look like a very low resistance across the power supply, and because of this, they draw a ton of current.  There are many ways to fix that problem.  One is simple but wasteful and cheap, while the others are more elegant.  The last one requires a lot more components and if you want that you should buy somebody elses power filter board.  (The right way would be to add the appropriate sized inductor to limit the current, but inductors are expensive, so we will ignore that option at the moment).

  1. Easiest way is to add a current limiting resistor before the capacitor.  The main issue with doing this is that you just converted your precious power supply current to heat using the resistor, and now the power supply can’t supply as much current to anything in the system because this resistor is in series with all the solenoids.  It is a solution, and I have used it when I needed to get something working quickly, but it isn’t ideal.
  2. Add a NTC (negative temperature coefficient) thermistor.  If you look at any SMPS you will see these guys.  They look like a big old circular caps that you used to see back in the 80s.  These start at a high resistance when cold, and then after current goes through them to heat them up, they drop to a much lower resistance.  The  Mouser part number is 995-SG26, but there are many others out there.   This one starts out at 5 Ohm when cold, and drops to .022 Ohms as it heats up.  That seems to be the sweet spot because using a 48V power supply, you get 48V/5Ohms = 9.6A and the NTC and handle 12A.
  3. Last option would be to add a resistor that is switched out after startup time.  This would involve a good number of components (a couple caps and a couple of resistors to turn on/off the switch or MOSFET).  The MOSFET that I’m current using (FQP13N06L) has an RDS(on) of .110 Ohms (typical).  Since the NTC thermistor has a lower resistance at steady state, it seems to make a lot more sense.
  4. Inductor, to limit the initial current, but as mentioned before, to get an appropriately sized inductor it is too expensive.

Well that’s about it.  Joe, if you still read this blog and still work on Blue October, my suggestion is to switch out the current limiting resistor for an NTC thermistor.  That should give your flippers a little more snap.