ES EYE BG96 Instruction Manual

Eseye-enabled Quectel BG96
module
Developer Guide
Document: 8618 v1.9

Copyright
Copyright 2021 Eseye Ltd. All rights reserved.
You may not reproduce or use this document or any portion thereof without prior written permission
of Eseye Ltd. Eseye Ltd retains the right to change this document or related product specifications and
descriptions, at any time, without notice. Eseye Ltd makes no warranty for the use of this document
and assumes no responsibility for any errors that may appear in the document, nor does it make a
commitment to update the information contained herein. For the most current product information,
please visit www.eseye.com.
Eseye® and its logos, Eseye Intelligently Connected® and Hera 300™ are trademarks of Eseye Ltd in the
United Kingdom and/or other countries. All other marks and names mentioned herein may be claimed
as the property of others.
Last updated: 10 December 2021
ii Eseye-enabled Quectel BG96 module Developer Guide v1.9

Contents
About this guide vi
Extra reading vi
Standards and conventions vii
About the Eseye-enabled Quectel BG96 module 1
What do I need? 1
How connectivity is established with AWS 1
Powering up the Quectel BG96 module 2
Powering up the LTE IoT 2 click 2
Connecting to the LTE IoT 2 click 3
Configuring your system to send and receive data 4
Integrating with AWS Marketplace using AnyNet IRIS 5
Getting Started: preparing the cloud 6
Preparing the cloud overview 6
Subscribing to AnyNet Cellular Connectivity for AWS IoT 6
Viewing the AnyNet IRIS Welcome page 8
About the required AWS IAM user for AnyNet IRIS 9
Recommended reading 9
Creating a dedicated IAM user account for AnyNet IRIS 9
Required IAM Managed Policies 11
Attaching IAM policies to an existing user 12
Installing AnyNet IRIS 16
Installing AnyNet IRIS for Windows 10 16
Installing AnyNet IRIS for macOS 16
Configuring AnyNet IRIS 17
Creating a thing in AWS IoT Core 19
Establishing the cellular connection on the LTE IoT 2 click 22
Provisioning the Quectel BG96 module 23
Limiting the AWS IoT Core policy 24
Sending data from your thing to the cloud 25
Sending data from the cloud to your thing 28
Interacting with the AWS IoT shadow 30
Eseye-enabled Quectel BG96 module Developer Guide v1.9 iii

General AT Commands for the Quectel BG96 module 31
AT Command syntax 32
Types of AT Commands and responses 32
ETM Management AT commands 33
ETMCFG – read and write configuration file values 33
ETMCFGCHECK – checks if a new ETM configuration file is available 34
ETMHFWCONF – confirms the new host firmware is applied 35
ETMHFWGET – checks for new host firmware 36
ETMHFWREAD – reads a section of the new firmware image 37
ETMINFO – displays information about the current ETM application and device 39
ETMRESET – reboot the modem 40
ETMSTATE – check current state 41
+ETM Unsolicited Response Codes (URCs) 43
MQTT telemetry ATcommands 44
EMQ – publish a message to singletopic 45
EMQPERSIST – report a set value to the device shadow 46
EMQPUBOPEN – create a publish message topic 48
EMQPUBCLOSE – remove a publish message topic 50
EMQPUBLISH – publish data to a message topic 51
EMQSUBOPEN – create a subscribe message topic 52
EMQSUBCLOSE – cancel a subscription to a message topic 54
+EMQ Unsolicited Response Codes (URCs) 55
Quectel BG96 module AT commands 57
CCID – request unique SIM number (ICCID) 57
CREG – request network registration status 58
CSQ – request signal quality 61
Using the Quectel BG96 module configuration file 62
Data security 71
AWS security compliance 71
Processing updates 71
Upgrading the Quectel BG96 module firmware 72
About the Eseye Telemetry Module 72
Before you begin 72
iv Eseye-enabled Quectel BG96 module Developer Guide v1.9

