Wednesday, August 22, 2012

Those Dirty Secrets... for the world to see - ain't that nice!

I've finished soldering the switch board and started making the light board.
I probably shouldn't be showing you this...

1) The flip side of the switchboard. It's a mess, but it works reliably!
After soldering the IC's I said "f€#k it" and just went bonanza with the solder iron.
I reused most of the soldering points for the IC's to attach cables directly,
probably should rename the blog to 'Lazy Man's Pinball'...

... but amazingly I only had two cables that needed to be switched - the rest of it worked out of the "box". The extremely crappy soldering on this one does not make anyone proud thou...

But as I said before -
These are prototype production units. If they break or needs replacement they will be better made (as in, custom PCB's and possibly even pro-soldered in a shop).

The motherboard is a nicer story thou. I've fixed all cards onto a piece of plywood with custom connectors for power as well as proper display, switch and light connectors.

2) The revised motherboard. Larger, better and much much easier to handle and connect stuff to.
Going clockwise, starting top right - (unfinished) lights/outputs, switches, SD reader, display and servos (but has room for more features if needed), Chipkit Max32 (single MCU design, remember), soundboards x 3 and finally, in the center, there's a powerboard that distributes power to all boards except for the chipkit itself (which runs at a higher voltage).

The plug & play design has already proven to be useful while debugging and even adding features as it allows to be picked up and placed in a more convenient position. All cables that needs to be removed in any way when servicing has got a connector so it's impossible to put them back wrong. A nice side effect of going single MCU is that I can now (finally) update the code of the board via USB without having to manually reset the boards first. This was due to a limitation of the Arduino/Chipkit boards when something was connected to the first serial port, which had to be used for serial communication between the boards. 

I'm still thinking about if it's a good idea to have unique MOSFET's for each output, but we'll see!

With the new motherboard almost complete, I can now begin to focus on the new programming. I've got switches, SD-reading and DMD in place (although not in their final form) and I've already managed to improve video streaming and rendering speed. With a little luck I'll find the time to start on the proper   code anytime soon - probably the maintenance menu since that makes most sense at the moment.

Going single MCU was a good choice!


  1. Just stumbled across this and have gone back and read all your posts. Love the high quality of your work and am a big fan of the bioshock universe. Too late to add a 3rd level to the playfield? :)
    Very inspirational, makes me want to make my own. Not sure if I could afford it though. Any hints or tips for getting started (I have electronics/programming background)?

  2. First of - thanks a lot! :)

    It's never to late to add stuff, but it's getting crowded in the box! I'm sort of planning to replace the plastic ramps and upper level for a fully custom one later on, but for the moment the design is "fixed". Did you think of anything in particular for the 3rd level?

    My tips on getting started would be:

    Buy an old broken machine -
    That way you get spare parts and a cabinet. Building the cabinet took a long time and it's costly to purchase everything from scratch. A good time has been spent on searching the internet for part numbers etc.

    Measure and research -
    Play a lot of pinball! If you have access to real pinballs you can measure and write down what you need. I didn't do any real looking inside a real machine until very late in the process, which unfortunately resulted in me ordering a lot of wrong parts. I've found a use for most of them anyway, but it's certainly discouraging to wait a couple of days for a part only to find out it's the wrong one. ;)

    Go for the P-ROC circuit boards -
    These guys have already gone through the hassles of hardware creating/programming so it's really a matter of plug&play and use any high level programming language to drive the game logic. A Raspberry PI or similar microprocessor would be ideal together with the P-ROC card(s).

    Document everything -
    Documenting everything in a blog is partly a carrot for myself to keep going. So that has helped me a lot. Having the documents for all the electronics components and things you are using gathered in a single place saves a tremendous amount of time. :)

    The main reason for me building everything from scratch was just that - I wanted to build it. It's been a learning experience and good fun too! But there were times where I wondered what I was doing! But it's coming together nicely and soon the real fun begins - programming game logic and playing! :D

  3. Cheers for the reply and information. Hadn't really thought about 3rd level too much, just thinking about the underwater sections of the game. -> Im a fan of rube goldberg machines so 3, possibly more levels appeals to me. :) - Though who knows how that would play.
    I've installed Visual Pinball so Im going to play a fair few machines in that and get some ideas. Maybe try out some of the more excessive multi-level designs/ramps that I come up with.
    Oh, what about for that hole for the little sisters moving the graphic/plastic so that the hole in that lines up with the ball entry? You could maybe put the bottom part of the graphic onto the playfield - now that you have already printed it... :)

    Will have to start looking for some old broken machines. Luckily the house we bought recently has a rather large workshop so I can take a while to do it.