BM70/71 Bluetooth Low Energy Module User's Guide Bm70 User

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 238

DownloadBM70/71 Bluetooth Low Energy Module User's Guide Bm70-user-guide
Open PDF In BrowserView PDF
BM70/71 Bluetooth®
Low Energy Module
User’s Guide

 2016 Microchip Technology Inc.

DS50002542A

Note the following details of the code protection feature on Microchip devices:
•

Microchip products meet the specification contained in their particular Microchip Data Sheet.

•

Microchip believes that its family of products is one of the most secure families of its kind on the market today, when used in the
intended manner and under normal conditions.

•

There are dishonest and possibly illegal methods used to breach the code protection feature. All of these methods, to our
knowledge, require using the Microchip products in a manner outside the operating specifications contained in Microchip’s Data
Sheets. Most likely, the person doing so is engaged in theft of intellectual property.

•

Microchip is willing to work with the customer who is concerned about the integrity of their code.

•

Neither Microchip nor any other semiconductor manufacturer can guarantee the security of their code. Code protection does not
mean that we are guaranteeing the product as “unbreakable.”

Code protection is constantly evolving. We at Microchip are committed to continuously improving the code protection features of our
products. Attempts to break Microchip’s code protection feature may be a violation of the Digital Millennium Copyright Act. If such acts
allow unauthorized access to your software or other copyrighted work, you may have a right to sue for relief under that Act.

Information contained in this publication regarding device
applications and the like is provided only for your convenience
and may be superseded by updates. It is your responsibility to
ensure that your application meets with your specifications.
MICROCHIP MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WHETHER EXPRESS OR
IMPLIED, WRITTEN OR ORAL, STATUTORY OR
OTHERWISE, RELATED TO THE INFORMATION,
INCLUDING BUT NOT LIMITED TO ITS CONDITION,
QUALITY, PERFORMANCE, MERCHANTABILITY OR
FITNESS FOR PURPOSE. Microchip disclaims all liability
arising from this information and its use. Use of Microchip
devices in life support and/or safety applications is entirely at
the buyer’s risk, and the buyer agrees to defend, indemnify and
hold harmless Microchip from any and all damages, claims,
suits, or expenses resulting from such use. No licenses are
conveyed, implicitly or otherwise, under any Microchip
intellectual property rights unless otherwise stated.

Trademarks
The Microchip name and logo, the Microchip logo, AnyRate,
dsPIC, FlashFlex, flexPWR, Heldo, JukeBlox, KeeLoq,
KeeLoq logo, Kleer, LANCheck, LINK MD, MediaLB, MOST,
MOST logo, MPLAB, OptoLyzer, PIC, PICSTART, PIC32 logo,
RightTouch, SpyNIC, SST, SST Logo, SuperFlash and UNI/O
are registered trademarks of Microchip Technology
Incorporated in the U.S.A. and other countries.
ClockWorks, The Embedded Control Solutions Company,
ETHERSYNCH, Hyper Speed Control, HyperLight Load,
IntelliMOS, mTouch, Precision Edge, and QUIET-WIRE are
registered trademarks of Microchip Technology Incorporated
in the U.S.A.
Analog-for-the-Digital Age, Any Capacitor, AnyIn, AnyOut,
BodyCom, chipKIT, chipKIT logo, CodeGuard, dsPICDEM,
dsPICDEM.net, Dynamic Average Matching, DAM, ECAN,
EtherGREEN, In-Circuit Serial Programming, ICSP, Inter-Chip
Connectivity, JitterBlocker, KleerNet, KleerNet logo, MiWi,
motorBench, MPASM, MPF, MPLAB Certified logo, MPLIB,
MPLINK, MultiTRAK, NetDetach, Omniscient Code
Generation, PICDEM, PICDEM.net, PICkit, PICtail,
PureSilicon, RightTouch logo, REAL ICE, Ripple Blocker,
Serial Quad I/O, SQI, SuperSwitcher, SuperSwitcher II, Total
Endurance, TSHARC, USBCheck, VariSense, ViewSpan,
WiperLock, Wireless DNA, and ZENA are trademarks of
Microchip Technology Incorporated in the U.S.A. and other
countries.
SQTP is a service mark of Microchip Technology Incorporated
in the U.S.A.

Microchip received ISO/TS-16949:2009 certification for its worldwide
headquarters, design and wafer fabrication facilities in Chandler and
Tempe, Arizona; Gresham, Oregon and design centers in California
and India. The Company’s quality system processes and procedures
are for its PIC® MCUs and dsPIC® DSCs, KEELOQ® code hopping
devices, Serial EEPROMs, microperipherals, nonvolatile memory and
analog products. In addition, Microchip’s quality system for the design
and manufacture of development systems is ISO 9001:2000 certified.

QUALITY MANAGEMENT SYSTEM
CERTIFIED BY DNV

== ISO/TS 16949 ==
DS50002542A-Page 2

Silicon Storage Technology is a registered trademark of
Microchip Technology Inc. in other countries.
GestIC is a registered trademarks of Microchip Technology
Germany II GmbH & Co. KG, a subsidiary of Microchip
Technology Inc., in other countries.
All other trademarks mentioned herein are property of their
respective companies.
© 2016, Microchip Technology Incorporated, Printed in the
U.S.A., All Rights Reserved.
ISBN: 978-1-5224-1022-5

 2016 Microchip Technology Inc.

Object of Declaration: BM70/71 Bluetooth

 2016 Microchip Technology Inc.

®

Low Energy Module

DS50002542A-page 3

NOTES:

DS50002542A-page 4

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH® LOW ENERGY
MODULE USER’S GUIDE
Table of Contents
Chapter 1. Overview
1.1 Operation Overview ...................................................................................... 15

Chapter 2. Operating Modes, Configuration and Control
2.1 Hardware Interface ....................................................................................... 63
2.2 BM70/71 Mode Selection ............................................................................. 64
2.3 Command Set Protocol ................................................................................ 66
2.4 Configuration Protocol ................................................................................ 190
2.5 Programming Protocol ................................................................................ 191
2.6 Direct Test Protocol .................................................................................... 192

Chapter 3. BM70/71 PICtail™/PICtail Plus EVB
3.1 Kit Contents ................................................................................................ 193
3.2 BM70/71 EVB Features Overview .............................................................. 194
3.3 Hardware Features ..................................................................................... 199
3.4 Getting Started - BM70/71 EVB Example Configuration ............................ 208
3.5 Firmware Programming Procedure ............................................................ 223

Appendix A. BM70 EVB Schematics
A.1 BM70 EVB Reference Schematics ............................................................ 231

Appendix A. BM70 EVB Schematics
B.1 BM71 EVB Reference Schematics ............................................................ 233

Appendix A. BM70 EVB Schematics
C.1 Quick Reference of Host to BM70/71 Module Commands ........................ 235
C.2 Quick Reference of BM70/71 Module to Host Event Responses .............. 237

 2016 Microchip Technology Inc.

DS50002542A-Page 5

BM70/71 Bluetooth® Low Energy Module User’s Guide

DS50002542A-Page 6

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Preface
NOTICE TO CUSTOMERS
All documentation becomes dated, and this manual is no exception. Microchip tools and
documentation are constantly evolving to meet customer needs, so some actual dialogs
and/or tool descriptions may differ from those in this document. Please refer to our website
(www.microchip.com) to obtain the latest documentation available.
Documents are identified with a “DS” number. This number is located on the bottom of each
page, in front of the page number. The numbering convention for the DS number is
“DSXXXXXXXXA”, where “XXXXXXXX” is the document number and “A” is the revision level
of the document.
For the most up-to-date information on development tools, see the MPLAB® X IDE online help.
Select the Help menu, and then Topics to open a list of available online help files.

INTRODUCTION
This chapter contains general information that will be useful to know before using the
BM70/71 module. Items discussed in this chapter include:
•
•
•
•
•
•
•

Document Layout
Conventions Used in this Guide
Recommended Reading
The Microchip WebSite
Development Systems Customer Change Notification Service
Customer Support
Document Revision History

DOCUMENT LAYOUT
This document describes how to use the BM70/71 module, as a development tool to
emulate and debug firmware on a target board. This user’s guide is composed of the
following chapters:
• Chapter 1. “Overview” provides an overview of the BM70/71 module and its
features.
• Chapter 2. “Operating Modes, Configuration and Control” describes the minimum hardware interface required for configuring and controlling the BM70/71
module and the protocols used to communicate with the BM70/71 module.
• Chapter 3. “BM70/71 PICtail™/PICtail Plus EVB” provides information about
various steps involved in configuring the BM70/71 module mounted on the Evaluation Board (EVB) hardware and setting up a connection between the BM70/71
EVB and a smartphone using the Bluetooth Low Energy (BLE) link. It also
describes various steps involved in downloading the Firmware into the BM70 or
BM71 module.

 2016 Microchip Technology Inc.

DS50002542A-Page 7

BM70/71 Bluetooth® Low Energy Module User’s Guide
• Appendix A. “BM70 EVB Schematics” provides the BM70 EVB reference
schematics.
• Appendix B. “BM71 EVB Schematics” provides the BM71 EVB reference
schematics.
• Appendix C. “Commands Summary Quick Reference” provides the quick
references of commands used to/from the host and the BM70/71 module.

DS50002542A-Page 8

 2016 Microchip Technology Inc.

Preface
CONVENTIONS USED IN THIS GUIDE
This manual uses the following documentation conventions:
DOCUMENTATION CONVENTIONS
Description
Italic characters
Initial caps

Represents

Examples

Referenced books

MPLAB IDE User’s Guide

Emphasized text

...is the only compiler...

A window

the Output window

A dialog

the Settings dialog

A menu selection

select Enable Programmer

Quotes

A field name in a window or
dialog

“Save project before build”

Underlined, italic text with
right angle bracket

A menu path

File > Save

Bold characters

A dialog button

Click OK

A tab

Click the Power tab

Text in angle brackets < >

A key on the keyboard

Press , 

Plain Courier New

Sample source code

#define START

Filenames

autoexec.bat

File paths

c:\mcc18\h

Keywords

_asm, _endasm, static

Command-line options

-Opa+, -Opa-

Bit values

0, 1

Constants

0xFF, ‘A’

Italic Courier New

A variable argument

file.o, where file can be any
valid filename

Square brackets [ ]

Optional arguments

mcc18 [options] file
[options]

Curly brackets and pipe
character: { | }

Choice of mutually exclusive
arguments; an OR selection

errorlevel {0|1}

Ellipses...

Replaces repeated text

var_name [, var_name...]

Represents code supplied by
user

void main (void)
{ ...
}

Notes

 2016 Microchip Technology Inc.

A Note presents information
that we want to re-emphasize,
either to help you avoid a
common pitfall or to make you
aware of operating differences
between some device family
members. A Note can be in a
box, or when used in a table
or figure, it is located at the
bottom of the table or figure.

Note:

This is a standard
note box.

CAUTION
This is a caution note.
Note 1: This is a note used in a
table.

DS50002542A-Page 9

BM70/71 Bluetooth® Low Energy Module User’s Guide
RECOMMENDED READING
This user’s guide describes how to use the BM70/71 module. The following Microchip
document is available and is recommended as a supplemental reference resource.

BM70/71 Data Sheet (DS60001372)
Refer to this document for detailed information on the BM70/71 module. Reference
information found in this data sheet includes:
• BM70/71 module features and pin configurations
• Electrical specifications
• Reference circuits

Bluetooth Core Specification
Refer to this web page for detailed information on Bluetooth Core Specifications at:
https://www.bluetooth.com/specifications/bluetooth-core-specification

THE MICROCHIP WEBSITE
Microchip provides online support via our website at: http://www.microchip.com. This
website makes files and information easily available to customers. Accessible by most
Internet browsers, the website contains the following information:
• Product Support – Data sheets and errata, application notes and sample
programs, design resources, user’s guides and hardware support documents,
latest software releases and archived software
• General Technical Support – Frequently Asked Questions (FAQs), technical
support requests, online discussion groups, Microchip consultant program
member listings
• Business of Microchip – Product selector and ordering guides, latest Microchip
press releases, listings of seminars and events; and listings of Microchip sales
offices, distributors and factory representatives

DS50002542A-Page 10

 2016 Microchip Technology Inc.

Preface
DEVELOPMENT SYSTEMS CUSTOMER CHANGE NOTIFICATION SERVICE
Microchip’s customer notification service helps keep customers current on Microchip
products. Subscribers will receive e-mail notification whenever there are changes,
updates, revisions or errata related to a specified product family or development tool of
interest.
To register, access the Microchip website at www.microchip.com, click on Customer
Change Notification and follow the registration instructions.
The Development Systems product group categories are:
• Compilers – The latest information on Microchip C compilers and other language
tools
• Emulators – The latest information on the Microchip in-circuit emulator, MPLAB®
REAL ICE™
• In-Circuit Debuggers – The latest information on the Microchip in-circuit
debugger, MPLAB ICD 3
• MPLAB X IDE – The latest information on Microchip MPLAB X IDE, the
Windows® Integrated Development Environment for development systems tools
• Programmers – The latest information on Microchip programmers including the
PICkit™ 3 development programmer

CUSTOMER SUPPORT
Users of Microchip products can receive assistance through several channels:
•
•
•
•

Distributor or Representative
Local Sales Office
Field Application Engineer (FAE)
Technical Support

Customers should contact their distributor, representative or Field Application Engineer
(FAE) for support. Local sales offices are also available to help customers. A listing of
sales offices and locations is included in the back of this document.
Technical support is available through the website at: http://support.microchip.com.

 2016 Microchip Technology Inc.

DS50002542A-Page 11

BM70/71 Bluetooth® Low Energy Module User’s Guide
DOCUMENT REVISION HISTORY
Revision A (October 2016)
• Original release of this document.

DS50002542A-Page 12

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Chapter 1. Overview
Microchip’s BM70 and BM71 modules are fully certified Bluetooth Low Energy (BLE)
modules. The BM70 and BM71 modules use Microchip’s IS1870 and IS1871 chips,
respectively. These chips or Integrated Circuits (IC) include the BLE RF transceiver,
and a certified Bluetooth 4.2 BLE software stack. The BM70/71 module is designed to
work with a host microcontroller, generating flexible BLE-based functionality to the end
target application. The BM70/71 module's operation or behavior is controlled through
a set of communication protocols over a UART interface. The target application can
gain the following BLE-related functionality to control the BM70/71 module by using the
commands in these communication protocols:
• Bluetooth core 4.2 specification support with LE Secure Connection (LESC)
pairing and LE Data Length Extension:
- Supports LESC pairing methods such as “Just Works”, “Passkey Entry”, and
“Numeric Comparison”. The I/O capabilities of the module are configurable to
fit with the end target application requirements. The I/O capabilities determine
the actual method used for LESC pairing
- Supports LE Data Length extension for up to 104 bytes
• BLE Capability – Generic Access Profile (GAP) Roles:
- Broadcaster
- Observer
- Peripheral
- Central
• BLE Capability – GAP Modes:
- Broadcast
- Discoverable
- Non-connectable, Directed-connectable, Undirected-connectable
- Bondable
• BLE Capability – GAP Procedures:
- Observation
- General-connection establishment
- Connection parameter update
- Terminate connection
- Bonding
• BLE Capability – Generic Attribute (GATT) Profile, both GATT Client/Server roles
are supported:
- Server configuration
- Service discovery
- Characteristic discovery
- Characteristic descriptor discovery
- Read/Write a characteristic value
- Notification/Indication of a characteristic value
- Reading/Writing a characteristic descriptor

 2016 Microchip Technology Inc.

DS50002542A-Page 13

BM70/71 Bluetooth® Low Energy Module User’s Guide
In addition to the BLE-related functionality, the module provides a peripheral and general I/O functionality, which can be controlled by using the applicable commands over
the UART interface. The available I/O and peripheral features are determined by the
specific module being used.
Note:

For more information on the I/O and peripheral features of the module, refer
to the “BM70/71 Data Sheet” (DS60001372), which is available for download from the Microchip website: www.microchip.com/BM70.

The hardware features enabled by the end target application are determined by the
configuration settings applied in the module. This document provides the details
regarding various protocols used to configure, control the behavior and program the
module.
At a high level, a designer can implement the following work flow when developing a
host application with the BM70/71 module:
• If applicable, program the BM70/71 module with the latest firmware (optional,
based on end target application requirements)
• To help verify the module placement on a PCB, a designer can invoke the
module's test mode to confirm BLE output power, as per the BLE specification
• Configure the BM70/71 module functionality for the application's requirements
• Once configured, control the BM70/71 BLE and hardware behavior by sending the
appropriate commands from the host
• During the production stage, a designer can invoke the module's test mode to
confirm BLE output power, as per the BLE specification in their end product
Overall, the designer of the target application is responsible for determining the
section(s) of the customizable BLE and hardware functionality to be used in the
BM70/71 module. Some BLE devices are “sources” of data/information while others
are “users” of this data/information. The flexibility of the BM70/71 BLE solution allows
master-central/slave-peripheral devices to be designed and implemented.

DS50002542A-Page 14

 2016 Microchip Technology Inc.

Overview
1.1

OPERATION OVERVIEW
It is possible to build a BLE product by using multiple different stack splits. The firmware
programmed into (or provided for) the BM70/71 module enable users to partition their
system so that the embedded application can run on a separate microcontroller (MCU).
In this design, the BLE controller and host (which runs the BLE stack) are in the
IS1870/71 chip on the BM70/71 module. Figure 1-1 illustrates an overview of system
partitioning with the application running on another chip or microcontroller. Advantages
of system partitioning are that the application chip can be very small (i.e, 8-bit microcontroller with a small memory footprint and few resources), or can be a low-powered
microcontroller. The interface between the external host chip and the BM70/71 module
is a simple UART interface. The communication occurs over the UART through a set
of protocols.
Note:

In this document, the term “host” will be used to refer to the
chip/microcontroller which runs the applications. The term “host” does not
mean the internal BLE host controller of the IS1870/71 already present in
the IC.

FIGURE 1-1:

BM70/71 MODULE OPERATION OVERVIEW

The BM70/71 module has configurable hardware and BLE functionality. The user can
configure the functionality required from the BM70/71 module to meet the end target
application's requirements. The BM70/71 module operation is governed by the configuration settings applied by the host. This section provides the details of all the possible
functions that the host can apply to the BM70/71 module.

 2016 Microchip Technology Inc.

DS50002542A-Page 15

BM70/71 Bluetooth® Low Energy Module User’s Guide
1.1.1

Configuration Overview

Configuring the BM70/71 module involves putting the device in Configure mode, and
sending commands over the UART interface from the configuration protocol to
enable/disable functionality. This configuration is stored in non-volatile memory, so the
settings are retained even after a power cycle and they remain in effect until there is a
change. After configuring the BM70/71 module, the host will need to put the module in
Application/Run mode, and send commands over the UART interface from the “Command Set” protocol to control the BLE and hardware functions over the UART interface.
For more information on switching between modes and communication protocols, refer
to Chapter 2. “Operating Modes, Configuration and Control”.

1.1.2

System Operation

The BM70/71 module has two main configuration options which affect the overall BLE
and hardware behavior available to the host. The two configurations are:
• Auto Operation Configuration: Auto Operation restricts the available BLE
operation by only allowing the BLE peripheral to act as a raw data pipe. This is
compatible with hosts who only require the BM70/71 module to act as a virtual
UART cable between the host and the remote peer device
• Manual Operation Configuration: Manual Operation provides the host the most
functionality and control over the BM70/71 BLE protocol and operation. This
configuration is used by a host to leverage the flexibility and feature set offered by
both the BLE protocol and the BM70/71 module

DS50002542A-Page 16

 2016 Microchip Technology Inc.

Overview
Figure 1-2 illustrates the internal logic of the BM70/71 module as a state machine with
three states. Each state handles a specific portion of the overall BLE operation. When
the host chooses Auto Operation or Manual Operation, the following occurs:
• The number of events processed by the BM70/71 module in each state is
determined
• The way events are generated by the host is determined
Auto Operation has a reduced number of events in each state because the available
BLE functionality is restricted. The events are generated by the host indirectly through
values, which are setup in Configuration mode.
Manual Operation allows more events to occur in each state because more BLE functionality is available. The events are directly generated by the host through commands
sent over the UART.
FIGURE 1-2:

 2016 Microchip Technology Inc.

STATE MACHINE DIAGRAM

DS50002542A-Page 17

BM70/71 Bluetooth® Low Energy Module User’s Guide
The designer of the end target application selects the applicable configuration: Auto
Operation or Manual Operation. The designer also determines the available hardware
functionality to be used. This complete configuration is programmed into the BM70/71
module by the host. Once configured, the host can switch the module to Run mode and
perform the BLE operations. Figure 1-3 illustrates the overview of the BM70/71 module
system operation.
FIGURE 1-3:

BM70/71 MODULE SYSTEM OPERATION

For additional information about the BLE and hardware-related functions, refer to
1.1.2.1 “Auto Operation” and 1.1.2.2 “Manual Operation”.

DS50002542A-Page 18

 2016 Microchip Technology Inc.

Overview
1.1.2.1

AUTO OPERATION

Auto Operation limits the available BLE and hardware functionality, but is the simplest
configuration to use. The intended target application Auto Operation is a raw data pipe
between the host and the BLE central/master device (peer device). Before two devices
can exchange data, they must first find each other and connect. In BLE, the GAP layer
defines how two devices find each other, discover what each device can do, and how
they are able to repeatedly find and connect with each other. Using the roles defined
by the GAP layer, the BM70/71 module will only behave as a peripheral advertising,
using connectable advertising packets. The BM70/71 module uses the Limited-Discoverable mode and General-Discoverable mode defined in the GAP to make its presence
known while Auto Operation is active. Once connected, a private GATT service called
“Transparent UART” is used to exchange data with the peer device. This simplifies the
tasks a host has to do when trying to communicate data over BLE. Auto Operation
works well for hosts who do not care about the BLE protocols, but want the BM70/71
module to act as a virtual UART pipe between the host and the BLE central/master.
When Auto Operation is active, any data sent over the UART interface is transmitted to
the connected device. Any data received by the BM70/71 module from the connected
device is sent over the UART interface to the host. This means the “Command Set” protocol, used to control the BM70/71 module operation, is ignored. When Auto Operation
is active, any “Command Set” protocol messages sent by the host will not be interpreted. Instead, the data will be transmitted to the connected BLE device.
Because Auto Operation does not accept the “Command Set” protocol message over
the UART, there are additional configuration options available. These additional options
allow the host to get the BM70/71 module status and to generate events to gain some
control over the BM70/71 module behavior.
Table 1-1 provides the BM70/71 functionality and configuration options available when
used in Auto Operation.
TABLE 1-1:

FUNCTIONALITY AND CONFIGURATION OPTIONS

Configuration
Item

Related Parameters

Status
Indication

N/A

Run Time
Configuration
Window

Related
Hardware Pins

Section Reference
Description

Status1_IND
Status2_IND

1.1.2.1.2 “Auto
Operation – Status
Indication”

Configuration Timeout

N/A

1.1.2.1.3 “Auto
Operation – Configuration Timeout”

UART Flow
Control

N/A

RTS
CTS

1.1.2.1.4 “Auto
Operation – UART
Flow Control”

Connection
Settings

Minimum Connection Interval
Maximum Connection Interval
Slave Latency
Supervision Timeout

N/A

1.1.2.1.11 “Auto
Operation – Connections”

Discoverability
Settings

Fast Advertising Interval
Reduced Power Advertising
Interval
Fast Advertising Timeout
Reduced Power Advertising
Timeout
Standby Period after Power On
Standby Period after Disconnect

N/A

1.1.2.1.10 “Auto
Operation – Discoverability”

 2016 Microchip Technology Inc.

DS50002542A-Page 19

BM70/71 Bluetooth® Low Energy Module User’s Guide
TABLE 1-1:

FUNCTIONALITY AND CONFIGURATION OPTIONS

Configuration
Item
Advertising
Data

Related Parameters
Manufacture data
Device Name
UUIDs

Scan Response Manufacture Data
Data
Battery Level Indication
TX Power Setting
User Specific Data
Link Quality
Indication

Normal Received Signal Strength
Indication (RSSI) Threshold Level
Weak RSSI Threshold Level

Low Battery
Indication

Low Battery Level
Battery Detection Threshold
Normal Battery Level
Low Battery Timeout Period

BM70/71 Active Indication Type
Indication

Related
Hardware Pins

Section Reference
Description

N/A

N/A

RSSI_IND

1.1.2.1.8 “Auto
Operation – Link
Quality Indication”

LOW_BATTERY 1.1.2.1.7 “Auto
_IND
Operation – Low
Battery Indication”
RX_ACTIVE
_IND

Disconnect Link N/A
Enter Standby

PAIRING_KEY

Disconnect Link N/A
Enter Shutdown

LINK_DROP

1.1.2.1.9 “Auto
Operation –
BM70/71 Active
Indication”
1.1.2.1.5 “Auto
Operation – Pairing
Key”
1.1.2.1.6 “Auto
Operation – Link
Drop”

Some of the configuration options (Table 1-1) are available for the host to control in
Manual Operation through the “Command Set” protocol. The options listed in Table 1-1
are available when the Auto Operation configuration is chosen.
The internal logic of the BM70/71 module executes as a state machine (refer to
1.1.2 “System Operation”). Each state has parameters, which can be configured (see
Table 1-1), to determine the behavior in Auto Operation. These configuration options
allow the host to perform the following:
• Instruct when transitions between the states will occur
• Force transitions to different states by using hardware pins to generate events
• Indicate when a state transition occurs

DS50002542A-Page 20

 2016 Microchip Technology Inc.

Overview
Figure 1-4 illustrates the state machine diagram behavior when Auto Operation is
active.
FIGURE 1-4:

STATE MACHINE IN AUTO OPERATION MODE

The host should be aware of the logic in each state which is automatically executed by
the BM70/71 module while Auto Operation is active. The BM70/71module does not
wait for the host to control this behavior. The following is a description of each state:
• Standby state – This state is where the BM70/71 module is in Bluetooth
discoverable and connectable mode. The module enables Undirected Advertising,
and can be paired by another device as long as the module remains in
Discoverable and Connectable mode. The information sent in the Advertising
packets and Scan Response packets are determined at the time of configuration.
The pairing process takes place in this state and, if successful, the BM70/71
module will transition to the Link state.
• Link state – In this state the BM70/71 module has an active connection with a
Remote BLE device. The host can send/receive data to/from the remote device
• Shutdown state – This state is where the BM70/71 module enters a deep-sleep
power mode. There is no active RF communication taking place and the current
draw by the BM70/71 module is the lowest. The host must bring the BM70/71
module out of this state if the host wants to communicate with a remote device.

 2016 Microchip Technology Inc.

DS50002542A-Page 21

BM70/71 Bluetooth® Low Energy Module User’s Guide
1.1.2.1.1

Auto Operation – Transparent UART

When Auto Operation is active, the BLE capabilities of the BM70/71 module are
reduced to simplify the operation. The BM70/71 module can only take on the GAP role
of the peripheral and, once connected, the module can only become a slave. In this
role, it can operate as a “raw data exchanger” between the host and remote central BLE
device. The BM70/71 module will format the received UART data from the host as ATT
packets, send them to the remote device, and the data from the peer device is
unpacked by the module. This data exchange protocol will go through a proprietary
service, referred to as the “Transparent UART Service”. From the host point of view,
data can be sent and received over the UART directly (without being processed by the
Bluetooth module), once the “Transparent UART Service” is enabled. This is the only
BLE capability available when the BM70/71 module has been configured for Auto
Operation.
Figure 1-5 illustrates the sequence diagram for the flow of data between a Remote BLE
device, the BM70/71 module, and the host.
FIGURE 1-5:

DS50002542A-Page 22

TRANSPARENT UART

 2016 Microchip Technology Inc.

Overview
1.1.2.1.2

Auto Operation – Status Indication

The host can no longer send or receive a “Command Set” protocol message to find out
the BM70/71 module’s BLE status because the UART interface becomes a data pipe
between the host and BLE central/master. To overcome this issue when using Auto
Operation, two hardware pins can take on the functionality to indicate the BM70/71
module’s status to the host. The logic level on these two hardware pins can be sampled
by the host to gain the BLE status information (see Figure 1-6). Table 1-2 provides the
details of the Status indication pins.
TABLE 1-2:
Status1_IND/
Status2_IND

STATUS INDICATION PINS
Status

Description

H/H

Shutdown mode

The BM70/71 module is in shutdown mode; the
module enters into a deep-sleep mode. For more
details, refer to 1.1.2.3.2 “General Operation –
Low Power Control”

H/L

Standby mode

The BM70/71 module is sending advertising packets and is waiting for a connection. The module is
discoverable and connectable

L/L

BLE connected mode

The BLE link is established and the Client Characteristic Configuration Descriptor (CCCD) of “ISSC_Transparent_TX” characteristic is disabled

L/H

Data Session open

The BLE link is established and the CCCD of “ISSC_Transparent_TX” characteristic is enabled

FIGURE 1-6:

 2016 Microchip Technology Inc.

STATUS INDICATION

DS50002542A-Page 23

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 1-3 provides the list of the pins in the BM70/71 module which can be configured
to operate with this functionality.
TABLE 1-3:
Functionality

DS50002542A-Page 24

CONFIGURATION OF STATUS INDICATION PINS
BM70 PINS

BM71 PINS

Status1_IND

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

Status2_IND

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

 2016 Microchip Technology Inc.

Overview
1.1.2.1.3

Auto Operation – Configuration Timeout

When Auto Operation is active, the “Command Set” protocol will be ignored. In order
to make changes to some of the features in the BM70/71 module behavior (available
in Auto Operation mode), before the module enters the Auto operation mode, a window
of time, called the Configuration Timeout, is provided. This Configuration Timeout value
is set in Configuration mode. During this time period, the host can send applicable
“Command Set” protocol messages over the UART to alter the BM70/71 BLE behavior.
Figure 1-7 illustrates system operation when the BM70/71 module has been configured
to have a “Configuration Window” open before Auto Operation becomes active.
FIGURE 1-7:

BM70/71 MODULE CONFIGURATION TIMEOUT

The configuration option is an 8-bit value and each bit represents a unit of 640 ms. A
value of “0” disables the “Configuration Window”. The following formula can be used to
calculate the timeout period of the “Configuration Window”:
Timeout Value = (x * 0.640), where x is the programmable value in the range 1 to 255.

 2016 Microchip Technology Inc.

DS50002542A-Page 25

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 1-8:

CONFIGURATION TIMEOUT DISABLED

If the configuration timeout window is enabled by the host, the host can also command
the BM70/71 module to exit the configuration period early, if necessary. Figure 1-9
illustrates the sequence diagram (for more information on “Command Set” protocol
messages, refer to 2.3.3 “Commands and Event Responses”).

DS50002542A-Page 26

 2016 Microchip Technology Inc.

Overview
FIGURE 1-9:

1.1.2.1.4

CONFIGURATION ENDED BY HOST

Auto Operation – UART Flow Control

The BM70/71 module supports UART flow control. When flow control is enabled, the
CTS and RTS pins become active. Flow control is used to prevent temporary UART
buffer overrun in the host and/or the BM70/71 module. If the UART buffer of the
BM70/71 module is full, RTS will be raised by the module. If the UART buffer of the host
is full, CTS of the module (RTS pins of the host) will be raised by the host. At most two
bytes are sent after CTS is raised.
Figure 1-10 and Figure 1-11 illustrate the functionality of UART CTS flow control and
UART RTS flow control.

 2016 Microchip Technology Inc.

DS50002542A-Page 27

FIGURE 1-11:

UART RTS FLOW CONTROL

 2016 Microchip Technology Inc.

BM70/71 Bluetooth® Low Energy Module User’s Guide

UART CTS FLOW CONTROL
DS50002542A-page 28

FIGURE 1-10:

Overview
Table 1-4 provides the list of the available BM70/71 module pins that can be used for
the flow control functionality.
TABLE 1-4:

PINS FOR FLOW CONTROL FUNCTIONALITY

Functionality

BM70 PINS

BM71 PINS

CTS

P00

P00

RTS

P13

P36

1.1.2.1.5

Auto Operation – Pairing Key

When the BM70/71 module is connected to a remote device and in the Link state, the
host can use the pairing key to force the module to disconnect the link and go back to
the Standby state. In the Standby state, the module effectively starts to advertise again.
All the timeouts associated with the Standby state restart at their configured value and
become active.
The Pairing Key is a configurable hardware pin that the host can use to indicate to the
BM70/71 module to exit the Link state and return to the Standby state. Figure 1-12
illustrates how the host can use this functionality.
FIGURE 1-12:

PAIRING KEY

The host must drive the configured pin to be the Pairing Key to a logic level of “0” for
>= 160 ms (TPAIRING_KEY). Table 1-5 provides the list of the hardware pins available for
the Pairing Key functionality.
TABLE 1-5:
Functionality
Pairing Key

 2016 Microchip Technology Inc.

PINS FOR PAIRING KEY FUNCTIONALITY
BM70 PINS

BM71 PINS

P00 (if CTS disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS disabled)

P00 (if CTS disabled)
P12
P13
P16
P17
P36 (if RTS disabled)

DS50002542A-Page 29

BM70/71 Bluetooth® Low Energy Module User’s Guide
1.1.2.1.6

Auto Operation – Link Drop

When the BM70/71 module is connected to a remote device and is in the Link state,
the host can use Link Drop to force the module to disconnect the link and transition to
the Shutdown state. In the Shutdown state, the BM70/71 module enters into a
deep-sleep mode, there is no RF activity and then the UART is disabled. The module
will remain in this state until a power loss event or the host wakes the BM70/71 module.
Figure 1-13 illustrates how the host can use this functionality.
FIGURE 1-13:

LINK DROP

The host must drive the pin configured to be the Link Drop to a logic level of “0” for >=
10 ms (TLINK_DROP). Table 1-6 provides the details of the hardware pins available for
this functionality.
TABLE 1-6:
Functionality
Link Drop

DS50002542A-Page 30

PINS FOR LINK DROP FUNCTIONALITY
BM70 PINS

BM71 PINS

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

 2016 Microchip Technology Inc.

Overview
1.1.2.1.7

Auto Operation – Low Battery Indication

Because the host cannot get a status from the BM70/71 module regarding the battery
voltage level over the UART, the host can configure the module to use a hardware pin
to indicate when certain voltage thresholds have been detected on the BAT_IN pin of
the module. The voltage thresholds used by this function are configurable. Figure 1-14
illustrates how the host can use the Low Battery Indication pin to detect the configured
battery voltage levels.
FIGURE 1-14:

LOW BATTERY INDICATION

When the BM70/71 module detects that the battery voltage is lower than the “Low
Battery Level” threshold, LOW_BATTERY_IND will be driven to logic level “0”. When
the BM70/71 module detects the battery voltage is >= “Normal Battery Level” threshold,
LOW_BATTERY_IND will be driven to logic level “1”. The BM70/71 module can be
configured to enter the Shutdown state if the battery voltage is lower than the “Low
Battery Level” threshold for a certain time period. This time period is referred to as Low
Battery into Shutdown time. The rate at which the BM70/71 module samples the battery
voltage level is configurable, and referred to as the Battery Detection Interval. The
following formulas can be used to calculate the associated time periods and voltage
levels:
Battery Detection Interval = (x * 0.08), where x is the programmable value
Low Battery Into Shutdown Time = (x * 0.64), where x is the programmable value
Battery Level (Low, Normal) = (x * 0.1), where x is the programmable value
Table 1-7 provides the information of the battery level functionality.
TABLE 1-7:

BATTERY LEVEL FUNCTIONALITY

Functionality

Parameter Range

Parameter Value

Battery Detection Interval

0x01-0xFF

Each bit represents a unit of 80 ms
Interval = x * 80 ms

Low Battery Level

0x00-0x12

Each bit represents a unit of 100 mV
Threshold = x * 100 mV

Normal Battery Level

0x00-0x12

Each bit represents a unit of 100 mV
Threshold = x * 100 mV

Low Battery into Shutdown
Time

0x00-0xFF

Each bit represents a unit of 640 ms
Interval = x * 640 ms
A value of “0” disables this functionality

 2016 Microchip Technology Inc.

DS50002542A-Page 31

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 1-8 provides list of the hardware pins that can be used for the LOW_BATTERY_IND functionality.
TABLE 1-8:

PINS FOR LOW_BATTERY_IND FUNCTIONALITY

Functionality

BM70 PINS

BM71 PINS

LOW_BATTERY_ IND

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

1.1.2.1.8

Auto Operation – Link Quality Indication

The BM70/71 module indicates the quality of the RF link by providing a number referred
to as the RSSI value. When Auto Operation is active, the host cannot retrieve this number because the UART interface becomes a data pipe and all “Command Set” protocol
messages are ignored. If the Link Quality Detection option is enabled by the host during
Configuration mode, the BM70/71 module can indicate the quality of the link using a
hardware pin. The host provides two threshold values, which the module uses to compare against the current RSSI measurement. If the module measured RSSI value is
above or below these two threshold values, then the respective hardware pin is driven
to a logic level of “0” or “1”. This gives the host an idea of the link quality, and determines a good link and a poor link in the configuration mode.
Figure 1-15 illustrates the sequence diagram of the Link Quality Indication.
FIGURE 1-15:

LINK QUALITY INDICATION

The rate at which the BM70/71 module can change the RSSI_IND pin to indicate link
quality is based off of the connection interval controlled by the Remote BLE central
device. Approximately 25 ms is the quickest the BM70/71 module can measure the
RSSI value, then compare it to the configured thresholds, and finally drive the
RSSI_IND pin to the appropriate logic level.

DS50002542A-Page 32

 2016 Microchip Technology Inc.

Overview
Table 1-9 provides the details of the possible configuration ranges the host can set with
the BM70/71 module.
TABLE 1-9:

CONFIGURATION RANGE

Functionality

Parameter Range

Parameter Value

Normal RSSI Threshold

0x32-0x5A

Represented as a decibel (dB)

Weak RSSI Threshold

0x32-0x5A

Represented as a decibel (dB)

Table 1-10 provides the list of the available hardware pins that can be used as the
RSSI_IND pin.
TABLE 1-10:

PINS FOR RSSI_IND FUNCTIONALITY

Functionality
RSSI_IND

1.1.2.1.9

BM70 PINS

BM71 PINS

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

Auto Operation – BM70/71 Active Indication

The host can get the status of the module when the BM70/71 module internal MCU is
operating and/or when the physical layer (i.e, Radio) is operating. This information is
useful if the host needs to know whether the BM70/71 module is in any of the low-power
modes. When Auto Operation is active, the host cannot retrieve this information using
the “Status Report” command in the “Command Set” protocol. Therefore, the
BM70/71 module provides a way to indicate activity over a hardware pin.
This type of activity is configurable; the host can choose to be notified if the internal
BM70/71 MCU/internal Radio is active, or if just the internal Radio is active. Based on
the activity indication, the BM70/71 module will drive the RF_ACTIVE_IND pin to a
logic level of “1” if the activity indication is “true” (see Figure 1-16), or to a logic level of
“0” if the activity indication is “false” (see Figure 1-17).

 2016 Microchip Technology Inc.

DS50002542A-Page 33

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 1-16:

BM70/71 ACTIVE INDICATION

FIGURE 1-17:

BM70/71 ACTIVE INDICATION

Table 1-11 provides the possible configuration ranges the host can set the BM70/71
module to.
TABLE 1-11:

BM70/71 CONFIGURATION RANGE

Functionality

DS50002542A-Page 34

Parameter Range

Parameter Value

BM70/71 Active Indication

0x00-0x01

Disabled/Enabled

Activity Indication Type

0x00-0x01

RF, Physical Layer Only /
RF, Physical Layer + MCU

 2016 Microchip Technology Inc.

Overview
Table 1-12 provides the list of the available hardware pins that can be used as the
RF_ACTIVE_IND pin.
TABLE 1-12:

PINS FOR RF_ACTIVE_IND FUNCTIONALITY

Functionality
RF_ACTIVE_IND

BM70 PINS

BM71 PINS

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

1.1.2.1.10 Auto Operation – Discoverability
To exchange data over BLE, devices must have the capability of finding each other first.
When Auto Operation is active, the BM70/71 module can only take on the role of a
peripheral (defined in the GAP layer), and a peripheral makes its presence known by
following certain rules in BLE. A device's discoverability refers to how the peripheral
advertises its presence to other devices and what those devices are able to do with the
information. When Auto Operation is active, the BM70/71 module can only use the
GAP layer's defined discoverable modes. It cannot be a scanner and use discovery
procedures. The values provided during the configuration of the BM70/71 module
affects how another device can detect the presence of the BM70/71.
In Auto Operation, the BM70/71 module is in the general discoverable mode. It will
advertise as long as the “advertising time” value is configured for. Advertising packets
ADV_IND are the only type sent. This means the device is in Undirected-Connectable
mode, making itself connectable. The host has no control over this in Auto Operation;
this is the only behavior allowed.
The host has control over the time-related values, like how long and how fast the
BM70/71 module will advertise. These values are set at the time of configuration and
are as follows:
• Fast Advertising Interval – This is the initial advertising interval (Tadvertising_interval)
used when the BM70/71 module enters Standby mode in the Standby state (see
Figure 1-2). The faster the device advertises, the quicker it can be discovered.
However, the device will consume more current since it is actively transmitting
• Fast Advertising Timeout – This is the period of time the BM70/71 module will
send the advertising packets at the Fast Advertising Interval rate
• Reduced Power Advertising Interval – This is the secondary advertising interval
(TReduced_Power_Advertising_Interval). It is meant to allow the device to be discovered,
but sends the advertising packets at a slower rate to help conserve power. This
time interval will only start if the configured “Fast Advertising Timeout” period has
expired. The name of this interval “Reduced Power Advertising” does not change
or alter anything related to transmit power when sending advertising packets. This
term is meant to imply the overall power consumption of the BM70/71 module is
reduced because the rate at which the packets are sent is slower.

 2016 Microchip Technology Inc.

DS50002542A-Page 35

BM70/71 Bluetooth® Low Energy Module User’s Guide
• Reduced Power Advertising Timeout – This is the period of time the BM70/71
module will send advertising packets at the “Reduced Power Advertising Interval”
rate. Once this time period expires and if the BM70/71 module has not made a
connection, the BM70/71 module will automatically enter the Shutdown state
where it will be enter into the low-power, “Deep-sleep/Shutdown” mode. This
value is calculated internally by the BM70/71 module. The calculated value is
based on either the “Standby Time” or the “After Disconnect Standby Time”
parameter and the “Fast Advertising Timeout” parameter (for calculating using the
formula, refer to Table 1-13).
• Standby Time – This is the total period of time the BM70/71 module will advertise.
This value is used after RST_N hardware of a Power-on Reset (POR) event to
determine how long the BM70/71 module will advertise in the Standby state.
• After Disconnect Standby Time – This time period becomes relevant after the
BM70/71 module receives a disconnect event. The BM70/71 module has to be in
the Link state, then must receive a disconnect event (from host or peer device),
and then move into the Standby state (see Figure 1-2). When entering the
Standby state from the Link state, the BM70/71 module is able to use the “After
Disconnect Standby Time” period value to determine the total advertising time.
This value will override the “Standby Time” value that is used when the BM70/71
module enters the Standby state for the first time. If this parameter is non-zero,
and the conditions are met for using this value, the “Reduced Power Advertising
Timeout” value will be calculated using this parameter.
Table 1-13 provides the configuration values which impact the BM70/71 module
behavior while sending the advertising packets.
TABLE 1-13:

CONFIGURATION VALUES FOR DISCOVERABILITY

Functionality

DS50002542A-Page 36

Parameter Range

Parameter Value

Fast Advertising Interval

0x0020-0x4000

Each bit represents 625 μs
Interval = x * 0.000625

Fast Advertising Timeout

0x00-0xFF

Each bit represents 10.24s
Interval = x * 10.24
A value of 0x00 disables this timeout
period. If disabled, the BM70/71 module will never exit the “Fast Advertising Interval”

Reduced Power Advertising
Interval

0x00-0x04

0x00 = 645 ms
0x01 = 768 ms
0x02 = 961 ms
0x03 = 1065 ms
0x04 = 1294 ms

Reduced Power Advertising
Timeout

N/A, BM70/71
calculated value

Timeout = (Standby Time or After Disconnect Standby Time) - Fast Advertising Timeout

Standby Time

0x01-0xFF

Each bit represents 10.24s
Time = x * 10.24s
Reduced Power Advertising Timeout
is “disabled” if Time < Fast Advertising Timeout

After Disconnect Standby
Time

0x01-0xFF

Each bit represents 10.24s
Time = x * 10.24s
Reduced Power Advertising Timeout
is “disabled” if Time < Fast Advertising Timeout

 2016 Microchip Technology Inc.

Overview
Figure 1-18 illustrates how the host can program these configuration values, and
impact the BM70/71 module behavior while sending advertising packets.
FIGURE 1-18:

1.1.2.1.11

AUTO OPERATION - DISCOVERABILITY

Auto Operation – Connections

In general, a BLE device can communicate information with other devices in two ways,
broadcasting or connections. Each of these has its own advantages and
disadvantages, but its operation is governed by the rules and guidelines defined in the
GAP layer of the BLE. A connection is an exchange of data at a certain predetermined
interval or point of time. When these periodic data exchanges occur, they are called
connection events. Based on rules laid out in the BLE specification, one device
manages the connection establishment and the other device accepts it. The device
managing the connection parameters is called the central, and the device accepting the
connection is referred to as the peripheral.
When Auto Operation is active, the BM70/71 module can only take on the role of a
peripheral device (if this behavior is too restrictive, refer to 1.1.2.2 “Manual Operation”). A peripheral device does not determine the connection parameters but can
request certain limitations are adhered to. It is completely based on the device initiating
the connection to accept this request. There are three connection parameters that are
the key to establishing the connections:
• Connection Interval – This is the time between the start of two consecutive connection events. This value ranges from 7.5 ms to 4s. The BM70/71 module can
support intervals as fast as 20 ms
• Slave Latency – This is the number of connection events that a slave can choose
to skip without disconnecting from the master
• Connections Supervision Timeout – This is the maximum amount of time that can
pass between two received packets before the connection is considered lost

 2016 Microchip Technology Inc.

DS50002542A-Page 37

BM70/71 Bluetooth® Low Energy Module User’s Guide
Figure 1-19 illustrates how these parameters affect the connection events.
FIGURE 1-19:

AUTO OPERATION - CONNECTIONS

Since the BM70/71 module only takes on the role of a peripheral device when Auto
Operation is active, the host can configure these parameters, and enable a connection
parameter update request. This does not mean that the central/master device will
accept this request. When this parameter update request is sent, it is based on the
internal logic of the BM70/71 module and the host does not have control over this in
Auto Operation.
Table 1-14 provides the configuration values that the host can supply to set up the
BM70/71 module to perform this action.
TABLE 1-14:

CONFIGURATION VALUES FOR CONNECTIONS

Functionality

Parameter Value

Connection Interval Min

0x0008-0x0C80

Each bit represents 1.25 ms
Interval = x * 0.00125

Connection Interval Max

0x0010-0x0C80

A bit represents 1.25 ms
Interval = x * 0.00125

Slave Latency
Connections Supervision
Timeout

DS50002542A-Page 38

Parameter Range

0x00-0x03E8

Number of connection events that
can be skipped/ignored

0x000A-0x0C80

Each bit is worth a value of 10 ms
Timeout = x * 10

 2016 Microchip Technology Inc.

Overview
1.1.2.2

MANUAL OPERATION

For Manual Operation, the user must have knowledge of the BLE specification and
protocols. In Manual Operation, the host must configure parameters and instruct the
BM70/71 module to perform any type of operation when trying to communicate with
other peripherals through BLE. The configuration parameters and commands are
directly related to the information existing in the BLE specification. This information can
be beneficial to design the host application and to use the BM70/71 module BLE
functionality.
BLE is a means by which many devices can access and exchange data with one
another. Some of these devices have data the others want to use. Within BLE this distinction is important because it determines the type of device/role/mode the host will set
the BM70/71 module to be.
The most important things to understand in BLE are how two devices find each other,
how they decide what each device can do with one another, and how they then find and
connect with each other repeatedly. In BLE architecture, the GAP layer defines how
devices discover, connect and present useful information to a peer. The ATT protocol
and the GATT profile layers define rules for accessing the data (attributes) on a peer
device, what the types of data are, and how they can be used. All this is grouped
together in characteristic, service, and profile specifications. These specifications govern the way a device presents information to a peer or gets information from a peer.
The host must decide what type of device the BM70/71 module will be implemented as:
a device that has the data, a device that wants to access data, or both. Understanding
this information is important because it determines what commands (refer to
Section 2.3 “Command Set Protocol”) the host uses to control the behavior of the
BM70/71 module, as well as determines the type of BLE operation necessary.
For the host to control the BM70/71 module behavior, it is best to understand how the
firmware and logic of the IS1870/71 chip within the BM70/71 module is designed. The
host performs the following when interacting with the BM70/71 module:
• Instructs when transitions between the states will occur
• Indicates when a state transition occurs due to an external event.
Each state has a number of parameters which can be configured, and each state can
enter its own state or mode (control points). The host can send commands (Command
Set protocol) causing events to occur, which is processed by the state machine logic of
the IS1870/71 internal firmware on the BM70/71 module. These processed events
result in the BM70/71 module performing the BLE-related operations.
The type of BLE operations and behavior allowed are directly related to the parameters
and modes set by the host with previous commands. For example, while in the Standby
state, the following commands can be sent,
Set_Advertising_Parameter(0x13), and Write_Adv_Data(0x11). Based on
the parameters in these commands, the BM70/71 module may be in Broadcasting
mode and not discoverable when the Set_Adv_Enable(0x1C) command is sent by
the host. This allows the BM70/71 module to stay in the Standby state but to enter into
Broadcast mode sending advertising packets until the host commands otherwise. If the
host changes the Set_Advertising_Parameter(0x13), and
Write_Adv_Data(0x11) command parameters to make the device discoverable,
the BM70/71 module will remain in the Standby state, but will enter Standby mode,
sending advertising packets (ADV_IND type packets) indicating the device is
discoverable when the Set_Adv_Enable(0x1C) command is sent.

 2016 Microchip Technology Inc.

DS50002542A-Page 39

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 1-15 provides the different states and applicable modes of the BM70/71 module
state machine.
TABLE 1-15:

STATES AND APPLICABLE MODES OF THE BM70/71 MODULE

BM70/71 State

Modes

Standby state

Low-power
Idle
Broadcast
Standby
Scanning
Connecting

Link state

Low-power
Connected

Shutdown state

Deep-sleep

Figure 1-20 illustrates the different states and applicable modes of the BM70/71
module state machine in Manual Operation configuration.
FIGURE 1-20:

MANUAL OPERATION

Using the “Command Set” protocol, the host has full control over the BLE operation and
behavior of the BM70/71 module. Reviewing the description of commands in the “Command Set” protocol chapter (refer to Section 2.3 “Command Set Protocol”), and having a working knowledge of the information in the Bluetooth specification will allow a
designer to quickly implement their host application.
The rest of the sections in Chapter 2. “Operating Modes, Configuration and
Control” describe additional behavior available when Manual Operation is active.

DS50002542A-Page 40

 2016 Microchip Technology Inc.

Overview
1.1.2.2.1

Manual Operation – General I/O

The BM70/71 module has a number of general I/O pins that can be used by the host
as digital input/output. These pins can be used as long as they have not been
configured for another function during Configuration mode. When a pin is used as an
output, the host can drive the pin to a logic level of “1” or a logic level of “0” using the
DIO_Control(0x0E) command. When the pin is used as a digital input, the host can
have the BM70/71 module read the digital input value of the pin using the
DIO_Control(0x0E) command.
This gives the host additional flexibility to read and drive various signals through the
BM70/71 module. This can be an advantage if the host pin count is limited, or if there
is a need to combine the logic to reduce the Bill of Material's cost.
If a pin has been configured for another function, the function configured will take
control of the pin. The DIO_Control(0x0E) command parameters for this pin will be
ignored. The acceptable voltage levels and the current that a particular pin can
source/sink are captured in the BM70/71 Data Sheet.
Note:

For more information on the I/O values of the module, refer to “BM70/71
Data Sheet” (DS60001372), which is available for download from the
Microchip website: www.microchip.com/BM70.

Table 1-16 provides the list of the pins available for this functionality.
TABLE 1-16:
Functionality
General I/O

Note 1:

2:

 2016 Microchip Technology Inc.

PINS FOR GENERAL I/O FUNCTIONALITY
BM70 PINS(1)

BM71 PINS(2)

P00
P02 (if LED0 is disabled)
P07
P10
P11
P12
P13
P22
P23 (if the WAKEUP_PIN is disabled)
P24
P31
P32
P33
P34
P35
P36

P00
P02
P12
P13
P16
P17
P36

Pins P00, P02, P07, P10, P11, P12, P13, P27 can be used as Analog Channels. If
used for this feature, they cannot be used for Digital I/O (refer to 1.1.2.2.2 “Manual
Operation – Analog Pins”).
Pins P00, P02, P12, P13, P27 can be used as Analog Channels. If used for this
feature, they cannot be used for Digital I/O (refer to 1.1.2.2.2 “Manual Operation –
Analog Pins”).

DS50002542A-Page 41

BM70/71 Bluetooth® Low Energy Module User’s Guide
1.1.2.2.2

Manual Operation – Analog Pins

The BM70/71 module has several pins which can have an analog voltage input. Each
analog pin enters its own internal Analog to Digital Converter (ADC) channel, allowing
the BM70/71 module to do an ADC conversion on the pin's voltage. Using the “Command Set” protocol, the host can command (Read_ADC_Value (0x04)) the
BM70/71 module to do a conversion on a specific pin. The returned value is the digital
representation of the voltage present on the pin.
This gives the host additional flexibility to sample voltage levels on the pins through the
BM70/71 module. This can be an advantage if the host pin count is limited or if there is
a need to combine the logic to reduce the Bill of Material's cost.
The host can only command the conversion; the host cannot supply any parameters
for performing the conversion. All ADC parameters are fixed internally on the BM70/71
module. So when the BM70/71 module returns the conversion value, an associated
resolution value is returned. This allows the host to calculate the value of each bit to
obtain the approximate voltage on the analog pin.
Note 1:

For more information on the maximum input voltage allowed on any given
pin, refer to the “BM70/71 Data Sheet” (DS60001372), which is available
for download from the Microchip website:
www.microchip.com/BM70.

2:

Reference the “BM70/71 Data Sheet” (DS60001372) to check if the
voltage level applied to the pin is within acceptable ranges. If the voltage
level, is higher than the maximum voltage input level of a BM70/71
module pin, an external voltage divider may have to be implemented to
get the voltage within the maximum or minimum input range.

The BM70/71 module has two internal ADC channels which are connected to the internal VBAT pin and an internal temperature sensor. This gives the host the ability to read
the voltage present on the VBAT input of the BM70/71 module, and to read the ambient
temperature of the BM70/71 module. These measurements are made on two separate
analog channels and do not reduce the ADC channel count for taking measurements
on available analog pins. The host uses the same Read_ADC_Value(0x04) command to perform the ADC measurement for the temperature sensor and VBAT input.
Table 1-17 provides the details of the BM70/71 module hardware pins which can be
used for this functionality. For an analog pin to be available, it cannot be configured for
any other hardware function (UART_RX_IND, LED0, etc.).
TABLE 1-17:

ANALOG PIN FUNCTIONALITY

Functionality

BM70 PINS

BM71 PINS

P00

P00

ADC Channel 2 (AD2)

P02

P02

ADC Channel 7 (AD7)

P07

N/A

ADC Channel 8 (AD8)

P10

N/A

ADC Channel 9 (AD9)

P11

N/A

ADC Channel 10 (AD10)

P12

P12

ADC Channel 11 (AD11)

P13

P13

ADC Channel 14 (AD14)

P27

P27

ADC Channel 0 (AD0)

DS50002542A-Page 42

Host Command
Read_ADC_Value(0x04)

 2016 Microchip Technology Inc.

Overview
Table 1-17 provides the details of the analog channels, the internal temperature sensor
and VBAT input attached.
TABLE 1-18:

ANALOG CHANNEL FUNCTIONALITY

Functionality

BM70 PINS

BM71 PINS

ADC Channel 16 (AD16)

N/A
used for internal
VBAT pin measurement

N/A
used for internal
VBAT pin
measurement

ADC Channel 17 (AD17)

N/A
used for internal temperature sensor
measurement

N/A
used for internal
temperature sensor
measurement

1.1.2.2.3

Host Command
Read_ADC_Value(0x04)

Manual Operation – Pulse Width Modulation (PWM) Output

The BM70/71 module has the capability of using an internal timer/compare circuit to
drive a PWM waveform on certain general I/O pins. The host can control this
functionality using the PWM Control(0x0F) command while the BM70/71 module is
in Manual Operation. The timer and the associated counter are 16 bits, and the full
range of the timer and timer counter is 0x0001-0XFFFF. The timer starts incrementing
the “timer counter” starting from value 0x0001. The timer increments the counter until
the counter equals the compare value. When this happens, the applicable digital
general I/O pin's output logic level is toggled. The timer continues to increment the
counter until it reaches the top end of its range. Once the counter reaches the top, the
applicable digital general I/O pin's output logic level is toggled again. The timer resets
the timer counter back to 0x0001, and the process repeats. The top of the range for the
timer counter can be any value between 0x00001-0XFFFF; the default value is
0xFFFF. The only rule is that the compare value has to be less than the top range of
the timer counter.
The rate at which the timer increments the counter is based on the timer's clock source.
The BM70/71 module has three clocks and the host can choose from 32 kHz, 1 MHz,
and 16 MHz. The amount of the time taken for the timer to increment the counter until
it equals the compare value, or until it reaches the top of its range, is directly related to
the speed of the clock. The following formula is used to calculate these amounts of
time:
Period Compare = (1/clock source) * Compare value
Period Timer Range = (1/clock source) * (Timer Range value - Compare value)
This means the applicable PWM channel output pin's logic level will be toggled at a rate
of the “Period” values calculated. Once enabled, the PWM output will continue until the
user disables or changes the PWM function.

 2016 Microchip Technology Inc.

DS50002542A-Page 43

BM70/71 Bluetooth® Low Energy Module User’s Guide
Figure 1-21 illustrates the logic of the PWM output.
FIGURE 1-21:

MANUAL OPERATION – PWM OUTPUT

Table 1-19 provides the number of hardware pins and the number of PWM channels
that can be configured for PWM output. The pins are available if they are not used for
any other hardware functions.
TABLE 1-19:

PWM CHANNEL PIN FUNCTIONALITY

Functionality
PWM Channel 0 (PWM0)
PWM Channel 1 (PWM1)
PWM Channel 2 (PWM2)

1.1.2.2.4

BM70 PINS
P36 (RTS disabled)
P22

BM71 PINS

Host Command

P36 (RTS disabled) PWM Control
(0x0F)
N/A

P23 (if wake-up
disabled)

N/A

Manual Operation – GATT Services

To exchange the data between two peer devices in BLE, the devices have to follow the
rules defined in the GATT and the ATT protocol layers. At a high level, the GATT layer
establishes how to exchange all the profiles and the user data over a connection. The
client-server architecture is one of the fundamental design elements which accomplishes this functionality. The terms client and server are defined in the ATT protocol
layer. Using these terms, the server holds the data, and clients send requests to the
server for this data. The server is told what to do; the client has the job of discovering
what data the server has and how to use that data. Due to this client-server architecture, separate documents can be created to describe the behavior on the server and a
client. The server's behavior is defined in a service specification, whereas the client's
behavior is defined in a profile specification. Together with the definitions of the GATT
layer, BLE specification documents create rules to define behavior on a server, how
information is exposed, and what it means. Creating these service specification and
profiles helps to ensure interoperability between devices using BLE.
The BM70/71 module operates as a GATT-based bridge, allowing devices to interact
with each other and exchange data through these service and profile specifications.
The BLE specification has adopted many different types of service and profile specifications. The BM70/71 module has the support for many of these public services as well
as allowing a user to define proprietary services. During Configuration mode, the host
can choose the type of services that will be available in Run mode. The following list
captures the supported public services:
• Alert Notification Service
• Battery Service

DS50002542A-Page 44

 2016 Microchip Technology Inc.

Overview
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

Blood Pressure Service
Body Composition Service
Bond Management Service
Continuous Glucose Monitoring Service
Current Time Service
Cycling Power Service
Cycling Speed and Cadence Service
Glucose Service
Health Thermometer Service
Heart Rate Service
HID Service
Immediate Alert Service
Link Loss Service
Location and Navigation Service
Next DST Change Service
Phone Alert Status Service
Reference Time Update Service
Running Speed and Cadence Service
Scan Parameters Service
TX Power Service
Weight Scale Service

The BM70/71 module has built-in support for default services. These default services
will be included in the type of configuration chosen by the host. The default services
are:
• GAP Service
• Device Information Service
• Proprietary “Transparent UART” Service
Table 1-20 provides the relevant “Command Set” protocol message a host will use to
interact with the local services and the services on the remote device.
TABLE 1-20:
GATT/ATT
Role

BM70/71 COMMAND SET PROTOCOL MESSAGES
BM70/71 “Command Set” messages

Section
Reference

Client

Discover_All_Primary_Services(0x30)
2.3 “Command
Discover_Specific_Primary_Service_Character- Set Protocol”
istics(0x31)
Read_Characteristic_Value(0x32)
Read_Using_Characteristic_UUID(0x33)
Write_Characteristic_Value(0x34)
Enable_Transparent(0x35)

Server

Send_Characteristic_Value(0x38)
Update_Characterisitic_Value(0x39)
Read_Local_Characteristic_Value(0x3A)
Read_Local_All_Primary_Service(0x3B)
Read_Local_Specific_Primary_Service(0x3C)
Send_Write_Response(0x3D)

2.3 “Command
Set Protocol”

The GATT and ATT layers define rules for how information is organized and accessed
on a device. The BM70/71 module follows these rules, but this requires memory to
store and organize the data (attributes) in a service. The BM70/71 module has an internal memory limitation regarding the amount of addressable information (attributes) for

 2016 Microchip Technology Inc.

DS50002542A-Page 45

