You are on page 1of 10

instructables

LoRa Mesh Radio

by sqij

This is a fairly simple add-on for mobile phones to enable SMS-like messaging in a group when outside cell
coverage, or in disaster scenarios. It utilises Semtech LoRa radios, for low-power/long-range communications.
There are a lot of hardware options, and I am still trying different devices and manufacturers, but for now this
tutorial will show how to assemble and setup one of the following boards:

TTGO ESP32 Lora with OLED


Adafruit Feather M0 RFM96

Supplies:

The hardware can be purchased here:

TTGO ESP32 Lora with OLED . -OR-


Adafruit Feather M0 RFM95

Optional items, but recommended are:

small on/off switch


Piezo buzzer
small 1S Lipo battery
USB OTG cable

LoRa Mesh Radio: Page 1


Step 1: TTGO ESP32 Setup

This board is quite nice in that it includes a nice OLED screen and Bluetooth radio. Unfortunately, the LoRa radio
is not as good as the Feather, and only seems to get about half the range.

With this board you can choose whether to connect to handset via UDB OTG cable, Bluetooth Classic or
Bluetooth LE. You simply flash the board with the appropriate firmware image (there are three different firmware
binaries for each connection type).

Steps:

flash the board with the Ripple firmware image: Follow ReadMe on GitHub
wire up battery and switch
wire up the piezo buzzer to GND and Pin 25
optional: 3D print the case

I have also designed a 3D-printable case for this, which you can download from here:
https://www.thingiverse.com/thing:3865750

LoRa Mesh Radio: Page 2


Step 2: Adafruit Feather Setup

These boards are nice quality, but a bit more expensive. There is a bit more involved with these, as you need to do
some more soldering to install a LoRa antenna.

Steps:

flash the board with the Ripple firmware: Follow ReadMe on GitHub
wire up the piezo buzzer to GND and digital pin 11 . (EDIT: NOT pin 13 as previously stated)
solder a u.fl antenna connector to underside, connect antenna to u.fl
Optional: 3D print the case. See here for the files: https://www.thingiverse.com/thing:3879020

(Optional) Soldering the Dipole Antenna

The 3D printable case is designed for use with this dipole antenna: https://www.banggood.com/T-Type-900MHz-
Long-Range-Receiver-Antenna-IPEX-4-for-FrSky-R9-Mini-R9-MM-p-1361029.html

It's a good antenna, but doesn't have the right connector, so you need to cut IPEX4 one off, then separate the coax
braids and solder to the antenna ground pads (see end pic above). To do this, you need to strip about 10mm of the
outer plastic off the end of the cable, then separate the very fine surrounding coax wire mesh then put some solder
onto this. Then remove about 1mm of the plastic from the inner active wire and put a small amount of solder on
this.

Next, pre-tin the antenna ground pads on the Feather, and the active antenna pad in the middle, then solder the
antenna to these pads (separated coax to ground pads, active inner wire to antenna pad).

LoRa Mesh Radio: Page 3


LoRa Mesh Radio: Page 4
Step 3: Setup the Ripple Messenger App

The companion app for this is called Ripple is connected.


Messenger. Currently there is only an Android
version, which you can download from the Play store: For Bluetooth Classic, you need to make sure
Ripple Messenger bluetooth is on and you need to Pair your
handset/tablet with the board manually. Go to
Each person in your group must be allocated a Bluetooth setting, and select scan/refresh and tap on
unique numerical ID, between 1 and 254. You need 'Ripple Device' when it comes up. Go back to the
to sort this out among yourselves. There's no central Ripple app then tap the 'Choose Device' button and
server for coordinating. select 'Ripple Device' from the list.

You can also (optionally) organise into sub-groups by For Bluetooth LE you shouldn't need to pair. Just
assigning yourselves with different Group-IDs (again, make sure you select 'Ripple Service' in the 'Choose
between 1 and 254). By default you can all just stay Device' screen.
in group zero. The groups are like 'channels', and will
form separate mesh networks. Conversations

Adding Friends From the main screen you just tap on the friend you
want to chat with, which transitions to the
Once you have entered your own details in the Setup conversation screen (as pictured above). The action
screen and selected SAVE, you can then be added bar will show their name, and to the right is a signal
as a Friend to other user's handsets by scanning indicator which will show whether that user's device is
each other's QR codes. This exchanges public keys currently reachable, and how strong the nearest
so you can send messages to each other privately. signal is.
Other devices in your group will silently relay your
messages, but cannot 'open' them up. Just type messages, or tap on the 'pin' icon to the left
of the text box to send your current location.
Connecting Radio
When other users send their location you will see it
The radio board can be connected to the underlined, and with a calculation of how far away
tablet/handset either via USB OTG cable, or via they are and at roughly which compass heading. You
Bluetooth. You must set your preference for this by can tap on the link to see the location on Google
selecting the 'Preferences' menu from the top action Maps.
bar. There is an icon on the top action bar which will
go solid white when it has detected your radio board

