Xbox:PiPROM

From ConsoleMods Wiki
Jump to navigation Jump to search

PiPROM is a program for the Raspberry Pi that allows you to recover your EEPROM information by attaching three wires to your Xbox motherboard. In the event that your Xbox's hard drive is dying and unable to boot, you can build a new hard drive using the information found in the Xbox's EEPROM. However, if you did not back up the EEPROM before the hard drive died, you are limited to installing a modchip or using PiPROM to recover it.

PiPROM is confirmed to work with the following Raspberry Pi versions: 1, 1B+, 2B, 3B, Zero-W, with all other models being untested. It is also compatible with the Banana Pi, using a different read command. Please let us know if you are successful with the other untested models.

Setting up I2C

Depending on how you originally set up your Raspberry Pi and what model you have, I2C may already be configured. Open the Terminal and run the command:

sudo i2cdetect -y 1 (or sudo i2cdetect -y 0 for a model 1 Raspberry Pi)

If you receive a text based grid, it is set up properly. Otherwise, follow the below directions.

  1. Open the Terminal and run the commands to install the I2C tools:
  2. sudo apt-get install -y python3-smbus
  3. sudo apt-get install -y i2c-tools
  1. Run the command sudo raspi-config, then navigate to Interfacing Options (or on old models, Advanced Options) I2C, then select Yes to enable it. It may ask you if you want it to be loaded by default, choose Yes.
  2. Reboot your Raspberry Pi.
  3. Now you should be able to run sudo i2cdetect -y 1 (or sudo i2cdetect -y 0 for a model 1 Raspberry Pi) and see a text based grid.

PiPROM Setup

  1. Open the Terminal and run the following commands:
  1. Run the relevant command as marked in the table below:
Pi Model Command
1 make p1
1 B+ make p1b
2 B make p2
3 B make p2
Zero-W make p2
Banana Pi make p2
Other Unknown

Connecting Wires

For all versions of Xbox, including version 1.6, the wiring is the same. Ensure that you are using the correct pins, and that your wiring is not upside down on both the Xbox and Raspberry Pi ends or you may risk damaging either device. You do not necessarily have to solder the wire on either end, but if you are doing it without soldering, it is recommended to use a Female-to-Male jumper wire, and to plug the female side into the Raspberry Pi and the fully insert the male side into the Xbox. Test your connection by using the command sudo i2cdetect -y 1 (or sudo i2cdetect -y 0 for a model 1 Raspberry Pi) and making sure that some of the slots in the text grid are filled with numbers.

Signal Name Pi Pin Xbox Pin
SDA 3 14
SCL 5 13
GND 6 2

PiPROM.png

Reading/Writing

Turn your Xbox on. Run the desired command below while you are in the PiPROM directory. When you read the EEPROM, it will make an "eeprom.bin" file in your PiPROM folder.

Result Command
Save Xbox EEPROM to Raspberry Pi (read) sudo ./PiPROM.a -r ./eeprom.bin
Write eeprom.bin to Xbox (write) sudo ./PiPROM.a -w ./eeprom.bin
Erase Xbox EEPROM (only use if you have a backup) sudo ./PiPROM.a -e
Save Xbox EEPROM to Banana Pi (read) See command below.
Banana Pi command: sudo i2cdump -y 2 0x54 | sed 's/^....//' | cut -c -47 | tail -n +2 > eeprom.bin