HomeExperience SharingWireless Communication

CC1101 vs nRF24L01: Which RF Module to Choose?

Read in 13.32 mintues

Wireless modules are everywhere, from home automation to industrial automation and amateur electronics. The CC1101 and the nRF24L01 are two of the most commonly used low-power RF modules. Even though both of them enable the microcontrollers to transmit and receive data wirelessly, they serve entirely different purposes.

Fly-Wing Tech has various RF modules, and in this article, we will discuss two different types of RF modules, CC1101 and nRF24L01, and their features and use cases.

What is the CC1101?

CC1101 is a sub-GHz RF transceiver whose wireless system needs a high range of communication and low energy consumption. It operates in the lower sections of the ISM – 315 MHz, 433 MHz, 868 MHz, and 915 MHz with excellent obstacle penetration and low path loss compared to 2.4GHz. A connection can be simply adjusted for either maximum range or the minimum power expended by the battery. This flexibility comes from the CC1101’s modulation techniques, commonly implemented using modules like CC1101RGPR.

CC1101 Pinout

Pins Functions
GND Ground
VCC Input power ranges from 1.8–3.6V
MOSI Data Input of SPI (Serial Peripheral Interface)
MISO Data Output of SPI
CSN Chip Select
SCK SPI clock
GD00 / GD02 General digital outputs for interrupts or status
GD00 / GD02 Shows transmission, reception, sync

CC1101 Wiring Diagram

Wiring Diagram CC1101
#include <ELECHOUSE_CC1101_SRC_DRV.h>

void setup() {
  Serial.begin(9600);
  ELECHOUSE_cc1101.Init();
  ELECHOUSE_cc1101.setMHZ(433); 
}

void loop() {
  const char msg[] = "Hello CC1101";
  ELECHOUSE_cc1101.SendData(msg, sizeof(msg));
  delay(500);
}
CC1101RGPR sub-1 GHz RF transceiver IC – features, specifications, and technical support by Flywing

What is the nRF24L01?

The nRF24L01 is a 2.4 GHz RF transceiver that Nordic Semiconductor developed to be used in short and medium-range communication systems.

Read more: Nordic Semiconductor nRF24L01P-R-RF

The module is effective for systems that require high speed, responsiveness, and efficiency of energy consumption. It runs on the international 2.4 GHz ISM band and thus provides high data rates when compared to sub-GHz modules and could send small packets nearly immediately; therefore, it is applicable to real-time systems. The module has inbuilt features such as automatic acknowledgement, automatic retransmission of packets, and data pipes management, and thus devices are capable of exchanging information with high reliability without the need to manually work in code.

Though nRF24L01 is not as good as sub-GHz modules with regard to raw distance and wall penetration, its performance, speed, and ease of use render it among the most favoured 2.4 GHz wireless modules in hobbyist as well as small-scale commercial applications.

nRF24L01 Pinout

The standard nRF24L01 module contains eight pins that are available on one side of the PCB. It has a communication based on SPI, and only power, control, and data transfer pins. Each pin has a clear purpose as explained in the table below:

Pins Function
VCC 3.3V power supply to the module
GND Ground reference for power and signals
CSN SPI chip-select line used to start communication
SCK SPI clock input controlled by the microcontroller
CE Turn on the module’s transmit or receive mode
MOSI SPI data input (microcontroller → module)
MISO SPI data output (module → microcontroller)
IRQ Interrupt line to signal events like received data

nRF24L01 Wiring Diagram

nRF24l01 Wiring diagram
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8);
const byte address[6] = "00001";

void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_LOW);
  radio.stopListening();
}

void loop() {
  const char msg[] = "Hello NRF";
  radio.write(&msg, sizeof(msg));
  delay(500);
}

CC1101 vs nRF24L01: Detailed Comparison

Frequency

The CC1101 uses sub-GHz ISM /SRD frequencies – 315 MHz, 433 MHz, 868 MHz and 915 MHz. It can be programmed to work in broader factors: 300-348 MHz, 387-464 MHz, and 779-928 MHz. 

