Out Of Stock
Description
A radio module (receiver and transmitter) operating in the frequency range of 433 MHz, with the SPI communication interface. Powered with a voltage of 1.8 V - 3.6 V.Transmission distance: 300 - 500 meters (Depending on the specific situation of the environment and communication baud rate, etc.) The device has an external antenna that is connected to the SMA connector, the signals get transmitted and received on the goldin pin connectors.
Specification
- Supply voltage: 1.8 V to 3.6 V
- Frequency: adjustable from 387 MHz to 464 MHz
- Maximum momentary current consumption: up to 30 mA
- Transmission distance: 200 meters
- Maximum transmission power: 10 mW (10 dBm)
- Support for the modulation of 2-FSK, GFSK, MSK
- Receiver sensitivity: 110 dBm 1200 baud
- Minimum operating range: 1.2 kbps to 500 kbps
- Separate 64-byte RX and TX (FIFO) buffer
- Built-in CRC error detection
- Low current consumption: for RX - 15.6 mA, 2.4 kbps, 433MHz
- Programmable control of output power: not more than 10 dBm for all frequencies
- Dimensions: 50 x 27 x 9 mm
- Weight: 13 g
Included
- The wireless CC1101 module
- External FZ0223 antenna
Pins
The system has soldered SMA goldin pin connectors - a pitch of 2.54 mm. The description of the pins is presented in the array:
Pin | Description |
---|---|
Vcc | The supply voltage is 3.3 V. |
SI |
MOSI pin, the data line of the SPI bus. It works with a voltage of 3.3 V, in the case of the use of boards of 5 V, for example, Arduino Uno you must use a voltage converter. |
SO |
MISO pin, data line of the SPI bus it works with a voltage of 3.3 V, in case of using the board of 5 V, for example, Arduino Uno, you must use a voltage converter |
CS | Chip select - the selection of a device of the SPI bus |
GND | The ground of the system. |
CCS |
Clock line of the SPI bus. It works with a voltage of 3.3 V, in the case of the use of 5 V boards, for example, Arduino Uno, you must use a voltage converter. |
GDO2 | output, it can be left not connected. |
GDO0 | output, it can be left not connected. |
with this Module, we can Adjust the frequency (from 315 to 915), the modulation (Ask, fsk, etc), and tons of other parameters.
You can use smartRF (optional) to dive into parameters.
First, let's start with the pins of the cc1101.
This is How to connect Wireless Cc1101 Transceiver 433MHz Module with the Arduino:
To use the CC1101, you will need the panstamp library here.
Note that it will also work with the elechouse library here.
Arduino Sending and Transmitting Code for Wireless Cc1101 Transceiver 433MHz Module :
#include "EEPROM.h" #include "cc1101.h" CC1101 cc1101; // The LED is wired to the Arduino Output 4 (physical panStamp pin 19) #define LEDOUTPUT 7 // counter to get increment in each loop byte counter; byte b; //byte syncWord = 199; byte syncWord[2] = {199, 0}; void blinker(){ digitalWrite(LEDOUTPUT, HIGH); delay(100); digitalWrite(LEDOUTPUT, LOW); delay(100); } void setup() { Serial.begin(38400); Serial.println("start"); // setup the blinker output pinMode(LEDOUTPUT, OUTPUT); digitalWrite(LEDOUTPUT, LOW); // blink once to signal the setup blinker(); // reset the counter counter=0; Serial.println("initializing..."); // initialize the RF Chip cc1101.init(); //cc1101.setSyncWord(&syncWord, false); cc1101.setSyncWord(syncWord, false); cc1101.setCarrierFreq(CFREQ_433); cc1101.disableAddressCheck(); //cc1101.setTxPowerAmp(PA_LowPower); delay(1000); Serial.print("CC1101_PARTNUM "); //cc1101=0 Serial.println(cc1101.readReg(CC1101_PARTNUM, CC1101_STATUS_REGISTER)); Serial.print("CC1101_VERSION "); //cc1101=4 Serial.println(cc1101.readReg(CC1101_VERSION, CC1101_STATUS_REGISTER)); Serial.print("CC1101_MARCSTATE "); Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f); Serial.println("device initialized"); //Serial.println("done"); } void send_data() { CCPACKET data; data.length=10; byte blinkCount=counter++; data.data[0]=5; data.data[1]=blinkCount;data.data[2]=0; data.data[3]=1;data.data[4]=0; //cc1101.flushTxFifo (); Serial.print("CC1101_MARCSTATE "); Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f); if(cc1101.sendData(data)){ Serial.print(blinkCount,HEX); Serial.println(" sent ok :)"); blinker(); }else{ Serial.println("sent failed :("); blinker(); blinker(); } } void loop() { send_data(); delay(4000); }
Arduino Receiving Code for Wireless Cc1101 Transceiver 433MHz Module :
#include "EEPROM.h" #include "cc1101.h" // The LED is wired to the Arduino Output 4 (physical panStamp pin 19) #define LEDOUTPUT 4 // The connection to the hardware chip CC1101 the RF Chip CC1101 cc1101; byte b; byte i; byte syncWord = 199; long counter=0; byte chan=0; // a flag that a wireless packet has been received boolean packetAvailable = false; void blinker(){ digitalWrite(LEDOUTPUT, HIGH); delay(100); digitalWrite(LEDOUTPUT, LOW); delay(100); } /* Handle interrupt from CC1101 (INT0) gdo0 on pin2 */ void cc1101signalsInterrupt(void){ // set the flag that a package is available packetAvailable = true; } void setup() { Serial.begin(38400); Serial.println("start"); // setup the blinker output pinMode(LEDOUTPUT, OUTPUT); digitalWrite(LEDOUTPUT, LOW); // blink once to signal the setup blinker(); // initialize the RF Chip cc1101.init(); cc1101.setSyncWord(&syncWord, false); cc1101.setCarrierFreq(CFREQ_433); cc1101.disableAddressCheck(); //if not specified, will only display "packet received" //cc1101.setTxPowerAmp(PA_LowPower); Serial.print("CC1101_PARTNUM "); //cc1101=0 Serial.println(cc1101.readReg(CC1101_PARTNUM, CC1101_STATUS_REGISTER)); Serial.print("CC1101_VERSION "); //cc1101=4 Serial.println(cc1101.readReg(CC1101_VERSION, CC1101_STATUS_REGISTER)); Serial.print("CC1101_MARCSTATE "); Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f); attachInterrupt(0, cc1101signalsInterrupt, FALLING); Serial.println("device initialized"); } void ReadLQI() { byte lqi=0; byte value=0; lqi=(cc1101.readReg(CC1101_LQI, CC1101_STATUS_REGISTER)); value = 0x3F - (lqi & 0x3F); Serial.print("CC1101_LQI "); Serial.println(value); } void ReadRSSI() { byte rssi=0; byte value=0; rssi=(cc1101.readReg(CC1101_RSSI, CC1101_STATUS_REGISTER)); if (rssi >= 128) { value = 255 - rssi; value /= 2; value += 74; } else { value = rssi/2; value += 74; } Serial.print("CC1101_RSSI "); Serial.println(value); } void loop() { if(packetAvailable){ Serial.println("packet received"); // Disable wireless reception interrupt detachInterrupt(0); ReadRSSI(); ReadLQI(); // clear the flag packetAvailable = false; CCPACKET packet; if(cc1101.receiveData(&packet) > 0){ if(!packet.crc_ok) { Serial.println("crc not ok"); } if(packet.length > 0){ Serial.print("packet: len "); Serial.print(packet.length); Serial.print(" data: "); for(int j=0; j