Tagged: LoRa

Helium: The SDR Based Cryptocurrency for IoT

Helium is a cryptocurrency being designed for internet of things (IoT) sensors which will be based on low cost software defined radio (SDR) technology - that's a lot of buzzwords!. The idea is to design a system that will pay people to run an internet connected gateway which will receive data from wireless sensors, and put that data onto the internet. A use case that Helium has already developed is providing services to track and monitor medicine and food supplies. The linked article gives a good example of this use case:

...let’s say you have a gateway in your house: if a vial of medicine were to enter your coverage zone, it would send its location and temperature data to your gateway, which would then send it to its proper destination in return for a previously agreed upon cryptocurrency fee. These steps would then be cryptographically verified and recorded in the distributed ledger.

In terms of IoT network competition, LoraWan and SigFox IoT networks are already popular and established in several places in the world, but wireless coverage isn't great because these networks rely on companies to build gateway infrastructure. Helium crowd sources this infrastructure instead, which could result in greater coverage.

Most cryptocurrencies base the security of their network on the 'proof of work' process, which is a way to ensure that the miners get rewarded for the heavy cryptographic computations that they do in order to secure the network. Instead of proof of work, Heliums idea is to use a 'proof of coverage' system, where other gateways will confirm if a gateway is providing coverage and is in the correct location. Helium cryptocurrency 'miners' will be the people running the internet connected gateways, and they will be paid for any devices that use their wireless coverage.

According to one of their latest blog posts, the wireless gateway radio system is to be based on a software defined radio architecture. The reasoning behind using SDR is that they need to support potentially thousands of wireless sensor channels, require the sensors to be able to be geolocated, and require the radio to be low cost and energy efficient. For geolocation of sensors they are considering the use of radio direction finding techniques that we assume will be based on pseudo-doppler, or alternatively they will use the time difference of arrival (TDoA) technique which requires the signal to be received by multiple gateways. The SDR will be developed on a dual core TI SoC, with four programmable realtime units (PRU), which they'll use to interface with the RF chips.

At the moment Helium is just a whitepaper, and we haven't seen any concrete evidence of a working SDR design yet, but according to their website they plan to launch gateway hardware in Q4 2018 for a cost of $495. 

The Helium Network
The Helium Network

The Outernet Ku-Band LoRa Data Service

As mentioned in our previous post about the Outernet LoRa chat application, Outernet is currently holding a 33% off sale on their 'Dreamcatcher' satellite data receiver. To get the discount use the coupon "33%OFFJULY4SALE" on their store. The sale lasts until Midnight Central Time on Wednesday 4 July. The code is valid site wide, so applies to the moRFeus product as well.

In this post we'll highlight the Outernet data service which can be received in the Continental USA with the Dreamcatcher 3 hardware.

Outernet is a free download only satellite based information service that aims to be a sort of 'library in the sky'. Their aim to to have satellites constantly broadcasting down weather, news, books, radio, web pages, and files to everyone in the world. As it's satellite based, the service is censorship resistant, and useful for remote/marine areas without or with slow/capped internet access.

Currently the Outernet data service is considered to be beta, and is only available for those in the Continental United States.

The New Outernet Data Service

Originally a few years ago Outernet started with a 12 GHz DVB-S satellite service that gave 1GB of content a day, but that service required a large dish antenna which severely hampered user adoption. Their second attempt was with an L-band service that only needed a small patch antenna. This service used RTL-SDR dongles as the receiver, so it was very cheap to set up. Unfortunately the L-band service had a very slow data rates (less than 20MB of content a day), and leasing an L-band transmitter on a satellite proved to be far too expensive for Outernet to continue with. Both these services have now been discontinued.

Outernet 3.0 aims to fix their previous issues by giving us a service that provides over 300MB of data a day, with a relatively cheap receiver, computer and antenna combination that is small and easy to set up. The new receiver uses a standard Ku-Band LNB as the antenna, which is very cheaply available as they are often used for satellite TV reception. The receiver is called 'Dreamcatcher 3', and is a custom PCB containing a hardware receiver (non-SDR based) with a LoRa decoder, as well as an embedded ARM computer capable of running Linux.

LoRa is an RF protocol that is most often associated with small Internet of Things (IoT) devices, but Outernet have chosen it as their satellite protocol for Outernet 3.0 because it is very tolerant to interference. In Outernet 3.0 the LNB is pointed directly at the satellite without any directive satellite dish, meaning that interference from other satellites can be a problem. But LoRa solves that problem by being tolerant to interference.

The Data Service