Updating the modem firmware using Windows 10 74
Downloading the required files for Windows 10 74
Installing the Windows USB drivers 74
Connecting to the Quectel BG96 module 74
Updating the modem firmware 75
Installing ETM files on the Quectel BG96 module using Windows 10 76
Updating the modem firmware using Linux 77
Connecting to the Quectel BG96 module 77
Checking the existing Linux USB drivers 77
Downloading the required files for Linux 77
Installing the USB drivers 78
Updating the modem firmware 78
Installing ETM files on the Quectel BG96 module using Linux 79
Updating the modem software 80
Updating host software 80
Updating kernel, ETM application and configuration software 80
Updating the modem firmware using AWS IoT jobs 81
Creating a JSON job description file 81
Example job document 82
Creating an AWS IoT custom job 82
Unsubscribing from AnyNet Cellular Connectivity for AWS IoT 83
Eseye-enabled Quectel BG96 module Developer Guide v1.9 v

About this guide
This guide is designed to help you connect one or more things to Amazon Web Services (AWS) for data
collection, storage and analysis purposes, using the Eseye-enabled Quectel BG96 module. You will also
learn how to control the modem using ATcommands.
This guide uses the plug and play LTE IoT 2 click as a worked example. The LTE IoT 2 click contains the
Quectel BG96 module, and provides a useful proof of concept.
We assume that your thing is designed to transmit data over cellular networks. You must have
knowledge of AT command and cellular modem usage for data communications.
If you want to connect with other cloud providers, or to a private cloud, speak to your Account
Manager.
Extra reading
For general information, see the online help: https://docs.eseye.com/Content/Home.htm
You may prefer to use the Quick Start Guide to connect to the cloud. For more information, see:
8617 LTE IoT 2 click Quick Start Guide (PDF)
For information about the LTE IoT 2 click, see https://www.mikroe.com/lte-iot-2-click.
For useful information regarding the AWS IoT Core service, see: AWS IoT Core endpoints and quotas.
vi Eseye-enabled Quectel BG96 module Developer Guide v1.9

Standards and conventions
This guide uses consistent visual cues and standard text styles to help you locate and interpret
information easily.
Style Description
Note
Extra information or a recommendation related to the current topic.
Tip
Good-to-know information that helps users complete a procedure or
understand a topic.
Warning
Information that alerts the user about significant or critical actions or
outcomes.
Title names Window or section names, denoting a title, appear in italics.
Field or button name Element names in a user interface, for example fields and buttons,
appear in bold.
Ctrl+X; Ctrl+click A key combination with a plus sign separating two key names or a key
name and a mouse action, indicates that you hold down the first key
while pressing the second key or performing the mouse action.
Cross reference Title and
page
Cross references appear in italics, for example: For more information,
see Copyright on pageii. Select the cross reference to view it.
Hyperlinks Underlined cross references are hyperlinks to electronic forms of the
document. Select the hyperlink to open the cross reference.
ATCommands
Commands Command formats are displayed in monospaced typeface.
<Parameter> Angle brackets enclose the AT Command parameter, for example
<topic>. The brackets do not appear in the command line.
"ParameterString" Quotation marks enclose parameter strings.
CommandValue Italics in a command depicts values or examples that need replacing
with your specific parameters.
[CommandOptionalEntry] Square brackets display optional entries.
ATCommandResponse Returned responses to ATCommands are displayed in monospaced
bold typeface.
<ASCIICHARACTERS> Returned ASCII characters are in uppercase.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 vii

