Codey OnlineArduino & ESP32 component library › CC1101 RF Module
CC1101 RF Module
Communication

CC1101 RF Module

The CC1101 RF Module is a low-power sub-1 GHz RF transceiver module used for wireless data communication. It is typically controlled by a microcontroller over SPI (SCK, MISO, MOSI, CSN) and can use GDO0/GDO2 as digital interrupt/status lines.

Width: 38.1 mm

Pinout — CC1101 RF Module

Pin Signal Description
CSN chip-select Active-low SPI chip select for the CC1101 transceiver.
GND ground Ground reference for the CC1101 module and SPI interface.
VCC power 3.3 V supply input for the CC1101 RF transceiver module.
GDO0 interrupt Programmable CC1101 digital output, often used as packet/IRQ signal.
SCK SCK SPI clock input from the host microcontroller.
MISO MISO SPI data output from the CC1101 to the host controller.
MOSI MOSI SPI data input to the CC1101 from the host controller.
GDO2 digital Programmable CC1101 digital output for status, sync, or interrupt functions.

Example wiring diagram — CC1101 RF Module

From To Wire
board:5V x1:VCC red
board:GND x1:GND black
board:D10 x1:CSN green
board:D2 x1:GDO0 blue
board:D13 x1:SCK yellow
board:D12 x1:MISO purple
board:D11 x1:MOSI cyan

Example Arduino code — CC1101 RF Module

This example was written and compile-checked for the arduino-uno. Codey Online adapts it to any other supported board for you.

#include <SPI.h>
#include <ELECHOUSE_CC1101_SRC_DRV.h>

const byte PIN_CC1101_CS = 10;
const byte PIN_CC1101_GDO0 = 2;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ;
  }

  pinMode(PIN_CC1101_GDO0, INPUT);

  // Configure the library to use the Uno's hardware SPI pins and our CS pin.
  ELECHOUSE_cc1101.setSpiPin(PIN_CC1101_CS, MISO, MOSI, SCK);
  ELECHOUSE_cc1101.setGDO0(PIN_CC1101_GDO0);
  ELECHOUSE_cc1101.setCCMode(1);       // Packet mode
  ELECHOUSE_cc1101.setModulation(2);   // ASK/OOK mapping in this library
  ELECHOUSE_cc1101.setMHZ(433.92);     // Common sub-GHz ISM frequency
  ELECHOUSE_cc1101.setPA(10);          // Moderate output power

  ELECHOUSE_cc1101.Init();

  Serial.println("CC1101 initialized. Listening for packets on 433.92 MHz...");
}

void loop() {
  if (ELECHOUSE_cc1101.CheckRxFifo(10)) {
    byte buffer[64];
    byte len = ELECHOUSE_cc1101.ReceiveData(buffer);

    Serial.print("Received ");
    Serial.print(len);
    Serial.print(" byte(s): ");
    for (byte i = 0; i < len; i++) {
      if (buffer[i] < 16) Serial.print('0');
      Serial.print(buffer[i], HEX);
      Serial.print(' ');
    }
    Serial.println();
  }
}

Related components

HC-05 Bluetooth

HC-05 Bluetooth

Logic Level Shifter 4-channel

Logic Level Shifter 4-channel

Logic Level Shifter 8-channel

Logic Level Shifter 8-channel

MAX485 TTL to RS485 Converter Module

MAX485 TTL to RS485 Converter Module

Build your Arduino or ESP32 project with AI

Describe what you want to build. Codey Online writes the code, draws the wiring diagram, compiles it and flashes your board straight from the browser.

Start for free