Homebrew Programming With Diodes

diode

Diode matrices were one of the first methods of implementing some sort of read only memory for the very first electronic computers, and even today they can be found buried deep in the IPs of ASICs and other devices that need some form of write-once memory. For the longest time, [Rick] has wanted to build a ROM out of a few hundred diodes, and he’s finally accomplished his goal. Even better, his diode matrix circuit is actually functional: it’s a 64-byte ROM for an Atari 2600 containing an extremely simple demo program.

[Rick] connected a ton of 1N60 diodes along a grid, corresponding to the data and address lines to the 2600’s CPU. At each intersection, the data lines were either unconnected, or tied together with a diode. Pulling an address line high or low ([Rick] hasn’t posted a schematic) pulls the data line to the same voltage if a diode is connected. Repeat this eight times for each byte, and you have possibly the most primitive form of read only memory.

As for the demo [Rick] coded up with diodes? It displays a rainbow of colors with a black rectangle that can be moved across the screen with the joystick. Video below.

Comments

  1. rj says:

    I wonder what kind of power consumption and propagation time we’re talking about here?

  2. Trui says:

    The back looks like a mess, though. Since the diode array has a very regular structure, it should be possible to do a much nicer job.

  3. jim says:

    Nice work! Pretty inspiring stuff, really.

  4. Erororo says:

    Very very nice! this made me drool!

  5. SavannahLion says:

    Why 1N60 Schottsky diodes? Would any diode, like the 1N4001 do the trick? What I mean is, why did you choose 1N60’s?

    Why not use SMT circuit/board? IIRC there’s a few protoype SMT boards available out there. Pack more into the same space. A quick Google shows a couple of white sheets for 1N60’s in a SMD package so I guess they’re available somewhere.

    • Erik Johnson says:

      Have you seen the backside? SMD makes wirewrapping…slightly harder.
      Perhaps the voltage drop of regular diodes was too much?

    • Bill says:

      If the diodes are used to program the zeroes (which makes sense with most decoder chips), a standard diode will have a bit too much voltage drop to meet the spec for a TTL low level.
      In spite of that, I got away with it when I made a similar circuit in the late ’70s.
      Mine was a three byte ROM, to insert a JMP instruction on the bus of an 8080 computer at startup, so the EPROM could be at a higher address than the reset vector.

    • dutado says:

      1N60 is not a Shottky diode, just a germanium point-contact diode.
      1N4001 may be too slow for this job – because of PN junction capacity and recover time.

    • tekkieneet says:

      IN4001 is a rectifier diode. It has huge capacitance because it is for higher current (1A) and for rectifying *slow* AC like 60Hz. You wouldn’t even want that for a switch mode power supply at hundreds of kHz let alone digital stuff at MHz.

      You might want to use small signal *switching diodes* like those 1N914/1N4148 or schottky diode for applications like this.

  6. cuagn says:

    This refresh my mind with my first logic project (based on DTL chips) : a 1024 bits ROM build with diodes and containing a morse message for an Ham beacon. 45 years ago…

  7. bleullama says:

    I experimented with Diode ROMs last year; http://geodesicsphere.blogspot.com/2013/10/visualizing-roms-1-diode-matrix-rom.html It was pretty darn fun, and it’s neat to SEE the data sitting there. It’s not something you can usually see. (I only did 4 bytes, and I wasn’t concerned about conserving space.)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 92,295 other followers