Currently, Dreamcatcher 3 users are receiving data such as hundreds of daily news articles, global weather information and the top 100 most searched Wikipedia articles of the day. A new satellite radio broadcast service is also being tested (kind of similar to Sirius XM, but only one channel at the moment). Compared to the older L-band Outernet service, the larger data rates allow for a lot more data and thus articles to come down.

Like previous iterations, the Dreamcatcher 3 board runs remotely on a WiFi connection. You then connect to the Dreamcatcher 'Skylark' web interface via a PC or mobile browser. On this web interface you can browse all your downloaded files. The user guide is a good read for understanding the set up procedure. 

Some screenshots of example received data are shown below.

Conclusion

Outernet have been working hard to perfect their service over the years, and the current offering is the best compromise between ease of use and data rates that we've seen so far. Unfortunately the service is only available in the Continental USA at the moment, but we're looking forward to future expansion. 

Currently we'd only recommend purchasing the Dreamcatcher 3 receiver for the Outernet data service if you understand that the service is in beta, requires a little bit of technical know-how, and like previous Outernet iterations is subject to possible change. Support is only available via their forums.

We can see the service being popular with those who live and work in remote areas without or with expensive internet. Censorship resistance is also another big plus, but satellites would need to be rented for these areas first.

There are also more creative uses. 'Unplugged' getaways are becoming popular in the modern world. Perhaps you want an internet free holiday, but don't want to miss out on important breaking news and weather updates for safety. In the future Outernet could also be used for Bitcoin or other Cryptocurrency blockchain transmission. In past Outernet iterations it was also possible to send a tweet that would be re-transmitted by Outernet. A similar messaging service could be used to control remote devices.

Helium: The SDR Based Cryptocurrency for IoT

Helium is a cryptocurrency being designed for internet of things (IoT) sensors which will be based on low cost software defined radio (SDR) technology - that's a lot of buzzwords!. The idea is to design a system that will pay people to run an internet connected gateway which will receive data from wireless sensors, and put that data onto the internet. A use case that Helium has already developed is providing services to track and monitor medicine and food supplies. The linked article gives a good example of this use case:

...let’s say you have a gateway in your house: if a vial of medicine were to enter your coverage zone, it would send its location and temperature data to your gateway, which would then send it to its proper destination in return for a previously agreed upon cryptocurrency fee. These steps would then be cryptographically verified and recorded in the distributed ledger.

In terms of IoT network competition, LoraWan and SigFox IoT networks are already popular and established in several places in the world, but wireless coverage isn't great because these networks rely on companies to build gateway infrastructure. Helium crowd sources this infrastructure instead, which could result in greater coverage.

Most cryptocurrencies base the security of their network on the 'proof of work' process, which is a way to ensure that the miners get rewarded for the heavy cryptographic computations that they do in order to secure the network. Instead of proof of work, Heliums idea is to use a 'proof of coverage' system, where other gateways will confirm if a gateway is providing coverage and is in the correct location. Helium cryptocurrency 'miners' will be the people running the internet connected gateways, and they will be paid for any devices that use their wireless coverage.

According to one of their latest blog posts, the wireless gateway radio system is to be based on a software defined radio architecture. The reasoning behind using SDR is that they need to support potentially thousands of wireless sensor channels, require the sensors to be able to be geolocated, and require the radio to be low cost and energy efficient. For geolocation of sensors they are considering the use of radio direction finding techniques that we assume will be based on pseudo-doppler, or alternatively they will use the time difference of arrival (TDoA) technique which requires the signal to be received by multiple gateways. The SDR will be developed on a dual core TI SoC, with four programmable realtime units (PRU), which they'll use to interface with the RF chips.

At the moment Helium is just a whitepaper, and we haven't seen any concrete evidence of a working SDR design yet, but according to their website they plan to launch gateway hardware in Q4 2018 for a cost of $495. 

The Helium Network
The Helium Network

The Outernet Ku-Band LoRa Data Service

As mentioned in our previous post about the Outernet LoRa chat application, Outernet is currently holding a 33% off sale on their 'Dreamcatcher' satellite data receiver. To get the discount use the coupon "33%OFFJULY4SALE" on their store. The sale lasts until Midnight Central Time on Wednesday 4 July. The code is valid site wide, so applies to the moRFeus product as well.

In this post we'll highlight the Outernet data service which can be received in the Continental USA with the Dreamcatcher 3 hardware.

