element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Benefits of Membership
    • Achievement Levels
    • Members Area
    • Personal Blogs
    • Feedback and Support
    • What's New on element14
  • Learn
    Learn
    • Learning Center
    • eBooks
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • Experts & Guidance
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Dev Tools
    • Manufacturers
    • Raspberry Pi
    • RoadTests & Reviews
    • Avnet Boards Community
    • Product Groups
  • Store
    Store
    • Visit Your Store
    • 'Choose another store...'
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
Personal Blogs
  • Members
  • More
Personal Blogs
Legacy Personal Blogs Networking with Sequans Monarch Go - Part I
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Blog Post Actions
  • Subscribe by email
  • More
  • Cancel
  • Share
  • Subscribe by email
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: kevinkeryk
  • Date Created: 21 Feb 2020 4:16 PM Date Created
  • Views 983 views
  • Likes 5 likes
  • Comments 2 comments
  • monarch go
  • lte-m
  • lte cat-m1
  • avnet
  • sim card
  • monarchgo
  • sequans
  • verizon
Related
Recommended

Networking with Sequans Monarch Go - Part I

kevinkeryk
kevinkeryk
21 Feb 2020

Introducing the Sequans Monarch Go Module

 

Recently, Avnet announced a new distribution agreement with Sequans for their Monarch Go modules and I wanted to see if I could get this working with some of the Avnet boards that I have around my office.

 

https://news.avnet.com/press-release/sequans-and-avnet-execute-global-distribution-deal

 

The module is larger than the modules you would purchase if you were integrating the LTE-M baseband module onto your own PCB but definitely smaller than some of the cabinet mounted modems that I have come across in the past.

 

image

 

The reasoning behind the larger module is that it self-contains an antenna, the Sequans GM01Q module, and the enclosure for these is already certified for use on the Verizon network.  This can be very helpful for community folks who are looking to avoid the costly lab testing fees and eliminate a large chuck of time-to-market by reducing effort and complexity of a board design.  This approach removes the need to design and tune a cellular antenna as it embeds an optimized LTE antenna within the module.

 

Thanks to the folks at Sequans, I was able to get my hands on a few of the Monarch Go Starter Kits (MONARCH-GO-STK) for testing in the lab.  Here is what this starter kit looks like in its factory packaging:

 

image

 

And here is a closeup of the evaluation board with the Monarch Go module already mounted where the USB-UART and supporting power supply circuitry is visible:

 

image

Using the included PH000 screw driver, I removed the 2 Phillips-head screws which mount the module to the green PCB so that I could gain access to the SIM card bay of the Monarch Go.  This isn't a necessary step, but I was curious to see if there really was a Verizon SIM card installed in this kit.  I used a 3/32 flat-head screwdriver to pop the plastic cover from the back of the Monarch Go module to reveal the SIM card cage:

 

image

 

Thanks to some notes that james.flynn passed along to me, I was able to get this device activated with Verizon ThingSpace and running with my Ubuntu 16.04 LTS laptop.  I figured this is a good reference point to demonstrate that the LTE-M module is working, that it is properly activated/registered with Verizon, and successfully connected to the local LTE-M network before I begin experimenting with connecting up to other boards.  I wanted to share some of my notes in case this might help others save some time if they are looking to go down the same path.

 

First Signs of Life

The instructions on the back of the Monarch Go Starter Kit directed me to sign up for a Verizon ThingSpace Account and activate the SIM card (some very reasonable activation and monthly service fees will apply) that comes pre-installed in the Monarch Go:

 

https://thingspace.verizon.com/service/connectivity-for-developers/

 

After signing up, I registered my device using the IMEI and ICCID numbers from the sticker on the side of the module.

 

image

 

I quickly got an email from Verizon indicating that my new Monarch Go device was registered with ThingSpace.

 