BM70/71 Bluetooth® Low Energy Module User’s Guide
a given service. This stored information can be variable in length so it is difficult to specify an exact number of services that can be added and stored in the memory of the
BM70/71 module.
Below are rules which can guide a user in regard to how much memory is available for
use:
• An attribute structure is expected to not exceed 28 bytes. (See BLE specification
for the format of an attribute)
- If this is true, the maximum number of attribute structures that can be stored is
100.
• Each service requires some number of attributes. Public services define this in a
service specification. For proprietary ones, the number is based on the application
requirements.
Figure 1-22 illustrates a generic format of an attribute, and some of the more common
types of attributes that are specified. When grouped together, these attribute types
make up a service; understanding this will help determine how many services the
BM70/71 module can support at one time.
FIGURE 1-22:

Note:

DS50002542A-Page 46

MANUAL OPERATION - GATT SERVICES

The structure of an attribute does not necessarily define a size for the
Permissions field. This is a vendor-specific chosen value. For the attributes
in the BM70/71 module, it takes one byte to hold the permission value.

 2016 Microchip Technology Inc.

Overview
1.1.2.3

GENERAL OPERATION

The BM70/71 module has configuration options that apply to both Auto Operation and
Manual Operation. These options are considered general operation parameters. Some
of these configurable parameters are related to the BM70/71 module hardware functions and others are related to the BM70/71 module BLE operation. The host chooses
these options based on application requirements. There are exceptions to be noted
with the general operation parameters. In some cases, it is possible for the host to
apply certain values to these parameters, which makes them work only in Manual
Operation or Auto Operation, not both. These exceptions are noted in the applicable
section; attention must be paid to these exceptions. The remaining sections in this
chapter explain the general operation parameters and how a host can use them.
1.1.2.3.1

General Operation – LED Indication

In both Manual Operation and Auto Operation, the BM70/71 module is capable of driving an LED to give an external visual indication when certain BLE or hardware related
functionality occurs. The BLE functionality is based on the internal state machine the
BM70/71 module uses while Auto Operation or Manual Operation is active (refer to
1.1.2.1 “Auto Operation” and 1.1.2.2 “Manual Operation”). The host configures the
BM70/71 module to indicate what activity must be visually indicated through the LED
by driving the LED off, toggling, or on. Because the BM70/71 module only drives an
LED on one hardware pin, the host must choose a unique pattern for each function so
the function can be visually detected.
When the BM70/71 module is configured to drive an LED when detecting a low battery,
additional configuration information is needed. The host provides the BM70/71 module
three additional parameters. These parameters are used to determine if low battery
voltage thresholds have been detected on the BAT_IN pin of the module. When the
BM70/71 module detects battery voltage lower than the configured “Low Battery Level”
threshold, LED0 will be driven according to the LED parameters. When the BM70/71
module detects that the battery voltage is >= “Normal Battery Level” threshold, LED0
will not be driven. The rate at which the BM70/71 module samples the battery voltage
level is configurable, and referred to as “Battery Detection Interval”.
Table 1-21 provides the details of the configurable functionality.
TABLE 1-21:

LED INDICATION CONFIGURATION

Functionality
BM70/71 in Standby State

Parameter Range

Parameter Value

See Table 1-22 for LED LED Drive Type
parameters
LED Toggle Type
LED Toggle On Period
LED Toggle Off Period
LED Toggle Interval
LED Brightness Level

BM70/71 in Link State

LED Drive Type
LED Toggle Type
LED Toggle On Period
LED Toggle Off Period
LED Toggle Interval
LED Brightness Level

BM70/71 Powered On

LED Drive Type
LED Toggle Type
LED Toggle On Period
LED Toggle Off Period
LED Toggle Interval
LED Brightness Level

 2016 Microchip Technology Inc.

DS50002542A-Page 47

BM70/71 Bluetooth® Low Energy Module User’s Guide
TABLE 1-21:

LED INDICATION CONFIGURATION (CONTINUED)

Functionality
BM70/71 Low Battery

Parameter Range
See Table 1-22 for LED
parameters
See Table 1-23 for Low
Voltage threshold
parameters

Parameter Value
LED Drive Type
LED Toggle Type
LED Toggle On period
LED Toggle Off period
LED Toggle Interval
LED Brightness Level

Table 1-22 provides the LED Indication functionality.
TABLE 1-22:

LED INDICATION FUNCTIONALITY

Functionality
LED Drive Type

Parameter Range
0x00, 0x02, 0x05

Parameter Value
LED Off
LED On
LED toggle

LED Toggle Count

0x00-0x03

0x00 – Continuously toggle LED
0x01 – Toggle the LED On/Off “1” time
0x02 – Toggle the LED On/Off “2” time
0x03 – Toggle the LED On/Off “3” time
For non-zero value, the toggle count is
repeated after the “Toggle Interval”
expires

LED Toggle On Period

0x01-0xFF

Each bit is a worth a value of 1 ms
On Period = x * 0.001

LED Toggle Off Period

0x01-0xFF

Each bit is a worth a value of 1 ms
Off Period = x * 0.001

LED Toggle Interval

0x00-0xFF

Each bit is a worth a value of 1s
Period = x * 1
For a value of zero, the LED will toggle
continuously based on On/Off period.

LED Brightness Level

0x01-0x10

LED Current = 0.012 / x

Table 1-23 provides the Battery Level functionality.
TABLE 1-23:

BATTERY LEVEL FUNCTIONALITY

Functionality

Parameter Range

Parameter Value

Battery Detection Interval

0x01-0xFF

Each bit represents a unit of 80 ms
Interval = x * 80 ms

Low Battery Level

0x00-0x12

Each bit represents a unit of 100 mV
Threshold = x * 100 mV

Normal Battery Level

0x01-0x12

Each bit represents a unit of 100 mV
Threshold = x * 100 mV

Low Battery Into
Shutdown Time

Only used when “Auto Operation is active” (see 1.1.2.1 “Auto
Operation”)

Table 1-24 provides the details of the pins used for LED Indication functionality.
TABLE 1-24:

DS50002542A-Page 48

PINS FOR LED INDICATION

Functionality

BM70 Pins

BM71 Pins

LED0

P02

P02

 2016 Microchip Technology Inc.

Overview
1.1.2.3.2

General Operation – Low Power Control

In both Auto Operation and Manual Operation, the BM70/71 module can be put into
modes where current consumption is reduced. There are two modes the host can make
use of in the BM70/71 module to reduce the overall power. However, they will affect the
BM70/71 module behavior, so understating what is affected is important for correct host
operation.
The “Reduced Current Consumption” low-power mode is a mode where the internal
MCU of the BM70/71 module goes into shutdown, but the physical layer (i.e., Radio) is
still functioning. This mode can be active in any state except the Shutdown state (see
Figure 1-2). This allows the device to advertise, scan, or maintain a connection with the
peer device, but with a reduced current draw. Since the internal BM70/71 MCU is
asleep, the host has to wake-up the device before sending any data over the UART. To
do this, a hardware pin can be used on the module to wake-up the BM70/71 module.
The hardware pin is the UART_RX_IND pin, and the hardware function is the UART
Receive Indication (refer to 1.1.2.3.5 “General Operation – UART Receive Indication”). The use of the “Reduced Current Consumption” low-power mode is tied directly
to use of the UART_RX_IND pin. To enable /disable this low-power mode, the host
must configure the BM70/71 module to enable/disable the UART_RX_IND pin functionality. If enabled, the host does not control when the BM70/71 module goes into this
low-power mode. The host can only control when to wake-up the BM70/71 module by
using the UART_RX_IND pin.
Note 1:

The list of test conditions and values for the current drawn are measured
numbers based on the BM70/71 module operating with “Reduced
Current Consumption” active.

2:

For information about the test conditions and values of the current drawn,
refer to the “BM70/71 Data Sheet” (DS60001372), which is available for
download from the Microchip website: www.microchip.com/BM70.

“Deep-sleep/Shutdown” low-power mode is a mode where the MCU and the physical
layer are turned inactive. This mode has the lowest current draw, but the BM70/71
module is not functional. This mode is only active in the Shutdown state (see
Figure 1-2). When the BM70/71 module comes out of this low-power mode, it is the
same as getting a POR or hardware reset (RST_N) event.
When the BM70/71 module enters this low-power mode, it is based on how the device
is configured to operate. When Auto Operation is active, the host enables this mode by
the use of two configuration parameters, Standby Timeout and/or Disconnect Standby
Timeout (refer to 1.1.2.1.10 “Auto Operation – Discoverability”). In Auto Operation,
the host can also enable the hardware function/pin, LINK_DROP, to force the BM70/71
module to enter “Deep-sleep/Shutdown” mode. When Manual Operation is active, the
host uses a command from the “Command Set” protocol to have the BM70/71 module
enter this low-power mode. The way the BM70/71 module exits the “Deep-sleep/Shutdown” mode is by using a hardware pin function, setup during configuration. The dedicated hardware pin function for this is the WAKEUP_PIN (refer to 1.1.2.3.3 “General
Operation – Wake-Up Indication”).
There is some redundancy (Auto Operation and Manual Operation) with the hardware
pin functions when exiting the “Deep-sleep/Shutdown” mode. This redundancy does
not cause a problem, but be aware of it. If a host has enabled the use of UART_RX_IND
(this enables the “Reduced Current Consumption” mode), the host can also use this
pin for getting the BM70/71 module out of “Deep-sleep/Shutdown” mode. Therefore,
the WAKEUP_PIN function is not absolutely necessary to use with
“Deep-sleep/Shutdown” mode, if the host has already enabled the “Reduced Current
Consumption” mode. This redundancy may provide an advantage in cases where the
host is pin count limited.

 2016 Microchip Technology Inc.

DS50002542A-Page 49

BM70/71 Bluetooth® Low Energy Module User’s Guide
When Manual Operation or Auto Operation is active, the host gets to control when this
low-power mode is entered and exited. However, to exit this low-power mode, the host
has to enable the WAKEUP_PIN or UART_RX_IND pin function in Configuration mode.
If the host does not configure one of these hardware pin functions, then a power cycle
or hardware reset (RST_N) will be used.
Table 1-25 provides the reference applicable sections for the hardware pins used with
the UART_RX_IND and WAKEUP_PIN functionality
.
TABLE 1-25:

BATTERY LEVEL FUNCTIONALITY

Low-Power Mode
Reduced Current
Consumption
Reduced Current
Consumption
Deep-sleep/Shutdown

Deep-sleep/Shutdown

DS50002542A-Page 50

Configured
Operation

Related Configuration
Parameters

Manual Operation UART_RX_IND

Auto Operation

UART_RX_IND

Manual Operation WAKEUP_PIN,
UART_RX_IND

Auto Operation

Standby_Timeout
Disconnect_Standy_Timeout
LINK_DROP
WAKEUP_PIN
UART_RX_IND

Related “Command
Set” Message

Section Description

N/A

1.1.2.3.5 “General
Operation – UART
Receive Indication”

N/A

1.1.2.3.5 “General
Operation – UART
Receive Indication”

Into_Shutdown_Mode(0x05)

1.1.2.3.3 “General
Operation – Wake-Up
Indication” and
1.1.2.3.5 “General
Operation – UART
Receive Indication”

N/A

1.1.2.1.10 “Auto Operation – Discoverability”, 1.1.2.1.6 “Auto
Operation – Link
Drop”,
1.1.2.3.3 “General
Operation – Wake-Up
Indication” and
1.1.2.3.5 “General
Operation – UART
Receive Indication”

 2016 Microchip Technology Inc.

Overview
1.1.2.3.3

General Operation – Wake-Up Indication

The BM70/71 module can enter a deep-sleep mode in the Shutdown state. If the
BM70/71 module enters this low-power mode of deep-sleep, the internal BM70/71
module internal logic is not functional and must be woken up by an external trigger. This
external trigger is a hardware pin which can be configured to be enabled or disabled.
If enabled, the host can drive this pin to a logic level of “0” to wake-up the BM70/71
module. If the host has disabled the wake-up function and the module enters the Shutdown state, the only way out of this state is with a power cycle or hardware reset. This
wake-up function works both in Manual Operation and Auto Operation. If Auto Operation is active, the wake-up trigger will force the module to transition to the Standby state.
If the Manual Operation is active, the wake-up trigger will force the BM70/71 module to
transition to “Idle mode”. Figure 1-23 illustrates the wake-up indication functionality.
FIGURE 1-23:

WAKE-UP INDICATION

Table 1-26 provides the details of the wake-up indication functionality.
TABLE 1-26:

WAKE-UP INDICATION FUNCTIONALITY

Functionality
Wake-up

Parameter Range
0x00-0x01

Parameter Value
0x00 – Disabled
0x01 – Enabled

Table 1-27 provides the details of the pin used for the Wake-up indication functionality.
TABLE 1-27:

PIN FOR WAKE-UP INDICATION

Functionality
WAKEUP_PIN

 2016 Microchip Technology Inc.

BM70 Pins

BM71 Pins

P23

Not Available on the BM71 module due to reduced module pin
count. See UART_RX_IND for
similar functionality

DS50002542A-Page 51

BM70/71 Bluetooth® Low Energy Module User’s Guide
1.1.2.3.4

General Operation - UART Transmit Indication

In low-power applications, the host wants to conserve energy by entering a low-power
mode and only exit when a BLE operation has occurred. The BM70/71 module can be
configured to drive a hardware pin when transmitting to the host over the UART. Using
this hardware function can provide a means for the host to be notified when a BLE operation has occurred. The host can use this signal as a way to exit a low-power state and
start processing. This signal is available when Manual Operation or Auto Operation is
active. As a way to synchronize communication after the signal is driven by the
BM70/71 module, the host can configure the BM70/71 module to wait for a predefined
time period (TWAIT_WAKEUP_HOST_TIME) before sending any UART traffic. This will give
the host a chance to wake-up and stabilize any hardware operations before processing
the UART data.
Figure 1-24 illustrates the UART Transmit indication functionality.
FIGURE 1-24:

UART TRANSMIT INDICATION

Table 1-28 provides the details of the UART Transmit Indication functionality.
TABLE 1-28:

UART TRANSMIT FUNCTIONALITY

Functionality
WAIT WAKEUP HOST
TIME

Parameter Range
0x00-0x0F

Parameter Value
Period = x * 0.000625
A value of “0” disables the
UART_TX_IND pin function

Table 1-29 provides the details of the UART Transmit Indication functionality.
TABLE 1-29:

PINS FOR UART TRANSMIT

Functionality
UART_TX_IND

DS50002542A-Page 52

BM70 Pins

BM71 Pins

P27

P27

 2016 Microchip Technology Inc.

Overview
1.1.2.3.5

General Operation – UART Receive Indication

The BM70/71 module can be configured to enter a “Reduced Current Consumption”
mode. In this mode, the MCU goes to sleep, but the physical layer (i.e., Radio) can still
be active. This means the BM70/71 module can still advertise or connect, but have a
reduced current drawn. Because the MCU portion of the module is not active, the host
cannot send data over the UART interface without notifying the BM70/71 module first.
The BM70/71 module provides a hardware pin to enable this mechanism, and the
“Reduced Current Consumption” mode is enabled or disabled based on whether this
pin is enabled or disabled.
The host drives this pin to a logic level of “0” to make the BM70/71 module active and
capable of receiving UART data. Doing this effectively terminates the “Reduced
Current Consumption” mode. The host needs to leave this pin at a logic level of “0” until
all communication has finished, including receiving any expected responses from the
BM70/71 module. If the host drives this pin to a logic level of “1” before the BM70/71
module has finished sending a response, the response will be postponed. This is
because the module will enter the “Reduced Current Consumption” mode and the
internal MCU will become inactive, effectively delaying the response until the BM70/71
module exits “Reduced Current Consumption” mode again. This can cause errant host
operation based on the logic designed.
The host must wait for a minimum time period of 3 ms after driving UART_RX_IND pin
to a logic level of “0”, before sending UART data. This ensures the internal MCU of the
BM70/71 module is active and ready to process data.
This “Reduced Current Consumption” mode and the associated hardware pin can be
used when Auto Operation or Manual Operation is active. The host enables this
low-power mode by enabling the UART_RX_IND pin functionality during configuration.
Figure 1-25 illustrates the UART Receive Indication functionality.
FIGURE 1-25:

 2016 Microchip Technology Inc.

UART INDICATION

DS50002542A-Page 53

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 1-30 provides the details of the UART Receive Indication functionality.
TABLE 1-30:

UART RECEIVE INDICATION FUNCTIONALITY

Functionality
UART_RX_IND

Parameter Range
0x00-0x01

Parameter Value
0x00 – Disabled
0x01 – Enabled

Table 1-31 provides the list of the pins available for the UART Receive Indication functionality.
TABLE 1-31:
Functionality
UART_RX_IND

DS50002542A-Page 54

PINS FOR UART RECEIVE INDICATION
BM70 PINS

BM71 PINS

P00 (if CTS is disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS is disabled)

P00 (if CTS is disabled)
P12
P13
P16
P17
P36 (if RTS is disabled)

 2016 Microchip Technology Inc.

Overview
1.1.2.3.6

General Operation - Security

The core specification provides several features to cover the encryption, data integrity
and privacy of the user’s data to ensure that communication over BLE is always secure
and protected. The BLE core specification defines rules and algorithms in the Security
Manager (SM) and GAP layers to provide secure communications. It is recommended
that the user have a good working knowledge of the BLE specification to gain a complete understanding of the way the BM70/71 module operates and provides security.
The GAP Layer defines modes and procedures which relate to the security of a connection. The BM70/71 module supports “LE Security Mode 1” with four security levels
as specified by the definitions in the GAP layer. In general, “LE Security mode 1” gains
security by means of encryption and this will only be done after the connection has
been established.
When two devices are connected but a secure link is required, the devices must first
pair. The pairing involves authenticating the identity of two devices, encrypting the link,
and then exchanging keys (for faster reconnection in the future, i.e., Bonding) used for
encryption.
Figure 1-26 illustrates the pairing process and the level of security established in this
process. This is determined by the pairing method used and is selected based on the
I/O capabilities of each device.
FIGURE 1-26:

MANUAL OPERATION - SECURITY

Therefore, the security level of the encryption is determined by the method of pairing
performed. To make use of the “LE Security Mode 1” support in the BM70/71 module,
the host MCU needs to configure the I/O capabilities of the accessory. This, together
with the capabilities of the peer device, will determine the pairing method and the level
of security applied to the connection.

 2016 Microchip Technology Inc.

DS50002542A-Page 55

TABLE 1-32:

REFERENCE FOR DETERMINING PAIRING METHOD
Initiator
I/O Capabilities

DisplayOnly

Display
Yes/No

Keyboard

Display
Only

Just Works

Just Works

Unauthenticated

Unauthenticated

Passkey Entry
Just Works
(responder displays, initiator inputs)
Unauthenticated

Just Works

Just Works
[For LE Legacy Pairing]

Display
Yes/No

Unauthenticated
Unauthenticated

No Input
No Output

Keyboard
Display
Passkey Entry
(responder displays, initiator inputs)

Authenticated

Authenticated

Just Works
Passkey Entry
(responder displays, initiator inputs)
Unauthenticated
Authenticated

Passkey Entry
(responder displays, initiator inputs)
[For LE Legacy Pairing]

Responder

Authenticated
Numeric Comparison
(For LE Secure Connections Pairing)
Keyboard
Only

No Input
No Output
 2016 Microchip Technology Inc.

Keyboard
Display

Numeric Comparison
(For LE Secure Connections Pairing)

Passkey Entry (initiator
displays, responder
inputs)

Passkey Entry (initiator
displays, responder
inputs)

Passkey Entry (initiator
displays, responder
inputs)

Authenticated

Authenticated

Authenticated

Just Works

Just Works

Just Works

Just Works

Just Works

Unauthenticated

Unauthenticated

Unauthenticated

Unauthenticated

Unauthenticated

Passkey Entry (initiator
displays, responder
inputs)

Passkey Entry
[For LE Legacy Pairing]
(initiator displays,
responder inputs)

Passkey Entry
Just Works
(responder displays, initiator inputs)
Unauthenticated

Authenticated

Just Works
Unauthenticated

Passkey Entry (initiator
displays, responder
inputs)
Authenticated

Passkey Entry
[For LE Legacy Pairing]
(initiator displays,
responder inputs)

Authenticated
Authenticated

Authenticated

Numeric Comparison
(For LE Secure Connections Pairing)

Numeric Comparison
(For LE Secure Connections Pairing)

Authenticated

Authenticated

BM70/71 Bluetooth® Low Energy Module User’s Guide

DS50002542A-page 56

Table 1-32 provides the reference for determining the pairing method based on the I/O capabilities of the two devices involved and the role each device
plays in the process.

Overview
The role of an each device is defined in the SM layer of BLE. The definitions of each
role are:
• Initiator – Always corresponds to the Link Layer master and the GAP central
• Responder – Always corresponds to the Link Layer slave and the GAP peripheral
As stated earlier, each pairing method gives the connection a certain level of security
and in “LE Security Mode 1”, which is supported in the BM70/71 module, there are four
levels of security. The security levels describe the type of security the current
connection has or will have, which are:
• LE Security Mode 1:
- No Security (no authentication and no encryption)
- Unauthenticated pairing with encryption
- Authenticated pairing with encryption
- Authenticated LE Secure Connections pairing with encryption
The term authenticated here means the pairing algorithm used (Passkey Entry, Number Comparison) gives enough security to protect against “Man in the Middle” attacks.
The term unauthenticated means the pairing algorithm (Just Works), does not provide
protection against “Man in the Middle” attacks, but pairing still occurs, keys are
exchanged, and the link can still be encrypted.
To apply a security level to a connection, the host first has to setup the I/O capabilities
for the BM70/71 module. In Manual Operation, this is done through the “Command Set”
protocol message, Write_Pairing_Mode_Setting(0x0B). In Auto Operation, the
host applies the values at the time of configuration. The host then puts the BM70/71
module in Run mode when the BM70/71 module makes a connection with a peer
device, and the security level needed for data access is established. If the current connection is at a lower security level than needed, the pairing process can be initiated.
The device with the role of initiator will start the pairing process (Pairing_Request);
however, the Responder can optionally make a request (Security_Request).
In Manual Operation, the host can send the “Command Set” message, Pairing_Request(0x42), to initiate the pairing/authentication procedure. In Auto Operation, the
host configures the BM70/71 module to perform a pairing request through the “Security
Setting” options. The authentication procedure (pairing) that needs to be performed is
generally based on the type of authentication needed to access a service. This is under
the control of the host in Manual Operation and in Auto Operation, and it will automatically be completed if the security level needs to be upgraded. Figure 1-27 illustrates
the flow of control between a BM70/71 module and a peer device.

 2016 Microchip Technology Inc.

DS50002542A-Page 57

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 1-27:

FLOW OF CONTROL BETWEEN BM70/71 AND PEER DEVICE

The type of interaction that occurs between the host and the BM70/71 module during
the pairing process is based on the type of pairing method selected. Figure 1-28 and
Figure 1-29 illustrate the commands sent by the host MCU to the BM70/71 module
based on the “Passkey” method with the BM70/71 module being a Initiator or
Responder.

DS50002542A-Page 58

 2016 Microchip Technology Inc.

Overview
FIGURE 1-28:

BM70/71 AS INITIATOR IN PASSKEY METHOD

FIGURE 1-29:

BM70/71 AS RESPONDER IN PASSKEY METHOD

 2016 Microchip Technology Inc.

DS50002542A-Page 59

TABLE 1-33:

CONFIGURATION PARAMETERS

Configuration Operation
Manual Operation /
Auto Operation

Functionality
Bluetooth 4.2 Features

Parameter Value
Data Length Extension =
0x00 – Disabled,
0x01 – Enabled
Pairing Method =
0x00 – Only legacy pairing enabled [Just Works, Passkey] (pairing
method used will be based on I/O capabilities of peer device and
BM70/71 module)
0x01 – Legacy and LE Secure Connections enabled [Just Works,
Passkey, Numeric Comparison] (pairing method used will be based
on I/O capabilities of peer device and BM70/71 module)
0x02 – Only LE Secure Connections pairing enabled [Numeric Comparison] (pairing success will be based on I/O capabilities and LE
Secure Connections being supported in peer device)

Auto Operation

BLE Security
Setting

BLE Security =
0x00 – Disabled (BM70/71 module informs peer device
“pairing not supported”, this results in an unauthenticated unencrypted level of security for current connection)
0x01 – Pairing Enabled (BM70/71 module will inform peer device,
BM70/71 module supports pairing)
0x02 – Pairing Enabled, Authentication Required (BM70/71 module
informs peer device pairing supported and needs to result in a
authenticated encrypted level of security for current connection)

 2016 Microchip Technology Inc.

Trust Device Connection =
0x00 – Pair, Do not Bond,
0x01 – Pair and Bond
I/O Capability =
0x00 – Display Only
0x01 – Display Yes/No
0x02 – Keyboard Only
0x03 – No I/O available
0x04 – Keyboard and Display

Command Set Messages
N/A, this is all based on I/O capabilities of
devices

BM70/71 Bluetooth® Low Energy Module User’s Guide

DS50002542A-page 60

Table 1-33 provides the relevant configuration parameters and “Command Set” messages for handling authentication and security in BLE.

 2016 Microchip Technology Inc.

TABLE 1-33:

CONFIGURATION PARAMETERS (CONTINUED)

Configuration Operation
Manual Operation

Functionality
BLE Security Setting

Parameter Value
Trust Device Connection =
0x00 – Pair, Do not Bond,
0x01 – Pair and Bond

Command Set Messages
For Manual Operation Only
Write_Paring_Mode_Setting(0x0B), controls the I/O capabilities
of device
For Manual Operation Only
Pairing_Request(0x42) control pairing procedure when BM70/71 module is
initiator
The use of the following “Command Set”
messages, is based on the role BM70/71
module is playing (initiator or responder)
BM70/71 module to host “Command Set”
messages:
Passkey_Entry_Req(0x60)
Pairing_Complete(0x61)
Passkey_Confirm_Req(0x62)
Host to BM70/71 module “Command Set”
messages:
Passkey_Entry_Res(0x40)
User_Confirm_Res(0x41)
Pairing_Request(0x42)

Overview

Page 61

BM70/71 Bluetooth® Low Energy Module User’s Guide
NOTES:

DS50002542A-Page 62

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Chapter 2. Operating Modes, Configuration and Control
This chapter describes the minimum hardware interface required for host control and
the protocols used to communicate with the BM70/71 module. There are additional
hardware pins on the module, which can be used by the end target application to
achieve greater functionality. The protocols described in this document provide information about the direct test, programming, and application commands used for the
BM70/71 module.
Note:

2.1

The remaining communication protocols used for configuring the BM70/71
module are still available to the user, but require additional guidance.
Contact a local Microchip representative if design requirements must use
those communication protocols.

HARDWARE INTERFACE
A minimum set of hardware connections is required to interface a host to the BM70/71
module. Figure 2-1 illustrates the minimum connections required by the relevant hardware pins on the module. Making these hardware connections between the host and
the BM70/71 module will allow a host to control the behavior of the module.
FIGURE 2-1:

 2016 Microchip Technology Inc.

BM70/71 MODULE BLOCK DIAGRAM FOR EXTERNAL
INTERFACE

DS50002542A-Page 63

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.2

BM70/71 MODE SELECTION
The BM70/71 module's operation or mode is determined by the level of hardware pin
P2_0. This pin is sampled when the RST_N pin goes active. The RST_N signal must
be active for the minimum time period, so the P2_0 pin logic level is latched into the
BM70/71 module. Once the BM70/71 module enters the applicable mode,
communication over the UART interface becomes active. The data or protocol used to
communicate between the host and the BM70/71 module is based on the mode the
module enters after a reset.
At a high level, the test, configuration, and programming modes are entered when the
P2_0 pin is latched by the BM70/71 module at logic level “0”. The application or run
mode, where general BLE operation is available, is entered when P2_0 pin is latched
by the BM70/71 module at logic level “1”. Table 2-1 provides the use of the P2_0 pin.
TABLE 2-1:

P2_0 PIN LOGIC LEVEL FUNCTIONALITY

PIN P2_0 - Logic Level

Mode

Protocols Enabled

0 – Low

Direct Test
Configuration
Programming

HCI command
Configuration Update
Memory Programming

1 – High

Application or run

Command Set

Table 2-1 represents the three protocols and three modes available when the pin P2_0
is at a logic level of “0”. The header value and the data payload of the protocol packet
indicates the type of mode/protocol the host put the BM70/71 module into. For more
information on protocol descriptions, refer to 2.3 “Command Set Protocol”,
2.4 “Configuration Protocol”, 2.4.1 “UART Interface Characteristics”, and
2.6 “Direct Test Protocol”.
Figure 2-2 illustrates the signal level and timing control of the P2_0 pin by a host during
a reset event.
FIGURE 2-2:

DS50002542A-Page 64

P2_0 PIN IN RESET EVENT

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
Figure 2-3 illustrates the signal level and timing control of the P2_0 pin during a POR
event.
FIGURE 2-3:

P2_0 PIN IN POR EVENT

Once a designer implements the necessary signals to allow communication with the
end target application's host, the applicable protocols (based on the mode of the
BM70/71 module) must be referenced in later sections to learn how to control the
behavior of the module.

 2016 Microchip Technology Inc.

DS50002542A-Page 65

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3

COMMAND SET PROTOCOL
When the BM70/71 module enters into Application or Run mode, and Auto Operation
or Manual Operation is active (refer to 1.1.2.1 “Auto Operation” and 1.1.2.2 “Manual
Operation”), the “Command Set” protocol is used by the host to control the behavior
of the BM70/71 module. This protocol loosely follows the Host Command Interface
(HCI) logic flow defined in the BLE specification. If a user is already familiar with the
HCI logic flow, understanding this protocol will be straightforward. This section
describes the commands a host uses to command BLE operations to occur within the
BM70/71 module.
For the purposes of evaluation, Microchip also provides two Graphical User Interface
(GUI) based PC programs which implement low-level details (commands and parse the
event responses) from the “Command Set” protocol. These PC tools can be used as
an aide to understand the information contained in the sub-sections below. The tools
are referred to as the Manual Pattern and Auto Pattern tools, and are part of the
“Software Tools” that are available for download for the BM70/71 module. The tools are
often referred to as “host MCU emulation” tools and are categorized as such in the
“Software Tools”.
Download the “Software Tools” which are available on the BM70 and BM71
product pages of the Microchip website: www.microchip.com/BM70 for the
BM70 EVB and www.microchip.com/BM71 for the BM71 EVB.

Note:

2.3.1

General Message Format

Table 2-2 provides the general message format of the “Command Set” protocol
between the host and BM70/71 module.
TABLE 2-2:

GENERAL MESSAGE FORMAT OF THE COMMAND SET
PROTOCOL
HEAD

Byte No
Size (Byte)
Value

MID

DATA

CRC

Start

Length

OP Code

Parameter

Checksum

0

1-2

3

4 - xx

Length + 3

1

2

1

0

1

0xAA

1

Command/
Event

Command/
Event parameter

Checksum

SYNC WORD

Checksum to be calculated
TARGET LENGTH

Checksum rule: Checksum value is the byte value, which yields a result of “0”, when
added to the summed values of the Length (H), Length (L), OP Code, and Parameter
bytes. Table 2-3 provides an example of the checksum value.
TABLE 2-3:

EXAMPLE OF THE CHECKSUM VALUE
Start

Byte No
Size (Byte)

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x01

0x00

0xFD

