(*****) Digital Logic µFR Nano Online NFC reader review

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 :slight_smile: 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 :slight_smile:
  • 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

:+1: Crazy good performances with implants
:+1: Small form factor
:+1: Versatile: many wired and wireless connectivity options and I/O lines will probably fit any project you have in mind
:+1: Fabulous amount of documentation
:+1: Great support
:+1: Cheap for all it does

Cons

:-1: It could run a bit cooler, and use a bit less power if you run it on batteries like I do
:-1: the documentation is not terribly well organized: it’s there, but you’ll have to spend time digging for what you need
:-1: 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 :slight_smile:

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.

Screenshots of the µFR Nano Online configuration pages in the internal HTTP server




Usage videos with implants

7 Likes

14 posts were split to a new topic: Issues with Forum Images not loading on some mobile browsers

Very nice little device, like it.

Yeah, actually you’re right :+1:t2:

For information, the uFR Nano and Nano Online will read a flexNT through a middle finger without any trouble. All Digital Logic readers are on the overpowered side, and this little guy is no exception. It’s just at the range limit without being a bitch to find the sweet spot.

Presumably it’ll read a flexDF / flexDF2 through a finger also, but I’m not setup to try it. It won’t read a flexM1 though - which has a bit less range.

In addition, if you want to increase its range a bit, you can peel off the thick rubbery stickers top and bottom: that’ll buy you an extra 1.5 mm of range if you find yourself a bit short for comfortable reading.

I can shoot a video when I get back home if anybody’s interested.

Well, nobody’s interested, but I’ll post a video anyway.

Can you tell I ain’t got nothing better to do these days? :slight_smile:

2 Likes

I have 4 xSIID in my hand and an xLED in P0-4. I’ve been struggling to find a device capable of lighting my entire hand up at once. The closest I’ve gotten is my own iPhones 12 Pro Max with the top down antenna. How do you think this wouod fair with the task at hand?

The Nano wouldn’t work for that. The field is powerful but rather localized. Well it’s probably not that powerful, just well concentrated. Kind of like the ACR122U.

Since all your blinkies’ antennae are oriented the same direction, you probably want one of Digital Logic’s -XL-series long-range readers {DL533R-XL, DL533N-XL or uFR XL - same board, different firmware}: those will light you up like a christmas tree - and will double as a convenient space heater :slight_smile: If you want, I can plug mine in and run a field detector along one of the long field lines to confirm that it would work.

This sounds awesome! Yeah sure thing! 89 isn’t too bad but to be sure it works would be greatly appreciated!!

Here’s the range with a glass blinkie:

It starts lighting up about 15 mm off the reader. This is an X field detector, which I believe doesn’t couple quite as well as an xLED. So maybe you’ll get 20 mm with your implants. Possibly not quite enough range to reach through your hand if you have big paws.

So if I were you, I’d only buy the reader if you have other uses for it in case it’s not doing quite what you want with your blinkies - or if you’re prepared to suck up the cost of course.

For comparison, here’s the thing’s ridiculous range with a full-size card:

3 Likes

Someone asked me why their uFR Nano doesn’t seem to have quite as much range as mine. And I realize I totally forgot to mention you need to modify the PN512’s RF configuration - specifically the Rx gain, which needs to be jacked up from the factory default of 33 dB. To read my flexNT through my finger like in the video, it needs to be set to at least 43 dB.

The uFR API lets you goof around with the chip’s registers (another great feature!). So I added a script in my pyuFR class’s example directory to set the Rx gain to the max (48 dB) for our favorite NFC tag type (ISO14443A):

https://raw.githubusercontent.com/Giraut/pyuFR/master/examples/increase_rxgain.py

This can be done with the Digital Logic library also, but I don’t use it so I don’t have a program to do it with it.

At 48 dB, the reader easily reads my flexNT through my finger and an extra 3 mm gap between my finger and the reader, and it reads my IAR M1k glassie a solid 1/2" away.

I suppose this is way too much gain for a full-size NFC card - as in, it would read it from too far away and would be disconcerting for users. But it’s perfect for use with implants.

2 Likes

Not an expert,
But, you cant have the mobile do the same?

Not quite with you: do the same what? What mobile? :slight_smile: