
USB Hub Test
osy/XG_Mobile_Station
Open source eGPU dock for ROG Ally and ROG Flow

Open source eGPU dock for ROG Ally and ROG Flow
XG Mobile Dock is an open-source printed circuit board by osy, from the osy/XG_Mobile_Station repository on GitHub, published under the CC-BY-4.0 licence. It is a 6-layer board of 237.9 × 80.5 mm with 300 parts on 334 nets, routed with 2,909 tracks and 712 vias.
It is built around the LM3489MMX/NOPB, MX25L8006EM1I-12G and 2N7002W, with the H5VU25U, AON7403 and CSD18532Q5B among its other parts. Its parts include 128 capacitors, 86 resistors, 17 transistors, 17 connectors and 15 diodes. It belongs with the STM32 boards of this library.
This open source hardware allows you to connect any PCIe card to an ASUS ROG device with the XG Mobile connector.
The standard variant is a drop-in replacement PCB for the XG Station Pro Thunderbolt 3 eGPU dock. It contains a built in USB 3.1 Gen 2 hub and a USB PD charger.
The lite variant is a standalone board that is compatible in dimensions with the ADT-UT3G. It requires a standard ATX power supply and passes through the USB to an external port.
Lite boards only need to flash STM32 while the standard board requires writing two SPI flash as well.
XG_Mobile_Dock_MCU.bin from the latest release or build your own.We will be using a Raspberry Pi, although most other SBC can also work as well as dedicated SPI flashers.
sudo apt-get install flashromXG_Mobile_Dock_Charger.bin from the latest release or build your own.sudo flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w XG_Mobile_Dock_Charger.binWe will be using a Raspberry Pi, although most other SBC can also work as well as dedicated SPI flashers.
sudo apt-get install flashromVL822_Q7_9043_Phantom_20220616.bin from the latest release.sudo flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w VL822_Q7_9043_Phantom_20220616.binXGMDriver tricks ARMORY CRATE software into identifying the custom dock as an official XG Mobile device. Once installed, it should work even if ARMORY CRATE software is updated. You can check out the source code here.
XGMDriverSetup.exe from the latest release.This is a well known issue with NVIDIA eGPUs. Once the eGPU is installed along with the correct drivers, you will need to install this script.
You need to restart your device. For some reason, hot plugging results in 3.0 speeds.
If you observe any of the following:
Then the device is having trouble sustaining PCIe 4.0 speeds. This can be caused by any combination of the following issues:
You can run FurMark for a long duration and observe the GPU load to check that it is able to maintain 4.0 speeds. If the GPU is constantly trying to switch speeds, you will observe large FPS drops and large dips in the GPU usage percentage. You can also use CUDA-Z to check the access speeds while under load.
If you cannot maintain PCIe 4.0 speeds, you can always do a hot-unplug and hot-plug to force it to run in PCIe 3.0 mode.
Sometimes, the device will not be detected and you can flip the lock switch off and on again to force the software to re-detect the device.
If you get a pop-up saying XG Mobile is not properly connected, make sure XGMDriver is installed. If this is still an issue with XGMDriver installed, there is likely a connection issue with the cable.
Re-install XGMDriver to inhibit the ASUS driver popup.
The lite board does not have USB orientation detection. Try flipping the USB-C cable upside down and try again.
Knowledge base for all things XGM gathered from reverse engineering the hardware and software.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 41 | 0.1µF | Capacitor_SMD:C_0402_1005Metric | C10, C11, C12, C13, C14, C16, C17, C20, C27, C28, C102, C105, C111, C112, C113, C114 +25 |
| 14 | 10k | Resistor_SMD:R_0402_1005Metric | R2, R7, R8, R21, R22, R23, R33, R34, R47, R48, R61, R63, R77, R85 |
| 14 | 4.7k | Resistor_SMD:R_0402_1005Metric | R17, R18, R19, R20, R32, R35, R37, R38, R39, R40, R41, R42, R45, R46 |
| 12 | 1000pF | Capacitor_SMD:C_0402_1005Metric | C6, C9, C46, C47, C60, C64, C87, C88, C97, C98, C106, C107 |
| 10 | 100k | Resistor_SMD:R_0402_1005Metric | R24, R25, R26, R27, R43, R52, R54, R68, R69, R86 |
| 10 | 10µF | Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder | C52, C53, C54, C55, C56, C90, C119, C121, C123, C125 |
| 8 | 22µF | Capacitor_SMD:C_0805_2012Metric | C3, C4, C39, C40, C94, C95, C103, C104 |
| 8 | 47µF | Capacitor_SMD:C_1210_3225Metric_Pad1.33x2.70mm_HandSolder | C75, C76, C77, C78, C120, C122, C124, C126 |
| 8 | 47µF | Capacitor_Tantalum_SMD:CP_EIA-7343-43_Kemet-X | C1, C2, C49, C50, C100, C101, C109, C110 |
| 7 | TestPoint_Small | TestPoint:TestPoint_Pad_D1.0mm | TP2, TP3, TP4, TP5, TP6, TP11, TP12 |
| 6 | 100pF | Capacitor_SMD:C_0402_1005Metric | C8, C48, C57, C83, C99, C108 |
| 6 | 2N7002W | 2N7002W:SOT-323-3_L2.0-W1.3-P1.30-LS2.1-BR | Q5, Q6, Q7, Q14, Q15, Q17 |
| 6 | H5VU25U | AZ1045-04F:AZ1045-04F | D2, D3, D4, D5, D6, D7 |
| 6 | ~ | XG_Mobile:Hole_200mil | H1, H2, H3, H4, H5, H6 |
| 5 | 0.01µF | Capacitor_SMD:C_0402_1005Metric | C15, C19, C32, C59, C84 |
| 5 | 100 | Resistor_SMD:R_0402_1005Metric | R58, R59, R71, R72, R75 |
| 4 | 0.1μF | Capacitor_SMD:C_0402_1005Metric | C37, C38, C41, C42 |
| 4 | 10µH | Inductor_SMD:L_Abracon_ASPI-0630LR | L1, L2, L3, L4 |
| 4 | 1µF | Capacitor_SMD:C_0402_1005Metric | C62, C85, C116, C118 |
| 4 | 22k | Resistor_SMD:R_0402_1005Metric | R80, R81, R82, R83 |
| 4 | 270 | Resistor_SMD:R_0603_1608Metric | R6, R9, R14, R31 |
| 4 | 3.3k | Resistor_SMD:R_0402_1005Metric | R10, R12, R49, R66 |
| 4 | 47k | Resistor_SMD:R_0402_1005Metric | R1, R3, R30, R74 |
| 4 | AON7403 | AON7403:TRANS_AON7403 | Q1, Q2, Q3, Q4 |
| 4 | CSD18532Q5B | Package_TO_SOT_SMD:TDSON-8-1 | Q9, Q10, Q12, Q13 |
| 4 | LM3489MMX/NOPB | LM3489QMM-NOPB:LM3489QMM-NOPB | U1, U6, U8, U11 |
| 4 | PDS1040L-13 | Diode_SMD:D_PowerDI-5 | D1, D8, D9, D10 |
| 4 | ~ | Diode_SMD:D_SOD-123F | D11, D12, D13, D14 |
| 3 | 10µF | Capacitor_SMD:C_0402_1005Metric | C22, C23, C26 |
| 3 | 1k | Resistor_SMD:R_0402_1005Metric | R53, R65, R84 |
| 3 | 33k | Resistor_SMD:R_0402_1005Metric | R15, R55, R70 |
| 3 | 470µF | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C80, C127, C130 |
| 2 | 0.005 | Resistor_SMD:R_1210_3225Metric_Pad1.30x2.65mm_HandSolder | R56, R73 |
| 2 | 0.1µF | Capacitor_SMD:C_0603_1608Metric | C128, C129 |
| 2 | 10µF | Capacitor_SMD:C_0603_1608Metric | C24, C25 |
| 2 | 10µH | Inductor_SMD:L_Vishay_IHLP-6767 | L5, L6 |
| 2 | 12k | Resistor_SMD:R_0402_1005Metric | R28, R79 |
| 2 | 18pF | Capacitor_SMD:C_0603_1608Metric | C91, C92 |
| 2 | 1µF | Capacitor_SMD:C_0603_1608Metric | C21, C35 |
| 2 | 20455-040E-76 | 20455-040E-76:20455-040E-76 | J2, J3 |
| 2 | 22μF | Capacitor_SMD:C_0603_1608Metric | C44, C45 |
| 2 | 24k | Resistor_SMD:R_0402_1005Metric | R51, R64 |
| 2 | 3.9k | Resistor_SMD:R_0402_1005Metric | R16, R29 |
| 2 | 4.7µF | Capacitor_SMD:C_0603_1608Metric | C63, C86 |
| 2 | 49.9 | Resistor_SMD:R_0402_1005Metric | R57, R60 |
| 2 | 680 | Resistor_SMD:R_0402_1005Metric | R50, R62 |
| 2 | 7.5k | Resistor_SMD:R_0402_1005Metric | R44, R67 |
| 2 | CSD18563Q5A | Package_TO_SOT_SMD:TDSON-8-1 | Q8, Q11 |
| 2 | Conn_02x04_Top_Bottom | 0455860005:CON_455860005_MOL | J14, J15 |
| 2 | Conn_02x10_Odd_Even | 5-5530843-0:5-5530843-0 | J7, J8 |
| 2 | LM5117PMHX/NOPB | LM5117PMH:PWP0020A_N | U10, U13 |
| 2 | MX25L8006EM1I-12G | MX25L8006EM1I-12G:MX25L8006EM1I-12G | U3, U9 |
| 2 | USB_C_Receptacle | USB-C-SMD_TYPE-C-24P-QT:USB-C-SMD_TYPE-C-24P-QT | J5, J6 |
| 2 | ~ | 470531000:CONN_SD-47053-001_H10p00_MOL | J18, J19 |
| 1 | 1.2k | Resistor_SMD:R_0402_1005Metric | R11 |
| 1 | 10nF | Capacitor_SMD:C_0402_1005Metric | C115 |
| 1 | 1N4007 | Diode_SMD:D_SOD-123F | D15 |
| 1 | 2.4k | Resistor_SMD:R_0402_1005Metric | R36 |
| 1 | 20k | Resistor_SMD:R_0402_1005Metric | R78 |
| 1 | 220pF | Capacitor_SMD:C_0402_1005Metric | C18 |
| 1 | 25MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 3-2362375-4 | 3113-113T:CONN-SMD_164P-P1.00-V_3133 | J4 |
| 1 | 330 | Resistor_SMD:R_0402_1005Metric | R76 |
| 1 | 4.7µF | Capacitor_SMD:C_0402_1005Metric | C117 |
| 1 | 4.7μF | Capacitor_SMD:C_0603_1608Metric | C36 |
| 1 | 49.9k | Resistor_SMD:R_0402_1005Metric | R4 |
| 1 | 5-1775443-8 | 5-1775443-8:5-1775443-8 | J1 |
| 1 | 68k | Resistor_SMD:R_0402_1005Metric | R5 |
| 1 | 8.2k | Resistor_SMD:R_0402_1005Metric | R13 |
| 1 | 8730 | KEYSTONE_8730:KEYSTONE_8730 | J17 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q16 |
| 1 | AP7361-10ER-13 | AP7361-10ER-13:SOT230P700X180-4N | U5 |
| 1 | Conn_01x05 | Connector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_Vertical | J9 |
| 1 | Conn_01x06 | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J13 |
| 1 | I2C1 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J12 |
| 1 | NCP15WF104F03RC | Resistor_SMD:R_0402_1005Metric | TH1 |
| 1 | STM32F030C8Tx | Package_QFP:LQFP-48_7x7mm_P0.5mm | U12 |
| 1 | SWD | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J10 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_SKQG_WithStem | SW1 |
| 1 | TPS2003CDRCR | TPS2003CDRCR:DRC10_1P65X2P40_TEX | U7 |
The 296 most common of 300 parts.

osy/XG_Mobile_Station
Open source eGPU dock for ROG Ally and ROG Flow

osy/XG_Mobile_Station
Open source eGPU dock for ROG Ally and ROG Flow

osy/XG_Mobile_Station
Open source eGPU dock for ROG Ally and ROG Flow

osy/XG_Mobile_Station
Open source eGPU dock for ROG Ally and ROG Flow

tomrodinger/servomotor
Open-source NEMA-17 integrated servomotor (motor + closed-loop driver + controller + encoder). RS-485, Python/Arduino libraries, MCP server for AI control. Hardware, firmware and software.

antmicro/thunderbolt-pcie-adapter
This project contains open hardware design files for an adapter board wrapping 4-lane (i.e. 4x) PCIe Gen 3.0 devices into a Thunderbolt 3 uplink. It is based on the Intel/JHL6340SLLSQ Thunderbolt controller.

enkhbold470/pd-brick
USB-C Power Delivery bench supply: STUSB4500 sink, LM5176 buck-boost, INA228 monitor, 1.2-22 V set over I2C by an ESP32-S3. 4-layer KiCad 10 board.

udaravima/Lab_Bench
A modular, rack-style DC power supply: up to 8 hot-pluggable 600 W buck modules on a shared DC input bus, coordinated by a central manager over CAN.

ondras12345/vetrnik
Electronics for heating water with power from a 2 kW wind turbine


django-wardlow/diy-laptop
A diy 15" 2 in 1 based around the framework 13 motherboard

It measures 237.9 × 80.5 mm and has 6 copper layers, 1.56 mm thick.
300 parts, built around the LM3489MMX/NOPB, MX25L8006EM1I-12G, 2N7002W and H5VU25U. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the osy/XG_Mobile_Station repository on GitHub, at the commit this page was made from: the board is XG_Mobile_Dock.kicad_pcb and its schematic MCU.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CC-BY-4.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).