In cases where the checksum calculation fails, the BM70/71 module will send a message back to the host to indicate the checksum failure. For more information on command status, refer to 2.3.3 “Commands and Event Responses”.

DS50002542A-Page 66

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.2

UART Interface Characteristics

When operating in Application or Run mode, the UART can operate using the following
parameters:
•
•
•
•
•

Baud Rate: 2400-921600 bps (configurable)
Number of data bits: 8
No parity
1 stop bit
Flow control (configurable in some cases, disabled in all other configurations)

The baud rate is configurable and is set when the BM70/71 module is in configuration
mode. Once set, the BM70/71 module will use this baud rate for all “Command Set”
protocol communications until changed. UART flow control (RTS/CTS) is available as
a configuration parameter only when Auto Operation is selected. Since this protocol is
used when Manual Operation is active, the flow control is disabled. For more
information, refer to 1.1.2.1 “Auto Operation” and 1.1.2.2 “Manual Operation”.
Several other configurable hardware pins can take on different functionality, possibly
affecting the timing of communication over the UART. These hardware pins are
enabled or disabled based on the requirements of the end target application. For a
description of the associated functions in the BM70/71 module, which can affect communication over the UART interface, refer to Section 1.1.2.3 “General Operation”.
Table 2-4 provides a list of hardware pin functionality which can affect UART
communication.
TABLE 2-4:
Functionality

HARDWARE PIN FUNCTIONALITY FOR UART COMMUNICATION
BM70 PINS

BM71 PINS

UART_TX_IND

P27

P27

UART_RX_IND

P00 (if CTS disabled)
P07
P10
P11
P12
P13
P22
P24
P31
P32
P33
P34
P35
P36 (if RTS disabled)

P00 (if CTS disabled)
P12
P13
P16
P17
P36 (if RTS disabled)

P23

N/A

WAKEUP

 2016 Microchip Technology Inc.

DS50002542A-Page 67

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3

Commands and Event Responses

The command packets are sent by the host to the BM70/71 module over the UART.
These packets contain an opcode which determines the sent command, a parameter
length field, and parameters for the command. In general, there are three basic types
of commands a host can send to the BM70/71 module:
• Configure the BM70/71 module state
• Request a specific action
• Control a connection
The internal logic of the BM70/71 module can be considered a state machine, which
has a number of parameters and modes to be configured. Configuration commands
can set these parameters/modes while the BM70/71 module is in a specific state. Some
commands request a specific action to occur without necessarily altering the state of
the BM70/71 module or the state of the connection. When a connection has been created between two peer devices, commands can be sent to manage this connection.
Some messages require certain steps before executing successfully. When this type of
message is described, a diagram similar to a sequence diagram will be shown. The
diagram will help highlight previous messages which need to be executed so the
current message finishes successfully. The commands and events vary in length and
inspection of the length field will be performed to get the payload information out of the
message. Most commands have a “Command Complete Event” sent by the
BM70/71 module to the host when the command completes. Some commands are
executed in the background and do not return a “Command Complete Event” when
the command finishes. In those cases, the BM70/71 module sends a “Status Report
Event” back to the host when it has begun processing the command. When the
operation associated with the command has finished, the event which is associated
with the command will be sent to the host.
In general, all the messages from the host to the BM70/71 module will have some type
of response, but not all messages from the module to the host necessarily require
previous input (status message events). These types of messages can be viewed as
an internal BM70/71 module status change, synchronized to the occurrence of events
outside the scope of the host. The internal logic of the host will be capable of
processing these type of messages. The host will wait for the associated response(s)
before sending any new messages to the BM70/71 module.

DS50002542A-Page 68

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
Figure 2-4 illustrates the message sequence diagram at a high level.
FIGURE 2-4:

MESSAGE SEQUENCE DIAGRAM

When the host is waiting for a response, implement the timeout logic in case of errant
operation of the BM70/71 module. This timeout logic period can vary based on the
types of messages the host sends to the BM70/71 module. For commands which
include RF communication (for example, the GAP Create Connection command),
the time to execute the command will depend on the RF traffic and/or command parameters. Therefore, the response from the BM70/71 module back to the host will be
delayed, impacting any timeout period logic. Guidelines for a host implementing timeout logic to guard against errant BM70/71 module communication are:
• For commands without direct RF communication: 2 seconds timeout period
• For commands with direct RF communication included: a timeout period is NOT
suggested

 2016 Microchip Technology Inc.

DS50002542A-Page 69

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.1

READ LOCAL INFORMATION (OPCODE - 0X01)

This command is sent from the host to the BM70/71 module to retrieve:
• The internal firmware version of the module in Binary Coded Decimal (BCD)
format
• The Bluetooth address of the BM70/71 module
• The silicon chip Identification (only firmware version 106 and above).
In most cases this information is useful to the host for version control and to gain
manufacturing information. This command can also be used as a fast way of detecting
if the BM70/71 module is up and running.
2.3.3.1.1

Command Format, Host to BM70/71 Module

Table 2-5 provides the details of the command format from the host to the BM70/71
module.
TABLE 2-5:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.1.2

Length

OP Code

Parameter

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x01

value

Defaults

This does not apply to this command.
2.3.3.1.3

Example

Figure 2-5 illustrates an example of the Read Local Information(0x01)
command sent from the host to the BM70/71 module.
FIGURE 2-5:

DS50002542A-Page 70

SEQUENCE DIAGRAM OF READ LOCAL INFORMATION

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.1.4

Response Format, BM70/71 to Host

The BM70/71 module will respond to this command with a Command Complete
Event(0x80) response and will add additional data to the parameter field of the event
message. The length of this message changes based on the firmware version of the
device. BM70/71 modules with firmware version 106 or later will respond with the silicon identification value in the message. BM70/71 modules with firmware version 105
or earlier will be included in the silicon identification value. The parameter field and
variables are based on the firmware version, silicon chip identification, and the
programmed Bluetooth address.
Table 2-6 provides the details of the response format, from the BM70/71 module to the
host.
TABLE 2-6:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

n+4

0xAA

0x00

0x0D or
0x0E

0x01

see
Table 2-7

value

Table 2-7 provides the details of the parameter values and lengths.
TABLE 2-7:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

Command succeeded

0x01-0xFF

Command failed codes. For more details,
refer to Table 2-119

1 byte

Value of Parameter (5)
0x01

Opcode which was processed by BM70/71
module

1 byte

Firmware version encoded as BCD

4 bytes

Value of Parameter (6 to 9)
0xXXXX_XXXX

Value of Parameter (10 to 15)
0xXXXX_XXXX_XXXX

Bluetooth address

6 bytes

Value of Parameter (16)
0x00

BM70

0x01

BM71

0x02

IS1870

0x03

IS1871

2.3.3.1.5

Silicon Identification field only
applies with firmware version 106 or
above

Applicable Configuration

This command is available in both Manual Operation and Auto Operation configuration.
In Auto Operation configuration, there is a time period around when this command can
be sent by the host. If the time period has expired in Auto Operation configuration, this
command will be ignored.

 2016 Microchip Technology Inc.

DS50002542A-Page 71

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.2

RESET (OPCODE - 0X02)

This command performs a reset on the BM70/71 module. When this command is
issued, the behavior of the BM70/71 module is same as when the hardware RST_N pin
is used. Internally this command returns the BM70/71 module to “Idle mode” in the
Standby state, which is indicated in the response.
This command is typically used when the RST_N pin is not available to the host to
correct any errant operation or to synchronize the host with the BM70/71 module.
2.3.3.2.1

Command Format, Host to BM70/71 Module

Table 2-8 provides the details of the command format, from the host to the BM70/71
module.
TABLE 2-8:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.2.2

Length

OP Code

Parameter

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x02

value

Defaults

This does not apply to this command.
2.3.3.2.3

Example

Figure 2-6 illustrates an example of the reset command sent from the host to the
BM70/71 module.
FIGURE 2-6:

DS50002542A-Page 72

SEQUENCE DIAGRAM OF RESET

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.2.4

Response Format, BM70/71 Module to Host

The BM70/71 module will respond to this command with a Status Report Event
(0x81) response. The value in the status will indicate that the BM70/71 module has
returned to “Idle mode”. For more information on the response format, refer to
2.3.3.52 “Status Report Event (opcode - 0x81)”.
2.3.3.2.5

Applicable configuration

This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 73

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.3

READ BM70/71 STATUS (OPCODE - 0X03)

This command is used to read the internal status of the BM70/71 module. This command cannot be used in the Shutdown state because the BM70/71 module is inactive.
2.3.3.3.1

Command Format, Host to BM70/71 Module

Table 2-9 provides the details of the command format from the host to the BM70/71
module.
TABLE 2-9:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.3.2

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x03

value

Defaults

This does not apply to this command.
2.3.3.3.3

Example

Figure 2-7 illustrates an example of the Read BM70/71 Status(0x03) command
sent from the host to the BM70/71 module.
FIGURE 2-7:

2.3.3.3.4

SEQUENCE DIAGRAM OF READ BM70/71 STATUS

Response Format, BM70/71 Module to Host

The BM70/71 module will respond to this command with a Status Report Event
(0x81) response. The value in the status will indicate the mode (temporary sub-state)
of the BM70/71 module. The BM70/71 module has a total of nine modes. All modes do
not apply to all states within the BM70/71 module.

DS50002542A-Page 74

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
Table 2-10 provides the details of the response format from the BM70/71 module to the
host.
TABLE 2-10:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

2.3.3.3.5

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x81

see
Table 2-121

value

Applicable Configuration

This command is available in Manual Operation and Auto Operation only when the
“Configuration Window” is active (refer to 1.1.2.1.3 “Auto Operation – Configuration
Timeout”).

 2016 Microchip Technology Inc.

DS50002542A-Page 75

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.4

READ BM70/71 ADC VALUE (OPCODE - 0X04)

This command is used to read the voltage present on the applicable analog pin/channel. The pin has to be configured appropriately, and some of the channel numbers in
the command do not apply to the BM70/71 module because the pin is not available (see
1.1.2.2.2 “Manual Operation – Analog Pins”). All channel numbers are shown for the
purpose of developers using the IS1870/71 chip directly.
2.3.3.4.1

Command Format, Host to BM70/71 Module

Table 2-11 provides details of the command format from the host to the BM70/71
module.
TABLE 2-11:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x04

see
Table 2-12

value

Table 2-12 provides the parameter values and lengths.
TABLE 2-12:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4)

Parameter Description

Length

0x00

Channel 0

1 byte

0x01

Channel 1

0x02

Channel 2

0x03

Channel 3

0x04

Channel 4

0x05

Channel 5

0x06

Channel 6

0x07

Channel 7

0x08

Channel 8

2.3.3.4.2

0x09

Channel 9

0x0A

Channel 10

0x0B

Channel 11

0x0C

Channel 12

0x0D

Channel 13

0x0E

Channel 14

0x0F

Channel 15

0x10

Battery Voltage

0x11

Temperature Value

Defaults

This does not apply to this command.

DS50002542A-Page 76

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.4.3

Example

Figure 2-8 illustrates an example of reading the ADC value from the host to the
BM70/71 module.
FIGURE 2-8:

2.3.3.4.4

SEQUENCE DIAGRAM OF READ BM70/71 ADC VALUE

Response Format, BM70/71 Module to Host

The BM70/71 module will respond to this command with a Command Complete
Event(0x80) response. The values returned indicate if the command is successful or
not. If the command is successful, the values for the measured voltage and resolution
(step size) will follow. The step size is based on an internal formula that the host cannot
control (for more information, refer to 1.1.2.2.2 “Manual Operation – Analog Pins”).
Table 2-13 provides details of the response format from the BM70/71 module to the
host.
TABLE 2-13:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

 2016 Microchip Technology Inc.

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 7

5

0xAA

0x00

0x02

0x81

see
Table 2-14

value

DS50002542A-Page 77

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 2-14 provides parameter values and lengths.
TABLE 2-14:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

0x00 – command successful

0x01

0x01-0xFF, command failure (for table of
values, refer to Table 2-119)

1 byte

Value of Parameter (5)
0x00

Step size
0x00 – no step size, raw ADC Value
0x01 – 0.1V
0x02 – 0.05V
0x03 – 0.025V

1 byte

Digital value from Analog to Digital
conversion
Parameter 6 is Most Significant Byte (MSB)
Parameter 7 is Least Significant Byte (LSB)

2 bytes

Value of Parameter (6 to 7)
0xXXXX

2.3.3.4.5

Applicable Configuration

This command is only available in Manual Operation.

DS50002542A-Page 78

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.5

INTO SHUTDOWN MODE (OPCODE - 0X05)

This command is sent from the host to the BM70/71 module to put the BM70/71 module
into Shutdown mode. This will put the BM70/71 module into the “Deep-sleep/Shutdown” low-power mode, which is the lowest current consumption mode for the
BM70/71 module. The BM70/71 module must be in “Idle mode” for this command to be
successful.
2.3.3.5.1

Command Format, Host to BM70/71 Module

Table 2-15 provides details of the command format from the host to the BM70/71
module.
TABLE 2-15:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.5.2

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x05

value

Defaults

This does not apply to this command.
2.3.3.5.3

Example

Figure 2-9 illustrates an example of the Into Shutdown(0x05) command from the
host to the BM70/71 module.
FIGURE 2-9:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF INTO SHUTDOWN MODE

DS50002542A-Page 79

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.5.4

Response Format, BM70/71 Module to Host

The BM70/71 module will respond with two replies to the host when receiving the Shutdown command. The BM70/71 module will send a Command Complete Event
(0x80) response on successfully receiving the message and processing it. The
BM70/71 module will then send a Status Report Event(0x81) response when
the command has fully completed and the BM70/71 module is entering the Shutdown
state. If the Into Shutdown(0x05) command is incorrectly processed or cannot be
completed, the Status Report Event(0x81) response will never be sent and the
Command Complete Event(0x80) response will contain an error code for the host
to process.
Table 2-16 provides the details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-16:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 7

5

0xAA

0x00

0x02

0x80

see
Table 2-17

value

Table 2-17 provides the parameter values and lengths.
TABLE 2-17:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4)

Parameter Description

Length

0x00

0x00 – command successful

0x01

0x01 – 0xFF, command failure (for table of
values, refer to Table 2-119)

1 byte

Table 2-18 provides details of the Status Report Event(0x81) response format
from the BM70/71 module to the host.
TABLE 2-18:

STATUS REPORT RESPONSE FORMAT
Start

Byte No
Value

2.3.3.5.5

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 7

5

0xAA

0x00

0x02

0x81

see
Table 2-121

value

Applicable Configuration

This command is only available in Manual Operation.

DS50002542A-Page 80

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.6

READ DEVICE NAME (OPCODE - 0X07)

This command is used by the host to read the device name fragment in the BM70/71.
During configuration this value can be programmed by the host or by using the Write
Device Name(0x08) command.
2.3.3.6.1

Command Format, Host to BM70/71 Module

Table 2-19 provides details of the command format from the host to the BM70/71
module.
TABLE 2-19:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.6.2

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x07

value

Defaults

This does not apply to this command.
2.3.3.6.3

Example

Figure 2-10 illustrates an example of the Read Device Name(0x07) command sent
from the host to the BM70/71 module.
FIGURE 2-10:

2.3.3.6.4

SEQUENCE DIAGRAM OF READ DEVICE NAME

Response Format, BM70/71 Module to Host

The BM70/71 replies to the host with the Command Complete Event(0x80)
response, with the device name added to the parameter field of this event message.
The device name is limited to the length allowed in Configuration mode.

 2016 Microchip Technology Inc.

DS50002542A-Page 81

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 2-20 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-20:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0xXX

0x80

see
Table 2-21

value

Table 2-21 provides the parameter values and lengths.
TABLE 2-21:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – command successful

1 byte

0x01 – 0xFF, command failure (for table of
values, refer to Table 2-119)
Value of Parameter (5 to n)
0xXX

2.3.3.6.5

This will be the ASCII hex values of the
Length = (n+1) - 5
string programmed into the name fragment bytes
field

Applicable Configuration

This command is only available in Manual Operation.

DS50002542A-Page 82

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.7

WRITE DEVICE NAME (OPCODE - 0X08)

This command is used to assign a name to the BM70/71 module. This name will be
seen by remote devices performing a scan. This command can only be sent from “Idle
mode” while in the Standby state.
2.3.3.7.1

Command Format, Host to BM70/71 Module

Table 2-22 provides details of the command format from the host to the BM70/71
module.
TABLE 2-22:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0xXX

0x08

see
Table 2-23

value

Table 2-21 provides the parameter values and lengths.
TABLE 2-23:

PARAMETERS VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

0x00 – Reserved

1 byte

Value of Parameter (5 to n)
0xXX

2.3.3.7.2

Device Name in ASCII hex values

Length = (n+1) - 5 bytes

Defaults

This does not apply to this command.
2.3.3.7.3

Example

Figure 2-11 illustrates an example of the Write Device Name(0x08) command
sent from the host to the BM70/71 module.
FIGURE 2-11:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF WRITE DEVICE NAME

DS50002542A-Page 83

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.7.4

Response Format, BM70/71 Module to Host

The BM70/71 module returns the Command Complete Event(0x80) response and
does not append additional data to the event response. For more information, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)”.
2.3.3.7.5

Applicable Configuration

This command is only available in Manual Operation.

DS50002542A-Page 84

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.8

ERASE ALL PAIRED_BONDED DEVICE INFORMATION
(OPCODE - 0X09)

This command is used to erase all saved Long Term Keys (LTK) from the pairing process. This list of keys is a list of the remote devices the BM70/71 module has bonded
with. This command can only be sent while the BM70/71 module is in “Idle mode” or
the “Configuration Window” is active while in the Standby state.
2.3.3.8.1

Command Format, Host to BM70/71 Module

Table 2-24 provides details of the command format from the host to the BM70/71
module.
TABLE 2-24:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.8.2

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x09

value

Defaults

This does not apply to this command.
2.3.3.8.3

Example

Figure 2-12 illustrates an example of the Erase All Paired_Bonded Device
Information(0x09) command sent from the host to the BM70/71 module.
FIGURE 2-12:

2.3.3.8.4

SEQUENCE DIAGRAM OF ERASE PAIRED_BONDED
DEVICE

Response Format, BM70/71 Module to Host

The BM70/71 module returns the Command Complete Event(0x80) response and
does not append additional data to the event response. For more information, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)”.
2.3.3.8.5

Applicable Configuration

This command applies to Manual Operation and Auto Operation only when the
“Configuration Window” is active.

 2016 Microchip Technology Inc.

DS50002542A-Page 85

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.9

READ PAIRING MODE SETTING (OPCODE - 0X0A)

This command is used by the host to find out the settings of the current I/O capabilities
of the BM70/71 module. The value returned has an overall impact on the level of
security achieved when the pairing process is complete (refer to 1.1.2.3.6 “General
Operation - Security”).
2.3.3.9.1

Command Format, Host to BM70/71 Module

Table 2-25 provides details of the command format from the host to the BM70/71
module.
TABLE 2-25:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.9.2

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x0A

value

Defaults

This does not apply to this command.
2.3.3.9.3

Example

Figure 2-13 illustrates an example of the Read Pairing Mode Setting(0x0A)
command from the host to the BM70/71 module.
FIGURE 2-13:

DS50002542A-Page 86

SEQUENCE DIAGRAM OF READ PAIRING MODE

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.9.4

Response Format, BM70/71 Module to Host

The BM70/71 module returns the Command Complete Event(0x80) response with
the value of the current I/O capability added in the parameters field of this event
message.
Table 2-26 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-26:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 5

5

0xAA

0x00

0x02

0x80

see
Table 2-27

value

Table 2-27 provides the parameter values and lengths.
TABLE 2-27:

PARAMETERS VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – command successful

1 byte

0x01 – 0xFF, command failure (for table of
values, refer to Table 2-119)
Value of Parameter (5)
0x00

Display Only

0x01

Display Yes/No

0x02

Keyboard Only

0x03

No I/O Capabilities

0x04

Keyboard + Display

2.3.3.9.5

1 byte

Applicable configuration

This command applies to Manual Operation and Auto Operation only when the
“Configuration Window” is active.

 2016 Microchip Technology Inc.

DS50002542A-Page 87

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.10

WRITE PAIRING MODE SETTING (OPCODE - 0X0B)

This command is used to write the I/O capability of the host into the BM70/71 module.
The written value has an overall impact on the level of security the connection will have
after the pairing process is completed (refer to 1.1.2.3.6 “General Operation - Security”).
2.3.3.10.1 Command Format, Host to BM70/71 Module
Table 2-28 provides details of the command format from the host to the BM70/71
module.
TABLE 2-28:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 5

5

0xAA

0x00

0x01

0x0B

see
Table 2-29

value

Table 2-29 provides the parameter values and lengths.
TABLE 2-29:

PARAMETERS VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

0x00 – Reserved, write as 0x00

1 byte

0x00

Display Only

1 byte

0x01

Display Yes/No

Value of Parameter (5)

0x02

Keyboard Only

0x03

No I/O Capabilities

0x04

Keyboard + Display

2.3.3.10.2 Defaults
This does not apply to this command.

DS50002542A-Page 88

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.10.3 Example
Figure 2-14 illustrates an example of the Write Pairing Mode Setting
(0x0B)command from the host to the BM70/71 module.
FIGURE 2-14:

SEQUENCE DIAGRAM OF WRITE PAIRING MODE

2.3.3.10.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append additional data to the event response. For more information on the
format of the response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.10.5 Applicable Configuration
This command applies to Manual Operation when the BM70/71 module is in “Idle
mode” in the Standby state, and only to Auto Operation when the “Configuration
Window” is active.

 2016 Microchip Technology Inc.

DS50002542A-Page 89

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.11

READ ALL PAIRED_BONDED DEVICE INFORMATION
(OPCODE - 0X0C)

This command is used to read the bonded (part of the pairing process) device list of the
BM70/71 module. The BM70/71 module can only store up to the last eight devices that
have bonded. When bonding occurs, the LTK is exchanged and saved.
2.3.3.11.1

Command Format, Host to BM70/71 Module

Table 2-30 provides details of the command format from the host to the BM70/71
module.
TABLE 2-30:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

2.3.3.11.2

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x01

0x0C

value

Defaults

This does not apply to this command.
2.3.3.11.3

Example

Figure 2-15 illustrates an example of reading the paired and bonded device list from
the host to the BM70/71 module.
FIGURE 2-15:

DS50002542A-Page 90

SEQUENCE DIAGRAM OF READ PAIRED_BONDED DEVICE

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.11.4

Response Format, BM70/71 Module to Host

The BM70/71 module returns the Command Complete Event(0x80) response with
the pairing and bonding list added to the parameters field of the event message. The
total length is dependent on how many devices the BM70/71 module has stored.
Table 2-31 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-31:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x0C-0x43

0x80

see
Table 2-32

value

Table 2-32 provides the parameter values and lengths.
TABLE 2-32:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

0x00 – command successful

0x01

0x01 – 0xFF, command failure (for table of
values, refer to Table 2-119)

1 byte

Value of Parameter (5)
0x00

0xXX, number of paired and bonded
devices. Up to 8 (max)

1 byte

Value of Parameter (n to (n+7))
0xXX

Paired device index (0 to 7)

0xXX

Link Priority
0x01 - Most recent device

8 bytes

•
•
•
0x08 - Oldest device
0xXX XX XX XX XX XX

2.3.3.11.5

Paired and Bonded device Bluetooth
address

Applicable Configuration

This command can be used in Manual Operation when the BM70/71 module is in “Idle
mode” in the Standby state, and in Auto Operation only when the “Configuration
Window” is active.

 2016 Microchip Technology Inc.

DS50002542A-Page 91

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.12

DELETE PAIRED_BONDED DEVICE (OPCODE - 0X0D)

This command is sent by the host to delete a particular device from the bonded list. The
device is identified using an index value, similar to an index used to address a particular
array element in “C” code. For information on device index references, refer to the
2.3.3.11 “Read All Paired_Bonded Device Information (opcode - 0x0C)” command.
2.3.3.12.1 Command Format, Host to BM70/71 Module
Table 2-33 provides details of the command format from the host to the BM70/71
module.
TABLE 2-33:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x03

0x0D

see
Table 2-34

value

Table 2-34 provides the parameter values and lengths.
TABLE 2-34:

PARAMETER VALUES AND LENGTHS

Value of Parameter
0x00

Parameter Description
Device Index
The range of the device index is:
0x00

Length
1 byte

•
•
•
0x07

2.3.3.12.2 Defaults
This does not apply to this command.

DS50002542A-Page 92

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.12.3 Example
Figure 2-16 illustrates an example of deleting the paired and bonded device from the
host to the BM70/71 module.
FIGURE 2-16:

SEQUENCE DIAGRAM OF DELETE PAIRED_BONDED
DEVICE

2.3.3.12.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append additional data to the event message. For more information on the
format of the response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.12.5 Applicable Configuration
This command applies to Manual Operation when the BM70/71 module is in “Idle
mode” in the Standby state and to Auto Operation only when the “Configuration
Window” is active.

 2016 Microchip Technology Inc.

DS50002542A-Page 93

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.13

DIGITAL INPUT/OUTPUT CONTROL (OPCODE - 0X0E)

This command can be sent by the host to write and/or read any digital general I/O pin
which is configured correctly. There are four ports (Port 0 to Port 3) with eight general
I/O pins each available for control on the BM70/71 module. A port pin is referred to by
a combination of the port number and port pin (for example, Port 0 pin 1, is P0_1). Valid
pins numbers are zero through seven (0-7). Pin seven (P0_7) is represented in the
Most Significant bit (MSb) position of an eight-bit digital value; pin zero (P0_0) is
represented in the Least Significant bit (LSb) position of the same eight-bit value (Port
0 - pins [7 to 0]). To read and write a specific pin, no other hardware function can be
configured to use this pin. For more information on the general I/O features available
on the BM70/71 module, refer to 1.1.2.2.1 “Manual Operation – General I/O”.
2.3.3.13.1 Command Format, Host to BM70/71 Module
Table 2-35 provides details of the command format from the host to the BM70/71
module.
TABLE 2-35:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 15

5

0xAA

0x00

0x0D

0x0E

see
Table 2-36

value

Table 2-36 provides the parameter values and lengths.
TABLE 2-36:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4 to 7)
0bXXXX_XXXX

Port (0-3) – pin [7 to 0] input/output direction control
0 – sets pin to input
1 – sets pin to output

4 bytes

Port 0 value is parameter 4
Port 1 value is parameter 5
Port 2 value is parameter 6
Port 3 value is parameter 7
Value of Parameter (8 to 11)
0bXXXX_XXXX

Port (0-3) – pin [7 to 0] output value
0 – sets pin to a logic level of “0”
1 – sets pin to a logic level of “1”
Pins must be enabled as digital I/O to be
writable
Port 0 value is parameter 8
Port 1 value is parameter 9
Port 2 value is parameter 10
Port 3 value is parameter 11

4 bytes

Value of Parameter (12 to 15)
0bXXXX_XXXX

DS50002542A-Page 94

Port (0-3) – pin [7 to 0] digital I/O enable
0 – disables this pin as general digital I/O
1 – enables this pin as general digital I/O
Port 0 value is parameter 12
Port 1 value is parameter 13
Port 2 value is parameter 14
Port 3 value is parameter 15

8 bytes

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.13.2 Defaults
This does not apply to this command.
2.3.3.13.3 Example
Figure 2-17 illustrates an example of digital I/O control from the host to the BM70/71
module.
FIGURE 2-17:

SEQUENCE DIAGRAM OF DIGITAL I/O CONTROL

2.3.3.13.4 Response Format, BM70/71 Module to Host
The BM70/71 module responds to the host with the Command Complete
Event(0x80) response. The value of each port’s (Port 0 to Port 3) digital I/O enable
control register is returned. The BM70/71 module returns the digital value read on each
port pin, regardless of what the pin has been configured for. These values are added
to the parameters field of the event response.
Table 2-37 provides details of the Command Complete Event(0x80) response format from the BM70/71 module to the host.
TABLE 2-37:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

 2016 Microchip Technology Inc.

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 12

5

0xAA

0x00

0x0A

0x80

see
Table 2-38

value

DS50002542A-Page 95

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 2-38 provides the parameter values and lengths.
TABLE 2-38:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – command successful

1 byte

0x01 – 0xFF, command failure (see
Table 2-119)
Value of Parameter (5 to 8)
0bXXXX_XXXX

Port (0-3) – pin [7 to 0] digital I/O enable
control value read from register

4 bytes

0 – pin is disabled as general digital I/O
1 – pin is enabled as general digital I/O
Port 0 value is parameter 5
Port 1 value is parameter 6
Port 2 value is parameter 7
Port 3 value is parameter 8
Value of Parameter (9 to 12)
0xXX

Port (0-3) – pin [7 to 0] port value read from
register

4 bytes

0 – pin is a logic level of “0”
1 – pin is a logic level of “1”
Port 0 value is parameter 9
Port 1 value is parameter 10
Port 2 value is parameter 11
Port 3 value is parameter 12

2.3.3.13.5 Applicable configuration
This command is only available in Manual Operation.

DS50002542A-Page 96

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.14

PWM CONTROL (OPCODE - 0X0F)

This command is used by the host to control the PWM output function on the BM70/71
module. The pins selected for the available PWM channel must not be configured for
any other function. For an overview of PWM functionality, refer to 1.1.2.2.3 “Manual
Operation – Pulse Width Modulation (PWM) Output”.
2.3.3.14.1 Command Format, Host to BM70/71 Module
Table 2-39 provides the details of the command format from the host to the BM70/71
module.
TABLE 2-39:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 11

5

0xAA

0x00

0x09

0x0F

see
Table 2-40

value

Table 2-36 provides the parameter values and lengths.
TABLE 2-40:

PARAMETERS VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – Channel 1 with output to P21
0x01 – Channel 2
0x02 – Channel 3
0x03 – Channel 4
0x04 – Channel 1 with output to P36

1 byte

0x00 – PWM disable
0x01 – PWM enable

1 byte

0x00 – 32 kHz
0x01 – 1 MHz
0x02 – 16 MHz

1 byte

Timer Top Range value

2 bytes

Compare value

2 bytes

0x00 – Normal output
0x01 – Inverse output

1 byte

Value of Parameter (5)
0xXX
Value of Parameter (6)
0xXX

Value of Parameter (7 to 8)
0xXXXX
Value of Parameter (9 to 10)
0xXXXX
Value of Parameter (11)
0xXX

2.3.3.14.2 Defaults
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 97

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.14.3 Example
Figure 2-18 illustrates an example of PWM control from the host to the BM70/71
module.
FIGURE 2-18:

SEQUENCE DIAGRAM OF PWM CONTROL

2.3.3.14.4 Response Format, BM70/71 Module to Host
The BM70/71 returns the Command Complete Event(0x80) response and does not
append the additional data to the event response. For more information on the format
of the response, refer to 2.3.3.51 “Command Complete Event (opcode - 0x80)”.
2.3.3.14.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 98

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.15

READ RSSI VALUE (OPCODE - 0X10)

This command is used to read the RSSI value for a peer connection. This command
takes a value called a handle to identify the connection that must be measured. This
handle is sent to the host through an LE Connection Complete Event(0x71)
response. This command is only valid while the devices are connected.
2.3.3.15.1 Command Format, Host to BM70/71 Module
Table 2-41 provides details of the command format from the host to the BM70/71
module.
TABLE 2-41:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 15

