Posted

There are a few reasons in the Helium world why you might want to turn a raspberry pi into an ethernet router. However, what I care about is a customizable approach to cell backhaul. As it stands right now all off the shelf Helium miners are essentially black boxes with no SSH, no USB, and no real interfaces except through the app and any bluetooth switches. So the goal with a DIY ethernet router is to create a machine which forwards internet from another location to the miner, from which you can load up with all sorts of customized solutions.

Now, a warning. Doing this is fraught with pitfalls and unexplained bugs. I have figured out a sequence of steps which works for my setup, but inevitably some things can change which screws up this carefully choreographed setup.

A few tips before starting

  • Have another SD card with a fresh raspberry pi reflash ready to go. Starting from scratch is quicker than undoing whatever mess was made.
  • You need local access to the raspberry pi. If you’re SSH’ing over wifi, its going to cause trouble.
  • I have tried this on Raspberry Pi OS and OS Lite (32-bit) dated from late December 2020 to January 2021. Use the official Raspberry Pi SD card reflasher tool.
  • Tested on Pi 3b+ only.

Routing usb0 to eth0

The behavior I want is that any device connected to the Pi via ethernet cable will view the Pi as a router. The Pi will assign IP an address and function just as a router, forwarding any source of internet to the connected device. To do this there are prerequisites and certain scripts must be run on the Pi.

Step 1: install dnsmasq

This is a straight forward and easy step. sudo apt-get install dnsmasq

Step 2: install the internet routing script

This step is the most troublesome. There are many instructions to accomplish this on the internet, however, this is the only reliable way I have found to accomplish what I am after. Here is a list of instructions which didn’t work for me: [1][2][3][4]

Back to what worked:
curl -O https://raw.githubusercontent.com/arpitjindal97/raspbian-recipes/master/wifi-to-eth-route.sh

Move it to /pi/home/
sudo mv /downloads/wifi-to-eth-route.sh /home/pi/wifi-to-eth-route.sh

Give the right permissions
sudo chmod 755 wifi-to-eth-route.sh

Step 3: modify for your needs

!! Important !! You need to change one line depending on your internet channel configuration. By default, wifi-to-eth-route.sh will forward wlan0 to eth0, in other words forward wifi to the ethernet port. I want to change that to forward usb0 to eth0. Usb0 will eventually be the name of the cell internet portal. Depending on your exact Pi Hat situation, it may also be called wwan0.

With nano,
sudo nano /home/pi/wifi-to-eth-route.sh

Change this line:
wlan="wlan0"

To:
wlan="usb0"

Step 4: finish the config

This script needs to run at boot. To do this, run these commands: sudo nano /etc/rc.local

Add this command before exit 0
bash /home/pi/wifi-to-eth-route.sh

Test it by connecting a device by ethernet to your Pi. It should go straight into an automatically assigned IP address with internet connectivity.

Author

Posted

It’s a common and important question. How much data do these boxes actually need?

The state of Helium in January 2021 is such that the next big wave of boxes entering the scene (RAK v2) will be packet forwarders and miners all in one – meaning no DIY cloud miners with endpoint nodes subsisting on a whisper of data. If you’re concerned about bandwidth usage, listen closely. RAK v2’s will have the mining software built along side the LoRa forwarding software, all in one convenient package, but only accessible via bluetooth, ethernet or wifi, with a Raspberry Pi running the show.

To really dig deep, I brought together a Raspberry Pi to act as a cell backhaul wired router (more on this at a later date). My Helium hotspot has LoRa transmit + miner included, aka the full data hog setup. I’m utilizing a 4G/LTE data plan with no speed caps to make these measurements. My node is nothing special, it has about 4-5 witnesses and brings in 10-15 HNT per day as of early January 2021.

I use the eth0 fields within /proc/net/dev as a way to measure bandwidth usage. Informational link.

cat /proc/net/dev

Below are graphs on a cumulative basis (the linear looking ones) and on an 15 minute increment basis. In this 5 day period, a couple takeaways:
  • You’re receiving 2-4 mb every 15 minutes.
  • You’re transmitting between 2-7 mb every 15 minutes.
  • Usage is consistent through the 24 hours.
  • Extrapolating to a month, thats 8.6gb per month receive, 20gb per month transmit.

As an independent source of data, I asked my mobile carrier to give me a report in this same timespan. One datapoint in their (confusing) report is I used 824090 kb during a 72159 seconds session across receive and transmit, or about 90 kbps on a continuous basis.

It’s important to note I was not in a consensus group during this period. I hear those need even more data, possible 10x more, for a limited period of time.

This 5 day window overall has smooth consistent predictable level of traffic – no highs or lows. There’s an interesting transmit inflection point on January 11th 2021 – software update? Not sure.

So the TLDR is budget for 30gb between receive and transmit. Is that a lot? According to some sources, Netflix consumes between 20-60gb/month. So, bringing a Helium miner into your home is like having another roommate who watches a lot of Netflix.

