Unpublished facts about charging Samsung Galaxy smartphones


I collected some officially unpublished technical facts about charging Samsung Galaxy phones (maybe some of you will find it useful). Those of you experiencing charge problems when using car USB adapter /power bank/USB tethering should read it

  1. If you charge the phone from PC USB, it will NOT draw more than 500mA (USB current by standard). It means that even if your USB port can provide more than that, the phone will not draw it. This is why you might experience that your battery is actually discharging (even though it shows you charging icon) when you connect your laptop to the internet through USB tethering.
  2. The phone detects that it can draw more than 500mA when USB data pins are shortened (this is how it knows that charger is connected). Standard Samsung chargers (1A or 2A), are responsible for shorting those pins. This is why you can use the same USB cable for charging with high Amps  and for transferring data.
  3. Some of you might have experienced that if you connect 3’rd party USB charger like car USB adapter or “power bank”, the phone is not charging at all or charging very slow (even if the charger can provide 1 or 2 amps. This happens because data pins are not shortend or even disconnected and charger or phones terminates charging process (It happend to me with Galaxy S3 and China power banks and car adapters bought from Aliexpress) . To solve this issue, you should use a special charging cable (which does data pin shortage) instead of regular USB data cable.
  4. You phone will probably not charge if you use special (or bizarre) cables like this one, providing USB host (for connecting USB devices to your phone) and additional USB port for connecting charger. I have not yet found a solution for this case.

read more

Cross-compiling with external library (not it toolchain)

I wanted to compile an application that uses sound library (alsa-utils) for ubuntu ARM (Udoo board). The library is obviously not a part of toolchain and I needed to copy it from target along with its headers.


  1. Install library and dev package on target, e.g.:

  2. Find files you need for compilation:

    For me those are:
  3. Copy include files to your host toolchain:
    Include files to <PATHTO>/arm-fsl-linux-gnueabi/arm-fsl-linux-gnueabi/include
  4. Copy lib file to your host toolchain.
    In my case it is dynamic library libasound.so which was a symlink to libasound.so.2.0.0. I copied it to <PATHTO>/arm-fsl-linux-gnueabi/arm-fsl-linux-gnueabi/multi-libs/lib renaming to libasound.so (without symlink)

read more