P2P with Type F technology

Asked by fengzhiquan on 2015-10-26

In v0.10.0, we cannot start a P2P with type F techonolgy. How can I solve the problem?

In v0.9.2, we sense target with the sequence "tta, ttf, ttf" . But in v0.10.0, we only sense type A target.

Question information

Language:
English Edit question
Status:
Solved
For:
nfcpy Edit question
Assignee:
No assignee Edit question
Solved by:
fengzhiquan
Solved:
2015-10-27
Last query:
2015-10-27
Last reply:
2015-10-27

Indeed, since nfcpy 0.10 the default behaviour for P2P Initiator is to sense 106A and switch to 424F if a P2P Target was found. The desired bitrate (106, 212 424) can be set in clf.connect() and the command line tools but not the initial bitrate. Because NFC Forum compliant devices are required to listen for all of 106A, 212F and 424F (according to NFC-DEP/ISO18092) this appeared to be a good choice to streamline the discovery code in nfcpy's DEP implementation. For testing purpose there is still the option to do clf.sense() for a specific target and provide the discovered target to a nfc.dep.Initiator activate() method.

Is this a problem for you have in a real life scenario or is it related to testing?

fengzhiquan (fengzhiquan) said : #2

Thanks, Stephen. Your answer helps a lot.

I guess it's the problem with the our device which cannot setup LLCP with 106A.

I also need to test LLCP with only type F.

I would be slightly puzzled if not at least the chipset is able to receive 106A discovery. Least Broadcom and NXP chips all work fine unless there is explicit NFC stack configuration to disable it. There is a new tool in examples that you could use to verify the discovery part with specific speeds and settings.

examples/sense.py -d -r 106A
examples/sense.py -d -r "212F sensf_req=00FFFF0000"
examples/sense.py -d -r "424F sensf_req=00FFFF0000"

For a passive P2P target the ATR and PSL exchange can be tested (Note that FF bytes in the ATR string are set by the tool and the ATR shows only the LLCP magic string "FFm" in the general bytes field).

examples/sense.py -d -r "212F sensf_req=00FFFF0000" --atr FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46666d

fengzhiquan (fengzhiquan) said : #4

From RF log, we found that our device responsed 106A discovery(sometimes SEL_RES=0x20 and sometines SEL_RES=0x40), but could not setup LLCP link.

From sense.py script's log, the 106A discovery SEL_RES is always 0x20.

That's certainly strange and difficult for me to further comment. If you're able to send a device to Germany, I can offer to check with my RF spy tool. Let me know via https://launchpad.net/~stephen-tiedemann/+contactuser (or my company mail if you already know that).