Sunday, October 26, 2014

Burning EPROMs for Old Drum Machines in Windows XP

Many old drum machines like the Sequential Drumtraks, Oberheim, E-mu and Linn use sound that is stored digitally on microchips called EPROMs. It is possible to change the sounds by swapping out the factory EPROMs with ones that have our own custom data burned into them.


WHAT ARE EPROMS?
EPROM is an acronym that stands for Erasable Programmable Read Only Memory. We can write memory onto these chips using a programmer only if erased properly. EPROMs are re-usable devices, where ROMs are not.

DEVICES I USE FOR BURNING EPROMs
1) I make use of an older Windows XP desktop computer with a serial connection cable. Back in ye olden days dot-matrix printers were connected to the computer using the serial cable.

2) To erase the EPROMs I use an ultraviolet light erase machine with a timer that is easily available on ebay for $10 or $20.

3) I also use an old Willem Programmer from ebay for around $30 or $40. The programmer should come with a software disc, if not just go to their website and download the needed drivers.

4) A 12 volt DC power adapter like those from radio shack. You can also find used power adapters for really cheap at common thrift stores.

DATA FORMAT
You can find many files you need on the internet. I use .bin files, which stands for binary. As long as the .bin files contain the appropriate sample data or operating instructions for your objective there should be no problem. Make sure the memory size of the chip matches the device it will be installed. I'm burning a 32kb chip today for an MMT-8, so I'll be using a 2732 EPROM where 27xx is the type of EPROM and xx32 is the memory size of the chip. (EDIT: I didn't have the MMT-8 in front of me and it turned out to be the wrong chip. I try to check all facts before I post, but I must have looked at the wrong thing on my schematic. Sorry for any confusion.)

HANDLING SENSITIVE ELECTRONIC DEVICES
The programmer and the EPROM chips are sensitive to electro-static charges. Ground yourself by touching something metal to ground like a sink faucet to dissipate static charges that build up in your body to prevent damage to the devices. I also wear an anti-static strap that draws out static charges in my body and dissipates them safely.

CONNECTING THE PROGRAMMER
Connect the 12 volt power adapter to the programmer and make sure the lights come on. Connect the serial line cable to the computer and the programmer. USB cables only provide 5 volts of power so I do not use it for this purpose. Before I can burn the EPROM I need to make sure the EPROM chip is completely erased, then resolve a couple of nagging issues with Windows XP.

ERASING EPROMs
Erasing EPROMs is simple. First make sure the clear window on the EPROM is clean. When you look down through the window of the chip you will be able to see the actual microchip inside. Then put the EPROMs into the drawer, close it and set the time for 5 to 10 minutes. The UV eraser uses ultraviolet light that will nullify data residing on the chip. As a safety note do NOT stare directly into the ultraviolet light, it can have serious consequences to your eyes.

WORKAROUNDS IN WINDOWS XP
You may encounter input/output errors when trying to use the programmer the first time. To burn EPROMs we want the software to have instant and direct access to the programmer but Windows does not allow this. As a workaround we will need a little application called userport, do not worry - it is safe to use because this little app is recommended from the Willem Programmer website. I open the userport program and 'add' addresses 0-378 to be direct control enabled. I am not sure the exact address the serial connection will be using, but enabling a whole set of addresses will ensure things will go smoothly. I leave the userport application running in the background. When I am ready to start the Willem Programmer Application, I right-click its program icon and set compatibility mode to 'Windows 98'.



SETTING UP THE PROGRAMMER
The programmer I am using can host a large variety of microchip devices. Which EPROM I am actually using will require that I make the proper jumper settings to the programmer. Jumpers are simply a set of small bar contacts that slide over small pins to create electrical connections. In this way we can change the circuitry to fit our needs for different situations. Do not sweat this, because the programmer application will actually show you which jumper settings to use once you have selected the appropriate chip from the menu. Next you need to set the DIP switch to match what the program shows. The program also shows you the correct position of the chip in the programmer. Take special note of the correct position of chip PIN #1 which is indicated by either a notch on the top edge of the chip or a small dot next to the pin itself.




CHECK THE EPROM IS BLANK
Install the EPROM chip in the programmer and, using the computer software, do a 'Blank Check' to see that it has been completely erased. Even if one single data location does not return a null value you will receive a 'Device Not Empty' message and will need to put the chip back in the ultraviolet light eraser.



AT LONG LAST, CAN WE BURN THE CHIP ALREADY?!
At this point the userport app should be running in the background and have the direct control still enabled. Using the computer software that came with the programmer, browse to find the .bin file to load its data into the buffer, and burn the chip. Once you have burned the data, you will need to verify the data. If anything unusual happens, the application will tell you, and you will have to erase the chip again and start over. Or try a different chip if you have erased more than one at the same time. When you are satisfied the chip has been burned properly, put a piece of acid free tape over the clear window to prevent accidental data corruption. Once finished go back to userport, select the addresses specified earlier, and click the 'Stop' button to deactivate direct control. Then exit the application.





This process is what works for me. You may or may not have the same experience or face the same issues. But hopefully this will give some insight into how burning EPROMs could be done and what issues you might face. Hopefully newer EPROM programmer designs have resolved some of these issues. Happy programming.

3 comments:

Zack said...

Any chance you could upload the MMT8 1.11 firmware? I can't find it anywhere.

Sandrow said...

I have a Emu Drumulator.
Stock set is made of 4X 27128 Eproms, each one is handling one sound bank.
I saw a guy on the net that was able to write 27256 in order to get 4 banks each Eprom.
Each Eprom contains data that are organized in 4 "Pages".
A switch is installed in order to select which "page" should be output to data lines.

https://www.youtube.com/watch?v=8aODNJYfakc&ab_channel=DeftAudio

I am wondering how to burn 4 different .bin to one Eprom.
Is there some " Merge" function to do that?

Thanks.

Zack said...

You just need to concatenate the files. You can do it in from the command line, or in a hex editor, etc.
Then you just burn the file like normal.