P-ROC versus open pinball project solution

A couple people have wondered why I’m not just using the P-ROC solution instead of rolling my own.  It is a very valid question and the design reasoning behind my boards may help some people decide what is best for them.

The original open pinball project design was to use a Xilinx Spartan 3A FPGA for doing all of the solenoid driving, lighting, and digital inputs.  If you jump over to the P-ROC site, they are using the exact same FPGA.  One benefit that they have is that they can use the BGA part.  I can’t solder a BGA part at home, so I would need to send it out which is far too expensive.  My other option would be to use the QFP part which increased the price and reduced the number of outputs significantly.  (The 144 pin part is about $22 each in quantity 1 and it only gives you about 97 I/Os, or $22/97 = .22/I/O pin)  Next I looked at the price of the small crappy processors in quantity.  (Remember, I’m only going to build 10 pinball machines at a time, so price in low quantities is very important.  Using the same chip in multiple locations gets my quantities up significantly)   The design uses 24 solenoid drivers (3 driver boards), and 64 inputs (4 input boards).   (I chose the MC9S08SE8 because it came in a 28 pin dip package which is really easy to dip solder.  It gives you 20 usable I/Os per chip.  So that’s 7 processors/machine or 70 processors at a time.  Because of the price break, it is cheaper to buy 100 processors than 70, so 100 processors is $108.  My price per input is $108/70 processor/16 I/Os = .10/I/O pin.  This is about 1/2 the price of the Xilinx solution).

Last part of the solution is to use 74LV595 to run LED lighting.  These are simple shift registers with a latch bit.  I can run these at a lower voltage so I can get rid of the current limiting resistor on the LEDs.  There are 8 of these per pinball and each chip is $.60 in quantity, so they are .075/output pin.   My guess at my design is that I need 8 of these  per pinball machine.

Some of the functionality that the P-ROC is using is not necessary in my case.  The P-ROC supports a DMD display.  When I looked at the price of a DMD display in low quantities , it was significantly more expensive than using a 22-inch monitor.  Look at the Jersey Jack website.  The reason that they went with an LCD display instead of a DMD display was not because it looked snazzier, but because it costs significantly less, and gives you more functionality.  (By the way, I stated I would use a display before Jersey Jack announced they would use a display, but my reasoning was simply based on price.)  A display/mini computer solution is currently less than $200 in quantity 1.   The only downside is that you need a really good graphic artist to do all of your video clips.  That is going to be a big pain to figure out how to pull all the video stuff together because I have no talent in that area.

By the way, displays are now so cheap, wouldn’t it be cool to embed a touchscreen in the playfield so that it could track the ball as it goes across the playfield?  You could have graphics of jet trails following the ball, objects on the playfield that the pinball needs to hit, etc.  This would be different than pin2k which is using a screen to project objects on the playfield, but still uses physical switches to register hits of these objects.  Wouldn’t it be cool to have a pinball with flames following it?  All of these ideas should be relatively easy to implement with a touchscreen below the playfield.  The only problem is whether the touchscreen can stand up to the abuse.

