![](/uploads/1/2/7/1/127142171/915310036.jpg)
I have two Xboxs both 1.6 both softmodded and I have eeproms for both. The trouble is my original softmod is dead (power issues, powers on for a second or two and then dies).
PiPROMPiPROM allows you to easily read, write, and erase original Xbox EEPROM chips using a Raspberry Pi! How It WorksPiPROM allows your Raspberry Pi to interface with I2C based xbox EEPROM chips. You can either connect your Raspberry Pi directly to your xbox motherboard, or connect it to an I2C based EEPROM chip that has been removed from an xbox motherboard or other device. Once your pi is connected, PiPROM can easily read, write, or erase the contents of the chip.
If i was to dump the eeprom from one xbox and write in onto another. Try to rebuild the hard drive for the broken box that started this quest. Xbox 360 Jtag or RGH Hack Easy Update to Dashboard 17502 with XeBuild GUI. Discussion in 'Xbox 360 Guides' started by InsaneNutter, Aug 19, 2013.
It's great for recovering lost hard drive keys for your xbox, or fixing broken motherboards. PiPROM is also compatible with all versions of the Raspberry Pi! Getting Started. The first step in getting PiPROM running is to enable the I2C interface on your Raspberry Pi. Adafruit has a very nice on how to do this. Once you have the I2C interface up and running on your Raspberry Pi it's time to get it connected to your xbox console. For xbox versions 1.0 - 1.5 it will require 3 wires to be soldered to the LPC port on your xbox motherboard, for version 1.6 it will require a few more connections that are a bit tricky.You will need to connect the two I2C pins on your Raspberry Pi to the I2C pins on your xbox/I2C chip, as well as a ground wire between the two.
The ground wire is very important! It acts as a reference line for the Pi to tell when a GPIO is high or low.
If your Pi doesn't have the same ground reference as your xbox your results may be sporatic. The wiring chart below outlines the connections you need to make to connect your Pi to an xbox console. The numbers refer to the RAW pin numbers on the Pi, and the LPC pins on an xbox motherboard.
Note that the pins are the same on all versions of the Raspberry Pi (V1, B+, V2). PinPiXbox v1.0 - 1.5SDA314SCL513GND62If you are connecting the Raspberry Pi to an I2C EEPROM chip that is not connected to an xbox motherboard you will need to look up the datasheet for the chip to figure out the pinout.
![Eeprom Eeprom](http://i266.photobucket.com/albums/ii248/Metalartin/SL380610.jpg)
You may also need to power the chip using the Pi's 3.3 or 5v lines. To test connectivity between the Pi and the EEPROM chip you can use i2cdetect to scan all I2C slave addresses and see what comes up. If you haven't already, install the i2c tools using the following commands:sudo apt-get install python-smbussudo apt-get install i2c-toolsOnce the tools are installed you will need to power up your xbox console or EEPROM chip, yes, the console needs to physically be turned on. Don't worry, as long as you're not doing anything on your console at the same time that PiPROM is reading/writing to the xbox EEPROM it won't harm anything. If your xbox console frags at boot, or throws a system error, you will only have 3 minutes to work before it will auto power off. This will be plenty of time for PiPROM to read/write the EEPROM chip.From a command line on the Pi run sudo i2cdetect -y 1 and you should see something similar to the following (output taken from my Pi connected to an xbox console):The EEPROM on the xbox console is located at address 0x54, but PiPROM already knows this! If your Pi is connected to your xbox console and you don't see output from i2cdetect that looks like the image above then something is wrong.
Check your wires, and make sure you have a ground wire between your Pi and xbox console.If your Pi is connected directly to an I2C EEPROM chip you should only see one address listed in the output from i2cdetect. This is the I2C address you will later plug into PiPROM to override the default I2C address of the xbox EEPROM. Next it's time to get PiPROM on to your Raspberry Pi.
We will start by creating a directory for PiPROM and its dependencies. From a command line run the following commands which will create a folder called PiPROM and move you into it.mkdir PiPROMcd./PiPROMNext we will setup bcm2835, a C library for the broadcom processor the Raspberry Pi uses. It is what PiPROM is built on and you will need to it compile PiPROM.
Run the following commands to download and install bcm2835 v1.42. If you run into trouble please refer to the. Wget zxvf bcm2835-1.42.tar.gzcd bcm2835-1.42./configuremakesudo make checksudo make installNext we are going to download the latest source for PiPROM and compile it. Run the following commands which will move you back into the PiPROM folder and download the latest source code for it.
Cd.git clone./PiPROMFinally we will compile PiPROM for your version of Raspberry Pi. From a command line run one of the following commands to compile PiPROM for your version of the Raspberry Pi. Pi VersionCommandv1make p1v1 B+make p1bv2 Bmake p2If everything went smoothly you should see no compiler errors in the output. To check run the ls command, and there should be a file called 'PiPROM.a' in the current folder.
If PiPROM.a exists then you successfully compiled PiPROM, if it doesn't then I guess I messed up somewhere. You can send me an email and I can try to see where things went wrong for you. Now you are ready to starting reading and writing EEPROMs! Below you can find the syntax for PiPROM.
Remeber your PiPROM file is currently called PiPROM.a! You will need to run PiPROM using sudo in order for it to be able to access the I2C interface.If your Pi is connected to an xbox console and you want to read, write, or erase the EEPROM, you can use one of the following commands: Read xbox eeprom to eeprom.bin:sudo PiPROM -r./eeprom.binWrite eeprom.bin to the xbox:sudo PiPROM -w./eeprom.binErase the eeprom:sudo PiPROM -eIf your Pi is connected directly to an EEPROM not attached to an xbox motherboard you will need the I2C address you found using i2cdetect earlier.
![](/uploads/1/2/7/1/127142171/915310036.jpg)