XG Mobile Dock: an open source eGPU board for ROG Ally and ROG Flow
Open source eGPU dock for ROG Ally and ROG Flow
At a glance
- What is it?
- XG Mobile Dock is an open source hardware project that lets you attach any PCIe graphics card to an ASUS ROG device through the XG Mobile connector, in two board variants. The repository holds the KiCad schematics and layouts, the STM32 and charger firmware, and a Windows driver that makes the custom board look official to ARMORY CRATE.
- Who is it for?
- Adopt XG Mobile Dock if you own a supported ASUS ROG device, need a graphics card the vendor does not offer for that machine, and are prepared to build or buy a PCB and flash three firmware images yourself. Do not adopt it as a plug and play upgrade, because the README's own troubleshooting section shows that PCIe 4.0 speeds depend on board soldering, cable quality and GPU behaviour, and that NVIDIA users need an extra patch on top of the drivers.
- Can I use it commercially?
- Yes, with credit. CC-BY-4.0 allows commercial use as long as you credit the authors and indicate what you changed. It is written for creative content, so check how it applies to any code.
- Is it still maintained?
- Yes. The repository last received commits 141 days ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the XG Mobile connector allows and who built this
The XG Mobile Dock is a hardware project, and the README states its purpose in the first line: it allows you to connect any PCIe card to an ASUS ROG device with the XG Mobile connector. The primary language of the repository is C, which belongs to the firmware and driver rather than to the electronics. Two variants exist. The standard variant is a drop-in replacement PCB for the XG Station Pro Thunderbolt 3 eGPU dock, and it carries a built in USB 3.1 Gen 2 hub plus a USB PD charger. The lite variant is a standalone board that is dimensionally compatible with the ADT-UT3G, and it needs a standard ATX power supply and passes USB through to an external port. The licence is CC-BY-4.0, which is the usual choice for hardware designs where the point is that people can build and modify the board and share the result.
The two board variants and what they carry
The feature list is short and specific, and it differs by variant. For the 2021, 2022 and 2023 ROG Flow, support goes up to PCIe 4.0 x8, and for the 2023 ROG Ally up to PCIe 4.0 x4. An MCU handles cable detection and the LEDs on both boards. On the standard board there is a 65W USB PD charger, two USB-C ports wired to a USB 3.1 Gen 2 hub, and a 300W DC-DC power supply. The lite board does not carry the charger or the hub, which is why it takes an ATX supply and passes USB out. The KiCad sources make the difference visible in the file names: XG_Mobile_Dock.kicad_sch and XG_Mobile_Dock.kicad_pcb for the standard board, XG_Mobile_Dock_Lite.* for the lite one, XG_Station_Power.* and XG_Station_Power_MSI.* for the power sections, plus separate schematics for the USB hub, the USB PD charger, the PCIe redriver and the 12V power rail. A USB_Hub_Test board and a set of Footprints/, Symbols/ and Models/ directories show that the project also carries its own library and test artefacts.
Three firmware images have to be flashed before it works
The Getting Started section is a three step sequence: build the PCB, flash the board, install the software. Flashing is the part that surprises newcomers, because the boards need several separate images. Lite boards only need the STM32 flashed, while the standard board requires writing two SPI flashes as well. The MCU is an STM32, and the firmware file is XG_Mobile_Dock_MCU.bin, which you either download from the latest release or build yourself from the XG_Mobile_Dock_MCU/ directory. The README's procedure is a ten step one that involves an ST-LINK v2 programmer, a jumper wire from VAPP to VDD on an official ST-LINK, and ST32CubeProgrammer, with the caveat that a cheap clone sold on Amazon or Aliexpress may have incorrect pin numbers printed on it and that the 3V3 pin must not be connected. The board has to be powered while programming, and the tool's Erasing and programming page is used with Run after programming checked.
The two SPI flashes are written from a Raspberry Pi
The charger and the USB hub firmware are written with flashrom over SPI, and the README uses a Raspberry Pi as the programmer, while noting that most other single board computers work as well as dedicated SPI flashers. The charger image is XG_Mobile_Dock_Charger.bin, and the USB hub image is named after the hub chip and its firmware version, VL822_Q7_9043_Phantom_20220616.bin. The pin list is the same for both, GND, SS, CLK, MISO and MOSI, but the header differs, J9 for the charger and J13 for the hub, and the README warns that the pin order is different between the two.
sudo flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w XG_Mobile_Dock_Charger.binsudo flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w VL822_Q7_9043_Phantom_20220616.binBoth images are available from the latest release, and the charger one can also be built from source following the build guide.
sudo apt-get install flashromThe charger image is then written with the linux_spi driver at a specified speed, and the hub image uses the same invocation with a different file name.
XGMDriver makes the board look official to ARMORY CRATE
The software side of the project is a Windows driver. The README states plainly what XGMDriver does: it tricks ARMORY CRATE software into identifying the custom dock as an official XG Mobile device, and once installed it should keep working even if ARMORY CRATE is updated. The source is in the XGMDriver/ directory, and the XGMActivator/ directory sits beside it in the tree. Installation is a three step process: download XGMDriverSetup.exe from the latest release, run the installer and select AMD or NVIDIA depending on the vendor of the GPU you are installing, and if you need to swap vendors later, uninstall from the Control Panel or run the installer again and pick the other option. There is also a related script referenced in the troubleshooting notes for the well known NVIDIA Error 43 problem, which appears when an eGPU is installed with the correct drivers on an NVIDIA card.
Why PCIe 4.0 speeds are a manufacturing question
The troubleshooting section is the most instructive part of the README, because it shows that the electrical design has a tolerance. If GPU-Z changes between 4.0 and lower versions under load, if you see stuttering or under 10 FPS in 1 percent lows, if Windows crawls, or if the event viewer repeatedly logs WHEA-Logger Event ID:17 corrected hardware errors, the device is struggling to sustain PCIe 4.0 speeds. The README lists four candidate causes and treats them as a checklist. The board may not have been manufactured with impedance matching or properly soldered high speed connectors, in which case you verify the specification and test multiple boards. The GPU may be faulty or badly mounted, which you check by confirming the card reaches 4.0 on a desktop PC. The XGM cable may be loose, twisted or bent, so the two 40P connectors need to be tight with the metal bar locked and the shielding screw tightened, and a coiled cable should be straightened. And the cable may be manufactured to a lower standard, since the official XG Mobile device only supports PCIe 3.0 and the cable is only rated for 3.0, with some cables working better than others. The diagnostic tools named are FurMark for a long run under load and CUDA-Z for reading access speeds, and the fallback if 4.0 cannot be held is a hot unplug and replug to force 3.0 mode.
Maintenance, releases and the licence of the design files
The repository is not archived, and the last push was on 2026-06-04, so the design files and firmware have been touched within the last few months. The release tags move more slowly and carry a variant marker: v0.6.1-lite on 2026-01-16, v0.6.1 on 2025-01-17 and v0.5.1 on 2024-11-10, which tells you that the lite board and the standard board are versioned separately because they need different firmware sets. That matters when you pick a release, since the firmware files you download have to match the board you built. The licence situation is worth reading rather than assuming: CC-BY-4.0 covers the repository, which is the share-alike style licence normally used for open hardware designs and documentation, so building the board and publishing your own version of the design is expected, and attribution to the original work is required. The repository also includes a resistor_finder.py helper and a getcontributors.py script, and a Docs/ directory with the build guide, 3D renders and the images used in the README.
Editorial conclusion
Adopt XG Mobile Dock if you own a supported ASUS ROG device, need a graphics card the vendor does not offer for that machine, and are prepared to build or buy a PCB and flash three firmware images yourself. Do not adopt it as a plug and play upgrade, because the README's own troubleshooting section shows that PCIe 4.0 speeds depend on board soldering, cable quality and GPU behaviour, and that NVIDIA users need an extra patch on top of the drivers. Before ordering boards, read Docs/Build_Guide.md, confirm the firmware files for the MCU, the charger and the USB hub match your variant, and check whether the PCIe 3.0 fallback in the troubleshooting notes is acceptable for your use.
Frequently asked questions
What is the XG Mobile Dock and what does it do?
It is open source hardware that 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, and the lite variant is a standalone board dimensionally compatible with the ADT-UT3G.
Which ASUS devices does the XG Mobile Dock support?
The README lists up to PCIe 4.0 x8 support for the 2021, 2022 and 2023 ROG Flow, and up to PCIe 4.0 x4 support for the 2023 ROG Ally. The board also supports PCIe 3.0 as a fallback mode.
What has to be flashed onto the XG Mobile Dock board?
Lite boards only need the STM32 flashed, while the standard board requires writing two SPI flashes as well. The MCU firmware is XG_Mobile_Dock_MCU.bin, the charger firmware is XG_Mobile_Dock_Charger.bin, and the USB hub firmware is VL822_Q7_9043_Phantom_20220616.bin, all downloadable from the latest release.
What does XGMDriver do for the XG Mobile Dock?
The README says XGMDriver tricks ARMORY CRATE software into identifying the custom dock as an official XG Mobile device, and that once installed it should work even if ARMORY CRATE is updated. You install it by running XGMDriverSetup.exe and choosing AMD or NVIDIA to match your GPU.
Why does my XG Mobile Dock only reach PCIe 3.0 speeds?
The README lists four possible causes: a board manufactured without impedance matching or proper soldering of the high speed connectors, a faulty or badly mounted GPU, an XGM cable that is loose, twisted or bent, and a cable manufactured to the PCIe 3.0 rating of the official XG Mobile device. If 4.0 cannot be sustained, the README says you can hot-unplug and hot-plug to force 3.0 mode.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/osy-xg-mobile-station)Was this useful?