Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN

Thread Tools Search this Thread
Top Forums Programming Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN
# 1  
Old 12-28-2019
Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN

My favorite projects are always related to the "latest" tech in command and control, networking and network communications. This Elecrow GSM/GPRS/EDGE SIM5360E 3G Shield seems to be the "latest and the greatest" as far as 3G and GPS, as far as I can see so far, but I has it drawbacks for sure.

I've also ordered a number of IoT devices (WIFI, BLE) and some long range RF TX/RX modules, for example:


I have a question for you.

What, in your view, is the best wireless communications channel for passing data between from the underground parking garage (two levels below ground) to the top of a condo in the same building (27 floors up); with all the concrete in between?

When I am in the garage, my mobile phone (UMTS 850, UMTS 900, UMTS 2100 3G bands) loses signal; so I cannot use those frequency bands (typical here). I guess my question then is what RF band is best for this kind of "communications though a concrete building with a lot of concrete between the devices" ?

Do you think 923MHz LoRa is the best way to go to get a clean signal though 30 floors of concrete in a high rise condo? Or is there a better approach?

FYI: In Asia, LoRa operates in the 923 MHz Frequency Band


What do you think?

Have Holidays!!

PS: See also:

How can LoRa help building owners cut opex?

LoRa is among a number of competing technologies in the marketplace for IoT connectivity including NB-IoT, Wi-Fi and Zigbee and has become one of the most widely used low-cost IoT in-building connectivity solutions due to its ability penetrate dense building materials and long-range data transmission capabilities which make LoRA an excellent candidate for smart building applications.

LoRA has the ability to penetrate dense building materials, including basements and underground locations and can track asset track assets up to 10 kilometers which make it well suited for use in commercial office buildings and campuses deploying smart energy solutions said Pelugu.

LoRa's unlicensed and open architecture consisting of hundreds of sensors, actuators or tags to connect to the network in a cost-effective way, coupled with 10-year long battery life and large network capacity operators can set up LoRa-based networks quickly and at significantly lower deployment costs.
See also:

Extreme Range Links: LoRa 868 / 900MHz SX1272 LoRa module for Arduino Waspmote and Raspberry Pi


Libelium's LoRa module works in both 868 and 900 MHz ISM bands, which makes it suitable for virtually any country. Those frequency bands are lower than the popular 2.4 GHz band, so path loss attenuation is better in LoRa. In addition, 868 and 900 MHz are bands with much fewer interference than the highly populated 2.4 GHz band. Besides, these low frequencies provide great penetration in possible materials (brick walls, trees, concrete), so these bands get less loss in the presence of obstacles than higher bands.

The great performance of LoRa in all these 3 features (good sensitivity, low path loss, good obstacle penetration) makes LoRa a disruptive technology enabling really long range links. This is specially important in urban scenarios, with very difficult transmission conditions. To sum up, LoRa can get long ranges in Smart Cities deployments, so it reduces dramatically the size of the backbone network (repeaters, gateways or concentrators).
My thoughts are that the LoRa 923-925 (“AS2”) frequency band available in Thailand is my best bet to legally (approved frequencies bands) penetrate 30 floors of a condo, from basement to the top, but maybe there is a better way?
# 2  
Old 12-28-2019
Originally Posted by Neo
My thoughts are that the LoRa 923-925 (“AS2”) frequency band available in Thailand is my best bet to legally (approved frequencies bands) penetrate 30 floors of a condo, from basement to the top, but maybe there is a better way?
Bad news. Looks like the Thai government has decreed the "long range (LoRA) band" (in modern, developed countries) to be the RFID short range band in Thailand; it's all very confusing here; but it appears the authorities have made the unlicensed max power so low that this band used in other countries for long range (LoRa) IoT is being pushed down to low range RFID status in Thailand. They appear to be licensing the spectrum to their established commercial telecom companies for any power of use to build a LoRaWAN.

So, it seems my plan to build my open personal LoRa WAN in Thailand may have hit a local regulatory brick wall Smilie

