RoadTest: Microchip AVR-IoT Cellular Mini Dev Board for LTE-M and NB-IOT Prepaid SIM
Author: VWeaver
Creation date:
Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: SparkFun Thing Plus - nRF9160, Arduino MKR GSM 1400, Particle Boron LTE - nRF52840
What were the biggest problems encountered?: Network Connectivity and Provisioning on Linux
Detailed Review:
After some initial problems I was able to get the board up and running.The provisioning tool and the MPLAB Data Visualizer had to be run with elevated privileges (sudo) on Linux. I was able to demonstrate MQTT functionality by adapting the included examples. I was not able to make webhooks work in time for this review. In short, the board offers good value and a lot of possibilities, and it will benefit greatly from a larger ecosystem of examples and documentation as a community of users develops. At this point, users should expect to invest a fair amount of effort to get to a working application.
I was excited to see this roadtest appear on Element14 as I had several cellular IoT projects in mind. I have done a number of WiFi based IoT projects, but found that WiFi network range was severely limiting in some cases, especially for agricultural applications. My goal with this roadtest was to replicate some previous projects while taking advantage of the greater range provided by a cellular device.
It’s always a good day when a package arrives from Microchip, and this was no exception. Board set up was trivial. Connect the included antenna, insert the sim card into the slot, plug in a USB-C cable, and you are off to the races.
After powering up, the device immediately appeared as a 1.1MB USB drive named CURIOSITY. There was a file named CLICK-ME.htm, which led to a landing page with detailed instructions for assembling the board, registering and activating the SIM card, upgrading the firmware, and connecting to the network. (Notice the lack of URL query parameters in the image below. Later, after the device was properly provisioned, the cloud provider and device id appeared in the URL. )
I followed the instructions, and had no trouble setting up a Truphone account and activating the sim card. I downloaded the latest version of the firmware and installed it on the device. Unfortunately from that point forward my efforts were met with the baleful glare of a red Error LED, and nothing I could do seemed to appease it.
As I recount the issues I had, bear in mind that this was on Linux. The experience may be different with other operating systems.
To begin troubleshooting, I turned to the Arduino IDE. The documentation for getting Arduino set up for the board was thorough, however I was not able to download programs to the board.
I then turned to the MPLAB Data Visualizer. Unfortunately this program exited immediately whenever I tried to run it.
I was able export the compiled programs from Arduino and drop them in the Curiosity drive to run them, and this is the method I used for the remainder of the road test. (If anyone is unfamiliar with exporting compiled programs in Arduino, there are plenty of online resources with the details.) Unfortunately, none of the included programs ran successfully.
I attempted to provision the board to reset it to factory condition, but the provisioning tool failed to find the device.
At this point other priorities arose and I shelved the project for some time.
Getting back to the project, I found that the Arduino libraries had been updated. What exactly changed I do not know, but this time most of the example programs ran and successfully connected to the network. However, the sandbox demo still did not work.
I decided to retry provisioning, and was able to run the provisioning tool successfully with elevated privileges. I then decided to try the MPLAB data visualizer with elevated privileges, and was able to install that successfully as well.
With the device finally reprovisioned to its factory settings, I noticed the CLICK-ME file had been updated. I tried it again, and this time everything just worked. I was able to log data from the board and control the onboard LEDs through the web interface.
Webhooks
Having observed that the included http and https examples worked flawlessly, I decided to try hitting an n8n webhook. However both GET and POST requests failed to reach the server. I surmise it may be due to the n8n server sitting at a subdomain, but have not tested this theory. I moved on to working with MQTT instead.
MQTT
To test the MQTT functionality, I used slightly modified versions of the included mqtt_polling.ino and the decodeMessage function from sandbox.ino. Sending a json message using MQTT Explorer allowed me to control the state of the onboard LEDs. (The structure of the message was determined by printing a message send from the AWS sandbox account.)
Conclusion
The Microchip AVR-IoT Cellular Mini Dev Board is an interesting and useful piece of hardware that I will definitely add to my toolkit for future projects. While there were some challenges in getting the device working, the wonderful engineers at Microchip have clearly put a great deal of effort into making the onboarding experience as painless as possible. Some video walkthroughs, additional example programs and documentation, example projects and such, whether from Microchip or the community, will be very helpful in getting new users started with this product.