Giter VIP home page Giter VIP logo

pyrak811's Introduction

RAK811 Python 3 library for Raspberry Pi

Latest Version GitHub Action (Test and Publish) codecov

About

RAK811 Python 3 library and command-line interface for use with the Raspberry Pi LoRa (p)HAT.

The library exposes the RAK811 module AT commands as described in the following documents:

The command-line interface exposes all API calls to the command line.

Requirements

  • A Raspberry Pi!
  • A RAK811 LoRa module (PiSupply IoT LoRa Node pHAT for Raspberry Pi / RAK811 WisNode - LoRa)
  • On the Raspberry Pi the hardware serial port must be enabled and the serial console disabled (use raspi-config)
  • The user running the application must be in the dialout and gpio groups (this is the default for the pi user)

Install the rak811 package

The package is installed from PyPI:

sudo pip3 install rak811

The pip3 command is part of the python3-pip package. If it is missing on your system, run:

sudo apt-get install python3-pip

PiSupply provides detailed instructions for configuring your Raspberry Pi.

Usage

Quick start with The Things Network

Identify your device

If you don't know the firmware level of you module run the following commands:

rak811 hard-reset
rak811 version

For V2.0.x firmware use the rak811 command and python module, for V3.0.X use rak811v3 command and rak811_v3 python module.

Register your device

Register you device on TheThingsNetwork using the unique id of your RAK811 module (Device EUI).
You can retrieve your Device EUI with the following command (V2.0.x):

rak811 hard-reset
rak811 get-config dev_eui

Note: the rak811 hard-reset command is only needed once after (re)booting your Raspberry Pi to activate the module.

or (V3.0.x):

rak811v3 set-config lora:join_mode:0
rak811v3 get-config lora:status | grep DevEui

Hello World

Send your first LoRaWan message wit the following python code snippet:
(The App EUI and App Key are copied verbatim from the TTN console)

#!/usr/bin/env python3
# V2.0.x firmware
from rak811.rak811 import Mode, Rak811