I used the included USB-Mini cable to connect the green Starter Kit PCB to my Ubuntu 16.04 laptop.  I already had minicom installed but if you don't already have it (or another terminal application) you can install minicom under Ubuntu using the following command:

 

sudo apt-get install minicom

 

I could see from dmesg that a new device was being enumerated as /dev/ttyUSB0 so I connected to it with the command:

 

minicom --device /dev/ttyUSB0

 

After a few seconds, here is what I saw from the terminal:

 

image

 

Looking the +CEREG command up in the AT Commands Reference Manual for the Monarch Go, this looks like a good sign since the last message shows that the device is registered on its home network.

 

If you see only the +CEREG: 0 or +CEREG: 2 messages, then the device is not yet properly activated on the Verizon network.

 

Adding PPP Infrastructure to Ubuntu

 

The first steps are to install Point-to-Point Protocol support under Ubuntu by installing the ppp related packages.  I did this with the following commands:

 

sudo apt-get update
sudo apt-get install ppp

 

Next, I created a new file named ppp0 file in the /etc/network/interfaces.d/ folder with the following contents:

 

auto ppp0
iface ppp0 inet ppp
provider sequans

 

This new ppp0 file creates an automatic ppp network interface connection by utilizing the Seqans provider information that gets setup in a later step.

 

Next, I created a new file named sequans in the /etc/ppp/peers/ folder with the following contents:

 

# /etc/ppp/options
# 
# Sequans Monarch Module PPP options file 
#
# To quickly see what options are active in this file, use this command:
#   egrep -v '#|^ *$' /etc/ppp/options

# tyname - Use this serial port to communicate with the Monarch. The string "/dev/" is prepended to ttyname to form the name of 
# the device to open. 
/dev/ttyUSB0

# speed - a decimal number is taken as the desired baud rate for the serial device. 
115200

# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
# on the serial port.
crtscts

# Don't agree to authenticate using CHAP.
-chap

# Increase debugging level (same as -d).  If this option is given, pppd
# will log the contents of all control packets sent or received in a
# readable form.  The packets are logged through syslog with facility
# daemon and level debug. This information can be directed to a file by
# setting up /etc/syslog.conf appropriately (see syslog.conf(5)).  (If
# pppd is compiled with extra debugging enabled, it will log messages
# using facility local2 instead of daemon).
debug

# Disable the defaultroute option. 
defaultroute

# With the dump option, pppd will print out all the option values which 
# have been set. This option is like the dryrun option except that pppd 
# proceeds as normal rather than exiting.
dump

# Don't use the modem control lines, pppd will ignore the state of the CD (Carrier Detect) signal and will not change the state of the DTR
local

# pppd should create a UUCP-style lock file for the serial device to ensure exclusive access to the device.
lock

# Do not require the peer to authenticate itself. This option is privileged.
noauth

# Don't detach from the controlling terminal. Without this option
nodetach

# the peer will supply the local IP address during IPCP negotiation (unless it specified explicitly on the command line or in an options file)
noipdefault

# Ask the peer for up to 2 DNS server addresses. The addresses supplied by the peer (if any) are passed to the /etc/ppp/ip-up script in the environment
# variables DNS1 and DNS2, and the environment variable USEPEERDNS will be set to 1. In addition, pppd will create an /etc/ppp/resolv.conf file containing 
# one or two nameserver lines with the address(es) supplied by the peer.
usepeerdns

# specify command for pppd to execute by using chat before starting 
# PPP negotiation. chat provides a way to send arbitrary strings to the
# modem and respond to received characters. 
connect "/usr/sbin/chat -t6 -f /etc/chatscripts/connect"

# after pppd has terminated the link, issue command to the modem to cause 
# it to hang up. 
disconnect "/usr/sbin/chat -t6 -f /etc/chatscripts/disconnect"

# ---<End of File>---

 

This new sequans file specifies all of the options that will be pushed into the new PPP session once it is intitiated.

 

Next, I created a new file named connect in the /etc/chatscripts/ folder with the following contents:

 