About the Eseye-enabled Quectel BG96
module
The Eseye-enabled Quectel BG96 module LTE IoT 2 click enables you to simply, easily and securely
connect your thing to Amazon Web Services (AWS) from anywhere in the world over cellular networks.
This enables you to remotely extract data from your thing for a variety of industrial and commercial
applications, such as metering, monitoring, transportation, security, and so on.
Eseye ensures that your thing has near constant connectivity to a cellular network. Connecting to AWS
provides a flexible and scalable cloud service solution for your internet of things enterprise.
What do I need?
•Single Eseye SIM with multi-IMSI capability – enables worldwide wireless connectivity
•As a worked example, Eseye uses the MIKROE LTE IoT 2 click, featuring an Eseye-enabled
Quectel BG96 module. Product ID: MIKROE-3144.
For information about MIKROE products, see the MikroElektronika website.
www.mikroe.com
How connectivity is established with AWS
Eseye uses the Message Queue Telemetry Transport (MQTT) protocol to connect one or more things
(MQTT clients) with AWS IoT Core (the MQTT broker).
You use an AT-command interface to send and receive telemetry data to and from the cloud service.
The Quectel BG96 module buffers publish data in non-volatile flash memory until it is delivered to the
cloud. The flash memory queues messages when there is no network connection, and protects against
data loss in the event of a power failure. For information about the Eseye Telemetry Module, see
About the Eseye Telemetry Module on page1.
1 Eseye-enabled Quectel BG96 module Developer Guide v1.9
About the Eseye-enabled Quectel BG96 module

The Eseye-enabled Quectel BG96 module uses the following:
•MQTT URL – the AWS Custom Endpoint used to establish a connection between a thing and
AWS IoT Core, for example:
a2efgh321joea3-ats.iot.eu-west-1.amazonaws.com
•Transport Layer Security (TLS) – for the IP connection, established using the certificates from the
SIM
For more information, see Data security on page71.
•Publish and subscribe topics – preconfigured in the Eseye Telemetry Module (ETM) application
using ATcommands
•AWSthingname – appended to the topics as a suffix to uniquely identify the thing in AWS IoT
Core
Powering up the Quectel BG96 module
The embedded application runs on generic Quectel BG96 module devices, so no hardware interfacing is
specified except for PWRKEY and the main AT UART and DTR line if power control is required.
Do not disconnect the power supply to the Quectel BG96 module at any time, as the
module requires power at all times, even during sleep mode.
Powering up the LTE IoT 2 click
Use the PWRKEY pin to power-up the LTE IoT 2 click. When the device is powered off, pulling PWRKEY
high for 100mS and then returning it low will cause the LTE IoT 2 click to power-up.
In normal operation it is not necessary to power-down the LTE IoT 2 click, as it takes care of power
management internally.
In the event of a loss of communication with the LTE IoT 2 click, you can use the PWRKEY to force
power-off by pulling high for >500mS, then returning low.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 2
About the Eseye-enabled Quectel BG96 module

Connecting to the LTE IoT 2 click
Connect to the LTE IoT 2 click over USB, or using the MIKROE click serial interface.
If you are testing a single unit, we recommend that you use a terminal emulator to execute the
AT commands, for example PuTTY or Tera Term.
Serial port settings
Change the port settings using Device Manager, and ensure you also adjust the serial port settings in
the terminal emulator.
Serial port setting Default value
Baud rate 115200
Data Bits 8
Parity None
Stop Bits 1
Flow Control None
Send the following AT command to enable MQTT: AT+ETMSTATE=startmqtt
If the configuration file [operation] <mode> is set to mqtt, then ETM automatically starts
MQTT after power up. If the <mode> is not set, after each reboot you must send
AT+ETMSTATE=startmqtt again.
Send the following AT command to enable MQTT: AT+ETMSTATE=startmqtt
If the configuration file [operation] <mode> is set to mqtt, then ETM automatically starts MQTT after
power up. If the <mode> is not set, after each reboot you must send AT+ETMSTATE=startmqtt again.
3Eseye-enabled Quectel BG96 module Developer Guide v1.9
Connecting to the LTE IoT 2 click

