FiiO M3K
Native port status
Feature |
Working |
Notes |
Audio playback |
Yes |
>= 176.4 KHz playback and too much DSP can make the UI unresponsive |
Recording |
Yes |
|
Display |
Yes |
Known bug: very rarely, system might lock up after screen turns on |
Buttons/touchpad |
Yes |
|
MicroSD |
Yes |
|
Battery charging |
Yes |
|
Dual boot |
Yes |
|
USB |
Partial |
File transfers are slower than the OF |
USB DAC |
No |
Feature not available in Rockbox; use the OF for this |
Rockbox utility support |
No |
Manual installation is required |
The native port is the current supported way to run Rockbox on the FiiO M3K. At present, it should be stable for audio playback and general everyday use, although as with any software there may be bugs. This port should not be confused with the unofficial XVortex port or the "M3K Linux" port, which both run as an application under the original firmware's Linux kernel. The native port of Rockbox drives the hardware directly, and doesn't rely on the original firmware or the Linux kernel.
Rockbox can be installed alongside the original FiiO firmware in a dual-boot installation. The Rockbox bootloader lets you select which firmware you want to boot, defaulting to Rockbox.
The Rockbox Utility does not yet support the M3K, so installing the bootloader is a manual process. For installation instructions, see JztoolInstall. After installing the bootloader, you can install and update Rockbox by unzipping a daily build to your SD card.
Hardware summary
Component |
Model |
Notes |
SoC |
X1000E |
1.0GHz MIPS XBurst with 64MB of SIP LPDDR RAM |
NAND |
ATO25D1GA-10ED |
1Gb SPI SLC NAND Flash |
PMU |
AXP192 |
I2C PMU, driver is AXP173? |
Backlight driver |
SGM3122 |
simple PWM LED driver |
Touch controller |
FT6236U |
I2C |
LCD controller |
likely ST7789S |
educated guess from Fiio's M3K kernel source |
DAC |
AK4376A |
I2S |
Microphone |
MSM42A3722H9KR |
plain MEMS analog mic |
USB OVP IC |
WP3881 |
|
Battery |
413372 |
2-wire with built-in basic protection circuit, 1100mAh |
See also: IngenicX1000
Known issues
- Very rarely, the LCD driver might be causing a hang when the screen turns on after being off.
- The DAC makes popping noises when changing frequency. Mostly occurs when switching to or from a frequency >= 96 KHz.
- The touchpad sometimes goes wonky on boot and won't respond properly to scrolling or button presses for the first few seconds. There's nothing that can really be done about this except artificially forcing Rockbox to wait longer in the splash screen so you can't see the problem.
- Scrolling might feel a bit off because the touchpad doesn't report coordinates linearly as it should. In particular the edges of the touchpad seem more sensitive than the middle, so scrolling in the middle of the pad requires a bigger motion than at the edges.
Internal images
PCB images:
Closeup of the PWM LED controller and the I2S DAC:
Screen assembly closeup:
TODO: transcribe silkscreen text
TODO: transcribe silkscreen text and pinout
Datasheets
All datasheet links were archived versions whenever possible.
Disassembly instructions
Disclaimer: everything you do is at your own risk and I cannot be held responsible if you damage your device or overheat the battery and it catches on fire.
Please don't attempt it unless you can afford to damage the device, this is for your reference only. There are no real benefits of disassembling the device (internal photos are already available from me and all the important chips have been identified) unless you want to access the native UART port (which doesn't have an interactive boot console that you can interrupt btw, the loader is not u-boot), and you'll need some E6000 adhesive to glue the screen back if you want to put it together again.
Tools required:
- Hair dryer
- LCD screen repair plier tool with removable suction cups
- E6000 adhesive
- Precision Philips screwdrivers
- Plastic pry tool (the triangular type)
- A thin plastic card
- Xacto knife
- Kapton tape
Procedure:
- Unscrew a suction cup from your plier tool, firmly adhere it to the upper back side of the device with the E6000 glue, let it sit for at least 14h. Be generous with the glue, you'll be able to cleanly remove them later before they harden completely. This is necessary because the aluminum back doesn't play nice with the suction cup, it slips off before you can exert enough force onto the front glass.
- Heat up the front of the device until the aluminum frame is very hot to the touch. Immediately screw the glued suction cup back onto the plier tool, and you should be able to get enough grip to pull the screen off now. You must pull it apart from the LCD side (not the touch controls side) to avoid damaging the ribbon cables.
- Detach the two ribbon cable connectors and remove the screen assembly. Beware that the touch controller ribbon cable has a sticky back, carefully peel it off the board with a tweezer. Hit it with a hair dryer if it's hard to remove, that'll hopefully soften the adhesive.
- Take your triangular pry tool, use it to push up & warp the upper panel from the inside of the device, there's an aluminum overlay that you'll hopefully be able to separate with your xacto knife (the key here is to cut away the adhesive instead of prying). There will be two screws hidden under that overlay, remove them and you'll be able to side the entire inner tray out from the bottom side.
- Peel off the black insulation tape on the board to reveal some test points, including UART. Put on some Kapton tape before you attach the screen to prevent the metal bracket from shorting anything out.
- Remove the 6 screws from the plastic tray (one screw is smaller than the rest), and you can take the board out.
- Heat up the board again from the front side and use a thin plastic card to slowly separate the battery from the board. The PCB bends pretty easily so be careful NOT to bend it in the process, I find gripping on the PCB on the long sides can reduce bending. After you detach and desolder the battery, the disassembly is now complete.
Copyright © by the contributing authors.
|