This is a recreation of a legacy Original Xbox adaptor that allowed you to use extremely common and cheap HD44780 compliant character LCD displays with the Xenium modchip SPI interface. The legacy adaptor was called 'spi2par' and has long since been out of production and extremely hard to come by.
I have never had one either, so this design has been made from the ground up.
There are two PCB layouts in this repository:
- More faithful to the legacy spi2par design.
- An LCD backpack design that takes advantage of the standard pinout of most HD44780 LCD displays to minimise the amount of wiring needed.
These two layouts are shown in the below photo. The LCD backpack has two pin arrangements so can be used on the two common LCD pin header layouts as shown installed. The intent is to make this as open and easily accessible to anyone with minimal experience in soldering and programming.
- Converts the Xenium SPI interface to HD44780 compliant parallel LCDs. These are extremely cheap and readily available LCD modules.
- Software controllable brightness
- Software controllable contrast
- This feature never existed in the legacy. You can connect two additional wires to the motherboard LPC header, and the board will read fan speed and MB/CPU temperatures directly from the Xbox System Management bus. It will display and update this mid-game. Traditionally the LCD will just pause until you renter the dashboard. Example below:
There is two ways you can do this. Option 1 is the intended way and has a PCB daughter board to make installation easier.
The second option uses less components but requires more wiring.
The standard design
Part | Qty | Possible Source |
---|---|---|
Ryzee119's spi2par2019 PCB | 1 | OSHPark (Bit expensive, 3 boards): spi2par2019backpack OR spi2par2019faithful Or, Download the required zip file from the Gerbers Folder and upload the zip file to their online ordering service. Use the following PCB properties: 2 layers, 45x30mm, 1.6mm thick, HASL, 1oz copper, no castellated holes |
Arduino Pro Micro Leonardo 5V/16Mhz | 1 | Any clones will work. Make sure they're the 5V/16Mhz variant. |
N-Channel MOSFET 2N7002 SOT23 at position Q1 | 1 | Find anywhere convenient Digikey Aliexpress |
JST SH1.0 10 pin 1mm connector (To connect to Xenium) | 1 | Digikey: Connector + 3xJumpers OR Aliexpress: Connector with Jumpers (Get the 10P one) |
General Hook-up Wire 26AWG or so | A metre or two | - |
No extra PCB required, no backlight control, slightly harder soldering
Part | Qty | Possible Source |
---|---|---|
Arduino Pro Micro Leonardo 5V/16Mhz | 1 | Any clones will work. Make sure they're the 5V/16Mhz variant. |
JST SH1.0 10 pin 1mm connector (To connect to Xenium) | 1 | Digikey: Connector + 3xJumpers OR Aliexpress: Connector with Jumpers (Get the 10P one) |
General Hook-up Wire 26AWG or so | A metre or two | - |
- Clone this repository to your PC
- Download then install the Arduino IDE.
- Copy
spi2par2019
to your Sketch folder and open the.ino
file. - Set the Board Type the
Arduino Leonardo
and the comport correctly. - Compile by clicking the tick in the top left.
- Confirm it has compiled successfully from the console output.
- Connect a MicroUSB cable between the Arduino Module and the PC.
- Click the upload button and confirm successful. The LCD backlight should come on but no text will be displayed until connected to a Xenium or the Xbox SMBus.
If using XBMC, there appears to be a bug in the way the large text is printed to the LCD screen when used with a Xenium. This can cause the LCD screen to stop working when the screen saver starts.
It is recommended to edit the /system/UserData/LCD.xml file and replace instances of LCD.TimeWide21
or LCD.TimeWide22
with something different. Perhaps LCD.cputemperature
and LCD.gputemperature
or if you want time, use the standard font (System.Time
).