You Are Here: Home » Wireless Projects » RFID - NFC Projects » RFID sales checkout system Using Atmega644

RFID sales checkout system Using Atmega644


The Elevator Pitch

We successfully implemented a prototype RFID checkout system that will enable consumers to instantly pay for their entire purchase upon arrival at the register, increasing customer satisfaction, reducing retailer costs, and ultimately lowering consumer prices.

RFID sales checkout system Using Atmega644


Shopping in the present day usually involves waiting in line to get your items scanned for checkout. This can result in a great deal of wasted time for customers. Furthermore, the technology currently used in checkouts – barcodes – is from another era, developed in the 1970s, before the age of the affordable computing power. In the present world, with computers powering everyday items from children’s toys to wristwatches, we felt like we can improve on the humble shopping experience.

With the increasing prevalence and affordability of radio frequency identification (RFID) tags in everyday authentication systems, RFID holds great promise in the retail world for both customers and stores in inventory control, convenience, and cost savings. Our project utilized these RFID tags to automate the checkout process by building a system that could read the RFID signals of all the objects that were placed in proximity to an antenna platform. This eliminated the need for barcode scanning of each individual item, making checkout a significantly faster experience. Furthermore, as each item has a unique tag, even copies of the same product contrasted to the current UPC model, much better inventory control, recall ability, and monitoring of consumer behavior trends are possible, with privacy concerns considered of course.

High Level Design

Rationale and Motivation for Project

Jigar’s mother has been a cashier at their local Walmart for over 15 years. One day, she was so tired from work and discussed with Jigar the possibility of technology completely taking over the job of a cashier. As we had been exploring project ideas for this course at the time, we immediately began to consider the practicality of such a proposition, and whether we could indeed implement a prototype of such a system for our final project.

We immediately considered RFID tags, already used heavily at Cornell for dorm access, not to mention in industry for employee authentication and credit card systems for wireless payment. For those applications, however, only one tag at a time was read, and multiple tags within the sensor read area would render the system useless, a key requirement of our checkout system. We discovered that a mainstream tag protocol had been developed at 13.56 MHz with anti-collision support, enabling simultaneous, error-free reading of all tags within the read field.

Last but not least, we had to consider whether such a system would be cost-prohibitive. When doing parts research, we discovered comprehensive reader chips available at less than $100 each that could be integrated into existing self-checkout systems. We came across news articles that showed research leading to tags that could cost less than 5 cents each, with cost decreasing over time.

Background Math

The particular RFID tags we will use in our project are passive RFID tags. This means that it relies on power transmitted by the reader in order to operate. In operation, passive RFID tags use the reflected carrier frequency (cos(wt)) which is modulated with a function (m(t)) in order to transmit information.

Image 1

In this modulation function, the data has been hardcoded in the tag and can be transmitted to the RFID reader in a binary fashion.

Two major methodologies of modulation in our RFID tags include Amplitude-Shift Keying and Frequency-Shift Keying. In Amplitude-Shift Keying, two discrete amplitude levels are applied to the sinusoidal carrier frequency to represent 1’s and 0’s.

In Frequency-Shift Keying, two different frequencies are used to indicate binary values. This is done by switching between two different oscillators that are connected to the output.

In order to allow reads in electromagnetically noisy environments, readers are tuned to only read one particular frequency – in our case, the SkyeModule M1 reader we are using only reads radio frequencies of 13.56 MHz.

In cases where there is more than one tag in the vicinity of the reader, tag collision may occur when both tags reflect their signals back to the reader at the same time. This can confuse the reader. Thus, various methodologies for anti-collision can be used. These methodologies vary by tag type.

Our RFID checkout was organized around several central components. The prototype board containing the Atmel Mega 644 microcontroller received user input from the pushbuttons and outputted user feedback via the LCD. This in turn communicated with the Skyetek M1 Module which transmitted power onto RFID chips in the vicinity and received a signal back via the antenna. Multiple tags within the RFID field would not result in a problem, as each tag was told to ‘stay quiet’ after it had been successfully read. More details are described later in this report.

Hardware/Software Tradeoffs

We had a hard time choosing what frequency to buy our RFID reader at. While 13.56 Mhz was a standard for our intended application, the cost of the chips were too high for our $75 budget. We originally decided to compromise this and go with a cheaper 125 KHz reader, with much more expensive tags and poor anti-collision support in order to move forward on our project. We luckily came across a used RFID 13.56 MHz development kit – The Skyetek M1 Developer Kit – which enabled us to fulfill our potential for this project.

Another question we faced during our planning and design stage was whether to buy a reader with a pre-designed protocol that could easily interact with the microcontroller, at a much greater cost to our budget, or whether to build the reader ourselves. After consulting with the professor, we reasoned that there was no way we could implement the reader with anti-collision support/algorithms in addition to our checkout system within the short time frame of the project. We are glad we took that advice so that we were able to create a realistic prototype of our initial vision.

Upon purchase of the Skyetek M1 Developer Kit, we were dismayed to find out that the reader used a proprietary protocol. We wondered whether this was a deal-breaker, but for the cost we had gotten the kit for, we reasoned we had no choice but to move forward. Our code, as a result, is not as easily migrated to other platforms with a similar intention.


