Cc1101 esp32 transmit_raw

I have a CC1101 connected to a ESP32 (DOIT devboard).

I have working arduino IDE code that uses radiolib (7.x) for this to send raw pulse coded to switch a light on/off. I saw official support for cc1101 and would like get this in existing esphome on home assistant.

Looked though the documentation and the code below should work, but doesn’t. Getting this in the logs:

[15:38:33.336][D][button:022]: 'ligth_light_toggle' Pressed.
[15:38:33.389][W][cc1101:254]: Timed out waiting for TX state!

This is wiring (that works with arduino IDE code) cc1101 board to esp32:
Vcc: pin 1 3V3
GND: pin 2 GND
mosi_pin: GPIO23
sclk_pin: GPIO18
miso_pin (GDO1): GPIO19
GDO2_pin: GPIO21
GDO0_pin: GPIO16
csn_pin: GPIO22

Does anybode know what i am doing wrong or how to get ths working?

## cc1101 light
substitutions:
  device_name: light

esphome:
  name: ${device_name}

esp32:
  board: esp32dev
  framework:
    type: arduino

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Enable logging
logger:
  level: VERBOSE

# Enable Home Assistant API
api:


ota:
  platform: esphome

spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23
  miso_pin: GPIO19

cc1101:
  id: light
  cs_pin: GPIO22
  frequency: 433.92MHz

remote_transmitter:
  pin: GPIO16 # Must match GDO0
  carrier_duty_percent: 100%
  on_transmit:
    then:
      - cc1101.begin_tx
  on_complete:
    then:
      - cc1101.begin_rx

remote_receiver:
  pin: GPIO21 # Must match GDO2
  dump: all

button:
  - platform: template
    name: "light_light_toggle"
    on_press:
      then:
        - remote_transmitter.transmit_raw:
            code: [
              350, -350, .... <<SNIP>>
            ]

New component and haven’t tested yet. I don’t see any error comparing to docs.
Double check your wiring, especially GDO0

I have working Arduino IDE code that has same wiring, so that should be ok.

Yes it should.
Against the docs, what happens if you add

gdo0_pin: GPIO16

to cc1101: component?

Then you get validation error:
Pin 16 is used in multiple places.

Like expected…

So your hardware setup is 100% same with the working arduino one? Including power supply etc…

Have you tried it with the esp-idf framework? Would be my first choice for all new ESP32 projects.

1 Like

Just tried the same config as you, same pins and worked perfectly for me, could drive my RF blinds up/down/stop using RAW transmit. I’m also seeing random receive data as well. Only difference is I’m using ESP-IDF framework.

Mmmm. I upgraded to 2025.12.1 this morning. (there was a something about frequency for the cc1101 in the update). And now it works. So still Arduino framework.

So that probably did the trick then.

1 Like

Have you tried ESPHome 2025.12.2? It killed mine, it is Lilygo T Internet POE board that I use Ethernet and as a BLE proxy. Completely broke it, no Ethernet, no logging, just wondered if anyone else has success or just me? Works fine on 2025.12.1. I’ll raise an issue on GitHub after the holidays.

Just upgraded to 2025.12.2. Still works fine. If yours worked on 2025.12.1, but not on 2025.12.2 it’s probably has something to do with default values bugfix in 2025.12.2:

Problem @EBME2 posted might come from other components like ethernet…