Story of development - Open Source LoRaWAN gatewaysFollow article
A few years ago we were impressed by the newly release LoRa interface. It looked fantastic - the ability to build your own Wireless network for hundreds and thousands of nodes and gateways. We felt that it gives you a way to become an LPWAN network operator.
So we decided to dive deep into LoRa.
We started by ordering some development kits as we usually do, with a quick google search we found about the iC880A development board. After a few weeks of waiting and here it is - the first SX1301 based LoRa shield. We tried our best to handle it very very carefully so as not to damage it by static discharge. Then 20-30 minutes and we got our first LoRaWAN gateway:
It was ok to keep our gateway in this form while it is placed on the table. But what if we want to place it somewhere outside trying to catch some LoRaWAN signal from end nodes we ordered too:
We were pretty sure that we don't want to see any wiring at all! Just power supply cable and nothing more!
It is hard to imagine but there was a limited amount of Lora development boards at that time! No SX1301 based Raspberry Pi shield at all! At least we were unable to find it! What about designing it by yourself?
But we were able to find the SX1308 based LoRaWAN shield, so we ordered it and were able to run LoRaWAN gateway as fast as the ic880A.
What is next after the prototyping stage is finished? Correct. Development of own LoRaWAN gateway.
We started to look for a cheap alternative to Raspberry Pi and found it - Orange Pi zero. As for now I understand that it is was unnecessary time waisting, but we did a lot of software development and completed the following:
- Ported OpenWrt to support Orange Pi;
- Released source code of LoRaWAN Open Source gateway!
Gosh! We spent so much time doing it! Just to drop it in the trash bin when we decided to switch to industrial-grade hardware.
But for now, except for software development, we designed hardware too. Our replacement of ic880A. we got a reference design from Semtech! Luckily it was for Altium. After a few days or weeks of redesigning, few weeks of waiting for PCBs and here we are:
We go industrial!
Unfortunately, as I said before, it was totally an unnecessary step to deal with Orange Pi, as we finally decided to become industrial-grade hardware, not consumer-grade.
Surprisingly - there was no industrial-grade development board with out of box support for OpenWrt! At least we were unable to find it! But OpenWrt is so well suited to communication devices like LoRaWAN gateway!
So yeah, we started to design our own PCB with an Industrial-grade CPU onboard! Correct. The easy way is not for us! Right to the mountains and ravines.
Three key factors to choose CPU for our needs were:
- The lower cost of CPU is better.
- Linux driving capabilities. From a hardware point of view, it means MMA capabilities which means DDR3 onboard.
- Becomes from the second factor - existing reference design to get already traced DDR3 interface.
So we decided to use IMX6ULL.
A few months of SW/HW development and we got it.
CPU + PoE power board:
and LoRa PHY board mounted on the CPU board:
By the way, the CPU board was designed to be pin to pin compatible with Raspberry Pi to have the ability to use LoRa phy board as a Raspberry Pi Lora gateway shield.
For now, it looks like this:
The only disadvantage of the CPU board above was that the same PCB was used for 0.8mm BGA and 0.5mm pitch QFN ICs, 0402 SMD components with 1206, 0805, 1.27mm pitch ICs same time.
So we decided to split this board into two: one of them will be power board, the second is CPU SoM:
Packed in the waterproof enclosure it became our first industrial LoRaWAN gateway:
There was up to ten iterations of SoM. For now, it has two Ethernet PHY IC + WiFi PHY IC onboard. Next, we developed a test-bench setup for that SoM to make a mass production:
Next was LoRaWAN indoor gateway based on the same SoM and LoRa PHY board with a light redesign of PCB shape to fit enclosure we choose:
Released source code for both of them.
That is it?
Of course not!
After talking with clients, we came to the conclusion that the current paradigm of deploying LoRaWAN networks using base stations installed on masts and rooftops, copied from mobile operators, does not work well in the case of LPWAN networks, since the maintenance of such base stations is very very expensive! It makes this awesome technology as LoRaWAN not so widely available for small companies and individuals.
So we found a solution that will be the next generation of LoRaWAN networks deployment strategy.
Here you can see a more detailed explanation of our idea:
In short instead of going by way of mobile network operators, it is better to integrate LoRaWAN gateways into the existing environment. So we started the development of LoRaWAN Intercom.
Being placed at doors of apartment buildings it makes such end node like water meters and electricity meters close to the base station with a range smaller than 200 meters.
- No need to use an expensive external 2-meter length antenna;
- No need to pay for expensive high rise installation works;
- No need to make monthly payments for masts rent;
So we started the development of such a device.
There are five-to-six functional blocks to be implemented:
- CPU SoM (already implemented);
- LoRa PHY module (already implemented using SX1301. Probably will be replaced by SX1302 a little bit later when it will become available in smaller batches or we will be able to order 3000 pcs at once);
- 3G module (for audio-/video-streaming from InterCom to server and to connect packet-forwarder driven integrated LoRaWAN gateway with separate LoRaWAN server);
- Audio module (already implemented);
- Video module (already implemented);
- NFC module (under development);
- Capacitive/inductive keypad (we are going to make button-less Intercom, if possible. Under development);
So here is the audio module:
For now, that is it!