Update: I have sent emails to the government standards and licensing groups to see if I can transmit at 500mW or less (seems that 500mW may be the ceiling for unlicensed applications, which should be OK for my applications).
# 3  
Old 12-29-2019
What, in your view, is the best wireless communications channel for passing data between from the underground parking garage (two levels below ground) to the top of a condo in the same building (27 floors up); with all the concrete in between?
Well that's quite a question. I bounced this on to a colleague of mine, Paul, to see what he said.

His reply:

Arduino radio communication:

I haven't physically ever tried this, but I did research what was the most common radio link used for Arduino projects and I bought three transceiver pairs to try out. They're still on my bench, untested!

433Mhz RF Decoder Transmitter With Receiver Module Kit For ARM MCU Wireless - US$1.39|Shopping UK

I chose this version because the transmitter antenna can be added, rather than already being soldered on board.

Unsurprisingly it is Russian-based buyers who account for most purchases of these modules, and the reviews/feedback are poor in providing useful information.

SMETS2 meters have two (sometimes three) different transmission systems.

- Wide Area Network at either 400MHz (old ITV analogue) or Telefonica/Orange 3G GSM frequency

- In-home links to IHD and gas meter; Zigbee at 2.4GHz
which is now being augmented with 800MHz due to poor signal penetration

- sometimes a Mesh network in rural areas where Telefonica signal strength is low (I have this)

I also have a Honeywell wireless doorbell system in my house which is Mesh technology at 916.8MHz or 868MHz and is definitely better penetration than the 2.4GHz Zigbee.

I have no direct experience of LoRa, but I doubt that even this running at the lowest 433MHz could penetrate 30 floors. It's not the concrete which concerns me, but the steel reinforcing bars acting as a Faraday Cage.

If I was wanting to achieve this feat, I'd be fully expecting it to require "signal relay/filter/boosters" at intervals.

I assume that you are not allowed to attach anything to the building?

My initial thoughts:
1. Could you use existing power distribution wiring in the building to run ethernet over? e.g. Powerline adapters or similar.
2. Could you use a microwave link perhaps bounced off relay within the grounds.
3. Could you run a cable (or fibre optic) cable down the outside of the building?
4. Is there anything that would allow you to install a radio signal relay halfway down the building (eg, a friendly neighbor)

As I said, that's quite a question you've posed.
# 4  
Old 12-29-2019
Initial research shows that LoRa in the range of 433 MHz has a short range and poor urban (penetration). The best results seem to come from LoRa frequencies in the 900 - 925 MHz band.

However, this is only based on a handful of articles on the net and conference papers, including this elementary one by Thai researchers attached.

If I had a good spectrum analyzer in this frequency range it would help things along, but I don't own one, and don't want to buy one for this single project; and don't yet know where to rent or borrow one for a few days.

I have fiber (maybe 7 unused strands) from my condo on the 27th floor to the 4th floor; but that would require a lot of gear to set up a fiber transmitter and receiver; and then an outdoor LoRa gateway node on the 4th floor in an unsecure area; and that still may not penetrate from the 4th floor on the opposite side of the big building to the lower floors of the basement on the opposite side of the building.

Without a receiver and spectrum analyzer available, and being not willing to shell out thousands of dollars for one, my options are narrowing.... need to think about this more.

I will search AliExpress and maybe try to buy some cheap spectrum analyzer or build one that works "OK" for this project.

Another crazy idea is to set up a relay node using a solar panel and battery in one of the trees; and try to relay from the 27th floor into the entrance of the parking garage and back Smilie

Another idea is to get a commercial LoRa device from an NB-IoT telecom company and see if a commercial LoRaWAN service can penetrate into the lower basement. The device costs about $50 bucks and they service is about $12 a year to use their LoRaWAN service (yes, about a dollar a month).

In Thai:


See also:

In English:


In Thailand now, there is a big IoT push and a lot of new services are rolling out.