Outernet is a free download only satellite based information service that aims to be a sort of 'library in the sky'. Their aim to to have satellites constantly broadcasting down weather, news, books, radio, web pages, and files to everyone in the world. As it's satellite based, the service is censorship resistant, and useful for remote/marine areas without or with slow/capped internet access.

Currently the Outernet data service is considered to be beta, and is only available for those in the Continental United States.

The New Outernet Data Service

Originally a few years ago Outernet started with a 12 GHz DVB-S satellite service that gave 1GB of content a day, but that service required a large dish antenna which severely hampered user adoption. Their second attempt was with an L-band service that only needed a small patch antenna. This service used RTL-SDR dongles as the receiver, so it was very cheap to set up. Unfortunately the L-band service had a very slow data rates (less than 20MB of content a day), and leasing an L-band transmitter on a satellite proved to be far too expensive for Outernet to continue with. Both these services have now been discontinued.

Outernet 3.0 aims to fix their previous issues by giving us a service that provides over 300MB of data a day, with a relatively cheap receiver, computer and antenna combination that is small and easy to set up. The new receiver uses a standard Ku-Band LNB as the antenna, which is very cheaply available as they are often used for satellite TV reception. The receiver is called 'Dreamcatcher 3', and is a custom PCB containing a hardware receiver (non-SDR based) with a LoRa decoder, as well as an embedded ARM computer capable of running Linux.

LoRa is an RF protocol that is most often associated with small Internet of Things (IoT) devices, but Outernet have chosen it as their satellite protocol for Outernet 3.0 because it is very tolerant to interference. In Outernet 3.0 the LNB is pointed directly at the satellite without any directive satellite dish, meaning that interference from other satellites can be a problem. But LoRa solves that problem by being tolerant to interference.

The Data Service

Currently, Dreamcatcher 3 users are receiving data such as hundreds of daily news articles, global weather information and the top 100 most searched Wikipedia articles of the day. A new satellite radio broadcast service is also being tested (kind of similar to Sirius XM, but only one channel at the moment). Compared to the older L-band Outernet service, the larger data rates allow for a lot more data and thus articles to come down.

Like previous iterations, the Dreamcatcher 3 board runs remotely on a WiFi connection. You then connect to the Dreamcatcher 'Skylark' web interface via a PC or mobile browser. On this web interface you can browse all your downloaded files. The user guide is a good read for understanding the set up procedure. 

Some screenshots of example received data are shown below.

Conclusion

Outernet have been working hard to perfect their service over the years, and the current offering is the best compromise between ease of use and data rates that we've seen so far. Unfortunately the service is only available in the Continental USA at the moment, but we're looking forward to future expansion. 

Currently we'd only recommend purchasing the Dreamcatcher 3 receiver for the Outernet data service if you understand that the service is in beta, requires a little bit of technical know-how, and like previous Outernet iterations is subject to possible change. Support is only available via their forums.

We can see the service being popular with those who live and work in remote areas without or with expensive internet. Censorship resistance is also another big plus, but satellites would need to be rented for these areas first.

There are also more creative uses. 'Unplugged' getaways are becoming popular in the modern world. Perhaps you want an internet free holiday, but don't want to miss out on important breaking news and weather updates for safety. In the future Outernet could also be used for Bitcoin or other Cryptocurrency blockchain transmission. In past Outernet iterations it was also possible to send a tweet that would be re-transmitted by Outernet. A similar messaging service could be used to control remote devices.

Outernet Dreamcatcher 3 Sale $99 for the Full Kit + Testing the LoRA Chat Application

The Dreamcatcher v3.0 is Outernet's latest revision of their satellite receiver hardware. The freely available Outernet ku-band satellite service aims to keep us up to date with the latest news, provide books, videos, a daily selection of Wikipedia articles and satellite radio. Compared to the internet, Outernet is download only, and is received via their Dreamcatcher 3 hardware with an an antenna pointed to a satellite. At the moment their Ku-band service is in beta testing and so is only available in the continental United States, but they hope to eventually expand to cover more areas of the world.

Starting from today Outernet are holding a 33% off sale. This means that their Dreamcatcher 3 is only US$99 each. To get the discount use the coupon "33%OFFJULY4SALE" on their store. The sale lasts until Midnight Central Time on Wednesday 4 July. The code is valid site wide, so applies to the moRFeus product as well.

Previous Dreamcatcher implementations utilized an RTL-SDR to receive their L-Band network, however that network has now been discontinued. Dreamcatcher 3 utilizes a hardware based LoRa radio to receive their new ku-band satellite LoRa data stream. However, Dreamcatcher 3 has alternative applications, and doesn't need to be used only for the Outernet data service. Dreamcatcher 3.0 is a full LoRa radio that can transmit and receive, and in this post we'll focus on testing that out.

