A Rusty interface for the RN2903 LoRa module's serial protocol
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
Leonora Tindall aa6d70b3a2
Add example for packet sending support
pirms 3 nedēļām
docu Add documentation PDFs pirms 8 mēnešiem
examples Add example for packet sending support pirms 3 nedēļām
src add packet sending support pirms 4 mēnešiem
.gitignore Basic SerialPort wrapper pirms 8 mēnešiem
CHANGELOG.md This is 0.2 🎉 pirms 8 mēnešiem
CONTRIBUTING.md Formalize release process pirms 8 mēnešiem
Cargo.lock add packet sending support pirms 4 mēnešiem
Cargo.toml add packet sending support pirms 4 mēnešiem
LICENSE.html Add GNU GPL v3 license, and package metadata pirms 8 mēnešiem
README.md Add LoRa and FSK packet reception pirms 8 mēnešiem

README.md

RN2903

A Rusty interface for the RN2903 LoRa module's serial protocol

The RN2903 is a LoRa and FSK transciever for the 915MHz ISM band, commonly used in USB devices like the LoStik.

This crate provides a safe, idiomatic interface using cross-platform native serial functionality via serialport. This supports, for instance, a LoStik connected to a USB TTY or virtual COM port, or a RN2903 connected via a TTL serial interface.

This crate is available under the GNU General Public License, version 3.0 only, and does not directly depend on unstable crates.

Example

For instance, here is a simple program which dumps all LoRa packets received.

use rn2903::{Rn2903, ModulationMode};

fn main() {
    let mut txvr = Rn2903::new_at("/dev/ttyUSB0")
        .expect("Could not open device. Error");
    txvr.mac_pause().unwrap();
    txvr.radio_set_modulation_mode(ModulationMode::LoRa).unwrap();
    loop {
        if let Some(packet) = txvr.radio_rx(65535).unwrap() {
            println!("{:?}", packet);
        }
    }
}

Module Documentation

This repository reproduces the relevant documents for the RN2903 module at command_reference-40001811B.pdf and datasheet-DS5000239H.pdf.