Since we now have a review category and I haven’t really come up with a proper review of this little guy despite working extensively with it for some time, I might as well post one.
Please note that this review is rather Linux-centric, as I don’t have Windows. Also, I’m not really interested in additional features that Digital Logic provides in other readers (including the µFR Nano Online) such as the RTC clock. So I’m not gonna touch those.
My main interest is of course how and how well I can use the device with my implants, for typical applications in which implants make sense.
Device
The µFR Nano Online is a small NFC reader made by Digital Logic out in Serbia.
General information about Digital Logic readers
Digital Logic offers two ranges of readers:
- The DL line, which are PN5xx-based readers that simply expose the PN5xx chip’s API, making it fully controllable at the lowest level without using pseudo-APDUs and other such trickery
- The µFR line, which are also PN5xx-based readers, but whose functionalities are accessible at a higher level through a comprehensive serial API
Both are a programmer’s wet dream: everything Digital Logic releases is fully documented down to the nitty-gritty details. libnfc supports all DL readers out of the box, and Digital Logic supplies a multi-platform, multi-language library SDK to communicate with µFR readers, along with a plethora of sample applications.
Incidentally, yours truly also provides a third-party pure Python library for the µFR I was able to code that thing (and still coding it, it’s far from complete) because Digital Logic fully documents the µFR serial protocol.
For the sake of compleness, I should mention that there appears to be a PC/SC driver for Windows. So in theory, you could use a µFR reader - including the µFR Nano Online - with any PC/SC-aware application under Windows. But like I said, I don’t have Windows and I haven’t tried it. So maybe not…
Honestly, that much documentation for that sort of device is unheard of. Yes, you pay a bit more than you would for a cheap Chinese reader, but boy are you glad you did when you try to do something - anything - with a Digital Logic reader and it only takes 2 minutes to figure out how.
Technical support from Digital Logic ain’t half bad either: I’ve been hitting them with feature requests and bug reports for a while, and they consistently replied with real, properly technical responses, bug fixes and (get a load of this) they actually did implement the features I wanted. Quite unheard of too!
µFR Nano Online features
µFR-series readers are serial readers with a special protocol that communicates over RS232, RS485 or USB CDC (FTDI). The µFR Nano Online is a bit different: it is a regular µFR reader with an ESP32 board tacked on: when you talk to a µFR Nano Online, you actually talk to the ESP32 board, that dispatches commands and messages to/from various local and network sources to the reader.
The ESP32 board implements the extra networking functions through wifi: it either connects to a wifi AP if it’s been given a SSID / password, or it reverts to implementing its own AP if it can’t. Then in the background, depending on your configuration, it implements the various clent/server bits that let you talk to the reader over wifi. More on that further down.
If you’re willing to crack your µFR Nano Online open, you can also customize it: it offers a second UART channel to connect a second µFR reader to the ESP32 board, and 6 user-defined I/O lines that you can use for any project you fancy.
Reader performances
All Digital Logic readers share three characteristics:
- They run hot
- They have stupidly, almost painfully bright LEDs
- The RF field they put out is borderline crazy powerful: they’re the most powerful readers I own in the same power categories. More importantly, the RF field is “shaped” in such a way that implants read extremely well in any position / orientation - particularly glass implants.
The µFR Nano Online is no different: it easily reads my M1k glassie from over a quarter inch off the surface of the reader (including from the reverse side), within an area the size of a quarter over the reader, without forcing me to look for a sweet spot or placing the implant parallel or orthogonal to anything. Slap your hand on the reader any which way and boom it reads each time, every time.
All this in a reader the size of a bic lighter. It really puts the ACR122U to shame. Digital Logic sure knows how to make good antennae and good front-ends.
In fairness, the uFR Nano Online runs hot, but it’s not entirely because of the NFC reader part of it: most of the heat comes from the ESP32 board. Here are a few power consumption measurements at the USB port:
- Wifi connected, no operations, reader in sleep mode: 160 mA
- Wifi connected, 5 commands per second over wifi, reader running at 90% sleep /10% awake duty cycle: 180 mA
- Wifi connected, asynchronous ID sending mode, reader actively probing all the time: 200 mA
- Wifi connected, 5 commands per second over wifi, reader actively probing all the time: 210 mA
So obviously most of the power is used by the ESP board to stay awake and talk to the AP. And indeed the hot spot on the reader is over that chip.
Connectivity options
The number of connectivity scenarios with that device is quite staggering. So I’ll try to summarize them.
In basic mode, a µFR reader is a synchronous device: you send a command, it replies. It never initiate a data transfer without being asked.
What the additional ESP32 board does is this: it listens for commands coming from the USB serial connection, from a UDP port, a TCP port, a Websocket connection or a HTTP REST request, sends the command to the reader, and sends the reply back to the original requester using the original channel.
Better, it can multiplex commands. In other words, you can talk to the reader through any of those communication methods at the same time. Well, not quite, but close enough: no problem having USB serial, UDP and HTTP REST communication options enabled at the same time for instance.
All those options are configurable through the device’s internal HTTP server: you can define anything, down to the ports you wish to use for UDP, TCP or WS, the UART to connect to which channel, baudrates and what have you.
Additionally, you can configure it as a BLE device - either BLE serial, or BLE HID - in which case the reader acts as a Bluetooth keyboard wedge. And, if you don’t want to bother with all the programming, you can configure it as a HTTP client that sends the UIDs it reads to an external web server through a POST request.
Additional Nano Online-only commands
The µFR Nano Online is a uFR reader, so it implements all µFR commands. But it has a few additional commands that concern only the ESP32 board found in that specific device. You can set networking options programmatically for example, and - most important IMHO - dim the crazy powerful LEDs, or set them any color you want.
Supported NFC card type / standards
- Generic ISO14443
- Mifare Classic 1K/4K
- Mifare Plus 2K/4K
- Mifare Ultralight / EV1 / C
- NTAG-2xx
- DESFire EV1 / EV2
Additionally, it support peer-to-peer (ad-hoc) communication and NDEF emulation.
I’m probably forgetting other stuff it supports.
Price
€89 - expect to pay import duties if you’re not in Serbia though, and shipping of course.
Conclusion
Pros
Crazy good performances with implants
Small form factor
Versatile: many wired and wireless connectivity options and I/O lines will probably fit any project you have in mind
Fabulous amount of documentation
Great support
Cheap for all it does
Cons
It could run a bit cooler, and use a bit less power if you run it on batteries like I do
the documentation is not terribly well organized: it’s there, but you’ll have to spend time digging for what you need
I wish Digital Logic didn’t use a unicode character in their naming scheme (the “µ” in “µFR”). It really makes searching for stuff online, and naming directories and variables in code quite annoying. ASCII is all you want for names. But hey, maybe I’m old-fashioned and it’s just a me problem
Is it worth the price?
It most certainly is for me. It’s 50-some euros more than a cheap Chinese reader, but then it does a million more things than a cheap Chinese reader does, and it won’t force you to reverse-engineer it to use it the way you want.
If you’re paid as much as I am, the extra cost quickly pays for itself when you don’t have to spend hours figuring stuff out without documentation.
Finally, shameless plug: SiRFIDaL supports the uFR Nano Online in synchronous and asynchronous modes, over serial, UDP, TCP, REST and WS, with a power saving option.