9 responses to “P-ROC versus open pinball project solution

  1. I’m doing something similar, so I’ve also had to contend with the “Why not P-ROC” argument.

    Honestly all things aside, I think the best reason is “because it’s fun and/or educational”. I’ve learned so much doing these board designs and watching my setups go up in smoke.

    • Another thing about the P-ROC question comes down to it being a centralized solution versus distributed. Somebody commented on Dangerous Prototypes questioning the reasoning behind a distributed system. If you look under any pinball playfield, it is a mass of wires. Wiring harnesses are very expensive to make and are difficult to maintain. Going with a distributed solution, you can easily put the circuitry close to where it is needed and you don’t get that giant bundle of wires going into the backbox. There is a video on YouTube with a tour of the Stern factory. It points out that all the wiring harnesses are made by hand and they are custom for every single pinball machine. Wow, that has to cost a bunch, and must just be a giant sink of time to make the fixturing and getting it right. Why would you bother with that when you could use smaller jumper type wires much shorter in length, and easier to control.

      I was stuck at a show (Neuroscience or ASCB) with little foot traffic in the booth because of the economy. I ended up writing up the design to do it in an FPGA, and just found out I wasn’t really using most of the resources of the FPGA. Hardened chips are so cheap in comparison, that I continue to struggle to find designs where FPGAs make sense. This is because most of my designs need lots of I/O and relatively little post processing.

      I agree that making the boards have been a blast. Lot’s of fun. Using the fake cost constraints that I put on the project, I just can’t afford the P-ROC price.

  2. FPGAs are coming down in price, I’ve got a dev board on order to play with but I’ve already finalized my design for the IO board around a microcontroller.

    Your approach is the one I would have taken if I could be bothered to build my own PF. Instead I opted to buy an unloved PF from someone’s hyperpin conversion and give it a new lease on life. I didn’t want to hack up the existing wiring harnesses (It would have been nice to individually address each LED instead of using a matrix, but many of the switched lamps slot into a pre-wired PCB that I didn’t want to hack up) so I ended up with a monolithic control board based around an ATMega2560, as it’s cheap and gives me a lot of options without being overly expensive.

    I have schematics if you’re interested, but it’s about as exciting as you imagine, microcontroller -> shift registers -> pins with the occasional dash of transistor for added flavor.

    it’s really interesting to see the various approaches to this, so I’m looking forward to seeing your setup come to life.

    • FPGAs are coming down in price, but not as quickly as higher volume small microcontrollers. I truly believe we have finally gotten to the time when small microcontrollers will be everywhere. Great for me because I love that stuff. I can now buy a processor for $1.20 in low volumes that is better than the processor that sent the astronauts to the moon. Fantastic, and lots of different interfaces already integrated into it so it is a nice system on a chip. I chose Freescale because I’ve been pushing them at work and I have a ton of code I wrote in my “hobby” time that I can immediately apply to my project. 10 years ago, I started writing core utilities for microprocessors because every time I went to a new company I had to write the same utilities, the same basic functionality, etc. After doing that for the previous 10 years, I got tired of it, wrote it on my own time, and now bring it with me to companies to get those companies that much further along. I moved it between processor families two or three times now, so even doing that is becoming easier and easier. Enough of the olden days.

      I also have an old playfield to test but haven’t gotten around to trying it yet. Shaq attack! baby. Picked it up for a cool $60 (it is missing the rotating hoop, the dome, and a bank of drop targets). I have drop targets sitting around in the basement, so it should be a perfect test bed for kicking some real solenoids. I can’t wait!

      • Watching those first solenoids fire off switch events is a really good feeling. 🙂

        My biggest concern with your solenoid driver is the connectors. They really don’t seem to be ideal for carrying the kind of current larger solenoids put out. Both bally and Williams used beefy .154″ headers for these. but you appear to be using .1″ headers. You might get away with it on the low power solenoids but the big stuff like flippers, kickers, and magnets are likely going to take their toll.

      • Wow, thanks for digging into the schematic so deeply. You are the only person that I actually know who has looked that deeply at the schematic. The actual current for the solenoid driver goes through the .187 faston connectors, not the 100 mil spaced guys. The fastons are pretty much limited only by the wire, not the connector itself. The 100 mil spaced guy is only used for the switch contact, not for any of the solenoid current. For those, I’m using the internal 33K of the processor as a pull-up so the current is negligible. The real limit for the solenoids comes from the low side FETs. I have currently installed two different FETs (either IRL520N or IRL530N). Smaller one is 10A continuous, while the larger one is 17A continuous. Not sure if I need the larger one. (It is highly dependent on the rep rate, amount of dead time which in my drivers I’ve put in a guaranteed dead time that is configurable) There is an even bigger one, but they get even more pricey.

        I could fire off a couple of solenoids if I wanted to, but I’m currently thinking of making a simple low current example framework is the next step. It would use all three of the controller boards, and would force me to finish the initial Java framework for the controller. Mostly a hack job from other stuff that I have done, but it is the next necessary step.

  3. Hi guys, Gerry Stellenberg here… P-ROC designer. Somebody just pointed me to this project, and I have to say I’m very impressed! It’s fun for me to watch all of the custom machine designers work through their projects whether they’re using P-ROC or not. The P-ROC is great for a lot of folks, but it isn’t for everybody. Each project has different constraints, and each developer has different skills and goals.

    One thing I do want to address, though, is the centralized versus distributed system that ‘H’ described above. I completely agree with all of the reasons given as advantages for distributed systems. It simply doesn’t make sense (IMO) to use a fully centralized pinball controller in this day and age.

    Two years ago we developed our first PDBs (P-ROC driver boards). These are small driver boards that sit on a differential 2-wire serial chain and can be located anywhere you want (ie. next to the components they’re driving). You can certainly choose to put them in a central location and run long wires, or you can put them under the playfield to keep your wiring runs short. We made a video describing the products here:

    … and just to show how much these boards improve wiring complexity, check out a recent picture of our P3 prototype:

    There are 34 coil circuits all wired up and working in that picture, yet you see very few wires.

    For more information on the P3, please visit http://www.multimorphic.com.

    I’ll look forward to reading more about this project, and I promise not to push P-ROC on anybody here. 🙂 Please contact me directly w/ any questions or visit our forums at http://www.pinballcontrollers.com/forum.

    Thanks!
    – Gerry

    • Oh my god, it’s Gerry Stellenberg….ahhhh!!! Seriously though, it is entertaining to me to see some real pinball people actually read my random blatherings. Gerry, I would say that you are the first real pinball person (a person that doesn’t just do it as a hobby, but might actually make money) that has read my blog. Thanks for taking the time.

      I spent a little while on the weekend reviewing your products and I like them a lot. I had noticed them a couple months back and didn’t take the time to really look at them. Making your code “open source” is great, and allows things to be modified as necessary. The products aren’t even that expensive. I wish you would have made the hardware open source also, but maybe you feel that is your intellectual property. I personally feel that there are so few people out there that could take an open hardware design and populate it that most people would still buy the cards from you anyhow. Of course, I don’t ever expect to make any money so I can open source absolutely everything that I do. For me, it is just the love of the hobby.

      If I didn’t value my hobby time at $0/hour, it would make a lot more sense for me to buy your controllers than roll my own. For a couple hundred dollars, I would be able to get a prototype up and running much more quickly than what I’m currently doing. I’ve already considered removing my Coldfire based real time controller with a Raspberry Pi, or some other SBC because I can’t produce the controller card cheap enough, and the SBCs coming out give you a ton of good options. The industry is moving so quickly because of new/more powerful/cheaper chips coming out every couple of months. Every month or two somebody sends me a free development board that I could use which would be much easier than soldering the boards myself.

      The other nice part of your boards is that they can handle the current. There are a good number of cheaper alternatives out there, but they aren’t made to handle the current http://logos-electro.com/ard-srg-ips4x4-1/ or if they do, you need to solder them yourself. https://www.sparkfun.com/products/10618. Even the last guy, you would need to populate with different FETs if your design requires 70V.

      You have also spent the time to make a protocol to tie the boards together. That is valuable because I would not have needed to spend a month to write my own protocol. I also like that the communications are differential and hope that my design which uses single ended signals wasn’t a mistake.

      Again, thanks for taking the time.

  4. Pingback: 8/14/2016: Cost Smackdown – OPP vs Fast vs P-ROC | Open Pinball Project

Leave a reply to H Cancel reply