But unlicensed, I think (need to confirm) I can transmit up to 500mW in the 920-925 MHz band.

Or instead of LoRa, I may also test 3GPP which is the basis for two of the three commercial services in Thailand:


I think will buy an Arduino shield NT-IoT device which uses 3GPP, configure it to send out UDP pings to the Internet (like this site) and use UDP pings to see if it will work in my underground parking garage.

It it works, then I can just send UDP packets from deep in basement to 3GPP (NB-IoT) WAN services and then relay those to my server back on the 27th floor of my condo; and / or use two NB-IoT devices, one in the deep parking basement and one in the 27th floor of my condo.

So, today I will go talk to AIS about their Arduino NB-IoT 3GPP shield and ask them if they think it will work in our lower parking level. If they think it will, I will buy it and test it.

Here is an AIS promotional video for NB-IoT:


For early testing, I may just use


Also, I'm looking at LoRa services from CAT Thailand:


# 5  
Old 12-30-2019
I will test 900 MHZ band NB-IoT 3GPP Arduino shield development device from AIS in Thailand which I just ordered today for a bit over $30 USD. I want to see if it can penetrate the building and connect to the 3GPP network. If not, I can use it for developing "sensor network projects" in my lab.

Arduino Project with NB-IoT (3GPP) and LoRa / LoRaWAN-ais_devicejpg

I think I will also test the same device from another local provider, TRUE after I test the AIS shield above.

Also, I have an appointment with the Communication Authority of Thailand (CAT) to discuss LoRaWAN penetration early Jan after the holidays, both as a service from CAT and to set up an unlicensed LoRaWAN network with private gateway as well.
# 6  
Old 12-31-2019

Still sorting out the laws and regulations in Thailand, which recently changed (yet again).

It seems we can transmit more power at 923 MHZ than at 433 MHZ (and other regulatory requirements are different), so even though the lower frequency tends to penetrate better, word has it here that the extra output power permitted here makes 923 a better choice. However, I'm not convinced either way and it may be device, chipset dependent.

I'll probably test all . (433 and 923 MHZ), because I am also going to experiment with some M5Stacks with LoRa as well.


# 7  
Old 01-01-2020
According to the NB-IoT Arduino device (library) I just ordered, after it is registered with AIS (the service provider), we can send UDP messages to any server we choose; so while waiting for this device to arrive, here is the test code I will use on a server:

python$ cat

NB-IoT First Test Code
Listens on a port for UDP, simple authentication, echo back with unix time
Neo  1 Jan 2020 
Use and modify as you like.  
import socket
import sys
import time

# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
port = 33313
# Bind the socket to the port
server_address = ('', port)
print >>sys.stderr, 'starting up on %s port %s' % server_address
password = "my_cool_password\n"
authenticated = False
receivepw = False

while True:
    print >>sys.stderr, '\nwaiting to receive message'
    data, address = sock.recvfrom(4096)

    print >>sys.stderr, 'received %s bytes from %s' % (len(data), address)
    print >>sys.stderr, data

    if data:
        if authenticated == False and receivepw == False:
            sent = sock.sendto("Password:\n", address)
            receivepw = True
        elif receivepw == True and authenticated == False:
            if data == password:
                sent = sock.sendto("Authenticated\n", address)
                authenticated = True
                sent = sock.sendto("Password:\n", address)
        elif authenticated == True:
            received = "You sent: " + data
            sent = sock.sendto(received, address)
            data = time.time()
            data = "Unix Time: " + str(data)+"\n"
            sent = sock.sendto(data, address)
            sent = sock.sendto("Error\n", address)

        print >>sys.stderr, 'sent %s bytes back to %s' % (sent, address)

So, after I get that simple python code working with the incoming NB-IoT Arduino shield in the mail, will be time to start prototyping on the board.



Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Hardware

Arduino Robot Tank Project

