dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Search | Go
Wiki > Main > XDuooX3

xDuoo X3


This is the page for the xDuoo X3 port.

This device has very similar hardware to the FiioX1.

Port Status

feature status comments
Display 100% The screen is ugly, but it works, including brightness control.
Keys 100% All keys function.
Music playback 100% Everything works.
Power Management 95% Everything works, including dynamic clocking.
SD 100% Both SD slots work, including hotplug
USB 95% Everything works.
Manual 90% Manual written, but many screenshots and plugin keymaps are missing.
Bootloader 90% Dual-boot with original OF working, but bootloader has some bugs.
Rockbox Utility 100% Work is under way to generate a working update image.

Main Features

  • Capacities: internal NAND flash (small, used for OS only)
  • Tiny 128x64 OLED screen
  • Separate headphone and line-out outputs
  • 24-bit/192KHz DAC + amplifier
  • Hi-speed micro-USB 2.0 port
  • two microSDHC card slots

There are two known hardware variations; the older has a button marked 'ESC' and a 1500mAh battery. The newer version has a button marked 'BACK' and a 2000 mAh battery. The devices appear completely identical to software. Unfortunately the two battery types have very different discharge curves, so a configuration option (Settings/General/Battery/Battery Type) is provided that allows the user to select which type is installed.

Recovery mode

The JZ4760 chip has a usb recovery mode documented in the datasheet. The xDuoo X3 can be put in this mode by the following procedure:
  • Turn off the device
  • Push the ESC/Home button
  • While holding the ESC/Home button down, plug in the USB cable
  • The screen will stay black and the device will then register itself as a Ingenic device: 601a:4760 Ingenic Semiconductor Ltd.

When in recovery mode, the device uses a custom protocol documented in the datasheet. There is a tool in the rockbox repository to send commands to the device.

Ingenic Windows 32 and 64-bit drivers for the device in recovery mode can be found in this archive: We have tools to interact with the recovery mode of the ingenic: see utils/jz4740_tools/jz4740_usbtool.c and utils/hwstub/ in our repository.

Boot Procedure

On boot, the cpu will either enter recovery mode or boot from the NAND. When booting from NAND, the CPU will load 8KB of code to the cache and execute them. This bootloader will then load U-Boot. U-Boot will then either boot a recovery Linux or the the normal Linux.

Firmware Files

See XDuooX3Firmware for an analysis of the Fiio firmware format.


Version 1.4.2 (or later) of the RockboxUtility will supports the X3. Until that is released, you will have to build rbutil from git yourself, or manually install the bootloader.

Installing the bootloader is the trickiest part of the installation. We cannot distribute the bootloader directly, and thus need to patch a compatible version of the xDuoo firmware

  1. Download the Rockbox bootloader patch from
  2. Get a copy of the original X3 v1.1 firmware from and extract the .rar file to obtain the update image (called
  3. Compile bspatch in rbutil/bspatch/ (run make in the dir).
  4. Run ../rbutil/bspatch/bspatch X3-v11.bsdiff
  5. Put in the root of the SD card and rename it to
  6. Disconnect the player from USB and let the original firmware boot.
  7. Go into the ’Setting’ menu (left, enter), and select ’Upgrade’ (left, enter). The player will reboot into Rockbox upon completion.

Alternatively, a pre-patched firmware image can be downloaded from -- Download this and go to step 5 above.

If you wish to re-flash the device, it is a little trickier:

1. Make sure device is powered off. 2. Enable the lock switch. 3. Hold the power button until the xDuoo logo is displayed. 4. Disable the lock switch. 5. At the menu, go to Setting->Upgrade (see #7 above). 6. As soon as you see the "success" message, enable the lock switch 7. Device will reboot. 8. When you see the xDuoo logo, disable the lock switch. 9. When firmware update is complete, device will boot back into Rockbox.

PCB Scans

FAR6.jpg FAR1.jpg FAR6.jpg FAR6.jpg

Case disassembled

x3-pcb-top_791089.jpg x3-pcb-bottom-amp-case-amp-battery.jpg


  • Ingenic JZ4760B: basically a JZ4760 with a few modifications. See IngenicJz47xx
  • 128x64 OLED screen (SSD1306)
  • Cirrus Logic CS4398 DAC, 24-bit/192KHz
  • two OPA1612 for low pass filter and voltage amplifier
  • LMH6643 current amplifier (headphone only probably)
  • Toshiba MD5N01G51MSD1B or Fidelix FMN1SD5SBS: 1Gbit SLC NAND x16 + 512Mbit Mobile DRR x32, unknown speed
  • Microchip MCP73863 hardware charge controller (4.2V single-cell lithium-ion)
  • 613773 3.7v 2000 mAh battery (6.1x37x73mm). A replacement battery fitting the dimensions can be found at
  • Volume Up/Down buttons can be easily damaged. A suitable replacement part is the Panasonic EVQ-P7A01P

I Attachment Action Size Date Who Comment
2016-01-03_17.05.29.jpgjpg 2016-01-03_17.05.29.jpg manage 691.8 K 07 Jan 2016 - 17:13 AmauryPouly  
CameraZOOM-20151231015717409.jpgjpg CameraZOOM-20151231015717409.jpg manage 1229.3 K 07 Jan 2016 - 17:13 AmauryPouly  
FAR1.jpgjpg FAR1.jpg manage 1232.6 K 07 Jan 2016 - 17:11 AmauryPouly  
FAR6.jpgjpg FAR6.jpg manage 1086.0 K 07 Jan 2016 - 17:10 AmauryPouly  
x3-pcb-bottom-amp-case-amp-battery_791088.jpgjpg x3-pcb-bottom-amp-case-amp-battery_791088.jpg manage 633.6 K 29 Aug 2020 - 12:50 JohannesRauh courtesy of _cholero (
x3-pcb-top_791089.jpgjpg x3-pcb-top_791089.jpg manage 815.1 K 29 Aug 2020 - 12:49 JohannesRauh courtesy of _cholero (
r22 - 03 Jul 2024 - 20:51:03 - SolomonPeachy

Copyright © by the contributing authors.