Fork me on GitHub

Project Notes

#367 nRF24/Scanner

A 2.4GHz channel scanner for the nRF24l01+ with Nokia 5110 LCD display.



I’m trying to improve the range of nRF24L01+ some modules, and searching around for advice such as the post on fixing your cheap nrf24l01+ pa/lna module.

One thing to check of course is channel congestion.

The nRF24L01+ can operate on a centre frequency from 2.400GHz to 2.525GHz in 1MHz increments. Bandwidth is less than 1MHz at 250kbps and 1Mbps, and less than 2MHz at 2Mbps.

The RF channel frequency is set by the RF_CH register: F0 = 2400 + RF_CH [MHz]. The RF24 library uses channel 76 (2.476GHz) at 1Mbps by default.

The RF24 library comes with a scanner example, which I used as the basic inspiration for this project.

I’ve modified the code somewhat and added a Nokia5110-type display.


The Arduino Uno is only rated to provide 50mA on the 3.3V rail, so I have added a separate supply using an AMS1117-3.3.

Nokia 5110 LCD Configuration

The Nokia 5110 LCD I have uses an SPI interface. I tried unsuccessfully to get the nRF24 and LCD modules to play nicely together with hardware SPI. In the end I gave up and switched to software SPI for the LCD display (using the Adafruit PCD8544 library), and hardware SPI for the nRF42.

The Nokia 5110 screen is a 48 × 84 pixels matrix LCD, driven by the Philips PCD8544.

Module Connections

Here’s the mapping from the terminology used by the 5110 and nRF24 modules and pins on an Arduino Uno.

Module Pin Usage Arduino Uno
5110 DC/CSN address line 0 3
5110 CE/SCE/SS chip enable 4
5110 RST reset 5
5110 DIN data in 6
5110 CLK clock 7
5110 VCC power 5V
5110 BL Backlight on when GND  
5110 GND Ground GND
nRF24 GND Ground GND
nRF24 3V3 3.3V supply  
nRF24 CE chip enable 8
nRF24 CSN   9
nRF24 MOSI data in 11 SPI MOSI
nRF24 MISO data out 12 SPI MISO
nRF24 SCK clock 13 SPI SCK

Scanner Sketch

The Scanner program is an extension of the RF24 scanner example. It shows the channels that present a carrier.

It currently supports two modes:

  • current - displays the latest sample
  • cummulative - displays counts since last reset

It is pretty basic, and the display is a bit cramped to fit on the LCD display. Some improvement ideas:

  • make the mode switch more instantaneous (currently only takes effect after the current scan is complete)
  • add a waterfall mode
  • add a histogram mode
  • zoom in to see individual channels in more detail

Breadboard Construction

Tested first on a breadboard:




Packaged Module Build

I decided to package the project in an enclosure:

  • with 5v and 3.3v supply rails
  • reverse polarity protection
  • it uses external power without a power switch. There probably is room to fit a 9V battery in the case, but I haven’t bothered with that right now.

The full schematic for the module is available here in EasyEDA:


I’m using some protoboard, and here’s a sketch of the basic layout:


The finished board:



In a plastic enclosure:


Here’s a quick demo..


Credits and References

Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.