All Projects → SpaceTeddy → Cc1101

SpaceTeddy / Cc1101

driver library for Ti CC1100 / CC1101. For Arduino and Raspberry Pi

Projects that are alternatives of or similar to Cc1101

Pharothings
Live programming platform for IoT projects based on Pharo
Stars: ✭ 80 (-55.06%)
Mutual labels:  arduino, raspberry-pi
App Release
An IoT Solution,this is the android release app | download ios app in app store
Stars: ✭ 104 (-41.57%)
Mutual labels:  arduino, raspberry-pi
Bsb Lan
LAN interface for Boiler-System-Bus (BSB) and Local Process Bus (LPB) and Punkt-zu-Punkt Schnittstelle (PPS) used by Elco Thision, Brötje and similar heating systems
Stars: ✭ 83 (-53.37%)
Mutual labels:  arduino, raspberry-pi
True artificial intelligence
真AI人工智能
Stars: ✭ 38 (-78.65%)
Mutual labels:  arduino, raspberry-pi
Audio Reactive Led Strip
🎵 🌈 Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
Stars: ✭ 2,217 (+1145.51%)
Mutual labels:  arduino, raspberry-pi
Jarvis Ai
It is an AI assistant which will automate your task like it can send emails also it can control lights using raspberry pi it can inform about weather and many more features
Stars: ✭ 52 (-70.79%)
Mutual labels:  arduino, raspberry-pi
Cirnos
Bringing the workflow of Arduino to the Raspberry Pi
Stars: ✭ 101 (-43.26%)
Mutual labels:  arduino, raspberry-pi
Guislice
GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL
Stars: ✭ 534 (+200%)
Mutual labels:  arduino, raspberry-pi
Blinker Doc
blinker中文文档
Stars: ✭ 139 (-21.91%)
Mutual labels:  arduino, raspberry-pi
Delta5 race timer
Multi-node video transmitter race timer for drone racing
Stars: ✭ 129 (-27.53%)
Mutual labels:  arduino, raspberry-pi
Kotihome
Home automation system based on Arduino with sensors, Raspberry Pi, Node.js and React
Stars: ✭ 32 (-82.02%)
Mutual labels:  arduino, raspberry-pi
Make
📖📖📖📖📖 写给软件工程师看的硬件编程指南
Stars: ✭ 170 (-4.49%)
Mutual labels:  arduino, raspberry-pi
Signalbox
DCC Project
Stars: ✭ 17 (-90.45%)
Mutual labels:  arduino, raspberry-pi
Mabel
MABEL is a feature-packed, open-source, legged balancing robot based off of the Boston Dynamics Handle robot.
Stars: ✭ 72 (-59.55%)
Mutual labels:  arduino, raspberry-pi
Sitewhere
SiteWhere is an industrial strength open-source application enablement platform for the Internet of Things (IoT). It provides a multi-tenant microservice-based infrastructure that includes device/asset management, data ingestion, big-data storage, and integration through a modern, scalable architecture. SiteWhere provides REST APIs for all system functionality. SiteWhere provides SDKs for many common device platforms including Android, iOS, Arduino, and any Java-capable platform such as Raspberry Pi rapidly accelerating the speed of innovation.
Stars: ✭ 788 (+342.7%)
Mutual labels:  arduino, raspberry-pi
Arduino Robust Serial
A simple and robust serial communication protocol. It was designed for Arduino but can be used for other purposes (e.g. bluetooth, sockets). Implementation in C Arduino, C++, Python and Rust.
Stars: ✭ 83 (-53.37%)
Mutual labels:  arduino, raspberry-pi
Cylon
JavaScript framework for robotics, drones, and the Internet of Things (IoT)
Stars: ✭ 3,862 (+2069.66%)
Mutual labels:  arduino, raspberry-pi
Automated Irrigation System
This is the software of an open source automated irrigation system. The complete setup including hardware can be found in the README.
Stars: ✭ 442 (+148.31%)
Mutual labels:  arduino, raspberry-pi
Tpmgenie
TPM Genie is an I2C bus interposer for discrete Trusted Platform Modules
Stars: ✭ 124 (-30.34%)
Mutual labels:  arduino, raspberry-pi
Diozero
Java Device I/O library that is portable across Single Board Computers. Tested with Raspberry Pi, Odroid C2, BeagleBone Black, Next Thing CHIP, Asus Tinker Board and Arduinos. Supports GPIO, I2C, SPI as well as Serial communication. Also known to work with Udoo Quad.
Stars: ✭ 167 (-6.18%)
Mutual labels:  arduino, raspberry-pi

CC1101

driver library for Ti CC1100 / CC1101.
Contains Lib for Arduino and Raspberry Pi.
Note: Raspi need wiringPi

a compatible and tested library for TI MSP430 is provided by abhra0897.
https://github.com/abhra0897/msp430_cc1101_energia_v2

Donation

If you are happy with the library and you want to spend me a beer, please feel free to use the following link. ;)

https://www.paypal.me/bringmichzumschotter

Hardware connection

check cc1101_arduino.h and/or cc1101_raspi.h for Pin description

CC1101 Vdd = 3.3V CC1101 max. digital voltage level = 3.3V (not 5V tolerant)

CC1101<->Arduino

Vdd    -    3.3V
SI     -    MOSI (11)
SO     -    MISO (12)
CS     -    SS   (10)
SCLK   -    SCK  (13)
GDO2   -    GPIO ( 3)
GDO0   -    not used in this demo
GND    -    GND


CC1101<->Raspi

Vdd    -    3.3V (P1-01)
SI     -    MOSI (P1-19)
SO     -    MISO (P1-21)
CS     -    SS   (P1-24)
SCLK   -    SCK  (P1-23)
GDO2   -    GPIO (P1-22)
GDO0   -    not used in this demo
GND    -    P1-25

General description of RF packet

-> pkt_len [1byte] | rx_addr [1byte] | tx_addr [1byte] | payload data [1..60bytes]

pkt_len = count of bytes which shall transfered over air (rx_addr + tx_addr + payload data)
rx_addr = address of device, which shall receive the message (0x00 = broadcast to all devices)
tx_addr = transmitter or my address. the receiver should know who has sent a message.
payload = 1 to 60 bytes payload data.

TX Bytes example:
-> 0x06 0x03 0x01 0x00 0x01 0x02 0x03

Basic configuration

use uint8_t CC1100::begin(volatile uint8_t &My_addr) always as first configuration step. For Arduino devices, this function returns the device address, which was already stored in the Arduino EEPROM.

Device address

you should set a unique device address for the transmitter and a unique device address for the receiver. This can be done with void CC1100::set_myaddr(uint8_t addr).

i.E. -> TX = 0x01 ; RX = 0x03

Modulation modes

the following modulation modes can be set by void CC1100::set_mode(uint8_t mode). Transmitter and receiver must have the same Mode setting.

1 = GFSK_1_2_kb
2 = GFSK_38_4_kb
3 = GFSK_100_kb
4 = MSK_250_kb
5 = MSK_500_kb
6 = OOK_4_8_kb

ISM frequency band

you can set a frequency operation band by void CC1100::set_ISM(uint8_t ism_freq) to make it compatible with your hardware.

1 = 315
2 = 433
3 = 868
4 = 915

Arduino specific

CC1101 RF settings must be stored in the Arduino EEPROM to have maximum flexibility with different mode settings and reduced memory usage. Follow the following steps, how to store the compiled EEPROM file (*.eep) to your Arduino EEPROM. From my experience, you have to repeat this step only, if you have changed the Arduino Version, because the gcc compiler defines the location of the eeprom settings.

  • compile the tx_demo or rx_demo example sketch
  • remember the path of your compiled output data (Arduino *.hex file and *.eep file)
  • use the python eeprom_create.py to generate the eeprom array for the eeprom_write.ino This is needed because the compiler can choose the EEPROM position by its own.
  • usage: ./eeprom_create.py <input *.eep file>
  • you get an output file with like *.array
  • open that file and copy the array content into the eeprom_write.ino sketch at the correct position
  • compile the eeprom_write.ino sketch
  • upload into to your connected arduino hardware
  • open the Arduino Serial console, set the baudrate to 38400 and restart your arduino hardware
  • type the character w to the input field and press the sent button
  • wait till eeprom is written
  • sent r to verify that eeprom is written.
  • if your EEPROM data is written correct, you can compile and upload the RX_Demo or TX_Demo sketch to that hardware

Raspberry Pi

How to compile Raspi Demo files

be sure first, that you have already wiringPi installed on your Raspberry Pi hardware.

copy RX_Demo.cpp, TX_Demo.cpp, cc1100_raspi.cpp, cc1100_raspi.h in the same directory and compile:

RX_Demo.cpp

sudo g++ -lwiringPi RX_Demo.cpp cc1100_raspi.cpp -o RX_Demo
sudo chmod 755 RX_Demo

TX_Demo.cpp

sudo g++ -lwiringPi TX_Demo.cpp cc1100_raspi.cpp -o TX_Demo
sudo chmod 755 TX_Demo

Command Line parameters

TX_Demo:

CC1100 SW [-h] [-V] [-a My_Addr] [-r RxDemo_Addr] [-i Msg_Interval] [-t tx_retries] [-c channel] [-f frequency]
          [-m modulation]

  -h              			print this help and exit
  -V              			print version and exit
  -v              			set verbose flag
  -a my address [1-255] 		set my address
  -r rx address [1-255] 	  	set RxDemo receiver address
  -i interval ms[1-6000] 	  	sets message interval timing
  -t tx_retries [0-255] 	  	sets message send retries
  -c channel    [1-255] 		set transmit channel
  -f frequency  [315,434,868,915]  	set ISM band
  -m modulation [1,38,100,250,500,4]	set modulation

Example,

sudo ./TX_Demo -v -a1 -r3 -i1000 -t5 -c1 -f434 -m100

RX_Demo:

CC1100 SW [-h] [-V] [-v] [-a My_Addr] [-c channel] [-f frequency] [-m modulation]
-h              			print this help and exit
-V              			print version and exit
-v              			set verbose flag
-a my address [1-255] 		set my address
-c channel    [1-255] 		set transmit channel
-f frequency  [315,434,868,915]  	set ISM band
-m modulation [1,38,100,250,500,4]	set modulation

Example,

sudo ./RX_Demo -v -a3 -c1 -f434 -m100
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].