Author

Posted

So you want to run a cellular backhaul for your helium mining setup? Welcome to the first step in achieving the ultimate in locational flexibility. Identifying a data plan in conjunction with the right 4G/LTE hardware is an important step. Here’s a short survey of the data plan landscape with a Helium miner use case in mind.


Some of the nuance of data plan selection comes from the nature of the Helium use case. Helium is “IoT-ish” – it facilitates the IoT landscape, but the miner itself is hardly IoT. A non-cloud miner, in other words every hardware generation besides the short-lived DIY program, will consume 10’s of gb per month, or 100-200mb per day. Yes, that means the RAK v2 miners too — in fact, the RAK v2 cannot be made into a cloud mining compatible machine. Officially sanctioned cloud mining native hardware is still a far away dream for the Helium community as of early 2021.


Back to picking a data plan. Mining cares less about bandwidth – the mining task needs 100-200mb per day, and can subsist at a trickle rate. Its enough data to be a meaningful consideration, but there is no human in the loop to get frustrated at buffering youtube videos, so we can trade off bandwidth with cost.

Dont end up like this, pick your data plan wisely


The “helium as a member of my family” plan


Pros: Simplicity. Might even be cheap for 1-2 added lines. Its fast and easy to manage within preexisting frameworks provided by your carrier.
Cons: If you want more than a handful of miners running, this method just doesn’t scale. Plus you’re paying for capabilities like voice/SMS which you just don’t need. You might blow through your data allowances by consuming 10’s of GB per month, then your mom or wife will be ticked off they can’t listen to spotify because you’re mining cryptocurrency with a cellphone.
Verdict: Great if you don’t want to complicate your life.

The Twilio / Sixfab pay-as-you-go interface


Twilio / Sixfab pay-as-you-go (link)


Pros: Up and running quick. Works on large variety of bands, including LTE-M & NB-IoT which are “IoT” type bands, supporting low power and low bandwidth hardware (for example, Quectel’s BG96 module). Data dashboards to visualize usage, uptime, availability.
Cons: Holy mother of expensive data. $0.10 per mb? How does the tune of $500 / month in data consumption sound? Use for prototyping, but avoid. I wouldn’t even use with cloud mining because one poorly planned device firmware update could have you wake up to $500 bills.
Verdict: Great if you like losing money.

Above: Embedded Works support team in action


IoTDataWorks / Embedded Works Unlimited plans (link)


Pros: The price is right for 64kbps versions at $40/year. Compatible with readily available 4G radios: Quectel’s EC25 (Cat-4) and Telit’s LE910C1 (Cat-1). No frills: just data, no voice/SMS. When I ask them questions via email I’m connected with people who know what they are talking about. Refreshing. Two thumbs up from me.
Cons: Will NOT work on Cat-M1/NB-IoT radios. Their backend is just plain janky – you literally “shoot them an email” to get the SIM “cranked on”. No way to monitor usage, uptime, total data — again, “shoot them an email” and they can tell you. They need to up their game here.
Special note about buying from Embedded Works actual website – they have a special listing for static IP address assignments for the cool price of $20/year. This could potentially make some tasks easier.
Verdict: Looks like a winner, but no frills. NOTE: IoTDataWorks is the same as Embedded Works.


AT&T LTE-M One Rate Plan (link)


Pros: The price looks right at $32/year with unlimited access to the LTE-M bands, which are capped at 300-400kbps (fine for our needs). I see Quectel’s LTE-M radios BG96, BG95 listed in AT&T’s gigantic list of approved modules.
Cons: The fine print on this plan spooks me: “May not be used to establish a continuous, unattended connection to the AT&T network.” Uh..that’s literally what I need. I fully expect the ban-hammer to be indiscriminately applied, with kafkaesque attempts at seeking tech support.
As luck would have it I have a Quecetel BG96 Pi HAT around which uses the LTE-M spectrum. While AT&T’s interface is nice, my experience with the LTE-M spectrum its self was pretty lackluster. I could never maintain a solid connection.
Verdict: The problem isn’t with AT&T’s web interface, but my experience on LTE-M was pretty crappy. I’ll stick to your garden variety LTE/4G

Hologram.io


Pros: Flashy website, easy to get rolling. Love the color scheme.
Cons: I don’t see any cheap trickle data plans. I’ve heard anecdotes of waking up to $500 charges due to poor data cap configurations.
Verdict: There’s better stuff out there for the Helium use case.

Choice IOT

Next time maybe we can try out Choice IOT, if they ever return my emails :).

Author

Posted

Welcome to DeWiGo.
De = Decentralized
Wi = Wireless
Go = GO!

Stay tuned for more posts documenting my exploits in developing cellular backhaul applications & other technical ramblings pertaining to the Helium network.
  • Which 4G modems work and where?
  • Whats the best data plan?
  • Deploying hotspots in remote areas.
  • Pontificating profitability.
  • DIY options.
  • Hardware shopping lists.

Author