Skip to content

neroduality/nero-nfc-reader-firmware

nero-nfc-reader-firmware

Main CI Release Documentation

Nero NFC

Open Desktop NFC Reader: firmware and Linux host CLI tools for turning a supported MCU board with an ST25R3916B RF reader frontend into an NFC reader/writer / USB CCID smart-card reader.

Development is supported on Linux hosts only (build, flash, host CLIs, and tests).

This is source-build only: no supported release bundles or prebuilt firmware images.

What it does

It is reader firmware, not a FIDO authenticator. The tapped security key/card keeps the credentials and private keys.

  • Reads NFC Forum Type 2, Type 4, and Type 5 tags (Type 5 when RF hardware supports ISO15693).
  • Writes NDEF records.
  • Plain NDEF storage tags only—no Secure Messaging or password-protected writes.
  • Two USB firmware modes: CDC serial shell or USB CCID; PC/SC uses USB CCID.
  • Optionally lets PC/SC hosts use a tapped NFC FIDO security key/card for WebAuthn passwordless sign-in by relaying CTAP APDUs over Type 4 ISO-DEP.

Quick start

You need a supported board, X-NUCLEO-NFC08A1 shield, USB data cable, and NFC tags — see Supported hardware.

1. Build and flash firmware (firmware) — serial shell (simplest quick start):

Default TARGET=arduino_uno_r4wifi. Alternate: # TARGET=nucleo_wba65ri ….

make deps
make flash-cdc

USB CCID reader (PC/SC): make flash instead — CCID host setup.

2. Install host userspace CLIs (host):

make userspace
make install-userspace
export PATH="${HOME}/.local/bin:${PATH}"

3. One-time Linux setup (host) — after serial flash:

sudo make install-udev

Replug the board. After make flash (PC/SC), use CCID.md § Linux setup instead.

4. Read or write tags — tap a tag when prompted (TUTORIAL_TAGS.md):

reader --no-open-url
writer --uri=https://example.test/ --uri=https://example2.test/

Optional — WebAuthn with an NFC FIDO security key: follow TUTORIAL_WEBAUTHN_CCID.md. Not required for tag read/write.

Developers: make help.

Documentation

See docs/ for tutorials, CCID host setup, and spec traceability (compliance, coverage, and drift checks).

Supported hardware

Layer Hardware Notes
MCU board Option 1: Arduino UNO R4 WiFi
  • Default TARGET=arduino_uno_r4wifi
  • Built and uploaded with Arduino CLI over USB
  • CCID USB (0x2341:0x006D)
  • CCID USB: Arduino core's bundled TinyUSB, patched via patches/arduino/renesas_uno/
MCU board Option 2: NUCLEO-WBA65RI
  • TARGET=nucleo_wba65ri
  • Flash via on-board ST-Link (project OpenOCD)
  • CCID USB on CN9 (0x2341:0x006E)
  • CCID USB: vendored upstream TinyUSB (unpatched); board support in patches/arduino/stm32/wba65/
RF reader shield X-NUCLEO-NFC08A1 ST25R3916B NFC reader shield (UM3007).
NFC Forum tag Type 2 tags NTAG213/215/216, ST25TN01K/ST25TN512.
NFC Forum tag (Optional) Type 4 tags ST25TA02K, NTAG I2C Plus, NTAG424 DNA (plain NDEF only), NFC FIDO security keys/cards (e.g. YubiKey, Cryptnox).
NFC Forum tag (Optional) Type 5 tags ST25TV02KC, ST25DV04KC/16KC/64KC, X-NUCLEO-NFC07A1.

License

Part Terms
This project source Apache-2.0; see LICENSE and SPDX headers.
Fetched ST libraries under third-party/ ST license terms from each upstream tree; this firmware targets ST25R-series reader hardware.

About

Open Desktop NFC Reader: firmware and Linux host CLI tools for turning a supported MCU board with an ST25R3916B RF reader frontend into an NFC reader/writer / USB CCID smart-card reader.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors