NFC on Xiao nrf52840

There are a few topics on this and I’ve read them all, implemented, their suggestions and had little success.

I have a Xiao nRF52840 with an NFC antenna, with 100pF capacitors installed (not sure if they are actually necessary), and I’ve followed the Seed WiKi instructions closely. I cannot get the NFC to work.

I am using the Arduino IDE and running the Seeed nRF52 mbed board definition. (For those of you who got stuck with an error that NFCT.h does not exist - you need to use the mbed board definition).

What am I doing wrong? Where do I even start to debug? Any suggestions?

Hi there,

Sounds Great! should work, What antenna did you use and YES the Caps are needed and better be the correct values for the antenna selected. The " Z " is very important for the NFC signal to be received well and to distance spec. Check out Nordic’s discussion on such things. Very important.
Post up your code and we can look to see what if any is off.
I use the NFC tools on android to test with, allows you to read and write NFC cards and do a lot of testing. (the Xiao is a TAG) btw.
It is used to provision WiFi Creds for a tour guide.
Look on here for the other threads concerning the NFC antenna , someone even posted the type of antenna they used.

HTH
GL :slight_smile: PJ :v:

Hi - I referenced the Nordic manual and implemented 100pF caps per the calculation it describes there. I’m also using the same NFC antenna that another forum member used (he got it to work without caps). Unfortunately, still didn’t work.

To make matters worse, after a day of poking at this microcontroller SPI doesn’t even seem to be working. I can’t get it to output any serial data or talk to any device. So either I’m totally incompetent with this particular microcontroller or I have a bad one (honestly, could be either). It’s been a day of tinkering… very frustrating.

Hi there,
Yes , it’s a Process… Post up the code using the code tags above, “</>” paste it in there we can look at it.
Run a slice of code that Identifies the spi pins and the CS it thinks is selected. I would start there.
Like in the flash demo for the expansion board I have on here.
look through the code you’ll see the attention to CS or SS and the pin numbers used.

 Serial.println("--------------");
  Serial.println(SS_SPI0);
  Serial.println(MOSI); // master out, slave in
  Serial.println(MISO); // master in, slave out
  Serial.println(SCK);  // clock
 Serial.println("--------------");

typically it’s between the Keyboard and the Floor when it happens to me… :face_with_peeking_eye:

HTH
GL :slight_smile: PJ :v: