Skip to content

Modified firmware binaries for iBasso DX200 DAP

Notifications You must be signed in to change notification settings

Lurker00/DX200-firmware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 

Repository files navigation

iBasso DX200 firmware modified by Lurker

DISCLAIMER: No changes were made to the basic player functionality and behavior! Expect the same bugs and misbehavior found in the base stock firmware! No warranty at all: use the modified firmware at your own risk and responsibility!

  1. Changes made
  2. Use of USB Reader in Mango to access microSD card
  3. Flash DX200 firmware using FactoryTool (Windows)
  4. Flash DX200 firmware using rkflashtool (Mac/Linux)
  5. Recommended settings for Neutron Music Player
  6. Recommended settings for USB Audio Player Pro

To download the latest releases, please go to the Releases section.

To check the current version in Android mode, go to Settings, About DX200, Build number at the bottom. In Mango mode, open Settings, Advanced, System Info, and look to Firmware version and suffix (e.g. L0) in Model number.

To flash the firmware, you need

Flashing this firmware will not clean the user data. To return to the official firmware, just flash it per its instruction. You may only need to do a factory reset to get rid of icons of software, pre-installed in my firmware builds, but sometimes it's enough to delete them a usual way.

Changes made

  • Battery charging process has been optimized to reduce a chance for overheat, and to fully utilize battery capacity.
  • When the screen is turned off, CPU and RAM are running at reduced speed, to reduce power consumption. 2.8.198L1 adds more than a hour of typical continuous playback, compared to the official firmware.

Android mode

  • Added Google Play Market. It is not the latest version available, but it corresponds to the pre-installed Google Play Services. Can be disabled and enabled back via System settings of USB Audio app, along with Google Services.
  • USB Mass Storage to direct access of your microSD card when you connect DX200 to a computer. It replaces MIDI choice in the pull-down menu of USB connections. When selected, SD card is unmounted internally, and is not visible if you return back to MTP. It is mounted back right after disconnect from the computer.
  • Embedded USB Audio application with advanced features, possible only for a built-in app. In its System settings you can disable Google services and Media scanner, and turn Android's Battery saver permanently on, to reduce background activity almost to zero level.
  • Embedded a special build of HibyMusic, compatible with USB Audio app. All the required changes made by me, with kind permission of HiBy Music. This build may co-exist with official releases installed from Google PlayMarket.
  • Added SuperSU for those who need root access.
  • Music detector: it keeps Android in active state while music is playing, and prevents deep sleep for some minutes after the music has been stopped, to allow to resume playback by only pushing play/pause button. The default period is 5 minutes. You can change this value in the Settings, Idle Timeout. You don't need to keep USB Audio running for this feature.
  • Added support to mount exFAT and NTFS file systems by UUID, not as default. This allows to use microSD and a USB OTG disk at the same time, without problems.
  • A custom build of libtinyalsa.so to workaround a bug in Android, that caused mediaserver to crash. This problem was not visible for most users, because crashes and restarts happened on the background, between audio playbacks.
    It allows Neutron Music to play DSD in DoP, and PCM up to 32/384kHz, transparently, without additional efforts. Native DSD playback up to DSD512 is supported for Neutron version 1.98.1 and higher.
  • Removed rild service and disabled any telephony and SMS services.
  • Battery level percentage indicator is back, and volume level indicator is visible at the lock screen+).
  • Custom builds of Android Power, Lights and Vibrator HALs.
  • Workaround for confusing and annoying "Choose app for the USB device" (or similar) Android prompt when Mango plays DSD, or USB Audio turns the interface on.
  • Turned off system logs, to decrease unwanted CPU load and background activity. Can be turned back on via System settings.
    Note: by default, logs are disabled only for 32-bit applications, because disabling them for 64-bit apps creates problems for SuperSU user interface (only user interface, not for its basic functionality!). They can be completely turned off via System settings, and turned on, if required.
  • Modified Android's DeviceIdleController: with the official firmware, Android never goes into Doze mode! This is because the original DeviceIdleController has turned off normal execution of device idling for devices without significant motion sensor. The modified version has removed any motion detectors, and the default DeviceIdleController constants are tuned for DAP use. See also System settings of USB Audio app to improve energy saving even more.

Custom build of Android Power HAL module has implemented the following strategies for 8 CPU cores:

  • Screen on: 8 in normal, 4 in Battery Saving modes.
  • Screen off: 4 when music is playing (by any application!), 1 when idle (including USB DAC mode).

Custom build of Android Lights HAL module has implemented fast control of backlight, and removed control of LEDs, which are missing in DX200 anyway.
Custom build of Android Vibrator HAL module just does nothing, because there is no corresponding hardware in DX200.

Mango mode

  • Removed Android services, that are not used in this mode.
  • Enabled USB Reader mode (read below).
  • Fonts are replaced with a font based on Roboto Condensed and Arial Unicode MS.
  • Removed video codecs from Mango multimedia engine.
  • Turned off system logs, to decrease unwanted CPU load and background activity.

