Support and General Use > Hardware

Surfans F20 w/ v2.7 firmware: Clarification on state of support?

(1/5) > >>

On this page:
It says "newer Surfans F20 units which ship with firmware 2.7 appear to have audio hardware changes, and line out functionality does not work in Rockbox yet on these specific units."

So obviously, if I get that version of the device, I can't expect the line-out to work right now, but I'm unclear on one detail:

In comparison to the other AIGO EROS Q/K devices: Is that statement saying that there are ALSO OTHER things besides the line-out that aren't working yet? Or is it just simply saying that line-out not working IS the one and only limitation currently caused by these audio hardware changes?

Sorry, that definitely could be clearer. My understanding is that yes, the line out functionality is the only thing on the 2.7 firmware units that doesn't work.

(from this thread)


A follow-up question (apologies, I'm not sure if maybe this one should go in "New Ports", "Starting Development" or "General" instead...)

Regarding the line-out issue, the page I mentioned above says "This may just need changes to the GPIO pins, but the changes are unknown until someone investigates it." I'm wondering if anyone could tell me a little bit more about what may be involved in this (I mean like, is this just a matter of someone just doing basic legwork of guessing some pin numbers and blindly trying them, or something more involved?). Or point me to the relevant source file(s)? It's been awhile, but I DO have background in low-level C development, although I'm currently unfamiliar with rockbox's codebase - I have used rockbox before though, on a Gigabeat F.

I just wanted to gauge whether this is something I might be able to help with if I do get a Surfans F20 (I'm currently deciding between that and the HiFi Walker H2. Leaning more towards the F20 because, from the pictures, it looks like the shell and buttons might be a somewhat higher quality, plus I really don't need the line-out anyway. If I happened to have it I'd probably use it, may as well, but I'm not an audiophile: I have zero objection to just connecting a headphone port to my car's aux-in and fiddling with the device's volume level to not be too terribly high or low for the car's stereo, just like I'm accustomed to doing anyway.)

No worries, I'm glad someone is interested in this issue! It's certainly possible to get this working, it's just that it's a bit of a mystery at the moment.

The hosted and native ports handle the line-out a little differently in the code, since the hosted port has the linux layer it calls to do hardware changes. For the hosted port, I guess we just need someone to patch the 2.7 firmware to boot rockbox (and cross our fingers that all the interface stuff hasn't changed!).

For the native port, we would need to figure out what the audio circuit changes are and implement them. Depends on whether you feel up to a challenge - the fix should (hopefully) be straightforward once we know what the hardware changes are. The difficult part is finding out what has changed.

At a high level, it seems to look like this, at least on the Hifiwalker/2.5 F20:

--- Code: ---/* Audio path appears to be:
 * DAC --> HP Amp --> Stereo Switch --> HP OUT
 *     \--> LO OUT
 * The real purpose of the Stereo Switch is not clear.
 * It appears to switch sources between the HP amp and something,
 * likely something unimplemented. */
--- End code ---
(from  rockbox/firmware/target/mips/ingenic_x1000/erosqnative/audiohw-erosqnative.c in the source)

Also relevant would be  rockbox/firmware/target/mips/ingenic_x1000/erosqnative/gpio-target.h, which defines all the GPIO pins;
 rockbox/firmware/drivers/audio/eros_qn_codec.c has audiohw_set_volume(), which does some muting of the headphone amp. Might be relevant?

My gut says that maybe they switched around the Stereo Switch and HP Amp, and the LO Out comes out of the Stereo Switch as well now? I have nothing to base that on, though. My hope would be that they left all the GPIO connections the same, and we just need to unmute something.

Originally I found the GPIO pins by disassembling the original firmware as documented in this thread: here. That was quite a task!


[0] Message Index

[#] Next page

Go to full version