helium-gateway is a gateway service between a linux based LoRa gateways using the a GWMP1/2 based packet forwarder, and the Helium router.
The current gateway project forwards packets to the router but does not yet use state channels which means forwarded packets are not yet rewarded by the blockchain.
The project builds ipk
packaged releases for linux based LoRa gateways. These packages attempt to be self-updating to be able to track improvements to the service. Updates are delivered through the following channels which a gateway can subscribe to by a channel
setting in the update
section of the settings file:
- alpha - Early development releases. These will happen frequently as functionality is developed and may be unstable. Expect to need to log into your gateway to restart or manually fix your light gateway.
- beta - Pre-release candidates which are considered to be stable enough for early access. Breaking issues can still happen but should be rare.
- release - The main (and default) release channel. Updates are considered to be stable for all platforms.
NOTE: Gateways should have at least 16Mb of available application file space to handle gateway installation and updates.
If your supported LoRa gateway did not come with helium-gateway pre-installed, manual installation requires you to:
- Configure the packet forwarder on the gateway to forward to the helium-gateway application. This varies per gateway but the goal is to set the packet forwarder to forward to the (default) configured helium-gateway on
127.0.0.1
at udp port1680
- Set up ssh acccess to the gateway. Depending on the gateway that may require going through a web interface, while others already have ssh configured.
scp
a downloadedipk
release package for the supported platform to the gateway. e.g.scp helium-gateway-<version>-<platform>.ipk <gateway>:/tmp/</code>
ssh
into the device and install the service using a command like:opkg install /tmp/helium-gateway-<version>-<platform>.ipk
If this command succeeds the logs on the gateway will show the service starting and the local packet forwarder client connecting to the gateway service.
The following platforms have already been tested by Helium and our community. Our plan is to test this on all relevant hardware platforms used by the Helium Network. If your preferred platform isn't listed yet, here's how to get it added.
- Review the open issues to see if it's already in progress. If not, file an issue.
- Join the
#gateway-dev
channel on Helium Discord and let us know what platform we're missing.
Note that platforms will be tested much faster if you join the development process!
Platform | Target | Products |
---|---|---|
ramips_24kec | mipsel-unknown-linux-musl | ✅ RAK833 EVB Kit |
✅ RAK7258 (WisGate Edge Lite) | ||
❔ RAK7249 (WisGate Edge Max) | ||
❔ RAK7240 (WisGate Edge Prime) | ||
klkgw | armv7-unknown-linux-musleabih | ✅ Kerlink Wirnet iFemtoCell Evolution |
dragino | mips-unknown-linux-musl | ✅ Dragino LPS8 |
❔ Dragino DLOS8 | ||
mtcdt | armv5te-unknown-linux-musleabi | ✅ Multitech Conduit MTCDT (mLinux) |
Use one of the existing releases if you can, or build your own by hand using the instructions below.
If you want to support a new platform, please consider submitting a PR to get the package as part of the supported matrix of gateway platforms!
- Install
rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install cargo
cross
andcargo-make
. Thecross
command allows for cross compiling to hardware targets using docker images, while thecargo-make
command is used to package upcargo install cross cargo install cargo-make
- Build the application or package using one of the following:
-
Build the application binary using the target triplet from the supported targets. Note the use of the
--release
flag to optimize the target binary for size. Debug builds may be too large to run on some targets.cross build --target <target> --release
The resulting application binary is located in
target/<target>/release/helium_gateway
-
Build an application
ipk
package using one of the target system profile namescargo make --profile <platform> ipk
The resulting
ipk
will be located intarget/ipk/helium-gateway-<version>-<platform>.ipk
-