Configuring your system to send and
receive data
Before you can send and receive data between your thing and the cloud, you need to:
1. Prepare the cloud.
For more information, see Getting Started: preparing the cloud on page6.
2. Install AnyNet IRIS.
For more information, see Installing AnyNet IRIS on page16.
3. Create your thing in AWS IoT Console.
For more information, see Creating a thing in AWS IoT Core on page19.
4. Connect the Quectel BG96 module to a cellular network.
For more information, see Establishing the cellular connection on the LTE IoT 2 click on page22.
5. Provision the Quectel BG96 module.
For more information, see Provisioning the Quectel BG96 module on page23.
6. Use a terminal emulator to send commands to the Quectel BG96 module.
For information about setting up the terminal emulator, see Connecting to the LTE IoT 2 click on
page3.
7. Test that you can send data from your thing to the cloud.
For more information, see Sending data from your thing to the cloud on page25.
8. Test that you can send data from the cloud to your thing.
For more information, see Sending data from the cloud to your thing on page28.
9. Your system is now ready. Use AT commands to configure how data is sent and received
between the cloud and the modem.
For more information, see General AT Commands for the Quectel BG96 module on page31.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 4
Configuring your system to send and receive data

Integrating with AWS Marketplace using AnyNet
IRIS
AnyNet IRIS enables you to easily and securely deploy required IAM roles and policies to selected
AWSregions for integration with AWS Marketplace.
AnyNet IRIS is supported on the following operating systems:
•Windows 10 version 1903 and above
•macOS 10.14 and above
For information about the IAM managed policies you need to use the AnyNet Cellular
Connectivity for AWS IoT SaaS product, see Required IAM Managed Policies.
For information about the IAM permissions you need to use the AnyNet Cellular Connectivity for
AWS IoT SaaS product, see Required IAM permissions.
After deploying resources, you can use AnyNet IRIS to review the status of your things in each region in
a specified time period, view the deployed Cloud Formation template contents, as well as manage
configuration and updates.
For more information, see Reviewing thing connectivity using AnyNet IRIS.
5Eseye-enabled Quectel BG96 module Developer Guide v1.9
Integrating with AWS Marketplace using AnyNet IRIS

Getting Started: preparing the cloud
Before you begin
Ensure your system supports the AnyNet IRIS installation. For more information, see Installing
AnyNet IRIS on page16.
Preparing the cloud overview
In order to integrate your things with AWS, you need to perform the following steps:
1. Sign up for an Amazon Web Services (AWS) account, or log into an existing account:
https://aws.amazon.com
For instructions, see: How do I create and activate a new AWS account?
2. Subscribe to AnyNet Cellular Connectivity for AWS IoT.
For more information, see Subscribing to AnyNet Cellular Connectivity for AWS IoT below.
3. Within your AWS root account, create a mandatory dedicated AWS IAM user account for
AnyNet IRIS.
For more information, see Creating a dedicated IAM user account for AnyNet IRIS on page9.
4. Install and configure AnyNet IRIS.
For more information, see Installing AnyNet IRIS on page16.
Subscribing to AnyNet Cellular Connectivity for AWS IoT
Use AWS Marketplace to subscribe to AnyNet Cellular Connectivity for AWS IoT, which will enable you
to connect your thing to AWS IoT Core.
1. Log into your AWS account.
2. Go to AnyNet Cellular Connectivity for AWS IoT.
AnyNet Cellular Connectivity for AWS IoT opens in the AWS Marketplace.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 6
Getting Started: preparing the cloud

3. Select Continue to Subscribe.
The service pricing options are displayed.
4. Select Subscribe.
A Congratulations! You are now subscribed! message appears.
5. Select Set Up Your Account.
The AnyNet Cellular Connectivity for AWS IoT Welcome page appears.
Make a note of your Customer ID. Leave this window open to refer back to it when you
set up the IAM user account, and also when you install and configure AnyNet IRIS.
If you previously subscribed to AnyNet Cellular Connectivity for AWS IoT and did not
download the AnyNet IRIS executable, then you will need to return to the AnyNet Cellular
Connectivity for AWS IoT Welcome page. For more information, see Viewing the AnyNet IRIS
Welcome page on the facing page.
Next, set up an AWS IAM user account with specific IAM permissions. For more information, see
Creating a dedicated IAM user account for AnyNet IRIS on page9.
7Eseye-enabled Quectel BG96 module Developer Guide v1.9
Getting Started: preparing the cloud

