Skip to content

Enhancement: expose spreading factor, coding rate, signal bandwidth, CRC check #20

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
applio opened this issue Mar 15, 2019 · 1 comment

Comments

@applio
Copy link
Contributor

applio commented Mar 15, 2019

I suggest adding the ability to control spreading factor, coding rate, signal bandwidth, and perform CRC checks on inbound packets. These features are sadly absent from the venerable RadioHead library implementation which heavily inspired the current implementation of this module but these features are available in the hardware of the Adafruit RFM95W (and close cousins) and through the software of other libraries such as https://github.com/MZachmann/LightLora_Arduino or https://github.com/MZachmann/LightLora_MicroPython .

As it is, the current implementation only supports fixed values for these controls but to make good use of the RFM9x hardware, to achieve good LoRa performance over long distances under non-ideal (real) conditions, the ability to modify these settings is rather important.

When dealing with the real world, noise can cause data corruption and the hardware's ability to perform CRC checks on packets becomes especially useful. For this reason, enabling the detection of corruption through hardware-based CRC checking is also proposed.

I have a patch to offer the above functionality that may be worth considering. It retains the current default behavior while offering the ability to change these settings at the time of instantiation of the RFM9x class.

@brentru
Copy link
Member

brentru commented Mar 21, 2019

Thank you for adding these features!

Addressed in #21 and released in in 1.1.5, closing!

@brentru brentru closed this as completed Mar 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants