{"id":26560,"date":"2024-02-12T11:51:10","date_gmt":"2024-02-12T04:51:10","guid":{"rendered":"https:\/\/tom.ji42.com\/?p=26560"},"modified":"2024-02-12T11:51:10","modified_gmt":"2024-02-12T04:51:10","slug":"rdm6300-rdm630-rfid-reader-interfacing-with-arduino","status":"publish","type":"post","link":"https:\/\/tom.tomwork.net\/?p=26560","title":{"rendered":"RDM6300 RDM630 RFID Reader interfacing with Arduino"},"content":{"rendered":"<p>In this tutorial, we will learn how to interface RFID reader RDM6300 or RDM630 with Arduino. Both of these RFID readers communicate via a serial connection on UART and follow the same interfacing with Arduino thus this tutorial will be compatible with both types of RFID readers. First, we will give you a brief description of the RDM6300 module which is cheaper than RDM630 and easily available, its pinout and connection with the Arduino Board. Then we will show you a sketch which will enable us to identify EM4100-compatible tags via this RFID reader.<\/p>\n<p>We have a similar guide with ESP8266 and ESP32:<\/p>\n<ul>\n<li><a href=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-esp8266-nodemcu-tutorial\/\">RDM6300 RDM630 RFID Reader with ESP8266 NodeMCU<\/a><\/li>\n<li><a href=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-esp32-tutorial\/\">RDM6300 RDM630 RFID Reader interfacing with ESP32<\/a><\/li>\n<\/ul>\n<h2 id=\"h-rdm6300-rfid-reader\" class=\"wp-block-heading\">RDM6300 RFID reader<\/h2>\n<p>RFID stands for Radio Frequency Identification. It is a tagging identification system that uses electromagnetic waves in radio frequency to transfer data. An RFID system consists of a passive card or tag and an active read or write device which is RDM6300 in our case.<\/p>\n<p>RDM6300 RFID module is a low-cost RFID reader. You can purchase it for less than 5$ as compared to RDM630 which costs approximately $10-15. Both of the modules work on a 125kHz radio frequency. Therefore, they are able to detect RFID tags or cards which can communicate with RFID readers at 125KHz frequency. RDM6300 RFID module works on transistor logic or in short TTL logic. It means you need to provide 5 volt dc to power supply pins of this module. It has\u00a0a\u00a0<a href=\"https:\/\/microcontrollerslab.com\/serial-communication-8051-keil\/\"><strong>UART communication<\/strong><\/a>\u00a0function. In other words, it can communicate with microcontroller through a UART serial communication.\u00a0 It has TTL RS232 format.<!--more--><\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<p class=\"has-base-3-color has-text-color has-background\">Note: RDM6300 can only read data from 125KHz tags or cards.<\/p>\n<p>Below you can view the two RDM630 and RDM6300 modules:<\/p>\n<figure class=\"wp-block-gallery columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\" data-carousel-extra=\"{&quot;blog_id&quot;:1,&quot;permalink&quot;:&quot;https:\\\/\\\/microcontrollerslab.com\\\/rdm6300-rdm630-rfid-reader-arduino-tutorial\\\/&quot;}\">\n<ul class=\"blocks-gallery-grid\">\n<li class=\"blocks-gallery-item\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6844\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module.jpg\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" srcset=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module.jpg 480w, https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module-300x225.jpg 300w\" alt=\"RDM630 RFID reader module\" width=\"480\" height=\"360\" data-attachment-id=\"6844\" data-permalink=\"https:\/\/microcontrollerslab.com\/rfid-reader-rdm6300-interfacing-pic\/rdm630-rfid-reader-module\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module.jpg\" data-orig-size=\"480,360\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RDM630 RFID reader module\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module-300x225.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module.jpg\" data-id=\"6844\" data-full-url=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/RDM630-RFID-reader-module.jpg\" data-link=\"https:\/\/microcontrollerslab.com\/rfid-reader-rdm6300-interfacing-pic\/rdm630-rfid-reader-module\/#main\" \/><figcaption class=\"blocks-gallery-item__caption\">RDM630<\/figcaption><\/figure>\n<\/li>\n<li class=\"blocks-gallery-item\">\n<figure><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-28349\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader.jpg\" alt=\"RDM6300 RFID reader\" width=\"624\" height=\"401\" data-attachment-id=\"28349\" data-permalink=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-arduino-tutorial\/rdm6300-rfid-reader\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader.jpg\" data-orig-size=\"624,401\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;User&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1638368133&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RDM6300 RFID reader\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader.jpg\" data-id=\"28349\" data-full-url=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader.jpg\" data-link=\"https:\/\/microcontrollerslab.com\/?attachment_id=28349#main\" \/><figcaption class=\"blocks-gallery-item__caption\">RDM6300<\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<\/figure>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-26412\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/09\/RFID-card-tag.jpg\" alt=\"RFID card tag\" width=\"569\" height=\"471\" data-attachment-id=\"26412\" data-permalink=\"https:\/\/microcontrollerslab.com\/rc522-rfid-module-arduino-tutorial\/rfid-card-tag\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/09\/RFID-card-tag.jpg\" data-orig-size=\"569,471\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;User&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1631316507&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RFID card tag\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/09\/RFID-card-tag.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/09\/RFID-card-tag.jpg\" \/><figcaption>RFID tags<\/figcaption><\/figure>\n<\/div>\n<h3 class=\"wp-block-heading\">Pin configuration of RDM6300 RFID reader module<\/h3>\n<p>The RDM6300 module consists of 10 pins out of which only 5 pins are required to interface this RFID tag reader with Arduino.\u00a0You can view the pinout below:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-6847\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/pinout-of-RMD630-RFID-module.jpg\" sizes=\"auto, (max-width: 345px) 100vw, 345px\" srcset=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/pinout-of-RMD630-RFID-module.jpg 345w, https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/pinout-of-RMD630-RFID-module-300x170.jpg 300w\" alt=\"pinout of RMD630 RFID module\" width=\"345\" height=\"196\" data-attachment-id=\"6847\" data-permalink=\"https:\/\/microcontrollerslab.com\/rfid-reader-rdm6300-interfacing-pic\/pinout-of-rmd630-rfid-module\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/pinout-of-RMD630-RFID-module.jpg\" data-orig-size=\"345,196\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pinout of RMD630 RFID module\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/pinout-of-RMD630-RFID-module-300x170.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2018\/07\/pinout-of-RMD630-RFID-module.jpg\" \/><figcaption>Pin Configuration of RDM6300<\/figcaption><\/figure>\n<\/div>\n<p>The RDM6300 module consists of three headers as shown above. Details of P1 header pins are given below:<\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<figure class=\"wp-block-table\">\n<table>\n<thead>\n<tr>\n<th>Pin<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td>This is the TX pin. TX is a data transmit pin of UART of RFID reader<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td>This is the RX pin which is a data receive pin<\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td>This pin is not used<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td>This is the GND pin<\/td>\n<\/tr>\n<tr>\n<td>5<\/td>\n<td>This is the 5V power supply pin<\/td>\n<\/tr>\n<\/tbody>\n<\/table><figcaption>Header 1 Pins Description<\/figcaption><\/figure>\n<p>The antenna is connected to the P2 header. Details of P2 header pins are given below:<\/p>\n<ul>\n<li>Pin number one is terminal number one of Antenna<\/li>\n<li>Pin number two is terminal two of Antenna.<\/li>\n<\/ul>\n<p>Pin number one on header P3 is a\u00a0<a href=\"https:\/\/microcontrollerslab.com\/vehicle-movement-based-street-light-system-using-pic-microcontroller\/\"><strong>light emitting diode<\/strong><\/a>. It is a status or indication LED. It normally remains on and turns off while reading the RFID tag or card.<\/p>\n<p>Below you can view each individual pin in a clear manner:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-28367\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader-pinout.jpg\" alt=\"RDM6300 RFID reader pinout\" width=\"610\" height=\"408\" data-attachment-id=\"28367\" data-permalink=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-arduino-tutorial\/rdm6300-rfid-reader-pinout\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader-pinout.jpg\" data-orig-size=\"610,408\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RDM6300 RFID reader pinout\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader-pinout.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-reader-pinout.jpg\" \/><\/figure>\n<\/div>\n<h3 class=\"wp-block-heading\">Working<\/h3>\n<p>RDM6300 RFID reader module consists of a driver and coils which are connected to the driver.\u00a0 It generates and modulates radio frequency signal of frequency 125KHz.\u00a0 When we place the 125KHz RFID card near to this generated radio frequency field, they get the energy to transfer power to master the RFID module.<\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<p>This RDM6300 RFID module is similar to the EM-18 reader module. Because both work on the same radio frequency that is 125KHz and provide a UART serial interface.<\/p>\n<p>For more details on RFID and its working, you can visit this\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Radio-frequency_identification\" target=\"_blank\" rel=\"noreferrer noopener\">link<\/a>.<\/p>\n<h2 class=\"wp-block-heading\">Interfacing RDM6300 with Arduino<\/h2>\n<p>We will require the following components for this project.<\/p>\n<p>Required Components:<\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<ul>\n<li>Arduino<\/li>\n<li>RDM6300 or RDM630<\/li>\n<li>125 kHz tags or cards (should be EM4100 compatible)<\/li>\n<li>Connecting Wires<\/li>\n<\/ul>\n<p>Point to Note: The connection diagram and the Arduino code will work for both RDM6300 and RDM630 modules as they have similar pin configurations and work on the same frequency. We will use RDM6300 for our project.<\/p>\n<p>Assemble the devices as shown in the schematic diagram below:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-28364\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-interfacing-with-Arduino-connection-diagram.jpg\" sizes=\"auto, (max-width: 1109px) 100vw, 1109px\" srcset=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-interfacing-with-Arduino-connection-diagram.jpg 1109w, https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-interfacing-with-Arduino-connection-diagram-768x527.jpg 768w\" alt=\"RDM6300 interfacing with Arduino connection diagram\" width=\"1109\" height=\"761\" data-attachment-id=\"28364\" data-permalink=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-arduino-tutorial\/rdm6300-interfacing-with-arduino-connection-diagram\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-interfacing-with-Arduino-connection-diagram.jpg\" data-orig-size=\"1109,761\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RDM6300 interfacing with Arduino connection diagram\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-interfacing-with-Arduino-connection-diagram.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-interfacing-with-Arduino-connection-diagram.jpg\" \/><\/figure>\n<\/div>\n<p>We will connect 4 pins of the RDM6300 module with Arduino. These include the VCC, GND, TX, and RX pins present on Header 1. The VCC will be connected with a 5V pin from the Arduino. GND of both the devices will be in common. We will connect the TX pin with GPIO6 and RX pin with GPIO8 of the Arduino board. The antenna already comes attached to pins ANT1 and ANT2.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-28365\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-module-interfacing-with-Arduino-hardware.jpg\" sizes=\"auto, (max-width: 988px) 100vw, 988px\" srcset=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-module-interfacing-with-Arduino-hardware.jpg 988w, https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-module-interfacing-with-Arduino-hardware-768x505.jpg 768w\" alt=\"RDM6300 RFID module interfacing with Arduino hardware\" width=\"988\" height=\"650\" data-attachment-id=\"28365\" data-permalink=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-arduino-tutorial\/rdm6300-rfid-module-interfacing-with-arduino-hardware\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-module-interfacing-with-Arduino-hardware.jpg\" data-orig-size=\"988,650\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RDM6300 RFID module interfacing with Arduino hardware\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-module-interfacing-with-Arduino-hardware.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-module-interfacing-with-Arduino-hardware.jpg\" \/><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Arduino Sketch: RDM6300\/RDM630 reading RFID tags\/cards<\/h2>\n<p>Open your Arduino IDE and go to File &gt; New. A new file will open. Copy the code given below in that file and save it.<\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<pre class=\"wp-block-code language-c\" tabindex=\"0\"><code class=\"language-c\"><span class=\"token macro property\"><span class=\"token directive-hash\">#<\/span><span class=\"token directive keyword\">include<\/span> <span class=\"token string\">&lt;SoftwareSerial.h&gt;<\/span><\/span>\r\n\r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> BUFFER_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">14<\/span><span class=\"token punctuation\">;<\/span> \r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> DATA_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span> \r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> DATA_VERSION_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span> \r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> DATA_TAG_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">8<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> CHECKSUM_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\nSoftwareSerial ssrfid <span class=\"token operator\">=<\/span> <span class=\"token function\">SoftwareSerial<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">6<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">8<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n\r\n<span class=\"token class-name\">uint8_t<\/span> buffer<span class=\"token punctuation\">[<\/span>BUFFER_SIZE<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">int<\/span> buffer_index <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">setup<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">9600<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n \r\n ssrfid<span class=\"token punctuation\">.<\/span><span class=\"token function\">begin<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">9600<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n ssrfid<span class=\"token punctuation\">.<\/span><span class=\"token function\">listen<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n \r\n Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Initialization Done!\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">void<\/span> <span class=\"token function\">loop<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n  <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ssrfid<span class=\"token punctuation\">.<\/span><span class=\"token function\">available<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">&gt;<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">{<\/span>\r\n    bool call_extract_tag <span class=\"token operator\">=<\/span> false<span class=\"token punctuation\">;<\/span>\r\n    \r\n    <span class=\"token keyword\">int<\/span> ssvalue <span class=\"token operator\">=<\/span> ssrfid<span class=\"token punctuation\">.<\/span><span class=\"token function\">read<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ssvalue <span class=\"token operator\">==<\/span> <span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> \r\n      <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n\r\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ssvalue <span class=\"token operator\">==<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> \r\n      buffer_index <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>ssvalue <span class=\"token operator\">==<\/span> <span class=\"token number\">3<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>       \r\n      call_extract_tag <span class=\"token operator\">=<\/span> true<span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token punctuation\">}<\/span>\r\n\r\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>buffer_index <span class=\"token operator\">&gt;=<\/span> BUFFER_SIZE<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> \r\n      Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Error: Buffer overflow detected! \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n      <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    \r\n    buffer<span class=\"token punctuation\">[<\/span>buffer_index<span class=\"token operator\">++<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> ssvalue<span class=\"token punctuation\">;<\/span> \r\n\r\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>call_extract_tag <span class=\"token operator\">==<\/span> true<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n      <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>buffer_index <span class=\"token operator\">==<\/span> BUFFER_SIZE<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n        <span class=\"token keyword\">unsigned<\/span> tag <span class=\"token operator\">=<\/span> <span class=\"token function\">extract_tag<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n      <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span> \r\n        buffer_index <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\r\n        <span class=\"token keyword\">return<\/span><span class=\"token punctuation\">;<\/span>\r\n      <span class=\"token punctuation\">}<\/span>\r\n    <span class=\"token punctuation\">}<\/span>    \r\n  <span class=\"token punctuation\">}<\/span>    \r\n<span class=\"token punctuation\">}<\/span>\r\n\r\n<span class=\"token keyword\">unsigned<\/span> <span class=\"token function\">extract_tag<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n    <span class=\"token class-name\">uint8_t<\/span> msg_head <span class=\"token operator\">=<\/span> buffer<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token class-name\">uint8_t<\/span> <span class=\"token operator\">*<\/span>msg_data <span class=\"token operator\">=<\/span> buffer <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token class-name\">uint8_t<\/span> <span class=\"token operator\">*<\/span>msg_data_version <span class=\"token operator\">=<\/span> msg_data<span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token class-name\">uint8_t<\/span> <span class=\"token operator\">*<\/span>msg_data_tag <span class=\"token operator\">=<\/span> msg_data <span class=\"token operator\">+<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token class-name\">uint8_t<\/span> <span class=\"token operator\">*<\/span>msg_checksum <span class=\"token operator\">=<\/span> buffer <span class=\"token operator\">+<\/span> <span class=\"token number\">11<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token class-name\">uint8_t<\/span> msg_tail <span class=\"token operator\">=<\/span> buffer<span class=\"token punctuation\">[<\/span><span class=\"token number\">13<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"--------\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Message-Head: \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>msg_head<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Message-Data (HEX): \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> DATA_VERSION_SIZE<span class=\"token punctuation\">;<\/span> <span class=\"token operator\">++<\/span>i<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n      Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span><span class=\"token punctuation\">(<\/span>msg_data_version<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\" (version)\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> DATA_TAG_SIZE<span class=\"token punctuation\">;<\/span> <span class=\"token operator\">++<\/span>i<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n      Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span><span class=\"token punctuation\">(<\/span>msg_data_tag<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\" (tag)\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Message-Checksum (HEX): \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> CHECKSUM_SIZE<span class=\"token punctuation\">;<\/span> <span class=\"token operator\">++<\/span>i<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n      Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span><span class=\"token punctuation\">(<\/span>msg_checksum<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Message-Tail: \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>msg_tail<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"--\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    <span class=\"token keyword\">long<\/span> tag <span class=\"token operator\">=<\/span> <span class=\"token function\">hexstr_to_value<\/span><span class=\"token punctuation\">(<\/span>msg_data_tag<span class=\"token punctuation\">,<\/span> DATA_TAG_SIZE<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Extracted Tag: \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span>tag<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    <span class=\"token keyword\">long<\/span> checksum <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">for<\/span> <span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i <span class=\"token operator\">=<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span> i <span class=\"token operator\">&lt;<\/span> DATA_SIZE<span class=\"token punctuation\">;<\/span> i<span class=\"token operator\">+=<\/span> CHECKSUM_SIZE<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span>\r\n      <span class=\"token keyword\">long<\/span> val <span class=\"token operator\">=<\/span> <span class=\"token function\">hexstr_to_value<\/span><span class=\"token punctuation\">(<\/span>msg_data <span class=\"token operator\">+<\/span> i<span class=\"token punctuation\">,<\/span> CHECKSUM_SIZE<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n      checksum <span class=\"token operator\">^=<\/span> val<span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token punctuation\">}<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"Extracted Checksum (HEX): \"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span>checksum<span class=\"token punctuation\">,<\/span> HEX<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    <span class=\"token keyword\">if<\/span> <span class=\"token punctuation\">(<\/span>checksum <span class=\"token operator\">==<\/span> <span class=\"token function\">hexstr_to_value<\/span><span class=\"token punctuation\">(<\/span>msg_checksum<span class=\"token punctuation\">,<\/span> CHECKSUM_SIZE<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> \r\n      Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\" (OK)\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token punctuation\">}<\/span> <span class=\"token keyword\">else<\/span> <span class=\"token punctuation\">{<\/span>\r\n      Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">print<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\" (NOT OK)\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n    <span class=\"token punctuation\">}<\/span>\r\n\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n    Serial<span class=\"token punctuation\">.<\/span><span class=\"token function\">println<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"--------\"<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n\r\n    <span class=\"token keyword\">return<\/span> tag<span class=\"token punctuation\">;<\/span>\r\n\r\n<span class=\"token punctuation\">}<\/span>\r\n<span class=\"token keyword\">long<\/span> <span class=\"token function\">hexstr_to_value<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span> <span class=\"token operator\">*<\/span>str<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">unsigned<\/span> <span class=\"token keyword\">int<\/span> length<span class=\"token punctuation\">)<\/span> <span class=\"token punctuation\">{<\/span> \r\n  <span class=\"token keyword\">char<\/span><span class=\"token operator\">*<\/span> copy <span class=\"token operator\">=<\/span> <span class=\"token function\">malloc<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">sizeof<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> length<span class=\"token punctuation\">)<\/span> <span class=\"token operator\">+<\/span> <span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n  <span class=\"token function\">memcpy<\/span><span class=\"token punctuation\">(<\/span>copy<span class=\"token punctuation\">,<\/span> str<span class=\"token punctuation\">,<\/span> <span class=\"token keyword\">sizeof<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">char<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token operator\">*<\/span> length<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\n  copy<span class=\"token punctuation\">[<\/span>length<span class=\"token punctuation\">]<\/span> <span class=\"token operator\">=<\/span> <span class=\"token char\">'\\0'<\/span><span class=\"token punctuation\">;<\/span> \r\n  <span class=\"token keyword\">long<\/span> value <span class=\"token operator\">=<\/span> <span class=\"token function\">strtol<\/span><span class=\"token punctuation\">(<\/span>copy<span class=\"token punctuation\">,<\/span> <span class=\"token constant\">NULL<\/span><span class=\"token punctuation\">,<\/span> <span class=\"token number\">16<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>  \r\n  <span class=\"token function\">free<\/span><span class=\"token punctuation\">(<\/span>copy<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> \r\n  <span class=\"token keyword\">return<\/span> value<span class=\"token punctuation\">;<\/span>\r\n<span class=\"token punctuation\">}<\/span><\/code><\/pre>\n<p>To detect an RFID tag, the RDM6300 module will send a frame of 14 bytes so we will set the Buffer size to 14. This includes head of 1 byte, data of 10 bytes, checksum of 2 bytes and tail of 1 byte.<\/p>\n<pre class=\"wp-block-code language-c\" tabindex=\"0\"><code class=\"language-c\"><span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> BUFFER_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">14<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> DATA_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> DATA_VERSION_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span> \r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> DATA_TAG_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">8<\/span><span class=\"token punctuation\">;<\/span> \r\n<span class=\"token keyword\">const<\/span> <span class=\"token keyword\">int<\/span> CHECKSUM_SIZE <span class=\"token operator\">=<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span> \r\n<\/code><\/pre>\n<p>We will use software serial to communicate between the two devices.<\/p>\n<pre class=\"wp-block-code language-c\" tabindex=\"0\"><code class=\"language-c\"><span class=\"token macro property\"><span class=\"token directive-hash\">#<\/span><span class=\"token directive keyword\">include<\/span> <span class=\"token string\">&lt;SoftwareSerial.h&gt;<\/span><\/span><\/code><\/pre>\n<p>Then we will set up the RX and TX pins. These will be passed as a parameter inside the SoftwareSerial().<\/p>\n<pre class=\"wp-block-code language-c\" tabindex=\"0\"><code class=\"language-c\">SoftwareSerial ssrfid <span class=\"token operator\">=<\/span> <span class=\"token function\">SoftwareSerial<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">6<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">8<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span> <\/code><\/pre>\n<h3 class=\"wp-block-heading\">Demonstration<\/h3>\n<p>To see the demonstration of the above code, upload the code to Arduino.<\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<p>Before uploading code, make sure to select the Arduino board from Tools &gt; Board and also select the correct COM port to which the Arduino board is connected from Tools &gt; Port.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-24391\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/select-Arduino-uno.jpg\" alt=\"select Arduino uno\" width=\"620\" height=\"423\" data-attachment-id=\"24391\" data-permalink=\"https:\/\/microcontrollerslab.com\/bme680-interfacing-arduino-display-oled\/select-arduino-uno\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/select-Arduino-uno.jpg\" data-orig-size=\"620,423\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"select Arduino uno\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/select-Arduino-uno.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/select-Arduino-uno.jpg\" \/><\/figure>\n<\/div>\n<p>Once the code is uploaded to Arduino, open the serial monitor and set the baud rate to 9600. Press the RST button on the Arduino.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-24393\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/Arduino-uno-reset-button.jpg\" sizes=\"auto, (max-width: 375px) 100vw, 375px\" srcset=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/Arduino-uno-reset-button.jpg 1500w, https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/Arduino-uno-reset-button-768x531.jpg 768w\" alt=\"Arduino uno reset button\" width=\"375\" height=\"259\" data-attachment-id=\"24393\" data-permalink=\"https:\/\/microcontrollerslab.com\/bme680-interfacing-arduino-display-oled\/arduino-uno-reset-button\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/Arduino-uno-reset-button.jpg\" data-orig-size=\"1500,1037\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Arduino uno reset button\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/Arduino-uno-reset-button.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/06\/Arduino-uno-reset-button.jpg\" \/><\/figure>\n<\/div>\n<p>Bring the RFID tag or card close to the antenna. The serial monitor will display the information regarding it. Here you will be able to view the special ID of the tag and its related data. Here we have identified two different tags using this sketch.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-28366\" src=\"http:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-output-on-Arduino-serial-monitor.jpg\" sizes=\"auto, (max-width: 1114px) 100vw, 1114px\" srcset=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-output-on-Arduino-serial-monitor.jpg 1114w, https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-output-on-Arduino-serial-monitor-768x528.jpg 768w\" alt=\"RDM6300 RFID output on Arduino serial monitor\" width=\"1114\" height=\"766\" data-attachment-id=\"28366\" data-permalink=\"https:\/\/microcontrollerslab.com\/rdm6300-rdm630-rfid-reader-arduino-tutorial\/rdm6300-rfid-output-on-arduino-serial-monitor\/#main\" data-orig-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-output-on-Arduino-serial-monitor.jpg\" data-orig-size=\"1114,766\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"RDM6300 RFID output on Arduino serial monitor\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-output-on-Arduino-serial-monitor.jpg\" data-large-file=\"https:\/\/microcontrollerslab.com\/wp-content\/uploads\/2021\/12\/RDM6300-RFID-output-on-Arduino-serial-monitor.jpg\" \/><figcaption>Serial Monitor<\/figcaption><\/figure>\n<\/div>\n<p>You may like to read:<\/p>\n<div class=\"code-block code-block-1\"><\/div>\n<ul>\n<li><a href=\"https:\/\/microcontrollerslab.com\/rc522-rfid-reader-pinout-arduino-interfacing-examples-features\/\">RC522 RFID Reader Module<\/a><\/li>\n<li><a href=\"https:\/\/microcontrollerslab.com\/rfid-based-electronic-lock-pic\/\">RFID based electronic lock using pic microcontroller<\/a><\/li>\n<li><a href=\"https:\/\/microcontrollerslab.com\/pn532-nfc-rfid-module-pinout-arduino-interfacing-applications\/\">PN532 NFC RFID Module<\/a><\/li>\n<li><a href=\"https:\/\/microcontrollerslab.com\/rfid-based-attendance-system-project\/\">RFID Based Attendance System project using pic microcontroller<\/a><\/li>\n<li><a href=\"https:\/\/microcontrollerslab.com\/door-security-system-rfid-rc522-arduino\/\">Door Security System Using RFID RC522 and Arduino<\/a><\/li>\n<li><a href=\"https:\/\/microcontrollerslab.com\/rfid-reader-rdm6300-interfacing-pic\/\">RFID reader RDM630 interfacing with pic microcontroller<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we will learn how to interface RFID reader RDM6300 or RDM630 with Arduino. Both of these RFID readers communicate via a serial connection on UART and follow the same interfacing with Arduino thus this tutorial will be compatible with both types of RFID readers. First, we will give you a brief description [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[13],"tags":[],"class_list":["post-26560","post","type-post","status-publish","format-standard","hentry","category-13"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6cOVM-6Uo","_links":{"self":[{"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=\/wp\/v2\/posts\/26560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=26560"}],"version-history":[{"count":1,"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=\/wp\/v2\/posts\/26560\/revisions"}],"predecessor-version":[{"id":26561,"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=\/wp\/v2\/posts\/26560\/revisions\/26561"}],"wp:attachment":[{"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=26560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=26560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tom.tomwork.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=26560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}