This firmware enables seamless Bluetooth Low Energy (BLE) connection establishment using Near Field Communication (NFC) tap-to-pair functionality on the Nordic nRF52840 Development Kit.
- NFC Tap-to-Pair: Simply tap an NFC-enabled device to initiate BLE pairing
- Visual Feedback: LED indicators show system status and pairing progress
- Power Management: Optimized for battery-powered applications
- Security: PIN/passkey authentication and session-based security
- Standard Compliance: Uses NDEF format for NFC data exchange
- Nordic nRF52840-DK development board
- NFC-enabled device (smartphone, tablet) for testing
- Nordic nRF5 SDK v17.1.0 or later
- ARM GCC toolchain
- nRF Command Line Tools
# Install Nordic nRF5 SDK (adjust path in Makefile)
export SDK_ROOT=/path/to/nRF5_SDK_17.1.0_ddde560
# Install ARM GCC toolchain
# Install nRF Command Line Toolsmake clean
makemake flash- Power on the nRF52840-DK (blue LED should blink slowly)
- Bring NFC-enabled device within 4cm of the board
- Green LED should blink fast during pairing
- Solid green LED indicates successful BLE connection
| LED Pattern | Status |
|---|---|
| Slow blue blink (2s) | Idle - waiting for NFC field |
| Fast green blink (200ms) | NFC active - processing pairing |
| Solid green (3s) | BLE connection established |
| Solid red (3s) | Error condition |
| Slow blue blink (5s) | Low power mode |
├── src/ # Source files
│ ├── main.c # Main application
│ ├── nfc_handler.c # NFC field detection and NDEF handling
│ ├── ble_manager.c # BLE stack and connection management
│ ├── state_machine.c # System state coordination
│ ├── led_controller.c # LED status indicators
│ └── power_manager.c # Power optimization
├── config/ # Configuration files
│ └── sdk_config.h # Nordic SDK configuration
├── tests/ # Unit and integration tests
├── Makefile # Build configuration
└── README.md # This file
Key configuration options in config/sdk_config.h:
- NFC_T4T_HAL_ENABLED: Enable NFC Type 4 Tag emulation
- BLE_ADVERTISING_ENABLED: Enable BLE advertising
- NRF_PWR_MGMT_ENABLED: Enable power management
- NRF_LOG_ENABLED: Enable debug logging
This project is currently under development. See the implementation tasks in .kiro/specs/nfc-ble-tap-to-pair/tasks.md for current progress.
This project is licensed under the Nordic 5-Clause License. See the Nordic nRF5 SDK for license details.
For issues and questions:
- Check the Nordic DevZone: https://devzone.nordicsemi.com/
- Review the nRF52840 documentation
- Consult the Nordic nRF5 SDK examples