Viewing the AnyNet IRIS Welcome page
You may need to return to the AnyNet IRIS Welcome page to view your Customer ID, or to complete
downloading the AnyNet IRIS executable.
To find the Welcome page:
1. Navigate to AWS Marketplace: https://aws.amazon.com/marketplace.
2. Sign into the account you used to subscribe to AnyNet Cellular Connectivity for AWS IoT.
3. In the top right corner, select your logged-in identity.
4. Select Your Marketplace Software from the drop-down menu.
An AWS warning may appear about needing License Manager SLR to see license
entitlements. This does not affect the AnyNet Cellular Connectivity for AWS IoT
installation.
5. Select the AnyNet Cellular Connectivity for AWS IoT subscription.
6. Select the Read more on AWS Marketplace link.
7. Select Continue to Subscribe.
8. In the Having issues signing up for your product? box, select click here to view the Welcome
page.
Make a note of the CustomerID to help you configure AnyNet IRIS.
9. If required, select the relevant download.
For more information, see Getting Started: preparing the cloud on page6.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 8
Getting Started: preparing the cloud

About the required AWS IAM user for AnyNet IRIS
The AnyNet Cellular Connectivity for AWS IoT service integrates with the IoT resources within your
AWS account to perform essential functions, such as updating an AWSthing Shadow document. You
enable access to these functions by setting up a dedicated IAM user with specific permissions within
your AWS account. You will use this IAM user to configure AnyNet IRIS.
The IAMpermissions also enable the service to create a Foundation CloudFormation stack that is used
to distribute required resources to the AWS regions you select using AnyNet IRIS. The Foundation stack
creates an IAM role – AnyNetSecureTrustRole – that is responsible for establishing required cross-
account access. For information about cross-account access, see:
Providing access to AWS accounts owned by third parties
Recommended reading
For information about AWS security best practices, see: Security best practices in IAM
To learn how to create customer managed policies, see: IAM Tutorial: Create and attach your first
customer managed policy
Creating a dedicated IAM user account for AnyNet IRIS
Do not use the AWS account root to set up the required IAM permissions. For more
information, see AWS account root user.
To create an IAM user account:
1. Ensure you have signed in to AWS Management Console.
2. Navigate to IAM Services using the following URL: https://console.aws.amazon.com/iam/
3. In the left-hand navigation menu, select Users.
Any previously created IAM users are listed in the right-hand pane.
4. Select Add User.
5. Type the user name for the new user.
This is the sign-in name for AWS, for example: anynetuser.
9Eseye-enabled Quectel BG96 module Developer Guide v1.9
About the required AWS IAM user for AnyNet IRIS

6. In the Select AWS access type section, select the Access key – Programmatic access check box
only.
7. Select Next: Permissions.
We will add permissions later.
8. Select Next: Tags.
Add any required tags according to your operational policies.
9. Select Next: Review to review your choices.
10. Select Create user to create the IAM user.
The Access key ID and Secret access key are displayed. AnyNet IRIS will use these security
credentials to perform necessary requests against your AWS account.
You can view and download the Secret access key once only. If you forget the Secret
access key, you will need to regenerate it on your AWS user account. For more
information, see: AWS security credentials - programmatic access.
11. Click Download.csv to store the keys locally on your computer.
12. Select Close.
Next, you must attach the required policies to this IAMuser account.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 10
About the required AWS IAM user for AnyNet IRIS

