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"!
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:
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.
Copyright © by the contributing authors.