LoRa is a popular wireless protocol that has been designed for Internet of Things (IoT) devices. It is robust against interference and can be used in low power devices.

Dreamcatcher 3 LoRa Chat

Outernet have provided a LoRa two way open source text chat application that runs on the Dreamcatcher 3. To use it you'll need two Dreamcatcher 3 boards. With the application you'll be able to chat with short text messages in real time between the boards. Amateur radio enthusiasts may be interested in the boards as an easy way to set up LoRa experiments.

We note that Outernet are not advertising the transmit features specifically as the board is not FCC approved as an intentional radiator, so it cannot legally be used as an ISM band LoRa device for transmitting and listening to LoRa IoT sensors. But as a ham you are able to transmit with it if you can ensure that the output is clean and legal and on the ham bands. 

Dreamcatcher 3.0 Running LoRa Chat App
Dreamcatcher 3.0 Running the LoRa Chat App

A brief demo of the chat running below is shown. In the video we're using the default 'spreading factor' setting which results in robust communications, but results in a latency of about 2 seconds. Later we'll show how to change the spreading factor to reduce latency.

 

The Dreamcatcher v3.0

Outernet kindly provided us with two Dreamcatcher 3 boards to test the chat application with.

Like the previous versions, the Dreamcatcher is a full computing board with radio built into it. Except this time instead of an RTL-SDR, the radio is a hardware LoRa module. Another difference is that now there is a built in LCD screen.

On the board there are two SMA ports, one labelled "Direct" and the other labelled "LNB". The direct port is what we'll need to use for the chat application as this is the port that can transmit. There are also two SD Card slots, one for the OS and one for storage, a microphone and headphone jack, a USB-A slot with a supplied WiFi adapter, and two USB micro slots, one for USB OTG and one for power.

The package also comes with an LNB that is designed to be used with the Outernet satellite service. The LNB is receive only, so cannot be used with the chat application, so you'll need to use your own antenna if experimenting with the LoRa transmitter.

Chat Setup and Usage

First we burnt the latest version of Dreamcatcher Armbian OS to two SD cards and inserted one into each board. Since Dreamcatcher 3 has a built in LCD screen, you can login and access the terminal through the screen. But as there is only one USB port available, you'll need a USB hub to be able to plug in a mouse and keyboard, and the included USB WiFi adapter. Alternatively, if you connect the USB OTG port to a PC, you can connect to it via a USB serial connection. Instructions for connecting via serial, and for setting up a WiFi connection are the same as in our previous Dreamcatcher 2.0 tutorial.

The chat software is available on GitHub at https://github.com/Outernet-Project/Dreamcatcher-Packet-Tester. To install it simply run the following commands at the Dreamcatcher's terminal:

sudo apt update
sudo apt install libsoc-dev libsoc2
git clone https://github.com/Outernet-Project/Dreamcatcher-Packet-Tester
make

Then you can run the chat program with:

sudo ./chat

Upon running the program you'll be asked to enter a MIXER frequency. This frequency doesn't really seem to matter and we're not sure why we're asked for it. But you can enter any frequency such as 300000000 Hz (300 MHz).

Once you've opened the chat program on both Dreamcatchers you should be able to type in text on the console, and have it show up on the other Dreamcatcher after pressing enter. Remember to plug an antenna in to the DIRECT port of both Dreamcatchers, or run of attenuated coax between them. The provided LNB cannot be used for the chat application.

Playing with LoRa Settings

The actual RF output frequency is by default hard coded in at 2.4 GHz. If you want to change it you can edit the main.cpp file with a terminal based text editor like nano, and look for the #define RF_FREQUENCY entry. Then you will need to recompile by running 'make' again. However note that at the time of this post, according to Outernet the software only works properly at around 2.4 GHz. Apparently this is simply a software limitation and once this is fixed you should be able to transmit at any frequency between 85 MHz to 5400 MHz.

Also by default, the LoRa 'Spreading Factor' is set to the maximum of 12. This means that there is roughly a latency of about 1 second between sending a message, and receiving it on the other unit.

The spreading factor can also be adjusted in the code by editing the "modulationParams.Params.LoRa.SpreadingFactor" variable. This determines how spread out in time the packet it. Larger spreading factors result in more robust error free communications, whereas smaller factors result in lower latency.  Below are some valid spreading factor entries for the code.