lora = Rak811()
lora.hard_reset()
lora.mode = Mode.LoRaWan
lora.band = 'EU868'
lora.set_config(app_eui='70B3D5xxxxxxxxxx',
                app_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
lora.join_otaa()
lora.dr = 5
lora.send('Hello world')
lora.close()
#!/usr/bin/env python3
# V3.0.x firmware
from rak811.rak811_v3 import Rak811

lora = Rak811()
lora.set_config('lora:work_mode:0')
lora.set_config('lora:join_mode:0')
lora.set_config('lora:region:EU868')
lora.set_config('lora:app_eui:70B3D5xxxxxxxxxx')
lora.set_config('lora:app_key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
lora.join()
lora.set_config('lora:dr:5')
lora.send('Hello world')
lora.close()

Your first message should appear on the TTN console!

Next steps

See the example directory on GitHub:

  • api_demo.py: demo most of the V2.0.x API calls
  • otaa.py / otaa_v3.py: OTAA example
  • otaa_v3_class_c.py: OTAA example with device in Class C mode
  • abp.py / abp_v3.py: ABP example
  • p2p.py / p2p_v3.py: P2P example
  • p2p.sh / p2p_v3.sh: P2P example based on the command-line interface (see below)

To run the examples, first copy the ttn_secrets_template.py to ttn_secrets.py and enter your LoRaWan TheThingsNetwork keys.

Note: you do not need to hard_reset the module each time you run a script. However you must do it the first time after a (re)boot to activate the module.

balenaCloud

Sample code to use the library with balenaCloud: Basic RAK811 example with balenaCloud (V2.0.x firmware).

Command-line interface

V2.0.x firmware

The rak811 command exposes all library calls to the command line:

$ rak811 --help
Usage: rak811 [OPTIONS] COMMAND [ARGS]...

  Command line interface for the RAK811 module.

Options:
  -v, --verbose  Verbose mode
  --help         Show this message and exit.

Commands:
  abp-info            Get ABP info.
  band                Get/Set LoRaWan region.
  clear-radio-status  Clear radio statistics.
  dr                  Get/set next send data rate.
  get-config          Get LoraWan configuration.
  hard-reset          Hardware reset of the module.
  join-abp            Join the configured network in ABP mode.
  join-otaa           Join the configured network in OTAA mode.
  link-cnt            Get up & downlink counters.
  mode                Get/Set mode to LoRaWan or LoRaP2P.
  radio-status        Get radio statistics.
  recv-ex             RSSI & SNR report on receive.
  reload              Set LoRaWan or LoRaP2P configurations to default.
  reset               Reset Module or LoRaWan stack.
  send                Send LoRaWan message and check for downlink.
  set-config          Set LoraWAN configuration.
  signal              Get (RSSI,SNR) from latest received packet.
  sleep               Enter sleep mode.
  version             Get module version.
  wake-up             Wake up.

Session example:

$ rak811 -v reset lora
LoRa reset complete.
$ rak811 -v set-config app_eui=70B3D5xxxxxxxxxx app_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LoRaWan parameters set
$ rak811 -v join-otaa
Joined in OTAA mode
$ rak811 -v dr
5
$ rak811 -v dr 4
Data rate set to 4.
$ rak811 -v send Hello
Message sent.
No downlink available.
$ rak811 -v send --port 4 --binary '01020211'
Message sent.
Downlink received:
Port: 1
RSSI: -56
SNR: 31
Data: 123456

Note: for your first session after boot, you will need to do a hard-reset instead of a reset lora command to activate the module.

V3.0.x firmware

The rak811v3 command exposes the following library calls to the command line:

$ rak811v3 --help
Usage: rak811v3 [OPTIONS] COMMAND [ARGS]...

  Command line interface for the RAK811 module.

Options:
  -v, --verbose  Verbose mode
  -d, --debug    Debug mode
  --version      Show the version and exit.
  --help         Show this message and exit.

Commands:
  get-config   Execute get_config RAK811 command.
  hard-reset   Hardware reset of the module.
  help         Print module help.
  join         Join the configured network.
  receive-p2p  Get LoraP2P message.
  run          Exit boot mode and enter normal mode.
  send         Send LoRaWan message and check for downlink.
  send-p2p     Send LoRa P2P message.
  send-uart    Send data to UART.
  set-config   Execute set_config RAK811 command.
  version      Get module version.

Session example:

$ rak811v3 -v set-config lora:work_mode:0
Configuration done
LoRa (R) is a registered trademark or service mark of Semtech Corporation or its affiliates. LoRaWAN (R) is a licensed mark.
RAK811 Version:3.0.0.14.H
UART1 work mode: RUI_UART_NORMAL, 115200, N81
UART3 work mode: RUI_UART_NORMAL, 115200, N81
LoRa work mode:LoRaWAN, join_mode:OTAA, MulticastEnable: false, Class: A
$ # The following is not necessary as in this case the module is already in OTAA mode!
$ rak811v3 -v set-config lora:join_mode:0
Configuration done
$ rak811v3 -v set-config lora:app_eui:70B3D5xxxxxxxxxx
Configuration done
$ rak811v3 -v set-config lora:app_key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Configuration done
$ rak811v3 -v join
Joined!
$ rak811v3 get-config lora:status | grep 'Current Datarate'
Current Datarate: 4
$ rak811v3 -v set-config lora:dr:5
Configuration done
$ rak811v3 -v send 'Hello'
Message sent.
No downlink available.
$ rak811v3 -v set-config lora:confirm:1
Configuration done
$ rak811v3 -v send --port 4 --binary '01020211'
Message sent.
Send confirmed.
RSSI: -66
SNR: 6

pyrak811's People

Contributors

amedeebulle avatar avdn avatar hrnciar avatar ryanteck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyrak811's Issues

Timeout Error on any rak811 commands

I recently bought the IoT LoRa Node pHAT, using with Raspberry Pi 3 1.2.

Whenever I try to run any rak811 commands, e.g.
rak811 -v reset lora

I get:

    ...
    File "/usr/local/lib/python3.7/dist-packages/rak811/serial.py", line 156, in receive
        raise Rak811TimeoutError('Timeout while waiting for data')
rak811.serial.Rak811TimeoutError: Timeout while waiting for data

For reference, I did follow this link, and set:

  1. sudo raspi-config
  2. select '3. Interface Options'
  3. select 'P6 Serial Port'
  4. 'Would you like a login shell to be accessible over serial?' -> No
  5. 'Would you like the serial port hardware to be enabled?' -> Yes
  6. sudo nano /boot/config.txt
  7. added dtoverlay=pi3-miniuart-bt to the end of the file
  8. sudo reboot

Networking options were already configured before, i.e. it's connected to the internet.
But nothing seems to fix the above timeout error. Can you please tell me what I'm doing wrong?

Add error messages

So that e.g. the following can be more descriptive.

Traceback (most recent call last):
  File "/home/pi/lora/lora_node.py", line 20, in <module>
    lora.send('Hellora world')
  File "/usr/local/lib/python3.5/dist-packages/rak811/rak811.py", line 482, in send
    data
  File "/usr/local/lib/python3.5/dist-packages/rak811/rak811.py", line 226, in _send_command
    raise Rak811ResponseError(response[len(RESPONSE_ERROR):])
rak811.rak811.Rak811ResponseError: -5

rak811.rak811.Rak811ResponseError: -5 equates to "CODE_NOT_JOIN", which, while a little unnatural, is more useful.

TypeError: __init__() got an unexpected keyword argument 'case_sensitive'

CLI generates the following traceback:

Traceback (most recent call last):
  File "/usr/local/bin/rak811", line 7, in <module>
    from rak811.cli import cli
  File "/usr/local/lib/python3.5/dist-packages/rak811/cli.py", line 166, in <module>
    type=click.Choice(['LoRaWan', 'LoRaP2P'], case_sensitive=False)
TypeError: __init__() got an unexpected keyword argument 'case_sensitive' 

Issues running RAK commands

Hi Guys,
I recently bought the IoT LoRa Node pHAT, using with Raspberry Pi 4 Model B 8GB RAM.
My OS Version : Raspbian GNU/Linux 10 (buster)
For reference, I did follow this link,
I have run in to an issue with the initial setup, it seems when running rak811 commands I'm getting errors, for example,
image

image

Maybe my Phat and Paspberry not connected correctly ?
image
image

device reports readiness to read but returned no data

Hello, I wonder if you can help me. I have downloaded the code to two RPis with LoRa pHats. If I run the code on one of the RPis, it's fine. I can see the transmissions on my spec analyser and all is fine. The same applies if I run it on the other RPi.

However, if I run the code on one RPi, wait until it's waiting for an incoming message and then run the code on the other RPi, I immediately get this message on the first RPi:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/serial/serialposix.py", line 501, in read
    'device reports readiness to read but returned no data '
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.7/dist-packages/rak811/serial.py", line 106, in _read_loop
    line = self._serial.readline()
  File "/usr/local/lib/python3.7/dist-packages/serial/serialposix.py", line 509, in read
    raise SerialException('read failed: {}'.format(e))
serial.serialutil.SerialException: read failed: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

This happens whichever RPi I start first.
It's a bit beyond my experience level to know what's going on here. Can anyone help me?
Many thanks

boot mode command

Add command to enter boot mode to be able to flash new Firmware to the RAK811.

Confirmed send not working in my case

Hey and thank you for you great lib,

i am using the pi phat lora node hat with a raspberry pi 3 and an own private lora network. I can send messages to the lora network without any problems from the raspberry pi using a python script. -as long as I use the unconfirmed send.

But when I use the confirm flag, the library always ends with a 'Rak811 timeout exception' after a long time waiting for the ACK I guess. Somtetimes I can see the msg received by the gateway, sometimes I cant.

Do you maybe have an idea what the problem may be, or do you have another suggestion how to check, if a uplink was received correctly by my gateway? I cant see any logs of the gateway unfortunatly, i can just use it.

Thank you and best regards

RAK811 library crashes on Bookworm O/S (kernel v6.6.45)

Trying to hard reset a pHAT RAK811 v3 LoRa Node with a RPi 5 running Bookworm O/S, gets me to the following error:

rak811v3 hard-reset Traceback (most recent call last): File "/home/####/.local/bin/rak811v3", line 5, in <module> from rak811.cli_v3 import cli File "/home/####/.local/pipx/venvs/rak811/lib/python3.11/site-packages/rak811/cli_v3.py", line 26, in <module> from .rak811_v3 import Rak811 File "/home/####/.local/pipx/venvs/rak811/lib/python3.11/site-packages/rak811/rak811_v3.py", line 26, in <module> from RPi import GPIO ModuleNotFoundError: No module named 'RPi'

To be able to install the rak811 package in python 3.11, I've install pipx first to create a virtual-environment.
apt install pipx pipx install rak811

Should the error be by the obsolete way of GPIO access that has been changed in Bookworm O/S (latest kernels) or due to the virtual environment RPi package is not installed and thus not found when trying to import it ?

Missing down-link messages

Hi,

Thanks for such a great work.

Issue: Down-link messages are being missed at random. For instance, if I send 10 down-link messages from gateway, few messages will not be received at device end. If I run a separate python script to just receive the data from serial port by serial.readline() in a loop, it works and receives all data. I have looked into _read_loop in serial.py, but unable to understand what could be the issue.

Lora Module: RAK811 WisNode -> https://www.thethingsnetwork.org/docs/devices/rak811-wisnode-lora-module/
OS: Ubuntu -> https://ubuntu.com/raspberry-pi
Hardware Raspberry Pi 3

Thanks

[Errno 99] LoRa join failed

My project used RPi 3B+ pair with LoRa Node pHAT RAK811-H

i follow all instruction at README.md but i always get error
Traceback (most recent call last):
File "/home/pi/Desktop/lora.py", line 11, in
lora.join()
File "/usr/local/lib/python3.7/dist-packages/rak811/rak811_v3.py", line 501, in join
self._send_command('join', timeout=self._event_timeout)
File "/usr/local/lib/python3.7/dist-packages/rak811/rak811_v3.py", line 254, in _send_command
raise Rak811ResponseError(response[len(RESPONSE_ERROR):])
rak811.rak811_v3.Rak811ResponseError: [Errno 99] LoRa join failed

how to fix it , i dont know how to do.
Thanks you

LoRaWAN adr implementation

Hi,

I am confused with regards to the LoRaWAN adr implementation. My sender sits right next to the gateway, hence I would expect a spreading-factor of 7.

I am working on the commandline. After doing a rak811 hard-reset, rak811 set-config [...] and rak811 join-otaa I am able to send messages using rak811 send.

Both JoinRequest from the device as well as the JoinAccept from the gateway are with SF 7. Messages thereafter sent out by the device are sent out with SF 12.

rak811 get-config adr returns on, rak811 get-config dr returns 0. rak811 dr also returns 0.

Even after sending multiple messages, the spreading-factor remains unchanged at 12.

Is there anything else I need to do? Is the ADRACKReq feature implemented?

otaa_v3.py failing

The example file otaa_v3.py is failing.

On running send loop crashes without explanation. When the try block is removed the script crashes and shows the error 'rak811.serial.Rak811TimeoutError: Timeout while waiting for data'.

The command line utility rak811v3 errors with 'RAK811 timeout: Timeout while waiting for data'

Using the serial port directly uplink and downlinks work as expected. I am using a wrapper script to send commands easily - for reference it is attached as rakconnect.sh.txt.

I understand that v3 firmware is new and much different from v2. We would prefer to keep using v2 but it is impossible unless we find a way to downgrade firmware and / or choose which firmware we receive on ordering. I don't think that's possible to do. We are using IoT LoRa Node pHAT for Raspberry Pi (Multi Frequency).

I noticed there are some timeout variables set in the scripts but without understanding too much how they work I have had no luck in modifying them.

Attached are output from:

Running otaa_v3.py with no modifications
Running otaa_v3.py with the try block removed
Running the command line interface
Running using the serial port directly

command-line-output.txt
crash-without-try-except-block.txt
otaa_v3-output.txt
serial-output.txt
rakconnect.sh.txt

Registering new v3 TTN end device

Hi,

I'm trying to move my devices over to TTN v3 and to register a new device it's asking for "LoRaWAN version" and "Regional Parameter version".

Looking at the datasheet it looks to be version 1.0.2 but I can't find any reference to REV A or REV B for the Regional Parameter version

A naive assumption would be REV A if a revision is not mentioned...

Any pointers?

Issues running RAK commands

Hi Guys,

I have run in to an issue with the initial setup, it seems when running rak811 XXXX commands Im getting errors, for example,

pi@raspberrypi:~ $ rak811 get-config dev_eui
RAK811 response error : 2: Unknown error

or

pi@raspberrypi:~ $ rak811 reset module
Traceback (most recent call last):
File "/usr/local/bin/rak811", line 10, in
sys.exit(cli())
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 829, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/local/lib/python3.7/dist-packages/rak811/cli.py", line 174, in reset
lora.reset(Reset.Module)
File "/usr/local/lib/python3.7/dist-packages/rak811/rak811.py", line 273, in reset
self._send_command('reset={0}'.format(mode))
File "/usr/local/lib/python3.7/dist-packages/rak811/rak811.py", line 233, in _send_command
raise Rak811ResponseError(response[len(RESPONSE_ERROR):])
rak811.rak811.Rak811ResponseError: [Errno : 1] Unknown error

I have run through the basic setup found here - https://learn.pi-supply.com/make/getting-started-with-the-raspberry-pi-lora-node-phat/

What am I doing wrong?

Im using RAK version 0.7.3

pi@raspberrypi:~ $ rak811 --version
rak811, version 0.7.3

The firmware version of the board is V3.0.0.14.H

Rgds, Will.

Support for RAK3172

@AmedeeBulle Thanks for this great work.

RAK811 is no longer recommended by RAK811 for new design.
https://store.rakwireless.com/products/rak811-lpwan-module?variant=39942880952518

I am wondering if this lib can be enhanced to support alternate module i.e RAK3172.

RAK3172 AT commands:

https://docs.rakwireless.com/Product-Categories/WisDuo/RAK3172-Module/AT-Command-Manual/#introduction

Suggestion:

Add a common config file which can contain configuration for different AT commands based on lora modules.

E.g.

    rak811_config = {
        "RESPONSE_OK": "OK ",
        "RESPONSE_ERROR": "ERROR:",
        "RESPONSE_EVENT": "at+recv=",
        "AT_COMMAND_PREFIX": "at",
    }
    rak3172_config = {
        "RESPONSE_OK": "OK",
        "RESPONSE_ERROR": "+CME ERROR:",
        "RESPONSE_EVENT": "+EVT:",
        "AT_COMMAND_PREFIX": "AT",
    }

If you can guide me an efficient way to add this feature in the lib, I would be excited to contribute code.

Thoughts?

Setting up class C in python

When trying to run Class C in python:

CLASS = '2'
lora.set_config(dev_eui=DEV_EUI,
                        app_key=APP_KEY,
                        class=CLASS)

I get an invalid syntax error on class. class is a keyword meaning it is a reserved word that cannot be used as a variable/function name. Is there a workaround for this?

app_eui rejected if all zeros

Apologies if this has been answered elsewhere, I did try a search.
TTN V3 stack suggests setting app_eui to all zeros for manual devices; I have older phat 2.0.3.0 modules that work fine with TTN V2 as there is a unique app_eui issued. rak811 join-otaa rejects an app_eui with all zero's as invalid. I have looked to see where this is checked, and it seems to be in the at+ code so may be outside the scope of this library. Has anyone else solved this other than using a fake app_eui. Thanks Mike

Ubuntu 20.10 Support

Customers are reporting issues with Ubuntu 20.04, investigating now to see what needs to be done.

Error using rak811 commands

My new board does not work with more than version.

Im using a fresh install on a raspberry pi 3, and im using this guide: https://learn.pi-supply.com/make/getting-started-with-the-raspberry-pi-lora-node-phat/

After setting the uart, and installing rak811 using pip3, i can get the version from the hat:

pi@raspberrypi:~ $ sudo rak811 version
V3.0.0.14.H

But getting any other parameter is not working

pi@raspberrypi:~ $ sudo rak811 hard-reset
pi@raspberrypi:~ $ sudo rak811 get-config ch_list
RAK811 response error : 2: Unknown error
pi@raspberrypi:~ $ sudo rak811 get-config dev_eui
RAK811 response error : 2: Unknown error
pi@raspberrypi:~ $ sudo rak811 get-config dev_addr
RAK811 response error : 2: Unknown error

Trying the sample fails (i know the x's must be replaced, but the initialization fails)

#!/usr/bin/env python3
from rak811 import Mode, Rak811

lora = Rak811()
lora.hard_reset()
lora.mode = Mode.LoRaWan
lora.band = 'EU868'
lora.set_config(dev_eui='xxxxxxxxxxxxxxxx',
app_eui='xxxxxxxxxxxxxxxx',
app_key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
lora.join_otaa()
lora.dr = 5
lora.send('Hello world')
lora.close()

result:
pi@raspberrypi:~ $ python3 test.py
Traceback (most recent call last):
File "test.py", line 6, in
lora.mode = Mode.LoRaWan
File "/usr/local/lib/python3.7/dist-packages/rak811/rak811.py", line 289, in mode
self._send_command('mode={0}'.format(value))
File "/usr/local/lib/python3.7/dist-packages/rak811/rak811.py", line 233, in _send_command
raise Rak811ResponseError(response[len(RESPONSE_ERROR):])
rak811.rak811.Rak811ResponseError: [Errno : 1] Unknown error

Read thread can receive non-ASCII characters when the serial line is not configured properly

Traceback:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.5/threading.py", line 862, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.5/dist-packages/rak811/serial.py", line 111, in _read_loop
    line = line.decode('ascii').rstrip(EOL)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 311: ordinal not in range(128)

Traceback (most recent call last):
  File "test.py", line 6, in <module>
    lora.mode = Mode.LoRaWan
  File "/usr/local/lib/python3.5/dist-packages/rak811/rak811.py", line 281, in mode
    self._send_command('mode={0}'.format(value))
  File "/usr/local/lib/python3.5/dist-packages/rak811/rak811.py", line 221, in _send_command
    response = self._serial.get_response()
  File "/usr/local/lib/python3.5/dist-packages/rak811/serial.py", line 133, in get_response
    'Timeout while waiting for response'
rak811.serial.Rak811TimeoutError: Timeout while waiting for response

Support new RAK firmware commands

The next batch of pHATs will be using the new RAK firmware that has a different command structure.

I'll be doing the work over the next few days to do this. The current plan is:

Keep current version as is and branched off.

New version will be say 1.0.0 and both will be downloadable from pypi.

Tutorials then say to either download the version if the user knows. Or run a curl command to run the automated installer which will then detect which version is on the board and install that.

We'll write guides on how to upgrade existing nodes.

Add GPIO Commands

We've had a request to add in the commands for the GPIO Pins. As I've been working on these for the micro:bit recently I'll work on this after TTN Conf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.