5

0xAA

0x00

0x01

0x10

0xXX handle

value

2.3.3.15.2 Defaults
This does not apply to this command.
2.3.3.15.3 Example
Figure 2-19 illustrates an example of reading the RSSI value from the host to the
BM70/71 module.
FIGURE 2-19:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF RSSI VALUE

DS50002542A-Page 99

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.15.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
adds the measured RSSI value in the parameters field. For more information about the
base format and values, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
Table 2-42 provides details on the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-42:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 12

5

0xAA

0x00

0x03

0x80

see
Table 2-43

value

Table 2-43 provides the parameter values and lengths.
TABLE 2-43:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – command successful

1 byte

0x01 – 0xFF, command failure (see
Table 2-119)
Value of Parameter (5)
0xXX

RSSI value in dB

1 byte

2.3.3.15.5 Applicable configuration
This command is only available in Manual Operation.

DS50002542A-Page 100

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.16

WRITE ADVERTISING DATA (OPCODE - 0X11)

This command is used by the host to write data into the available payload of the advertising packet. The data written can be up to 31 bytes in length, and there is no limitation
to the type of data that can be written.
2.3.3.16.1 Command Format, Host to BM70/71 Module
Table 2-44 provides details of the command format from the host to the BM70/71
module.
TABLE 2-44:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x03 to
0x21

0x11

see
Table 2-45

value

Table 2-45 provides the parameter values and lengths.
TABLE 2-45:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – Reserved for future use

1 byte

0x80 – Beacon data will not be stored
Value of Parameter (5 to n)
0xXX

Host advertising data to be sent in payload
of advertising packet

Length = (n - 5)
byte(s), 31 bytes
(max)

2.3.3.16.2 Defaults
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 101

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.16.3 Example
Figure 2-20 illustrates an example of writing advertising data from the host to the
BM70/71 module.
FIGURE 2-20:

SEQUENCE DIAGRAM OF WRITE ADVERTISING DATA

2.3.3.16.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
format of response, refer to 2.3.3.51 “Command Complete Event (opcode - 0x80)”.
2.3.3.16.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 102

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.17

WRITE SCAN RESPONSE DATA (OPCODE - 0X12)

This command is used by the host to write data into the available payload of the scan
request packet. The data written can be up to 31 bytes in length and there is no limitation to the type of data which can be written. If it requests, the scan request packet is
only sent to the remote device.
2.3.3.17.1 Command Format, Host to BM70/71 Module
Table 2-46 provides details of the command format from the host to the BM70/71
module.
TABLE 2-46:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x03 to
0x21

0x12

see
Table 2-47

value

Table 2-47 provides the parameter values and lengths.
TABLE 2-47:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – Reserved for future use

1 byte

Scan response data to be sent

Length = (n - 5)
byte(s), 31 bytes
(max)

Value of Parameter (5 to n)
0xXX

2.3.3.17.2 Defaults
This does not apply to this command.
2.3.3.17.3 Example
Figure 2-21 illustrates an example of writing scan response data from the host to the
BM70/71 module.
FIGURE 2-21:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF WRITE SCAN RESPONSE DATA

DS50002542A-Page 103

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.17.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
format of the response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.17.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 104

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.18

SET ADVERTISING PARAMETERS (OPCODE - 0X13)

This command is used to setup the advertising parameters of the BM70/71 module.
This command can only be sent by the host while the BM70/71 module is in “Idle mode”
in the Standby state. For directed advertising, the Bluetooth address can be public or
random. For random, the BM70/71 module only supports a static random address for
directed advertising. The BM70/71 module cannot resolve a “Resolvable private
address” as described in the BLE specification due to a hardware limitation.
2.3.3.18.1 Command Format, Host to BM70/71 Module
Table 2-48 provides the details of the command format, from the host to the BM70/71
module.
TABLE 2-48:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x0C

0x13

see
Table 2-49

value

Table 2-49 provides the parameter values and lengths.
TABLE 2-49:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4 to 5)
0xXX

Advertising Interval for undirected
advertising.
Range – 0x0020 (20 ms) - 4000 (10.24 s)

2 bytes

Interval = value * 0.000625
Parameter 4 is MSB
Parameter 5 is LSB
Value of Parameter (6)
0x00

Connectable undirected advertising

0x01

Connectable directed advertising

0x02

Scannable undirected advertising

0x03

Non connectable undirected advertising.
Setting this value puts the BM70/71 module
into broadcast mode

0x04

Proprietary beacon setting

1 byte

Value of Parameter (7)
0x00

Public Device Address

0x01

Random Device Address

1 byte

Value of Parameter (8)
0xXX XX XX XX XX XX

Device address of the device to be direct
these advertising packets to

6 bytes

2.3.3.18.2 Default
The default value for the advertising interval is 0x0800 (1.28 seconds), unless set by
the host.

 2016 Microchip Technology Inc.

DS50002542A-Page 105

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.18.3 Example
Figure 2-22 illustrates an example of setting the advertising parameters from the host
to the BM70/71 module.
FIGURE 2-22:

SEQUENCE DIAGRAM OF SET ADVERTISING DATA

2.3.3.18.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
format of response, refer to 2.3.3.51 “Command Complete Event (opcode - 0x80)”.
2.3.3.18.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 106

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.19

SET SCAN PARAMETERS (OPCODE - 0X15)

This command is used by the host to set up the scan parameters of the BM70/71 module. This command is only valid when the BM70/71 module is in “Idle mode” in the
Standby state. To enable scanning, the host uses the Set Scan Enable(0x16)
command.
2.3.3.19.1 Command Format, Host to BM70/71 Module
Table 2-50 provides details of the command format from the host to the BM70/71
module.
TABLE 2-50:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x06

0x15

see
Table 2-51

value

Table 2-51 provides the parameter values and lengths.
TABLE 2-51:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

This is the scan interval. This represents
how often the BM70/71 module will perform
the scan
Range – 0x0004 (2.5 ms) - 4000 (10.24s)

2 bytes

Value of Parameter (4 to 5)
0xXX

Interval = value * 0.000625
Parameter 4 is MSB
Parameter 5 is LSB
Value of Parameter (5 to 6)
0xXX

This is the duration of time; the device will
be scanning for, when the scanning interval
(scan window) occurs. This value must be
less than or equal to the scan interval time
period.
Range – 0x0004 (2.5 ms) - 4000 (10.24s)

2 bytes

Interval = value * 0.000625
Parameter 4 is MSB
Parameter 5 is LSB
Value of Parameter (7)
0x00

Passive scanning. No scan request packets
can be sent

0x01

Active Scanning. Scan Request packets
may be sent

1 byte

2.3.3.19.2 Defaults
The default value for the scanning interval is 0x0010 (10 ms), unless set by the host.
The default value for the scan window is 0x0010 (10 ms). The default value for the scan
type is Passive Scanning(0x01).

 2016 Microchip Technology Inc.

DS50002542A-Page 107

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.19.3 Example
Figure 2-23 illustrates an example of setting scan parameters from the host to the
BM70/71 module.
FIGURE 2-23:

SEQUENCE DIAGRAM OF SET SCAN PARAMETERS

2.3.3.19.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the format of response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.19.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 108

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.20

SET SCAN ENABLE (OPCODE - 0X16)

This command is used to enable or disable the scanning process on the BM70/71
module. When performing this, it will cause the BM70/71 module to start or terminate
the discovery procedure as defined by the BLE specification.
2.3.3.20.1 Command Format, Host to BM70/71 Module
Table 2-52 provides details of the command format from the host to the BM70/71
module.
TABLE 2-52:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x03

0x16

see
Table 2-53

value

Table 2-53 provides the parameter values and lengths.
TABLE 2-53:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

Scanning is disabled

0x01

Scanning is enabled

1 byte

Value of Parameter (5)
0x00

Do not filter advertisement packets. Every
received advertisement packet will be sent
to the host

0x01

Filtering out duplicate advertisement
packets from the same Bluetooth address

1 byte

2.3.3.20.2 Defaults
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 109

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.20.3 Example
Figure 2-24 illustrates an example of the Set Scan Enable(0x16) command from
the host to the BM70/71 module.
FIGURE 2-24:

SEQUENCE DIAGRAM OF SET SCAN ENABLE

2.3.3.20.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) and the Status Report Event(0x81) response. The BM70/71 module returns the Command
Complete Event(0x80) response when it has processed the command from the
host. The BM70/71 module sends the Status Report Event(0x81) when it has
finished executing this event. The value returned in the Status Report Event
(0x81) message depends on how the command was processed from the host. This
command does not append additional data to the Command Complete Event
(0x80) response. For more information on the format of event responses and possible
values, refer to 2.3.3.51 “Command Complete Event (opcode - 0x80)” and
2.3.3.52 “Status Report Event (opcode - 0x81)”.
2.3.3.20.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 110

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.21

LE CREATE CONNECTION (OPCODE - 0X17)

This command is used by the host to have the BM70/71 module initiate a connection
with a remote device detected during the discovery procedure. For the Bluetooth
address parameter in this command, the address of the peer device can be public or
random. For random, the BM70/71 module only supports a static random address for
creating a connection. The BM70/71 module cannot resolve a “Resolvable private
address” as described in the BLE specification due to a hardware limitation.
2.3.3.21.1 Command Format, Host to BM70/71 Module
Table 2-54 provides details of the command format from the host to the BM70/71
module.
TABLE 2-54:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x09

0x17

see
Table 2-55

value

Table 2-55 provides the parameter values and lengths.
TABLE 2-55:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

Reserved, write as 0x00

1 byte

0x00

Public Device Address

1 byte

0x01

Random Device Address

Value of Parameter (5)

Value of Parameter (6 to 11)
0xXX XX XX XX XX XX

Public Device Address

1 byte

2.3.3.21.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 111

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.21.3 Example
Figure 2-25 illustrates an example of the LE Create Connection(0x17) command
from the host to the BM70/71 module.
FIGURE 2-25:

SEQUENCE DIAGRAM OF LE CREATE CONNECTION

2.3.3.21.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns an LE Connection Complete Event(0x71)
response to the host when a connection with a peer device was attempted. This
command indicates if the execution was successful or not. If successful, the
parameters associated with the connected peer device are returned as well. For more
information about the format of event responses and parameters, refer to 2.3.3.48 “LE
Connection Complete Event (opcode - 0x71)”.
2.3.3.21.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 112

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.22

LE CREATE CONNECTION CANCEL (OPCODE - 0X18)

This command is used to cancel the LE Create Connection(0x17) command.
This command can only be issued by the host after the LE Create Connection
(0x17) command has been issued.
2.3.3.22.1 Command Format, Host to BM70/71 Module
Table 2-56 provides details of the command format from the host to the BM70/71
module.
TABLE 2-56:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

5

0xAA

0x00

0x09

0x17

value

2.3.3.22.2 Default
This does not apply to this command.
2.3.3.22.3 Example
Figure 2-26 illustrates an example of the LE Cancel Connection(0x18) command
from the host to the BM70/71 module.
FIGURE 2-26:

SEQUENCE DIAGRAM OF LE CANCEL CONNECTION

2.3.3.22.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the format of the response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.22.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 113

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.23

CONNECTION PARAMETER UPDATE REQUEST
(OPCODE - 0X19)

This command is sent by the host to the BM70/71 module to change the connection
parameters of the active link. This command is only valid while the Bluetooth link is
successfully established between the BM70/71 module and the peer device.
2.3.3.23.1 Command Format, Host to BM70/71 Module
Table 2-57 provides details of the command format from the host to the BM70/71
module.
TABLE 2-57:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 10

5

0xAA

0x00

0x08

0x19

see
Table 2-58

value

Table 2-58 provides the parameter values and lengths.
TABLE 2-58:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle

1 byte

Connection Interval is the amount of time
between two connection events

2 bytes

Value of Parameter (5 to 6)
0xXXXX

Range – 0x0006 (7.5 ms) - 0x0C80 (4s)
Interval = value * 1.25 ms
Parameter 5 is MSB
Parameter 6 is LSB
Value of Parameter (7 to 8)
0xXXXX

Slave Latency is the number of connection
events a slave can miss before the
connection is considered lost

2 bytes

Range: 0x0000 (0 connection events) 0x01F4 (500 connection events)
Parameter 7 is MSB
Parameter 8 is MSB
Value of Parameter (9 to 10)
0xXXXX

Supervision timeout is the maximum
amount of time allowed between two
packets being received. If this timeout is
exceeded and two or more packets have
not been received, the connection is
considered lost.

2 bytes

Range - 0x0006 (7.5 ms) - 0x0C80 (4s)
Interval = value * 1.25 ms
Parameter 5 is MSB
Parameter 6 is LSB

DS50002542A-Page 114

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.23.2 Default
This does not apply to this command.
2.3.3.23.3 Example
Figure 2-27 illustrates an example of the connection parameter update request from
the host to the BM70/71 module.
FIGURE 2-27:

SEQUENCE DIAGRAM OF CONNECTION PARAMETER
UPDATE REQUEST

2.3.3.23.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response. If
the update was successful, the BM70/71 module will also return the Connection
Parameter Update Event(0x73) response. For more information on the format of
the response, refer to 2.3.3.50 “Connection Parameter Update Event (opcode 0x73)” and 2.3.3.51 “Command Complete Event (opcode - 0x80)”.
2.3.3.23.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 115

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.24

DISCONNECT (OPCODE - 0X1B)

This command is used to terminate a connection after the link has been established
between the BM70/71 module and a peer device.
2.3.3.24.1 Command Format, Host to BM70/71 Module
Table 2-59 provides details of the command format from the host to the BM70/71
module.
TABLE 2-59:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x01

0x1B

0x00

value

2.3.3.24.2 Default
This does not apply to this command.
2.3.3.24.3 Example
Figure 2-28 illustrates an example of the disconnect event from the host to the
BM70/71 module.
FIGURE 2-28:

SEQUENCE DIAGRAM OF DISCONNECT EVENT

2.3.3.24.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Disconnect Complete(0x72) event and the
Status Report Event(0x81) response. The Disconnect Complete(0x72)
event response returns when it has processed the command from the host. The
BM70/71 module sends the Status Report Event(0x81) when it has finished executing this event. The value returned in the Status Report Event(0x81) message
depends on the command processed from the host. For more information on the format
of the event responses and possible values, refer to 2.3.3.49 “Disconnect Complete
Event (opcode - 0x72)” and 2.3.3.52 “Status Report Event (opcode - 0x81)”.
2.3.3.24.5 Applicable Configuration
This command is only available in Manual Operation.
DS50002542A-Page 116

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.25

SET ADVERTISING ENABLE_DISABLE (OPCODE - 0X1C)

This command is sent by the host to start or stop the BM70/71 module from sending
advertising packets. To enable the BM70/71 module to send advertising packets, the
module must be in “Idle mode” of the Standby state. The command Set Advertising Parameter(0x13) will determine the type of advertising packets sent by the
BM70/71 module.
2.3.3.25.1 Command Format, Host to BM70/71 Module
Table 2-60 provides details of the command format from the host to the BM70/71
module.
TABLE 2-60:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 10

5

0xAA

0x00

0x02

0x1C

see
Table 2-61

value

Table 2-61 provides the parameter values and lengths.
TABLE 2-61:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4)

Parameter Description

Length

0x00

Stop sending advertising packets (BM70/71
module leaves Standby mode, enters Idle
mode in the Standby state)

1 byte

0x01

Start sending advertising packets (BM70/71
module leaves Idle mode, enters Standby
mode in the Standby state)

0x02

Start sending advertising packets directed
(BM70/71 module leaves Idle mode, enters
Standby mode in the Standby state). The
BM70/71 module will accept connection
requests for a previously paired/bonded
device.

2.3.3.25.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 117

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.25.3 Example
Figure 2-29 and Figure 2-30 illustrate examples of setting advertising packets from the
host to the BM70/71 module in Idle mode and Standby mode.

DS50002542A-Page 118

FIGURE 2-29:

SEQUENCE DIAGRAM OF SET ADVERTISING PACKETS IDLE MODE

FIGURE 2-30:

SEQUENCE DIAGRAM OF SET ADVERTISING PACKETS STANDBY MODE

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.25.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) and the Status Report Event(0x81) response. The BM70/71 module returns the Command
Complete Event(0x80) response when it has processed the command from the
host. The BM70/71 module sends the Status Report Event(0x81) when it has
finished executing this event. The value returned in the Status Report
Event(0x81) message depends on how the command was processed from the host.
This command does not append additional data to the Command Complete
Event(0x80) response. For more information on the format of the response, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)” and 2.3.3.52 “Status Report
Event (opcode - 0x81)”.
2.3.3.25.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 119

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.26

READ REMOTE DEVICE NAME (OPCODE - 0X1F)

This command is used to read the remote device name of the peer. This command is
only valid while the connection with the peer device is active. A host can use the Read
Status Report(0x03) to discover the state of the BM70/71 module to confirm if the
connection is active.
2.3.3.26.1 Command Format, Host to BM70/71 Module
Table 2-62 provides details of the command format from the host to the BM70/71
module.
TABLE 2-62:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x1F

see
Table 2-63

value

Table 2-63 provides the parameter values and lengths.
TABLE 2-63:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4)
0xXX

Parameter Description

Length

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response

1 byte

2.3.3.26.2 Default
This does not apply to this command.
2.3.3.26.3 Example
Figure 2-31 illustrates an example of the Read Remote Device Name(0x1F)
command from the host to the BM70/71 module.
FIGURE 2-31:

DS50002542A-Page 120

SEQUENCE DIAGRAM OF READ REMOTE DEVICE NAME

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.26.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
adds the received device name from the peer device in the parameters field. For more
information on the base format and values, refer to 2.3.3.51 “Command Complete
Event (opcode - 0x80)”.
Table 2-64 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-64:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 12

5

0xAA

0x00

0x02 to
0xNN

0x80

see
Table 2-65

value

Table 2-65 provides the parameter values and lengths.
TABLE 2-65:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4 to n)
0x00

Parameter Description
Remote Device Name

Length
1 byte

2.3.3.26.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 121

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.27

GATT CLIENT - DISCOVER ALL PRIMARY SERVICES
(OPCODE - 0X30)

This command is used by the host to have the BM70/71 module (client) discover all
primary services on a peer device (server).
2.3.3.27.1 Command Format, Host to BM70/71 Module
Table 2-66 provides details of the command format from the host to the BM70/71
module.
TABLE 2-66:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x30

see
Table 2-67

value

Table 2-67 provides the parameter values and lengths.
TABLE 2-67:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4)
0xXX

Parameter Description

Length

Connection Handle of current connection.
This value was returned by the BM70/71
module in a LE Connect Complete
Event(0x71) response

1 byte

2.3.3.27.2 Default
This does not apply to this command.
2.3.3.27.3 Example
Figure 2-32 illustrates an example of the Discover All Primary Services
command from the host to the BM70/71 module.
FIGURE 2-32:

DS50002542A-Page 122

SEQUENCE DIAGRAM OF GATT CLIENT - DISCOVER ALL
PRIMARY SERVICES

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.27.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) and the Discover All Primary Services Response Event Response(0x90). The
BM70/71 module returns the Command Complete Event(0x80) response when it
has processed the command from the host. The BM70/71 module sends the Discover All Primary Services Response Event Response(0x90) when it
has received the service list from the peer device. This command does not append
additional data to the Command Complete Event(0x80) response. For more information on the format of event responses and possible values, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)” and 2.3.3.54 “Discover All
Primary Services Event (opcode - 0x90)”.
2.3.3.27.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 123

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.28

GATT CLIENT - DISCOVER SPECIFIC PRIMARY
SERVICE CHARACTERISTIC (OPCODE - 0X31)

This command is used to find all characteristic declarations, characteristic descriptor
attribute handles, and attribute types within a service definition on a peer device
(server) when only the UUID service value is known.
2.3.3.28.1 Command Format, Host to BM70/71 Module
Table 2-68 provides details of the command format from the host to the BM70/71
module.
TABLE 2-68:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x04 to
0x12

0x31

see
Table 2-69

value

Table 2-69 provides the parameter values and lengths.
TABLE 2-69:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response

1 byte

Value of Parameter (5 - 6) or (5 -22)
0xXX

16-bit Bluetooth UUID or 128-bit UUID

1 byte

2.3.3.28.2 Default
This does not apply to this command.

DS50002542A-Page 124

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.28.3 Example
Figure 2-32 illustrates an example of the discover specific primary service command
from the host to BM70/71 module.
FIGURE 2-33:

SEQUENCE DIAGRAM OF GATT CLIENT - DISCOVER
SPECIFIC PRIMARY SERVICES

2.3.3.28.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) and the Discover Specific Primary Services Characteristic Response Event
(0x91). The BM70/71 module returns the Command Complete Event(0x80)
response when it has processed the command from the host. The BM70/71 module
sends the Discover Specific Primary Services Characteristic
Response Event(0x91 when it has received the information from the peer device.
This command does not append additional data to the Command Complete Event
(0x80) response. For more information on the format of event responses and possible
values, refer to 2.3.3.51 “Command Complete Event (opcode - 0x80)” and
2.3.3.55 “Discover Specific Primary Service Characteristic Declaration Event
(opcode - 0x91)”.
2.3.3.28.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 125

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.29

READ CHARACTERISTIC VALUE (OPCODE - 0X32)

This command is used by the host to have the BM70/71 module read the
“Characteristic value” attribute from a peer device (server).
2.3.3.29.1 Command Format, Host to BM70/71 Module
Table 2-70 provides details of the command format from the host to the BM70/71
module.
TABLE 2-70:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 6

5

0xAA

0x00

0x05

0x32

see
Table 2-71

value

Table 2-71 provides the parameter values and lengths.
TABLE 2-71:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response

1 byte

Handle “Characteristic value” attribute

2 bytes

Value of Parameter (5 to 6)
0xXXXX

2.3.3.29.2 Default
This does not apply to this command.
2.3.3.29.3 Example
Figure 2-34 illustrates an example of the read characteristic value command from the
host to the BM70/71 module.

DS50002542A-Page 126

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
FIGURE 2-34:

SEQUENCE DIAGRAM OF READ CHARACTERISTIC VALUE

2.3.3.29.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
adds the value from the “Characteristic value” attribute in the parameters field. For
more information on the base format and values, refer to 2.3.3.51 “Command Complete Event (opcode - 0x80)”.
Table 2-72 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-72:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 12

5

0xAA

0x00

0x03 to
0x18

0x80

see
Table 2-73

value

Table 2-73 provides the parameter values and lengths.
TABLE 2-73:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x01 - 0xFF, command failure (for table
values, refer to Table 2-119)

1 byte

Value of the “Characteristic value” attribute from the peer device (server), up to
20 bytes max

1 to 20 bytes

Value of Parameter (5 to 24)
0xXX

2.3.3.29.5 Applicable Configuration
This command is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 127

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.30

GATT CLIENT - READ USING CHARACTERISTIC UUID
(OPCODE - 0X33)

This command is used by the host to have the BM70/71 module (client) read the
“Characteristic value” attribute from a peer device (server) when only the characteristic
UUID is known.
2.3.3.30.1 Command Format, Host to BM70/71 Module
Table 2-74 provides details of the command format from the host to the BM70/71
module.
TABLE 2-74:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x04 to
0x14

0x33

see
Table 2-75

value

Table 2-75 provides the parameter values and lengths.
TABLE 2-75:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in a LE Connect Complete
Event(0x71) response

1 byte

Value of Parameter (5 to 6) or (5 to 20)
0xXX

Characteristic UUID (16-bit or 128-bit)

2 or 16 bytes

2.3.3.30.2 Default
This does not apply to this command.

DS50002542A-Page 128

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.30.3 Example
Figure 2-35 illustrates an example of the read using characteristic UUID command
from the host to BM70/71 module.
FIGURE 2-35:

SEQUENCE DIAGRAM OF READ USING CHARACTERISTIC
UUID

2.3.3.30.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response, and
adds the handle and the value from the “Characteristic value” attribute in the parameters field. For more information on the base format and values, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)”.
Table 2-76 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-76:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

 2016 Microchip Technology Inc.

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 12

5

0xAA

0x00

0x05 to
0x18

0x80

see
Table 2-77

value

DS50002542A-Page 129

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 2-77 provides the parameter values and lengths.
TABLE 2-77:

PARAMETER VALUES AND LENGTH

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

0x00 – command successful

1 byte

0x01 – 0xFF, command failure (for table
values, refer to Table 2-119)
Value of Parameter (5 to 6)
0xXXXX

Value of “Characteristic value” attribute
handle

2 bytes

Value of Parameter (7 to 26)
0xXX

Value of the “Characteristic value” attribute from the peer device (server), up to
20 bytes max

1 to 20 bytes

2.3.3.30.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 130

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.31

GATT CLIENT - WRITE CHARACTERISTIC VALUE
(OPCODE - 0X34)

This command is used by a host to have the BM70/71 module (client) write a value to
the “Characteristic value” attribute of a peer device (server).
2.3.3.31.1 Command Format, Host to BM70/71 Module
Table 2-78 provides details of the command format from the host to the BM70/71
module.
TABLE 2-78:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x06 to
0x19

0x34

see
Table 2-79

value

Table 2-79 provides the parameter values and lengths.
TABLE 2-79:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in a LE Connect Complete
Event(0x71) response

1 byte

0x00

Write without Response. The client issues a
“Write Command” and does need an
acknowledgment the write was successful.

1 byte

0x01

Write “Characteristic value”. The client
issues a “Write request” to the server. The
server will respond with a “Write Response”
to indicate if the write operation was
successful on the “Characteristic value”.

Value of Parameter (5)

Value of Parameter (6 to 7)
0x00

Handle “Characteristic value”

2 bytes

Value of Parameter (8 to 27)
0xXX

“Characteristic value”

1 to 20 bytes (max)

2.3.3.31.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 131

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.31.3 Example
Figure 2-36 illustrates an example of the write characteristic value from the host to the
BM70/71 module.
FIGURE 2-36:

SEQUENCE DIAGRAM OF WRITE CHARACTERISTIC VALUE

2.3.3.31.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the base format and values, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.31.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 132

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.32

GATT CLIENT - ENABLE TRANSPARENT UART SERVICE
(OPCODE - 0X35)

This command is used by a host to have the BM70/71 module (client) write a value to
the “Characteristic value” attribute of a peer device (server).
2.3.3.32.1 Command Format, Host to BM70/71 Module
Table 2-80 provides details of the command format from the host to the BM70/71
module.
TABLE 2-80:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 6

5

0xAA

0x00

0x04

0x35

see
Table 2-81

value

Table 2-81 provides the parameter values and lengths.
TABLE 2-81:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response.

1 byte

0x00

Disable transparent service on peer device
(server)

1 byte

0x01

Enable transparent service on peer device
(server)

Value of Parameter (5)

Value of Parameter (6 to 7)
0x00

Client sends transparent data using a
“Write Request”. A “Write Response” will be
issued by the server to let the client know if
the write operation was successful.

0x01

Client sends the transparent data using a
“Write Command”. The client will not get a
“Write Response” from the server.

1 byte

2.3.3.32.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 133

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.32.3 Example
Figure 2-37 illustrates an example of the enable “Transparent UART” service command
from the host to the BM70/71 module.
FIGURE 2-37:

SEQUENCE DIAGRAM OF ENABLE TRANSPARENT UART
SERVICE

2.3.3.32.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the base format and values, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.32.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 134

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.33

GATT SERVER - SEND CHARACTERISTIC VALUE
(OPCODE - 0X38)

This command is used by the host to have the BM70/71 module (server) send a
“Characteristic value” to a peer device (client).
2.3.3.33.1 Command Format, Host to BM70/71 Module
Table 2-82 provides details of the command format from the host to the BM70/71
module.
TABLE 2-82:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 6

5

0xAA

0x00

0x05 to
0x18

0x38

see
Table 2-83

value

Table 2-83 provides the parameter values and lengths.
TABLE 2-83:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response

1 byte

Handle “Characteristic value” attribute

2 bytes

Value of Parameter (5 to 6)
0xXXXX
Value of Parameter (7 to 26)
0xXX

Value

1 to 20 bytes (max)

2.3.3.33.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 135

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.33.3 Example
Figure 2-38 illustrates an example of the send characteristic value command from the
host to the BM70/71 module.
FIGURE 2-38:

SEQUENCE DIAGRAM OF SEND CHARACTERISTIC VALUE

2.3.3.33.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the base format and values, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.33.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 136

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.34

GATT SERVER - UPDATE CHARACTERISTIC VALUE
(OPCODE - 0X39)

This command is used by the host to update the value of an existing “Characteristic
value” attribute in the service table of the BM70/71 module.
2.3.3.34.1 Command Format, Host to BM70/71 Module
Table 2-84 provides details of the command format from the host to the BM70/71
module.
TABLE 2-84:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x03 to
0x16

0x39

see
Table 2-85

value

Table 2-85 provides the parameter values and lengths.
TABLE 2-85:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response

1 byte

Value of Parameter (5 to 24)
0xXX

Value

1 to 20 bytes (max)

2.3.3.34.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 137

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.34.3 Example
Figure 2-39 illustrates an example of updating the characteristic value from the host to
the BM70/71 module.
FIGURE 2-39:

SEQUENCE DIAGRAM OF UPDATE CHARACTERISTIC
VALUE

2.3.3.34.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the base format and values, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.34.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 138

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.35

GATT SERVER - READ LOCAL CHARACTERISTIC VALUE
(OPCODE - 0X3A)

This command is used by the host to have the BM70/71 module read and return the
value from the “Characteristic value” attribute.
2.3.3.35.1 Command Format, Host to BM70/71 Module
Table 2-86 provides details of the command format from the host to the BM70/71
module.
TABLE 2-86:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 5

5

0xAA

0x00

0x03

0x3A

see
Table 2-87

value

Table 2-87 provides the parameter values and lengths.
TABLE 2-87:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4 to 5)
0xXXXX

Parameter Description
Handle “Characteristic value” attribute
(Formatted as big endian)

Length
2 bytes

2.3.3.35.2 Default
This does not apply to this command.
2.3.3.35.3 Example
Figure 2-40 illustrates an example of the read local characteristic command from the
host to the BM70/71 module.
FIGURE 2-40:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF READ LOCAL CHARACTERISTIC
VALUE

DS50002542A-Page 139

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.35.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
adds the value from the requested “Characteristic value” attribute in the parameters
field. For more information on the base format and values, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)”.
Table 2-88 provides details of the Command Complete Event(0x80) response
format from the BM70/71 module to the host.
TABLE 2-88:

RESPONSE FORMAT, BM70/71 MODULE TO HOST
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 12

5

0xAA

0x00

0x03 to
0xNN

0x80

see
Table 2-89

value

Table 2-89 provides the parameter values and lengths.
TABLE 2-89:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x01 - 0xFF

Command failure (for table values, refer
to Table 2-119)

1 byte

Value of “Characteristic value” attribute
handle (formatted as big endian)

Length = (n - 5)
bytes

Value of Parameter (5 to n)
0xXX

2.3.3.35.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 140

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.36

GATT SERVER - READ ALL LOCAL PRIMARY SERVICES
(OPCODE - 0X3B)

This command is used by the host to read all primary services from the service table of
the BM70/71 module.
2.3.3.36.1 Command Format, Host to BM70/71 Module
Table 2-90 provides details of the command format from the host to the BM70/71
module.
TABLE 2-90:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

4

0xAA

0x00

0x01

0x3B

value

2.3.3.36.2 Default
This does not apply to this command.
2.3.3.36.3 Example
Figure 2-41 illustrates an example of the read all local primary services command from
the host to the BM70/71 module.
FIGURE 2-41:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF READ ALL LOCAL PRIMARY
SERVICES

DS50002542A-Page 141

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.36.4 Response Format, BM70/71 Module to Host
The BM70/71 module sends the information of the primary services from the service
table to the host through a Discover All Primary Services Event Response
(0x90). This event response can be repeated several times by the BM70/71 module,
based on the number of services in the service table. The host must be capable of
handling all Discover All Primary Services Event Response(0x90) sent
by the BM70/71 module. When the BM70/71 module has finished sending the primary
service list, a Command Complete Event(0x80) response will be sent to the host.
For more information on the format of the event responses, refer to
2.3.3.51 “Command Complete Event (opcode - 0x80)” and 2.3.3.54 “Discover All
Primary Services Event (opcode - 0x90)”.
2.3.3.36.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 142

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.37

GATT SERVER - READ SPECIFIC LOCAL PRIMARY
SERVICE (OPCODE - 0X3C)

This command is used by the host to read the attributes of a specific primary service
from the service table of the BM70/71 module.
2.3.3.37.1 Command Format, Host to BM70/71 Module
Table 2-91 provides details of the command format from the host to the BM70/71
module.
TABLE 2-91:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x02 to
0x11

0x3C

see
Table 2-92

value

Table 2-92 provides the parameter values and lengths.
TABLE 2-92:

PARAMETER VALUES AND LENGTHS

Value of Parameter (4) or
(4 to 19)
0xXX

Parameter Description
16-bit UUID or 128-bit UUID
(Formatted as big endian)

Length
2 or 16 bytes

2.3.3.37.2 Default
This does not apply to this command.
2.3.3.37.3 Example
Figure 2-40 illustrates an example of the read specific local primary service command
from the host to the BM70/71 module.
FIGURE 2-42:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF READ SPECIFIC LOCAL PRIMARY
SERVICE

DS50002542A-Page 143

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.37.4 Response Format, BM70/71 Module to Host
The BM70/71 module sends the host the characteristic definition(s) which make the
specified primary service through the Discover Specific Primary Service
Characteristic Declaration Event(0x91) and Discover All Characteristic Descriptors Event Response(0x92). This information is returned in
the event response(s), and the event response(s) which are sent are based upon the
attribute types within the characteristic definition(s) of a given service. For example, a
characteristic definition is not required to include a “Characteristic descriptor declaration” attribute type. Therefore, the BM70/71 module will return only the Discover
Specific Primary Service Characteristic Declaration Event(0x91)
to the host.
The host must be capable of handling the various event responses sent by the
BM70/71 module. When the BM70/71 module has finished sending the characteristic
definition(s) of a specific primary service, a Command Complete Event(0x80)
response will be sent to the host. For more information on the format of event
responses, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”,2.3.3.55 “Discover Specific Primary Service Characteristic Declaration
Event (opcode - 0x91)” and 2.3.3.56 “Discover All Characteristic Descriptors
Event (opcode - 0x92)”.
2.3.3.37.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 144

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.38

GATT SERVER - SEND WRITE RESPONSE (OPCODE 0X3D)

The host is informed by the BM70/71 module when a client issues a write request to
the value of a specific “Characteristic value” attribute. This command allows the host to
reply with a write response and accept or reject the write request. This command is
used by the host for the BM70/71 module to inform the peer device (client) whether the
write request was successful or not.
2.3.3.38.1 Command Format, Host to BM70/71 Module
Table 2-93 provides details of the command format from the host to the BM70/71
module.
TABLE 2-93:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 8

5

0xAA

0x00

0x06

0x3D

see
Table 2-94

value

Table 2-94 provides the parameter values and lengths.
TABLE 2-94:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response.

1 byte

Write request opcode. This is a fixed value
and must be set to 0x12 for this command
to succeed.

1 byte

Handle the “Characteristic value” attribute
which was requested to write

2 bytes

0x00

No error. BM70/71 module will send the
write response to peer device (client).

1 byte

0x01

Invalid Handle

Value of Parameter (5)
0x12

Value of Parameter (6 to 7)
0xXXXX
Value of Parameter (8)

0x02

Read not permitted

0x03

Write not permitted

0x04

Invalid PDU

0x05

Insufficient Authentication

0x06

Request not supported

0x07

Invalid Offset

0x08

Insufficient Authorization

0x09

Prepare queue full

0x0A

Attribute not found

0x0B

Attribute not long

0x0C

Insufficient encryption Key size

0x0D

Invalid Attribute value length

0x0E

Unlikely error

 2016 Microchip Technology Inc.

DS50002542A-Page 145

BM70/71 Bluetooth® Low Energy Module User’s Guide
TABLE 2-94:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

0x0F

Insufficient encryption

0x10

Unsupported Group type

Length
1 byte

0x11

Insufficient Resources

0x12 to 0x7F

Reserved

0x80 to 0x9F

Application defined errors

0xA0 to 0xDF

Reserved

0xE0 to 0xFF

Common profile and Service error codes

2.3.3.38.2 Default
This does not apply to this command.
2.3.3.38.3 Example
Figure 2-43 illustrates an example of the send write response command from the host
to the BM70/71 module.
FIGURE 2-43:

SEQUENCE DIAGRAM OF SEND WRITE RESPONSE

2.3.3.38.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the base format and values, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.38.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 146

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.39

TRANSPARENT UART SERVICE - SEND DATA (OPCODE 0X3F)

This command is used by the host to have the BM70/71 module send data to the peer
device using the proprietary “Transparent UART” service.
2.3.3.39.1 Command Format, Host to BM70/71 Module
Table 2-95 provides details of the command format from the host to the BM70/71
module.
TABLE 2-95:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0x03 to
0xNN

0x3F

see
Table 2-96

value

Table 2-96 provides the parameter values and lengths.
TABLE 2-96:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
(0x71) event response

1 byte

Value of Parameter (5 to n)
0xXX

Data to transmit

1 to 640 bytes
(max)

2.3.3.39.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 147

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.39.3 Example
Figure 2-44 illustrates an example of the “Transparent UART” service command from
the host to the BM70/71 module.
FIGURE 2-44:

SEQUENCE DIAGRAM OF SEND WRITE RESPONSE

2.3.3.39.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append the additional data to the event response. For more information on
the format of the response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.39.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 148

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.40

PAIRING - PASSKEY ENTRY RESPONSE (OPCODE 0X40)

This command is used by the host to inform the BM70/71 module of the Passkey values
being entered. For more information on the overview of Security and the Passkey
method, refer to 1.1.2.3.6 “General Operation - Security”.
2.3.3.40.1 Command Format, Host to BM70/71 Module
Table 2-97 provides details of the command format from the host to the BM70/71
module.
TABLE 2-97:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 6

5

0xAA

0x00

0x03

0x40

see
Table 2-98

value

Table 2-98 provides the parameter values and lengths.
TABLE 2-98:

PARAMETER VALUES AND LENGTHS

Value of Parameter

Parameter Description

Length

Connection handle of current
connection.This value was returned by the
BM70/71 module in an LE Connect
Complete Event(0x71) response.

1 byte

0x01

Passkey digit entered

1 byte

0x02

Passkey digit erased

0x03

Passkey cleared

0x04

Passkey entry completed

Value of Parameter (4)
0xXX

Value of Parameter (5)

Value of Parameter (6)
0x01

Digit value represented in ASCII. Ignored if
parameter (5) is not set to 0x01.

1 byte

2.3.3.40.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 149

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.40.3 Example
Figure 2-45 illustrates an example of the passkey entry response from the host to the
BM70/71 module.
FIGURE 2-45:

SEQUENCE DIAGRAM OF PAIRING - PASSKEY ENTRY
RESPONSE

2.3.3.40.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
does not append additional data to the event response. For more information on the
format of the response, refer to 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.40.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 150

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.41

PAIRING - USER CONFIRM PASSKEY RESPONSE
(OPCODE - 0X41)

This command is used by the host to confirm the received Passkey value is correct or
not. The host receives the Passkey from the BM70/71 module through the Pairing Passkey Confirm Request Event(0x62). The host then uses this command to
accept or reject the received Passkey.
2.3.3.41.1 Command Format, Host to BM70/71 Module
Table 2-99 provides details of the command format from the host to the BM70/71
module.
TABLE 2-99:

COMMAND FORMAT, HOST TO BM70/71 MODULE
Start

Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 6

5

0xAA

0x00

0x03

0x41

see
Table 2-100

value

Table 2-100 provides the parameter values and lengths.
TABLE 2-100: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response.

1 byte

0x00

Passkey accepted (YES)

1 byte

0x01

Passkey rejected (NO)

Value of Parameter (5)

2.3.3.41.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 151

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.41.3 Example
Figure 2-46 illustrates an example of the user confirm passkey response from the host
to the BM70/71 module.
FIGURE 2-46:

SEQUENCE DIAGRAM OF PAIRING - PASSKEY RESPONSE

2.3.3.41.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Pairing Complete Event(0x61) and the Status Report Event(0x81) response. The BM70/71 module returns the Pairing
Complete Event(0x61) response when it has finished the pairing/bonding procedure with the peer device. The BM70/71 module sends the Status Report Event
(0x81) when the pairing procedure result has caused an internal status change. The
value returned in the Status Report Event(0x81) message depends on how the
command from the pairing/bonding procedure was processed. For more information
about the format of event responses and possible values, refer to 2.3.3.45 “Pairing Pair Complete Event (opcode - 0x61)” and 2.3.3.52 “Status Report Event (opcode
- 0x81)”.
2.3.3.41.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 152

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.42

PAIRING - PAIR REQUEST (OPCODE - 0X42)

This command is used to initiate the pairing/bonding procedure. This command can
only be sent after an active connection has been established with a peer device. This
command can be issued by the host at anytime when a higher level of security is
needed for an active connection.
2.3.3.42.1 Command Format, Host to BM70/71 Module
Table 2-101 provides details of the command format from the host to the BM70/71
module.
TABLE 2-101: COMMAND FORMAT, HOST TO BM70/71 MODULE
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x42

see
Table 2-102

value

Table 2-102 provides the parameter values and lengths.
TABLE 2-102: PARAMETER VALUES AND LENGTHS
Value of Parameter (4)
0xXX

Parameter Description
Connection Handle of current connection.
This value was returned by the BM70/71
module in an LE Connect Complete
Event(0x71) response

Length
1 byte

2.3.3.42.2 Default
This does not apply to this command.

 2016 Microchip Technology Inc.

DS50002542A-Page 153

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.42.3 Example
Figure 2-47 illustrates an example of the pairing request from the host to the BM70/71
module.
FIGURE 2-47:

SEQUENCE DIAGRAM OF PAIRING REQUEST

2.3.3.42.4 Response format, BM70/71 Module to Host
The BM70/71 module returns the Command Complete Event(0x80) response and
the Pairing Complete Event(0x61) response. The BM70/71 module returns the
Pairing Complete Event(0x61) response when it has finished the pairing/bonding procedure with the peer device. The BM70/71 module sends the Command Complete Event(0x80) response when the BM70/71 module has processed the
Pairing Request(0x42) command. For more information about the format of the
event responses and possible values, refer to 2.3.3.45 “Pairing - Pair Complete
Event (opcode - 0x61)” and 2.3.3.51 “Command Complete Event (opcode 0x80)”.
2.3.3.42.5 Applicable Configuration
This command is only available in Manual Operation.

DS50002542A-Page 154

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.43

LEAVE CONFIGURE MODE (OPCODE - 0X52)

This command is used by the host to command the BM70/71 module to exit from the
“Configuration Window” and start Auto Operation. For information on the description of
the “Configuration Window”, refer to 1.1.2.1.3 “Auto Operation – Configuration Timeout”.
2.3.3.43.1 Command Format, Host to BM70/71 Module
Table 2-103 provides details of the command format from the host to the BM70/71
module.
TABLE 2-103: COMMAND FORMAT, HOST TO BM70/71 MODULE
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x52

see
Table 2-104

value

Table 2-104 provides the parameter values and lengths.
TABLE 2-104: PARAMETER VALUES AND LENGTHS
Value of Parameter (4)

Parameter Description

0x00

Leave Configure Mode

0x01

Leave Configure Mode and disable mode
forever

Length
1 byte

2.3.3.43.2 Default
This does not apply to this command.
2.3.3.43.3 Example
Figure 2-48 illustrates an example of the leave configure mode command from the host
to the BM70/71 module.
FIGURE 2-48:

 2016 Microchip Technology Inc.

SEQUENCE DIAGRAM OF LEAVE CONFIGURE MODE

DS50002542A-Page 155

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.43.4 Response Format, BM70/71 Module to Host
The BM70/71 module returns the Configure Mode Status Event(0x8F)
response. For more information about the format of the response, refer to
2.3.3.53 “Configure Mode Status Event (opcode - 0x8F)”.
2.3.3.43.5 Applicable Configuration
This command is only available in Auto Operation.

DS50002542A-Page 156

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.44

PAIRING - PASSKEY ENTRY REQUEST EVENT (OPCODE
- 0X60)

This event is sent by the BM70/71 module to inform the host that a remote peer device
has requested pairing/bonding to take place using the Passkey entry method. The host
must reply with the Passkey Entry Response(0x40) command.
2.3.3.44.1 Event Format, BM70/71 Module to Host
Table 2-105 provides details of the event format from the BM70/71 module to the host.
TABLE 2-105: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H)

Length (L)

OP Code

Checksum

0

1

2

3

4

0xAA

0x00

0x01

0x60

value

2.3.3.44.2 Default
This does not apply to this event.
2.3.3.44.3 Example
Figure 2-49 illustrates an example of the passkey entry request from the BM70/71
module to the host.
FIGURE 2-49:

SEQUENCE DIAGRAM OF PAIRING - PASSKEY ENTRY
REQUEST

2.3.3.44.4 Applicable Configuration
This event is available in both Auto Operation and Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 157

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.45

PAIRING - PAIR COMPLETE EVENT (OPCODE - 0X61)

This event is sent by the BM70/71 module to inform the host when the pairing/bonding
procedure is complete and the result from this procedure.
2.3.3.45.1 Event Format, BM70/71 Module to Host
Table 2-106 provides details of the event format from the BM70/71 module to the host.
TABLE 2-106: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 5

5

0xAA

0x00

0x03

0x61

see
Table 2-107

value

Table 2-107 provides the parameter values and lengths.
TABLE 2-107: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Connection handle of current
connection.This value was returned by the
BM70/71 module in an LE Connect
Complete Event(0x71) response.

1 byte

0x00

Passkey completed

1 byte

0x01

Passkey failed

0x02

Passkey failed, timeout occurred

Value of Parameter (4)
0xXX

Value of Parameter (5)

2.3.3.45.2 Default
This does not apply to this event.

DS50002542A-Page 158

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.45.3 Example
Figure 2-50 illustrates an example of the pairing complete event from the BM70/71
module to the host.
FIGURE 2-50:

SEQUENCE DIAGRAM OF PAIRING - PAIR COMPLETE
EVENT

2.3.3.45.4 Applicable Configuration
This event is available in both Auto Operation and Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 159

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.46

PAIRING - PASSKEY CONFIRM REQUEST EVENT
(OPCODE - 0X62)

This event is sent by the BM70/71 module to inform the host that the passkey received
needs to confirmed. The host will reply with the Passkey Confirm Response
(0x41) command.
2.3.3.46.1 Event Format, BM70/71 Module to Host
Table 2-108 provides details of the event format from the BM70/71 module to the host.
TABLE 2-108: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 10

5

0xAA

0x00

0x08

0x62

see
Table 2-109

value

Table 2-109 provides the parameter values and lengths.
TABLE 2-109: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Connection handle of current
connection.This value was returned by the
BM70/71 module in an LE Connect
Complete Event(0x71) response.

1 byte

Each digit of the six-digit passkey is
represented in ASCII

6 bytes

Value of Parameter (4)
0xXX

Value of Parameter (5 to 10)
0xXX

2.3.3.46.2 Default
This does not apply to this event.

DS50002542A-Page 160

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.46.3 Example
Figure 2-51 illustrates an example of the passkey confirm request event from the
BM70/71 module to the host.
FIGURE 2-51:

SEQUENCE DIAGRAM OF PAIRING - PASSKEY CONFIRM
REQUEST EVENT

2.3.3.46.4 Applicable Configuration
This event is available in both Manual Operation and Auto Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 161

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.47

ADVERTISING REPORT EVENT (OPCODE - 0X70)

This event is sent by the BM70/71 module to inform the host that another BLE device
has responded to an active/passive scan.
2.3.3.47.1 Event Format, BM70/71 Module to Host
Table 2-110 provides details of the event format from the BM70/71 module to the host.
TABLE 2-110: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to x

5

0xAA

0x00

0x0B 0xNN

0x70

see
Table 2-111

value

Table 2-111 provides the parameter values and lengths.
TABLE 2-111: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

A connectable undirected advertising
packet was received

0x01

A connectable directed advertising packet
was received

0x02

A scanable undirected advertising packet
was received

0x03

A non-connectable undirected advertising
packet was received

0x04

A scan response packet was received

1 byte

Value of Parameter (5)
0x00

Public Device Address

0x01

Random device address

1 byte

Value of Parameter (6 to 11)
0xXXXX_XXXX_XXXX

Bluetooth address of device

6 bytes

Length of data payload from packet

1 byte

Data received in advertising or scan
response packet

1 to 31 bytes (max)

Value of Parameter (12)
0xXX
Value of Parameter (13 to n)
0xXX
Value of Parameter (x)
0xXX

Signed digital value representing RSSI
(dBm) from remote device sending packet.
A value of -127 or 0x81 means RSSI was
not available.

1 byte

2.3.3.47.2 Default
This does not apply to this event.

DS50002542A-Page 162

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.47.3 Example
Figure 2-52 illustrates an example of the advertising report event from the BM70/71
module to the host.
FIGURE 2-52:

SEQUENCE DIAGRAM OF ADVERTISING REPORT EVENT

2.3.3.47.4 Applicable Configuration
This event is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 163

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.48

LE CONNECTION COMPLETE EVENT (OPCODE - 0X71)

The BM70/71 module returns an LE Connection Complete Event(0x71)
response to the host when a connection with a peer device is attempted. This
command indicates if the execution was successful or not. If successful, the
parameters associated with the connected peer device are returned.
2.3.3.48.1 Event Format, BM70/71 Module to Host
Table 2-112 provides details of the event format from the BM70/71 module to the host.
TABLE 2-112: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 19

5

0xAA

0x00

0x10

0x71

see
Table 2-113

value

Table 2-113 provides the parameter values and lengths.
TABLE 2-113: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

Connection successfully completed

0x01 to 0xFF

Connection failed to complete

1 byte

Value of Parameter (5)
0xXX

Connection Handle to be used to identify a connection between the BM70/71 module and the
peer device

1 byte

0x00

BM70/71 module is the master in the connection

1 byte

0X01

BM70/71 module is the slave in the connection

Value of Parameter (6)

Value of Parameter (7)
0x00

Peer device is using a public device address

0x01

Peer is using a Random device address

0x02

Peer is a previously bonded device

1 byte

Value of Parameter (8 to 13)
0xXX XX XX XX XX XX

Peer device Bluetooth address

6 bytes

Value of Parameter (14 to 15)
0xXXXX

Connection Interval used for this connection
Range: 0x0006 (7.5 ms) - 0x0C80 (4s)
Interval = value * 1.25 ms
Parameter 14 is MSB
Parameter 15 is LSB

2 bytes

Value of Parameter (16 to 17)
0xXXXX

Slave Latency is the number of connection
events a slave can miss before the connection is
considered lost

2 bytes

Range: 0x0000 (0 connection events) - 0x01F4
(500 connection events)
Parameter 16 is MSB
Parameter 17 is LSB
Value of Parameter (18 to 19)

DS50002542A-Page 164

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
TABLE 2-113: PARAMETER VALUES AND LENGTHS
Value of Parameter
0xXXXX

Parameter Description

Length

Supervision timeout is the maximum amount of
time allowed between two packets being
received. If this timeout is exceeded and two or
more packets have not been received, the
connection is considered lost.

2 bytes

Range: 0x0006 (7.5 ms) - 0x0C80 (4s)
Timeout = value * 1.25 ms
Parameter 18 is MSB
Parameter 19 is LSB

2.3.3.48.2 Default
This does not apply for this event.

 2016 Microchip Technology Inc.

DS50002542A-Page 165

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.48.3 Example
Figure 2-53 and Figure 2-54 illustrate examples of the LE Connection complete event
from the BM70/71 module to the host.
FIGURE 2-53:

SEQUENCE DIAGRAM OF CONNECTION COMPLETE
EVENT-EXAMPLE 1

FIGURE 2-54:

SEQUENCE DIAGRAM OF CONNECTION COMPLETE
EVENT-EXAMPLE 2

2.3.3.48.4 Applicable Configuration
This event is only available in Manual Operation.

DS50002542A-Page 166

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.49

DISCONNECT COMPLETE EVENT (OPCODE - 0X72)

This event response is sent by the BM70/71 module to the host after a connection is
terminated. The role (central/master or peripheral/slave) of the BM70/71 module is not
considered when the connection is dropped. This event response indicates the reason
the connection was terminated in the parameters field.
2.3.3.49.1 Event Format, BM70/71 Module to Host
Table 2-114 provides details of the event format from the BM70/71 module to the host.
TABLE 2-114: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 5

5

0xAA

0x00

0x03

0x72

see
Table 2-115

value

Table 2-115 provides the parameter values and lengths.
TABLE 2-115: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection handle
This is the value sent to the host by the
BM70/71 module in an LE Connection
Complete Event(0x71)

1 byte

0x08

Connection Timeout

1 byte

0X09

Connection limit exceeded

0x0B

ACL connection already exists

0x0D

Connection rejected due to limited
resources

0x0E

Connection rejected due to security
reasons

0x0F

Connection rejected due to unacceptable
BD_ADDR

0x10

Connection accept Timeout exceeded

0x11

Unsupported feature or Parameter value

0x12

Invalid command parameters

Value of Parameter (5)

0x13

Remote user terminated connection

0x14

Remote device terminated connection due
to low resources

0x15

Remote device terminated connection due
to power off

0x16

Connection terminated by local host

0x1F

Unspecified error

0x39

Connection rejected due to no suitable
channel found

0x3A

Controller busy

0x3D

Connection terminated due to MIC failure

0x84

Invalid PDU

0x91

Insufficient Resources

 2016 Microchip Technology Inc.

DS50002542A-Page 167

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.49.2 Default
This does not apply to this event.
2.3.3.49.3 Example
Figure 2-55 and Figure 2-56 illustrate examples of the disconnect complete event from
the BM70/71 module to the host.
FIGURE 2-55:

SEQUENCE DIAGRAM OF DISCONNECT COMPLETE
EVENT-EXAMPLE 1

FIGURE 2-56:

SEQUENCE DIAGRAM OF DISCONNECT COMPLETE
EVENT-EXAMPLE 2

2.3.3.49.4 Applicable Configuration
This event is only available in Manual Operation.

DS50002542A-Page 168

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.50

CONNECTION PARAMETER UPDATE EVENT (OPCODE 0X73)

This event is sent by the BM70/71 module to inform the host that the connection
parameters have changed.
2.3.3.50.1 Event Format, BM70/71 Module to Host
Table 2-116 provides details of the event format from the BM70/71 module to the host.
TABLE 2-116: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to 5

5

0xAA

0x00

0x03

0x73

see
Table 2-117

value

Table 2-117 provides the parameter values and lengths.
TABLE 2-117: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection handle
This is the value sent to the host by the
BM70/71 module in an LE Connection
Complete Event(0x71)

1 byte

Connection Event interval
Interval = x * 1.25 ms

2 bytes

Slave Latency. This is the number of
connection events which the slave can miss
before the connection is considered lost.
Range: 0x0000 - 0x01F4

2 bytes

Supervision Timeout
Range: 0x000A - 0x0C80
Timeout = x * 10 ms

2 bytes

Value of Parameter (5 to 6)
0xXXXX
Value of Parameter (7 to 8)
0xXXXX

Value of Parameter (9 to 10)
0xXXXX

2.3.3.50.2 Default
This does not apply to this event.
2.3.3.50.3 Example
If the BM70/71 module has the role of a slave in the connection, the host can request
the connection parameters to be updated, but it is up to the peer device (master) to
determine if this will occur. When a Connection Parameter Update Request
(0x19) command is sent by the host, the BM70/71 module returns the Command
Complete Event(0x80) response to let the host know the request was successful.
The BM70/71 module returns the Connection Parameter Update Event
(0x73) when the connection parameters have been updated.

 2016 Microchip Technology Inc.

DS50002542A-Page 169

BM70/71 Bluetooth® Low Energy Module User’s Guide
Figure 2-45 illustrates an example of the connection parameter update request from
the BM70/71 module to the host.
FIGURE 2-57:

SEQUENCE DIAGRAM OF CONNECTION PARAMETER
UPDATE

2.3.3.50.4 Applicable Configuration
This event is only available in Manual Operation.

DS50002542A-Page 170

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.51

COMMAND COMPLETE EVENT (OPCODE - 0X80)

This event is sent by the BM70/71 module to the host when a host command message
is received and executed successfully. The BM70/71 module can also send this event
message when it has processed a BLE-related mode or procedure. This event
message has a general format and is based on the specific host command or BLE
mode/procedure. Additional information will be added to inform the host of the
processing status. Not all host command messages or BLE modes/procedures
executed will add additional information. The host must be capable of processing this
event message in both cases.
2.3.3.51.1 Event Format, BM70/71 Module to Host
Table 2-118 provides details of the event format from the BM70/71 module to the host.
TABLE 2-118: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

 2016 Microchip Technology Inc.

Length (H)

Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x01

0x80

see
Table 2-119

value

DS50002542A-Page 171

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 2-119 provides the details of the Command Complete Event(0x80)
parameter values and lengths.
TABLE 2-119: PARAMETER VALUES AND LENGTHS
Value of Parameter (4)
0x00

DS50002542A-Page 172

Parameter Description

Length

Command succeeded

0x01

Unknown command

0x02

Unknown connection identifier

0x03

Hardware failure

0x05

Authentication failure

0x06

PIN or Key missing

0x07

Memory capacity exceeded

0x08

Connection timeout

0x09

Connection limit exceeded

1 byte

0x0B

ACL connection already exists

0x0C

Command disallowed

0x0D

Connection rejected due to limited resources

0x0E

Connection rejected due to Security reasons

0x0F

Connection rejected due to Unacceptable
BD_ADDR

0x10

Connection accept timeout exceeded

0x11

Unsupported feature or Parameter value

0x12

Invalid command parameters

0x13

Remote user terminated connection

0x14

Remote device terminated connection due to
low resources

0x15

Remote device terminated connection due to
Power Off

0x16

Connection terminated by local Host

0x18

Pairing not allowed

0x1F

Unspecified error

0x28

Instant passed

0x29

Pairing with Unit Key not supported

0x2F

Insufficient Security

0x39

Connection rejected due to no suitable channel
found

0x3A

Controller busy

0x3B

Unacceptable connection interval

0x3C

Directed Advertising timeout

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
TABLE 2-119: PARAMETER VALUES AND LENGTHS (CONTINUED)
Value of Parameter (4)

Parameter Description

0x3D

Connection terminated due to MIC failure

0x3E

Connection failed to be established

0x77

Invalid Offset

0x81

Invalid Handle

0x82

Read not permitted

0x83

Write not permitted

0x84

Invalid PDU

0x85

Insufficient Authentication

0x86

Request not supported

0x88

Insufficient Authorization

0x89

Prepare queue full

0x8A

Attribute not found

0x8B

Attribute not long

0x8C

Insufficient encryption Key size

0x8D

Invalid Attribute value length

0x8E

Unlikely error

0x8F

Insufficient encryption

0x90

Unsupported Group type

0x91

Insufficient Resources

0xF0

Application defined error

0xFF

UART Checksum error

Length

2.3.3.51.2 Default
This does not apply to this event.

 2016 Microchip Technology Inc.

DS50002542A-Page 173

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.51.3 Example
Figure 2-58 illustrates an example of the complete command event from the BM70/71
module to the host.
FIGURE 2-58:

SEQUENCE DIAGRAM OF COMMAND COMPLETE EVENT

2.3.3.51.4 Applicable Configuration
This event can be sent in Manual Operation or in Auto Operation only when the
“Configuration Window” is active.

DS50002542A-Page 174

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.52

STATUS REPORT EVENT (OPCODE - 0X81)

The BM70/71 module will respond to commands that cause a mode change or want to
know state with a Status Report Event(0x81) response. The value in the
parameter field will indicate the mode (temporary sub-state) the BM70/71 module is in.
There is a total of nine modes that the BM70/71 module can be in. Not all modes apply
to all states within the BM70/71 module.
2.3.3.52.1 Event Format, BM70/71 Module to Host
Table 2-120 provides details of the event format from the BM70/71 module to the host.
TABLE 2-120: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x81

see
Table 2-121

value

Table 2-121 provides the parameter values and lengths.

TABLE 2-121: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

0x01

Scanning mode

0x02

Connecting mode

0x03

Standby mode

0x05

Broadcast mode

0x08

Transparent Service enabled mode

0x09

Idle mode

0x0A

Shutdown mode

0x0B

Configure mode

0x0C

BLE Connected mode

Length
1 byte

2.3.3.52.2 Default
This does not apply to this event.
2.3.3.52.3 Example
Figure 2-59 and Figure 2-60 illustrate two examples of how the Status Report
Event(0x81) response is sent by the BM70/71 module to the host.

 2016 Microchip Technology Inc.

DS50002542A-Page 175

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 2-59:

SEQUENCE DIAGRAM OF STATUS REPORT
EVENT-EXAMPLE 1

FIGURE 2-60:

SEQUENCE DIAGRAM OF STATUS REPORT
EVENT-EXAMPLE 2

2.3.3.52.4 Applicable Configuration
This event is only available in Manual Operation.

DS50002542A-Page 176

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.53

CONFIGURE MODE STATUS EVENT (OPCODE - 0X8F)

This event is sent by the BM70/71 module to inform the host of the “Configuration
Window” status during Auto Operation.
2.3.3.53.1 Event Format, BM70/71 Module to Host
Table 2-122 provides details of the event format from the BM70/71 module to the host.
TABLE 2-122: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x02

0x8F

see
Table 2-123

value

Table 2-123 provides the parameter values and lengths.

TABLE 2-123: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

0x00

Configure mode is disabled

0x01

Configure mode is enabled

Length
1 byte

2.3.3.53.2 Default
This does not apply to this event.

 2016 Microchip Technology Inc.

DS50002542A-Page 177

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.53.3 Example
Figure 2-61 illustrates an example of the configure mode status event sent by the
BM70/71 module to the host.
FIGURE 2-61:

SEQUENCE DIAGRAM OF CONFIGURE MODE STATUS
EVENT

2.3.3.53.4 Applicable Configuration
This event is only available in Auto Operation.

DS50002542A-Page 178

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.54

DISCOVER ALL PRIMARY SERVICES EVENT (OPCODE 0X90)