# This is the chat script used to dial out to the Sequans Module
# 
#ABORT "NO CARRIER"
TIMEOUT 30
ABORT ERROR
"" AT
OK AT+CGDATA="PPP",3
CONNECT ""

 

This specifies the AT commands that are used to establish the network PPP connection.

 

Next, I created a new file named disconnect in the /etc/chatscripts/ folder with the following contents:

 

# This is the chat script used to hang up the Sequans Module
# 
"" "\d\d\d+++\c"

 

This specifies the string sent to the modem in order to disconnect the PPP connection.

 

Finally, I edited the /etc/network/interfaces file to add the following lines:

 

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto ppp0

 

Now that the Ubuntu infrastructure is setup, I will show how to use these new settings to initiate the PPP connection and get the new interface up and running in the next section.

 

Connecting to the Internet

 

The PPP protocol session can be initiated by bringing up the ppp0 interface using the following command:

 

sudo ifup ppp0

 

With a bit of luck, the connection session will be negotiated successfully, an IP address assigned, and DNS servers identified:

 

image

 

Using another terminal window, I can use ifconfig check to see that the interface is indeed up an IP address was assigned (and no other adapters are active):

 

image

 

Now I am able to use the new connection for accessing resources on the Internet for my IoT applications. image

 

image

 

Troubleshooting

 

I don't have a lot of experience troubleshooting with this modem or pppd yet, but I did notice the following statement in the provider file:

 

The packets are logged through syslog with facility daemon and level debug. This information can be directed to a file by setting up /etc/syslog.conf appropriately (see syslog.conf(5)).  (If pppd is compiled with extra debugging enabled, it will log messages using facility local2 instead of daemon).

 

I checked on my Ubuntu machine and /etc/syslog.conf file is not present.  After a bit of research, I found that Ubuntu uses /etc/rsyslog.conf instead.  I wasn't able to digest the documentation sufficiently to look at any of the debug information output to logs and I didn't see anything obvious in /var/log/ folder so this will have to remain an enrichment task for now.

 

If anyone finds any notes to share on this debug capability, it would be greatly appreciated if you could share your results with the Element14 community!

 

Conclusion

 

I don't have a whole lot of experience with a wide variety of LTE modules, but this one seemed rather painless to get up and running quickly and the monthly charges for the LTE-M service are not outrageous for getting a Proof-of-Concept IoT design up and running.

 

Some folks at Avnet said it would be worthwhile showing how to use the Sequans Monarch Go with one of our Ultra96-V2 Product LinkProduct Link Single Board Computers, so I sent some time doing a quick write-up on this for Part II:  Networking with Sequans Monarch Go - Part II

 

EDIT:  Also, check out this tutorial that james.flynn put together on sending IoT data through Monarch Go using a Python application: Sequans Monarch-Go Python Example

 

Looking around my office, I also have an Avnet MaaXBoard handy that I can experiment with for the next part.  Anything else you think I should try to connect up next for Part III of this series?

  • Sign in to reply
  • kevinkeryk
    kevinkeryk over 3 years ago in reply to papili

    Thank you for the encouraging feedback Anthony! 

     

    I did put together a tutorial based upon some work I did at the end of the year to connect up our Ultra96-V2 Single Board computer.  This also uses the same Monarch Go module:  Networking with Sequans Monarch Go - Part II

     

    Best Regards,

     

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • papili
    papili over 3 years ago

    Kevin,

      Glad to hear that the Monarch go and its dev kit were as easy as advertised to get you up and running. This should be an ideal product for people that know nothing about cellular activity but need to get their end devices communicating via a wide area network. No additional certification is needed at this time since the modem is currently certified as an end device. You simply install, take advantage of the AT commands provided, and you're up and running.

      Keep us posted as to future progress you make with the Monarch Go and whatevr boards you integrate it with.

    Anthony

     

     

    iamvz

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2023 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube