I’ve always wanted a re-programmable Atari 2600 cart for some time now. There are already some on the market, including the Harmony Cartridge and the older Cuttle Cart, however these are expensive and overly complex. Plus building is more fun than buying.

Here’s are my goals for the ideal cart:

  • Holds only a single game at a time (avoiding the “tyranny of choice” created by a multicart).
  • Re-programmable via USB.
  • Supports all popular bankswitching methods.
  • Fabricated to a custom board.

Traditionally these carts use SRAM or flash chips in place of the mask ROM, however I wanted evaluate weather an Arduino could be used to emulate the mask ROM and associated logic. I testing how fast the pins could iterate bytes from an array, measuring the cycles from a Duemilanove board with a logic analyser (see below image).

write_speed_arduino_experiment

Arduino’s DigitalWrite() is SLOOOOOW. However, going lower level in AVR C I could read from PROGMEM (flash memory) and write directly to the ports with a more reasonable speed. Yet, this still didn’t satisfy my calculation for a cycle speed based on the 2600’s clock speed.

I’m now waiting on an order of a Maple Mini clone (STM32 based development board) that runs at 72Mhz (compared to Arduino Duemilanove’s 18Mhz). Whilst the STM32 has a different architecture to the AVR series, I have good confidence it will be fast enough as I believe it’s the same chip family as that powering the Harmony Cart (ARM 7).

To help me breadboard the build I sent a breakout board for the 2600’s cartridge port to fabrication at OSH Park. You can find the project here: https://oshpark.com/shared_projects/mh5CIxMW

Atari_2600_Cart_Breakout_Board

This is my first PCB so am excited to see how it turns out. Setting up the edge connector and PCB edge cut to fit a standard Atari 2600 cart case was painful to get accurate, especially as I was learning KiCAD as I went, but I think I got it right.

Next steps: Analyse the data response speed on real hardware (not just theoretical speeds) to get a clear target for the build, then build a simple emulation of Combat on STM32.

Back in February I picked up a pretty broken Briarwood Aspen pinball table on Craigslist for $50. I had gotten in to pinball as a game, was interested in the electromechanical engineering and was looking for a new project, so this seemed perfect. However, it turned out to be a much longer and more difficult challenge than I expected, but it was totally worth the time (and the stress).

Getting the Aspen home

Although I knew the table was a much maligned “home model” and not going to be comparable to any modern solid state table, I was super excited to work on it.

When I picked the table up the seller handed me a burnt out transistors from the main board and said “replace this”. The table did run, however, when hitting a switch on one of the matrix columns it was triggering a tilt.

Table on constant tilt

My first assumption was that there was a short, however, after spending a bunch of time tracing back the matrix and probing the board with my multimeter it seemed likely an IC, that I believe handles the matrix logic, had failed. This may have taken down the transistors (and so the chime box).

The suspected failed ITT 2002-5N

Unfortunately, it would appear this failed component (ITT 2002-5N) was custom and so getting a replacement was unlikely. However, I did track down The Pinball Resource who had picked up all of Briarwood’s spare parts when they had gotten out of pinball. I spoke with the owner Steve on the phone and he told me that they did indeed have a brand new replacement board, but that I shouldn’t buy it because it was $400 and “more than the machine is worth”.

This set me on a journey of building a replacement board using an Arduino Mega 2560 and some Veroboard.

Electronic Problems Solved

I ended up facing a lot of challenges during this project. The biggest amongst them was finding that I couldn’t get coils to fire through my transistor set up. It turns out looking at the table’s schematic proved real useful as each rail on the power supply was isolated, so as I was running logic off of 6v I couldn’t fire the 28v coils. I solved this by regulating a logic level off of the 28v rail. However, I did have to use a relay to switch the bonus lights which were on the 6v DC line.

The Power and Driver Board

Another was replacing the burned out chime coils. Lucky John at John’s Jukes managed to match the coils and the hammers could be saved.

The Burnt Chime Box

Code

I wrote a lot of custom (and some borrowed) code for the project and was at the time the biggest coding project I had undertaken. I ended up being able to control all of the hardware as well as have the machine score and offeral all of the features that the original board did. Surprisingly to me this was the most enjoyable part of the process as I’d traditionally considered myself more hardware than software inclined.

You can get the Arduino code at the GitHub repository.

Playfield Improvements

I made a couple of improvements to the playfield. The first was to buy a super kit which replaced the perished rubbers, but also all the bulbs, the ball and the plunger springs. The kit also came with a combined cleaner and wax for the playfield, which was great as it was in such a dirty state.

Whilst at the Northwest Pinball and Arcade Show in Tacoma, WA I also picked up a set of LED bulbs for the playfield from Pinball Bulbs. These are a really great addition to the table, making it much lighter.

Conclusion

Whilst the table isn’t the greatest to play, I ended up spending somewhere around $300 and it was pretty stressful at times, I would say I am very proud of this project.

It might seem odd that I spent so much time, effort and money in to rebuilding what many pinball fans consider junk, however to me the project taught me a lot. I learned a load about fault finding, switch matrixing, power supplies, code libraries,Arduino interrupts, pinball electromechanics and perseverance.

The table is now off to a new home (I’ve given it to a friend) and I’m on the look out for the next one already!

I recently had to get rid of my rarely-used oscilloscope due to space restrictions and started looking at alternatives. The handheld devices started from about $70, but had known of some PC kits.

I thought, couldn’t I just use the input for my PC sound card? So came across the Poor Man’s Oscilloscope. I also knew of $300 iPad oscilloscope, which was crazy money.

Sat lonely in my box of old electronics, however, was a upgrade-made-redundant Android device. A brainwave hit and I set about making my $0 oscilloscope. Here’s a video explaining it:

How to Build

