Switch branches/tags
Nothing to show
Find file History

README.md

#367 nRF24/Scanner

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

Build

▶️ return to the LEAP Catalog

Notes

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.

Power

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:

Breadboard

Schematic

Scanner_breadboard_build

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:

Scanner_module_schematic

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

Scanner_protoboard_layout

The finished board:

Scanner_protoboard_front

Scanner_protoboard_rear

In a plastic enclosure:

Scanner_module_assembly

Here's a quick demo..

kV6yi0QiZwc

Credits and References