Jonathan Warren

Wires Expert GitHub YouTube Blogger LinkedIn

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:

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.