It has long been thought that the Xyclops chip, which contains the BIOS on a v1.6 motherboard, is not flashable. However I recently discovered it has a serial port with a variety of interesting commands. It supports dumping the BIOS as well as the Intel 8051 code that runs the SMC functions of the chip. And just like the other Xbox versions that have the TSOP flash, we can reprogram the BIOS on the v1.6.
In one way this mod is better than your typical TSOP flash because it's easy to recover from if you screw it up. The serial port will still be available.
Tutorial
Required items:
3.3V USB to UART adapter. You can find many of these available online at very low prices. See if you can get one that has a TX resistor value lower than 1k because the Xbox's RX has a 1k pulldown.
v1.6 Xbox - this cannot work on any Xbox without a Xyclops chip
Soldering iron
Python installed on your PC
The flashing script https://github.com/Prehistoricman/Xbox_SMC/blob/master/Xyclops/xyclops_flasher.py
A 256KiB BIOS bin file
Steps:
Connect your USB to UART adapter to the Xbox. This can be done either by connecting to the AV port, or by opening the Xbox and using internal connections.
Internal connections
Xyclops pin 29 is DEBUG. Wire it to the 3.3V standby voltage.
Xyclops pin 64 is TXD. Wire it to the adapter's RX pin. Either:
Near Xyclops:
OR under the AV port:
Xyclops pin 63 is RXD. Wire it to the adapter's TX pin. Either:
Top side, near AV port:
OR under the AV port:
Connect ground to the adapter's GND pin. You can use the xbox metal case, any screw holding the motherboard down, or pin 2 of the LPC header (see pin layout here).
AV cable - not advisable!
See AV plug diagram here https://xboxdevwiki.net/AV_Cables
Pin 5 is DEBUG. Wire this to 3.3V.
Pin 18 is TXD. Wire this to the adapter's RX pin.
Pin 6 is RXD. Wire this to the adapter's TX pin.
Remove resistors below the AV port: R5M3, R4M10. This will affect the video mode recognition and can prevent normal display, so they should be replaced after the mod is complete.
Connect any ground pin (such as pin 6, 7, or to the adapter's GND pin.
If you cut LFRAME to do a modchip install, you will have to reconnect it.
Plug in the USB. It's better to do this before powering on the Xbox
Plug in the Xbox. It can be left in standby.
Identify what serial port your adapter has. On Windows you can expect it to something like COM5.
Install Python 3 if you haven't got it already
Open cmd, powershell, bash, or whatever the terminal is on your PC.
Execute the script by writing
python xyclops_flasher.py your_bios.bin COM5
to the terminal, replacing your_bios.bin with the path to your BIOS file, and COM5 with your serial port. Press enter
Follow the on-screen text. It should say Xyclops communication established and ask if you want to erase the flash.
Once the connection has been made, or even attempted, you may be unable to turn on or off the Xbox. That's normal. The SMC gets frozen while the serial is active.
The Xyclops can get upset and stop responding sometimes. If you can't get communication, try unplugging the Xbox for 10 seconds.
If you get erase timeout, make sure you made the GND connection.
If you can't get communication, then your serial adapter might have too much internal resistance. Identify its TX resistor and reduce it to ~500 ohms.
The flashing process takes about 2 minutes, and the verification (if you want to do it) takes another 2 minutes.
If you want to verify again, use the -v option:
python xyclops_flasher.py your_bios.bin COM5 -v
The Xbox power button should work again, so try turning it on.
If you get video issues (like greyscale video) and you removed two resistors in step 1.2.5, you will need to place the resistors back.
Disconnect the DEBUG wire for enhanced stability. The Xyclops will freeze whenever it sees any activity on the RX pin.
FAQ
Can we use a BIOS bigger than 256KiB?
Not on a retail xbox. Some rare devkits may be able to do 512KiB but I have not confirmed that.
I ran the script and my Xbox won't turn on!
Yes, the SMC will freeze when it receives serial communication. The script should resolve that if it exits successfully, so I must assume it failed. You can unplug your Xbox for 10 seconds and plug it back in to reset and try again.
Can this be done via a software method?
Not to my knowledge, but it is rumoured to have been discovered.
Technically the answer is yes, but it involves using the serial first and then reprogramming the SMC (advanced).
What else can it do?
The Xyclops serial port is able to do a lot of low-level actions on the SMC. For example, it can 'press' the front panel buttons, change fan speed, change LED colours. It can also potentially do some hacky things such as spoofing the video cable mode, or bypassing the boot challenge (FRAG).
We are also able to re-program the SMC which could lead to some more advanced mods for specific and niche purposes.
Through the AV port???
Yeah I know right? We can't be sure why Microsoft made it this way. It's too slow for factory programming AND there's those resistors preventing it. It could definitely have expedited the development process of Xyclops, but that doesn't explain why it was left present in the retail motherboard.