The Ultimate goal of this product, as I see it, is to Develop prototype software for the Sequans Monarch Go LTE Modem. The kit can be used to implement prototype Applications that benefit from LTE wireless broadband communication. The development kit provides a platform to Develop, Test and QA embedded software before it is released to Production. The kit is comprised of hardware components from 3 hardware companies (Avnet, Sequens, NXP) and 1 Telecom company (Verizon).
Updated [ July19 2021]
If you are planning to use the kit in Europe, you should read this review AVNET Monarch LTE-M Development Kit -- EU - Review created by Jan Cumps
He has done a great job testing the Modem using SIM cards available from European services.
Updated [June 19 2021] Verizon Thingspace service PROBLEM ... BEWARE
It has been a few months since I finished my review and I was still getting billed monthly for the service. I decided to deactivate my device so I would not keep getting charged. I figured I would reactivate it in the future for my next project using LTE. I imaged, it would be as easy as going to the Portal that I described in this review and deactivating my Device, since that was the place I connected and paid for my device to begin with. I followed the deactivating link on the device and the status would not change from ACTIVE. I checked the LOG and It stated it failed, but didn't explain why?
So, It didn't work as planned! Essentially, I ended up Removing my account altogether and received an email stating that my Credit Card has been deleted for my account. Which is good but I had deleted my account? was my account still active? was I going to be billed? all these questions and more I relayed to Customer Support through the online support messaging system, since you can't talk to people it seems anymore.
Any way, I received an email stating that I would be helped and It could take 24 hours. I did receive another email in about 2 DAYS, stating that my account was credited and I had a zero balance on my account. They never answered my other question about why the portal didn't work for me. A little frustrating to say the least. And I won't know if I'll be billed on my Credit Card for another Monthly subscription to the service. I'll need to wait for my next Credit Card statement in a month to see if I was charged again. It's not a lot of cash ($1.61/month) but if your not using it for a while then it can ADD UP.
Any way, the take away here is that Signing up for a monthly service plan is very cumbersome to pause the service and get POSITIVE reinforcement that it is in fact paused and you will not get a monthly charge for something your not using. Verizon needs to put more time and resources into making this billing Portal work properly, giving a reason for failure and supplying better support on the usage of the portal.
This review focuses on the development of embedded software, rather then the Hardware. The only hardware focus is on attaching sensors to the kit. My goal is to focus my review on the software process of the implementation of LTE IoT Applications using the kit.
This is my first RoadTest and I am thankful to element14 for the opportunity to review this piece of tech. I do not have an electronics background, but I am interested in IoT. My background is more on the software side, with a Bachelors of Science Degree in Computer Science from Boston University. I Graduated from BU in 1980 and had been working as a Software Engineer since then until I retired in 2018. I've been presently experimenting with IoT and I've used a few Development kits. I'm not keen on soldering (my dexterity is not as good as it use to be !) So, Development Kits allow me to experiment without soldering.
This Review is challenging me to learn a new MCU embedded software development environment as well as a new technology namely LTE. Also using a new LTE service and API in the Verizon ThingSpace service. I will be conducting experiments, using the kit to run it through is paces. I'll be using examples from the the element14 page and a set of workshops presented by the Avnet Engineers, I'll make comments and notes on each experiment that I do in this review. Since I'm following experiments that are on the community I will not be including content from them, but rather giving a link and commenting on my results. I'll also try to conduct some experiments with some sensors, that I have lying around using the kit and knowledge that I acquired from experimenting with the kit.
BUY IT NOW
Unboxing of the Kit
This card was also in the box, but it was not in the video.....
A Workshop Deep Dive into the Monarch LTE-M Development Kit Advantage
Follow the workshop for an excellent overview of the Development kit
The Monarch Go Workshop: Part 1: Deep Dive into the Monarch LTE-M Development Kit
The event is over but View the Event Recording here.
My Software Development Platforms
- My Software Embedded platforms, consist of 2 different Operating systems (Linux and Windows 10) , running on 2 different Intel based computers.
- My Linux platform is Running on a un-used laptop that I commandeered for the job.
- Processor: Intel Core i3-2330M CPU @2.20GHz x 4
- Memory 3.8 GB
- My blog describing how I built it.
- My Windows Development Workstation
- Windows 10 Pro
- Version: 2004
- OS build 19041.867
- Installed on: 11/7/2020
- Processor: Intel Core i5-450 CPU @3.30GHz
- Installed Memory: 8.GB
Quick start card Getting Started
The Kit includes these 3 Hardware components
Layer Block Diagram
- NXP LPC55S69-EVK
- Avnet Monarch Go Arduino Shield
- Sequans Monarch Go LTE modem
- Verizon ThingSpace IoT SIM card (comes preinstalled on the modem)
Quick start with NXP LPC55S69-EVK Link to video on NXP site.
I found this page very helpful in Understanding the use of this component
Notes and comments
- I had some trouble getting registered on Verizon ThingSpace in the beginning.
- Download the document from the link
- They are more descriptive.
- The Workshops given by the Avnet Engineers is a great way to get yourself acclimated to the Kit. They helped me get acclimated to the Kit
Jumping Right in
My first experiment
- " step-by-step procedure for implementing the NXP microcontroller embedded application plus corresponding Microsoft Azure IoT Central cloud application, to achieve a system-level design for remote monitoring and control of a Monarch Go LTE-M Development Kit, via it’s Sequans Monarch Go LTE-M modem, using Verizon 4G cellular network for secure connectivity between the device and the Microsoft Azure IoT Central cloud service.".
- Download the following Pre-Work PDF and follow the directions to prepare your development environment
- Monarch LTE-M Workshop 2 PreWork.pdf
- MY Notes
- Option 2 - Verizon ThingSpace Sign Up
- I found the ThingSpace website very confusing at times. This explanation in chapter 2 "Sign Up for Verizon ThingSpace Account and Plan" in the document Monarch LTE-M Workshop 2 PreWork.pdf ,helped me get the task of signing up, selecting a plan, and activating my modem pretty painless.
- These instructions are much better, than described in the Kits Quick Card getting Started option 2 directions.
- Option 3 - Azure Free Trial
- If you have never signed up for a free Azure trial before, then this is a great way to experiment with Azure. You will need an account to follow along with the example.
- However, your allowed to create another free trial again on the same account using the same Credit card.
- This was my case, so for this Review, I created a new Microsoft account and used it to login to Azure
- This created the 7 day free template described in the instructions.
- If you sign out you then have to connect directly to here: https://apps.azureiotcentral.com/
- and go to the my app tab located on the .on the left hand sidebar. as described in this screen shot------->
- When the 7 day trial ran out, I was able to create a second one by:
- Logging into the account created for the first free trial and clicking on the link
- If you added any functionality to the template you will need to reenter it.
- Option 4 & 5 - install NXP software on your Development workstation
- You will need this to Develop & Debug code on your Workstation to be downloaded & executed on the LPC55S69-EVK Board. For those of you that have experience with NXP MCU development will have no problem with this. For me it was a new experience and I found it very Interesting.
- First I Installed the MCUExpresso IDE
- On Both Windows 10 and Ubuntu
- The installations went smoothly Using the iDE was a bit of a learning curve. I spent a large amount of my time learning how to use this tool for development. I found it to be an excellent environment to develop and debug code.
- It was easier for me to the use it on the more familiar Windows OS , but was able to program on my Ubuntu workstation.
- The Debug output posed a problem for me on the Linux workstation.
- Next, I built and Installed the MCUExpresso SDK
- On Both Windows 10 and Ubuntu
- The install to the IDE was quite new and interesting to me.
- You need to build the SDK on the website to your target OS and MCU model.
- Then you download that Zip file to your Workstation.
- Then you simply drag and drop the Zip file to the "Installed SDK's" panel.
Follow the Workshop to get the Kit development up and running.
- This workshop is an excellent project to experiment with the kit.
Monarch Go Workshop: Part 2: Introduction to Azure IoT Central Out of Box Example
- I was unable to create a FREE azure account!
- I'm a retired engineer and on a budget and I am trying to keep my cost down
- So I need to monitor both ThingSpace & Azure resource usage and not create high cost
- I had to be aware of the bytes that were being generated by the demo. I didn't want to go over the 1GB monthly plan on ThingSpace. There is a usage number on the ThingSpace site, but I was unable to figure out what cost are incurred if you go over your monthly limit?
- For another project I was experimenting with IoT Central on my Azure "Pay as you GO" account. I unknowingly left the program running for a few days passing Telemetry data every second and incurred about $50 usd in charges! So ever since then I try to minimize my cost while experimenting with MCU's.
- I spent a great deal of time learning:
- The IDE and the capabilities of the NXP LPC55S69-EVK
- The demo also took some of my time. But I did learn a lot about the kit as a results.
- Although I had used IoT Central before, I did learn a few new things as well.
- I plan to expand on this knowledge in the next section, by using the MikroE Click board attached to the kit.
- One question I have is "How do I confirm that the modem is working?" The only proof I have is that Telemetry data is getting to IoT Central. It would be nice to include a command line script to run against the modem. I'm sure there is a way, I just haven't found it.
Here is a picture of the demo running on my Windows 10 Workstation, The kit is between the 2 monitors.
Before you build
the Demo project it's important to perform the following task. I missed this and spent a considerable amount of time trying to Debug the demo.
- It is very important to the configure endpoint in your code before the build, so that Azure IoT can identify your device. If you get this wrong, no data will appear in your IoT Central dashboard. You will need to do this if and when you create a new IoT Central Device
- It is critically important that the active build configuration be set correctly! before the build, otherwise the incorrect project will be built. You'll need to set the Azure (Debug) project not the AWS project.
- On the LPC55S69-EVK board, the default settings should be used.
- The board in the kit I reviewed, had these configured as described but I thought to note it here
- Check specifically on the items listed below. Make sure that:
- J4 jumper for DFU is removed.
- P6 microUSB connector (labeled “Debug Link”) is used
- For the connection between dev kit and your computer, connect the kit supplied USB cable end to the connecter labeled Debug Link.
Setup Verizon ThingSpace IoT Data plan
- Before making edits and building the MCU application, it is recommended that you complete the set-up of your Verizon ThingSpace IoT data plan. I found the website a little confusing, so I included these notes
1) Go to https://thingspace.verizon.com/iot-marketplace/ where you will need to complete these steps:
a) Select a connectivity plan (choose one of the six listed monthly plans)
b) Sign-up for a Developer Connectivity Account and pay for selected plan with a credit card
c) Activate your Verizon-certified Monarch LTE-M device
2) Use the ICCID and IMEI details from the label on your Monarch Go modem when activating this device in your ThingSpace account
- The getting started guide supplied with the kit steps in section 2.c states "activate the Verizon Sim card (already fitted to the Monarch Go modem)"
- If I activated my device on the thingspace website using the codes on the side of the Kit modem
- is my SIM card considered activated?
- why is the status showing Not connected? on the website
Connecting a MikroE-RelayClick to the Kit
- I decided to Experiment with the relay click using the MikroE Microbus Shuttle attached to the Avnet Arduino Shield
- I'll be using the Workshop 3 as a guide to program a proof of concept program. I will not however, be doing the IoT Central modifications to the workshop 2 demo. I'll leave that for any interested in the results of the Relay Click to Azure.
- The goal will be, to create a Proof of concept experiment to attach the Click relay to the kit. and have a lamp connected to Relay 2 on the click. Then, use code on the LPC55S69, to turn a household Lamp On and Off
- I will modify the SDK Blinky example to Toggle the Lamp instead of the Blue LED on the LPC55S69
- To do this we have to figure out the pins between the MlikoE Relay Click, Arduino Shield and the LPC55S69
- Refer to Appendix C for details on how we determine the pin mapping
- I will be using Relay2 which is mapped to PIOL1_1. If we wanted to use Relay 1, then we would use PIOL1_18
|The MikroE Microbus Shuttle attached to the Arduino Shield||The MikroE Relay Click attached to the Shuttle||A Lamp plugged in to relay 2 on the click (Green wire ) and the Main Power|
The Modifications to the Blinky SDK example
- The Blinky program is used in the demo to connect a MikroE Buzz Click to the Kit.
- I thought to use the same and use it to POC my idea.
- Begin by loading the Blinky example into your workspace. If you don't know how the video in the workshop3 video can help.
- You will use the PIN tool to add the PIN assignment to PIO1_1 so the code can toggle the pin.
- You will be modifying the existing row labeled "LED_BLUE"
- Select the Project from File Explorer and click on the pin button,
- in the upper right side of the IDE.
The Pin Routing Tool workspace will appear (Refer Below)
- Go down to the bottom, to the "Routing Details" panel
- Replace the row for the LED_BLUE replacing
- Signal, Routed pin/signal label, identifier as the following picture describes
- RIO1,1 ,  PIO1_1, P17/P23/LSPI_HS_SSEL1, Relay1
- Note: the Label: "Relay1" will be used in the variable names.
- Press the UPDATE CODE Button
and code will be generated in 2 files in your project in the /board directory
pin_mux.c and pin_mux.h
You don't need to modify these files the tool generates the code for you. Note the code additions in
const uint32_t Relay1 = (/* Pin is configured as PIO1_1 */
/* Selects pull-up function */
/* Standard mode, output slew rate control is enabled */
/* Input function is not inverted */
/* Enables digital function */
/* Open drain is disabled */
/* PORT1 PIN1 (coords: 59) is configured as PIO1_1 */
IOCON_PinMuxSet(IOCON, BOARD_Relay1_PORT, BOARD_Relay1_PIN, Relay1);
/* Symbols to be used with GPIO driver */
#define BOARD_Relay1_GPIO GPIO /*!<@brief GPIO peripheral base pointer */
#define BOARD_Relay1_GPIO_PIN_MASK (1U << 1U) /*!<@brief GPIO pin mask */
#define BOARD_Relay1_PORT 1U /*!<@brief PORT peripheral base pointer */
#define BOARD_Relay1_PIN 1U /*!<@brief PORT pin number */
#define BOARD_Relay1_PIN_MASK (1U << 1U) /*!<@brief PORT pin mask */
You will need to modify the blinky main file by adding defines as follows.
//Add the following
#define BOARD_Relay1_GPIO GPIO
#define BOARD_Relay1_PORT 1U
#define BOARD_Relay1_PIN 1U
//change the existing LED variables to point to Port and Pin respectively.
#define BOARD_LED_PORT BOARD_Relay1_PORT //BOARD_LED_BLUE_GPIO_PORT
#define BOARD_LED_PIN BOARD_Relay1_PIN //BOARD_LED_BLUE_GPIO_PIN
Note where these defined variables are used in main()
Now Connect the lamp to the Click on relay 2. I use a Christmas Extension with the switch removed. The other end of the extension plugs into Main Power and I can plug anything in this end to be switched.
That's it debug the code. and hopefully see the lamp turn ON and OFF
The modified Blinky Example clicking the connected lamp On and Off
Notes and Comments
- The Demo in workshop#3, utilizes the prototyping capabilities of the Monarch LTE-M Dev kit to develop an example solution based on the existing Azure IoT Central OOB example.
- It also demonstrates the use of the MikroE Microbus Shuttle attached to the Avnet Arduino Shield Shuttle connector. The demo uses the MikroE Buzz Click Board
- I used it to experiment with a MikroE Relay Click Board that I had lying around my Workshop.
- I received help from Joshua Foster at Avnet , who explained how to figure out the pins between the MlikoE Relay Click, Arduino Shield and the LPC55S69. Thank you jafoste4
- I plan on using the same setup to continue experimenting with Azure IoT Central. One possibility is to turn a lamp ON/OFF, using a device twin on IoT Central.
Summary & Conclusions
- In order to review this kit, I followed the steps that were laid out by the Workshops mentioned.
- My learning experiences are included in this review and summarized as follows:
- Setting up a Linux Workstation (not related to the kit, just something I've always thought of as alternative to Microsoft Windows).
- Understanding and following, the links on the "Quick Start" Card included in the Kit box.
- Understanding the 3 Hardware components and how they function
- By Viewing & Studying Workshop # 1
- Implementing the Out Of Box (OOB) Demo described in Workshop#2 from Front to Back.
- Which lead me thru the following learning path:
- Experimenting with the NXP MCUExpresso IDE
- Installing the IDE on Linux and Windows 10
- Installing and experimenting with the MCUExpresso SDK
- Also Included signing up for and getting familiar with:
- And finally connecting a MikroE Relay Click Board
- Which lead me thru the following:
- Pin mappings between the MikroE Relay Click Pins through the Arduino Shield Header Pins, and on to the pins on the LPC55S69.
- Modifying an SDK example to Turn On/Off a lamp attached to the Relay Click Board.
- This is a very interesting development kit, I am very thankful to have been selected for this Roadtest. Thank you Randall Scasny.
- As I mentioned previously, I had a steep learning curve. The only component I really had experience with is Azure IoT Central.
- The Workshop's really helped me get thru the Review of a product with many moving parts.
- I plan to experiment more with the kit. I feel I have only scratched the surface of the capabilities of this kit. I have listed below some experiments, that I thought of for my next experiments with the kit.
- One Problem that I experienced during my experimenting was:
- The modem kept disconnecting, but like a cell phone I probably had not enough bars in my work area.
- The Pin configuration for the MikroE was a bit daunting at first. With the help of Joshua Foster , I was able to figure out how to program the pins to toggle the Relay Click ON and OFF. It would be nice, if it's possible, to have an SDK for MCUExpresso to be able to use with the MikroE Micro Shuttle.. Writing this would be out of my capabilities right now, but it would be interesting knowing if someone has attempted this.
Possible Future Experiments
- Experiment with the heart rate sensor from plusesensor.com
- How to connect the sensor to the kit?
- Onboard Sensors on the NXP and the Avnet Arduino Shield
- Experiment with the Light sensor onboard the kit.
- A command line app to send AT commands to the Monarch GO Modem.
- Attaching another MikroE Click board and program it.
Appendix A - Configure the Endpoint and Client Credentials using Shared Access Signature (SAS) before the Build
It is very important to perform the following to you code, so that Azure IoT can identify your device. If you get this wrong, no data will appear in your IoT Central dashboard.
1) In your MCU application, navigate to msft_Azure_IoT\demo section then open the
msft_Azure_IoT_clientcredential.h header file
2) Edit line #22, adding the Azure DPS provisioning service as the MQTT Broker Endpoint
3) In your Azure IoT Central application, select your real device,
then click on Connect to open the Device Connection dialog.
4) Copy the Scope ID (ID Scope) and Device ID values to the header file
#define clientcredentialAZURE_MQTT_BROKER_ENDPOINT "global.azure-devices-provisioning.net"
#define clientcredentialAZURE_IOT_SCOPE_ID ""
#define clientcredentialAZURE_IOT_DEVICE_ID ""
5) This application also includes some code to support the simpler Shared Access Signature (SAS) authentication. This requires SAS Primary Key for connecting your real device also needs to be added. While still in this Device Connection window, click on Shared Access Signature (SAS) then copy to the clipboard the Primary key that is displayed…
6) Back in MCUXpresso, under the msft_Azure_IoT\demo section that you accessed before, open msft_Azure_IoT_clientcredential_keys.h and edit line 14, adding the SAS Primary Key that you have just copied from the Azure IoT Central application
#define keyDEVICE_SAS_PRIMARY_KEY ""
8) Save after checking the edits you made in msft_Azure_IoT_clientcredential_keys.h
Appendix B - Set the Build Configuration to target Azure
It is critically important that the active build configuration be set correctly! before the build.
In the MCUExpresso "Project Explorer",Right-click on the project name and set this as shown below…
Use this pin diagram to connect the RelayClick/MirobusShuttle to the kit.
Follow the schematics starting at:
- Relay Click Board pins
- to the MicroBus Shuttle Pins
- to the Arduino shield Shuttle Pins. then follow the pins from Arduino Shield
- to the LPC55S69 pins to be used in a program call..
I'm using the MikroE RELAY Click with the pins as described as:
You will need to modify the pin configurations to enable the PWM & CS pins
- Relay1 - PWM PIN 16
- Relay2 - CS Pin 3
You will need to identify which NXP LPC55S69 pin this is connected to. Utilizing the schematics below. I'll walk you through this process
First define the 2 relay pins on the Click:
Corresponding to the 2x8 header the the Microbus Shuttle plugs into (refer to the diagram below)
- Relay1 - PWM PIN 16 goes to WAKE/GPIO
- Relay2 - CS Pin 3 goes to LSPI_HS_SSEL1
then determine the pinout going from the Shield to the EVK (Taken from Arduino Shield schematic)
GRAPHIC COUTESY OF elment14 member Joshua Foster
Determine where these pins go on the LPC55S69 chip (Taken from EVK Schematic)
GRAPHIC COUTESY OF elment14 member Joshua Foster
As you can see the
- PWM Relay1 (wake/gpio) goes to PIO1_18, and the
- CS - Relay 2 (LSPI_HS_SSEL1) goes to PIO1_1