Category Archives: Hardware

Atari 2600 Cart 2K/4K PCB

Here is a Atari 2600 Cart PCB. It is the basic 2K/4K EEPROM. I don’t have the PCB files uploaded yet but you can download the CAM files. This is free for anyone to use, sell, and/or distribute.

Download Link

I will be uploading the PCB files in a week or so when I get back from my vacation. I use FreePCB. I will be uploading my custom footprint library as well so people can open the files.

LDMD 16×16 Propeller Comm Test

Just finished the DMD (Dot Matrix Display) test for RESET_VECTOR. Since the Propeller is to slow to do the matrixing I am going to use a FPGA to do it. The propeller will send the data over a serial connection into a frame buffer on the FPGA. When all the data is on the FPGA the FPGA will update its matrixing buffer.

I have the Propeller to FPGA communication protocol written and tested as well. The Propeller loads the Data off the SD card and sends it serially to the FPGA.

Propeller Code
Block Diagram of the Dot Matrix.


Reset Vector – The circuits have turned to glue man

This will be my first pinball machine to custom build. Everything will be custom built down to the programming. For the majority of the parts I bought a broken Pinbot pinball machine and removed the working parts. Other parts are sourced from ebay or pinball conventions.

The virgin plywood and its journey into the greatest pinball machine ever to grace mankind.

The old coin door. Its pretty beat up so I will be stripping the paint off with a brass wire brush and then repainting it.

Side rails and topper bracket is installed.

Close up of the topper bracket. I took it off the old Pinbot cabinet as it was still in decent shape. Had to sand it down and fill in some holes tho.

This is the hold down bar bracket. The hold down bar is the piece of metal that locks on the top of the front. Removing it allows you to remove the glass.

Cutting the opening for the coin door.

After painting with some hammer-on finish spray paint. I chose a silverish paint to match the stainless hardware better. The legs of the machine will be painted the same color.

Cutting the test playfield out of cheap pine plywood. Using a test playfield will enable me to test shots and move parts around without worrying about drilling and cutting the playfield. The final playfield will be made out of birch plywood.

Heres what it looks like with it installed in the new cab.

Installed the coin door.

Flipper buttons installed. They use leaf switches as these are directly in series with the flippers so the need to handle 50VDC and 3-4 amps.

Powersupplies and the flipper solenoids are installed.

The powersupply setup. The left one is a 50VDC powersupply and the one on the right is a computer powersupply that will supply the 12V, 5V, and 3.3V for logic.

Put the legs on. Won’t repaint them till its out of the shop so the paint doesn’t get chipped.

Bracket for the legs. I chose to use the heavy duty variety as a couple modes I have planned require you to tilt the machine.

How the layout of the head unit will work out. The score wheels are the “roll over digit”. Basically when you hit 9999 the machine will “lockup” in blue screen of death mode. To reboot the system you hit the CTRL-ALT-DELETE targets and the score resets to 0000 and the score wheel increments 1.

How the head unit is built. It has two doors. open the back one to move the score wheels out of the way and the other doors allows access to the LED displays.

Justa close up of the displays. That LED display is not functional.

Installing the pop bumpers.

Shooter lane. You can see the skill shot near the top.

Drop targets. One feature I really like about pinball machines are drop targets so I have lots.

This is what the pinball machine currently looks like. You can see the LED dot matrix display on the head unit. its resolution is 16×72. It will most likely be multiplexed and controlled via shift registers.

Mode Ideas

  • Kid Hacker Mode: All 12 year old kids can hack computers in an instant. When in this mode it will randomly pick a “kid hacker” from a movie.
  • Jurassic Park: In the first movie the young girl hacks a Unix graphical interface to lock down the compound.
  • HAL 2001: Knock down the drop targets to do what Dave does in the movie. As you progress in the mode HAL speaks slower.
  • USSR Mode: Upon entering this mode the machine will randomly freeze up. You fix it you have to “tilt” the table simulating smacking a computer to get it working again. This happens 9 times. If you keep your ball alive during it you get a big bonus. Keeps track with a nixie tube.
  • Hacking Mode:This is multistage and is the default mode.
  • Dial-in: First you have to establish a connection. Hit targets around the play field to connect. sounds will be like a 56K modem.
  • Connect to router: You need a password. Targets turn into password inputs. Will enter generic passwords like “PASSWORD”, “1234”, “PACKER04”.
  • Once connected it will randomly pick which mode you can do. Themes range from the WOPR terminal in Wargames to stopping Skynet.
  • Independence day: Upload a virus to the Aliens before the world is blown up.
  • Mission Impossible mode: A floppy disk acts as a barrier and only inserts into the floppy drive when in this mode. Copy all the files (hitting all targets) before the time runs out.
  • Golden Eye: I’M INVINCIBLE! is what is said when you lose all your balls.
  • Rick Roll is going to happen somewhere.
  • Hello World shall make an appearance.
  • Dot Matrix Printer parts will be used in the field.
  • Every so often you will get a “Permission Denied” on the screen. You can not score any points till the “Override” button is pressed.
  • Blue Screen of Death
  • Firewall mode: To get past the firewall you need to traverse all ramps.

