release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide
translations



Search | Go
Wiki > Main > TargetStatus > AIGOErosQK

AIGO EROS Q / EROS K

Also sold as:

  • AGPTek H3 (EROS K)
  • HIFI WALKER H2 (EROS Q)
  • Surfans F20 (EROS K)

NOTE: The EROS Q II (and QII Touch, and H2 Touch) uses a very different internal platform internally, and is *not* supported.

These players sometimes come with an included SD card. These cards are often junk, and it is recommended to throw this card in the trash, and instead get one of a reputable brand, from a reputable source (such as direct from the manufacturer).

EROS Q/HIFI WALKER H2: 90x55x15mm, 152g

EROS K/AGPTek H3/Surfans F20: 94x57x15mm, 111g


Table Of Contents




Native and Hosted: Huh?


There are two ways to run Rockbox on the Eros Q and clones. There is the "Hosted" way, where Rockbox is run on top of the original linux-based firmware, and the "Native" way, where we install a bootloader onto the device and boot Rockbox directly. The Hosted port was the original port to the device, and the Native port came later.

These two are completely separate. They use different Rockbox builds and different installation files. The Rockbox builds will be labelled like such:

  • Hosted: aigoerosq
  • Native: erosqnative

At this time, the Native port is the preferred way to run Rockbox on these devices. This is the version which got a Rockbox 4.0 stable release.




Native Port (erosqnative)


This is the section discussing the "Native" port. When downloading a Rockbox build make sure you are downloading "erosqnative".

Please note the following key combinations which can be used to boot the device (start with the player off!):
  • Power: Boot Rockbox
  • Play + Power: Boot into the Original Firmware
  • Volume Up + Power: Boot into the Rockbox Bootloader Menu

Please also see the Rockbox Manual for the erosqnative port. It may answer your questions.

Issues installing? Please see ErosQNativeTroubleshooting.



Automatic Native Port Installation (RockboxUtility)

*At the time of writing, the Rockbox Utility version which supports this is not released yet. You will need to use one of the manual installation methods below.*

RockboxUtility supports the Native port as of version 1.5.2. Please follow the prompts given. Select the player brand and version which corresponds to your player's Original Firmware's brand and version. You will need to install the bootloader and Rockbox. Any extras you want can also be installed. Note that the Bootloader only ever needs to be installed once.

If you do not see an entry which corresponds to your player's brand and version, please contact the manufacturer and ask them two things: (1) for an update file of your version, and (2) if a player with the most recent version listed here can be upgraded to the firmware version on your player. If they say yes, we can be more certain that the hardware has not changed.