Use of USB Reader in Mango to access microSD card

Write access to microSD card using USB Reader mode of Mango may lead to corrupted files and the file system! The reason is that Mango does not unmount the SD card internally, so that an access possible from both sides (DX200 and PC/Mac) at the same time, without knowing of each other.

If you really want to use this feature, it is strongly recommended to perform the following steps in this particular order:

  1. Connect DX200 to PC/Mac as Card Reader right after device boot.
  2. Check the flash card for corrupted file system. Most probably at least the volume is not closed.
  3. Copy your files to or from the SD card.
  4. Safely disconnect the device from PC/Mac.
  5. Turn DX200 off, then on, and only then make operations that may need write access to the SD card.

Flash DX200 firmware using FactoryTool (Windows)

FactoryTool is the official RockChip Windows application to flash firmware into RockChip-based devices.

You need to download and unzip the firmware image file: the only file in the archive with .img extension. Then:

  1. Download zip-archive.
  2. Unzip it.
  3. Read and follow the instruction ("DX200-DX150 FactoryTool instruction.pdf") inside the archive.

Flash DX200 firmware using rkflashtool (Mac/Linux)

You need to have installed rkflashtool version 6.1 or later. For Lunux, you have to build it from the source code. For MacOS, you can build it yourself as well, but there are pre-built binaries, also in Homebrew.

Then, you need to download a zip archive with "-rkflashtool" suffix, which contains two files: boot.img and system.img, and unzip it. If you have downloaded and unzipped it into your Download folder, the path is /Users/username/Downloads with your actual user name.

Install Homebrew and rkflashtool

These steps you need to perform only once, to set up the required environment. Open Terminal from your Mac Utility folder. Copy and paste the following line into the command prompt and hit Enter:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

When you have Homebrew installed, copy and paste the following command and hit Enter:

brew install rkflashtool

Prepare DX200 for firmware loading

  1. Turn DX200 off.
  2. Press and hold Pause/Play button.
  3. Connect DX200 to your computer via USB.
  4. In a five to ten seconds, release Play/Pause.

Now DX200 should be in factory flash mode. Then type the following commands (possibly with or in su):

rkflashtool v
rkflashtool n

to check if rkflashtool sees and recognizes your DX200.

Flash the firmware

Change the current working directory in Terminal to one where you have unzipped firmware files, e.g.

cd /Users/username/Downloads

with your actual user name and the path. Then type in the directory where you have unzipped firmware files:

rkflashtool w boot < boot.img
rkflashtool w system < system.img

At the end of the each process you'll see a message premature end-of-file reached: it is normal, because files are smaller than flash partition sizes. Now you can issue

rkflashtool b

to reboot the device, or do it manually.

The Mac specific steps above were derived from a forum post by Likeimthere.

Recommended settings for Neutron Music Player

Neutron Music Player automatically detects DX200 and is able to play PCM up to 32/768KHz and DSD up to DSD512 bit perfect, without a need to use USB Audio application. The following settings are recommended for the version 2.01.0-AMD64:

Replay Gain: off
64-bit Processing: on
Automatic Gain Protection: off
Service: off
Audio Hardware:

  • DSP Effect (Device): set Filter and Output Gain for your taste.
  • Mono: off
  • Dither: off
  • Phase Inversion: off
  • Subsonic Filter: off
  • Ultrasonic Filter: off
  • Reverse Stereo: off
  • Hardware Gain: on
  • Audio Focus: on
  • Direct USB Access: off
  • DSD, DSD over PCM (DoP): on; tap on this item, and Native DSD: on, Volume Control: off
  • Oversampling: off
  • Follow Source Frequency: on

Recommended settings for USB Audio Player Pro

Starting from version 4.1, UAPP on DX200 can play PCM up to 32/192KHz bit perfect via its HiRes Direct Driver, without a need of USB Audio application. The following settings are recommended for the version 4.2.5:

Internal audio driver: HiRes Direct Driver

HiRes audio:

  • HiRes driver flags: Direct PCM
  • HiRes driver audio format: 32-bit
  • Bit perfect: On

Android audio:

  • Play through Android: unchecked
  • Android sample rate: Variable rate
  • Force 16-bit: unchecked

To use along with USB Audio application, for bit perfect PCM above 192KHz and DSD, including SACD ISO images:

USB audio:

  • Upsample: Off
  • Bit perfect: On
  • DSD mode: Native DSD
  • High quality DSD conversion: unchecked

Volume:

  • USB Volume control: None
  • Use volume rocker buttons: unchecked
  • Replay gain: No replay gain
  • Replay gain compensation: 0 dB

USB audio tweaks:

  • Use USB DAC: checked
  • Free USB bandwidth after playback: checked

About

Modified firmware binaries for iBasso DX200 DAP

Resources

Stars

Watchers

Forks

Packages

No packages published