Is it possible to use OTG and charge the FP2 at the same time?

,

Dear all,

I am thinking about getting a Superbook, which would allow me to use the FP2 as a laptop replacement. This superbook claims to be able to charge the android phone while being operated by USB-OTG. However, the FAQ say that while all USB-C phones can be charged, only select ones with micro-USB can. Do you have any idea how I can find out if the FP2’s micro-USB port supports OTG and charging at the same time?

Thanks, Manfred

3 Likes

Why not asking there ? Fairphone 2 hardware extensions
The back connector could be a solution, but i don’t think theres a way to use it yet.

1 Like

Very interesting topic (and interesting device btw.)!

I did a little bit of reading. What you are looking for is ACA mode, specified in the USB Battery Charging Specification: An Accessory Charger Adapter enables charging and simultaneous data transfer for a smart phone or a tablet acting as a host.

Whether a phone supports this is mostly a software thing. There is support for ACAs in the Android source code, but it has to be enabled by the device manufacturer. So the question is whether the FP2 supports ACA mode. You could ask Fairphone support (just kidding).

Or you could just try it. You’ll need to buy an ACA compliant OTG adapter or OTG hub (those have and extra charging port). Or you could build one!

A little bit of technical background:
A regular OTG adapter shorts the ID pin of the micro USB connector to ground. This tells the phone that it should enable host mode and supply power to the USB port (to power the connected USB device).
An ACA connects the ID pin to ground via a 124k resistor. This tells the phone that it should enable host mode and go into charging mode. Power has to be supplied to the phone and the connected USB device by the ACA.
If you use a regular OTG adapter and somehow modify it so you can connect a charger, you might fry your phone.

4 Likes

Thanks for you input, I didn’t know the keyword ACA yet!

I have this adapter, but the FP2 doesn’t charge with it. Maybe I try this one, which should expressedly support ACA, and report back.

So I understand that if it doesn’t work, it is a software thing to make it work? The FP2 USB port hardware should in principle be able to handle it?

1 Like

Yes, to my understanding it’s a matter of software. There are kernel mods for some phones which make it work and I think CyanogenMod also enables it on some phones which can’t do it with stock Android.
I’ve read that some phones don’t have the hardware to measure the resistance at the ID pin so they can’t detect ACAs automatically. But with a software mod they can be switched from power out to power in manually.

So while I doubt that the FP2 supports it out of the box, there is hope.

Can you measure the resistance between pins 4 and 5 of the micro USB plug of your adapter(s)?

1 Like

Unfortunately the probes of my multimeter are too bulky to measure the pins of the micro USB connector. But the product description says it’s not designed to charge the host, so I guess the cable doesn’t include the 124k resistor.

In the meantime I found a github page that looks like it hosts the FP2 kernel source. This config file deals with USB settings, and there is an entry concerning ACA in line 138. However, I can’t tell if ACA is enabled or not. What’s your take on this?

Not sure about this:
It looks to me as if the file you linked is just the descriptor and the actual config is this file. Since there is no corresponding value, I’d guess it falls back to the default (which is ‘n’ - I’d assume that means disabled). But maybe someone with knowledge on this could shed some more light.

Hm, why not use clamps with thin needles as measure pins…just an idea.

But maybe not, I could find more information on this topic here:

http://forum.xda-developers.com/android/general/otg-charging-using-usb-aca-accessory-t3431856

and

http://forum.xda-developers.com/showthread.php?t=1828032

Once my favoured electronics dealer has µusb b plugs in stock again I will give it a try.

Hm, why not use clamps with thin needles as measure pins…just an idea.

Exactly what I did now. It seems like pins 4 and 5 are shorted, so my cable has standard OTG configuration, no ACA support…

I think the actual kernel config files are in kernel/arch/arm/configs.
CONFIG_USB_MSM_ACA is not in there and the default seems to be “disabled”.

If you use Fairphone Open, you could follow the build instructions on https://code.fairphone.com to build your own kernel.

And maybe upload it somewhere for others :smiley:

1 Like

I’ve never flashed a different kernel, much less modified and compiled one. But I will read the instructions and see how far I get. And be sure that I upload the kernel, if it works!

1 Like

It appears that you need >150 GB of disk space to build the OS, I don’t have a machine to do that. Does someone else want to step in?
Or can we ask one of the Fairphone developers to enable ACA in the next update?

@paulakreuzer
Could you ask the FP devs, whether it is possible to enabel ACA for the open OS?

Paul told to me to ask myself because he doesn’t use and doesn’t knew OTG himself. So I did and I will report the answer here.

2 Likes

@vueltaconicarus, did you eventually get the Acasis H027 and check whether it has the 124k resistor? It has a three position switch and my guess would be that this switches the ID pin to either floating, ground or a pulldown resistor.

There still is the possibility that the FP2 does not have the hardware capabilities to detect the 124k pulldown. So before asking Fairphone to enable ACA in the kernel we should make sure that it actually works.

1 Like

Sorry for the late reply, I did’t realize you wrote something…

I ordered the Acasis H027 and will report back when it arrives. I think your guess is correct, the switch will just enable or disable the pulldown resistor.

How can we find out if the hardware supports the resistance measurement? Asking the FP support would take ages… :wink:

2 Likes

I guess building a kernel with ACA suppport enabled is the most realistic approach. Either it works or it doesn’t.

I have done Android builds in the past (for my previous phone) and have simply used Amazon EC2 for that. Lots of computing power, RAM and storage for a few Cents (since you only need the machine for an hour or two).

Back from vacation I tested the magical Acasis H027 with its three-way switch to allow charging and OTG at the same time. Unfortunately the FP2 only charges in the “charge-only”-setting, it doesn’t seem to react to the 124kOhm resistor. I still try to verify that the H027 actually puts the resistor between the correct pins, but my multimeter is too fumbly for that, even with needle trick. I’ll keep trying and report back. But theoretically I now have the hardware to test a kernel with ACA support enabled.

I don’t feel up to the task of compiling the kernel myself, at least I don’t have the time right now to dive into the depths of Android development. Is there anyone else with experience who is willing to give it a try?

1 Like

I finally succeeded to measure the resistance between pins 4 and 5. It is 68 kOhm, which is one of three possible resistance values which signals ACA mode.

Now the only missing thing is recompiling the kernel with ACA enabled. Any takers?