This is a video dump of the pinball machine.

This is the second work log for the pinball machine. Not much has changed but there are a few ramp ideas and such.

Little demo of the flippers and various shots around the playfield. Next video should have working I/O so the slingshots will work.

Here is a little test of one of the 4-digit 7-segment LED displays. This is just a prototype and does not have the 16-segment alphanumeric units on.

The PCB for the solenoid controller is almost complete. Just need to wrap up the Watch Dog circuit. A Watch Dog just makes sure that the solenoid controller doesn’t lock up in case of a CPU lock up (i.e. crash). I am going to try a timer (kinda like a 555 timer) to the Reset Pin of the 74HC595 and the input of the timer to CLK signal. If the CLK signal doesn’t change for 1 second the 74HC595s will reset.

PCB done. I decided to use a 555 timer as the watch dog. Keeps part count low and reliability high. I will post some more technical details later.

PCB done for the input. It pulls all the inputs high and when the ball activates a switch the pin on the 74HC165 gets pulled low. The 74HC165 is a parallel in serial out which is the reverse of a 74HC595 essentially. This PCB has 32-bits worth of inputs and can be cascaded to allow more bits on the same DATA line.

Finished designing the PCB for the 4-digit displays for the Reset Vector pinball machine.

Along with the 4 7-segment LED displays it also has 2 16-segment LED displays to show which player belongs to that score.

Left to be designed PCB wise is a 16 x 72 LED matrix board, a 7-digit 16-segment display, and a RGB LED driver board.

I had some issues with my 74HC595’s. They seemed to “reset” periodically. Figured out the real problem while working on my displays. Fixed it with software.

My old routine

Latch Low
Repeat x times { Clk low , Shift bit out , Clk high }
Latch High

Seems that when that is low it can easily pick up interference from the data and clock line. To fix this I can put a pull down resistor on the Latch line but this requires me redesigning all my PCBs thus have to pay tooling costs again if I need spares or fix it in software like so.

Latch High
Repeat x times { Clk low , Shift bit out , Clk high }
Latch Low
Latch High

This way the latch hasn’t “reset” and eliminates glitches. Working fine now.

And it worked first try!

This will be a display above the row of targets in the middle of the playfield. It will display different words or numbers depending what mode the player is in.

To make sure the LED matrix setup will work I am going to get this board made. It will only cost $15 to get the test prototype PCB made compared to the $120 to get the entire matrix PCB made. With this I can test the programming and make sure the 74HC595’s and propeller are fast enough to do it all.

2 out of the 4 score displays are now working. Currently the code supports all 4 displays. Just waiting on more parts. Next video will feature the input and output boards working.

This will be a display above the row of targets in the middle of the playfield. It will display different words or numbers depending what mode the player is in.

To make sure the LED matrix setup will work I am going to get this board made. It will only cost $15 to get the test prototype PCB made compared to the $120 to get the entire matrix PCB made. With this I can test the programming and make sure the 74HC595’s and propeller are fast enough to do it all.

The 32-bit input driver and the 32-bit solenoid driver.

Finalized side art.

Some specs of the display:

  • 16×96 resolution, single color (red)
  • LEDs run at 1/8 duty cycle due to updating the display 2 lines at a time. Line[n] and line[n+8] get updated at the same time.
  • Row selectable for the fastest update speed.
  • Estimated refresh rate of 100Hz. It is written in spin so the driver is fairly slow but this is mainly limited to the speed you can clock into the 74HC595s that do the row and column addressing.
  • With all LED’s lit it will draw roughly 1.5Amps.

Received my JWS480P-48 power supply. It provides the 48V needed for the flipper coils. At 10A of continuous current it has plenty of power to cope with it. It also does 20A peak for awhile which is enough to power a couple pinball machines at once!

Got a lot of work done on Reset Vector. I/O is working along with sound. The game currently supports 4 players. Need to finish the playfield layout and get the dot matrix display running.