Rockbox Technical Forums

Rockbox Development => New Ports => Topic started by: speachy on October 09, 2020, 08:50:42 AM

Title: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 09, 2020, 08:50:42 AM
(https://www.peachyphotos.com/po/image/241104:362360:5.jpg)

There's still a bit of jankiness to sort out, and plugin keymaps to fix, but... it lives!

All five of those players have completely identical hardware, albeit with two different case designs, and are currently easy to find in the retail (and secondhand) channel.

Edit:  There is also an EROS Q II.  This uses a completely different internal architecture to the original models, and the firmware images are *not* compatible.
Title: Re: AIGO ROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Milardo on October 09, 2020, 11:13:50 AM
Hi speachy, are you planning to get bluetooth working in  these players and agptek rocker?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Telehubis on October 09, 2020, 02:34:55 PM
Great to hear that!

As for the devices can anyone share if they're robust for a couple of years usage?
(I've read in the net that in some cases people had hardware issues with HIFI player)
Title: Re: AIGO ROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 09, 2020, 09:22:38 PM
Hi speachy, are you planning to get bluetooth working in  these players and agptek rocker?

It's on the to-do list, but I can't give any sort of ETA on this. 

As for the devices can anyone share if they're robust for a couple of years usage?

No idea -- these devices (and their solid metal cases) certainly feel more physically robust than (eg) the AGPTek Rocker.  Suffice it to say I'm not worried about sitting on this.  Or even occidentally driving over it.  :D

But at the end of the day, it still has a LiIon battery, and those will all eventually fail, especially if exposed to temperature extremes from being left in a car.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on October 09, 2020, 10:26:30 PM
I am very interested in the digital spdif audio output feature :). Might spdif be got working in rockbox? Whats this special usb cable needed for spdif output? Can the player be charged/externally powered while using spdif output?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 10, 2020, 08:02:43 AM
I am very interested in the digital spdif audio output feature :). Might spdif be got working in rockbox? Whats this special usb cable needed for spdif output? Can the player be charged/externally powered while using spdif output?

I don't see any references to these devices having a built-in sp/dif output.  If you're talking about using something that attaches via the USB port, if the player already has the necessary drivers built-in, then rockbox should be able to utilize it.   If the drivers aren't built-in, then there's nothing we can do -- We have no source code for these or any of the other Ingenic+Hiby-based players so are not in a position to be able to update or compile any kernel-level code.   (In violation of the GPL, not that anyone here has standing to enforce it.  Bleh.)

As for simultaneously charging while using the device as a USB host -- if the player has a properly-implemented USB-C port, then yes, it is possible.  If it only has micro-usb, then no.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: ddscentral on October 10, 2020, 12:16:35 PM
For kernel code, I'm pretty sure Hiby OS uses a variant of X1000 reference kernel which is available from Ingenic. Which one can be approximately determined by the compilation date. Reference kernel cannot be directly used to replace device's stock kernel but it should be enough to build additional modules.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 10, 2020, 01:41:36 PM
For kernel code, I'm pretty sure Hiby OS uses a variant of X1000 reference kernel which is available from Ingenic. Which one can be approximately determined by the compilation date. Reference kernel cannot be directly used to replace device's stock kernel but it should be enough to build additional modules.

Yes, it's a "variant" -- with mostly unknown changes.  We don't even have the kernel .config file, and there are half a bajillion options that would affect the final binary ABI.

This is not a path I have any intention of undertaking.    IMO that time is far better spent making a native Rockbox port to this platform instead.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: ddscentral on October 10, 2020, 04:37:01 PM
Completely forgot about that.
I wouldn't bother with kernel without a config file either, especially on embedded platforms.
Some firmware developers do leave /proc/config.gz enabled, but that's not the case with hiby.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on October 12, 2020, 12:21:18 PM
I am very interested in the digital spdif audio output feature :). Might spdif be got working in rockbox? Whats this special usb cable needed for spdif output? Can the player be charged/externally powered while using spdif output?

I don't see any references to these devices having a built-in sp/dif output.  If you're talking about using something that attaches via the USB port, if the player already has the necessary drivers built-in, then rockbox should be able to utilize it.   If the drivers aren't built-in, then there's nothing we can do -- We have no source code for these or any of the other Ingenic+Hiby-based players so are not in a position to be able to update or compile any kernel-level code.   (In violation of the GPL, not that anyone here has standing to enforce it.  Bleh.)

As for simultaneously charging while using the device as a USB host -- if the player has a properly-implemented USB-C port, then yes, it is possible.  If it only has micro-usb, then no.

Handy to know about charging while in usb host mode hopeful will work with usb-c :). i guess its too early to know for sure/ask if that the case with these players?

As ever great shame to here about gpl violations :(. Fiio seam to publish the source code what gpl software they mod/use :). Do they miss anything out? I had wondered. If so i guess there a better brand to buy players from for potently future rockbox support if the hardware is compatible?

By spdif i was taking a guess that was want they meant by digital output over usb port??
Quote
Digital (optical) audio output supported. USB-digital output adapter needed (not included).
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 12, 2020, 12:40:37 PM
By spdif i was taking a guess that was want they meant by digital output over usb port??

On these Linux-based players, rockbox uses standard Linux sound APIs, so as long as the OF's kernel already has the drivers for the particular audio dongle you want to use, rockbox will be able to utilize it.

(Most audio dongles use standard USB class drivers, but one can never really know in advance)

That said, rockbox isn't set up to be aware of multiple output/playback devices, much less be able to switch them on the fly.  (That's actually going to be one of the challenges in enabling bluetooth on these things..)
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on October 12, 2020, 12:51:52 PM
oh i see. its usb audio interface, not like the audio accessory mode where it some of the pins instead of usb, become analogue stereo signals. i thought digital output was like that but spdif over the usb pins... doh! I understand now, its the option to connect a usb class compliant audio interface to usb host.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on October 12, 2020, 12:56:01 PM
Thanks speachy for the details!  :) I see. bluetooth means a re-write of a fair bit of audio code.

Is the hardware any better designed than the xduooo x3II? No pop, messy power saving of the dac/headphone amp that leads to delay and/or pop sounds in switching tracks, sample rate changes, turn on/off,etc?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 12, 2020, 01:16:40 PM
Is the hardware any better designed than the xduooo x3II? No pop, messy power saving of the dac/headphone amp that leads to delay and/or pop sounds in switching tracks, sample rate changes, turn on/off,etc?

I like the Eros Q/Hifiwalker H2 a _lot_ more than the X3ii.     More compact, a better control layout, and so far, no issues with the audio paths.

