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 BleuLlama on January 16th, 20130 Comments
Some nights when I head to Interlock, rather than having one single project, or a part of a larger project to work on, I have a bunch of little things I want to get done. They have the tools and materials I often need to do this. This past Tuesday was one such night. I had four things I wanted to work on, and I got all four done!
1: I like to put handles on things. My favorite handles are from Lowes or Home Depot, and are called “wire drawer pulls” as seen in the image above. They’re relatively inexpensive at about $2, and are simple to install. Generally they would be put on drawers in a modern kitchen or a clinical-type setting, but I like to put them on everything. If something is portable, it should have a handle. I just drilled two small holes in the plastic parts bin seen above, shoved the screws in from behind with some washers, and done! I’ve used these handles for portable drive carriers, and other now-more-portable things.
2: My son, Jasper sometimes breaks his toys. I usually am the one who fixes them. Above are two wood bolts from his workbench. The threaded screws came out of the bolt heads. I just scraped out the glue from the holes, and cleaned up both sides with a rasp and some other things that probably weren’t designed for such things. I added some wood glue, threw them in these clamps, and returned the screws to Jasper in the morning.
3: I had tried to fix my DLP projector a few weeks back. There was something in the light path making half of the image dim such that if you shook the projector, it would clear up a little. I tore it down, and right between the spinny color wheel and the mirrors in front of the DLP chip is this little mirror tube collimator. The glue holding the four front-surface mirrors to the rectangular metal box had failed, and the mirrors became loose. A couple weeks back, I had tried gluing it back together with epoxy, and it seemed to work, but a new, harsher shadow was in the projected image. I needed to get some dental tools, mainly the little mirror tool, to see what was going on. Sure enough, this little guy was aligned incorrectly. A bunch of futzing with it later, and it is now fully functional!
4: I have been building little breakout boards for my stepper motor controller-turned-arduino boards. I decided that for the animatronic bird project, I wanted to have a way to input joystick data. I made a small adapter to go from PC Gameport Joystick to the widget. I followed this project here for the correct circuit — basically just some pullups on the digital button inputs, and some pulldowns for the analog axis inputs. I only wired up the first X/Y pair as the widgets only have two analog inputs available. It was relatively simple to build. I had built the main breakout board the night before at home, and i made the orange-wire to Gameport connector cable at Interlock. With help from Nick, providing the old joystick, before I left i had written an auto-scaling display of the current joystick state. More about this to come in future posts.
All in all, it was a densely packed evening, with four mini-projects completed. Huzzah!
from BleuLlama on December 18th, 20120 Comments
One of the tools I will need for my Animatronic Avian project is a vacuum forming tool. To be honest, I’ve wanted one since I read an article on the web about how to make your own Stormtrooper costume in the late 1990s. It now seemed like a good time to make one, as I’d like to use it for producing the bird parts, and it seems pretty straightforward, so within a week, I was at Interlock, crafting up a vacuum plate.
The basic design I’m going with for the vacuum plate/box is a small box, with a shopvac connector on the bottom, pegboard as the top, screwed together, and metal foil taped to seal air gaps. This is sort of a mixture of a few different designs I’ve found on the net. The material will go on its own frame, heated by a heat gun, then pushed down onto the vacuum frame, with the shop vac turned on. The softened material will get sucked in tight against the mold, forming it into that shape.
The basic frame is 12″ square. I cut the pegboard to 12″x12″, and I cut a scrap of wood to 12″x14″ for the base. I made this one larger so I could clamp it to a desk to keep it stable.
For the frame of the base, I ripped some 2×4 pieces into 2×2 ish stock. To make this easier to assemble, I made four of these, cut to 10 1/2″ long, and arranged them so that they butt up against the others, as seen in the picture above. They went together fairly cleanly, but there were some air gaps, but this isn’t important as the foil tape will seal it up later. I specifically wasn’t concerned about tolerances on this as I knew the tape would cover it anyway. The stock is held together using metal brackets, also seen in the above picture.
The base plate got a 2 1/2″ diameter hole in it to accept the shop vac hose. I would have used a hole cutter to do this, but I didn’t have one. Instead, I drilled a pilot hole and used a scroll saw to cut out the hole.
The frame is then screwed to the base plate (pre-drilling all holes, of course) and to the pegboard using drywall screws, AKA the “duct tape of screws”.
Next comes the foil tape to seal it up. Finally some door weather stripping to act as a good seal with the material frame.
The material frame was made with some 1×2 stock or whatever this was, from the scrap pile. It was simply drilled and screwed together with more… drywall screws!
The material is taped to the frame (for now… in the future, I’ll build a better, less cumbersome way to secure the material.)
Then I heated it with a heat gun.
When it was time, the shop vac went on, and I lowered the framed material down onto the plate.
So… How did it work?
Not great. It was ridiculously difficult to get the material heated consistently and hot enough. The heat gun would burn a hole through the material if left in one place, but the material cooled off too quickly if you moved away from it for too long. I need to build a heater rig to prepare the material.
I attempted to re-heat the material with hopes of getting it hot enough to pull in, while the vacuum was on. It helped a little, but was quite tricky to work with. I then removed the foamcore miniature arcade machine, and continued, thinking its height might be an issue.
I overheated some of it, melting through the plastic sheet. Oops. But you can clearly see the Duplo blocks, and the stupid Jar-Jar in the plastic. Unfortunately, Jar-Jar made it unscathed.
One thing I wasn’t expecting was the odor of the plastic, especially this green plastic seen above. MAN, does it smell horrible. When you see people mentioning “work in a well ventilated area” they aren’t kidding. The plastic continued to have a foul odor for a few hours after it cooled down. I had to drive home from Interlock with my windows down.
It shows promise, but it’s not quite there yet. I wouldn’t call it a success, but I wouldn’t call it a failure either.
from BleuLlama on December 7th, 20120 Comments
Our kitchen timer has been acting up recently, and with Thanksgiving quickly approaching, I needed to do something about it. The push button for the start/stop function has been getting harder and harder to use. In the past, I’ve cracked it open and cleaned out the pad underneath the rubberized button membrane, but this time, doing this didn’t work. I also wanted a more permanent fix.
I decided to replace the membrane switch for that function with one of these tactile buttons. I just had to make sure that the solder pads would line up. I worked out an orientation in which the solder pads would match the pushbutton pads, as you can see in the next image.
The only issue is that rather than the rubber membrane sitting flush with the board, it now had to accommodate the shape and size of the switch along with the button which extended out quite far. I used a pair of diagonal cutters to nip away at the rubber from behind to recess the switch into the button itself, Ben Heck style.
You can see this in the top right of the gray membrane. The two contact pads have been removed, and instead there is the hole, into which the switch recesses. The hole was made fairly crudely, but it works!
It’s been accidentally abused over the years, and as a result, the screws on the bottom no longer hold it together as the plastic has broken enough. The strip of electrical tape around the base does well to hold it together while still looking super stylish! NOTE: It’s not actually very stylish, but rather, functional and should last for many years more to come. No reason to throw it out, when an hour or so of work will get it fully functional again!
This post was originally posted on Scott’s blog here.
from BleuLlama on November 30th, 20120 Comments
This is a continuation of a previous article. Quick summary: I tried to build a device for dumping an EPROM via Arduino, and I constructed a device that had no chance of working. Oops.
This post will continue where that one left off. I’ll walk through some of the process to hopefully get to a solution that works…
To summarize the overall project; I want to build a device that will illuminate an UV light-erasable ROM (EPROM) device, and also dump out its contents. I will then take the contents, display them as a graphic, and animate them over time as the bits fade away into an erased oblivion.
When we last left this, the above circuit was what I was going to work with. The Arduino would shift out a 16 bit address, which will be stored in the 74HC595 serial-in, parallel-out shift registers. Those would output to the address lines of the EPROM device. The 8 data line outputs of the EPROM then are read in directly by the Arduino. I started to look around for the parts, and I was planning to buy them from Sparkfun.com, for a very reasonable price. I was all set to place the order, but then I started thinking about other ways to sample the data, and then it hit me…
In the late 1980s, I had an Amiga 1000 computer (see previous post about restoring it). We used Macintosh SE computers in High School, and as a result, we bought the “AMAX” Macintosh emulation system for the Amiga. It was a lot easier to carry a floppy or two, rather than a SE or SE/30 in a plastic milk crate, not to mention that MacWrite was a substantially better word processor than TextCraft.
AMAX consisted of software you run that emulated the Mac’s hardware, as well as a “cartridge” that plugged into the floppy drive port of the Amiga. I remember hearing that they went with the floppy drive port because it was the only appropriate port identical on all Amigas that were available at the time. (Amiga 1000, 500, 2000).
The cartridge served two functions. First, it let you plug in a Mac floppy drive right into the Amiga so that you could read and write 800k Mac floppies directly. There was something about Amiga drives and Mac drives supporting a different number of drive speeds, so full Mac compatibility on the Amiga’s drives was directly impossible. Future versions of AMAX that used an internal card on the Amiga 2000 worked around this issue. It was possible to make a floppy that supported just the sectors/speeds that were the same on both, but they only stored 272k of content. But I digress…
The other function of the cartridge was that you needed to plug in Mac roms into it, which the software would read in as it starts. Rather than storing the ROM on the Amiga, this protected the copyrights or whatever. But the important thing here is the function. I had picked up a few AMAX cartridges for $2 apiece at the awesome Active Surplus on Queen Street in Toronto a bunch of years back, so I dug one out.
Left-to-Right, you see: Amiga D23 floppy connector, for connecting it to your Amiga, two 28 pin rom sockets, two 74LS393s, one 74LS165, a resistor, some diodes, a 74LS139, the Mac D19 floppy connector on the bottom, then the Amiga D23 floppy connector for adding additional Amiga floppy drives.
I’ve started to trace out the circuit, but it became obvious quickly that it was optimized for board layout rather than what I would consider to be a sane arrangements of data lines. For example the 8 data output lines of the ROMs go into the 74LS165 PISO shift register out of order, so they need to be reshuffled once captured in the host computer.
Instead I decided to desolder the chips! My guess at the original function is something like: the Amiga issues a clear to the 74LS393 binary counter chips, ganged together to yeield a 16 bit output, rather than two dual-4 bit outputs. This will reset their 16 bit output value to 0. The 74LS165 parallel-in, serial-out register then latches the 8 bit output from the ROM, and provides it through shifting to the Amiga via the floppy port. From there, you need to simply pulse the clock on the ’393, and it will increment through every address. Then you just latch and shift in the data. There’s also a 74LS139 demultiplexer, which might be responsible for sequencing through those events, or perhaps something to do with the Mac floppy drive. I had a slight mishap and lost the 74LS165, which is okay since I didn’t need it for this project anyway. Regardless, $2 plus some time — I’m already ahead and I haven’t even removed the D23s yet (which are the same size as Amiga RGB Video connectors! Perfect for another project…)
For fun, here’s the board with no components on it.
With a slight change in gears I can adapt my design to use the parts I now have in my toolbox thanks to my desoldering tools. Instead of the Arduino shifting out an address, it will instead do the process described above. It will first clear the 393s, then alternately cycle between clocking out a pulse to increment their values, and reading in the value directly. Since I’m accessing the ROM data from start to finish, sequentially anyway, this solution works out perfectly. I also show four LEDs in the above diagram. Three for various status, one for UV illumination.
Here is a close up of a 27C128 part. This one has Pac-Man programmed onto it… of course. You can see through the quartz window, and down onto the EPROM silicon itself.
Here we see the pins on the Arduino, and how the connect to the shield’s bus connections, along with the LEDs. I could draw this up in a computerey drawing program, but sketching it out in Sharpie on graph paper is just quicker… and more Mimsian.
Here are the two 74LS393′s. You can see their connection to the address lines on the ROM, as well as the cascading of the counter, e.g. from 1QD to 2A, and from 2QD to 1A on the second chip.
And the wiring for the 28 pin socket, including the 3 pin (two-way) jumper so that i can use smaller 24 pin parts as well.
About the UV illumination… The data sheets for the EPROMs show that they should be erased with 253.7 nanometer light, at 15-20 minutes, 2.5cm distance at 15 Watt/seconds per cm^2. I dont know how to measure this with respect to LEDs, but I’m going to just wing it and see what happens. The sheet also says that 253.7nm is the optimal wavelength for erasing them, but anything below 400nm should work. I believe the UV LEDs I have are somewhere between 350nm and 400nm, so it should work. The other issue is that the LEDs are substantially less powerful, probably a tenth to a hundredth the power. We’ll see once we get this going, but I expect it will take on the order of weeks to erase a rom, rather than minutes.
The good thing about this project, in comparison to using EPROMs functionally, is that you want speed of erasure for functional use. I personally found that my eraser worked on most of the devices I own in about 10 minutes. I would often have a chip or two in the eraser, while programming and debugging others. It worked out fairly well. For this project, it’s completely okay if it takes on the order of hours to erase a device. I’ll find out how well it works once I get it going. I may use more than one LED just to speed it up a little, in case it takes on the order of days instead of minutes or hours.
I started laying out the board at home, wiring in just the LEDs, and figuring out the best layout for the chips. I used the DIY shield for Arduino from AdaFruit.com as the foundation to build this upon. I wanted to leave space for possibly using larger chips in the future, so what is the bottom of the board here has space for a few extra data lines if i re-route that red power line. The ’393′s are layed out so that the one on the right, which addresses bits A0-A7 has four of its lines directly lined up. This was to try to make it a little easier to wire up.
I bought some wire wrap wire for address, data, and control lines, and did most of the work of wiring those up one evening at Interlock. I used red for control (counter clear, clock data cascade lines) as well as eprom address lines. I used blue for data lines. In the above pictures you can see how the wires were routed around (there was some more writing on the bottom, obviously.) You can also see how the UV LEDs are mounted with some stiff solid core wire. I reduced the number of LEDs to two plus the UV LEDs for no real reason at all. (There is an Arduino underneath there somewhere…)
On the two images above, you can see a jumper on the left of the first image, bottom of the second image… this changes what one pin is used for. For smaller EPROMs, pin 26 of the 28 pin footprint is used for VCC, powering the chip. In the larger packages, VCC is moved to pin 28, and pin 26 is used for Address line 13. It’s confusing. A table that shows all of the pinouts doesn’t really help too much, but it was necessary so that I could figure things out for wiring it up.
Next is firmware. I wrote a pretty simple program for the Arduino that simply enables the EPROM, resets the counters, then clocks through the addresses, reads them in and sends that data down through the serial link. After getting the enable lines wrong (active low, rather than active high), I managed to get it spitting out actual accurate ROM contents. As you can see in the above, it read out of the ROM (right half) 0xf3, 0x3e, 0×00, and so on. In a disassembly of Ms PacMan on the left, you can see these bytes in cyan, just to the right of the red numbers 0000, 0001, and so on.
The other half is a simple program that runs on a host computer that simply reads in serial data and logs it out to a file. That content looks like this:
I’ve now had this running for 12 hours with no change in the bits at all. I’m thinking that it will require running for upwards of a week or two to have any affect on bits. I may need to just drop the Arduino and ROM shield into my eraser to get the results I’m looking for… or at least a “control” to prove that the idea has a chance of working from here.
If nothing else, I now have a way to read EPROMS from an Arduino. Awesome!
from BleuLlama on November 14th, 20120 Comments