|
| 1 | +# ISD9160 - Component Stuffing Guide |
| 2 | + |
| 3 | +This document details all components required to have custom audio functionality on Xbox One S/X and Series S/X non-limited-edition mainboards. |
| 4 | +See [Initial flashing of ISD9160](#reading-and-writing-the-chip-via-swd) when you are using a fresh ISD9160 chip (not salvaged from a Xbox console). |
| 5 | + |
| 6 | +## Xbox One S |
| 7 | + |
| 8 | +On this console revision the ISD9160 circuitry is located on the RF Unit. |
| 9 | +Speaker is connected via wires to the JST connector. |
| 10 | + |
| 11 | +STL Models for a bracket (X360, possibly salvagable): <https://www.printables.com/model/189049-xbox-360-slim-speaker-clip> |
| 12 | + |
| 13 | +> [!IMPORTANT] |
| 14 | +> Is the pitch for speaker connector correct? |
| 15 | +
|
| 16 | +### Bill of Materials (BOM) |
| 17 | + |
| 18 | +| Reference | Qty | Package | Value | Component Type | |
| 19 | +| :----------------- | :-: | :--------- | :------------------| :--------------------- | |
| 20 | +| U4 | 1 | QFP48 | ISD9160 | Audio Codec IC | |
| 21 | +| R1 | 1 | 0402 | 10 kΩ | Resistor | |
| 22 | +| R29 | 1 | 0805 | 0 Ω | Resistor | |
| 23 | +| C7, C20, C35, C36 | 4 | 0805 | 10 μF | Capacitor | |
| 24 | +| | | | | | |
| 25 | +| J1 | 1 | JST | S2B-PH-K-S(LF)(SN) | Speaker Connector | |
| 26 | +| Speaker | 1 | ? | ? | Speaker | |
| 27 | +| C9, R6, R7, R22 | 4 | / | DNP | Do not place | |
| 28 | + |
| 29 | +**TODO**: C2, C8, C11, C13, C15, C18, C30, C48 - 0402 - ? |
| 30 | + |
| 31 | +**TODO**: Actual speaker with JST connector |
| 32 | + |
| 33 | + |
| 34 | +## Xbox One X |
| 35 | + |
| 36 | +On this console revision the ISD9160 circuitry is located on the motherboard. |
| 37 | +Speaker is soldered onto the mainboard. |
| 38 | + |
| 39 | +### Bill of Materials (BOM) |
| 40 | + |
| 41 | +| Reference | Qty | Package | Value | Component Type | Note | |
| 42 | +| :----------------- | :-: | :--------- | :--------------- | :--------------------- | :------------------------- | |
| 43 | +| U43 | 1 | QFP48 | ISD9160 | Audio Codec IC | | |
| 44 | +| R499 | 1 | 0402 | 10 kΩ | Resistor | | |
| 45 | +| R505 | 1 | 0805 | 0 Ω | Resistor | | |
| 46 | +| C606, C626, C638 | 3 | 0402 | 0.1 μF | Capacitor | 10%, 16V, X5R | |
| 47 | +| C240, C619 | 2 | 0402 | 1 μF | Capacitor | 10%, 6.3V, X5R | |
| 48 | +| C618 | 1 | 0603 | 4.7 μF | Capacitor | 10%, 6.3V, X5R | |
| 49 | +| C607 | 1 | 0805 | 10 μF | Capacitor | 10%, 16V, X5R | |
| 50 | +| C623, C639, C640 | 3 | 0805 | 10 μF | Capacitor | 20%, 6.3V, X5R | |
| 51 | +| SPKR_2P | 1 | SMD, 18mm | CS18-01S100-05-1, 8Ω, 1W | Onboard speaker | MFR: Challenge Electronics | |
| 52 | +| R502, R508 | 2 | / | DNP | Do not place | | |
| 53 | + |
| 54 | +## Xbox Series S |
| 55 | + |
| 56 | +On this console revision the ISD9160 circuitry is located on the motherboard. |
| 57 | +Speaker is soldered onto the mainboard. |
| 58 | + |
| 59 | +### Bill of Materials (BOM) |
| 60 | + |
| 61 | +| Reference | Qty | Package | Value | Component Type | Note | |
| 62 | +| :-----------------| :-: | :--------- | :--------------------- | :--------------------- | :------------------ | |
| 63 | +| U49 | 1 | QFP48 | ISD9160 | Audio Codec IC | | |
| 64 | +| R499 | 1 | 0402 | 10 kΩ | Resistor | | |
| 65 | +| R505 | 1 | 0805 | 0 Ω | Resistor | | |
| 66 | +| C606, C626, C638 | 3 | 0201 | 0.1 μF | Capacitor | 10%, 16V, X5R | |
| 67 | +| C240 | 1 | 0201 | 1 μF | Capacitor | 20%, 10V, X5R | |
| 68 | +| C619 | 1 | 0402 | 1 μF | Capacitor | 10%, 10V, X5R | |
| 69 | +| C618 | 1 | 0402 | 4.7 μF | Capacitor | 20%, 10V, X5R | |
| 70 | +| C623, C639, C640 | 3 | 0402 | 10 μF | Capacitor | 20%, 6.3V, X5R | |
| 71 | +| C607 | 1 | 0603 | 10 μF | Capacitor | 20%, 16V, X5R | |
| 72 | +| SPKR_2P | 1 | SMD, 18mm | CSMS18S4.8-8S0.3-P580F, 8Ω, 0.3W | Onboard speaker | MFR: Chinasound | |
| 73 | +| R502, R508 | 2 | / | DNP | Do not place | | |
| 74 | + |
| 75 | + |
| 76 | +## Xbox Series X |
| 77 | + |
| 78 | +On this console revision the ISD9160 circuitry is located on the motherboard. |
| 79 | +Speaker is soldered onto the mainboard. |
| 80 | + |
| 81 | +### Bill of Materials (BOM) |
| 82 | + |
| 83 | +| Reference | Qty | Package | Value | Component Type | Note | |
| 84 | +| :-----------------| :-: | :--------- | :------------------------------- | :----------------- | :------------------ | |
| 85 | +| U49 | 1 | QFP48 | ISD9160 | Audio Codec IC | | |
| 86 | +| R240 | 1 | 0402 | 10 kΩ | Resistor | | |
| 87 | +| R115 | 1 | 0805 | 0 Ω | Resistor | | |
| 88 | +| C157, C179, C181 | 3 | 0201 | 0.1 μF | Capacitor | 10%, 16V, X5R | |
| 89 | +| C146, C293 | 2 | 0201 | 1 μF | Capacitor | 20%, 6.3V, X5R | |
| 90 | +| C295 | 1 | 0402 | 4.7 μF | Capacitor | 20%, 10V, X5R | |
| 91 | +| C170, C176, C177 | 3 | 0402 | 10 μF | Capacitor | 20%, 6.3V, X5R | |
| 92 | +| C171 | 1 | 0603 | 10 μF | Capacitor | 20%, 16V, X5R | |
| 93 | +| SPKR_2P | 1 | SMD, 18mm | CSMS18S4.8-8S0.3-P580F, 8Ω, 0.3W | Onboard speaker | MFR: Chinasound | |
| 94 | +| R124, R126 | 2 | / | DNP | Do not place | | |
| 95 | + |
| 96 | + |
| 97 | +## Reading and Writing the chip via SWD |
| 98 | + |
| 99 | +> [!NOTE] |
| 100 | +> This section is a copy from [XOSFT wiki](https://xboxoneresearch.github.io/wiki/hardware/rf-unit/#reading-and-writing-the-chip-via-swd-recovery) |
| 101 | +
|
| 102 | +Alternatively to I2C, the ARM SWD protocol can be used to read/write the chip. |
| 103 | + |
| 104 | +Requirements: |
| 105 | + |
| 106 | +Software |
| 107 | + |
| 108 | +- Linux |
| 109 | +- OpenOCD build, patched for ISD9160 support (see https://github.com/xboxoneresearch/DuRFUnitI2C/releases/tag/openocd_build) |
| 110 | +- Debugprobe firmware for PiPico (debugprobe_on_pico/2.uf2) - https://github.com/raspberrypi/debugprobe/releases |
| 111 | + |
| 112 | +Hardware |
| 113 | + |
| 114 | +- Raspberry Pi Pico/2 |
| 115 | +- Soldering equipment |
| 116 | +- Sharp tweezers |
| 117 | + |
| 118 | +By default, the required pins on the IC are bridged on the RF Unit PCB. To enable usage of SWD, a trace needs to be cut, using pointy tweezers for example. |
| 119 | + |
| 120 | +Make sure to use a multimeter to confirm the trace was cut properly. |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | +Steps: |
| 125 | + |
| 126 | +- Do the trace-cut mentioned above |
| 127 | +- Flash debugprobe firmware on Pi Pico/2 |
| 128 | +- Connect Pi Pico to ISD9160 SWD pins (see https://mcuoneclipse.com/2022/09/17/picoprobe-using-the-raspberry-pi-pico-as-debug-probe/), 3V3 and GND |
| 129 | +- Now extract and start OpenOCD |
| 130 | + |
| 131 | +``` |
| 132 | +tar xvf openocd_isd9160.tar.gz |
| 133 | +cd openocd_isd9160/ |
| 134 | +./bin/openocd -f ./share/openocd/scripts/interface/cmsis-dap.cfg -f ./share/openocd/scripts/target/numicro.cfg |
| 135 | +``` |
| 136 | + |
| 137 | +- In another terminal window connect via telnet |
| 138 | + |
| 139 | +``` |
| 140 | +telnet localhost 4444 |
| 141 | +``` |
| 142 | + |
| 143 | +- First, dump the original `APROM` firmware |
| 144 | + |
| 145 | +``` |
| 146 | +flash read_bank 0 aprom_original.bin |
| 147 | +``` |
| 148 | + |
| 149 | +- Now, erase the bank and write new `APROM` firmware |
| 150 | + |
| 151 | +``` |
| 152 | +flash erase_sector 0 0 last |
| 153 | +flash write_bank 0 aprom_new.bin |
| 154 | +``` |
| 155 | + |
| 156 | +- Profit |
| 157 | + |
0 commit comments