(I'm actually pretty disappointed with the X3ii, especially after how unexpectedly awesome the original X3 turned out)

Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on October 17, 2020, 09:50:15 PM
Is the hardware any better designed than the xduooo x3II? No pop, messy power saving of the dac/headphone amp that leads to delay and/or pop sounds in switching tracks, sample rate changes, turn on/off,etc?

I like the Eros Q/Hifiwalker H2 a _lot_ more than the X3ii.     More compact, a better control layout, and so far, no issues with the audio paths.

(I'm actually pretty disappointed with the X3ii, especially after how unexpectedly awesome the original X3 turned out)

Thanks again for the info!

Tempted by Aigo Eros K in blue, else the Q which is £10 cheaper and has wrist strap attachment hole :).
https://www.aliexpress.com/af/AIGO-EROS.html?trafficChannel=af&d=y&CatId=0&SearchText=AIGO+EROS&ltype=affiliate&SortType=default&page=5

hmm i may get a old x3 when a good condition one pops on on ebay after all. shame i avoided it thinking there was audio problems. 2x sd card support would have been so helpful this last few years!

i guess theres still tons for you to do still ;D in porting rockbox to these players. Any micro updates :) would be received with love but otherwise I patiently and keenly wait :)
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on October 17, 2020, 10:51:23 PM
i guess theres still tons for you to do still ;D in porting rockbox to these players. Any micro updates :) would be received with love but otherwise I patiently and keenly wait :)

Yesterday I committed support in the RockboxUtility (no binary builds available as of this writing), complete with patches for the stock firmware images.

A few minutes ago I finished uploading updated bootloader images with some critical fixes for the hotswap and external USB storage support.

It's coming along nicely.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on November 04, 2020, 05:18:22 PM
there due to be £5-7~ cheaper on aliexpress for the 11.11 big aliexpress sale day. £82.48 https://www.aliexpress.com/item/32826674025.html?spm=a2g0o.cart.0.0.6dde3c00P456X6&mp=1

Good time to buy one :).

If i buy one, would it be fairly safe to assume your rockport port may well be ready soonish or in few-6 months? Unlikely to get dropped unless you have life criss,etc?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on November 04, 2020, 05:30:38 PM
It's ready now.

(I'm not going to claim it's bug-free, but it works well enough for daily use)
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on November 05, 2020, 09:37:09 PM
oh goodie  ;D
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on November 05, 2020, 09:48:25 PM
Does the bluetooth IC support aptx hd? or does bt codec support depend on the OS not the bluetooth IC firmware?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on November 05, 2020, 09:59:15 PM
Regarding the model you have:
What's the lanyard hole to hang/secure it by, like to use and have? Worth the extra weight? Thanks!
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on November 12, 2020, 11:15:51 PM
Unboxing Video, features close up of lanyard/headphone cable hole loop thing:
https://www.youtube.com/watch?v=xOD2emJ80HY
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: mariocco on November 19, 2020, 06:53:24 PM
Hello! I just got a HIFI WALKER H2. The firmware onboard is 1.3.
I tried the manual install but at boot i got "Updater 1.1" and then file error.
I tried with different firmwares and I replaced the sd card.
Could it be that the "Updater" program that loads the firmware on the unit is defective?
Any fix possible?
Thanks
Mario
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on November 19, 2020, 07:23:16 PM
Hello! I just got a HIFI WALKER H2. The firmware onboard is 1.3.
I tried the manual install but at boot i got "Updater 1.1" and then file error.
Could it be that the "Updater" program that loads the firmware on the unit is defective?

Unfortunately hifiwalker does not have a v1.3 firmware available for download anywhere  (and has not responded to anyone's inquiry about getting it), so we've been unable to figure out what we need to change to generate a working update image.

...Actually I'm pretty sure I know what needs changing, I just don't know what to change it into.

Figuring this out should be pretty straightforward but it will require disassembly so we can get access to the device's serial port.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: mariocco on November 20, 2020, 02:04:23 PM
Thanks. I also wrote to Hifi Walker to see if a copy of firmware 1.3 can be obtained.
By the way

- Do you think this is a failure of the device or simply a characteristic of firmware 1.3?
- Is there any way to "dump" the 1.3 firmware from the player
- Does anyone know what is the difference between 1.2 and 1.3 firmware? I could try to downgrade to 1.2 and install Rockbox but I do not know what I would be missing and there is no way to revert since the stock 1.3 is not available.

Thanks
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: johnb on November 20, 2020, 02:31:19 PM
That's specific to the 1.3 firmware.
I tried multiple other firmware versions, but did not manage to downgrade.

It's likely that 1.3 is checking the 'name' string inside the update image.

I will probably will go and try various name strings (brute force guesses) in the next few days.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on November 20, 2020, 03:11:58 PM
- Do you think this is a failure of the device or simply a characteristic of firmware 1.3?

It could be that there's a hardware incompatibility with firmware v1.3 devices, but more likely they changed the internal name of the player so it can no longer be cross-flashed with the firmware from one of its siblings.

(Speaking of, can you tell me the USB VID/PID of your device?  if you're on linux run 'lsusb' and send the output..)

- Is there any way to "dump" the 1.3 firmware from the player

Not from the outside; Ingenic's tools can only be used to *write* the flash, not read it out.

Taking apart the player one can get access to the serial console, and from a console we can definitely dump things and figure out what needs doing.

- Does anyone know what is the difference between 1.2 and 1.3 firmware? I could try to downgrade to 1.2 and install Rockbox but I do not know what I would be missing and there is no way to revert since the stock 1.3 is not available.

If the existing v1.2 firmware update could be applied onto the v1.3 players, then we wouldn't be having this conversation.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: mariocco on November 20, 2020, 05:03:08 PM
On Linux, lsusb:
ID C502:0023

On Windows (if useful)
USB\VID_C502&PID_0023&REV_????
USB\VID_C502&PID_0023

Thanks
Mario


Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 12:35:06 PM
my egos Q came.
firmware version is 1.8
how might i get rockbox on to it?
with stock firmware there's annoying bug where it turns audio output on and off between track change which causes a pop with my tpa316 amp boad and speakers :(.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: johnb on December 10, 2020, 12:39:09 PM
See the bottom section of this page: https://www.rockbox.org/wiki/AIGOErosQK
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 02:29:20 PM
arr brill. good to see there is now a wiki page. arr i see looks like firmware version woes does not apply to the hardware i have :)
Thank you
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on December 10, 2020, 02:32:45 PM
arr brill. good to see there is now a wiki page. arr i see looks like firmware version woes does not apply to the hardware i have :)
Thank you

Are you saying that the patched v1.8 firmware image doesn't work on your EROS Q (which already has v1.8)?

