Hello @ako1 !
Did you get your arduino project talking with the NTAG device? I'm trying to do the same, asking the device to provide me the version using the GET_VERSION command, but I get a bunch of zeroes.
Here my code:
#include <Wire.h>
#define NTAG_SLAVE_ADDRESS 0x55
#define NTAG_VERSION_DATA_LENGTH 8
#define NO_DEVICE 0
#define GOT_DEVICE 1
int ntag_device_id;
char ntag_version_data[NTAG_VERSION_DATA_LENGTH];
void setup() {
Serial.begin(115200); while (!Serial) { delay(10);}
int ntag_version_length;
ntag_device_id = retrieveI2CDeviceVersion(NTAG_SLAVE_ADDRESS,ntag_version_data,ntag_version_length);
}
int retrieveI2CDeviceVersion(int slaveAddress, char * responseData, int& responseLength) {
responseLength = NTAG_VERSION_DATA_LENGTH;
const char request[] = { 0x60, };
Wire.beginTransmission(slaveAddress);
Wire.write(request,sizeof(request));
Wire.endTransmission();
Wire.requestFrom(slaveAddress,responseLength);
for (int i = 0; i < responseLength; i++) {
for(int t = 0; t < 5 && !Wire.available(); t++) { Serial.println("Waiting for NTAG to reply"); delay(100); }
if (!Wire.available()) {return NO_DEVICE;}
responseData[i] = Wire.read();
}
return GOT_DEVICE;
}
void loop() { delay(100); }