This event is sent by the BM70/71 module to inform the host of all primary services
within the service table of the module.
2.3.3.54.1 Event Format, BM70/71 Module to Host
Table 2-124 provides details of the event format from the BM70/71 module to the host.
TABLE 2-124: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0xNN

0x90

see
Table 2-125

value

Table 2-125 provides the parameter values and lengths.
TABLE 2-125: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0x00

Connection handle
This is the value sent to the host by the
BM70/71 module in an LE Connection
Complete Event(0x71)

1 byte

The length of each block of information for
the primary services which follow.
The number of blocks can be inferred by
the length of this event packet. There can
be multiple blocks included in one event
response. The data shown in parameters 6
to 25 may be repeated based on the
number of primary services available.

1 byte

Start group handle of the service definition
(formatted in little endian)

2 bytes

End group handle of the service definition
(formatted in little endian)

2 bytes

Value of Parameter (5)
0xXX

Value of Parameter (6 to 7)
0xXXXX
Value of Parameter (8 to 9)
0xXXXX

Value of Parameter (10 to 11) or (10 to 25)
0xXXXX
or
0xXXXX_XXXX_XXXX_XXXXXXXX_XXXX_XXXX_XXXX

16-bit or 128-bit service UUID
(formatted as little endian)

2 bytes or
16 bytes

2.3.3.54.2 Default
This does not apply to this event.

 2016 Microchip Technology Inc.

DS50002542A-Page 179

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.54.3 Example
Figure 2-62 illustrates an example of the discover all primary services event from the
BM70/71 module to the host.
FIGURE 2-62:

SEQUENCE DIAGRAM OF DISCOVER ALL PRIMARY
SERVICES

2.3.3.54.4 Applicable Configuration
This event is only available in Manual Operation.

DS50002542A-Page 180

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.55

DISCOVER SPECIFIC PRIMARY SERVICE
CHARACTERISTIC DECLARATION EVENT (OPCODE 0X91)

The event is sent by the BM70/71 module to inform the host of the “Characteristic
declaration” attribute type. It is possible to have multiple characteristic definitions for a
specific primary service. Each characteristic definition has its own characteristic
declaration attribute type. In these cases, the BM70/71 module will have to send
multiple event responses (0x91) to the host. The host needs to be capable of
processing multiple event responses.
Figure 2-63 illustrates the visual structure of the “Characteristic declaration” attribute.
The values of each column are returned to the host with this event response.
FIGURE 2-63:

CHARACTERISTIC DECLARATION ATTRIBUTE STRUCTURE

2.3.3.55.1 Event Format, BM70/71 Module to Host
Table 2-126 provides details of the event format from the BM70/71 module to the host.
TABLE 2-126: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

 2016 Microchip Technology Inc.

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0xXX

0x91

see
Table 2-127

value

DS50002542A-Page 181

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 2-127 provides the parameter values and lengths.
TABLE 2-127: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Connection handle
This is the value sent to the
host by the BM70/71 module in
an LE Connection
Complete Event(0x71)

1 byte

Length of the “Characteristic
declaration” attribute. See
Figure 2-63 above for maximum
length.

(n-5) bytes

Value of Parameter (4)
0xXX

Value of Parameter (5 to n)
0xXX

Value of Parameter (x to x)
0xXXXX

Handle “Characteristic
declaration” attribute
(formatted in little endian)

2 bytes

Value of Parameter (x)
0x01

Broadcast

0x02

Read

0x04

Write without Response

0x08

Write

0x10

Notify

0x20

Indicate

0x40

Authenticated

0x80

Extended Properties

1 byte
Properties of “Characteristic
value” attribute. The property
value can have more than one
property type. For example,
0x18, will specify, the value
field of the “Characteristic
value” attribute. It can be written and has the notify ability.

Value of Parameter (x to x)
0xXXXX
or
0xXXXX_XXXX_XXXX_XXXX_XXXXXXXX_XXXX_XXXX

16-bit or 128-bit UUID of “Characteristic value” attribute
(formatted as little endian)

2 to 16 bytes

2.3.3.55.2 Default
This does not apply to this event.

DS50002542A-Page 182

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.55.3 Example
Figure 2-64 illustrates an example of the specific primary services event from the
BM70/71 module to the host.
FIGURE 2-64:

SEQUENCE DIAGRAM OF DISCOVER SPECIFIC PRIMARY
SERVICES

2.3.3.55.4 Applicable Configuration
This event is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 183

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.56

DISCOVER ALL CHARACTERISTIC DESCRIPTORS EVENT
(OPCODE - 0X92)

This event is sent by the BM70/71 module to inform the host of the “Characteristic
descriptor declaration” attribute UUID(s). There can be several different types of
characteristic descriptors used within a characteristic definition. The “Characteristic
descriptor” attribute is simply used to provide metadata (additional information about
the value in the “Characteristic value” attribute). The representation of this metadata
depends on the type of “Characteristic descriptor” attribute used. This can be
discovered by referencing the UUID(s) of the “Characteristic descriptor” attribute.
A characteristic definition can have more than one “Characteristic descriptor
declaration” attribute. The BM70/71 module will return a UUID for each “Characteristic
descriptor declaration” attribute within this event response.
2.3.3.56.1 Event Format, BM70/71 Module to Host
Table 2-128 provides details of the event format from the BM70/71 module to the host.
TABLE 2-128: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4

5

0xAA

0x00

0x07 to
0x17

0x92

see
Table 2-129

value

Table 2-129 provides the parameter values and lengths.
TABLE 2-129: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection handle

1 byte

0x01

This event response lists 16-bit UUID(s)

1 byte

0x02

This event response lists 128-bit UUID(s)

Value of Parameter (5)

Value of Parameter (6 to 7)
0xXXXX

Start group handle of the service definition
(formatted in little endian)

2 bytes

Handle “Characteristic descriptor
declaration” attribute
(formatted as little endian)

2 bytes

Value of Parameter (8 to 9)
0xXXXX

Value of Parameter (8 to 9) or (8 to 23)
0xXXXX
or
0xXXXX_XXXX_XXXX_XXXX_XXXXXXXX_XXXX_XXXX

UUID of “Characteristic descriptor
declaration” attribute
(formatted as little endian)

2 bytes or
16 bytes

2.3.3.56.2 Default
This does not apply to this event.

DS50002542A-Page 184

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.56.3 Example
Figure 2-65 illustrates an example of the discover all characteristic descriptors event
from the BM70/71 module to the host.
FIGURE 2-65:

SEQUENCE DIAGRAM OF CHARACTERISTIC
DESCRIPTORS

2.3.3.56.4 Applicable Configuration
This event is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 185

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.57

GATT SERVER - CLIENT WRITE CHARACTERISTIC
VALUE EVENT (OPCODE - 0X98)

This event is used by the BM70/71 module to inform the host that the peer device
(client) has requested the value of a “Characteristic value” attribute to be written.
2.3.3.57.1 Event Format, BM70/71 Module to Host
Table 2-130 provides details of the event format from the BM70/71 module to the host.
TABLE 2-130: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0xNN

0x98

see
Table 2-131

value

Table 2-131 provides the parameter values and lengths.
TABLE 2-131: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection handle

1 byte

Handle “Characteristic value” attribute
(formatted in little endian)

2 bytes

Value of Parameter (5 to 6)
0xXXXX
Value of Parameter (7 to n)
0xXX

Value to be written to the “Characteristic
value” attribute

1 to 20 bytes
(max)

2.3.3.57.2 Default
This does not apply to this event.

DS50002542A-Page 186

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.57.3 Example
Figure 2-66 illustrates an example of the client characteristic event from the BM70/71
module to the host.
FIGURE 2-66:

SEQUENCE DIAGRAM OF CLIENT WRITE CHARACTERISTIC
EVENT

2.3.3.57.4 Applicable Configuration
This event is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 187

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.3.3.58

GATT TRANSPARENT - RECEIVED TRANSPARENT DATA
EVENT RESPONSE (OPCODE - 0X9A)

This event is sent by the BM70/71 module to inform the host that data was received
from the client using the proprietary “Transparent UART” service.
2.3.3.58.1 Event Format, BM70/71 Module to Host
Table 2-132 provides the details of the event format from the BM70/71 module to the
host.
TABLE 2-132: EVENT FORMAT, BM70/71 MODULE TO HOST
Start
Byte No
Value

Length (H) Length (L)

OP Code

Parameter

Checksum

0

1

2

3

4 to n

5

0xAA

0x00

0xNN

0x9A

see
Table 2-133

value

Table 2-133 provides the parameter values and lengths.
TABLE 2-133: PARAMETER VALUES AND LENGTHS
Value of Parameter

Parameter Description

Length

Value of Parameter (4)
0xXX

Connection handle

1 byte

Value of Parameter (5 to n)
0xXXXX

Received data from peer device

640 to n bytes
(max)

2.3.3.58.2 Default
This does not apply to this event.

DS50002542A-Page 188

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.3.3.58.3 Example
Figure 2-67 illustrates an example of the received transparent data event from the
BM70/71 module to the host.
FIGURE 2-67:

SEQUENCE DIAGRAM OF RECEIVED TRANSPARENT DATA
EVENT

2.3.3.58.4 Applicable Configuration
This event is only available in Manual Operation.

 2016 Microchip Technology Inc.

DS50002542A-Page 189

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.4

CONFIGURATION PROTOCOL
The configuration protocol allows a host to set up the BM70/71 module with the
configuration options described in previous sections of this document.
Currently, the configuration is setup for the BM70/71 module by the use of a PC-based
tool, referred to as the User Interface (UI) tool (executable program which only runs on
the Windows® Operating System). This tool handles all low-level configuration details
(configuration protocol) and exposes the configurable behavior. For more details, refer
to the Operation and Behavior Overview section of the BM70/71 module through
selectable options in a GUI. As long as the designer makes the minimum hardware
connections available (refer to 2.1 “Hardware Interface”) from the module to the PC,
this UI tool is recommended for configuring the BM70/71 module. The UI Tool can be
downloaded as part of the “Software Tools” available for the BM70/71 module.
Note:

For information on a reference schematic showing an example of how to
make the hardware connections between the PC and BM70/71 module,
refer to Chapter 3. “BM70/71 PICtail™/PICtail Plus EVB”.

The configuration protocol used by the host (such as the host MCU or UI Tool) will be
described in the a release of this document. Currently, the UI Tool is available to
perform configuration of the BM70/71 module.

2.4.1

UART Interface Characteristics

While operating in the programming mode, the UART can operate using the following
parameters:
•
•
•
•
•

DS50002542A-Page 190

Baud Rate: 115200
Number of data bits: 8
No parity
1 stop bit
No flow control

 2016 Microchip Technology Inc.

Operating Modes, Configuration and Control
2.5

PROGRAMMING PROTOCOL
The BM70/71 module is capable of having its internal firmware updated. This ability
allows additional functionality to be added to the BM70/71 module at a later date
(adding support for future updates of the BLE specification). To update the firmware in
the BM70/71 module, a host must implement and follow the rules of the programming
protocol while the device is in the applicable mode (for a description of switching
between modes, refer to 2.2 “BM70/71 Mode Selection”).
Currently, updating the BM70/71 module firmware is made possible through the use of
a PC-based tool, referred to as the “ISUpdate tool” (executable program which only
runs on the Windows Operating System). This tool handles all the low-level protocol
details (i.e, programming protocol) and allows a user to input the firmware hex images
(Motorola s-record format) through a GUI. As long as the designer makes the minimum
hardware connections available (see 2.1 “Hardware Interface”) from the module to
the PC, using this tool is the recommended approach to program the BM70/71 module
firmware. The ISUpdate tool and associated firmware hex images can be downloaded as part of the “Software Tools” download available for the BM70/71 module.
Note:

For information on a reference schematic showing an example of how to
make the hardware connections between the PC and BM70/71 module,
refer to Chapter 3. “BM70/71 PICtail™/PICtail Plus EVB”.

The firmware hex images and associated tools are made available on the BM70/71
product page of Microchip website: www.microchip.com/BM70 or
www.microchip.com/BM71.
Figure 2-68 illustrates an example of the name of the file to download and the version
of firmware for the BM70/71 module.
FIGURE 2-68:

EXAMPLE OF NAME OF THE FIRMWARE FILE DOWNLOAD
FROM THE WEB PAGE

Any version of firmware that is released to production is made available on the
BM70/71 web page. The user decides which firmware version must be used.
The programming protocol used by the host (such as host MCU or ISUpdate tool)
will be described in a future release of this document. Currently, only the ISUpdate
tool is available to perform a firmware update of the BM70/71 module.

2.5.1

UART Interface Characteristics

While in the direct test mode, the UART can operate using the following parameters:
•
•
•
•
•

Baud Rate: 115200
Number of data bits: 8
No parity
1 stop bit
No flow control

 2016 Microchip Technology Inc.

DS50002542A-Page 191

BM70/71 Bluetooth® Low Energy Module User’s Guide
2.6

DIRECT TEST PROTOCOL
While in direct test mode, using the HCI command protocol (refer to 2.1 “Hardware
Interface”) allows testing of the physical layer (i.e, Radio) within the BM70/71 module.
This allows a tester to command the physical layer to either transmit or receive a
sequence of test packets. The tester can then analyze the packets received, or the
number of packets the Device Under Test (DUT) received to determine if the physical
layer is working according to the applicable specification. The tester can also measure
various RF parameters from received packets to determine if the physical layer is
compliant. This mode is not just applicable to qualification since it can also be used for
production line testing and calibration of this device in an end product.
Note:

The BM70/71 module has already gone through a calibration process, but
this test can be repeated in some cases.

The direct test mode in the BM70/71 module uses the HCI protocol over a UART interface to exchange data between the tester and DUT. This protocol and direct test mode
are captured in Volume 6, Part F of the BLE specification.
Figure 2-69 illustrates how communication will occur when the module is in direct test
mode. Refer to applicable specification for command details.
FIGURE 2-69:

2.6.1

BM70/71 MODULE IN DIRECT TEST MODE

UART Interface Characteristics

While in the direct test mode, the UART can only operate using the following
parameters:
•
•
•
•
•

DS50002542A-Page 192

Baud Rate: 115200
Number of data bits: 8
No parity
1 stop bit
No flow control

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Chapter 3. BM70/71 PICtail™/PICtail Plus EVB
Thank you for purchasing a Microchip Technology BM70/71 PICtail™/PICtail Plus EVB.
This chapter provides detailed information about the Microchip Technology BM70/71
EVB. The BM70/71 EVB is designed to evaluate and demonstrate the capabilities of
the Microchip BM70/71 BLE module.
The BM70/71 EVB can be evaluated using the information from the previous chapters
and the various tools included in the “Firmware_SoftwareToolsVx_xx.zip”
folder, which is located on the product page on the Microchip website:
• BM70 EVB: www.microchip.com/BM70
• BM71 EVB: www.microchip.com/BM71
This chapter includes the following topics:
3.1 “Kit Contents”
3.2 “BM70/71 EVB Features Overview”
3.3 “Hardware Features”
3.4 “Getting Started - BM70/71 EVB Example Configuration”
3.5 “Firmware Programming Procedure”

3.1

KIT CONTENTS
The BM70 EVB kit contains the following items:
• One BM70 EVB, which contains the BM70BLES1FC2 module
• One micro-USB cable
The BM71 EVB kit contains the following items:
• One BM71 EVB, which contains the BM71BLES1FC2 module
• One micro-USB cable.
Note:

 2016 Microchip Technology Inc.

If you are missing any part of the kit, contact a Microchip sales office for
assistance. A list of Microchip offices for sales and service is provided on
the back page of this document.

DS50002542A-Page 193

BM70/71 Bluetooth® Low Energy Module User’s Guide
3.2

BM70/71 EVB FEATURES OVERVIEW
The following are key features of the BM70/71 EVB:
• Option to switch power sources between the Coin Cell battery, USB and PICtail
interface
• UART interface to connect to a host MCU
• Connection and test interface between the BM70/71 module and host emulator
tools (see Firmware_SoftwareTools_Vx_xx.zip file on Microchip's
BM70/71 product pages: www.microchip.com/BM70 or
www.microchip.com/BM71)
• Ability to update the firmware using the firmware update tool (see Firmware_SoftwareTools_Vx_xx.zip file on Microchip's BM70/71 product pages:
www.microchip.com/BM70 or www.microchip.com/BM71)
• Modes selection for Application/Run mode or Configuration/Programming/Test
mode. For more information on functionality, refer to 2.2 “BM70/71 Mode Selection”
• LED, push button and I2C (only for Software Development Kit (SDK) based
applications) test interface
• SPI interface (available only on the BM70 EVB for SDK-based applications)
Figure 3-1 illustrates the top view of the BM70 EVB and Table 3-1 provides details of
the components.
TABLE 3-1:

BM70 EVB COMPONENTS (TOP VIEW)

Block reference

Component reference

1

—

2

SW6

3

J4

4

JP10

5

J3

6

LED2

7

J1

8

SW5

9

SW1 to SW4

BM70BLES1FC2 module
Power Switch button
SPI interface (only SDK based)
USB GPIO interface
USB to UART interface header
LED
Power source connector (test points for current
measurement)
Reset push button (RST_N)
Push buttons for test

10

J10

VBAT test points

11

JP7

Push button header

12

CN4
JP13

I2C interface header (SDK based only)
I2C power supply header
I2C reset I/O (RST_N) header

13

SW7

Mode selection DIP switch

14

LED2 to LED5, JP5

JP12

DS50002542A-Page 194

Description

LEDs and corresponding header test points (for
more details, refer to 1.1.2.3.1 “General Operation – LED Indication”)

15

J2

GND test point header

16

J8

PICtail™ interface

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
FIGURE 3-1:

BM70 EVB (TOP VIEW)

Figure 3-2 illustrates the top view of the BM70 EVB and Table 3-2 provides the details
of the components.
TABLE 3-2:

BM70 EVB COMPONENTS (BOTTOM VIEW)

Block reference

Component reference

1

—

2

CN1 to CN3

3

SK1

 2016 Microchip Technology Inc.

Description
USB to UART converter (MCP2200)
Module pin test points
Coin Cell battery holder (CR2032)

DS50002542A-Page 195

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 3-2:

BM70 EVB (BOTTOM VIEW)

Figure 3-3 illustrates the top view of the BM71 EVB and Table 3-3 provides the details
of the components.
TABLE 3-3:

BM71 EVB COMPONENTS (TOP VIEW)

Block reference

Component reference

1

—

BM71BLES1FC2 module

2

SW6

Power Switch button

3

JP10

USB GPIO interface

4

J3

5

LED2

6

J1

7

SW5

8

SW1 to SW4

USB to UART interface header
LED
Power source connector (test points for current
measurement)
Reset push button (RST_N)
Push buttons for test

9

J10

VBAT test points

10

JP7

Push button header

11

CN4
JP13

I2C interface header (SDK based only)
I2C power supply header
I2C reset I/O (RST_N) header

12

SW7

Mode selection DIP switch

13

LED2 to LED5, JP5

JP12

DS50002542A-Page 196

Description

LEDs and corresponding header test points (for
more details, refer to 1.1.2.3.1 “General Operation – LED Indication”)

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
TABLE 3-3:

BM71 EVB COMPONENTS (TOP VIEW) (CONTINUED)

Block reference
14

J2

15

JP14

16

J11 to J13

FIGURE 3-3:

 2016 Microchip Technology Inc.

Component reference

Description
GND test point header
PICtail™ interface
Module pin test point header

BM71 EVB (TOP VIEW)

DS50002542A-Page 197

BM70/71 Bluetooth® Low Energy Module User’s Guide
Figure 3-4 illustrates the top view of the BM70 EVB and Table 3-4 provides the details
of the components.
TABLE 3-4:

Block reference

Component reference

1

—

2

SK1

FIGURE 3-4:

DS50002542A-Page 198

BM71 EVB COMPONENTS (BOTTOM VIEW)
Description
USB to UART converter (MCP2200)
Coin Cell battery holder (CR2032)

BM71 EVB (BOTTOM VIEW)

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
3.3

HARDWARE FEATURES
This section describes the hardware features of the BM70/71 EVB. The BM70/71 EVB
provides many options for communicating with other peripheral devices and
connecting to various power sources, as illustrated in Figure 3-5 and Figure 3-6.
FIGURE 3-5:

 2016 Microchip Technology Inc.

BM70 EVB BLOCK DIAGRAM

DS50002542A-Page 199

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 3-6:

BM71 EVB BLOCK DIAGRAM

The following list provide the details of each component in the BM70/71 EVB. For the
location of these components, refer to Figure 3-1 through Figure 3-4.

3.3.1

Power Supply

There are three options to supply power to the module and board:
• Coin cell battery (Socket SK1 for CR2032 battery)
• USB
• PICtail™ socket connection (popular form factor to connect peripherals to other
Microchip microcontroller development/starter kits)
The use of each option requires the appropriate change to the jumper on the J1 header
of the EVB. This header also provides a convenient test/probe point to perform a current measurement to verify the BM70/71 module current draw (make sure LED1 is not
connected to module, see 3.3.4 “LEDs”). One side of the header row provides a test
point for the input power source, and the other side connects to the VBAT signal of the
module (refer to Appendix A. “BM70 EVB Schematics” and Appendix B. “BM71
EVB Schematics”).

3.3.2

USB to UART Connection

The BM70/71 EVB provides a UART interface to communicate with a host. The
BM70/71 module makes the appropriate connections and provides a USB to UART
converter IC on the EVB. This allows the BM70/71 module on the EVB to get power
from and communicate with a PC. This makes it easy to use the Microchip provided
tools for quick evaluation of the module when a host microcontroller is not available
(see Firmware_SoftwareTools_Vx_xx.zip on Microchip product page). These
tools use the same protocols referred to in Chapter 2. “Operating Modes, Configuration and Control”.

DS50002542A-Page 200

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
3.3.2.1

CONNECTING AN EXTERNAL BM70/71 MODULE

Because the EVB routes the communication and control signals to various headers, a
user can easily make blue wire connections for various test activities. One of these
activities is leveraging the MCP2200 USB to UART converter IC to communicate with
a module external to the EVB for testing purposes. This allows a user to communicate
with and test a BM70/71 module through PC-based tools. Figure 3-7 illustrates how a
user can make the blue wire connections to route the communication lines to the external BM70/71 module, bypassing the on-board module of the EVB.
FIGURE 3-7:

 2016 Microchip Technology Inc.

UART CONNECTION TO BM70 EVB DUT

DS50002542A-Page 201

BM70/71 Bluetooth® Low Energy Module User’s Guide
3.3.3

Push Buttons and Switches

There is no specific intended purpose for the push buttons or switches on the BM70/71
EVB apart from the Reset push button and mode DIP switch. The user has to determine
how these hardware features may be used in the evaluation of the BM70/71 module.
However, this use is not mandated.
The following list provides the description of the push buttons or switches and the
features used to evaluate the BM70/71 EVB.
• SW1 through SW4 – Push button switches, with one side connected to
ground/common, and the other side connected to the JP5 header. When the
switch is pressed, it makes an electrical connection between ground and the
header pin. The signal attached to the header can be the user’s choice. The user
can evaluate some features of the BM70/71 module with these switches, listed as
follows:
- By making the necessary blue wire connection between pins on the JP5
header and the applicable digital I/O pin (refer to 1.1.2.2.1 “Manual
Operation – General I/O”) on the module (accessed by the CN1 through
CN3 connectors/pads), a user can test the built-in digital GPIO read control of
the module
• SW5/Reset – This push button is used to drive the RST_N signal of the module to
low. This resets the BM70/71 module and causes the mode pin (P2_0) level to be
latched again (for the description of the pin, refer to 2.1 “Hardware Interface”
and 2.2 “BM70/71 Mode Selection”).
• SW6 – This is a single throw, dual/two pole latching push button switch (DPST or
2PST). One contact (pole) is connected through a pull up resistor to VCC/VBAT
(the source can be USB, PICtail, or Coin Cell battery). The other contact is
connected to ground/common on the EVB. When the switch is pressed, the two
contacts are electrically connected to a 2-pin header, JP6. The user can evaluate
some features of the BM70/71 module with this switch listed as follows:
- By making the necessary blue wire connection between pins on the JP6
header and the applicable digital I/O pin (refer to 1.1.2.2.1 “Manual
Operation – General I/O”) on the module (accessed by the CN1 through
CN3 connectors/pads), a user can test the built-in digital GPIO read control of
the module
• SW7/DIP switch – This switch is connected to pin P2_0 on the BM70/71 module
and is used to drive the pin to a logic level of “0”. When the switch is in the “ON” or
“1” position, pin P2_0 is electrically connected through a pull down resistor to
ground/common. When the switch is in the “OFF” position, the connection is open.
Pin P2_0 is pulled up internally on the module so when the switch is in “OFF” position, a user must see a logic level of “1” on pin P2_0 (for the description of the pin,
refer to 2.1 “Hardware Interface” and 2.2 “BM70/71 Mode Selection”)
• SW8 – This is a push button switch used to reset the MCP2200 USB to UART
converter IC. If a user is seeing errant communication between the PC and the
BM70/71 EVB, this push button can be used to reset the internal logic of the USB
to UART converter IC.

DS50002542A-Page 202

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
3.3.4

LEDs

There are six LEDs on the BM70/71 EVB. These LEDs are used to give the user a
visual indication of the BM70/71 module activity/status (for more details, refer to
1.1.2.3.1 “General Operation – LED Indication”). However, only one LED (LED1)
has a specific intended purpose. The other four LEDs (LED2 to LED5) can be used for
any other purpose determined by the user.
The following describes the LED hardware features on the BM70/71 EVB:
• LED1 – This LED is electrically connected to pin 2 on the JP8 header and pin
P0_2 of the BM70/71 module. Pin 1 of the JP8 header is connected to VBAT/VCC.
When a jumper is placed on pin 1 and pin 2 of the JP8 header, the LED will function based on the pattern being driven on pin P0_2 of the BM70/71 module. The
BM70/71 module can drive a sequence of patterns (related to internal behavior
occurring in the module) on pin P0_2 to cause LED1 to toggle on/off. This gives
the user a visual indication when certain Bluetooth or module activity is occurring
(for more details, refer to 1.1.2.3.1 “General Operation – LED Indication”).
When verifying the current draw of the module, the jumper on the JP8 header
needs to be removed if pin P0_2 has been configured to drive LED1. With the
jumper in place, the current meter will read the current draw of the module and
LED1. This will cause a mismatch between the values stated in the data sheet
and the current meter measurement
• LED2 through LED5 – These LEDs are connected to the JP5 header and a pull up
resistor to VBAT/VCC. The user can apply a logic level “0” to the applicable pin on
JP5 to turn on the respective LED. The user determines what these LEDs must
represent. The user can evaluate some features of the BM70/71 module with
these LEDs as follows:
- By making the necessary blue wire connection between pins on the JP5
header and the applicable digital I/O pin (refer to 1.1.2.2.1 “Manual Operation – General I/O”) on the module (accessed by the CN1 through CN3 connectors/pads), a user can test the built-in digital GPIO write control of the
module
• LED6 – This LED is connected to the USB VBUS signal. When power is applied
through the micro-USB connector, the LED will turn ON. This LED turns On only
when power is supplied by the USB

 2016 Microchip Technology Inc.

DS50002542A-Page 203

BM70/71 Bluetooth® Low Energy Module User’s Guide
3.3.5

Jumpers

Table 3-5 through Table 3-11 provide details of the headers/jumpers hardware
functionality on the BM70/71 EVB.
Table 3-5 provides the details of header J3 to connect the UART signals from the
MCP2200 to the BM70/71 module.
TABLE 3-5:

USB TO UART INTERFACE U10 (HEADER J3)

Component
EVB Signal
Header Pin
Reference
Name
J3

Description

1

RTS

MCP2200 RTS pin

2

P0_0

BM70/71 GPIO P0_0 (pin 15 on BM70 EVB and
pin 11 on BM71 EVB)
Can be configured as CTS for UART function when
connected Jumper to pin1 of the header J3

3

CTS

MCP2200 CTS pin

4

P3_6

BM70/71 GPIO P3_6 (pin17 on BM70 EVB and pin
9 on BM71 EVB)
Can be configured as RTS for UART function when
connected Jumper to pin 3 of the header J3

5

TX

6

HCI_TXD

7

Rx

8

HCI_RXD

MCP2200 RX pin
BM70/71 UART Transmit (pin 23 on BM70 EVB
and pin 8 on BM71 EVB)
Connected Jumper to pin 5 of the header J3
MCP2200 Tx pin
BM70/71 HCI_RXD (pin 22 of BM70 EVB and pin 7
of BM71 EVB)
Connected jumper to pin 7 of the header J3

Table 3-6 provides the details of the headers, J10 and J2, which are available for
accessing the VBAT and ground/common signal of the BM70/71 EVB.
TABLE 3-6:
Component
Reference

DS50002542A-Page 204

VBAT AND GROUND CONNECTOR (J10 AND J2)
Header Pin

EVB Signal
Name

J10

1 to 8

VBAT

Test points for probing VBAT signal on the
BM70/71 EVB

J2

1 to 8

GND

Test points for probing GND signal on the
BM70/71 EVB

Description

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
Header JP10 is used for accessing the GPIO functionality of the MCP2200 (USB to
UART Converter) IC. The signals connected to the GPIO pins of the MCP2200 can be
read and driven. On the BM70/71 EVB, they are used to serve as the input for the
BM70/71 module output status signals (for a description of signals in Auto Operation,
refer to 1.1.2.1.2 “Auto Operation – Status Indication” and 1.1.2.1.5 “Auto Operation – Pairing Key” through 1.1.2.1.8 “Auto Operation – Link Quality Indication”),
allowing the Auto Operation Tool to detect the state of the BM70/71module. A blue wire
connection must be made between the header and BM70/71 module pins.
Table 3-6 provides the details of header JP10, used for accessing the GPIO
functionality of the USB to UART on the BM70/71 EVB.
TABLE 3-7:
Component
Reference
JP10
(BM70/71
EVB)

 2016 Microchip Technology Inc.

GPIO FUNCTIONALITY OF USB TO UART (HEADER JP10)
Header Pin

EVB Signal
Name

1

GPO0

Connect to the UART_RX_IND pin of the
BM70/71 module. This functionality can be used
in both Manual and Auto Operation
(Pin is configurable, for more details, refer to
1.1.2.3.5 “General Operation – UART Receive
Indication”)

2

GPO1

Connect to the LINK_DROP pin of the BM70/71
module. This functionality works only in Auto
Operation
(Pin is configurable, for more details, refer to
1.1.2.1.6 “Auto Operation – Link Drop”)

3

GPO2

Connect to the PARING_KEY pin of the BM70/71
module. This functionality works only in Auto
Operation
(Pin is configurable, for more details, refer to
1.1.2.1.5 “Auto Operation – Pairing Key”)

4

GPO3

5

GPO4

6

GPO5

Connect to the LOW_BATTERY_IND pin, or
RSSI_IND pin of the BM70/71 module. This functionality works only in Auto Operation
(Pin is configurable, for more details, refer to
1.1.2.1.7 “Auto Operation – Low Battery Indication” and 1.1.2.1.8 “Auto Operation – Link
Quality Indication”)

7

GPO6

Connect to the STATUS1_IND pin of the BM70/71
module. This functionality works only in Auto
Operation
(Pin is configurable, for more details, refer to
1.1.2.1.2 “Auto Operation – Status Indication”)

8

