Making a EPROM Burner
Moderators: B00daW, Moderators
Making a EPROM Burner
I am on an extremely tight budget and need to have a way to develop NES games, but I cannot spend more than $30. I have an Arduino Uno and an Arduino Leonardo, some 4021 Shift Registers, and I want to know if that is enough to make an EPROM burner / programmer. I need to be able to burn 256kb EPROMS (I'm going for a total of 512kb when PRG and CHR roms are both included) and I am relatively new to EPROMs and hands-on electronics. I have a working knowledge of the 6502 and 2A03, as well as lots of documentation.
so my question to you is if I can make an EPROM burner / programmer that can make these, a good explanation for beginners of how EPROM programming / burning is done.
...And just in case they exist, are any $30 or less EPROM burners / programmers? I don't care if it uses an LPT, 9 pin D-SUB, USB, or, hell, even RS/232 or a beBox Geekport. As long as it works, I probably have the required hardware somewhere, or know someone else with access.
...And no, I don't want a copyNES and a powerpak lite. The powerpak lite is cheap enough, yes, but the copyNES is $70 and I really don't want to go more than $5 or so over budget.
Okay, so now I've ranted, and I would really appreciate a reply, even if my hopes are in vain.
And I'm really new here, so please correct me if I said anything incorrect, and please help me figure out which EPROMs I would use. I want to be doing MMC3 development, and I need compatible 256KB EPROMS (one CHR and one PRG).
My neighbor used to work for Verizon, and he actually has a really great repetoire of knowledge of the 6502, the 8086, and a lot of other old stuff. He gave me my soldering irons and he's really swell, so he can help me out if possible, but I need a poke in the right direction.
...Fun fact: the phone redirection systems at verizon still use 8080s! Isn't that weird?
so my question to you is if I can make an EPROM burner / programmer that can make these, a good explanation for beginners of how EPROM programming / burning is done.
...And just in case they exist, are any $30 or less EPROM burners / programmers? I don't care if it uses an LPT, 9 pin D-SUB, USB, or, hell, even RS/232 or a beBox Geekport. As long as it works, I probably have the required hardware somewhere, or know someone else with access.
...And no, I don't want a copyNES and a powerpak lite. The powerpak lite is cheap enough, yes, but the copyNES is $70 and I really don't want to go more than $5 or so over budget.
Okay, so now I've ranted, and I would really appreciate a reply, even if my hopes are in vain.
And I'm really new here, so please correct me if I said anything incorrect, and please help me figure out which EPROMs I would use. I want to be doing MMC3 development, and I need compatible 256KB EPROMS (one CHR and one PRG).
My neighbor used to work for Verizon, and he actually has a really great repetoire of knowledge of the 6502, the 8086, and a lot of other old stuff. He gave me my soldering irons and he's really swell, so he can help me out if possible, but I need a poke in the right direction.
...Fun fact: the phone redirection systems at verizon still use 8080s! Isn't that weird?
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
Re: Making a EPROM Burner
If you're really on a tight budget and only looking to develop NES games I wouldn't suggest EPROMs. They have a pretty high initial investment with a ~$40+ burner and ~$10+ eraser. You can actually get started with flash/EEPROMs for quite a bit cheaper due to simpler programming and erasing abilities if you're willing to put in a little effort. If your handy with a arduino/microcontroller kit you can easily build yourself a flash/eeprom programmer/eraser. Or you can even build yourself a kazzo for well under $20 if you're good with an iron. I've written new firmware/software for dumping and flashing flash/eeproms that's compadible with Nintendo's original unmodified ASIC mappers like MMC1,2,3,4 etc. The software/firmware is kinda in the early beta release stages but I'm willing to share it as it currently is. The original creator's software/firmware is capable of doing the same thing I believe although the documentation is challenging as it is in Japanese and sparse.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
Re: Making a EPROM Burner
If you must use preexisting microcontroller hardware, use ROMs that supports 5V-only programming, like flash or EEPROMs. I built a 28C64 programmer in ~two hours (90m wiring; 30m code) using a PIC and a C compiler.
EPROMs require 12V+ and that requires huge obnoxious repetitive buffer circuits that will eat into your budget. Don't do it.
EPROMs require 12V+ and that requires huge obnoxious repetitive buffer circuits that will eat into your budget. Don't do it.
Re: Making a EPROM Burner
I made a sst39sf040 programmer using an arduino uno and 3 74hc595.
The sst39sf040 (cost $2 in single quantity at digikey) is cheaper than some eproms and does not need 12v only 5v and it is still in production and it does not need uv light to erase.
Here is the wiring: Pin refers to the numbering on the arduino uno.
The D0:D4 to go A0 to A4
D5:D7 go to Pins digital pins 5 to 7
Pin 11 CE#
Pin 12 OE#
Pin 13 WE#
Pin 10 is the serial strobe for the shift register this must be connected to all 3 shift registers
Pin 9 is the storage register this also must be connected to all 3 shift registers.
Pins 2,3 and 4 is the serial output pins 2 is the LSB. Unlike pin 9 and 10 those are different per each shift register.
A0:A18 goto the output from the 3 shift registers. Make sure you have which one is LSB and MSB right.
I will warn you that this can get messy as there are lots of wires be careful and check your work. My program verifies every byte if you see any errors check your wiring.
Here is the part that runs on the arduino uno
https://github.com/ComputerNerd/sst39sf040-avr
Note that I used avr-gcc instead of the arduino IDE to compile this if you do not have avr-gcc it can be modified with ease just change int main() to void setup() and add void loop() {} at the bottom of the program and I think it will compile just fine in the arduino IDE.
And here is the part that runs on your computer I have only tested it on linux but I used a cross platform library so it may work on windows
https://github.com/ComputerNerd/sst39sf040-computerside
Also my code can be easily adapted to run on the very similar lower capacity chips. The sst39sf020a and the sst39sf010a. Just change the main for loop to run for less bytes.
The sst39sf040 (cost $2 in single quantity at digikey) is cheaper than some eproms and does not need 12v only 5v and it is still in production and it does not need uv light to erase.
Here is the wiring: Pin refers to the numbering on the arduino uno.
The D0:D4 to go A0 to A4
D5:D7 go to Pins digital pins 5 to 7
Pin 11 CE#
Pin 12 OE#
Pin 13 WE#
Pin 10 is the serial strobe for the shift register this must be connected to all 3 shift registers
Pin 9 is the storage register this also must be connected to all 3 shift registers.
Pins 2,3 and 4 is the serial output pins 2 is the LSB. Unlike pin 9 and 10 those are different per each shift register.
A0:A18 goto the output from the 3 shift registers. Make sure you have which one is LSB and MSB right.
I will warn you that this can get messy as there are lots of wires be careful and check your work. My program verifies every byte if you see any errors check your wiring.
Here is the part that runs on the arduino uno
https://github.com/ComputerNerd/sst39sf040-avr
Note that I used avr-gcc instead of the arduino IDE to compile this if you do not have avr-gcc it can be modified with ease just change int main() to void setup() and add void loop() {} at the bottom of the program and I think it will compile just fine in the arduino IDE.
And here is the part that runs on your computer I have only tested it on linux but I used a cross platform library so it may work on windows
https://github.com/ComputerNerd/sst39sf040-computerside
Also my code can be easily adapted to run on the very similar lower capacity chips. The sst39sf020a and the sst39sf010a. Just change the main for loop to run for less bytes.
Re: Making a EPROM Burner
Nice, a PDIP 5V flash chip still in production.
Re: Making a EPROM Burner
You have just saved my life. I am horrible with the physical aspect of electronics and while I like 9t I am not going to spend lots of money for a paralell port willem when i only have a paralell port on my 1995 ibm pc. Thanks for giving directions!nintendo8 wrote:I made a sst39sf040 programmer using an arduino uno and 3 74hc595.
The sst39sf040 (cost $2 in single quantity at digikey) is cheaper than some eproms and does not need 12v only 5v and it is still in production and it does not need uv light to erase.
Here is the wiring: Pin refers to the numbering on the arduino uno.
The D0:D4 to go A0 to A4
D5:D7 go to Pins digital pins 5 to 7
Pin 11 CE#
Pin 12 OE#
Pin 13 WE#
Pin 10 is the serial strobe for the shift register this must be connected to all 3 shift registers
Pin 9 is the storage register this also must be connected to all 3 shift registers.
Pins 2,3 and 4 is the serial output pins 2 is the LSB. Unlike pin 9 and 10 those are different per each shift register.
A0:A18 goto the output from the 3 shift registers. Make sure you have which one is LSB and MSB right.
I will warn you that this can get messy as there are lots of wires be careful and check your work. My program verifies every byte if you see any errors check your wiring.
Here is the part that runs on the arduino uno
https://github.com/ComputerNerd/sst39sf040-avr
Note that I used avr-gcc instead of the arduino IDE to compile this if you do not have avr-gcc it can be modified with ease just change int main() to void setup() and add void loop() {} at the bottom of the program and I think it will compile just fine in the arduino IDE.
And here is the part that runs on your computer I have only tested it on linux but I used a cross platform library so it may work on windows
https://github.com/ComputerNerd/sst39sf040-computerside
Also my code can be easily adapted to run on the very similar lower capacity chips. The sst39sf020a and the sst39sf010a. Just change the main for loop to run for less bytes.
Would it need to be altered for a SST39SF020? I only need 2Mbit/256kb chips.
EDIT: That was stupid and a question you answered
And my desoldering iron is clogged; is there a way to remove the mask roms from my donor without one?
Can one make a MMC3 board into a TKROM board without too much effort?
- infiniteneslives
- Posts: 2102
- Joined: Mon Apr 04, 2011 11:49 am
- Location: WhereverIparkIt, USA
- Contact:
Re: Making a EPROM Burner
A TKROM board is one of the many MMC3 boards, so your question doesn't make much sense...wyatt8740 wrote:Can one make a MMC3 board into a TKROM board without too much effort?
Perhaps you mean, can you convert a TSROM (no battery) into a TKROM (with battery)? Both are MMC3 and identical aside from battery backing. If you splice in the battery baacking circuit from the wiki you should be able to make something like a TSROM work as a TKROM
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
- mikejmoffitt
- Posts: 1352
- Joined: Sun May 27, 2012 8:43 pm
Re: Making a EPROM Burner
You can snip the legs of the mask ROM chips with diagonal cutters or some such, and then smack out the heated leg remains of the PCB one by one until you have usable holes. Not ideal, but it's a solution.wyatt8740 wrote:And my desoldering iron is clogged; is there a way to remove the mask roms from my donor without one?
Re: Making a EPROM Burner
So called desoldering braid is cheap and does job pretty well. Could be even replaced with an old stranded copper wire used for power supplies, used it in the past to desolder multi pin parts.
- mikejmoffitt
- Posts: 1352
- Joined: Sun May 27, 2012 8:43 pm
Re: Making a EPROM Burner
An extension of this method that I just remembered using for this exact purpose (successfully) is to, for each pin on the chip:mikejmoffitt wrote:You can snip the legs of the mask ROM chips with diagonal cutters or some such, and then smack out the heated leg remains of the PCB one by one until you have usable holes. Not ideal, but it's a solution.wyatt8740 wrote:And my desoldering iron is clogged; is there a way to remove the mask roms from my donor without one?
-Heat the solder on the pin for the chip
-Whack the cartridge on the table, solder-side-down
-Observe the solder blob now on your table and the de-soldered pin
-Cackle like a maniac
-Do this for each pin from step 1
Re: Making a EPROM Burner
Glad I can help anyways I forgot to mention that my program reads the device id before running you should getwyatt8740 wrote: You have just saved my life. I am horrible with the physical aspect of electronics and while I like 9t I am not going to spend lots of money for a paralell port willem when i only have a paralell port on my 1995 ibm pc. Thanks for giving directions!
Would it need to be altered for a SST39SF020? I only need 2Mbit/256kb chips.
EDIT: That was stupid and a question you answered
And my desoldering iron is clogged; is there a way to remove the mask roms from my donor without one?
Can one make a MMC3 board into a TKROM board without too much effort?
Manufacturer’s ID 0xBF
Device ID (This depends on the chip) SST39SF010A 0xB5 SST39SF020A 0xB6 SST39SF040 0xB7
And there is the datasheet http://www.microchip.com/wwwproducts/De ... e=en549494
Re: Making a EPROM Burner
that is what I meant! Thank you!infiniteneslives wrote:Perhaps you mean, can you convert a TSROM (no battery) into a TKROM (with battery)? Both are MMC3 and identical aside from battery backing. If you splice in the battery baacking circuit from the wiki you should be able to make something like a TSROM work as a TKROMwyatt8740 wrote:Can one make a MMC3 board into a TKROM board without too much effort?
sounds like a plan!mikejmoffitt wrote:smack the board on a table... cackle maniacally
i have found two old award bioses. they are 29c020-21 chips. these are flash, right? will they work? they are the exact size i needed (2Mbit).
Re: Making a EPROM Burner
If you mean http://soft-manual.narod.ru/chips/flash ... 29C020.pdf then the answer is most likely yes however I hate to see part sacrificed. I don't think it is worth it to destroy a computer just for an NES game.wyatt8740 wrote:i have found two old award bioses. they are 29c020-21 chips. these are flash, right? will they work? they are the exact size i needed (2Mbit).
Re: Making a EPROM Burner
Don't worrynintendo8 wrote:yes however I hate to see part sacrificed. I don't think it is worth it to destroy a computer just for an NES game.
...anyway, I have three of the chips, so if I ever need one I can place it into the board.
Thanks for the info and I hate to see stuff ruined too, but this already was. A stripped board.
What is the minimum write and read speed for the flasher? One of mine is 210ns per read/write.
Re: Making a EPROM Burner
About dumping the chips... I just committed a patch to my repo for both the computer side and arduino side that allows for the dumping previously it would always go into write mode which would erase the whole chip now it will go into dump/program mode based on which program on the computer you run. Go check it outwyatt8740 wrote:Don't worrynintendo8 wrote:yes however I hate to see part sacrificed. I don't think it is worth it to destroy a computer just for an NES game.I will dump the chips to flash images first. And I found these beauties in a pile of junk in a factory corner. I have the pentium II's and III's and in the future I may write the images to new flash chips, but right now they are just boards, no other hardware or power supply. I can try to find other chips first though.
...anyway, I have three of the chips, so if I ever need one I can place it into the board.
Thanks for the info and I hate to see stuff ruined too, but this already was. A stripped board.
What is the minimum write and read speed for the flasher? One of mine is 210ns per read/write.
https://github.com/ComputerNerd/sst39sf040-computerside
https://github.com/ComputerNerd/sst39sf040-avr