This ESPHome External Component lets you transmit and receive data using a compatible CC2500 transceiver. Other components that depend on the CC2500 component can build on it.
This component doesn't let you send data nor interpret the received data, you need a separate component that implements the data format needed for your hardware. In debug and verbose logging mode it does log all incoming traffic on the default channel with the default settings.
The CC2500 build in temperature sensor is currently very crude implemented for ESP8266 based boards when GDO0 is connected to A0.
- ESP8266, ESP32 or other ESPHome supported microcontroller
- CC2500 transceiver module
The solderpads of the CC2500 transceiver are just a bit closer spaced than the width of a ribbon cable, you need a steady hand to solder the wires.
But I've created a Wemos mini Shield that is tested with the D1 mini and C3 mini. Contact me if you like to buy one!
CC2500 | NodeMcu V3 | Wemos D1 mini Shield V1 |
Wemos D1 mini Shield V2 |
Wemos C3 mini Shield V1 |
Wemos C3 mini Shield V2 |
---|---|---|---|---|---|
GND | G | GND | GND | GND | GND |
VDD | 3V | 3V3 | 3V3 | 3V3 | 3V3 |
SI | D7/GPIO13 | GPIO13 | GPIO13 | GPIO4 | GPIO4 |
SCLK | D5/GPIO14 | GPIO14 | GPIO14 | GPIO2 | GPIO2 |
SO | D6/GPIO12 | GPIO12 | GPIO12 | GPIO3 | GPIO3 |
GDO2 (interrupt) | D1/GPIO5 | GPIO5 | GPIO15 | GPIO10 | GPIO5 |
GDO0 (temperature) | A0 | NC | A0 | NC | GPIO0 |
CSn | D8/GPIO15 | GPIO15 | GPIO16 | GPIO5 | GPIO1 |
- cs_pin (Required): The pin to use for the chip select of the SPI bus.
- gdo0_pin (Optional): The ESP pin the CC2500 GDO0 pin is connected to. Needed for receiving the CC2500 temperature.
- gdo2_pin (Optional): The ESP pin the CC2500 GDO2 pin is connected to. Needed for receiving data.
- output_power (Optional): The output power signals should be transmitted with.
To set up this CC2500 component you first need to place a top-level SPI component which defines the pins to use.
Example YAML for Wemos C3 mini and CC2500 Shield:
esphome:
name: cc2500
external_components:
- source:
type: git
url: https://github.com/rrooggiieerr/esphome-cc2500
# ref: 0.0.3
components: [cc2500]
esp32:
board: lolin_c3_mini
variant: esp32c3
# Enable logging
logger:
level: DEBUG
# Enable Home Assistant API
api:
encryption:
key: ...
ota:
- platform: esphome
password: ...
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
CC2500 settings for Wemos D1 mini and CC2500 Shield V1.0
spi:
clk_pin: GPIO14
mosi_pin: GPIO13
miso_pin: GPIO12
cc2500:
cs_pin: GPIO15
gdo2_pin: GPIO5 # Interrupt
output_power: 0xFF
CC2500 settings for Wemos D1 mini and CC2500 Shield V2.0
spi:
clk_pin: GPIO14
mosi_pin: GPIO13
miso_pin: GPIO12
cc2500:
cs_pin: GPIO16
gdo0_pin: A0
gdo2_pin: GPIO15 # Interrupt
output_power: 0xFF
sensor:
- platform: cc2500
temperature:
name: "Temperature"
update_interval: 5s
SPI settings for Wemos C3 mini and CC2500 Shield V1.0
spi:
clk_pin: GPIO2
mosi_pin: GPIO4
miso_pin: GPIO3
cc2500:
cs_pin: GPIO5
gdo2_pin: GPIO10 # Interrupt
output_power: 0xFF
SPI settings for Wemos C3 mini and CC2500 Shield V2.0
spi:
clk_pin: GPIO2
mosi_pin: GPIO4
miso_pin: GPIO3
cc2500:
cs_pin: GPIO1
gdo0_pin: GPIO0
gdo2_pin: GPIO5 # Interrupt
output_power: 0xFF
Texas Instruments CC2500 datasheet
Tor Røttum's ESPHome IKEA Ansluta component was very helpful for making this component.
Do you enjoy using this ESPHome component? Then consider supporting my work using one of the following platforms, your donation is greatly appreciated and keeps me motivated:
If you're in need for a freelance ESP developer for your project please contact me, you can find my email address on my GitHub profile.