How to reposition your DIY Helium Hotspot

Matthew W. Marcus
5 min readMay 2, 2021

I first learned about the Helium (helium.com) project in October 2020. I stumbled across it at 10pm at night. Once I dove in, I couldn’t stop. I was up until 3am reading and reading and reading and learning. I ended up buying a RAK Wireless unit before I went to bed so that I could be a part of the alpha program they had running for those who wanted to build their own Helium hotspots.

Upon receiving my hotspot, I immediately got to work setting it up. Now, unlike the hotspots today which conveniently pair and connect to a wonderful mobile app via bluetooth, the DIY units do not. Instead, you are required to dive in and configure / manage it via the CLI (Command Line Interface). Definitely a geeky proposition, but one I was ready for considering my comp sci background.

With the unit setup and running, it’s pretty much been a hands off experience ever since. I have done a few things here and there which require me to SSH into it, but seeing as I configured the unit to autoupdate the software whenever necessary the times needed to do anything manual are few and far between.

That was until I decided to reposition my hotspot to a new location. The score of my hotspot went down considerably (from 1.0 to 0.83 to 0.71 to 0.63) due to more hotspots coming online in the surrounding area. So, I moved the hotspot to a friend’s house which was in a position to return the hotspot’s score back to a 1.0.

Doing this required me to tell the network about the hotspot’s new position. With non-DIY hotspots, this is easily done via the Helium app. Just go to the settings for your hotspot and select “Update Hotspot.” Easy peasy.

With DIY hotspots, you need to use the CLI. I had no idea how to do this, so I turned to the Helium Discord group (discord.gg/helium) for help. After a lot of searching, I found a few old posts and conversations with the info I needed. In hopes of helping those other DIYers who might need to reposition their hotspot(s) in the future, I thought I’d compile all of the steps in one, single place. Here goes!

NOTE: this presumes you are running your hotspot in docker. If not, I’m sure you can reformat the steps below to suit your needs.

Step 1) SSH into your hotspot

Step 2) Issue this command:

docker exec miner miner txn assert_location owner={{WALLET}} location={{LAT}},{{LONG}} --payer {{WALLET}} --nonce {{NONCE}}

Where:

{{WALLET}} is the Helium wallet address associated with your hotspot.
{{LAT}} is the latitude coordinate for the NEW location of your hotspot.
{{LONG}} is the longitude coordinate for the NEW location of your hotspot.
{{NONCE}} is the next nonce for your hotspot that relates to these types of transactions.

To get the next nonce for your hotspot:

A) Go to https://explorer.helium.com/ and search for your hotspot. Once found, view the details for it.

B) Navigate to the Activity section of your hotspot and filter all the transactions by “Assert Location (v1)” and “Assert Location (v2)” transactions.

C) Now click on the most recent Assert Location transaction and view the details of it.

D) You will see the Nonce value of the transaction.

The {{NONCE}} value you will want to use in Step 2’s docker command is +1. So in this case, we’d want to use 4 as the {{NONCE}} value.

Step 3) The result of the docker command will consist of a few lines of random characters with “==” at the end of them. Save the output as we’ll need it for the next command.

Step 4) Now you’ll need to interact with the helium wallet via the CLI. If you don’t have the helium wallet, you’ll need to obtain it from github. I would get the 1.4.1 version, as the latest 1.5.x version didn’t seem to work.

https://github.com/helium/helium-wallet-rs/releases/tag/v1.4.1

Step 5) Navigate to the helium wallet directory and make sure your wallet.key file is in the directory. The .key file was generated when you first created the Helium wallet for your DIY hotspot. Hopefully you saved it in a safe location!

Step 6) Issue this command:

./helium-wallet hotspots assert {{OUTPUT}} --commit

Where:

{{OUTPUT}} is the output from the command you issued in Step 2.

Step 7) After issuing the command, it will ask for the password to your Helium wallet. Input it and press enter.

Step 8) If the command is successful, you should see a result that looks something like this:

If so, that’s it, you’re done! Now you just need to wait for the transaction to confirm on the blockchain and then for the resulting action of repositioning your hotspot to take place. You can track this via your hotspot’s details on the Helium explorer website. You should see a new Assert Location transaction similar to the ones you saw in Step 2B above.

NOTE: when repositioning your hotspot, it will lose all of it’s existing witness connections and require your hotspot to start over again. This shouldn’t take too long though. Give it an hour or so.

Happy hotspotting, fellow Heliumites!

--

--

Matthew W. Marcus

Entrepreneur | Ecosystem Builder | Cryptocurrency Baron