Search code examples
androidnfchce

HCE support for NXP PN544 Controller


I have been trying to implement HCE on NXP PN544 but i am not able to succeed in achieving it. While my R&D i didn't find any documentation which clearly states that whether this chip support HCE or not?

Can any one help me if NXP PN544 Controller chipset has support for Host Card (HC) emulation? and if any documentation on same will be really of great help.


Solution

  • Yes, the PN544 supports host card emulation. CyanogenMod versions from 9.1 to 10.2(?) contain an implementation of a HCE mode for devices that have a PN544 NFC controller chip (see this commit and this commit to the CyanogenMod source repositories, and see Nikolay's blog for a usage example). However, this mode is different from the current (Android 4.4+) HCE API. Moreover, support for the CyanogenMod specific HCE was dropped in favor of Android HCE starting with CM version 11.

    Most devices that contain a PN544 do not currently support Android HCE. I have no confirmation for this, so this is my personal guess: As far as I understand it, the PN544 can be put in HCE mode, but it does not support the dynamic routing mechanism that permits the HCE mode to co-exist (i.e. be enabled at the same time) as a secure element. Consequently, it would be a decision to either enable HCE mode or use a secure element on such devices.