How To Use The Helium Bridge

by

in

So you’ve read the piece on the Heli­um Bridge and you want to use one to bring your favorite non-LoRaWAN sen­sor data onto the Heli­um Net­work? Rad!

Let’s start off with the cur­rent lim­i­ta­tions, just so you don’t get all hot and both­ered then real­ize what you wan’t ain’t doable yet. Right now, it works “out of the box” with 4 sensors: 

  • WS80 from Fine Off­set (Ecowitt), a small weath­er station. 
  • WH45 from Fine Offset/Ecowitt, an air qual­i­ty monitor
  • Acu­rite 592TXR Indoor/Outdoor Temp/Humidity sensor
  • Spring­field Pre­ciseTemp Soil Mois­ture

For the WS80 specif­i­cal­ly we’ve pub­lished a spe­cial­ized set of instruc­tions so you can make some changes regard­ing how much it reports on Heli­um vs how quick­ly it col­lects data. You prob­a­bly don’t want to be send­ing data out as quick­ly as it’s col­lect­ed, every 1.7 sec­onds, as that would be a fair­ly large DC bill.

Keep in mind that this is just the begin­ning, and that doing this project will intro­duce you to (force you to?) lev­el up your geek chops. This is not a small “build an Ikea table” project. If you’ve nev­er done this before, plan on about 3 week­ends to put every­thing togeth­er so you can reli­ably build a bunch of Bridges. 

You’ll be order­ing PCBs and com­po­nents, sol­der­ing them togeth­er, and pro­gram­ming what you’ve built. It’s real­ly cool, and we’ll walk you through step by step so it’s as easy as pos­si­ble, but be ready to hang in there a bit! 

If you want to use the Bridge with oth­er pro­to­cols like BLE or ANT+, you’ll need to take the hard­ware basics and do some tin­ker­ing, or wait a bit as we con­tin­ue to tin­ker as well and add more options.

You can find the a detailed set of instruc­tions over on Github for how to build a Heli­um Bridge. In this post, I’ll add in a few explana­to­ry points and help guide you through some of the things that aren’t intu­itive­ly obvi­ous to us less-geeky types. 

Let’s think of doing this in three dis­tinct stages:

  • Assem­bling the hardware
  • Pro­gram­ming the device
  • Using it with spe­cif­ic sensors

Assembling the Hardware

Ok, so step one is to order the PCB, or Print­ed Cir­cuit Board that will be the base of the Bridge. To do that you’ll go to the Github and down­load what’s called a “Ger­ber File”. You’ll find that in the “pcb” fold­er, here.

You’ll then upload the Ger­ber to a place that’ll print ’em for you. We used OSH Park, which you can find here. When you go there, you’ll seen the options to upload your files right on the main page. 

It can be a lit­tle con­fus­ing going through the order­ing process, and it seems to change every few months or so. The impor­tant parts are to make sure every­thing lines up cor­rect­ly and to make sure you order what’s called a “mask” when you order the board. Trust me, this’ll make apply­ing the sol­der paste much easier.

You see, we’re NOT going to hand sol­der this board. You’re going to use what’s called a “Reflow Oven” to attach the var­i­ous com­po­nents. You can buy one of those, or, way more fun, you can build one! We built the Controleo3 from Whizoo using their kit and a toast­er oven!

Once you have (or have access to) a reflow oven, you’ll need the board and the com­po­nents to put in and “cook it” as well as con­sum­ables like sol­der paste to make the elec­tri­cal connections.

Every­thing you’ll need to buy or have on hand oth­er than the reflow oven is list­ed in the Gith­hub. Rather than dou­ble-list­ing ’em (and risk­ing have sep­a­rate lists in dif­fer­ent places), I’d just go over there and put in your orders. It can take a few weeks to get every­thing in.

In big pic­ture terms, the PCB is the struc­ture to which the brains (the Lily­go com­put­er), the radio (the CC1101), the pow­er (the 18650 bat­tery), the charg­ing source (the solar pan­el) and the receive & trans­mit anten­nas to attach to. You could con­nect all those man­u­al­ly (that’s how we start­ed), but it can be a lit­tle tricky to do that, and using the PCB makes for a much clean­er final project.

Here’s the print­ed PCB and a PCB with the “mask” taped over it and ready to have the sol­der paste applied. Note how the holes in the mask line up with the places where the sol­der paste will need to go on the board.