The nRF24L01 (also known as the nRF24L01+) operates at 2.4 GHz (2.400-2.4835 GHz) in the world. 

Implication: CC1101 has a lower frequency, which implies it penetrates walls/obstacles better than nRF24L01 and has higher range potential, but nRF24L01 has greater bandwidth and is more vulnerable to interference and has less ability to penetrate the barriers.

Application

The CC1101 wireless chip supports ultra-low-power wireless sensor networks, industrial monitoring, metering, home/building automation, and communication systems in ISM/SRD bands. 

The nRF24L01, on the other hand, is the best choice for fast-data, short/medium range wireless links: among game controllers, PC peripherals, remote controls, home automation, toys, sensors and RF asset tracking. 

For industrial automation, large-scale IoT deployment, and higher RF applications, modules like Digi XBee 3 2.4GHz RF transceiver module will provide secure communication and long-term industrial reliability. 
Similarly, a common choice for BLE-enabled IoT products is Microchip RN4871 BLE RF transceiver module, which supports fast prototyping.

Distance Range

The sensitivity figures (-116 dBm at 0.6 kBaud in 433 MHz) provided by the CC1101 point to its capability for long range.

The nRF24L01 is normally around 50-100 meters in range for standard hobby usage with the typical on-board antenna. In comparison, open space/PA-LNA variants might offer up to several hundred meters (or even more). One account, for instance, says “If used in open space and with lower baud rate its range can reach up to 100 meters.”

Interpretation: The CC1101 offers a distinct advantage in terms of raw range and penetration (sub-GHz). The nRF24L01 can still cover considerable distances, but is more prone to the effects of the environment, obstacles, and interference.

Data Rate

The CC1101 transceiver is capable of operating at a range of data rates from 0.6 kbps to 600 kbps (0.6 kb/s to 600 kb/s). 

As per the specifications, nRF24L01 can deliver air data rates of 250 kbps, 1 Mbps, and 2 Mbps. 

Inference: nRF24L01 undoubtedly provides higher data throughput, which is an advantage in applications with more frequent or bulk data transfers. While CC1101 sacrifices speed for longer range and low power operation.

Power Consumption

CC1101: The RX current is about 14.7 mA (1.2 kBaud at 868 MHz), while the TX current for a +12 dBm output is between 30-35 mA, depending on the voltage and other factors. The 200 nA sleep current is considered the maximum for the sleep mode.

nRF24L01: The output power for the typical TX current is around 11.3 mA at zero dBm, and RX is around 12.3 mA at 2 Mbps, with the power-down modes consuming less than a microamp (900 nA) and standby drawing around 22 µA.

Furthermore, engineers may also choose the Silicon Labs MGM111A256V2 multi-protocol RF transceiver module for compact and low-power IoT designs.

Summary: Current draw is still low in both designs; however, the nRF24L01 is the one that consumes less power during the active TX/RX phase at moderate power levels, although in a higher-frequency band. The ultra-low-power sensor application where infrequent updates are required justifies CC1101’s deep-sleep and sub-GHz advantages.

Microcontroller Compatibility

CC1101: More configuration is needed (register setup for modulation, frequency, packet handling), and it is usually a more custom and optimized low-power application. 

nRF24L01: Libraries are available everywhere, packet handling is done automatically (Enhanced ShockBurst™), making the integration of the module easier for hobbyists and prototyping. 

Conclusion: If you know RF settings and low-power design, CC1101 is the one that gives the most freedom. If you are looking for a fast setup with lots of libraries/support, nRF24L01 is the one that wins in integration ease.

Antenna Design

CC1101: Due to the use of sub-GHz frequencies, the antenna size is usually the larger one (for instance, quarter-wave lengths ~170 mm for 433 MHz), and the layout of the board and the matching network become very important. TI has provided antenna matching and PCB layout guidelines in its datasheet. 

nRF24L01: It is working at the frequency of 2.4 GHz, which means the design of antennas is less bulky (quarter-wave ~31 mm), and numerous devices are equipped with either a trace antenna on the PCB or a little whip antenna. Nonetheless, the frequency band of 2.4 GHz is much more packed than the other one, and the positioning of the antenna as well as the surrounding matter a lot. 

Tip: A module cannot perform well without a good antenna design. Proper impedance matching, ground plane, and clearance are essential. Sub-GHz modules like the CC1101 are less affected by obstacles, while 2.4 GHz modules like the nRF24L01 can lose a lot of range if the antenna or PCB layout is poor.

Comparision Table

Feature CC1101 nRF24L01
Frequency 315/433/868/915 MHz (sub-GHz) 2.400–2.4835 GHz (2.4 GHz ISM)
Applications Metering automation, long-range sensors Short/medium range wireless links, remotes
Distance Range 100 m to km (with good antenna & sub-GHz band) 10 m to 100 m (open space)
Data Rate 0.6 kbps – 600 kbps 250 kbps, 1 Mbps, 2 Mbps
Microcontroller Compatibility SPI interface with deeper configuration required SPI interface with multiple libraries and easy setup
Antenna Design Sub-GHz; larger antenna, better obstacle penetration 2.4 GHz; smaller antenna, higher interference risk

Pros and Cons of CC1101 and nRF24L01

CC1101

Pros Cons
Has low sleep current and quick wake-up time Sensitive to power noise, creating issues like poor reception, etc.
Designed for low battery-powered applications. Not ideal to send large amounts of data.
It can receive weak signals as it is sensitive at low data rates Range and reliability depend on its antenna; thus, poorly tuned antennas can affect the signal transmission
Avoid data collision by checking the free channels before data transmission Waking up from sleep mode can add overhead, making it not reliable for ultra-low latency systems.

nRF24L01

Pros Cons
Works in the same band as Wi-Fi and Bluetooth Range drops often in busy or crowded environments
Great for fast and short data packet transmission Has a smaller payload, so it is challenging to send larger data packets
Uses less power at higher data rates It is not a suitable choice for a larger mesh network

Troubleshooting Guide

CC1101 Common Issue

Power Stability

The CC1101 is very sensitive to supply noise and voltage ripple. Thus, to ensure stable and clean operation, you need to use a clean, regulated 3.3V power supply. 

Antenna Tuning and Orientation

Most CC1101 range issues come from incorrect or poorly tuned antennas.

To fix this, you need to use a quarter-wave antenna for your frequency. Also, you need to keep the antenna vertical and away from metal. 

nRF24L01 Troubleshooting

Power Sensitivity

During transmission, the nRF24L01 module is power sensitive, meaning it draws fast current spikes, and the microcontroller’s 3.3V regulator is not enough. This causes packet loss, voltage drops, random freezes and also no acknowledgement errors. 

Solution: 

To fix this error, you need to add decoupling capacitors: 0.1 μF ceramic and 10 μF electrolytics directly across the nRF25L01 Vcc-Gnd pins.

Also, do not power the  PA+ LNA version from Arduino’s 3.3V pin. It is because Arunino’s regulator supplies only ~50 mA while the high power modules draw 100-250 mA. 

For this, you need to use a separate 3.3V LDO regulator with a shared ground.

RF Interference and Channel Congestion

The 2.4 GHz band is a crowded band, and poor channel selection can severely reduce the range.

Solution

To improve this RF performance:

  • You need to test multiple nRF channels, avoiding Wi-Fi overlap. 
  • Need to adjust antenna placement by maintaining at least 1-1.15cm clearance from cables, batteries, and PCBs. 

If the module still performs poorly, try to add the ground plane beneath the module. Shield the noisy components using copper tape or a small RF shield. 

nRF24L01 vs nRF24L01+ 

Parameter / Feature nRF24L01 nRF24L01+
Air data rates supported 1 Mbps, 2 Mbps 250 kbps, 1 Mbps, 2 Mbps
Baseband / Link-layer protocol Uses Enhanced ShockBurst™ for packet handling, auto acknowledge and retransmit. Also uses Enhanced ShockBurst™, with the same packet handling, auto-ack & retransmit support.
Transmit current (at 0 dBm) ~ 11.3 mA ~ 11.3 mA
Receive current (at 2 Mbps) ~ 12.3 mA ~ 13.5 mA
Power-down / Standby current Idle: ~ 22 µA (Standby-I), ~ 900 nA (power-down) Idle: ~ 26 µA (Standby-I), ~ 900 nA (power-down)
Supply voltage range 1.9 V – 3.6 V 1.9 V – 3.6 V (on-chip voltage regulator)

