What is NB-IoT? It stands for Narrowband Internet-of-Things. It is a low powered wide area network (LPWAN) radio technology that is part of the LTE/4G family. Essentially a cut down version of the LTE technology that your mobile phone probably uses but using a narrower bandwidth (hence the name). It...
28 Oct 2021 By: Paul Hayes
It stands for Narrowband Internet-of-Things. It is a low powered wide area network (LPWAN) radio technology that is part of the LTE/4G family.
Essentially a cut down version of the LTE technology that your mobile phone probably uses but using a narrower bandwidth (hence the name).
It has similar design goals to other LPWAN technologies (such as LoRa and Sigfox). These are mostly ultra-low power usage, long range, low cost, small data usage.
The main difference between NB-IoT and LoRa/LoRaWAN is that an NB-IoT network is provided by a mobile network operator rather than individuals buying and operating their own gateway devices.
It's a brand new technology, the standard was only finalised in mid-2016, as yet there are no commercially available NB-IoT services in the UK. There are some available in central Europe. At the moment, Vodafone UK are the only operator currently rolling out the service but as I understand it, O2 and EE will soon follow. The Vodafone service is currently in the trial stage and coverage is limited to certain areas of the country.
It's my opinion that NB-IoT will become a popular LPWAN standard in years to come so I am excited to be able to give it a try. Alliot's plan is to offer NB-IoT related services and sensors as soon as they are commercially available.
As I said, Vodafone are currently trialling their NB-IoT service, this means that they are making SIMs available to certain partners for testing. I have obtained some SIMs for testing, I cannot get any for anyone else at the moment. Alliot plan to provide SIMs as soon as we can.

Because it's so new, there's not much hardware around at the moment that supports NB-IoT. So to test I have so far bought a Pycom Fipy development board:
https://docs.pycom.io/datasheets/development/fipy/

And an Arduino MKR-NB-1500 board:
https://store.arduino.cc/arduino-mkr-nb-1500-1413

These are far from plug&play devices, the Pycom board needs to be programmed using the MicroPython language and the Arduino board needs to be programmed using a C++ style language.
Both devices need a suitable antenna, I used this one with both boards (they both have the same u.fl antenna connector):
https://pycom.io/product/lte-m-antenna-kit/
You'll really need the Expansion board to go with the Pycom as well:
https://pycom.io/product/expansion-board-3-0/
Finally, you'll need some NB-IoT SIMs!
The NB-IoT node will send and receive data via the network operator's network, they will assign an IP address to the node and it can then communicate with the Internet. To test, you will need a server/computer that is publicly accessible on the Internet. In my case, the Vodafone trial limits usage to UDP only so I made a simple Python script on a test Amazon AWS server that accepts UDP packets and logs the contents to a file. All very simple stuff and not very useful but it's pretty cool all the same! It all works as expected.
The Pycom board simply sends a "hello world" message every ten minutes, the Arduino board does this too but I also made it report it's battery voltage since I'm powering that from a rechargable LiPo battery.

I'll expand on this to connect some real sensors to both devices so they are sending something more useful. I will then make the server part log to a database and produce some graphs in Grafana to visualise the data.
I have also sourced some commerically available sensor devices so will be testing them, another post on that will follow.
This experimentation has taught me a few things.