Following on from my research into NFC tags and RFID cards I decided to look into the compatibility of using them with an Arduino. I came across this article by Arduino Get Started which laid out everything that was needed for the setup, how to wire it both with and without a breadboard and resistors as well as the code needed to set it all up using Arduino IDE. To start I ordered an MFRC522 NFC/RFID reader from amazon for me to wire into the arduino.
Following the wiring diagram from their web article I wired up the arduino with the reader and plugged it into my computer to power up the setup.
I then downloaded Arduino IDE onto my laptop and created a new sketch which I pasted in the code supplied on the article for this setup, I also had to download the library “MFRC522” by GitHubCommunity from the libraries menu so that the code had the correct library to function the way the article desires it to. Once this was all implemented I saved the sketch and uploaded it to the Arduino.
From here I opened up the serial monitor and had a functioning NFC/RFID reader that read the card or tags that were scanned and displayed their UID (Unique Identification Number). However I knew that the cards and tags being scanned held a lot more information than just their UID so I used ChatGPT to help me access the blocks of data stored on them.
This allowed me to scan them again but then have access to blocks of information that I held the keys to, I quickly found out that a lot of information stored on these devices are encrypted by keys so that they cannot just be quickly scanned and replicated onto a blank version.
I then implemented into the code that I wanted to see what is accessed from every individual block of data from what was being read so that I could see which blocks the authentication failed for so I knew which were accessed and which weren't. This also displayed the type of card or tag that was being scanned.
From here I knew that this data even though I did not have every block I could duplicate this onto the blank RFID card that had been provided with the reader that I had ordered so implemented this into the code so I could scan a card and then write it onto a blank version straight after.
I am really happy with how my work came together using an arduino with the research that I had already done into the technology of NFC’s and RFID’s as I had never used an arduino setup before but it was fun learning how to wire it all up from the diagram and make a functioning reader. This could help when coding the NFC tags that I had previously done as I ran into the issue of having to use my phone to code them as it had a reader built in but my computer did not. I had a lot of trial and error with this though as sometimes I wouldn't have a clue what was going wrong with the code or the Arduino as nothing was reading but as i soldered the pins for the MFRC522 it made the connection for the circuit much better and the reading and writing was made much more seamless.
I think if I were to do more research into the keys used to fail block authentication based off of card types and UID’s I would be better able to replicate cards and tags so will look more into this in the future in order to try and replicate cards such as my student ID which i use everyday in the studio to enter doors and use things like the printer.