This project implements a BLE beacon application for the nRF54L15 microcontroller using the Nordic Connect SDK (NCS). The beacon alternates between iBeacon and Eddystone-URL advertisement formats every 30 seconds.
- Dual Protocol Support: Implements both iBeacon and Eddystone-URL beacon protocols
- Automatic Mode Switching: Alternates between beacon types every 30 seconds
- LED Indication: Visual feedback through onboard LED
- Optimized for nRF54L15: Configured specifically for the nRF54L15 hardware
- Low Power: Optimized advertising parameters for battery operation
- nRF54L15 Development Kit (nRF54L15DK)
- Nordic Connect SDK (NCS) v2.7.0 or later
├── CMakeLists.txt # Main build configuration
├── prj.conf # Project configuration
├── west.yml # Dependency management
├── sample.yaml # Sample documentation
├── src/
│ └── main.c # Main application code
└── boards/
├── nrf54l15dk_nrf54l15_cpuapp.conf # Board configuration
└── nrf54l15dk_nrf54l15_cpuapp.overlay # Device tree overlay
- Install Nordic Connect SDK (NCS) v2.7.0 or later
- Set up the development environment following Nordic's setup guide
- Ensure
westand build tools are properly installed
-
Initialize the west workspace (if not already done):
west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.7.0 west update
-
Navigate to the project directory:
cd path/to/ble_beacon_project -
Build the project:
west build -b nrf54l15dk_nrf54l15_cpuapp
-
Flash to the development kit:
west flash
To modify beacon parameters, edit the following files:
src/main.c: Change UUID, Major/Minor values, advertising intervalsprj.conf: Modify BLE stack configurationboards/nrf54l15dk_nrf54l15_cpuapp.conf: Board-specific optimizations
- UUID:
6E400001-B5A3-F393-E0A9-E50E24DCCA9E - Major:
0x0001 - Minor:
0x0001 - Measured Power:
-61 dBm
- URL:
https://nordicsemi.com - TX Power:
-8 dBm
- Power on the nRF54L15DK after flashing
- The green LED will start blinking to indicate advertising
- The beacon will alternate between iBeacon and Eddystone modes every 30 seconds
- Use a BLE scanner app to detect the beacon advertisements
Enable RTT logging for detailed debug output:
west build -b nrf54l15dk_nrf54l15_cpuapp -- -DCONFIG_USE_SEGGER_RTT=yConnect with J-Link RTT Viewer or west debug to see log messages.
- iBeacon UUID: Modify
ibeacon_uuidarray insrc/main.c - Major/Minor: Update the manufacturer data in
ibeacon_adstructure - Eddystone URL: Modify the service data in
eddystone_adstructure - Advertising Interval: Adjust
adv_param.interval_min/maxvalues - Mode Switch Time: Change the timer period in
bt_ready_cb()
For battery-powered applications:
- Increase advertising intervals
- Reduce TX power
- Implement sleep modes between advertisements
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
For questions and support:
- Nordic Developer Zone: https://devzone.nordicsemi.com/
- nRF Connect SDK Documentation: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/index.html