Adafruit_CircuitPython_RFM9x

CircuitPython module for the RFM95/6/7/8 LoRa wireless 433/915mhz packet radios.

MIT License

Downloads
1.8K
Stars
68
Committers
18
Adafruit_CircuitPython_RFM9x - 2.1.1 - Moved to pre-commit, added licensing info

Published by evaherrada almost 4 years ago

pre-commit has been added to the GitHub Actions workflow in this repository. pre-commit allows you to run multiple checks, such as black and checking the REUSE licensing compliance, both locally and on GitHub Actions with one command.

You can run pre-commit locally with pre-commit run --all-files

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Correct RSSI calculation -- implement errata

Published by jerryneedell almost 4 years ago

implement changes per the errata in https://semtech.my.salesforce.com/sfc/p/#E0000000JelG/a/2R000000HSPv/sqi9xX0gs6hgzl2LoPwCK0TS9GDPlMwsXmcNzJCMHjw

added a new kwarg "agc" which can be set to enable the automatic Gain Control - Default is False to disable so there is no change to existing behavior.
The only change to existing behavior is to set bit 7 of Register 0x31 per the errata. For all BW except 500K it is now set to 0.

To address some of the items in #51 several new attributes were added:
auto_agc -- set via agc kwarg or can be set manually after init
low_datarate_optimize - defaults to 0 can be set if desired
lna_boost_hf -- defaults to 0 (off) nay be set to 3 to enable
auto_ifon -- controls bit 7 of register 0x31 (used internally when setting BW)
detection_optimize - (use internally when setting SF)

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - 2.0.4 - Remove old PyLint Directive

Published by FoamyGuy about 4 years ago

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Revise RESET

Published by jerryneedell about 4 years ago

The reset sequence has been revised to remove the need for internal Pull-Up resistors.
No changes to user code necessary.
This is consistent with the TinyLoRa,RFM69 and Arfduino Radiohead library implementations.
To keep the RST line High during normal use, Instead of switching to an input with a Pull-Up enabled, it is kept as an output and set High.

Adafruit_CircuitPython_RFM9x - 2.0.2 - Fixed discord invite link

Published by evaherrada over 4 years ago

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - 2.0.1 - Reduced code size

Published by evaherrada over 4 years ago

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Implement Reliable Datagram Mode

Published by jerryneedell over 4 years ago

Implemented compatibility with the RadioHead library "Reliable DataGram" mode.
Received packets are "ACKed" and Transmitted packets wait for ACK response.

BREAKING CHANGES

There are "breaking changes" for anyone that had been setting the RadioHead headers directly.
There are now attributes for setting the header parameters and the rx_filter parameter for the receive function has been removed.

for send() the kwarg tx_header has been replaced by 4 individual kwargs: destination, node, identifier, flags

It is not normally necessary use the destination, node, identifier or flags awards when calling send()
They should be set during initialization using the attributes node and destination as in the examples.
The identifier and flags attributes are set automatically when using send_with_ack()
For a non-acked send() they may be set manually either via the attributes or kwargs

send() now returns a boolean status - if True, the send was completed, if False, the send timed out. Previously a Runtime error was thrown on the time out.

Notes

It has been difficult to make this work reliably. Packets will still be missed occasionally but now they will be reported. There are attributes that can be "tweaked" to help

rfm9x.ack_delay -- set a delay before the ACK packet is sent - this is necessary when the receive unit an MCU communication to a Raspberry Pi . The MCU can send it's ACK packet before the Raspberry Pi has resumed "listening". The default setting is "None" but setting it to .1 seconds may be necessary. The Arduino RadioHead library does not allow for this "ack_delay" and it it may be difficult to get this to work, especially with a Raspberry Pi.

rfm9x.retries -- set the number of ack retries

All of the existing examples will still execute without change.

There are examples for using this mode in rfm9x_node1_ack.py and rfm9x_node2_ack.py

