20 releases
0.6.5 | Oct 17, 2022 |
---|---|
0.6.4 | Oct 7, 2022 |
0.6.2 | Aug 30, 2022 |
0.5.2 | Aug 29, 2022 |
0.4.10 | Aug 25, 2022 |
#37 in #radio
85 downloads per month
29KB
528 lines
ArmLabCC1200
Libraries for interfacring with Armstrong Labs CC1200 based radios
Download with crates.io
https://crates.io/crates/ArmlabRadio
Purpose
ArmLabCC1200 contains a set of libraries for interfacing with STM32 controlled CC1200 radios. An STM32 wired to a CC1200 chip, and flashed with the following code will be able to be controlled by
- any linux device over I2C
- any device over serial
Whats Available
- Rust source code to interface with the device over I2C on linux (radio_i2c.rs)
- Rust source code to interface with the device over serial (radio_serial.rs)
- Library published on crates.io
- stm32 source code
- custom stm32 board schematic
- Commands to change basic radio settings
- interactive command line example
cargo run --example terminal
cargo run --features i2clib --example terminal
- continuous rx/tx (serial only) example
cargo run --example beacon
- Serial radio device, auto detection
Whats Coming
- More exposed features on the radio
- Platform independent library for C / C++
Design
view the Latest design specifications, for an explanation on protocols, schematics, testing, and more
Use
I2C (Linux)
use ArmlabRadio::radio_i2c::Radio;
fn main () {
let mut radio: Radio = Radio::new_rpi().unrwap();
radio.transmit(b"test message").expect("transmit error");
let packet = radio.get_packet().expect("read error");
println!("got message: \"{:?}\"", packet);
}
Serial
use ArmlabRadio::radio_serial::Radio;
fn main () {
let mut radio: Radio = Radio::new("COM 4").unrwap();
radio.transmit(b"test message").expect("transmit error");
let packet = radio.get_packet().expect("read error");
println!("got message: \"{:?}\"", packet);
}
Dependencies
~2.3–4.5MB
~79K SLoC