Nordic SDK 3.1.0 Sample advice

Hello, 

I currently have a product using the nrf9160, that started development 4 or 5 years ago. The firmware uses SDK 1.6.1, and whilst I have had to correct some bugs in the SDK, it works fine. 

As a company, there has been some desire to update to the latest SDK so we can explore using the nrf9161 / 51. I tried a few times in the past to update to SDK 1.9, 2.0, 2.1 but so many of the libraries had fundamental changes that I just found it impossible. So I was very aware that if I was going to start redeveloping, it would basically be from scratch. With the release of 3.1, I thought now might be the time to look at it again. 

The first thing I looked at was the MQTT example, as that is the main feature we use on our current firmware, and that was rather scary. Zephyr SMF seems to be a complicated way to do a simple thing, especially with the ZBUS implementation. 

For context of my current firmware implementation, I have multiple threads handling different things, one related to all modem stuff, one for measuring a sensor, one for handling UART requests, etc, and the all wait on a semaphore. Then it's just timers and hardware interrupts that deal with giving semaphores. 

So the question is, does 3.1.0 force us to use SMF, or is there a more conventional library with an API for things like MQTT?

If the latter, are you able to recommend samples to look at for MQTT, Modem connection, external flash read/write, UART and I2C?

Thanks, 

Damien 

Related