Lighting Interface for my TRON Arcade Machine

As seen in a previous post, I have a Tron Mini/Cabaret arcade machine.  I used to have a Tron full-sized (FS) machine, but sold it many years ago.  One thing that the FS had over the mini was lots of extra lighting.

It had artwork beyond the monitor lit with a regular light, it had a blacklight above the control panel to make the traces glow, and make the joystick glow.  There’s also a second blacklight below the control panel to backlight the bottom portion as well.  All of these lights are always lit, making the machine extra awesome.  On the mini, there is glow artwork, but no light to illuminate them.  Ever since the late 90s, I’ve had a plan to change this, so I bought a pack of UV LEDs, but they’ve sat dormant in my parts bin until now!

One thing that I’d like to bring to this, is to go an extra step, and bring some ideas over from the “Environmental Discs Of Tron” (EDOT) machine.  On the EDOT, you walk inside of it… one of the few, if not the only, games where you can do this.  Around the monitor and control panel are lights, similar to the FS Tron. However, on EDOT, they’re controlled by the game.  They will flash and such when certain game events happen. I can make this happen with Tron, using an interface to the game, and a ROM hack.

Above all, the modifications made must be reversible without any damage to the machine.  I do not want to inflict any permanent damage or changes to the cabinet.  I will simply add lighting, make a ROM hack to control the lights, and mount an additional board inside the cabinet.

To start with, I need a secondary micro to control the lights. I’ll use one of my stepper motor controller/Arduino devices. I made the FTDI programming and power interface seen above in about 30 minutes on the piece of strip board at Interlock this past Tuesday.  You can see the resistor/capacitor pair to handle the programmer’s reset, power, and TX/RX lines, and a red power indicator LED for the heck of it.

After a bit more work, I had the 3 LED driver chips wired up, with their 8 outputs, along with the 5 pin header which I’ll be using to interface it with the arcade machine.  The pinout there is two bits of input, 5v power input, and ground.  I’ll add in SPI-like (clock+data) communications from the TRON game.  I figure that the first version will just send down a packet stating the lighting effect, but in the future I can use this to send down high scores as well, which can be sent out via serial to a host PC and post them on the net or something like that.

At first it didn’t power on properly, and the LED driver chips got VERY hot.  Then I remembered that the circuit diagram I was referring to while soldering this up was incorrect and had power and ground reversed to the chip.  I also had + and – wired backwards for the LEDs as well. I forgot that these driver chips sink current, rather than sourcing it.  After a little bit of emergency soldering, all of that got worked out.

I’ve since cleaned up the wiring a bit, adding some insulation.

I decided to wire up the LEDs such that the current limiting resistor was wired up with the LEDs, rather than on the main board.  I’m glad I did this, as the resistance I picked (220 ohms) was way too high.

Enhanced image. It sadly doesn’t look quite this intense in person.

Experimenting with how it will look to have LEDs inside of the joystick to illuminate it.

 The output from these LEDs was much dimmer than I was hoping for. I will be experimenting with lower-valued resistors, as well as possibly doubling-up LEDs for lighting the various artwork elements.  I also need to figure out how to mount the LEDs without damaging the machine at all.

Next up is the ROM hack to talk with this!

from on February 2nd, 2013Comments0 Comments

Addressable LED Strands

I’m in the process of constructing/setting up my office in the house, and for lighting, I have decided that I want to use xmas light-style lighting.  Many years ago, I used to light my room with multicolored incandescent lights. I loved the warm indirect glow, and smooth light without a single light source.  This time, I’m going to take it a step further.

While there’s nothing about this project yet that is really innovative over what others have done, it is the first step to getting the office lighting done.  The real fun will come into play once I’m able to hang this up, and start programming effects, and tying those effects in to physical or time-based events.

A couple years back I picked up a strand of addressable LED lights, similar to this one, available at adafruit.com.  I got a strand of 50 lights, blew out one of them while being stupid, and used a few of them in Jasper’s Toy Box (posts to come about that eventually), so I’m left with 42 lights.  A nice number.