Note that if you reduce the spreading factor you'll also want to reduce the RX_TIMEOUT_VALUE and TX_TIMEOUT_VALUE #defines (you'll need to search for these lines in the code. Hint: In Nano CTRL+W is search.). For a spreading factor of 7 a timeout of 100 ms works well.

LORA_SF5 
LORA_SF6 
LORA_SF7 
LORA_SF8 
LORA_SF9 
LORA_SF10 
LORA_SF11 
LORA_SF12

It is also possible to adjust the bandwidth from 200 kHz up to 1600 kHz using the following code on the "modulationParams.Params.LoRa.Bandwidth" variable.

LORA_BW_0200 
LORA_BW_0400 
LORA_BW_0800 
LORA_BW_1600

The LoRa 'coding rate' can also be changed via the "modulationParams.Params.LoRa.CodingRate" variable.

LORA_CR_4_5 
LORA_CR_4_6 
LORA_CR_4_7 
LORA_CR_4_8 
LORA_CR_LI_4_5 
LORA_CR_LI_4_6 
LORA_CR_LI_4_7

You can also adjust the TX output power by adjusting the value specified by #define TX_OUTPUT_POWER. By default it is set to the maximum output power of 13 dBm. The lowest value available is -18 dBm. 

Remember that after making a change in the main.cpp file, you'll have to recompile the chat program by running 'make'.

Below we visualized the different LoRa spreading factors with a HackRF. It's interesting to see how the spreading factor changes the packet transmit time.

Comparing LoRA Spreading Factors
Comparing LoRa Spreading Factors

Conclusion

Overall the Dreamcatcher 3 LoRa chat software works, but is still very much in early development. Regardless it is an interesting tool for experimenting with LoRa. The hardware is ready, and software now just needs to be developed to make use of the LoRa protocol. We also note that the Dreamcatcher is not a plug and play device, and that it's mostly suited to people who enjoy tinkering with new beta products.

We'd also just like to remind that in order to legally transmit you'll need a ham licence. The board is not FCC approved for regular ISM band LoRa use. While the output power of the Dreamcatcher isn't too strong at a maximum of 13 dBm, we still recommend that you make sure to reduce the output TX power, or run a direct attenuated coax connection when testing. There are also weak signal images present at some harmonics, so any ham using this with an amplifier would be of course expected to provide sufficient filtering.

LimeSDR CrowdFunding Closing in Four Days: 80% Funded

The LimeSDR is a new transmit capable software defined radio with a 100 kHz – 3.8 GHz frequency range, 12-bit ADC and 61.44 MHz bandwidth which is currently seeking crowdfunding. At the time of this post there is about four days left to reach the $500k goal, and it is only 80% funded. To try and reach their funding goal they have released another batch of discounted units which cost only $249 USD. After the crowd funding campaign the price will rise to $289/$299 USD. If the LimeSDR is not funded in time, they write that the project will unfortunately be put on hold and it’s future may be uncertain. We believe that this product is shaping up to be a very good TX/RX capable SDR, like the HackRF and bladeRF, but much better overall and for the same or even lower price.

Recently they also released some new updates that show off some LimeSDR features. In a post previously featured on our blog beta tester Alexandru showed how he was able to get the LimeSDR to transmit DVB-S2 HDTV. In later updates they showed how the LimeSDR can be used to:

The LimeSDR Board
The LimeSDR Board

Decoding the LoRa IoT Protocol with an RTL-SDR

The internet of things is set to become the next big thing in technology. The IoT consists of multiple networked devices such as sensors and computers connected in various ways such as via wireless communication protocols. LoRa is an abbreviation of “Long Range” and is one such wireless protocol that is being used in IoT devices. 

[LoRa] is a radio modulation format that gives longer range than straight FSK modulation. This is achieved by a combination of methods: it uses a spread spectrum technique called Chirp Spread Spectrum (CSS) and it uses forward error coding (in combination with whitening and interleaving).

Over at the RevSpace hackerspace, a hardware hacker called bertrik has been working with his RTL-SDR to try and reverse engineer the LoRa protocol. His goal is to make it so that anyone can receive and decode LoRa signals without needing to purchase specific hardware that supports the modulation. The reverse engineering work is not yet finished, but bertrik has already determined many parts of the protocol by looking at the signals in Audacity. He also writes that there is currently a ready made LoRa decoder available for sdrangelove, a Linux based SDR receiver application similar to GQRX and SDR#.

You might also be interested in this previous article we posted about the Z-Wave wireless networking protocol being hacked with a HackRF.

LoRa signals received in the frequency spectrum.
LoRa signals received in the frequency spectrum.