Making a Raspberry Pi based I2C EEPROM Gang Programmer
“Necessity is the mother of all invention” (Unknown)
I’ve recently decided that I will start shipping RoboPi kits with the latest firmware pre-programmed into the boot EEPROM.
This will save my customers time in getting their robots up & running – after all, most of them will be unfamiliar with the Parallax Propeller microcontroller used on RoboPi, and it would eliminate a few steps in the installation process.
(click on image for larger version)
Good ideas often come with a catch – in this case, the catch is that I’ve now taken on the task of programming and verifying the EEPROM chips before packaging the kit of parts.
The idea of programming the EEPROM chips one at a time did not exactly appeal to me, as I’d be stuck spending a few minutes on programming each chip, or worse, pay someone hourly to produce 15-20 programmed chips per hour. When you are doing a few kits that is not an issue, when you have to get a LOT of kits assembled… it adds up to a lot of tedious work and/or money. For example, if you had to get 200 kits made up, and on average it took four minutes to program and verify a chip, you would be sitting there for 800 minutes… ouch!
I decided to google around for pricing for commercial EEPROM gang programmers. When I saw the prices, I was not a happy camper.
$1000++? Really??? Seriously??? Forget that noise!
I decided to make my own EEPROM gang programmer for programming up to eight EEPROM’s at a time (method to madness: load eight blanks, start programming, go back later to unload… rinse and repeat!).
Some intense scribbling followed … and after due consideration, I decided to use a Raspberry Pi as the “brain” of my gang programmer.
I figured I can’t be the only one who wanted to program EEPROM’s with a Raspberry Pi, so I went googling for “Raspberry Pi eeprom”, and found https://www.richud.com/wiki/Rasberry_Pi_I2C_EEPROM_Program
The Wiki at richud.com has great instructions on how to read and program EEPROM’s from a Raspberry Pi using a Raspberry Pi from the command line, and had a link to source code for the needed eeprog utility.
I have a lot of Raspberry Pi’s in my lab (Model A, Model A+, Model B, Model B+), so I decided to make my gang programmer generic – usable with any Raspberry Pi model (except the Compute Module). Heck, the Model A & A+ are inexpensive enough to dedicate to being a gang EEPROM programmer! I decided to use the recently introduced $20 Raspberry Pi Model A+ (click here to read my review) for my experiments as it was sitting in front of me 🙂
I use the 512Kbit 24LC512 EEPROM’s for RoboPi, but I also use 256Kbit 24LC256’s on some of my other products. Due to the standardized pin out, the programmer hardware would also support smaller EEPROM’s.
Here are some images of the finished programmer:
(programming 24LC256 EEPROM’s – click on image for larger version)
Initially I wanted to use ZIF sockets, but I was unable to find inexpensive 8 pin ZIF sockets, so I just used standard eight pin sockets.
(Programming 24LC512 EEPROMs – click on image for larger version)
I used the large bus ties to carry SDA, SCL, 3V3 and GND, allowing me to simplify the wiring.
(click on image for larger version)
I think I’ll add three more of the green nuts and spacers to the Model A+ to make it fit better 🙂
Article Index: