Hi all, I am building a Jurassic Park 3 pinball. Is arduino a suitable thing to use for this? It is a fullsize pinball machine.



Is arduino a suitable thing to use for this?

Depends. What do you want the Arduino to do?

It needs to run 7 or 8 solenoids 300 LEDs, 128x32 DMD, and similar things to run a full size pinball machine

it will be hard, and you leds will have to be multiplexed in an extremely good way to have as less connections as possible. the solenoids should work using relais, so the power does not have to come from the arduino itself, or you'll kill it in not time Do you have driver chips and stuff for the DMD, i mean, how many pins does it need? and do you have to write your own lib to have it working, or are there already libs made for this?

willhew: and similar things

can you specify this? similar seems wide. Do you mean sound, buttons, sensors etc ? since you have to detect the ball somehow, you'll need sensors too...

A lot of the parts on a regular pinball machine are automatic, simple circuits will do for most faster and easier than trying to do everything with the MCU.

If you run the leds and other display elements from serial->parallel shift registers then you won't need to multiplex and the registers can be used to power the leds and maybe the rest. The code to run those will boil down to feeding strings of bits to a chained set of chips and giving them a go signal which you can do amazingly fast using 4 pins (SPI bus). Buuuuut... 300 leds? Are they all to be independent? Even with 16-bit shift registers, that's a lot of shift registers!

Flippers, bumpers and anything that has to accelerate the ball will need real power that you can't run through the Arduino, so you will be learning some good stuff there.

Hi, I havent bought components yet as i am not sure what ones are compatible, I will load my plans later so you can have an idea of what im using

A couple of external chips can be used for the LEDs, like a MAX7221 for 64 LEDs, or MAX6953 to drive four 5x7 arrays. Maybe split the task up even, use 2 uCs & let them share the effort.

Or use a bigger uC, like '1284 or the Mega 1280 or 2560.

Here's a new plan, I will use more than one Arduino for the machine. The DMD display I will make myself, I know that its 4096 hand soldered LED's but I want this to be a really homemade machine. Also by soldering this it gives me bragging rights, over my friends. Will the UNO be sufficient. I would like to set it so I can use bitmap for animation. Also how can I make the arduinos communicate, eg. The arduino managing the scoring can send the numbers to the display manager which will convert it to the Bitmap which will display. Also it will send the score and relevant switch triggering to the sound arduino that will trigger the relevant clips. Will the DMD arduino be able to handle the 512 shift registers? Is there another option to handle the DMD.


Is DMD anything like these?

A bit more like the images on this page, it is basically what I hope to achieve first but with an arduino

Arduino to Arduino, can use Serial to Serial comm, SPI, I2C. Lots of options.

For the display - you can daisy chain all the shift registers you want. Will need to add some buffering for the clock line and the output register latch control. If you make a 64 x 64 matrix, maybe break it up a little, can do 8 shift registers on a side for multiplexing. SPI can send data out real fast - so 8 bytes/per column, march across the 64 columns. Or maybe send out 4 columns at a time, so only need 16 column refreshes to cover the whole display.

512 byte array, maybe use a part with more SRAM, like '1284 with 16K.

Hi all,

will it end out easier to use this: I would still want to be able to control it via bitmaps


That link I gave you has 8x8 3mm red led blocks for $1.80 ea, less than 3 cents a led assembled. The larger 5mm dot blocks are red-green for $3.90 or.. 8x8 5mm RGB for $10.90 which is still 17 cents a led (and capable of full color if you've got one heck of a driver).

I would need 64 of the 8x8 blocks, also I can find them cheap about $100 and would prefer them as they are easier to work with for a frame. Am I able to use one? I know they have 6 Signal wires and ground. Can I use this?

I have seen display driver chips that can probably do the job nice and clean, but I haven’t messed with any of that.

Hell, I get off playing with red-green leds to make amber. Maybe I’ll hook an RGB up some day!

Yes, but will the arduino run a DMD like that?

The Arduino chip can run the chips that can, even if it's chips on a shield on an Arduino.

SPI bus is (clock / 8) bits per second, IIRC. That takes 3 pins plus 1 pin for every control line. Some chips like shift registers, one control line does a whole line of them.

Hi, I'm still going for the option of handmaking the DMD, how many shift registers can I use before the signal degrades, I would use rows of 4 down 128 across or vice versa (32 registers down, 16 across) will the signal degrade? I want to use a seperate arduino for the display, what is the smallest I can use. I would use a serial output from the main CPU to the DMD CPU which would use built in commands to detect, eg. It detects a three so it uses the assigned bitmap.

Will this work,


I would use an octal register wired like a shift register,,97488.15.html,103072.0.html use a part like sn74ac574 so you have good drive current, 24mA, not the measly 4-6mA of an HC595. That will drive the rows of anodes. May need a buffer on the clock line, have to check the '574 input current requirements. Then for the columns, shift registers driving MOSFETs to sink all the cathode current.

Size may be driven by the SRAM you need to hold the data array that you be shifting out. Pinwise, need enough IO for Rx/Tx, SCK-MISO-MOSI, SS for columns and SS for rows.


Im not familiar with octal registers, are they larger versions of shift registers. I plan to use the chipKIT max32 to run the main machine, switches, bumpers etc. but a seperate controller for the DMD, I would prefer to use the chipKIT to run it as well, but if it simplifies it I would rather seperate. Will it be simpler?