GPO7

Connect to the STATUS2_IND pin of the BM70/71
module. This functionality works only in Auto
Operation
(Pin is configurable, for more details, refer to
1.1.2.1.2 “Auto Operation – Status Indication”)

Description

DS50002542A-Page 205

BM70/71 Bluetooth® Low Energy Module User’s Guide
Table 3-8 provides details of header JP12, used to power an external I2C based
peripheral on the BM70/71 EVB.
TABLE 3-8:
Component
Reference

I2C INTERFACE (HEADER JP12)
Header Pin

EVB Signal
Name

1

VBAT

2

3V3_I2C

JP12

Note:

Description
Sort with a jumper to power I2C peripheral from
BM70/71 EVB VBAT signal

The jumper JP12 must be connected as default.

Table 3-9 provides details of header JP13, which is used to reset an external I2C based
peripheral. The I2C peripheral will have a hardware pin reset function and will reset with
a low true signal.
TABLE 3-9:

CONNECTOR JP13

Component
Header Pin
Reference
JP13

1

2

EVB Signal
Name
RST_N

Description
Short with a jumper to have RST_N connected to
the I2C peripheral reset signal, attached to pin 2 of
this header

I2C peripher- This is the I2C peripheral’s reset signal. The
als Reset peripheral’s reset signal must be low true.
Signal

Table 3-10 provides details of headers J1, JP5, JP6, JP7, and JP8, which are the test
points for the push buttons/switches, module power supply input selection, and LEDs
of the BM70/71 EVB.
TABLE 3-10:
Component
Reference
J1, JP5,
JP6, JP7,
and JP8

DS50002542A-Page 206

POWER SOURCE OPTION CONNECTOR
Header
Pin

EVB Signal
Name

—

—

Description
These headers and module functionality are
covered in the sections above (refer to
3.3.1 “Power Supply” through 3.3.4 “LEDs”)

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
Table 3-11 provides details of header J4, which is used to provide access to the BM70
SPI peripheral. The SPI peripheral is only available for SDK users.
TABLE 3-11:
Component
Reference
J4

Note:

3.3.6

SERIAL FLASH INTERFACE J4 (BM70 ONLY)
Header Pin

EVB Signal
Name

1

VBAT

BM70 EVB power signal

2

P3_1

SPI_nCS

3

P3_2

SPI_MISO

Description

4

P3_3

SPI_MOSI

5

P3_4

SPI_SCLK

6

GND

Ground/common signal of BM70 EVB

The SPI peripheral is not available with firmware version 1.03 or 1.06 as
listed on Microchip's BM70/71 module product pages. This header is only
listed here for completeness. Contact your local Microchip representative
for further details on the BM70 SPI peripheral.

Connecting an External Host MCU

The EVB routes module communication and control signals to various headers. A user
can easily make blue-wire connections for various test activities. To help with the early
stages of prototyping, it may be advantageous to connect an external MCU to the
BM70/71 module on the EVB for testing purposes. Figure 3-8 illustrates the connection
in which the code can be developed and tested for the external MCU before target
hardware has been fully developed.
FIGURE 3-8:

 2016 Microchip Technology Inc.

UART CONNECTION TO HOST MICROCONTROLLER DUT

DS50002542A-Page 207

BM70/71 Bluetooth® Low Energy Module User’s Guide
3.4

GETTING STARTED - BM70/71 EVB EXAMPLE CONFIGURATION
This section provides an understanding of the work flow for evaluating the BM70/71
module. The steps in the sub-sections show a procedure for updating the configuration
parameters of the BM70/71 module using the EVB. The procedure demonstrates the
connection between the BM70/71 module and smartphone that can be made. The data
is exchanged between the BM70/71 module and smartphone app, using the proprietary
“Transparent UART” service.

3.4.1

Requirements

The following hardware and software are required for getting started with the BM70/71
EVB.
3.4.1.1

HARDWARE REQUIREMENTS

• BM70/71 EVB
• Bluetooth-enabled smartphone
- iPhone® 4S or later version (it must support BLE) or
- Android™ device running Android 4.3 or later version
• Windows® host PC with USB port
• Micro-USB cable
3.4.1.2

SOFTWARE REQUIREMENTS

Download and install the latest firmware and corresponding tools (Firmware_SoftwareTools_Vx_xx.zip) from the Microchip website: www.microchip.com/BM70 for
BM70 EVB and www.microchip.com/BM71 for BM71 EVB.
•
•
•
•

DS50002542A-Page 208

Firmware update tool (BM7xBLE_IS187x_FlashUpdateTool.exe)
Firmware hex images (*.H00, *.H01, *.H02, *H03)
Configuration tool (IS187x_102_BLEDK3_UI v100.xxx.exe)
mBIoT Utility app, available at App Store® for iPhone and at Google Play™
for Android
Note 1:

Ensure the latest firmware is downloaded to the IS1870/71 IC on the
BM70/71 EVB. The initial BLE firmware version programmed into BM70
modules in Microchip's manufacturing line at the time of releasing this
product to market was version 1.03. The initial BLE firmware version programmed into BM71 modules in Microchip's manufacturing line at the
time of releasing this product to market was version 1.06. The latest firmware for each module is made available on the BM70 and BM71 product
web pages on Microchip's website. For more details, refer to
3.5.1 “Programming Procedure”.

2:

Ensure the exact version of the Configuration tool (UI Tool) matches the
specific firmware version programmed into the IS1870/71 IC's Flash
memory is used to configure the module. For ease of use, the UI tool,
firmware and firmware update utility are all provided in a single zip file for
each version of firmware released by Microchip to the website. The latest
firmware for the BM70/71 module is not compatible with older versions of
the Configuration tool. To ensure the correct version of firmware and tools
are being used together, a Firmware_Software_Vx_xx.zip file is
provided. This archive contains firmware along with the compatible software tools for this specific firmware version.

3:

In the following example, the BM70 EVB with firmware version 1.03 and
Configuration tool (IS187x_102_BLEDK3_UI v100.123.exe) is used.

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
3.4.2

Setting Configuration Parameters

The Configuration tool or User Interface (UI) tool is a PC based program, which enables
the user to change the configuration parameters of the BM70/71 EVB (for hardware
details on configuration, refer to 2.1 “Hardware Interface”). The following list provides
some examples of the parameter settings that can be updated on the BM70 module
using the UI tool (for the description of features, refer to 1.1.1 “Configuration Overview”):
•
•
•
•

Device name
UART settings
BLE connection settings
Add or edit GATT service table.

Perform the following actions to update the UI parameter settings:
1. Open the UI tool and click Load, see Figure 3-9. The Loading Option window is
displayed.
Note 1:

Download and unzip the contents of the Firmware_SoftwareTools_Vx_xx.zip file, which is available at the Microchip website:
www.microchip.com/BM70 or www.microchip.com/BM71. The configuration tool is part of this zip file content and located under the sub-folder
“ConfigurationTool/”. In this demonstration, the IS187x_102_BLEDK3_UI_Configuration_Tool v100.123.exe tool is used. This tool version
corresponds to firmware version v1.03. This information is shown in by
the file name, Firmware_SoftwareTools_Vx_xx.zip, where
“Vx_xx” is the firmware version.

2:

For the BM71 EVB, the IS187x_102_BLEDK3v1.06_UI1.02 tool version
must be used, which is available on the Microchip website:
www.microchip.com/BM71. This version corresponds to firmware version
1.06.

FIGURE 3-9:

 2016 Microchip Technology Inc.

CONFIGURATION TOOL WINDOW

DS50002542A-Page 209

BM70/71 Bluetooth® Low Energy Module User’s Guide
2. In the Loading Option window, click Load Text File to load default configuration
parameters, see Figure 3-10.
FIGURE 3-10:

LOADING OPTION WINDOW

3. From the Open dialog, select the default configuration parameter text file (provided with the Firmware_SoftwareTools_Vx_xx.zip file under the “ConfiguartionTool/” sub-folder) and then click Open, see Figure 3-11.
FIGURE 3-11:

DS50002542A-Page 210

OPEN DIALOG BOX

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
4. From the Configuration Tool window, click Edit to start editing the default
parameters, see Figure 3-12.
FIGURE 3-12:

CONFIGURATION TOOL WINDOW

5. From the Main Feature window, click BLEDK and then click OK, see
Figure 3-13.
FIGURE 3-13:

 2016 Microchip Technology Inc.

MAIN FEATURE WINDOW

DS50002542A-Page 211

BM70/71 Bluetooth® Low Energy Module User’s Guide
6. The UI tool displays a window with various configuration options (tabs) in tabular
format. Click the System Setup tab, and in the Name fragment box, type
“BM70_BLE” (or any user-defined name), see Figure 3-14.
Note 1:
2:

Click the Help button to get information related to UI parameters.
The Auto Operation setting is chosen by default. For more details on
BM70/71 behavior under Auto Operation, refer to 1.1.2.1 “Auto
Operation”.

FIGURE 3-14:

DS50002542A-Page 212

CONFIGURING PARAMETERS - SYSTEM SETUP

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
7. Click the LE Mode Setup tab and under the Advertising Data Setting section,
select Device Name to advertise the device name, see Figure 3-15. This
ensures that the name fragment is included in the advertising packet.
FIGURE 3-15:

 2016 Microchip Technology Inc.

ADVERTISING DATA SETTING

DS50002542A-Page 213

BM70/71 Bluetooth® Low Energy Module User’s Guide
8. Click Finish. The Configuration Tool main window is displayed, see Figure 3-16.
FIGURE 3-16:

CONFIGURATION TOOL MAIN WINDOW

9. From the Configuration Tool window, perform any one of these actions:
- Click Save to save the selected parameter settings as .txt or .hex files (for
later production programming).
- Click Export to export a log file along with the parameters to a .txt file. The
log file contains the settings of configuration parameters, which were edited.
- Click Write to program these configuration settings into the BM70/71 module.
For this to function, the BM70/71 module must be in Configuration mode.
10. To program the configuration parameters on the BM70 module, perform these
actions:
a) Set switch SW7 in the “ON” or “1” position (configuration mode), see
Figure 3-17.
FIGURE 3-17:

DS50002542A-Page 214

SW7 IN TEST MODE

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
b) Ensure that jumpers J1, JP8 and J3 on the BM70 EVB are connected, as
illustrated in Figure 3-18.
FIGURE 3-18:

JUMPER AND BM70 EVB CONNECTION DETAILS

c) Connect the USB port (P1) of the BM70 EVB to a PC using the micro-USB
cable, see Figure 3-19.
FIGURE 3-19:

CONFIGURATION SETUP

d) On connection, LED1 (blue) and LED6 (red) on the BM70 EVB will turn ON.
e) Go to the Configuration Tool window and click Write to program the settings
into the internal memory of the BM70/71 module, see Figure 3-16.

 2016 Microchip Technology Inc.

DS50002542A-Page 215

BM70/71 Bluetooth® Low Energy Module User’s Guide
f)

The Read/Write Flash window is displayed. Select the values for COM Port
and Baudrate (must be 115200 for the configuration to succeed), and then
click Write, see Figure 3-20.

FIGURE 3-20:

READ/WRITE FLASH

g) A message box will appear displaying the message “Write Flash Finish”.
Click OK to finish, see Figure 3-21.
FIGURE 3-21:

DS50002542A-Page 216

MESSAGE BOX

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
3.4.3

BLE Connection to a Smartphone

This section lists the steps to put the BM70/71 into “Application/Run” mode after setting
up the configuration parameters. Perform the following actions to establish a BLE connection between the BM70/71 EVB and a smartphone. An iPhone with iOS9.2.1 is used
for this demonstration.
1. Download the mBIoT app from the App Store and enable the Bluetooth settings
on the iPhone (In this example illustration an iPhone was used, but a user can
do the same operation on an Android based smartphone).
2. Set switch SW7 to the OFF position (the P2_0 pin will be pulled high through an
internal pull up of IS1870/71 chip) on the BM70 EVB, see Figure 3-22.
FIGURE 3-22:

SW7 IN APPLICATION MODE

3. Connect the BM70 EVB to a PC using the micro-USB cable, see Figure 3-23.
LED6 (red) will turn ON solid when USB power is applied to the EVB. LED1 (blue)
will turn ON for 50 ms once every three seconds to visually indicate the device is
sending connectable advertising packets (standby mode).
Note:

Based on the default configuration parameters, the BM70/71 module is
setup to advertise for a max of 122 seconds (for more details, refer to
1.1.2.1.10 “Auto Operation – Discoverability”). If LED1 stops flashing/toggling, the device has entered into the Deep-sleep state and has
stopped sending advertising packets. Pushing the reset button will restart
the BM70/71 module and device will start to advertise again.

FIGURE 3-23:

 2016 Microchip Technology Inc.

POWER-ON BM70 EVB

DS50002542A-Page 217

BM70/71 Bluetooth® Low Energy Module User’s Guide
4. Enable the Bluetooth settings of the phone and then open the mBIoT app, see
Figure 3-24.
FIGURE 3-24:

DS50002542A-Page 218

ENABLING BLUETOOTH AND MBIOT APPLICATION

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
5. After the mBIoT app is opened, a user is presented with several choices for
communicating with different Microchip Bluetooth modules. Select BM70/BM71
BLE UART, see Figure 3-25.
FIGURE 3-25:

 2016 Microchip Technology Inc.

SELECT BM70/BM71 BLE UART

DS50002542A-Page 219

BM70/71 Bluetooth® Low Energy Module User’s Guide
6. A list of discoverable devices will be displayed; select the device with the name
BM70_BLE to connect with BM70 module, see Figure 3-26.
FIGURE 3-26:

DISCOVERED DEVICES VIEW

7. Under Connected Device, tap BM70_BLE connected for the device
information feature, see Figure 3-27
FIGURE 3-27:

DS50002542A-Page 220

CONNECTED DEVICE VIEW

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
8. Select Device Info to check the device information, see Figure 3-28.
FIGURE 3-28:

 2016 Microchip Technology Inc.

DEVICE INFORMATION

DS50002542A-Page 221

BM70/71 Bluetooth® Low Energy Module User’s Guide
9. The device information will be displayed, showing the BLE connection has been
made between the phone app and the BM70 module, see Figure 3-29.
FIGURE 3-29:

DEVICE INFORMATION

10. The BLE link connection is established between the BM70 EVB and an iPhone,
see Figure 3-30.
FIGURE 3-30:

DS50002542A-Page 222

BLE LINK CONNECTION

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
3.5

FIRMWARE PROGRAMMING PROCEDURE
Programming the firmware is required to update to a newer version, or to load a specific
version into the device. This section describes the process of programming firmware
into the IS1870/71 IC on the BM70/71 module. Microchip provides a PC based tool,
referred to as the “ISUpdate_Tool.exe”, for performing the firmware programming
operation. This tool inputs the firmware hex image files (see 3.4.1.2 “Software
Requirements” for getting firmware hex images) for the BM70/71 and uses the Programming Protocol (see 2.5 “Programming Protocol”) to program them into the
device.

3.5.1

Programming Procedure

The procedure shows an example of the work flow for programming firmware into the
device. This demonstration programs version 1.03 of the firmware into the BM70 module on the EVB. This demonstrated work flow can be repeated for any firmware version
compatible with the BM70/71 module. To program firmware, perform the following
actions:
1. Download the Firmware_SoftwareTools_Vx.xx.zip file from the Microchip website: www.microchip.com/BM70 for the BM70 EVB and
www.microchip.com/BM71 for the BM71 EVB. Unzip the file and locate the firmware update tool called ISUpdate_Tool.exe under the “Firmware_FirmwareTools/” sub-folder. Locate the firmware hex image files with the file extension
“*.H00, *.H01, *.H02, and *.H03” under the sub-folder “Firmware_FirmwareTools/Firmware/”. In the following example, firmware version 1.03 will be
programmed into the BM70 module. The firmware update tool and firmware hex
images will be required for this example.
2. Set switch SW7 in the ON position (refer to 2.2 “BM70/71 Mode Selection”),
see Figure 3-31.
FIGURE 3-31:

SW7 IN TEST MODE

3. Ensure that jumpers, J1, JP8 and J3 on the BM70 EVB are connected, as
illustrated in Figure 3-18.
4. Connect the BM70 EVB to a PC using a micro-USB cable, see Figure 3-32. On
connection, LED6 (red) and LED1 (blue) will turn on. Press the Reset button
(SW5) to reset the BM70 module.

 2016 Microchip Technology Inc.

DS50002542A-Page 223

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE 3-32:

FIRMWARE PROGRAMMING SETUP

5. Open the firmware update tool isupdate.exe. Select the COM port and set the
following parameters in the tool (see Figure 3-33):
- Baud Rate: 115200
- Memory type/subtype: Flash/Embedded Flash
- Address: 0x0000
6. Click Connect. On successful connection, the log window will show the string
“Port connect -> COM x” message will be displayed, see Figure 3-33.
FIGURE 3-33:

DS50002542A-Page 224

FIRMWARE UPDATE TOOL WINDOW - PORT CONNECT

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
7. If the connection was not successful, the log window will show the string “Connect failed”. Verify the parameters input into the tool, press the reset push button
on the EVB, and try to “Connect” again, see Figure 3-34.
FIGURE 3-34:

 2016 Microchip Technology Inc.

FIRMWARE UPDATE TOOL WINDOW

DS50002542A-Page 225

BM70/71 Bluetooth® Low Energy Module User’s Guide
8. Click Browse to navigate to the folder where the firmware files (.hex) have been
downloaded from the Microchip website. In the Open dialog, select all the four
hex image files and then click Open, see Figure 3-35.
FIGURE 3-35:

DS50002542A-Page 226

SELECTING THE FLASH CODE FILES

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
9. In the Firmware Update tool window, click Update, see Figure 3-36.
FIGURE 3-36:

 2016 Microchip Technology Inc.

FIRMWARE UPDATE

DS50002542A-Page 227

BM70/71 Bluetooth® Low Energy Module User’s Guide
10. The Firmware Update tool will start writing the selected firmware files into the
device. Wait until the string “End of Write Memory!” with the elapse time is
displayed in the log window, see Figure 3-37.
FIGURE 3-37:

DS50002542A-Page 228

FIRMWARE UPDATE FINISH

 2016 Microchip Technology Inc.

BM70/71 PICtail™/PICtail Plus EVB
11. To verify the firmware version, enter the following parameters under the
Flash/EEPROM/MCU/AHB Access section, and then click Read, see
Figure 3-38:
- Address: 0x100E
- Length (Hex): 0x02
FIGURE 3-38:

 2016 Microchip Technology Inc.

ENTERING PARAMETERS

DS50002542A-Page 229

BM70/71 Bluetooth® Low Energy Module User’s Guide
12. The Data (Hex) box will display “01 03” and the log window will display the following string: “0x01 0x03”. This number represents the firmware version the
device has been programmed with, in this case version v1.03, see Figure 3-39.
FIGURE 3-39:

VERIFY FIRMWARE VERSION

13. After completing the firmware update, any configuration parameters will have
been lost. The user should reprogram configuration parameters back into the
device before switching to “Application/Run” mode.

DS50002542A-Page 230

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Appendix A. BM70 EVB Schematics
A.1

BM70 EVB REFERENCE SCHEMATICS
FIGURE A-1:

 2016 Microchip Technology Inc.

BM70 EVB SCHEMATICS

DS50002542A-Page 231

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE A-2:

DS50002542A-Page 232

BM70 EVB SCHEMATICS

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Appendix B. BM71 EVB Schematics
B.1

BM71 EVB REFERENCE SCHEMATICS
FIGURE B-1:

 2016 Microchip Technology Inc.

BM71 EVB SCHEMATICS

DS50002542A-Page 233

BM70/71 Bluetooth® Low Energy Module User’s Guide
FIGURE B-2:

DS50002542A-Page 234

BM71 EVB SCHEMATICS

 2016 Microchip Technology Inc.

BM70/71 BLUETOOTH®
LOW ENERGY MODULE
USER’S GUIDE
Appendix C. Commands Summary Quick Reference
C.1

QUICK REFERENCE OF HOST TO BM70/71 MODULE COMMANDS
Table C-1 provides all commands the host can send to the BM70/71 module.

TABLE C-1:

QUICK REFERENCE OF HOST TO BM70/71 MODULE
COMMANDS

Command Type
Common

Command Name
Read Local Information (opcode - 0x01)
Reset (opcode - 0x02)
Read BM70/71 Status (opcode - 0x03)
Read BM70/71 ADC Value (opcode - 0x04)
Into Shutdown Mode (opcode - 0x05)
Read Device Name (opcode - 0x07)
Write Device Name (opcode - 0x08)
Erase All Paired_Bonded Device Information
(opcode - 0x09)
Read Pairing Mode Setting (opcode - 0x0A)
Write Pairing Mode Setting (opcode - 0x0B)
Read All Paired_Bonded Device Information
(opcode - 0x0C)
Delete Paired_Bonded Device (opcode - 0x0D)
Digital Input\Output Control (opcode - 0x0E)
PWM Control (opcode - 0x0F)
Leave Configure Mode (opcode - 0x52)

GAP

Read RSSI Value (opcode - 0x10)
Write Advertising Data (opcode - 0x11)
Write Scan Response Data (opcode - 0x12)
Set Advertising Parameters (opcode - 0x13)
Set Scan Parameters (opcode - 0x15)
Set Scan Enable (opcode - 0x16)
LE Create Connection (opcode - 0x17)
LE Create Connection Cancel (opcode - 0x18)
Connection Parameter Update Request (opcode 0x19)
Disconnect (opcode - 0x1B)
Set Advertising Enable_Disable (opcode - 0x1C)
Read Remote Device Name (opcode - 0x1F)

 2016 Microchip Technology Inc.

DS50002542A-Page 235

BM70/71 Bluetooth® Low Energy Module User’s Guide
TABLE C-1:

QUICK REFERENCE OF HOST TO BM70/71 MODULE
COMMANDS (CONTINUED)

Command Type
GATT Client

Command Name
GATT Client - Discover All Primary Services
(opcode - 0x30)
GATT Client - Discover Specific Primary Service Characteristic (opcode - 0x31)
Read Characteristic Value (opcode - 0x32)
GATT Client - Read Using Characteristic UUID
(opcode - 0x33)
GATT Client - Write Characteristic Value
(opcode - 0x34)
GATT Client - Enable Transparent UART Service
(opcode - 0x35)

GATT Server

GATT Server - Send Characteristic Value
(opcode - 0x38)
GATT Server - Update Characteristic Value
(opcode - 0x39)
GATT Server - Read Local Characteristic Value
(opcode - 0x3A)
GATT Server - Read All Local Primary Services
(opcode - 0x3B)
GATT Server - Read Specific Local Primary Service (opcode - 0x3C)
GATT Server - Send Write Response (opcode 0x3D)
GATT Server - Read All Local Primary Services
(opcode - 0x3B)
GATT Server - Read Specific Local Primary Service (opcode - 0x3C)
GATT Server - Send Write Response (opcode 0x3D)

GATT Transparent
Pairing

Transparent UART Service - Send Data (opcode 0x3F)
Pairing - Passkey Entry Response (opcode 0x40)
Pairing - User Confirm Passkey Response
(opcode - 0x41)
Pairing - Pair Request (opcode - 0x42)

DS50002542A-Page 236

 2016 Microchip Technology Inc.

Commands Summary Quick Reference
C.2

QUICK REFERENCE OF BM70/71 MODULE TO HOST EVENT RESPONSES
Table C-2 provides all event responses the BM70/71 module can send to the host.
TABLE C-2:

QUICK REFERENCE OF BM70/71 MODULE TO HOST EVENT
RESPONSES

Event Type

Event Name

Pairing / Bonding

Pairing - Passkey Entry Request Event (opcode
- 0x60)
Pairing - Pair Complete Event (opcode - 0x61)
Pairing - Passkey Confirm Request Event
(opcode - 0x62)

GAP

Advertising Report Event (opcode - 0x70)
LE Connection Complete Event (opcode - 0x71)
Disconnect Complete Event (opcode - 0x72)
Connection Parameter Update Event (opcode 0x73)

Common

Command Complete Event (opcode - 0x80)
Status Report Event (opcode - 0x81)
Configure Mode Status Event (opcode - 0x8F)

GATT

Discover all Primary Services Event (opcode 0x90)
Discover Specific Primary Service Characteristic Declaration Event (opcode - 0x91)
Discover All Characteristic Descriptors Event
(opcode - 0x92)
GATT Server - Client Write Characteristic
Value Event (opcode - 0x98)
GATT Transparent - Received Transparent Data
Event Response (opcode - 0x9A)

 2016 Microchip Technology Inc.

DS50002542A-Page 237

Worldwide Sales and Service
AMERICAS

ASIA/PACIFIC

ASIA/PACIFIC

EUROPE

Corporate Office
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 480-792-7200
Fax: 480-792-7277
Technical Support:
http://www.microchip.com/
support
Web Address:
www.microchip.com

Asia Pacific Office
Suites 3707-14, 37th Floor
Tower 6, The Gateway
Harbour City, Kowloon

China - Xiamen
Tel: 86-592-2388138
Fax: 86-592-2388130

Austria - Wels
Tel: 43-7242-2244-39
Fax: 43-7242-2244-393

China - Zhuhai
Tel: 86-756-3210040
Fax: 86-756-3210049

Denmark - Copenhagen
Tel: 45-4450-2828
Fax: 45-4485-2829

India - Bangalore
Tel: 91-80-3090-4444
Fax: 91-80-3090-4123

France - Paris
Tel: 33-1-69-53-63-20
Fax: 33-1-69-30-90-79

India - New Delhi
Tel: 91-11-4160-8631
Fax: 91-11-4160-8632

Germany - Dusseldorf
Tel: 49-2129-3766400

Atlanta
Duluth, GA
Tel: 678-957-9614
Fax: 678-957-1455

Hong Kong
Tel: 852-2943-5100
Fax: 852-2401-3431
Australia - Sydney
Tel: 61-2-9868-6733
Fax: 61-2-9868-6755
China - Beijing
Tel: 86-10-8569-7000
Fax: 86-10-8528-2104

Austin, TX
Tel: 512-257-3370

China - Chengdu
Tel: 86-28-8665-5511
Fax: 86-28-8665-7889

Boston
Westborough, MA
Tel: 774-760-0087
Fax: 774-760-0088

China - Chongqing
Tel: 86-23-8980-9588
Fax: 86-23-8980-9500

Chicago
Itasca, IL
Tel: 630-285-0071
Fax: 630-285-0075
Cleveland
Independence, OH
Tel: 216-447-0464
Fax: 216-447-0643
Dallas
Addison, TX
Tel: 972-818-7423
Fax: 972-818-2924
Detroit
Novi, MI
Tel: 248-848-4000
Houston, TX
Tel: 281-894-5983
Indianapolis
Noblesville, IN
Tel: 317-773-8323
Fax: 317-773-5453
Los Angeles
Mission Viejo, CA
Tel: 949-462-9523
Fax: 949-462-9608
New York, NY
Tel: 631-435-6000
San Jose, CA
Tel: 408-735-9110
Canada - Toronto
Tel: 905-695-1980
Fax: 905-695-2078

DS50002542A-Page 238

China - Dongguan
Tel: 86-769-8702-9880
China - Guangzhou
Tel: 86-20-8755-8029
China - Hangzhou
Tel: 86-571-8792-8115
Fax: 86-571-8792-8116
China - Hong Kong SAR
Tel: 852-2943-5100
Fax: 852-2401-3431
China - Nanjing
Tel: 86-25-8473-2460
Fax: 86-25-8473-2470
China - Qingdao
Tel: 86-532-8502-7355
Fax: 86-532-8502-7205
China - Shanghai
Tel: 86-21-5407-5533
Fax: 86-21-5407-5066
China - Shenyang
Tel: 86-24-2334-2829
Fax: 86-24-2334-2393
China - Shenzhen
Tel: 86-755-8864-2200
Fax: 86-755-8203-1760

India - Pune
Tel: 91-20-3019-1500
Japan - Osaka
Tel: 81-6-6152-7160
Fax: 81-6-6152-9310
Japan - Tokyo
Tel: 81-3-6880- 3770
Fax: 81-3-6880-3771
Korea - Daegu
Tel: 82-53-744-4301
Fax: 82-53-744-4302
Korea - Seoul
Tel: 82-2-554-7200
Fax: 82-2-558-5932 or
82-2-558-5934
Malaysia - Kuala Lumpur
Tel: 60-3-6201-9857
Fax: 60-3-6201-9859
Malaysia - Penang
Tel: 60-4-227-8870
Fax: 60-4-227-4068
Philippines - Manila
Tel: 63-2-634-9065
Fax: 63-2-634-9069

Germany - Karlsruhe
Tel: 49-721-625370
Germany - Munich
Tel: 49-89-627-144-0
Fax: 49-89-627-144-44
Italy - Milan
Tel: 39-0331-742611
Fax: 39-0331-466781
Italy - Venice
Tel: 39-049-7625286
Netherlands - Drunen
Tel: 31-416-690399
Fax: 31-416-690340
Poland - Warsaw
Tel: 48-22-3325737
Spain - Madrid
Tel: 34-91-708-08-90
Fax: 34-91-708-08-91
Sweden - Stockholm
Tel: 46-8-5090-4654
UK - Wokingham
Tel: 44-118-921-5800
Fax: 44-118-921-5820

Singapore
Tel: 65-6334-8870
Fax: 65-6334-8850
Taiwan - Hsin Chu
Tel: 886-3-5778-366
Fax: 886-3-5770-955
Taiwan - Kaohsiung
Tel: 886-7-213-7828

China - Wuhan
Tel: 86-27-5980-5300
Fax: 86-27-5980-5118

Taiwan - Taipei
Tel: 886-2-2508-8600
Fax: 886-2-2508-0102

China - Xian
Tel: 86-29-8833-7252
Fax: 86-29-8833-7256

Thailand - Bangkok
Tel: 66-2-694-1351
Fax: 66-2-694-1350
06/23/16

 2016 Microchip Technology Inc.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : No
Encryption                      : Standard V4.4 (128-bit)
User Access                     : Print, Copy, Annotate, Fill forms, Extract, Print high-res
Author                          : Microchip Technology Inc.
Create Date                     : 2016:10:18 08:28:30Z
Keywords                        : BM70/71 Bluetooth Low Energy Module User's Guide, DS50002542A, DS50002542, 50002542A, 50002542
Modify Date                     : 2016:10:19 16:17:10-07:00
XMP Toolkit                     : Adobe XMP Core 5.6-c015 84.158975, 2016/02/13-02:40:29
Creator Tool                    : FrameMaker 12.0.4
Metadata Date                   : 2016:10:19 16:17:10-07:00
Format                          : application/pdf
Title                           : BM70/71 Bluetooth Low Energy Module User's Guide
Description                     : BM70/71 Bluetooth Low Energy Module User's Guide
Creator                         : Microchip Technology Inc.
Subject                         : BM70/71 Bluetooth Low Energy Module User's Guide, DS50002542A, DS50002542, 50002542A, 50002542
Producer                        : Acrobat Distiller 15.0 (Windows)
Document ID                     : uuid:d8817cda-fcd9-41d9-ae7e-682602ee4610
Instance ID                     : uuid:e75132aa-00dd-475e-9099-5f3882e4ba33
Page Mode                       : UseOutlines
Page Count                      : 238
EXIF Metadata provided by EXIF.tools

Navigation menu