The nRF54L15 is one of the most capable wireless SoCs available today with little, almost no documentation... Despite this, I decided to dive in with the available resources and Zephyr OS with no prior skill in RTOS Development. I built this project to explore its full potential: BLE 6.0, PDM microphone, and IMU running simultaneously on Zephyr RTOS, combined with a custom LoRa P2P link for long-range data transmission without any cloud dependency. Completely Peer-to-Peer to another SoC (ESP32-S3) sending Data through licence free frequency-bands.
The system consists of two nodes: the nRF54L15 Sense (SeeedStudio Board) as the sensor node, and an ESP32-S3 as the LoRa receiver hub. The sensor node streams IMU and FFT audio data over BLE to a Web UI, while simultaneously transmitting (IMU) vibration data over AES-128 encrypted LoRa P2P at 868 MHz.
The Web UI visualizes live accelerometer data, a real-time FFT spectrum with waterfall display on the Sender Node (nRF54L15). On the Receiver Side there is a 2D/3D vibration density map, and configurable alert thresholds for RMS and Battery Voltage.
The main challenge was getting PDM audio, IMU, BLE and LoRa running concurrently on Zephyr with stable throughput something I found little prior documentation for. The OLED display can be configured to show either a live PDM Audio FFT or an IMU dashboard, controllable via POST/GET on the Web UI. One hardware quirk worth mentioning: the SeeedStudio Sense version has an unpopulated resistor that physically disconnects the internal I2C bus from the SoC. This meant the OLED could not be driven via hardware I2C. The solution was bit-banging I2C in software via Zephyr's GPIO driver, which worked but required more CPU usage and is still a little bit laggy in addition of maintaining stable throughput alongside BLE and LoRa.









_SPmZ63wPgQ.png?auto=compress%2Cformat&w=40&h=40&fit=fillmax&bg=fff&dpr=2)
Comments