Required IAM Managed Policies
The AnyNet Cellular Connectivity for AWS IoT service and AnyNet IRIS app require the following AWS
Managed Policies.
When you attach these policies to the IAM user, you will also create an inline policy to deny all
user and organization related actions. For more information, see Attaching IAM policies to an
existing user on the facing page.
Ensure that enabling access to these policies does not breach your IT security procedures.
AmazonEC2ReadOnlyAccess
Permits Eseye to determine which AWS Regions you have enabled, using some EC2
read-only commands.
AWS requires its customers to opt in to any of the AWS Regions launched after 20
March 2019. For more information, see: Setting permissions to enable accounts
for upcoming AWS Regions.
AmazonEventBridgeFullAccess
Enables AnyNet IRIS to use Amazon EventBridge to notify the Activation service
when AWS IoT things are created or deleted.
AmazonS3FullAccess
Enables CloudFormation template retrieval and CloudTrail S3 bucket creation.
AWSCloudFormationFullAccess
Required for both the Foundation stack and the resource stacks that are created in
the AWS Regions you specify using AnyNet IRIS.
AWSCloudTrail_FullAccess
Enables delivery of AWS API Call via CloudTrail. AWS API Call notifies AnyNet IRIS
of specific AWS IoT events.
AWSIoTFullAccess
Enables AnyNet IRIS to access multiple required resources within AWS IoT Core.
AWSIoTLogging
Allows creation of Amazon CloudWatch Log groups and streaming logs to the
groups.
IAMFullAccess
Enables AnyNet IRIS to invoke the policy simulator API to determine whether the
user has sufficient permissions to use the AnyNet IRIS app and AnyNet Cellular
Connectivity for AWS IoT service. Additionally, it enables IAM role creation and
policy attachment. For more information, see: Testing IAM policies with the IAM
policy simulator.
11 Eseye-enabled Quectel BG96 module Developer Guide v1.9
Required IAM Managed Policies

Attaching IAM policies to an existing user
You must attach policies to the dedicated IAM user in order to grant specific permissions, which will
allow AnyNet IRIS to function.
For detailed information about each policy, see Required IAM Managed Policies.
1. Ensure you remain signed into AWS as the root user.
2. Navigate to IAM Services using the following URL:
https://console.aws.amazon.com/iam/
3. In the left-hand navigation menu, select Users.
The AnyNet IRIS user you created is listed.
4. Select the AnyNet IRIS IAM user name.
For example, select anynetuser. The IAM user Summary appears.
5. On the Permissions tab, select Add permissions.
6. Under Grant permissions, select Attach existing policies directly.
7. Using the Search box, search for: AmazonEC2ReadOnlyAccess.
8. Select the check box alongside the returned result.
Eseye-enabled Quectel BG96 module Developer Guide v1.9 12
Required IAM Managed Policies

9. Search for each of the following policies in turn, ensuring you select the check box alongside
each returned listing:
•AmazonEventBridgeFullAccess
•AmazonS3FullAccess
•AWSCloudFormationFullAccess
•AWSCloudTrail_FullAccess
•AWSIoTFullAccess
•AWSIoTLogging
•IAMFullAccess
If you select the wrong policy, clear the check mark alongside it.
10. Select Next: Review.
The selected policies are displayed.
11. Select Add permissions.
The updated Summary page appears.
12. Select Add inline policy.
13 Eseye-enabled Quectel BG96 module Developer Guide v1.9
Required IAM Managed Policies
Table of contents
Popular Control Unit manuals by other brands

STIEBEL ELTRON
STIEBEL ELTRON HM Trend Operation and installation

Kemper
Kemper 7140G02000 Installation and operating manual

Thrane&Thrane
Thrane&Thrane SAILOR 630 Series installation guide

guth
guth VS Series operating manual

HP
HP 83487A user guide

Honeywell
Honeywell SILENT KNIGHT Farenhyt Series Installation and operation manual

GEM
GEM 4242 operating instructions

Leviton
Leviton 73A00-3ZB Installation instructions and user guide

Danfoss
Danfoss VLT MCD 200 installation instructions

Jung
Jung 5192KRMTSD Series Product documentation

Monitor Technologies
Monitor Technologies MK-2 RF Installation & operation

DynaQuip
DynaQuip WaterCop LEAK STOP+ Owner's manual and installation guide