xDuoo X3
Overview
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:
ftp://ftp.ingenic.cn/DevSupport/Tools/USBBurner/USBBurnTool_V1.6.0.rar.
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.
Installation
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
- Download the Rockbox bootloader patch from https://download.rockbox.org/bootloader/xduoo/X3-v11.bsdiff
- Get a copy of the original X3 v1.1 firmware from https://xduoo.net/firmware-download/ and extract the .rar file to obtain the update image (called update.zip).
- Compile bspatch in rbutil/bspatch/ (run make in the dir).
- Run ../rbutil/bspatch/bspatch update.zip X3-v11-patched.zip X3-v11.bsdiff
- Put X3-v11-patched.zip in the root of the SD card and rename it to update.zip.
- Disconnect the player from USB and let the original firmware boot.
- 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
https://download.rockbox.org/bootloader/xduoo/X3-v11-patched.zip -- 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
Case disassembled
Components
- 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 https://www.aliexpress.com/item/32817342180.html.
- Volume Up/Down buttons can be easily damaged. A suitable replacement part is the Panasonic EVQ-P7A01P
Copyright © by the contributing authors.