Our project used tags utilizing the ISO15693 and ISO14443 standards. IS015693 was developed in 1998 to serve as proximity cards, after which it has widely been adopted as the standard for the 13.56 MHz RFID frequency, enabling the gradual global adoption of RFID. ISO/IEC 14443 was developed in 1999 and has become the standard for contactless payment systems. For our application, ISO15693 seems like the most likely adoption candidate, given the wide variety of manufacturers, including the popular Texas Instruments Tag-It HF series tags. More details are discussed in the tag structure section.

Hardware / Program Design

The hardware for our RFID checkout system was organized around the Skyetek M1 Module and the Protoboard with the Atmel Mega 644. The microcontroller board acted as the command center for our system, instructing the Skyetek M1 to turn on and remain ready for operation, taking in user input via pushbuttons, and outputting user feedback via the LCD. The schematic above best summarizes our setup. The following sections go through each of these components step by step.

Skyetek M1 Module

The SkyeModule M1 is a multi-protocol RFID read/write module. It is capable of reading most of the industry-standard 13.56 MHz RFID tags. Its input voltage should be about 5V, which means that it should be able to be powered by the Mega644 microcontroller. However, we decided to isolate the power systems of the two modules as an extra and quite probably unnecessary precaution in order to prevent possible voltage problems from destroying the SkyeModule chip.

RFID sales checkout system Using Atmega644 Schemetic

It supports SPI, TTL, I2C, and RS-232 communication with computers, microcontrollers, and other devices and transmits the least significant bit first in its communication. In reading tags, it has anticollision capabilities, meaning that it is able to read multiple RFID tags in the vicinity of its antenna. This makes it ideal for a RFID Checkout system. It utilizes the Skyetek communication protocol, which we will discuss later on

Parts list:

Component Ordered Part From Part Number / Link Unit Cost Quantity Total
LCD 3-Button Panel 476 Lab / Salvaged $0.00 1 $0.00
LCD 20×4 LCD Display Jameco GM-C2004A $9.95 1 $9.95
LCD Single Row Header Pin 476 Lab WM6436-ND $0.05 14 $0.70
LCD 10K Trimpot 476 Lab 3386F-103-ND $1.14 1 $0.00
RFID Skyetek M1 Developer Kit (Including Reader, Power, Tags) Ebay DKM1 $16.49 1 $16.49
Proto Board Atmel Mega644 476 Lab Mega644-20PU $8.00 1 $8.00
Proto Board Custom PC Board 476 Lab Prototype Board $4.00 1 $4.00
Proto Board IC Regulator 476 Lab LM340LAZ-5.0 $0.98 1 $0.98
Proto Board 16 MHz Crystal 476 Lab CTX077 $0.75 1 $0.75
Proto Board Switch SPDT surface mount 476 Lab AYZ0102AGRL $0.52 1 $0.52
Proto Board 2.1mm Power Plug 476 Lab CP-002A-ND $0.38 1 $0.38
Proto Board Power Supply 476 Lab DBU120020E2261 $5.00 1 $5.00
Proto Board 40-Pin DIP Socket for MCU 476 Lab  3M5471-ND $0.50 1 $0.50
Proto Board 20-Pin DIP Socket for Max233 476 Lab 3M5465-ND $0.50 1 $0.50
Proto Board Single Row Header Pin 476 Lab WM6436-ND $0.05 32 $1.60
Proto Board SIP Machine Pin 476 Lab ED2064-ND $0.05 3 $0.15
Proto Board 0.1 uF Capacitor 476 Lab PCC104BCT-ND $0.26 5 $1.30
Proto Board 1 uF Capacitor 476 Lab 311-1181-1-ND $0.33 2 $0.66
Proto Board 22 pF Capacitor 476 Lab 311-1154-1-ND $0.12 2 $0.24
Proto Board 100 Ohm Resistor 476 Lab P100ECT-ND $0.10 1 $0.10
Proto Board 100k Ohm Resistor 476 Lab P100KECT-ND $0.10 1 $0.10
Proto Board 330 Ohm Resistor 476 Lab P330ECT-ND $0.10 1 $0.10
Proto Board 1N40001 Diode 476 Lab 1N4001DICT-ND $0.30 1 $0.30
Main Board Main Board 476 Lab / Salvaged $0.00 1 $0.00
Main Board Single Row Header Socket 476 Lab 929974-01-36-ND $0.05 77 $3.85
Main Board Dual Row Header Socket 476 Lab 929975-01-36-ND $0.05 20 $1.00
Antenna 0.5″ Conductive Adhesive Copper Foil Tape – 36 Yards Amazon CFL-5CA $22.72 0.04 $0.99
Antenna Floor Tile 476 Lab / Salvaged $0.00 1 $0.00
Antenna Variable Capacitor Digikey 490-1965-ND $0.43 2 $0.86
Antenna 220pF Ceramic Capacitor Digikey 490-4284-ND $0.19 1 $0.19
Antenna 1000pF Ceramic Capacitor 476 Lab 1445PH-ND $0.13 1 $0.13
Total $59.34

For more detail: RFID sales checkout system Using Atmega644

Leave a Comment

You must be logged in to post a comment.

Read previous post:
RFID based Mobile Payment System Using Atmega644

Introduction and Rationale We used our ECE 4760 final project as a platform to develop a proof of concept for...

Scroll to top