Using a card (usu­al­ly sup­plied with the mask), smear on the sol­der paste once you have the mask taped on. Remem­ber to tape the board to the mat first so it does­n’t slide under the mask.

Once you’ve got your com­po­nents placed, care­ful­ly remove the mask, then slide every­thing into your reflow oven and cook it!

Here’s the PCB after we added sol­der paste and the CC1101 (the square green board). We got a lit­tle ahead of our­selves on this one and cooked it before we added the UFL con­nec­tor (right below the green board). 🙂

Ok, so that’s cool. You’ll end up doing a lit­tle hand sol­der­ing, but noth­ing crazy. 

While it may seem con­fus­ing to read about this, once you have all the com­po­nents in front of you it will make far more sense, and you can basi­cal­ly “see” the sig­nal flow. 

Pay care­ful atten­tion to the Github instruc­tions, espe­cial­ly the parts about polar­i­ty on the bat­tery. Oh, and don’t lay this thing down on a met­al sur­face with the bat­tery in; it’ll short! Ask me how I know…

Once you’ve got it all togeth­er, but BEFORE you put in the bat­tery or con­nect the solar pan­el, you’ll con­nect to the Lily­Go (the thing with the red squiqq­ly line over it in the pic­ture above) with a PC and pro­gram the thing.

Programming the Device

I’ve always found pro­gram­ming any of these boards to be a lit­tle finicky, which has almost always been a result of my igno­rance and inep­ti­tude. Read the direc­tions care­ful­ly, go slow­ly, and if you have any prob­lems jump on over to the GK Dis­cord and look for the Heli­um Bridge chan­nel; we’d love to help out! 

If you use Plat­formio (which is what we used and rec­om­mend) and you haven’t before, it’ll be much trick­i­er to start, but once you’re up and run­ning with Plat­formio it’s uni­ver­sal­ly liked far more than oth­er options. So, pre­pare for a(nother) steep learn­ing curve. Rad, right? 

The step-by-step ver­sion is over on Github. If you have ques­tions please drop ’em here or jump into the Dis­cord link above.

Using It With Sensors

Ok, so as it cur­rent­ly stands you can use with sen­sors list­ed above. Some of them are on 433MHz (the soil mois­ture sen­sor and the temp/humidity sen­sor list­ed above), and some are on 915Mhz (the weath­er sta­tion and the air qual­i­ty mon­i­tor above).

As thou­sands of sen­sors are out there, it’s not prac­ti­cal to list every sin­gle option and con­fig­u­ra­tion. You’re head­ing off a lit­tle into the wilder­ness here as you add more and more sen­sors. If you don’t find that fun, this may not be for you. 🙂

Keep in mind that the Bridge does­n’t dis­tin­guish between what it hears; it’s not like it’s just “lis­ten­ing” for one device. If there is a weath­er sta­tion and an air qual­i­ty mon­i­tor in range, it’ll pick up and retrans­mit both sets of data. We’re not sure of the lim­its here as far as how many devices an indi­vid­ual Bridge can han­dle. For now, if the sig­nals over­lap in being received, you’ll lose a reading.

It’s rea­son­able to think you’d eas­i­ly han­dle 5–10 sen­sors per device, but that’s not a guarantee. 

The data is sep­a­rat­ed out in the decoder, so you can have a cou­ple dif­fer­ent sen­sors all flow­ing through one Bridge and get­ting sep­a­rat­ed out in the Decoder on what­ev­er Con­sole you’re using. 

One of the cool things Dirk did was write the decoder so you don’t have to adapt it for Heli­um Con­sole or the Meteo­Sci­en­tif­ic Con­sole; it’ll just work. Neat, right?

Areas for Further Exploration

  • Lev­el up MQTT — Have each sen­sor have its own named MQTT topic. 
  • Adding more sen­sors — Mod­i­fy the rtl_433 esp libarary and add more sen­sor decoders to the javascript decoder
  • In the WS80 ver­sion of the code, we have a bunch of fea­tures like “sleep to save pow­er”, report­ing on bat­tery sta­tus, and aggre­gat­ing data. Inte­grat­ing some of those func­tion­al­i­ties into the LMICnode.cpp would be pret­ty rad.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.