Nordic NRF9160 Review

I was working on a fixed cellular IoT device last month and was somewhat frustrated with the visibility into the cellular connectivity layer. My device was never moving and it seemed to have good connectivity most, but not all, of the time. I was curious to see if the rare connection failures were caused by intermittent bad coverage from my carrier or if the cause was software issues in the cellular stack and firmware. 

So I spent a few days evaluating the Nordic NRF 9160 (https://infocenter.nordicsemi.com/pdf/nRF9160_PS_v2.0.pdf) . I chose this part for several reasons:

  • Both LTE-M and NB-IoT support.

  • Sufficient compute resources (CPU, RAM, FLASH) for most embedded IoT sensor applications.

  • A price point that makes cellular a possibility for many IoT sensor designs.

  • I’ve used other Nordic Bluetooth devices in several designs and have been happy with the performance, documentation, power usage, and stability.

  • It has an open source stack and a wealth of Nordic tools that allow very good visibility into the operations of the device.

If you haven't used an embedded OS like Linux Foundation Zephyr or Apache MyNewt, there is a bit of a learning curve to master the device tree and configuration for your platform, but in this case, the bring up was a repeat of what I’d already done with other Nordic boards. I chose the Nordic eval. board, NRF9160DK, as my test platform because I was hooking up a variety of UHF RFID modules and I needed access to the various port pins. I didn’t choose the Nordic Thingy9160 for this reason - its port pins are more difficult to access. The 9160DK board has support in Zephyr so the only device overlays I needed to write were for the peripherals (i.e., the RFID reader modules) I was attaching to the board via UART. 

I chose to connect my sensor to the AWS cloud using IoT Core. Part of any IoT deployment is security so I took care to evaluate the secure features of the SIP for key storage. Online instructions from Nordic detailing how to add my device to IoT Core were well written and easy to understand. I did have some challenges getting the AWS cloud to generate a device certificate from the CSR (certificate signing request) generated by the 9160, but since this was just a test project, I imported keys into the device and did the CSR generation locally. Probably not a viable option for a large deployment, but I’m sure I can resolve it when I use this in production.

The Nordic kit for Zephyr came with both AWS IoT modules and FOTA (Firmware Over the Air) modules, and I was impressed with the minimal level of effort required to update the device firmware via the AWS cloud. Keep in mind that the 9160DK comes with a serial flash (this is not built into the 9160 SIP) and I believe the serial flash is used for modem firmware upgrade. I’ll plan to add a serial flash in my designs.

There is GPS on the SIP. I enabled it and surprisingly received GPS locations even within my house. However, I didn’t evaluate sensitivity. I typically don’t add GPS for fixed devices as it adds unnecessary cost and typically is spotty for indoor deployments, but I could see using the GPS feature to assist both automatic and manual provisioning when GPS signals are available at deployment.


Nordic’s cellular monitoring tool was really great. It had a feature to send the cellular packets to Wireshark so I could see everything happening in the protocol. This support for packet debugging is going to be very helpful when I am troubleshooting devices that are struggling to report data. I plan to dig into this feature and will see if I can get cellular packet traces stored internally on the device for later recall. That way there will be a trace log available to troubleshoot these intermittent devices remotely.

In summary, spending this time evaluating this part was really fun and definitely worthwhile. I think the ecosystem of Nordic and Zephyr is really going to accelerate the design and deployment of LTE-M based sensor devices. I can’t wait to use it in a large volume design.

Previous
Previous

How Machine Learning is Applied in the Supply Chain