LoRa Mesh Radio: Page 5


LoRa Mesh Radio: Page 6
Step 4: Feedback

This is just something I have done as a hobby, and regards,


because I enjoy this kind of work. It has been an
interesting challenge, and is ongoing. Scott Powell.

I'm still looking for better radio modules and hardware


combinations, along with 3D printing designs to make
it more like a consumer device.
Donate
There are likely still a number of bugs to iron out. Let If you find this project useful and feel like throwing
me know if this has worked for you, or if you some Bitcoin my way, I'd be really grateful: My BTC
encounter problems. The feedback is very welcome. address:
1CspaTKKXZynVUviXQPrppGm45nBaAygmS
Enjoy!

This looks like a Great Leap Forward in LoRa communications. There are quite a few good starts
out there, but none seem to have developed. Very keen to make this work.
I've edited the install script and get a good-looking write into the Heltec white board
https://heltec.org/project/wifi-lora-32/

Can you check whether the icon on the titlebar is the 'connected' one? Looks like the Bluetooth
icon with an arc next to it. Also, the icon to the far right on the toolbar should be showing at least
one bar (uses the WiFi icon) to indicate the other node is reachable/online.
Hi, thanks for getting back to me on this.
No, both the left-hand 'Bluetooth-like' icon, and the right-hand WiFi-like 'fan' seen 'in' the entry for
the other unit are both faded, on both machines (Samsung A20 & Nexus 7), and any combination
of the 4 boards that I have your Ripple-USB.ttgo-heltech.bin on.
Should I be able to communicate with the boards via serial terminal? I saw that you had posted the
commands somewhere recently, but didn't notice anything about protocol, baud rate, etc?
Do you know if anyone has it working for these boards?
I'll see if I can dig up a schematic for these things and check the connex as you gave for
ConsinusJ yesterday.
Thanks
Greg
Probably the first thing to try to verify is if the USB serial interface is working. Open up the Serial
Monitor in Arduino IDE, select 9600 baud, just Newline option, then type in 'i0,0' (without the single
quotes) and press ENTER.
There should be a response starting with "I:"
Scott,

Yes, sending 'i0,0' now gets response 'I:126,1' from the Heltec_V2 with your new firmware, thanks!
No similar response from the TTGO boards. Should I try the earlier builds?

Also, the 'bluetooth-like' icon is now defined, and '0.3v' appears beside it. No joy on the 'WiFi-like'
icon, so the other boards aren't cooperating yet.

So maybe I'll just have to wait until the other hardware arrives - unless you're inclined to compile
for them too;)

LoRa Mesh Radio: Page 7


(I can send what details I have on them, but these things seem to have poorly-documented 'micro-
versions'. Is there a sketch that I can put into them that will get a definitive response about what
they actually are?)

Hope you're enjoying whatever you celebrate today.


Kind regards
Greg
Also, I noticed it's a V2 Heltech board. I have just prepared a new firmware binary for that board,
and uploaded to the github repo. Just look in the 'Ver 2' builds, for the "Heltech V2 boards - 433 to
915MHz (configurable), (USB-OTG only)" command
How many nodes did you test simultaneously?

Hello,
does your firmware be compatible with the ESP32 T-BEAM board ?
Europeans will love a 868mhz bluetooth version :D

Many thanks for you job


Regards
Juan
I don't have that particular board, but I'll have a look into whether it needs any build config
(compared to the TTGO/Heltech ESP32 boards and the required pins).
The V2 firmware images now support user-configurable LoRa frequency, but I have yet to publish
the updated Ripple Messenger app to Google Play. (there's now a Frequency field in the
Preferences screen). I will be doing the update this weekend.
thank you for your reply.
I order two Lora32 and one Fearther, that will be my first Lora project.
Does this board will work ? (ICQUANZX Lora32 boatd)
https://www.amazon.fr/gp/product/B07VL9JVKL/ref=ppx_yo_dt_b_asin_title_o01_s01?
ie=UTF8&psc=1

