The key topics you need to address when developing RFID firmware to design and implement your own battery-free RFID sensor tags.
We’ve previously discussed about how linked hardware, firmware and software development are. Even if you need to have the physical component available to be able to start programming the firmware, you should have thought about the design of the firmware well before you selected the hardware component.
The reason for this is that there are several decisions you will have to take when selecting the hardware that will impact your firmware development.
Managing your external device
Even if we have been talking about battery-free sensors, you may well be interested in developing a different solution such as actuators, displays or any other product.
From the firmware point of view, you will have to manage your selected device from a microcontroller. This typically means actions such as:
- Sensor activation
- Setting power modes
- Setting sampling rates
- Taking measurements
- Receiving measurements from the sensor
Note that not all devices will require all of these actions but they are pretty common.
Managing communication with the RFID chip
When working in battery-free mode, all the actions to manage the external device need to be triggered from the RFID chip. The RFID chip will be the master while the microcontroller will be the slave.
Moreover, in order to code the firmware properly, you will need to have a deep understanding of how the RFID chip issues the commands to the microcontroller. For example, the ANDY100 can write and read user memory addresses which in turn will trigger SPI commands – which you will have to learn in order to program correctly.
It’s also important you keep in mind that RFID chips do not have a very stable clock. They typically use RC oscillators, meaning you will have a variable clock period. Make sure you address this or you may end up losing data from the sensor.
Additional operations on tag
Having a microcontroller on the tag allows for some flexibility during the design. You may want to implement extra code to help you with your application. For example:
- Pre-processing of sensor data. For applications in which you need a high sampling rate but the actual data is not relevant – you only need to know if the value was out of a threshold for example.
- Buffering of sensor data. For applications where the sampling rate and read rate from the reader are similar, due to the limitations of the RFID chip clock, you may want to implement a buffer to allow the RFID tag to collect all sensor data instead of relying on the stability of the clock.
There are lots of examples of additional operations that may be beneficial. However, you will have to balance the features against the power consumption of the microcontroller.
For more information about read range in RFID systems download the ‘Develop your own battery-free sensors like a pro‘ free eBook.