Run your pinball DMD with a Parallax Propeller

No better way to spend a Sunday afternoon! John Popaduik gave me one of his spare LED Vishay displays so I thought it would be fun to hook it up to a microcontroller (MCU)

Because it has 8 simultaneous cores and does not require interrupts, the Parallax Propeller seemed like a good bet. The code still had to be written in machine language to be fast enough.

You can download the resulting code here. Wire your DMD to your MCU by cross-referencing your machine’s pinout to the commented code (you need 6 signal wires + ground) or by looking at the Vishay docs.

A single COG is launched in SPIN and will continuously spit out data to your display. The variable array “displayX” holds your screen memory and requires 2 bits per pixel.

This gives you 4 shades of color: 0ff (00), dim (01), medium (10) and bright (11). Check the code comments for more information.

Hopefully this may be of use to anyone modding or doing homebrew pinball – have fun!

Comments

  1. Hi there!

    How fast did you get the refreshrate of the display?
    I’ve done quite a bit of DMD crunching on the Chipkit (and before that Arduino) for my custom pinball machine and was able to stream around 24 FPS of videodata from SD cards and display it at 8 shades @ 96 Hz. Still not perfect, but the main culprit is the SD card that steals almost 5 ms each loop. If that could be trimmed away everything would run the same in 16 shades.

    My machine is based on the Bioshock games, for those who are interested… ;)

  2. This looks awesome, thanks Ben!
    I’m planning on using this in a machine based off Portal 2, inspired by Ben’s Bill Paxton machine build.