I wanted to dabble a bit in electronics and so I thought of building a LoRa (long range radio communication) based device that can send and receive messages also creates a mesh network that enables messages to bounce from node to node increasing range.
Things I bought / you need to create this project...
- 2 esp32-wrooms (i mean you need everything in pairs so that you can test it out)
- 2 LoRa RFM95W-868S2R (basically any rfm 9x works, but 868 means that it operates on 868 Mhz, there's three frequency that don't require a radio license, and its based on your country, for europe and india its 868, for NA its 915 and rest 433 ig)
- 2/4 bread boards 💀 the esp is too wide, so for prototyping either you let one side hang or join two breadboards, so i got 4 so that i can build on seperate huge breadboards
- male to male pins
- 2 mm headers... ( will explain later)
The LoRa chip should have headers on it, otherwise you'll have to solder them... now its a pretty weird chip, its not meant for breadboard prototyping.
So breadboards have a pitch of 2.54 mm and this has a pitch of 2 mm so it wont fit, you gotta solder the headers and then solder some wires so that you can use it (had to learn soldering and it took a while)
the connections to make for reference

Now for the initial coding part, i'm writing this in arduino since tinygo doesn't support wifi and the rfm library is very old, so there's this library called LoRa by Sandeep Mistry and it works fine.
Here's the initial code to send messages via the terminal
After testing the wire antenna, I found out that the range sucks a lot in areas with a lot of buildings.
This led me down the rabbit hole of replacing this with a dedicated gsm antenna, and making a pcb for that.

After getting the PCBs printed, soldered the rfm95 chip and the gsm antenna on it with normal headers and now everything works nicely and is stable as well.
Tested the range, and I can receive messages in a clear line of sight with a range of 2.5 kms+ or more, wasn't able to test longer because 💀noida seems to have very less places with a clear line of sight near my home atleast (cars and metro stations don't really matter they were in b/w my testing range... but huge buildings do block signals)
I added basic bluetooth support so that I can talk using two phones :)
Here's a very bad demo video:
Things left to implement: E2E encryption, proper public key based identification of nodes, and a dedicated messaging app
DM me on x if you wanna work on this :)
You can even attach HAM radios and communicate on this network all across the world...