The probe is a very simple modified mic and headphone set with a potential divider and some crocodile clips. You will need:

  • Android phone with OsciPrime Oscilloscope Legacy
  • 4 pole 3.5mm jack (e.g. a handsfree set that comes with a phone)
  • 2 resistors in a ratio of roughly 1:10
  • Probes (I used crocodile clips) with some cable (multicore is best)
  • Perfboard (optional – you could solder directly)
  • Heat-shrink / insulation tape

Below is a diagram of how to wire. The potential divider simply reduces the voltage in to the device, lowering the risk of killing the mic-in circuit in the phone.

The circuit is very basic and you could make it all in under an hour, but it’s certainly not fool proof. A more complex alternative using op amps can be found on this Instructable.

You may also run in to the problem of the headphone wire being annoyingly coated. I simply burnt these with a butane lighter, but you can read more on the technique here.

If you also build one, would be great to hear how you get on.

20120715-102717.jpg

In my previous post I tore apart a Famiclone aka NOAC (Nes On A Chip) with the grand name of Twin Lightblaster Joypad. Today I’ve gone further, by miniaturising and modding the circuit further to fit inside of a NES or Famicom controller.

I had to do three things:

– Get it running of off external power
– Cut the second D-Pad (bottom middle of the board)
– Wire connections for the controls

Running from external power was easy. I hooked up my variable bench power supply I’d recently built with an LM317 regulator (see this Afrotechmods video on YouTube) and set it to just under 6v. Switched it on. Bingo!

Next I followed the AV back up the board to where I could get a signal (a row of inductors), cut the second d-pad out, rewired and tested. First time I got a picture (see the multi ROM in the below picture). And it shrank the board by almost a third.

Next up: Buttons!

The thinking went: As the AV signal went past the D-pad, I could hook up on the same set of traces. It turned out even better, as the traces ran to the same set of inductors. I soldered these up using some cabling out of and old Ethernet Cat 5 cable, then grounded each, noting the colour and direction.

The Famicom, unlike the NES, only has Start and Select on the first controller (marked I), however this clone has those buttons on the second controller. Could I then hook up those buttons on the nice solder pads left when I desoldered the second port? Dabbing around with a ground wire, I shorted one of the pads and the whole thing died.

One thing I had noticed on this board in the tear down was the reverse polarity protection (a parallel diode and a fuse). Luckily it was only the fuse killed – jumping across it brought the thing back to life. A new one has been ordered from eBay.

To finish up, I soldered up to the button pads on the board directly. Then gave everything some thick glue gun glue and some insulating tape to keep everything secure and less likely to short.

And here’s where I left it:

Back of the board with AV and controls wired

And the front of the board with Ethernet wires soldered on. The cut second D-pad on the right.

Video from [Legion2000] on YouTube

Another purchase from the car boot was this £1 curio. It’s a NOAC (NES On A Chip) Famiclone. Two controllers, one that hooks up to the TV (containing 4 x AAA) and a second that connects to the first. They’re intended to look like N64 controllers, but the hardware inside is a NES clone with 21 games (see this great post on NOACs by Ben Heckendorn).

The 21 titles are original NES games reskinned with new, often bizarre, graphics. Particularly odd is the Super Mario Bros clone called Panda. Very bleak. Very existential.

On the bottom is an edge connector for Famicom carts. Although the hardware is the same the connection across the NES and Famicom are different (there are more, albeit unconnected, pins on a NES cart). It also has a Zapper built in and a little trigger where you’d find the Z button on an N64 controller. Duck Hunt has been reskinned as an alien shooter and Hogan’s Alley has animals with guns.

Here it is cracked opens. Those three black blobs are where the ROMs and NOAC are. The lead out the bottom is composite video and L & R audio. Although they’re wired together as the NES is mono. Also at the bottom is the D-sub connector for the second controller. A Master System or Mega Drive controller fits, but I haven’t tested. I wouldn’t be suprised if they used the same control scheme as there’s no shift registers used in the NES in the system.

Composite leads.

Composite coming off of the board. Not the neatest soldering job I’ve seen. These connections, like a lot of the board, was covered in a thick glue.

The D-sub player 2 port and the trigger button. At the top of the picture you can see two LEDs and the sensor for the “Lightblaster”. The two LEDs seemingly have no function, but come on when you shoot. Totally pointless because you’re looking down the barrel anyway. I only noticed they came on when I saw their reflection in the screen.

The intention is to do something cool with this at some point. Possibly putting the whole lot inside an original NES controller. So, I decided to desolder the light gun parts: The sensor, two LEDs and the trigger. Here’s the back.

And the front. The two wires you can see at the top are the power inputs, nicely colour coded (red +, black -). These were wired to two springs which connected to the battery cartridge. The cartridge fits in to the expansion slot, like a rumple pack, housing the AAAs and springs back out again. Nice design feature.

The buttons short across those pads using rubber domes with carbon sections in, grounding the buttons. There appears to be some tidy places to solder in to as I know there are in a NES pad, so could be an easy weekend hack to finish up.

All I now need are:

In my last post I explained how I managed to open up a SEGA cart. The Master System uses a 28 pin mask ROM, which can be replaced by a 27c series EPROM easily. I’ve seen people building EPROM carts using these chips for Mega Drive.

So, when on opening the Mega Games 1 cart I had I found a 42-pin Mask ROM I was a little confused.

Here’s the PCB.

My thinking is this: The Master System is a 8-bit machine, so the cart has 8 data bits, 16 address bits, V+, GND and some other things, like chip enable.

The Mega Drive is a 16-bit machine however, so it would have 16 data bits and 16 address bits. Doing a bit research that appears to be accurate.

Here’s a schematic of a cart (using two AT49F040 Flash chips) on Ralphnet.net