Hold Flipper for Status Update 2

Work continues on Bill Paxton Pinball – the longest suffering Ben Heckendorn project of all time. The unit now has legs, a functioning input/output controller, tilt sensor, power supplies, fuses, front coin door panel, plunger assembly, start button, sound amplifier and some temporary targets.

Check out the video after the break!

At this point enough of the electronics are done to create a demo of basic play with music and sound. When I re-formatted my laptop last weekend I accidentally erased a lot of the sound files I had organized so this demo only has sound from Aliens, Clubb Dread and Weird Science. However you can definitely get a sense of the tone and rhythm I have in mind for this game.

Next up will be ramps and doing some playfields out of wood – the foam is easy to cut and mod for experimentation but it’s also somewhat flimsy and offers ball resistance. Also I need to get the soleniod control board working – demo unit fried out its shift register, but now I think I’m going to piggy-back it on the I/O board.

The I/O board is pretty useful, in the SPIN code (that runs the Propeller microprocessor) I have a method called “PollIO” that is your basic “run this all the time” routine to sense buttons and light up lights. There are (2) 32-bit output banks and (1) 32-bit input bank that are polled simultaneously to save time. The solenoid control will likely be added to this.

PollIO returns a 32-bit value called “Sense” which I then check bitwise to see the switches, such as ball drain, ball shot and targets hit.

Ironically, even with 4 gigs of SD storage space for music and sound, the operating program itself must fit within the 32k of EEPROM on the Propeller board. With all I/O functionality loaded as seen in the demo above I’m currently using about 50% of this. It may not sound like a lot, but it should be sufficient. All the “chunky” parts are already in there, the rest is “IF THENS”.

-Ben

22 thoughts on “Hold Flipper for Status Update 2”

  1. Can you talk about what pinball parts you’re using? For example, searching for flippers just give me tons of results and it quite confusing what would work and what wouldn’t. Awesome looking project!

  2. Pingback: Atari 800 laptop
  3. Once it’s done, someone should create a “virtual copy” for HyperPin, so others can enjoy the greatness of your Bill Paxton Pinball!

  4. Awesome project!
    Is there a particular reason for choosing the propeller chip over others? (Hopefully you haven’t answered this somewhere else already :/ )

  5. Reminds me of the early days with the Atari portables. Ah, the late ’90s early ’00s. Could this be the start of Ben Heckendorn’s custom arcade machine business? We’ve already seen a NeoGeo cabinet and now custom pinball. Each project more involved than the last. What’s next, electro-mechanical relay pinball? Stay tuned same Heck time, same Heck channel. God I’m so lonely…

  6. Sweet, I’m liking the pinball’s theme already. Man, now I want to play it, and I somehow doubt you’ll be selling THAT machine, or recreating it for someone 🙂

    The propeller chip is actually pretty cool. It’s fairly cheap, but very powerful and easy to program, with like 8 cores you can have running simultaneously. It gets even more powerful programming it in assembly rather than SPIN, but that’s also quite a bit more limiting – I think you only have 256 bytes per core for your code.

  7. The Propeller is a great controller, and is normally limited to 32KB EEPROM storage for programs.

    I am working around that for the Propeller operating system I am writing (Largos) by having a 1MB-8MB SPI flash that has a Unix-like file system on it. The kernel will use about 8KB-10KB, but that will take care of loading/unloading device drivers, and there is nothing stopping advanced users from paging in more code when needed.

    I designed a series of boards for industrial control and education. The main board is Morpheus, and has two Propellers, over 512KB of ram, 1MB of Flash, an RTC and much more – including 256 color VGA graphics and a well-defined expansion bus with 16MB of address space, including 512KB of memory mapped I/O space.

    For an application similar to the one you are describing, I used 74HC595’s for providing 32 outputs using only four propeller pins, and 74HC165’s for 32 inputs. By accepting a greater output scan time, it would be possible to cascade even greater numbers of 74HC595’s and 74HC165’s.

    Best Regards,

    Bill

  8. Bill, the 74HC595 is exactly the shift register I’ve been using on this pinball. I have 3 banks of 32 bit inputs (4 registers each) and 2 banks of serial inputs 32 bits each. (using 4021BE’s for that, NES style!) Each has its own data I/O line, but the clocks and latches are tied together.

    Thus you can get/fill (5) 32-bit values at the same time. This keeps within the variable size limit of the Propeller (32 bits) and only takes up 7 pins (with an 8th as reserve)

    I still have several pins left over even with that, the display and the sound I/O.

    32k hasn’t been a problem yet, the kernel takes up about 15k leaving the rest for the game itself. I think I’ll be fine.

  9. Ben, it sounds like you have more than enough room left. When you run low, the easiest way to get “extra” memory is to use the area occupied by pasm drivers or initialization code for data storage. There are also easy to use i2c drivers, and the demo board comes with 64KB eeproms (and it is easy enough to swap out the 32KB ones on other boards).

    The pinball cabinet looks great… if I can convince my wife, I am thinking of making a nice MAME cabinet for myself – perhaps Propeller based; there is already about a dozen retro games available for it, with more coming all the time. Or maybe I’ll stick one of my old Dreamcasts in it…

  10. Almost forgot:

    – I’ll check out the 4021BE’s
    – a nice general purpose I/O expander I’ve used is the MCP23S17
    – if you want analog in, it is hard to beat the MCP3208 (or even cheaper MCP3008)

    The Propellers sigma/delta works fine if you have extremely short traces to the required cap and resistors, otherwise it tends to be noisy. D/A conversion with a cap and resistor works great though – one of the guys in the forum recently released a four channel 16 bit audio output object, uses just four pins. Another guy has a stereo SP/DIFF output 🙂

  11. Don’t forget about Bill’s early career – he was Chet in Weird Science. You gotta add that graphic somewhere on the machine!

  12. Aww man, this is great. I dont know why you choose this actor theme, but i think that doing any table from “Pinball Fantasies” game (especially speed devils) would be superb!!

  13. Real games don’t run the (same) music all the time you need more tacks and some drain music / sound fx.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.