BM70 firmware (referred to as “BLEDK3”) offers the following operating modes:
Mode | Description |
---|---|
Auto Pattern mode | The BM70 module acts as a data pipe using the Transparent Universal Asynchronous Receiver Transmitter (UART) Service. |
Manual Pattern mode | The BM70 module behaves as a Generic Bluetooth® Low Energy (BLE) Link Controller. |
Beacon mode | Support Non-Connect advertising only. |
BeaconThings mode | BLEDK3 advertises iBeacon ADV and connectable ADV simultaneously in Standby mode. |
BM70 Power On Flow Chart
The following flow chart describes how the BM70 module enters the Manual and Auto Pattern modes.
Auto Pattern Mode
Auto Pattern mode uses a private built-in proprietary Generic Attribute Profile (GATT) service called the Transparent UART Service. This mode basically creates a virtual UART connection between the host MCU and smartphone apps. While the BLEDK3 is in Peripheral Role, it acts as a data pipe between the host MCU and a remote Central BLE device. It will package the received UART data as an Attribute Protocol (ATT) packet and send it to the remote device and vice versa. In Auto Pattern mode, the host MCU does not need to understand BLE protocol at all, it can send and receive raw data by UART transport directly once the Transparent Service is enabled. Auto Pattern mode only supports BLE Peripheral/Server role and built-in services.
To enter Auto Pattern mode we need to use the User Interface (UI) Configuration Tool. The UI Tool provides a friendly interface for you to edit parameters and the GATT Table of the BLEDK3. Once you have launched this tool, select Auto Pattern under the Operation Pattern setting. For more information on how to use the UI Configuration tool, visit the "BM70 Static Configuration (UI Configuration Tool)" page.
Generic Access Profile (GAP) service, Device Information Service, Beacon Service, and the proprietary Transparent Service (used for Auto Pattern mode) are built-in as default services on the BM70 module.
The BLEDK3 Auto Pattern Tool User Guide describes how to use the BM70 with Auto Pattern settings. It can be found on the Microchip Website in the Documents tab under the Software section (IS187x_BM7x Software Documentation). You can also refer to the BM70 Transparent UART Demo page to see an example of a few things you can do while the BM70 module is in Auto Pattern mode.
Manual Pattern Mode
Manual Pattern mode is the normal mode of operation and it is used when the application or host MCU would like to access and control more BLE GATT/GAP profiles. The host MCU uses the BM70 module as a BLE GATT modem in this mode and the module behaves according to the proprietary UART commands sent by the host MCU. Manual Pattern mode supports custom or pre-defined profiles as well as all roles (BLE Broadcaster, Observer, Central/Client, Peripheral/Server). All of the standard or proprietary services can be appended into BLEDK3 by using the UI Configuration Tool. The maximum number of attributes that can be added is 100.
To enable Manual Pattern mode operation, launch the UI Configuration tool and under the Operation Pattern setting, select Manual Pattern.
The BLEDK3 Manual Pattern Test Tool is a PC utility that may be used to emulate an MCU and evaluate command/response packets with a BM70 in Manual Pattern mode. It can be found on the Microchip Website in the Documents tab under the Software section (IS187x_BM7x Software Documentation). You can also refer to the BM70 GAP Peripheral Demo (Making Connections) page to see an example of how to use the BM70 in Manual Pattern mode.
Beacon
BLEDK3 can be configured as any kind of beacon device. While BLEDK3 operates in Broadcast mode, it can send non-connectable advertising packets. These kind of non-connectable advertising events are what we call beacons. Besides beacon behavior, BLEDK3 also supports an additional capability for a remote device to configure the advertising data called Beacon Admin. This means that the content of the broadcast can be configured over the air.
BeaconThings
Standard beacons are provisioned at a particular spot (like the coat rack at a store). When in proximity to a beacon, it invokes an application (such as a loyalty app) on your phone. The app can then communicate with the cloud and log that you are in a particular retail store and send you offers and incentive coupons. There is no two-way communication with the beacon.
BeaconThings is a firmware configuration in IS1870/71 based products and it is a concept designed to enhance user experience. It enables two-way communication between the smartphone and the beacon-enabled accessory. It works like a standard beacon and can invoke an app when an enabled smartphone is near. It also works as a peripheral and can exchange data with the smartphone app. The user just registers the BeaconThings accessories once in the app (during the first time device pairing procedure) and then almost no manual operation is needed, the BeaconThings accessories can be connected to the iOS device automatically.
There are three steps to approach the BeaconThings, all executed in the background:
- Launch app: An app will wake up since it has received and iBeacon ADV.
- Automatic BLE connection: App will scan the nearby peripherals with a specific Universally Unique Identifier (UUID) and connect to a suitable peripheral.
- BLE communication: The BLE data can be exchanged between the app and BeaconThings accessories.
While BLEDK3 operates in Discovery mode, BLEDK3 can send non-connectable advertising events and connectable undirected advertising events at the same time. Using the UI tool, the user can configure how the BLEDK3 will behave after a remote device has connected to it. You can either choose to stop sending non-connectable advertisements or continue enabling them. If non-connectable advertising events are disabled under the connected state, BLEDK3 will stop sending non-connectable advertising events once a connection is established and will resume sending them after the connection is terminated.