In any event, the plan is to hang them up around the upper perimeter of the room, and it will give a nice comfortable glow to illuminate the room.  I can also extend it by doing lighting effects with the color.  For example, in the evening I can have all of them dim blue, and randomly twinkle one to white, to simulate a star in the sky.  I could also tie them in to an automation system to glow a particular corner of the room red or yellow when i have email from a specific person.  I could also adjust their color based on the content of my monitor, or the light outisde, etc.

The basic design for the control circuitry is that there will be an Arduino-based AVR micro (actually one of the D-15 servo controllers I’ve appropriated), which is perfect, since the strands only need two lines to control them.  The host computer will send down codes to address the LEDs (set all to color X, set led Y to color X, etc) and this will pass on the content to the strand, and twiddle the data lines and all of that fun stuff.  I had considered putting more “smarts” into the micro, but the amount of space in there would severely limit the kind of content I could “display”, so I decided to put all of the grunt work back on the host computer.

To power it, I needed to get a 5 volt power supply. I snagged a power brick from an old external drive case, as well as a standard PC power connector, from a failed power supply, and spliced the two of them together.

Copious, yet appropriate amounts of heat shrink tubing and splicing some wires yielded a nice power supply.

Next, I built an interface board to tie it all together.  The ports on the board are (left to right) – 6 pin FTDI interface for serial IO, 2 pin jumper (power the D15 from the power supply rather than FTDI source), 3 pin power, 4 pin light strand connector.  You can also see in this picture, the process of crimping the terminals for the molex connector on the LED strand’s wires.

I kept the layout and pinout of the FTDI the same as I used for my serial node experiment.  This will help me plug that connector in correctly.  I still need to add visual cues (colored sharpie markings) to help me align the pins correctly.  The power connector has GND on pins 1 and 3, and +5V on pin 2.  Keeping it symmetrical will help me always plug it in correctly, reducing the chance that I will blow it all up.  The 4 pin connector is the same pinout as the wiring of the LEDs.  GND, Data, Clock, +5.

The jumper on the board (dis)connects the power header from the D15 and FTDI portion.  If I make standalone firmware for it, I can power everything from the power supply, if need be. The tiny green LED on the board just lights when the D15 has power.  A nice indicator in case everything else is not functioning.

The protocol I used for this is very simple.  There’s a command character sent through serial, then the data for that command.  If the firmware is expecting a command character but gets something it doesn’t understand, it just keeps checking the serial input for a command it knows.  The protocol is as follows:

p<index of LED><red value><green value><blue value>

Five bytes.  It sets the specified LED (0..42 in this case) with the specified RGB value (0..255 each).  Note that this is not an ascii string, it is data.  So no matter what, it is 5 bytes to change a single pixel.

f<red value><green value><blue value>

Force all of the lights to the specified color.  This is handy for clearing everything to black, or flashing/fading effects.

Here’s the Arduino firmware used to handle all of this:  (Note: it requires that the strand’s library be installed.)

For now, that’s it.  I made a simple interface on the desktop side in Processing, adapted from my previous controllable pixel software, to let me click and change the color of an LED. I also added some key commands to do simple effects with the lights. (all red/green/blue. flash, etc)

Eventually, I will write better desktop software which will use the LEDs for indication of events, as well as f.lux style color effects throughout the day, audio/visual synchronization to media being played, and other effects as well as time goes on

NOTE: All of the source/projects for this are available on github.

from on January 25th, 2013Comments0 Comments

Repairing an Arcade Monitor

I won’t lie to you.  Having an arcade machine is a lot of fun.  I used to have about 6 of them, but I’m down to two, due to space restrictions and general sanity.  The two that I still have are a TRON Mini/Cabaret, and a generic full-size cabinet into which I can put one of a few game motherboards that I have. (Dig Dug, Mortal Kombat, Klax, Rampart, and a few others.)  But one of the less glamorous sides of collecting machines is troubleshooting and repairing these 30 year old beasts.

