RFID Readers
Fall 2018, 2019
We had a great opportunity to flex our small product production muscles, and I loved being able to dig deep into designing and testing a robust product. Our initial ask was to provide a solution that allowed festival-goers to tap their RFID bracelets at up to 50 different stations to be automatically registered for draws at those stations. The devices would be used outdoors with no network infrastructure or power.
The Approach
To start with we identified the different components that would need to come together to make this successful:
- A microcontroller that could communicate over a cellular connection
- An RFID reader that could read "standard" RFID bracelets
- Lights to indicate a successful tap, low battery, etc.
- A speaker to indicate a successful tap
- Onboard storage to keep all tap events saved if the device is operating offline
- An enclosure that could hold everything, with the smallest tabletop form factor
- A giant rechargeable battery to keep it all running for a full festival day
We performed many R&D iterations to determine the most robust approach for a hardware solution. The end result was the development of a PCB that could mount all the individual components and mount perfectly inside the enclosure.
I can't share too much, since this is considered a proprietary product, but I will share some key learnings. The biggest pain in the butt was power management. The controllers we were using were inconsistent with how well they charged the battery, and we ultimately had to build a separate charging circuit into the device to manage the battery. This was kicked off with the panic of discovering only a small handful of devices had actually charged one night. Had to buy so many extension cords to keep them alive through the following day!
The second biggest challenge was getting everything to fit well inside a constrained enclosure. Cutting out holes for lights, switches, power/usb, etc. that actually aligned consistently with the parts inside is harder than it sounds. Using a PCB with tight tolerances was a huge help, but there were still plenty of small adjustments we had to make along the way.
Writing robust and comprehensive firmware for the microcontroller was a very challenging but rewarding process. We had to be able to manage all sorts of asynchronous and concurrent events, send device stats (power level, signal strength, tap data, etc.), and drive a snappy user experience. I was very glad for my background in industrial controls, and the methodologies it taught me for writing robust code.
Finally, providing remote support for damaged units turned into a larger effort than anticipated. Working with non-technical folks to identify what was wrong with a device in a different time zone, and trying to find solutions is always a challenge! In the end our clients were very happy with the solution we provided.
Links
- Particle Boron - a cloud-connected LTE microcontroller with Arudino-style firmware support
- PN532 RFID reader board - handles a number of formats and we most typically saw "Mifare" band chips [Adafruit] [Amazon]
- NeoPixel Ring - for user-facing interaction [Adafruit]
- SD card logger - for offline non-volatile data storage [Sparkfun]