PiPROM is currently supported on the Model A, B+, and v2 B models of the Pi.
DIY EEPROM PROGRAMMER HOW TO
You will also find the instructions on how to compile PiPROM for your version of the Raspberry Pi, as well as enable the I2C interface on your Pi.
DIY EEPROM PROGRAMMER DOWNLOAD
Once you have the connections made you can head on over to the GitHub page for PiPROM and download the source code.
You are going to want to connect the SDA/SCL pins on the xbox to the SDA/SCL pins on the Pi, and connect GND from the xbox to GND on the Pi. The pinouts for all of the Pi models have been the same thus far, but when in doubt you should look up the pinout for your version of the Pi. Once you have the connections made to the xbox motherboard you can connect the three wires to your Raspberry Pi. However, I don’t believe I had to do this for my 1.6 motherboard, I think the LFRAME, RST, and LAD pins are the ones that have been disconnected. If you have a 1.6 version motherboard you might have to restore the connections to pins 13 and 14 (the I2C pins) on the LPC port using the “LPC Rebuild” method. The ground wire is very important, so don’t skip it! I’d recommend soldering a pin header to the motherboard just to make life easier for any future mods, but it is not necessary if you are only here to recover the EEPROM. You are going to want to solder three wires, one for SDA, one for SCL, and one for GND.
The I2C interface can easily be found on the LPC port of the xbox motherboard.
Using only a Pi and three connections to an xbox motherboard you can read and write to the EEPROM, recovering your lost HDD keys and restoring your broken consoles.
DIY EEPROM PROGRAMMER CODE
I cleaned up the code I had wrote and dubbed the program PiPROM: The Raspberry Pi Xbox EEPROM Programmer. But I now had a nifty setup that would allow me to read and write the EEPROM from an xbox, whether it was still attached to the motherboard or removed. There was no rejoicing to be had for my lost game saves. Yippee, back on track!Īfter I dumped the contents of the EEPROM I quickly decrypted the HDD key and realized the the EEPROM had been created anew before the xbox broke. With some quick solder work I was able to remove the EEPROM from the console and solder a few jumpers to a pin header that I could connect to my Pi. However, the EEPROM has it’s own I2C interface. Only one problem… I have removed most of the chips from the broken motherboard, so getting it to boot so I could read the EEPROM was a no go. Now I just had to run the same program on the broken xbox and I would soon be able to rejoice in retrieving years of game save from my childhood. After doing some digging around to find where the I2C points are exposed on the xbox motherboard, and some programming to read the contents of the EEPROM, I was able to successfully dump the contents of the EEPROM on a working xbox! I knew from an older project that the EEPROM on the xbox console sits on the I2C bus, and that the Pi has an I2C interface. I didn’t really have any means to boot alternate BIOS from a modchip to try and recover the key, but I had a few Raspberry Pi’s laying around. While doing so I came across an old xbox that I had lost the HDD locking key to. I’ve recently been playing around with CPLDs and the original xbox console.