I bought the Tron Mini in the late 90s as an empty cabinet.  I was having a difficult time back then finding an affordable Tron board/control set to install, so I instead put Satan’s Hollow into it.

Tron Cabaret cabinet with Satan’s Hollow – Note the red joystick and white “shield” button instead of the standard blue stick and spinner from Tron.

Over time, I found all of the parts needed including a few tricks to restore this.  When I put the Satan’s Hollow boardset in, I rewired/hacked/brutalized the wiring in the cabinet to accommodate SH.  Although SH used the same boardset, the controls were wired differently.  Once I got the Tron board, and realized how rare this machine really is, I re-wired it using a wire harness from a junked Tron machine.  I also found the correct power supply to install, repaired by a fellow collector.  The controls were also out of another junked machine.  Over time, I got the machine as restored as I could get it.

Tron uses a boardset, three boards connected together, from Bally/Midway called “MCR-2″.  It consists of a CPU/Program board, a Video/Graphics board, and a Sound/IO board.  Midway used this boardset for a few games, including Tron, Satan’s Hollow, Two Tigers, and a couple other ones.  If you have a ROM programmer (which I do), you can buy one of the cheaper boardsets to use as a replacement for one of the more desirable machines.  Tron boardsets, when I was last looking, sold for about $75-$150.  Two Tigers sold for about $40.  The boardset I have Tron running on right now is a Two Tigers boardset.

When restoring a game, there’s a line to walk with respect to what parts to put into it.  This machine has some vinyl veneer on the sides, which are somewhat damaged.  It also has a fair bit of wear on the front edge of the control panel.  I could have tracked down a replacement/reproduction for these parts, but I’d rather keep it factory original.  It’s not like the damage is too severe for either issue.  I’m actually very happy with the overall condition….  except for the monitor.

The cabaret/mini cabinet uses a 13″ monitor, compared with the full-size’s 19″ monitor.  The monitor on this one showed a wavy haze, distorting the image a little, and mucking with the brightness across the screen, which you can kinda see in this video.

I was given a solution about 11 years ago, involving modifying one of the boards in the monitor (the “neck board”, which connects directly to the back of the picture tube) but never did it, and lost the parts a few years ago.  I instead bought a “cap kit” from Amusements Plus around 3 years ago, and decided to install it.  The last time I did one of these was in 2001, so it’s been some time.

Love that desoldering iron!  The pump just clears out all of the solder super fast!

All of the caps in the cap kit have been replaced.  Shiny new caps on the board.  Old, dusty, puffy caps in the plastic bag.  I’m not entirely sure why I kept them…

Thanks to the awesome desoldering tool at Interlock, I was able to do this in about 45 minutes, rather than the 3 hours it took me years ago.

The board is mounted into the monitor framework, and reconnected to the picture tube.

Just about all of these knobs needed to be tweaked to get the picture looking its best!

After some calibration of adjusting all of the controls (focus and drive on the flyback transformer, and R/G/B Drive and Cutoffs on the neck board), the picture looked better than it has ever looked before! Which you can’t really tell from these pictures, but trust me, the picture is sharp, colors bright, and the imagery is stable. It’s like it’s a new monitor!

The boardset I had in it at first was the Satan’s Hollow with my ROM hack so that it will work as a drop-in for TRON arcade cabinets with no rewiring at all.

Yeah, a horrible high score, but just let me practice and remember my old strategies!

The above pictures were taken before I realized how much dust had accumulated on the picture tube and shroud.  I’ve since removed the artwork glass as well as the tinted plexi below that, and cleaned off those items as well as the picture tube itself.  That eliminated all of the haze, and improved the picture as well!

Hopefully, I’ll get 30 more years of life out of if!

from on January 16th, 2013Comments0 Comments