Many thanks ,
Juan
Yes, it should be fine with that board. Use this V2 firmware, and the latest Messenger app, and you
can set the LoRa frequency in preferences: https://github.com/spleenware/ripple#repeater-or-
messenger---ttgoheltech-boards---433-to-915mhz-configurable--usb-otg-only
Any chance we could get a 868Mhz version? I have a lot of these TTGO LoRa32 boards, but they
are all 868 :/
Also, make sure you check your antennas on the TTGO boards, they are notorious for sending
really crap antennas or putting the same antenna for multiple frequencies.. Might account for the
range issue, but it might just be that it doesn't have a PA.
I have just published an update to the app, along with new V2 firmware binaires which not support
configurable LoRa frequency. You can now set it to any value between 433 to 915 MHz in the
Preferences screen.
OK, I've uploaded an 868MHz build to the github repo.

Sure, I'll try to get an 868MHz build out soon. Yeah, the TTGO stock antennas are rubbish! I put
some nice dipoles on, and got over 4km range.
Can you explain more about where to put the bin files and how to flash the firmware? I have the
board working in arduino ide (TTGO LoRa32-OLED v1) and can upload scripts, but there seems to
LoRa Mesh Radio: Page 8
be more prerequisites than specified. Looking at your command lines I gathered you need to have
esptools and espressif arduino-esp32 (which is not required for arduino ide to support this board)
and followed the instructions here https://github.com/espressif/arduino-
esp32/blob/master/docs/arduino-ide/windows.md.
But I still can't get past the first command line as I'm getting this error:
esptool write_flash: error: argument : Must be pairs of an address and the binary filename to write
there
Thanks for share this project.
I can't download android app, I tested with several phones, I get the following error:
Your device is not compatible with this item.
Can you share APK file directly?
Installing via an APK file directly would give the same error. Your device must be incompaitlbe, eg.
doesn't support USB host mode,.
Thanks, but my device is "Huawei Nova Plus 2" and support OTG !

Try downloading the "USB OTG Helper" app from Play, and see what it says about your device
and the OTG support. I know that 'actual' OTG support varies wildly, and is unfortunately
something that is hard to get definitive data on.
good prject!
.. possible to have all the code?

No, not at this stage.

Then we could not replicate this?

Hello,
My name is Jonathan Torres, I've reed your garage project and I find it fascinating. I would like to
talk to you about the project and ask some questions. Please tell me if you have time for a little
chat on the matter.
Thanks,
Jonathan Torres Rosario
I'm quite busy, but you can drop me emails at admin AT spleenware.com

Just a sneak peek on what is coming up soon:


https://drive.google.com/open?id=1n3-7toXSAJwzjuVe...
There will be a new app for provisioning speciality device nodes, like repeaters and sensor nodes
(including dedicated GPS tracker nodes).
never mind, i see it now,,, 868 MHz is not amateur radio use, however, the 900MHz version is, and
would require a license. Just so you know. You might add this into description somewhere
OK, will do. All the firmware images at present are for 915MHz, although I'll be preparing a
433MHz one soon for the Heltec boards.
Lora devices are designed to meet part15 of the fcc rules:
https://www.semtech.com/uploads/documents/an1200.26.pdf
Not necessarily, Lora uses ISM license-free bands
900MHz is a license-free in North America, 868MHz in Europe and 433Mhz Worldwide.
Unless radio transmitting devices are designed to meet Part 15 (no license required), then 902MHz
to 928MHz use requires a license. Amateur Radio stations are permitted to use power levels up to
1500 Watts. This means any device using 902-928 MHz must put up with interference as well as
not interfere with licensed stations. Same goes for the 433 MHz band. - just saying.

LoRa Mesh Radio: Page 9


I like the concept of this. Is there any chance you will be porting over to IOS?
Thank You
Eventually, yes. But I don't have the time or resources to do it at this stage.

I am looking forward to that time.


Thank You.
I don't see a reference to any frequencies that are used by this radio. Can you provide this info
please? If it is in the amateur radio bands, it will require a license to use, even for data only
communications. I would hate to see anyone build this little gem only to get fined for unlicensed
use of amateur frequencies. But it is a sweet idea that I might build myself and demo to our
emergency services group.
I like the idea of mesh but alas my wild roaming days are very limited.
A new location method rather than the long numerical co-ordinates of GPS is ///what3words. The
originators of the system have allocated 3 random words to each 3Msq of earth linked to Google
earth. So any position may be identified via the system, many emergency services are using the
system already.

LoRa Mesh Radio: Page 10

You might also like