CC1101 vs CC1352/CC1350

CC1352 and CC1350 are the modern successors of CC1101 that can combine both sub-GHz and 2.4 GHz in a single product. As compared to CC1101: 

  • CC1350/1352 contains the ARM Cortex, so there is no need for an external MCU in power IoT devices.
  • They have a better RF front-end design, which provides improved receiver sensitivity and ultra-low power standby modes.
  • They are a better choice for modern dual-band IoT products that require long-range communication with 2.4GHz connectivity in a single device.

Real Test Comparison

To provide a more practical, real-world comparison, both modules were tested under identical conditions.

For example, let’s check the test condition below:

Open field environment with controller Arduino Uno. A simple “Hello World” data packet was sent every 1000ms.

Modules: CC1101 and NRF24L01 

Distance Test: CC1101 had stable data up to 300m, whereas NRF24L01 has stable data up to 50-60m. CC1101 has a lesser packet loss from 0-10% whereas nRF24L01 has a greater packet loss that fails after 100m. 

The test shows CC1101 performs better in terms of range and reliability compared to nRF24L01.

When to Choose CC1101 vs nRF24L01?

Consider the CC1101 module when:

  • You need ultra-low power Operation, and thus the battery life is a priority.
  • You require long-range communication that could go from meters to several kilometres.
  • Your system operates in sub-GHz frequency, and you want them with low path loss.
  • You need flexible modulation options, including GFSK, OOK, MSK and 2-FSK.

Consider the nRF24L01 module when:

  • You need faster data transmission  (1-2 Mbps) for short distances (10-60 meters).
  • Your project requires low latency for a real-time control system.
  • You want a simple library with a quick prototype, along with fast development.
  •  You need built-in auto-ack (automatic acknowledgement) and multi-channel – multi-point to single-point communication.

Conclusion

Thus, both modules have their strengths and weaknesses, and the right choice depends on the project’s needs. If you need help choosing the right module or designing your next wireless project, FlyWing Tech is here to guide you. 

FAQs

What is the function of the CC1101 in the Flipper Zero?

The CC1101 on the Flipper Zero is a small radio chip that transceives sub-GHz signals. This helps the flipper zero to work with things like wireless sensors, remotes, etc. And with the help of Flipper Zero, you can simply plug-and-play through the expansion port and help add custom hardware through GPIO pins.

Does the CC1101 work with Arduino or ESP32?

CC1101 works with both Arduino and ESP32. These devices make communication through SPI and the available libraries, which allow communication with RF modules and other wireless systems. 

Can nRF24L01 transmit audio and video?

No, nRF24L01 cannot transmit audio and video signals. It is because of its limited data rates. The module is a low-power transceiver that sends small data packets and is not suitable for sending higher bandwidth data like video and audio.

Is CC1101 better than nRF24L01?

The best choice between CC1101 and nRF24L01 depends on the use case scenario, like the communication range, frequency and the requirements of the project. CC1101 is a good choice for long-range communication, while nRF24L01 is good for short-range and high-speed applications.

Why does my nRF24L01 stop responding after a minute?

This happens because of the instability of the 3.3V power. The module freezes when the Arduino can’t supply enough current, there’s no capacitor, or the wires are too long. Thus, in order to address this issue, adding a 0.1µF + 10µF capacitor and using a stable 3.3V regulator can help. 

How can I improve the CC1101 range without increasing transmit power?

To improve the range of CC1101 without increasing transmit power, you can use a proper quarter-wave antenna, lower the data rate, narrow the bandwidth, improve grounding, and reduce interference. These help to boost sensitivity and range without raising output power.

References:

RF transceiver integrated circuits used for wireless data transmission and reception in communication and embedded applications, available from Flywing.