Normally I'm not into kits, but I thought my wife would enjoy this one since she is a big fan of robots and droids on StarWars! We are done with the basic mechanical assembly and starting on the electronics assembly today. The robot's "brain" consists of three levels. The Arduino board, on... (5 Replies)
Discussion started by: Neo
5 Replies

2. Programming

Arduino Project: iPhone to HM-10 BLE to NB-IoT Shield to NB-IoT Network to Internet to Linux Server

This post describes a "work in progress" project I started today. Here is the High Level Overview: Currently, this project sits on my desk as an Arduino UNO (on the bottom), an NB-IoT Shield (sandwiched in the middle), a Sensor Shield (on top) with a HM-10 BLE Module (in the little... (13 Replies)
Discussion started by: Neo
13 Replies

3. Programming

LoRaWAN, Dragino LG308 Gateway, and MicroPython - Quick Thoughts

Yesterday I had a chance to enjoy testing LoRaWAN with the owner of the M2M Shop who was kind enough to drive three hours down the seacoast to set up and test the Dragino LoRaWAN LG308 gateway operating on AS923MHz in Thailand. Ahead of K. Somsak's visit, he had asked me to install Thonny,... (0 Replies)
Discussion started by: Neo
0 Replies

4. Programming

NB-IoT Arduino Shield from AIS (Thailand) First Impressions

Today I received my NB-IoT Arduino Shield for AIS (Thailand). Here is a "pinout" photo of the shield. My shield looks just like the one above, for the most part. I'll post another photo of the actual device later. When I received the shield in the mail, I went immediately to a local... (8 Replies)
Discussion started by: Neo
8 Replies

5. Programming

Arduino UNIX Time - Syncing Computer UNIX Time to Arduino Time with Python

Just finished a quick Python script to send the current unix time over to the Arduino from macOS, so in the absence of GPS or some other way to get the unix timestamp (epoch time) to the Arduino, I can get my macOS and Arduino UNO synced to within a second. Normally, when the Arduino starts... (9 Replies)
Discussion started by: Neo
9 Replies

6. Programming

More Arduino Stuff...

HI all... (Apologies for any typos.) To add to Neo's Arduino subject matter I have decided to upload this in ".zip" format. Ignore "*.info" files these are AMIGA icons only and also the "HAM" drawer as these are photos in ancient AMIGA HAM modes. I have noticed that there are current... (6 Replies)
Discussion started by: wisecracker
6 Replies

7. Programming

Arduino-cli - Uploading to Unknown Chinese Arduino Boards using the Arduino Command Line Interface

In my further exploration of Arduino, today I decided to install the arduino-cli on my mac today. I followed the instructions for macOS but when I got to this part: arduino-cli board list I got the dreaded "Unknown" Fully Qualified Board Name... (1 Reply)
Discussion started by: Neo
1 Replies

8. OS X (Apple)

Semi-Automatic Arduino Detection.

I am working on a semi-auto detection idea for Arduino for the Scope project. It does require a little user intervention but minimal. It works by just responding to two on screen prompts to unplug and plug Arduino into a USB port. There are two versions and both work perfectly well and give... (3 Replies)
Discussion started by: wisecracker
3 Replies

9. OS X (Apple)

Arduino Diecimila Board Access...

This is a very simple starter DEMO to access Arduino Diecimila Board for the Macbook Pro 13" OSX 10.7.5... A potentiometer is connected between 5V and Gnd with the wiper connected to ANALOG IN 0 on the Arduino. This was adjusted to give the Ms and Ls as seen... I now have DC in for this... (0 Replies)
Discussion started by: wisecracker
0 Replies

10. Shell Programming and Scripting

Use The Terminal To Test Arduino Is Working.

Hi all... (Apologies for any typos at all.) This is a step by step _script_ to check if your Arduino is talking to your Linux or Macbook Pro computer using the Terminal... It works on at least 3 Linux flavours and now the Macbook Pro... I hope you find it useful as a simple check for... (0 Replies)
Discussion started by: wisecracker
0 Replies
Login or Register to Ask a Question

Featured Tech Videos