What is the error?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: bluebrother on December 10, 2020, 02:41:26 PM
As for installing Rockbox, current development version of Rockbox Utility supports it. There are test binaries available, see the sticky in the Rockbox Utility forum. Shouldn't hurt if that's actually tried (I'm also planning to update those binaries soonish for an even more current experience :) )
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 03:21:46 PM
installed rockbox. its better but there is a pop sound during audio format change of tracks.

Sounds like the audio hardware powering off and back on. These amp boards im using need a source connected all the time. Else there is hiss like u get from cable being not being plugged into source device or a bit like the pop sound from jack plug being pushed into device while amp switched on. Quite annoying and not good enough to use as a audio player for events :(.

I guess its a bug during audio file format change? flac to ogg for example

Perhaps also add setting to keep audio hardware on all the time? so for events, even when not playing music, no audio hardware turn on/off output connect pop.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 03:24:48 PM
arr brill. good to see there is now a wiki page. arr i see looks like firmware version woes does not apply to the hardware i have :)
Thank you

Are you saying that the patched v1.8 firmware image doesn't work on your EROS Q (which already has v1.8)?

What is the error?

i got worried seeing the other persons problem. Didn't know despite same hardware they had different firmware versions. sorry.

yea the default firmware version is 1.8. its what my eros q came with.

its ok. i installed it now but see my other post for pop sound problem.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 03:26:32 PM
As for installing Rockbox, current development version of Rockbox Utility supports it. There are test binaries available, see the sticky in the Rockbox Utility forum. Shouldn't hurt if that's actually tried (I'm also planning to update those binaries soonish for an even more current experience :) )

brill! looking forward to it. Had a look at trying to compile it but in end easier to install manually but a new official release with binarys, would be fantastic!
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 03:46:19 PM
Testing out usb flash drive support :D. Great to a have such a feature at last!! Looking forward to day of hot plug and unplug of different drives.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: bluebrother on December 10, 2020, 04:01:01 PM
brill! looking forward to it. Had a look at trying to compile it but in end easier to install manually but a new official release with binarys, would be fantastic!

I just updated the development binaries mentioned (at least for Windows and macOS). There's no official release yet, but this is getting close. If you run into issues with them please post in the Rockbox Utility forum, I might miss if it's here.

See here: https://forums.rockbox.org/index.php/topic,53588.0.html
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on December 10, 2020, 04:17:34 PM
Thanks! Snag is i don't use windows or mac. At least the last few xduuo x3on ebay, will be easier for people to flash.  :)
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: MRCoolAndLovin on December 16, 2020, 12:22:56 PM
I have been trying to mess with the Hifi Walker H2 1.2 firmware file to try and get it to flash over 1.3.
Unfortunately i'm not positive as to where in the binary is the version enclosed that the updater checks.
I also mailed to ask for the 1.3 firmware file, but no response.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on December 16, 2020, 01:07:58 PM
Unfortunately i'm not positive as to where in the binary is the version enclosed that the updater checks.

The "update.upt" image is actually an ISO9660 filesystem.  If you open it up, you'll find (among other things) a file called 'version.txt', and inside that are model id and version that the updater is expecting/checking.

To figure this out we need to open up one of these v1.3 H2 players, get to the serial console, and dump/extract the updater image from the flash.  From there, we can discern what the updater is looking for.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on February 01, 2021, 10:31:37 PM
What do i look out for on git commits to know if there's updates in the daily builds for this player or usb host support? I searched usb,aigo,eros,etc and didn't see anything related recently. Assuming no little updates recently. Will patiently wait. :)

Oh i know dont ask for updates rule... feel free to delete! Sorry! :-[
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on February 03, 2021, 04:23:50 PM
To figure this out we need to open up one of these v1.3 H2 players, get to the serial console, and dump/extract the updater image from the flash.  From there, we can discern what the updater is looking for.

A few hours of work later, I was able to extract the v1.3 firmware from flash, and generated a patched v1.3 update image with the rockbox bootloader:

   http://download.rockbox.org/bootloader/hifiwalker/H2-v13-patched.upt

Note that this is *not* compatible with the v1.2 players.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: mariocco on February 10, 2021, 07:00:19 PM
I tried the 1.3 firmware (I mean the http://download.rockbox.org/bootloader/hifiwalker/H2-v13-patched.upt) but my player (with firmware onboard 1.3) does not recognize it.
I copied the file in the root of the card and I launched the update from the menu.
It says that no firmware is available.
Any hint?
Thanks!
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on February 10, 2021, 07:11:03 PM
I tried the 1.3 firmware (I mean the http://download.rockbox.org/bootloader/hifiwalker/H2-v13-patched.upt) but my player (with firmware onboard 1.3) does not recognize it.
I copied the file in the root of the card and I launched the update from the menu.
It says that no firmware is available.
Any hint?
Thanks!

Rename the file to update.upt
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: mariocco on February 11, 2021, 06:18:06 PM
Thank you! It works!
Really a great work.
Since you were able to extract it, could you also post the original 1.3 firmware for backup/restore purpose?
Thanks!
Mario
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 12, 2021, 11:36:43 PM
Just got my player in the mail and got a daily build installed, I'm enjoying trying out all the cool themes!

I think I've found a few issues specific to this port (as far as I can tell), should I post them here or in the bug tracker? They're mostly button behavior related, but one is an issue with audio during playback, so I feel like it's a fairly important one.

I'm trying to get my head around the codebase to see if I can fix one or two myself, but I'm not sure if I'll get anywhere  :o

Edit: or is this still too new to care about bugs/issues?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on March 13, 2021, 07:32:08 AM
I think I've found a few issues specific to this port (as far as I can tell), should I post them here or in the bug tracker? They're mostly button behavior related, but one is an issue with audio during playback, so I feel like it's a fairly important one.

I didn't put a lot of thought into the button maps, so specific suggestions to improve them are welcome.  Non-trivial bugs are best put directly into the tracker, but there's no harm in mentioning things here.

You will need to explain what you mean by "an issue with audio during playback"  The only issue I'm personally aware of is a crackle/dropout during high system load (made much worse by high-bitrate audio files); This same issue affects many (most?) of the "hosted" players, and fixing it requires a non-trivial rewrite of the audio driver.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on March 13, 2021, 07:36:41 AM
speachy, what about the problem, i previously mentioned?:

Quote
Sounds like the audio hardware powering off and back on. These amp boards im using need a source connected all the time. Else there is hiss like u get from cable being not being plugged into source device or a bit like the pop sound from jack plug being pushed into device while amp switched on. Quite annoying and not good enough to use as a audio player for events :(.

I guess its a bug during audio file format change? flac to ogg for example

Perhaps also add setting to keep audio hardware on all the time? so for events, even when not playing music, no audio hardware turn on/off output connect pop.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on March 13, 2021, 08:56:16 AM
Unfortunately the audio codec powering off / on is a quirk shared by all of the hibyos-based players.

But if this is happening between track changes (presumably due to changing sample rates) it's nothing we have any control over -- our only recourse is to completly mute the audio output, but that takes ~1-2s to switch, meaning you'll lose gapless playback, have voice prompts cut off, and so forth.

(One thing you could try is fixing the output sample rate; Settings/Playback/Frequency -- it defaults to automatic)

Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 13, 2021, 09:19:02 AM
I think I've found a few issues specific to this port (as far as I can tell), should I post them here or in the bug tracker? They're mostly button behavior related, but one is an issue with audio during playback, so I feel like it's a fairly important one.

I didn't put a lot of thought into the button maps, so specific suggestions to improve them are welcome.  Non-trivial bugs are best put directly into the tracker, but there's no harm in mentioning things here.

You will need to explain what you mean by "an issue with audio during playback"  The only issue I'm personally aware of is a crackle/dropout during high system load (made much worse by high-bitrate audio files); This same issue affects many (most?) of the "hosted" players, and fixing it requires a non-trivial rewrite of the audio driver.

Ok, here goes:

I think I found two different audio bugs - the first one is the one fossphile had mentioned, where there's a click/pop when playing/pausing and switching between tracks. I need to be in a quiet room, but I can definitely hear it with just regular headphones. It does sound like the amp is turning on and off or something, like it's jumping to some DC bias from zero.

It sounds like you already know abut the other one - a crackling during quiet parts of a song or when the volume is extremely low, like one step above off. I thought it was the same thing as the popping between songs to be honest, like the amp is turning on/off really quickly in extremely quiet parts of the song, but that might just be when I notice it. I'll make some different bitrate files to see if it correlates like you say. It's probably the same issue you're already aware of.

It seems to crackle/pop consistently the same every time for the same audio track, at the same volume level. If the volume changes, the pattern changes. I'll try to get an example file.

(One thing you could try is fixing the output sample rate; Settings/Playback/Frequency -- it defaults to automatic)

Setting the frequency to any value doesn't seem to have any effect on the popping or the crackling  :-\

The button stuff is much more trivial:

In the Settings menu and the Context menu, the back button exits to the Main Menu or the While Playing Screen, respectively, instead of going one level up. It works correctly when exiting from a selection dialogue, like if I'm in Crossfeed (Select Off/Simple/Custom), hit back and it goes back to the Crossfeed menu, but if I hit back again, it goes all the way to the main menu instead of Sound Settings.

I can't lock the buttons while anywhere except the while playing screen, I'm not sure if this is intended or a bug. For instance, on the main menu I would think I could hit the power button to lock all buttons just like in the wps, but nothing happens.

If the screen is off and buttons are unlocked, hitting the power button wakes the screen and also locks the buttons. I would kind of expect it to only wake the screen, like when the power button is pushed and the screen is off, check the lock state and only go to unlocked or something.

This one might just be inherently not how Rockbox works, but I would kind of expect the power button to immediately sleep the screen like the original firmware. Not sure if that would be complicated to implement or not.

For that matter, I think I would expect the other buttons to not wake the screen, but volume up/down to work when locked without turning the screen on. I figured out how to get the behavior like I would expect eventually, but it took a lot of digging in the settings and trying to figure out what different settings did. Does Rockbox have kind of a "default setup" for each device type? Maybe those settings could be set up that way by default to mimic something like the original firmware's behavior.

Oof! Sorry for the long post!

EDIT: Completely forgot to note build number - 2743bde09b-210312
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on March 13, 2021, 09:47:59 AM
thanks for the replys,speachy & dconrad.
Long posts are good ;).

trying the fixxed sample rate 44.1khz. hmm does not seam to be poping between track changes.... been so long i forget what files i tested with... try switching between flac, opus, mp3. ill see...
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 13, 2021, 09:50:02 AM
It seems to crackle/pop consistently the same every time for the same audio track, at the same volume level. If the volume changes, the pattern changes. I'll try to get an example file.

Ok, try this file at -73dB with your most sensitive headphones: https://dconrad.neocities.org/assorted_files/BeginningClip_Glad%20Rags%20-%20Wonder%20Under%20-%2003%20The%20World%20is%20Waiting.flac (https://dconrad.neocities.org/assorted_files/BeginningClip_Glad%20Rags%20-%20Wonder%20Under%20-%2003%20The%20World%20is%20Waiting.flac)

I think it demonstrates both popping and crackling (or are they the same thing? I'm not sure!)
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: saratoga on March 13, 2021, 10:39:21 AM
The port uses software volume control (I guess they didn't include an analog gain), so at -73dB you have very little dynamic range left and should expect noise.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 13, 2021, 10:52:03 AM
The port uses software volume control (I guess they didn't include an analog gain), so at -73dB you have very little dynamic range left and should expect noise.

That would certainly explain what I'm hearing. So the hardware is running full blast and Rockbox is reducing the volume of the data that it's sending to it?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 13, 2021, 06:44:11 PM
In the Settings menu and the Context menu, the back button exits to the Main Menu or the While Playing Screen, respectively, instead of going one level up. It works correctly when exiting from a selection dialogue, like if I'm in Crossfeed (Select Off/Simple/Custom), hit back and it goes back to the Crossfeed menu, but if I hit back again, it goes all the way to the main menu instead of Sound Settings.


I managed to get the Back button to actually go back a level in the Settings menu, but no dice yet in the playlist submenu of the WPS Context menu.

In apps/keymaps/keymap-erosq.c:

Require Back button be held in the mainmenu context, and just-to-be-sure, do ACTION_STD_CANCEL on Back button release in the standard context.

Code: [Select]
/*
 * The format of the list is as follows
 * { Action Code,   Button code,    Prereq button code }
 * if there's no need to check the previous button's value, use BUTTON_NONE
 * Insert LAST_ITEM_IN_LIST at the end of each mapping
 */
static const struct button_mapping button_context_standard[]  = {
    { ACTION_STD_PREV,       BUTTON_SCROLL_BACK,              BUTTON_NONE },
    { ACTION_STD_PREV,       BUTTON_PREV,                   BUTTON_NONE },
    { ACTION_STD_PREVREPEAT, BUTTON_PREV|BUTTON_REPEAT,     BUTTON_NONE },
    { ACTION_STD_NEXT,       BUTTON_SCROLL_FWD,             BUTTON_NONE },
    { ACTION_STD_NEXT,       BUTTON_NEXT,                   BUTTON_NONE },
    { ACTION_STD_NEXTREPEAT, BUTTON_NEXT|BUTTON_REPEAT,     BUTTON_NONE },
    { ACTION_STD_OK,         BUTTON_PLAY|BUTTON_REL,        BUTTON_PLAY },
    { ACTION_STD_CANCEL,     BUTTON_BACK|BUTTON_REL,        BUTTON_BACK },
    { ACTION_STD_CONTEXT,    BUTTON_MENU|BUTTON_REPEAT,     BUTTON_MENU },
    { ACTION_STD_MENU,       BUTTON_MENU|BUTTON_REL,        BUTTON_MENU },

/*    ACTION_STD_QUICKSCREEN,
 *    ACTION_STD_KEYLOCK
 *    ACTION_STD_REC
 *    ACTION_STD_HOTKEY
 */

    LAST_ITEM_IN_LIST
}; /* button_context_standard */

static const struct button_mapping button_context_mainmenu[]  = {
    { ACTION_TREE_WPS,       BUTTON_BACK|BUTTON_REPEAT,     BUTTON_BACK }, // need to hold, otherwise causes
       // back to always go to main menu root

    LAST_ITEM_IN_LIST__NEXTLIST(CONTEXT_TREE),
}; /* button_context_mainmenu as with sansa clip mapping - "back" button returns you to WPS */

I kind of expected the button context in the Settings to be, well, settings, rather than mainmenu. Is that intentional? I had a lot of trouble figuring out what context applied where. Is there an easy way to find that information?

I would put this up on gerrit, but I can't get it to accept my ssh key for some reason.

EDIT: okay, one more thing: The playlist menu appears to also be mainmenu context, however ACTION_STD_CANCEL behaves differently there. I'm not sure why.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on March 13, 2021, 10:35:29 PM
In the Settings menu and the Context menu, the back button exits to the Main Menu or the While Playing Screen, respectively, instead of going one level up. It works correctly when exiting from a selection dialogue, like if I'm in Crossfeed (Select Off/Simple/Custom), hit back and it goes back to the Crossfeed menu, but if I hit back again, it goes all the way to the main menu instead of Sound Settings.

This should now be fixed.

I can't lock the buttons while anywhere except the while playing screen, I'm not sure if this is intended or a bug. For instance, on the main menu I would think I could hit the power button to lock all buttons just like in the wps, but nothing happens.

This too (in general)
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: saratoga on March 14, 2021, 10:46:16 AM
The port uses software volume control (I guess they didn't include an analog gain), so at -73dB you have very little dynamic range left and should expect noise.

That would certainly explain what I'm hearing. So the hardware is running full blast and Rockbox is reducing the volume of the data that it's sending to it?

Yeah. I don't know why, but a lot of these hifi players seem to pick fancy DACs but forget that people might want a way to change the volume.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 14, 2021, 11:20:33 AM
In the Settings menu and the Context menu, the back button exits to the Main Menu or the While Playing Screen, respectively, instead of going one level up. It works correctly when exiting from a selection dialogue, like if I'm in Crossfeed (Select Off/Simple/Custom), hit back and it goes back to the Crossfeed menu, but if I hit back again, it goes all the way to the main menu instead of Sound Settings.

This should now be fixed.

I can't lock the buttons while anywhere except the while playing screen, I'm not sure if this is intended or a bug. For instance, on the main menu I would think I could hit the power button to lock all buttons just like in the wps, but nothing happens.

This too (in general)

I'm not seeing either of these fix the issues here unfortunately.

Unless I'm not understanding correctly (very real possibility hah), the context in the settings and context menu is mainmenu, and the flow goes mainmenu -> (tree, if enabled) -> list -> standard. I found that the issue was the ACTION_TREE_WPS action in the mainmenu context, if I moved that to a held button then it started working.

EDIT: I added a change in gerrit to fix the above.

I tested out the power button yesterday when I was messing with it and any other action in that context can be assigned to the power button, but ACTION_STD_KEYLOCK doesn't work for some reason.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 14, 2021, 03:45:40 PM
Yeah. I don't know why, but a lot of these hifi players seem to pick fancy DACs but forget that people might want a way to change the volume.

Is it that it's just not available in the OS, or that it's not physically hooked up? I hope it's the former!
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: saratoga on March 14, 2021, 05:55:42 PM
Yeah. I don't know why, but a lot of these hifi players seem to pick fancy DACs but forget that people might want a way to change the volume.

Is it that it's just not available in the OS, or that it's not physically hooked up? I hope it's the former!

Looks like they forgot to include a volume circuit.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on March 14, 2021, 07:12:38 PM
Its a shame it has this design flaw. How is the xduoo x3 II looking now? I know it had a problem with power saving causing a pop and having to hacked around.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 14, 2021, 08:55:04 PM
Yeah. I don't know why, but a lot of these hifi players seem to pick fancy DACs but forget that people might want a way to change the volume.

Is it that it's just not available in the OS, or that it's not physically hooked up? I hope it's the former!

Looks like they forgot to include a volume circuit.


That's a major bummer. I do see a Low/High gain setting in the original firmware, maybe that's a hardware function? Though I just tried it with some bluetooth headphones and the gain setting still has an effect on them, so I doubt it.

I just tried an A/B comparison with the original firmware (using my roommate as a test subject, hah!), and the original firmware can definitely play the same song quieter than when the pops and crackles start on Rockbox, so it's definitely possible. I reckon there's just some magic there that's not apparent yet.

Side note, I never really tried to even use the original firmware until now, holy cow it's bad! Glad Rockbox is taking shape on this thing  ;D
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on March 16, 2021, 10:05:07 PM
What if in the WPS, holding the Play button brought up the Playlist rather than Stop? The rationale being, if you get to it from the Context Menu it's 3 button presses, which seems like a lot to get to the current playlist. Also, I'm going to go out on a limb and say Stop is probably not a widely used feature. I would think most people would Pause instead.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: JimZipCode on April 04, 2021, 01:59:10 PM
I like the Eros Q/Hifiwalker H2 a _lot_ more than the X3ii.     More compact, a better control layout, and so far, no issues with the audio paths.

(I'm actually pretty disappointed with the X3ii, especially after how unexpectedly awesome the original X3 turned out)

Speachy, can you elaborate on this?  I've had an Xduoo X3ii for two years, and I haven't been displeased with it.  What disappointed you? 

I thought the control layout *looked* crazy when I saw it.  But, surprisingly, it's been intuitive to manipulate by touch (ie without looking at it).

Anyway – I'm always on the lookout for the next player.  (Esp since my X3ii now has some loose part rattling around inside of it: might be on its way to becoming unusable.)  If the model in this thread is better in some specific way, that's super interesting.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: JimZipCode on April 04, 2021, 02:01:51 PM
Unboxing Video, features close up of lanyard/headphone cable hole loop thing:
https://www.youtube.com/watch?v=xOD2emJ80HY

That video is marked private.  Do I have to request permission to view?

Anyway, here are three other unboxing / intro vids:
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on May 02, 2021, 10:35:32 PM
I thought I would update this thread in case anyone here hasn't been following the commit progress as closely as I have for this player - the "big bug" (for me anyway) of the crackling/popping at quiet volumes has been fixed! Gerrit #3312 (https://gerrit.rockbox.org/r/c/rockbox/+/3312).

So I definitely recommend getting a new build if you haven't updated in a while.

Here's a couple other changes that might be of interest:
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on May 03, 2021, 05:16:37 AM
Unboxing Video, features close up of lanyard/headphone cable hole loop thing:
https://www.youtube.com/watch?v=xOD2emJ80HY

That video is marked private.  Do I have to request permission to view?

Anyway, here are three other unboxing / intro vids:
  • https://www.youtube.com/watch?v=2CrqLUjyz0I
  • https://www.youtube.com/watch?v=kKWQ20GTPiQ
  • https://www.youtube.com/watch?v=dxUgDLOsMI4  (FF to 3:05)
idk why it is marked as private. its not my video. shame :(
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: fossphile on May 03, 2021, 05:39:13 AM
I thought I would update this thread in case anyone here hasn't been following the commit progress as closely as I have for this player - the "big bug" (for me anyway) of the crackling/popping at quiet volumes has been fixed! Gerrit #3312 (https://gerrit.rockbox.org/r/c/rockbox/+/3312).

So I definitely recommend getting a new build if you haven't updated in a while.
Great  news! I look forward to trying it :).

Here's a couple other changes that might be of interest:
  • Line Out volume can now be set via the volume limit. The line out at maximum is very loud, so now it can be tamed. Gerrit #3259 (https://gerrit.rockbox.org/r/c/rockbox/+/3259)
  • Text entry controls work as expected now. Gerrit #3260 (https://gerrit.rockbox.org/r/c/rockbox/+/3260)
  • Volume dB scale is now numerically (approximately) correct. I might be the only one in the world that cares about this, but the numerical dB scale is now at least within reason of the actual dB of the output signal (referenced to maximum volume). Gerrit #3328 (https://gerrit.rockbox.org/r/c/rockbox/+/3328)

Calibrated dB scale is very handy to me. Did wonder if dB scales in products,DAPs where calibrated. handy to be able to set output vol. I do find a high output voltage is useful for sound systems and car DSPs. They need the higher level and helps to bury noise floor. Great to have a choice about output level. I hope its a separate volume control not tired to headphone output volume and keys.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on May 03, 2021, 08:22:20 AM
Calibrated dB scale is very handy to me. Did wonder if dB scales in products,DAPs where calibrated. handy to be able to set output vol. I do find a high output voltage is useful for sound systems and car DSPs. They need the higher level and helps to bury noise floor. Great to have a choice about output level. I hope its a separate volume control not tired to headphone output volume and keys.

The line out volume is set by the Maximum Volume Limit under Sound Settings, so it can be all the way to 0dB (maximum) or -74dB if you wish. It's independent of the regular volume setting for headphones, but it is still the Maximum Volume Limit that the headphone volume won't go above.

Just be aware you can't have both headphones and line out plugged in at the same time - it will prefer the headphone level to protect them (and your ears!) if both are plugged in.

"0dB" is about 6.2 dBV with a full-scale tone from the Line Out, make of that what you will.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Oktan on May 03, 2021, 09:29:12 AM
I can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.
EDIT: Some themes seem to specify functionality mapped to a "hold button", does that have a mapping yet?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on May 03, 2021, 10:12:45 AM
I can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.

Somebody else might be able to chime in since I don't regularly use these features, but the fastest way I know if is to go into the playback settings via the Context Menu (hold Menu on the While Playing screen). Unless that's what you're already talking about?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Oktan on May 03, 2021, 10:14:32 AM
I can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.

Somebody else might be able to chime in since I don't regularly use these features, but the fastest way I know if is to go into the playback settings via the Context Menu (hold Menu on the While Playing screen). Unless that's what you're already talking about?
Yeah, that's what I was talking about. I'm pretty sure there would be a faster way to do it.
By the way, edited my last post before I noticed that you had replied. Some themes specify functionality mapped to a "hold button", is that something that has been set up as of yet?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on May 03, 2021, 10:39:22 AM
Yeah, that's what I was talking about. I'm pretty sure there would be a faster way to do it.
By the way, edited my last post before I noticed that you had replied. Some themes specify functionality mapped to a "hold button", is that something that has been set up as of yet?

Oh, yeah to my knowledge nothing like that has been set up yet. I'm not familiar with what you're describing, maybe someone more knowledgeable about that will chime in.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Oktan on May 03, 2021, 10:58:00 AM
Yeah, that's what I was talking about. I'm pretty sure there would be a faster way to do it.
By the way, edited my last post before I noticed that you had replied. Some themes specify functionality mapped to a "hold button", is that something that has been set up as of yet?

Oh, yeah to my knowledge nothing like that has been set up yet. I'm not familiar with what you're describing, maybe someone more knowledgeable about that will chime in.
It's apparently some button you're supposed to hold down to access certain features. In the theme FreshOS this is used to display the album artwork.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: amachronic on May 03, 2021, 05:59:23 PM
Normally the hold switch is a slider that you can flip back & forth, it locks the other keys so you don't accidentally press them in your pocket. It's like a screen lock, but for physical buttons. Mostly you see it on older devices. It seems it's not very popular anymore.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: rayjgu3 on May 06, 2021, 06:41:32 AM
Got me a surfans f20. Rockbox loaded, it boots and plays fine on everything I plugit into headphones speakers but I have a pair of speakers it just won't work with. Changed the cord several times, each time original firmware  plays just fine but rockbox won't. Any ideas I am stumped.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on May 13, 2021, 10:29:11 AM
I can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.
EDIT: Some themes seem to specify functionality mapped to a "hold button", does that have a mapping yet?

Oktan, you might be interested in this patch that was merged the other day: Gerrit #3408 (https://gerrit.rockbox.org/r/c/rockbox/+/3408).

This implements Quickscreen, so to change the quick settings, hold down play on the while playing screen and then scroll left/right with the scrollwheel or up/down with the seek buttons. You can add any option in the settings to the quickscreen from the context menu when you're hovered over them in the settings (if that makes sense). I think by default it has shuffle and repeat on left and right.

Otherwise, Stop was moved to holding the power button, and the hotkey (by default, this shows the playlist) can be brought up by moving the scroll wheel on the while playing screen.

Sidenote, I wonder if themes which do something when the hold switch is activated generally do the same action when the softlock (press power) is activated?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on May 13, 2021, 10:32:36 AM
Got me a surfans f20. Rockbox loaded, it boots and plays fine on everything I plugit into headphones speakers but I have a pair of speakers it just won't work with. Changed the cord several times, each time original firmware  plays just fine but rockbox won't. Any ideas I am stumped.

How do the speakers connect? If it is via the headphone or line out, it should work just fine. If it is via USB, rockbox doesn't do any sort of audio over USB to my knowledge.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Oktan on May 14, 2021, 11:30:05 AM
I can't find a way to set repeat, shuffle and so on on the fly rather than having to go through the playback menu which is kinda cumbersome. Am I just not understanding Rockbox, or is this something that simply hasn't been implemented for this player yet? It doesn't have that many buttons so I guess it would need to be implemented through some button combination.
EDIT: Some themes seem to specify functionality mapped to a "hold button", does that have a mapping yet?

Oktan, you might be interested in this patch that was merged the other day: Gerrit #3408 (https://gerrit.rockbox.org/r/c/rockbox/+/3408).

This implements Quickscreen, so to change the quick settings, hold down play on the while playing screen and then scroll left/right with the scrollwheel or up/down with the seek buttons. You can add any option in the settings to the quickscreen from the context menu when you're hovered over them in the settings (if that makes sense). I think by default it has shuffle and repeat on left and right.

Otherwise, Stop was moved to holding the power button, and the hotkey (by default, this shows the playlist) can be brought up by moving the scroll wheel on the while playing screen.

Sidenote, I wonder if themes which do something when the hold switch is activated generally do the same action when the softlock (press power) is activated?
Fantastic, now all we need is something like the hold button for themes that use that to show the album artwork, but I guess that's partly on the theme designers.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: speachy on May 14, 2021, 12:03:30 PM
Fantastic, now all we need is something like the hold button for themes that use that to show the album artwork, but I guess that's partly on the theme designers.

The theme engine already treats softlock the same as a physical lock switch, so if the theme was set up to do something when the screen is locked, then it should work as expected on the ErosQ series.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: Oktan on May 16, 2021, 08:19:52 AM
Fantastic, now all we need is something like the hold button for themes that use that to show the album artwork, but I guess that's partly on the theme designers.

The theme engine already treats softlock the same as a physical lock switch, so if the theme was set up to do something when the screen is locked, then it should work as expected on the ErosQ series.
Something seems to be off with how the theme engine is working in this build then. Nearly every single theme gives a very bare-bones now playing-screen that looks nothing like it's supposed to.

EDIT: Just discovered that this error was caused by missing fonts. A lot of the default fonts are apparently not distributed with the daily builds, but adding them manually fixed it all up.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on June 08, 2021, 07:57:56 PM
In the interests of maybe someday doing a native port to this, I went ahead and tore mine apart to see what was inside. I think I've identified most of the ICs, though GPIO Pin #'s, etc. on the processor are still a mystery.

Here's a zip file of all the pics: https://www.dropbox.com/s/63ww77dj3qp0dgj/erosq%20photos.zip?dl=1 (https://www.dropbox.com/s/63ww77dj3qp0dgj/erosq%20photos.zip?dl=1)

Here's what I have so far:

SoC: X1000 (no E, well yeah we already knew that...) w/ 24.000 MHz crystal
DAC: PCM5102A
PMU: AXP192

And a few that I think I've ID'd:

ATO25D1GA-10ED: 1Gbit NAND Flash

AIG
BCB   --> Possibly Maxim MAX97220 Diff. Headphone Amp?

GAD
SJN   --> Possibly ISL54405IRUZ-T Stereo 2:1 Multiplexer (w/ click/pop elimination)

And a few that I believe to be LDO regulators - 4XXK, LPFG

86200S, near the battery pads - possibly FDC8602 Dual N-Channel MOSFET?


There's still a couple I haven't ID'd:

- The LCD controller, integrated with the panel itself.
- A seemingly unmarked IC near the power button
- The bluetooth module
- A handful of probably-unimportant transistors


Is there anything else I should look at before I put it back together?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: amachronic on June 08, 2021, 09:12:13 PM
Try getting a look at the LCD controller if possible. it's a tough one to deal with if you don't know exactly what it is, especially if it does not follow the standardized MIPI DCS command numbering. It is probably attached to the LCD module (it's essentially a PHY for the panel, AIUI, so it has to be nearby).

My guess is that bluetooth is underneath that silver case by the flash... it looks like there's an antenna nearby. If you're careful those cases can sometimes be peeled off and clipped back on, but sometimes they are soldered to the board. You can probably figure it out via the OF kernel, even without getting a look at it though.

Unfortunately you probably need to figure out GPIOs the hard way. Buttons are easy since you can poll for them in software, but internal stuff like reset and power pins for accessory ICs are difficult without accurate source code. Since you've got the case open, some of those pins might be accessible, others probably not. You can reverse engineer the OF's kernel, since it is virtually guaranteed to follow the ingenic blob for >99% of the code, and the GPIOs will be encoded in data tables or code that you can eventually dig out if you are persistent enough.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on June 08, 2021, 10:16:46 PM
Try getting a look at the LCD controller if possible. it's a tough one to deal with if you don't know exactly what it is, especially if it does not follow the standardized MIPI DCS command numbering. It is probably attached to the LCD module (it's essentially a PHY for the panel, AIUI, so it has to be nearby).

My guess is that bluetooth is underneath that silver case by the flash... it looks like there's an antenna nearby. If you're careful those cases can sometimes be peeled off and clipped back on, but sometimes they are soldered to the board. You can probably figure it out via the OF kernel, even without getting a look at it though.

Unfortunately you probably need to figure out GPIOs the hard way. Buttons are easy since you can poll for them in software, but internal stuff like reset and power pins for accessory ICs are difficult without accurate source code. Since you've got the case open, some of those pins might be accessible, others probably not. You can reverse engineer the OF's kernel, since it is virtually guaranteed to follow the ingenic blob for >99% of the code, and the GPIOs will be encoded in data tables or code that you can eventually dig out if you are persistent enough.

Thanks for the wisdom!

I'm not quite familiar with what I'm looking for re: LCD controller, but I don't see any ICs that are obviously involved. The ribbon cable connects directly between the PCB and the panel itself (I did take it out of the holder very carefully, but didn't get any pics because it seemed very fragile). See: https://www.dropbox.com/s/l8fyx02fuldlpzb/erosq%20photos2.zip?dl=1 (https://www.dropbox.com/s/l8fyx02fuldlpzb/erosq%20photos2.zip?dl=1)

Is it possible there isn't an LCD controller and it's driven directly from the SoC?

The bluetooth module's cover sure looks firmly attached to me, I tried and I don't think it's coming off.

Bummer about the GPIOs, but it makes sense.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: amachronic on June 09, 2021, 05:42:09 AM
No chance that the SoC drives the panel directly. Take look at the pinout on the ST7789V (https://web.archive.org/web/20200704160431/https://www.newhavendisplay.com/appnotes/datasheets/LCDs/ST7789V.pdf) which is probably the M3K's LCD controller. The panel has 240 pins (this should be true of all 320x240 panels, I believe) and your ribbon cable is 18 pins, so there's definitely a controller present.

The ST7789V is about 15.1x0.7mm... your controller is probably same or similar dimensions. Actually, looking at DSCF2985.JPG from your first batch of photos, it would likely be hidden underneath that black plastic or sticker below the panel, where the ribbon cable is going into. Personally, I'd be afraid of destroying the LCD module by peeling that off.

You can pick the LCD controller initialization command table out of the kernel -- you'd likely have to do this even if you do identify the controller IC -- and the command set might give you a way to identify the controller indirectly.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on June 11, 2021, 11:49:52 AM
Another small tidbit I think - the 6 pin IC near the battery pads marked 86200S might possibly be FDC8602 Dual N-Channel MOSFET. I'll edit the post above.
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on June 13, 2021, 12:26:33 PM
No chance that the SoC drives the panel directly. Take look at the pinout on the ST7789V (https://web.archive.org/web/20200704160431/https://www.newhavendisplay.com/appnotes/datasheets/LCDs/ST7789V.pdf) which is probably the M3K's LCD controller. The panel has 240 pins (this should be true of all 320x240 panels, I believe) and your ribbon cable is 18 pins, so there's definitely a controller present.

The ST7789V is about 15.1x0.7mm... your controller is probably same or similar dimensions. Actually, looking at DSCF2985.JPG from your first batch of photos, it would likely be hidden underneath that black plastic or sticker below the panel, where the ribbon cable is going into. Personally, I'd be afraid of destroying the LCD module by peeling that off.

You can pick the LCD controller initialization command table out of the kernel -- you'd likely have to do this even if you do identify the controller IC -- and the command set might give you a way to identify the controller indirectly.

Any chance you can give some guidance on extracting/decompiling/comparing the kernel to the generic ingenic blob? I haven't ever done anything like that, and I'd like to give it a shot. I can stumble my way through assembly code given enough time, but I could hardly be called proficient at it. Any resources to get started?
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: amachronic on June 13, 2021, 04:22:28 PM
For disassembling the kernel you can use Ghidra (https://ghidra-sre.org/). Ghidra's quite powerful and it has analyzers and a decompiler which will do a ton of work for you, I really can't recommend it enough. You don't need to read much assembly code or understand it "by hand" in most cases, thanks to the decompiler. It occasionally breaks down, but usually that's a sign you need to provide some extra annotation manually to stop it getting confused (it isn't perfect after all). But be warned: I lost some work a handful of times to crashes/hiccups, although the project reloaded fine afterward. So you probably want to save often. Of course if you have access to any other reverse engineering tools, by all means use them. But none of the free ones I've seen are as good as Ghidra.

Kernel sources and datasheets can be found here: https://github.com/YuanhuanLiang/X1000 (https://github.com/YuanhuanLiang/X1000). I didn't take a close look at it but it seems right. (vitt13 posted that link on the M3K thread.) It seems the Ingenic FTP servers are no longer accessible and they've changed all the links on their main site to point to a baidu drive which apparently won't let you download unless you have an account... I think (it's all in Chinese).

You can probably grab the kernel binary from the update package; otherwise you need to dump your device's NAND (a good idea anyway). Often nanddump is present on the OF's filesystem and with that you can take dumps using a script. Make sure you take normal dumps and dumps including OOB data; the OOB data will let you know if there is any ECC scheme in use.

Once you get the kernel image, it is likely in xImage format, with a 32-byte header prepended to the kernel binary / decompressor stub. You can pick that apart manually if you want, but I was lazy and used 'binwalk (https://github.com/ReFirmLabs/binwalk) -e' to extract the vmlinuz image automagically.

When importing the vmlinuz image into a ghidra project, you should pick MIPS LE 32 bit architecture and map the base address as 0x80010000. It's possible they're using another base address, but I doubt it. (You will be able to tell if it's wrong because all the jump targets would be messed up and not pointing to proper function prologues.)

I also have some notes from my own kernel disassembly which might help you in locating certain functions, platform_data structs, & other tables that'll tell you GPIOs and other useful things, but I have to clean them up first so they're intelligible. Would you be interested in them?

I'm not too sure about resources on reverse engineering as such. I wasn't able to find a whole lot myself, but I have enough background knowledge of C/systems programming/low level stuff in general, that once I discovered Ghidra, I was able to make good headway on my own. With vaguely accurate source code, it wasn't too hard to piece things together, although somewhat time consuming at first due to not knowing what I'm doing.

PS: porting Rockbox to the M3K was the first time I ever did anything serious with operating systems, hardware drivers, or the like; ie. beyond the level of a 'hello world' OS. It also took me about a year to piece everything together... So don't get discouraged if things are hard going at first. You just have to keep at it, and eventually things will start to make sense.

Good luck!
Title: Re: AIGO EROS Q / AIGO EROS K / IRULU Surfans F20 / AGPTek H3 / HIFI WALKER H2
Post by: dconrad on June 13, 2021, 04:48:41 PM
For disassembling the kernel you can use Ghidra (https://ghidra-sre.org/). Ghidra's quite powerful and it has analyzers and a decompiler which will do a ton of work for you, I really can't recommend it enough. You don't need to read much assembly code or understand it "by hand" in most cases, thanks to the decompiler. It occasionally breaks down, but usually that's a sign you need to provide some extra annotation manually to stop it getting confused (it isn't perfect after all). But be warned: I lost some work a handful of times to crashes/hiccups, although the project reloaded fine afterward. So you probably want to save often. Of course if you have access to any other reverse engineering tools, by all means use them. But none of the free ones I've seen are as good as Ghidra.

Kernel sources and datasheets can be found here: https://github.com/YuanhuanLiang/X1000 (https://github.com/YuanhuanLiang/X1000). I didn't take a close look at it but it seems right. (vitt13 posted that link on the M3K thread.) It seems the Ingenic FTP servers are no longer accessible and they've changed all the links on their main site to point to a baidu drive which apparently won't let you download unless you have an account... I think (it's all in Chinese).

You can probably grab the kernel binary from the update package; otherwise you need to dump your device's NAND (a good idea anyway). Often nanddump is present on the OF's filesystem and with that you can take dumps using a script. Make sure you take normal dumps and dumps including OOB data; the OOB data will let you know if there is any ECC scheme in use.

Once you get the kernel image, it is likely in xImage format, with a 32-byte header prepended to the kernel binary / decompressor stub. You can pick that apart manually if you want, but I was lazy and used 'binwalk (https://github.com/ReFirmLabs/binwalk) -e' to extract the vmlinuz image automagically.

When importing the vmlinuz image into a ghidra project, you should pick MIPS LE 32 bit architecture and map the base address as 0x80010000. It's possible they're using another base address, but I doubt it. (You will be able to tell if it's wrong because all the jump targets would be messed up and not pointing to proper function prologues.)

I also have some notes from my own kernel disassembly which might help you in locating certain functions, platform_data structs, & other tables that'll tell you GPIOs and other useful things, but I have to clean them up first so they're intelligible. Would you be interested in them?

I'm not too sure about resources on reverse engineering as such. I wasn't able to find a whole lot myself, but I have enough background knowledge of C/systems programming/low level stuff in general, that once I discovered Ghidra, I was able to make good headway on my own. With vaguely accurate source code, it wasn't too hard to piece things together, although somewhat time consuming at first due to not knowing what I'm doing.

PS: porting Rockbox to the M3K was the first time I ever did anything serious with operating systems, hardware drivers, or the like; ie. beyond the level of a 'hello world' OS. It also took me about a year to piece everything together... So don't get discouraged if things are hard going at first. You just have to keep at it, and eventually things will start to make sense.

Good luck!

Thank you so much, that's an amazing explanation! It helps a ton to know a general roadmap with what tools I can use. Now to try to extract that kernel image... 8)

EDIT for my own or somebody else's future reference: wow, the .upt file is really just an ISO with a different file extension - change it to .iso and it can be mounted like any other iso file, at least on macos... see here (https://www.rockbox.org/wiki/ShanlingM2sPort)