SDR Programming
cc1101%20module%202-1000x500.png
cc1101%20module%201-1000x500.png

Product sheet + Datasheet links


Pinouts

VCC +-----+ VCC
 SI +     + SCK
 SO +     + GD2
CSN +     + GD0
GND +-----+ GND
Pin Label Description
VCC DVDD 1.8 - 3.6 V digital power supply for digital I/O’s and for the digital core voltage regulator
SI Serial configuration interface, data input
SO Serial configuration interface, data output

Optional general output pin when CSn is high
CSN Serial configuration interface, chip select
SCK SCLK Serial configuration interface, clock input
GD2 Digital output pin for general use:
* Test signals
* FIFO status signals
* Clear channel indicator
* Clock output, down-divided from XOSC
* Serial output RX data
GD0 Digital output pin for general use:
* Test signals
* FIFO status signals
* Clear channel indicator
* Clock output, down-divided from XOSC
* Serial output RX data
* Serial input TX data
Also used as analog test I/O for prototype/production testing
GND Ground connection for digital noise isolation

Source: Page 21 of TI CC1101 datasheet
See also: Page 66 29 Configuration Registers

Wiring the CC1101 1GHz LSS Low Power, SPI interface, Spring Coil Transceiver

https://www.14core.com/wiring-the-cc1101-1ghz-lss-low-power-spi-interface-spring-coil-transceiver-3052-2/


Libraries


CC1101

https://github.com/SpaceTeddy/CC1101

  • driver library for Ti CC1100 / CC1101.
  • Contains Lib for Arduino and Raspberry Pi.

Note: Raspi need wiringPi

arduino-cc1101

https://github.com/veonik/arduino-cc1101

This is an Arduino library for interfacing with CC1101 transceivers.

This project is a fork of the panStamp arduino_avr project, with only the minimum requirements to interface with CC1101 transceivers.

mCC1101

https://github.com/pkarsy/mCC1101

An Arduino library for TI CC1101, a very capable and flexible sub GHz transceiver.

It is based on Panstamp library and has the same license : LGPLv3 or later.

It has many simplifications and some additions, compared to the original panStamp library. However an Arduino board using mCC1101 can communicate without problems with a module using the Panstamp library.

arduinoPAGERcc1101 (Ben Biles)

https://github.com/benbiles/arduinoPAGERcc1101
Ben has 5 videos about this.

A Arduino UNO 80 character pager project with 80 character screen using cc1101 RF module to transmit message.

wiring up the RF module. Generally the CC1101 RF modules are 3.3v NOT 5V so logic level translator is needed with arduino UNO

I got wiring info here:
http://labalec.fr/erwan/?p=497

CCS:TI CC1101

https://www.ccsinfo.com/forum/viewtopic.php?t=54957

It's finally here, tested code to use the CC1101 wireless transceiver, adapted for CCS compiler.
Now we can use those cheap yet powerful modules from ebay (search for CC1101 and suitable frequency allowed in your country).
The frequency in the example is tuned to 433.92MHz and 1.2Kbaud (optimal range, compromise on data rate and power consumption).
I achieved >100m range in town, not quite breathtaking but definitely good value for money…
To change the settings I suggest to use SmartRF Studio, then Export Registers in HAL format, copy & paste into the code. You can also consult the CC1101 data sheet tables on section 4.2 RF Receive Section for other settings.

The code is based on several examples put together. SPI is done in software which gives more pin flexibility (I always end up unhappy with the built-in HW so I directly turned to SW).
The Main section is very straightforward. Program one module with the TX loop and one with the RX loop. The packet is 10 bytes (0x10 to 0x19).
The watchdog timer in the receiver will reset every 2 seconds approx. if no packet is received (longer flash) and every 1 second for every packet correctly received (short flash).
TIP: Use a strong LED if you go outdoors Very Happy


Wikis


CC1101

https://www.electrodragon.com/w/CC1101

433MHz RF Transceiver CC1101 Module

https://www.elecrow.com/wiki/index.php?title=433MHz_RF_Transceiver_CC1101_Module

Blog Articles

2FSK vs 4FSK

Difference between 2FSK modulation and 4FSK modulation
http://www.rfwireless-world.com/Terminology/2FSK-modulation-vs-4FSK-modulation.html

2FSK
Symbol Input Coding
0 carrier-deviation(some offset)
1 carrier+deviation
4FSK
Symbol Input Coding (carrier+Δf value used to map input dibits)
01 carrier-deviation
00 carrier-(1/3)*deviation
10 carrier+(1/3)*deviation
11 carrier+deviation

Hacking garage door remote controllers – notes and ramblings

https://v3gard.com/2014/12/hacking-garage-door-remote-controllers/

CC1101 RSSI and LQI Test - ElectroDragon

https://www.electrodragon.com/cc1101-rssi-and-lqi-test/

CC1101 Archives - tronixstuff

https://tronixstuff.com/tag/cc1101/


Videos


Tutorials

Conferences (Samy Kamkar)

Radio Hacking: Cars, Hardware, and more! - Samy Kamkar - AppSec California 2016
by OWASP - Published on Mar 21, 2016
51:12

DEF CON 23 - Samy Kamkar - Drive it like you Hacked it: New Attacks and Tools to Wireles
by DEFCONConference - Published on Dec 2, 2015
45:31

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License