MIDIBrick (1998)


MIDIBrick is one of my classic projects from 1998.  It is a microcontroller platform specifically targeted at MIDI applications.  It is based around a Philips (now NXP) 80C552 microcontroller, which is one of the many 8051 variants.

Since this project hails from the days when flash memory and in-system programmability in 8051 microcontrollers were pretty rare, I designed in a device called a PSD (Programmable System Device) from the now-defunct chip company called Waferscale.  PSDs were wonderful things in those days, as they combined program memory, a small amount of SRAM, and a small programmable logic device suitable for address decoding and chip select logic into one package.  With a programming pod connected to the parallel port (similar to today’s JTAG programmers), you could program the flash memory and PLD in circuit.

Rounding out the core peripherals, an external static RAM device provides a large amount of data memory for firmware use.  To provide additional asynchronous serial options, a 16552 UART adds two FIFO-buffered serial ports.  Also, a signature of seemingly all of my designs of this time period, a classic  8255 programmable I/O controller provides an additional 24 digital I/O signals.  Headers for both alphanumeric and graphic LCDs are connected to the 8255 GPIO signals.

I prototyped several MIDI projects using this platform: A drum machine controller in the tradition of classic Roland 80s gear, an X-Y touch controller very similar to the ones found on modern gear, a MIDI LFO generator, and a replacement for the 68HC11 microcontroller board in the digital mixer control surface of the DACS project.

I also used the MIDIBrick as a platform to interface to all sorts of interesting things above and beyond typical MIDI stuff.  Notably, it was the platform on which I first successfully controlled an IDE hard disk drive, which was a critical seed of the CAVE MP3 player project.