Uninstallation: Rockbox Utility will offer to uninstall for you, but it currently does not work. You will need to uninstall manually (it's not hard). Please see the Native Port Uninstallation section.



Manual Native Port Installation (update files - the preferred way)

In order to install Rockbox onto the device, we need to install the Bootloader onto the device's internal memory, and then we need to place Rockbox onto the SD card. Once the bootloader is installed onto the device, it is exceedingly rare to need to change it. Updating Rockbox is as simple as overwriting it on the SD card.

We will install the Rockbox Bootloader onto the device with the stock firmware's recovery mode. The process is as follows:

  • Step 1: Determine what hardware version your player is and download the correct bootloader update file
  • Step 1b: Download a Native Port Rockbox build
  • Step 1c: Format the SD card with the stock firmware (System Settings --> Reset --> Format TF Card)
  • Step 2: Place the bootloader update.upt file on the SD card
  • Step 2b: Extract Rockbox onto the SD card (the .rockbox folder)
  • Step 3: In the stock firmware, run the Firmware Update (System Settings --> Firmware Update)


Detailed installation Instructions are as follows:

Step 1: Determine what hardware version your player is and download the correct bootloader update file

Determine what hardware version your player is by doing the following: On your player, go to (System Settings --> About The Player --> Version) to get the firmware version. Then find your player brand and firmware version number in the lists below. hw1/hw1.5/hw2 players all use the same update file (with one exception), while hw3 and hw4 players each use their own version.

Important: If your player's firmware version is not contained in this list, for example if the firmware version is newer than what is listed here, we cannot be sure that the hardware is the same. The best thing to do is contact the manufacturer and ask them two things: (1) for an update file of your version, and (2) if a player with the most recent version listed here can be upgraded to the firmware version on your player. If they say yes, we can be more certain that the hardware has not changed.

hw1/hw1.5/hw2 players

  • Aigo Eros Q V1.8 - V2.0
  • AGPTek H3
  • Hifiwalker H2 V1.0 - V1.6
  • Surfans F20 V2.2 - V2.7

These players use the hw1hw2 update file with name "erosq".

The lone exception is Hifiwalker H2 V1.3, it uses the hw1hw2 update file with name "eros_h2".

hw3 players

  • Aigo Eros Q V2.1 (not confirmed)
  • Hifiwalker H2 V1.7 - V1.8
  • Surfans F20 V3.0 - V3.3

These players use the hw3 update file.

hw4 players

  • Aigo Eros Q V2.2
  • Surfans F20 V3.4
  • Hifiwalker H2 v1.9 - v2.0

These players use the hw4 update file.

Step 1b: Download a Rockbox build

This is a convenient time to download Rockbox itself. Head over to the Release Downloads page and download the AIGO EROS Q / K (Native) Rockbox release. All hardware versions use the same rockbox build.

(Daily development versions are also available on The dev builds page. Make sure the filename contains "erosqnative"! If the filename contains "aigoerosq", that is the Hosted port, and it will not work!


Step 1c: Format the SD card

This is a convenient time to format the SD card. We need to ensure the SD card is formatted as FAT - most cards come from the factory with exFAT on them. The stock firmware can be used to do this. Back up any files you do not want to lose from the card and go to (System Settings --> Reset --> Format TF Card) in the stock firmware. Once done, you can put your files back on the SD card.

Note: These players sometimes come with an included SD card. It is the author's opinion that these cards are often junk, and are best thrown in the trash. It is recommended to instead get one of a reputable brand, from a reputable source (such as direct from the manufacturer). There are a lot of counterfeit cards out there, particularly from Amazon. Bizarre crashes and issues can result from counterfeit and low quality SD cards. Please see https://forums.rockbox.org/index.php/topic,55193.0.html.


Step 2: Place the bootloader update.upt file on the SD card

Place the update file on the root of the SD card. It must be named exactly update.upt.


Step 2b: Extract Rockbox onto the SD card (the .rockbox folder)

This is a convenient time to place Rockbox onto the SD card. It will live in the .rockbox folder. Note that this folder may be hidden by default on some computers. In order to see it, you may need to enable "Show Hidden Files".

This .rockbox folder on your SD card is your Rockbox installation. If you need to update Rockbox, all you need to do is replace .rockbox with the new build. That's it!

Step 3: In the stock firmware, run the Firmware Update (System Settings --> Firmware Update)

In the stock firmware, run the firmware update by going to (System Settings --> Firmware Update). This will install the bootloader onto the device. That is all that it is doing.

When done, the device should reboot into Rockbox. From this point on, there is no need to use the updater except in the (exceedingly rare) cases where the bootloader needs to be updated. To update Rockbox itself, simply extract a new ".rockbox" folder onto the root of the SD card and reboot the device.

At this point, you can delete the update.upt file from the SD card if you wish. Do not delete .rockbox, this is your Rockbox installation and needs to stay there!

Congratulations, you're done!



Manual Native Port Installation (the jztool way - for special circumstances)

This is the original way to install the bootloader onto the device. It is more complicated than using update files (see above), but can be useful if a device needs rescuing for some reason, as the bootloader can be temporarily sent over regardless of what is on the internal flash memory. In fact, this makes it almost impossible to completely brick a player. You wil need to use the command line in order to use this method of installation. Unless you have a specific reason to do it this way, we recommend the Update Files method above.

For all devices regardless of brand or version, use the "erosq" option for jztool.

The process is detailed on the JztoolInstall page. Please follow the instructions there. However, it can be summed up as such:

Know what version your player is

Determine what hardware version your player is. On your player, go to System Settings --> Version and reference the table above. hw1/hw1.5/hw2 players all use the same bootloader, while hw3 and hw4 players both need their own unique one. All players use the same Rockbox builds, though.

Ensure your SD card is formatted as FAT

If the SD card is formatted exFAT, reformat it to FAT - The original firmware's format tool (in System Settings --> Reset --> Format TF card) appears to be sufficient for this.

Download your files

Download jztool and the correct bootloader.

This is also a convenient time to download Rockbox itself. Head over to the Release Downloads page and download the AIGO EROS Q / K (Native) Rockbox 4.0 release. All hardware versions use the same rockbox build.

(Daily development versions are also available on The dev builds page. Make sure the filename contains "erosqnative"! If the filename contains "aigoerosq", that is the Hosted port, and it will not work!

Load up the SD card

Put the bootloader file and rockbox installation (the ".rockbox" folder) on the SD card and insert it into the player.

Put the player into "usbboot" mode and (temporarily) load the bootloader

Put the device into "usbboot" mode by, with the player off, holding "Menu" and pressing the power button. The blue light will come on but the screen will stay off. Then plug in usb and use jztool to temporarily load the bootloader.

Make a backup of the Original Firmware's bootloader

We're going to overwrite part of the Original Firmware's bootloader shortly, so make a backup in case you want to undo this. Use the "backup" feature in the bootloader to make an erosqnative-boot.bin backup file and save it somewhere safe.

Write the bootloader file from the SD card to the device's memory

Use "Install or Update" in the bootloader menu to write the bootloader file from the SD card to the device. After this point, it's safe to delete the bootloader.erosq file from your SD card.

Reboot and enjoy Rockbox!

Tada! Go get some good themes and put on some music, you're done!

Again, please see the JztoolInstall page for more detailed instructions!



Native Port Uninstallation

In order to uninstall the Native Port from your player, you must use an update file from the manufacturer. They contain the bootloader which we overwrote in order to install the Rockbox bootloader, but they do not install it by default. Therefore, we must modify the update file so that the bootloader is installed.

Uninstallation files can be created from a stock update file from the manufacturer by using the script in the Rockbox source tree at tools/hibyos_nativepatcher/hibyos_nativepatcher.sh.

Pre-modified uninstallation files for some devices can be found here: https://drive.google.com/drive/folders/1myl8DU7DuAuJQfS_EaCV_zJJ0RD7rWXs?usp=drive_link. Note that you must select the same brand and version as your player!

Once you have the correct modified update file, follow these steps:

  • Step 1: Place the file on the root of the SD card and name it update.upt.
  • Step 2: With the device off, hold Volume Up + Power.
  • Step 3: Select "Aigo Recovery" from the menu.



Native Port Issues

This native port functions well, but currently has the following issues:

  • No Rockbox Utility support - see this patchset - RockboxUtility support is added as of version 1.5.2. This version is yet to be released.
  • No uninstallation with Rockbox Utility: Rockbox Utility will offer to uninstall for you, but it currently does not work. You will need to uninstall manually (it's not hard).

The following are more minor things that could be tidied up or are "someday" projects:
  • USB HID keys are not yet defined
  • Bluetooth support - use the OF for this
  • USB DAC functionality - use the OF for this




Hosted Port (aigoerosq)


This hosted port runs on top of the original linux-based firmware, and was the original port to the device. It is much easier to add support for new hardware revisions to the Hosted Port than to the Native Port, so when a new hardware revision is found support will usually be added to the Hosted Port much earlier than the Native Port.

Rockbox functions very well on these targets, and nightly builds are considered stable for day-to-day use. The only features that are not available in Rockbox are Bluetooth and USB-DAC mode. The player can be booted into the original firmware to use these features.

Installation of the Hosted Port is handled via RockboxUtility. The correct patched original firmware update file must be installed and the rockbox firmware unzipped onto the SD card.

When downloading a Rockbox build, make sure that you are downloading "aigoerosq"!



Hosted Port Installation (RockboxUtility)

Install Rockbox via RockboxUtility. It fully supports these players as of version 1.5.0. It will ask you for a stock update file - either acquire the appropriate one from the manufacturer or use one of the pre-patched files below.



Hosted Port Installation (Manual)

If you wish to install Rockbox manually, follow these instructions:

  • Download the appropriate patched original firmware image from the table below.
  • Rename the patched firmware file to update.upt and place it into the root directory of the SD card
  • Grab the latest hosted port daily build for the player and unzip it into the root directory of the SD card
  • Go into the settings menu and select firmware update.
  • Upon reboot, select rockbox from the initial menu

For convenience, here are pre-patched images:

Player OF version HW Generation URL Notes
AIGO EROS K 1.3 hw1 https://download.rockbox.org/bootloader/aigo/EROSK-v13-patched.upt  
AIGO EROS Q 1.8 hw1 https://download.rockbox.org/bootloader/aigo/EROSQ-v18-patched.upt  
AIGO EROS Q 1.9 hw2 (not yet available) Not compatible with prior players!
AIGO EROS Q 2.0 hw2 https://download.rockbox.org/bootloader/aigo/EROSQ-v20-patched.upt Can upgrade v1.9
AIGO EROS Q 2.1 hw3 https://download.rockbox.org/bootloader/aigo/EROSQ-v21-patched.upt Not compatible with prior players!
AIGO EROS Q 2.2 hw4 (not yet available) Not compatible with prior players!
AGPTek H3 1.2 (20180905) hw1 https://download.rockbox.org/bootloader/agptek/H3-20180905-patched.upt  
HIFI WALKER H2 1.0 hw1 (not yet available)  
HIFI WALKER H2 1.1 hw1 https://download.rockbox.org/bootloader/hifiwalker/H2-v11-patched.upt Can upgrade v1.0
HIFI WALKER H2 1.2 hw1 https://download.rockbox.org/bootloader/hifiwalker/H2-v12-patched.upt Can upgrade v1.1
HIFI WALKER H2 1.3 hw1.5 https://download.rockbox.org/bootloader/hifiwalker/H2-v13-patched.upt Not compatible with prior players!
HIFI WALKER H2 1.4 hw2 https://download.rockbox.org/bootloader/hifiwalker/H2-v14-patched.upt Not compatible with prior players!
HIFI WALKER H2 1.5 hw2 https://download.rockbox.org/bootloader/hifiwalker/H2-v15-patched.upt Can upgrade v1.4
HIFI WALKER H2 1.6 hw2 https://download.rockbox.org/bootloader/hifiwalker/H2-v16-patched.upt Can upgrade v1.5
HIFI WALKER H2 1.7 hw3 ? (not yet available) Not compatible with prior players!
HIFI WALKER H2 1.8 hw3 https://download.rockbox.org/bootloader/hifiwalker/H2-v18-patched.upt Can upgrade v1.7
HIFI WALKER H2 1.9 hw4 (not yet available) Not compatible with prior players!
HIFI WALKER H2 2.0 hw4 (not yet available)  
Surfans F20 2.2 hw1 https://download.rockbox.org/bootloader/surfans/F20-v22-patched.upt  
Surfans F20 2.5 hw1.5 ? https://download.rockbox.org/bootloader/surfans/F20-v25-patched.upt  
Surfans F20 2.7 hw2 https://download.rockbox.org/bootloader/surfans/F20-v27-patched.upt Do not install over v2.2/v2.5 or you will lose audio out
Surfans F20 3.0 hw3 https://download.rockbox.org/bootloader/surfans/F20-v30-patched.upt Not compatible with prior v2.x players
Surfans F20 3.1 hw3 (not yet available)  
Surfans F20 3.2 hw3 (not yet available)  
Surfans F20 3.3 hw3 https://download.rockbox.org/bootloader/surfans/F20-v33-patched.upt Can update older v3.x firmware
Surfans F20 3.4 hw4 https://download.rockbox.org/bootloader/surfans/F20-v34-patched.upt Not compatible with prior players

Note: Due to undocumented hardware revisions, it is NEVER safe to downgrade to an older firmware revision than the one your player came with. It is often not safe to upgrade to a newer version!

New original firmware versions require patching with the following instructions:

  • Build or download the bootloader
  • Obtain a stock firmware image (usually the hard part)
  • Patch the firmware image with the bootloader using tools/hibypatcher.pl

If you have a device with an unknown or unavailable firmware, please contact the device maker and ask for the firmware update file, and send it to us. We can patch it and add it to the table above.




Hardware summary


The ErosQ/K platform has gone through several hardware iterations since its release. The summary, as we understand it, is given below.

hw1 Hardware Configuration

All ErosK players, All AGPTek H3 players, ErosQ players prior to v1.9, Hifiwalker units prior to version v1.4 and Surfans units prior to v2.7

Component Model Notes
SoC X1000 1.0GHz MIPS XBurst with 32MB of SIP LPDDR RAM
PMU AXP192 I2C PMU returns Reg03 ID 0x03
DAC TI PCM 5102A I2S
NAND ATO25D1GA 1Gb Newer players may use alternate chips
Display 320x240 2"  
Battery Li-Ion 3.7v 1300mAh  

Other hardware notes:

  • Headphone amp: MAX97220
  • Stereo switch: ISL54405IRUZ-T
  • Bluetooth module: unknown
  • micro USB
  • The PCM5102A DAC does not have hardware volume scaling.

The Line Out volume can be set by the Maximum Volume setting. Some notes:
  • Line Out level at 0 dB in Rockbox seems to be about 6.2 dBV
  • For "consumer level" line out, try setting to -16 dB. (-10dBV)
  • For "pro level" line out, try setting to -4 dB. (+4dBu -> ~1.8dBV)

The signal flow appears to be something like:
DAC \--> HP Amp --> Stereo Switch --> HP OUT
     \-> LO OUT

Hardware disassembly was not necessary to complete this hosted port. Other than Bluetooth, all hardware functionality appears to work.

hw1.5 changes the power supply circuit; there are no known software implications.

hw2 Hardware Configuration:

ErosQ v2.0, Surfans units v2.7-2.9, and Hifiwalker v1.4-1.7 and up.

Component Model Notes
DAC Sabre ES9018K2M I2S, I2C Addr. 0x48 on bus 1
Display 320x240 2" ILI9342
USB-C controller ZG Semi TCS1421  

Other hardware notes:

  • Headphone amp: HT97220
  • Stereo switch: WSP6580Q
  • Bluetooth module: Qualcomm CSR8811
  • USB-C, but does not appear to have the correct resistors in place to allow a usb-c to usb-c cable to work correctly. A usb-c to usb-A cable with a usb-A to usb-c adapter allows it to work.
  • The ES9018K2M DAC has hardware volume scaling, and can be manipulated at address 0x48 on I2C bus 1.

The Line Out volume can be set by the Maximum Volume setting. Some notes:
  • Line Out level at 0 dB in Rockbox seems to be about 0.92 dBV, but we're limited to -2dB for compatibility reasons, so max volume is approximately -1dBV.
  • For "consumer level" line out, try setting to -12 dB. (-11dBV)
  • For "pro level" line out, try setting to -2 dB. (+1.1dBu -> ~(-1dBV))

The signal flow seems to be changed to something like:
DAC --> HP Amp --> Stereo Switch --> HP OUT
                               \---> LO OUT

hw3 Hardware Configuration:

ErosQ v2.1, Hifiwalker 1.8+, and Surfans F20 v3.0-v3.3

Component Model Notes
Display 320x240 2" Unknown, partially GC9A01 compatible

LCD controller requires different initialization sequence than prior models, or the display is flipped and inverted. No known way to detect this at runtime.

hw4 Hardware Configuration:

ErosQ v2.2, Surfans F20 v3.4+, and Hifiwalker H2 v1.9+

Component Model Notes
PMU AXP2101 I2C PMU, returns Reg03 ID 0x4a
USB-C controller ZG Semi TCS1421 Wired up differently than hw2/3

Other hardware Notes:

  • They seem to have added the correct resistors to allow a usb-c to usb-c cable to work correctly.
  • Minor GPIO changes
  • Update images require device name "erosq_2024", at least on Surfans F20.
  • LCD appears to be an IPS display! Presumably the hw3 units also are.

The DAC appears to be the same as hw2/hw3 units. The LCD appears to be the same as hw3 units.



I Attachment Action Size Date Who Comment
amixer_contents_output_erosq_hw2.txttxt amixer_contents_output_erosq_hw2.txt manage 0.6 K 10 Oct 2024 - 22:31 DanaConrad HifiWalker H2 V1.6 hw2 alsamixer contents output
amixer_contents_output_hifiwalker_v1.3_hw1.5.txttxt amixer_contents_output_hifiwalker_v1.3_hw1.5.txt manage 0.1 K 10 Oct 2024 - 23:35 DanaConrad HifiWalker H2 V1.3 hw1.5 alsamixer contents output
amixer_contents_output_surfans_v3.4_hw4.txttxt amixer_contents_output_surfans_v3.4_hw4.txt manage 0.6 K 10 Oct 2024 - 22:37 DanaConrad Surfans F20 V3.4 hw4 alsamixer contents output
dmesg_output_erosq_hw2.txttxt dmesg_output_erosq_hw2.txt manage 15.9 K 10 Oct 2024 - 22:29 DanaConrad HifiWalker H2 V1.6 hw2 dmesg output
dmesg_output_hifiwalker_v1.2_hw1.txttxt dmesg_output_hifiwalker_v1.2_hw1.txt manage 13.6 K 11 Oct 2024 - 12:56 SolomonPeachy Hifiwalker v1.2 on hw1
dmesg_output_hifiwalker_v1.3_hw1.5.txttxt dmesg_output_hifiwalker_v1.3_hw1.5.txt manage 14.5 K 10 Oct 2024 - 23:36 DanaConrad HifiWalker H2 V1.3 hw1.5 dmesg output
dmesg_output_surfans_v3.4_hw4.txttxt dmesg_output_surfans_v3.4_hw4.txt manage 15.5 K 10 Oct 2024 - 22:36 DanaConrad Surfans F20 V3.4 hw4 dmesg output
r104 - 05 Apr 2025 - 23:33:58 - DanaConrad


Parents: TargetStatus
Copyright © by the contributing authors.