other new examples
rfm9x_header.py -- receive packets and display the header and packet contents
rfm9x_node1.py -- uses adresses without ACK
rfm9x_node2.py -- companion to rfm9x_node1.py
rfm9x_rpi_simpletest.py - no LED and set pins for RaspBerry Pi
rfm9x_node1_bonnet.py -- similar to rfm9x_node1.py but for use with RPi and bonnet -- uses buttons to send packets

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - 1.3.1 - Added Black check, reran Black with Python 3 target.

Published by evaherrada over 4 years ago

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - 1.3.0 - Upgrade to latest Pylint, implement Black formatting

Published by evaherrada over 4 years ago

We have upgraded Pylint checks to use the latest version of Pylint and implemented usage of Black Python formatting. This does not change the functionality of the code - it is designed to bring it up to current standards and make it more readable.

  • Remove pinned Pylint version number from build.yml file
  • Synced .pylintrc file to match Adafruit standard
  • Ran upgraded Pylint and applied any changes or new disables necessary
  • Ran Black formatter and allowed application of changes across entire repo

For more information on using Pylint and Black on your code, check out this guide on working with Pylint and Black

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - 1.2.2 - Update intersphinx link

Published by evaherrada over 4 years ago

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - 1.2.1 - Changed CI from Travis to GitHub Actions

Published by evaherrada almost 5 years ago

This release includes:

  • Migrating this repository from Travis to GitHub Actions. This has no effect on the behavior of the code itself.

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip3 install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Enable interrupts for received packets

Published by brentru almost 5 years ago

To use in CircuitPython, simply install the [Adafruit CircuitPython bundle] (https://github.com/adafruit/Adafruit_CircuitPython_Bundle).

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Fix GitHub repository URL to the correct value

Published by brentru about 5 years ago

  • Repo URL updated to the correct URL for compatibility with circup, thanks @ntoll

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Check RFM9x version and more verbose errors

Published by brentru over 5 years ago

  • Incorrectly setting tx_power and frequency_mhz throws errors describing the accepted range
  • RFM9x now checks version to verify correct wiring

Thanks @terriko!

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Expose radio configuration settings as properties

Published by brentru over 5 years ago

This release adds optional control properties to easily modify the modem's configuration. Thanks @applio! #21

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Update Simpletest

Published by sommersoft almost 6 years ago

Updated simpletest to blink on-board LED when packets are received.

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - minor bug fixes for empty packets

Published by jerryneedell almost 6 years ago

Fix a few bugs related to empty packet handling.

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Allow access to RadioHead Packet Header

Published by jerryneedell almost 6 years ago

Updated adafruit_rfm9x.py to allow optional access to the RadioHead Packet Headers.

The user may optionally set and receive the 4 byte RadioHead packet header.
The default is to ignore the header as in the past.

On transmit, the user may provide a keyword argument: tx_header with a 4-tuple of bytes.
tx_header = (To,From,ID,Flags)
to set the outgoing header.

On receive, the user can request that the packet header be included at the beginning of the packet via a keyword argument: with_header.
If set to True, the header will be included as the first 4 bytes of the packet and the data payload begins at byte 4.
Also, the user may specify a keyword argument: rx_filter to reject any "non-broadcast" packets not addressed as specified. A "broadcast" message contains 0xff as the To address. Broadcast messages are always received.
If rx_filter is set to a value other than 0xff, then incoming packets with the To field not matching the rx_filter will be ignored unless the To field contains 0xff.
If rx_filter is set to 0xff then all packets are accepted.

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - fix for M4 and RPi

Published by jerryneedell about 6 years ago

  • adjusted timing of delay after entering "sleep" mode for proper execution on M4 boards.
  • modified rfm9x_simpletest.py to be compatible with CPython and CircuitPython.

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Adafruit_CircuitPython_RFM9x - Now on PyPi!

Published by kattni about 6 years ago

  • Added setup.py
  • Added PyPI release info to .travis.yml
  • Updated requirements.txt
  • Added a more comprehensive .gitignore

To use in CircuitPython, simply install the Adafruit CircuitPython bundle.

To use in CPython, pip install adafruit-circuitpython-rfm9x.

Read the docs for info on how to use it.

Package Rankings
Top 7.95% on Pypi.org
Related Projects