A Rusty interface for the RN2903 LoRa module's serial protocol
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
Leonora Tindall aa6d70b3a2
Add example for packet sending support
vor 1 Jahr
docu Add documentation PDFs vor 2 Jahren
examples Add example for packet sending support vor 1 Jahr
src add packet sending support vor 2 Jahren
.gitignore Basic SerialPort wrapper vor 2 Jahren
CHANGELOG.md This is 0.2 🎉 vor 2 Jahren
CONTRIBUTING.md Formalize release process vor 2 Jahren
Cargo.lock add packet sending support vor 2 Jahren
Cargo.toml add packet sending support vor 2 Jahren
LICENSE.html Add GNU GPL v3 license, and package metadata vor 2 Jahren
README.md Add LoRa and FSK packet reception vor 2 Jahren

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.