BL653 Series Bluetooth 5.1 + 802.15.4 + NFC Module
Overview
Laird Connectivity’s new BL653 series enables Industrial OEMs to robustly implement longer range BLE applications in the harshest operating environments. This series of secure low power, microcontroller modules with multi wireless capabilities is the future of wireless Industrial Internet of Things (IIoT) connectivity.
Powered by Nordic’s nRF52833 silicon, the small form factor BL653 modules and DVKs provide for a secure, robust BLE and Cortex -M4F CPU for any OEM’s product design. The BL653 provides you with maximum development flexibility with programming options for the Nordic SDK or Zephyr RTOS, a simple, intuitive AT command set, as well as Laird Connectivity’s own smartBASIC environment.
The BL653 series brings out all nRF52833 hardware features and capabilities including USB access, up to +8 dBm transmit power up to 5.5V supply considerations, and NFC tag (type 2 / 4) implementation. Complete regulatory certifications enable faster time to market and reduced development risk completes Laird Connectivity’s simplification of your next Bluetooth design!
Unboxing the BL653 Development Kit
Specifications
Product Type | Technology | OS/Software | System Architecture | Chipset (Wireless) | Antenna Type | Logical Interfaces | Frequency Range (Min) | Frequency Range (Max) | Frequency Range 2 (Min) | Frequency Range 2 (Max) | Additional Description | Bulk or Single | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
453-00039-K1 | Development Kit | Bluetooth 5.1, Single Mode (BLE), NFC | Nordic SDK, smartBASIC, AT Commands, Zephyr | Hostless | Nordic nRF52833 | Internal | Serial, GPIO, ADC, I2C, SPI, PCM, I2S, NFC, PWM, USB | 2402 MHz | 2480 MHz | 13.56 MHz | 13.56 MHz | Development Kit for Bluetooth 5.1 BLE Module | Single |
Product Type | Technology | OS/Software | System Architecture | Chipset (Wireless) | Antenna Type | Logical Interfaces | Frequency Range (Min) | Frequency Range (Max) | Frequency Range 2 (Min) | Frequency Range 2 (Max) | Additional Description | Bulk or Single | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
453-00039C | Embedded Module | Bluetooth 5.1, Single Mode (BLE), NFC | Nordic SDK, smartBASIC, AT Commands, Zephyr | Hostless | Nordic nRF52833 | Internal | Serial, GPIO, ADC, I2C, SPI, PCM, I2S, NFC, PWM, USB | 2402 MHz | 2480 MHz | 13.56 MHz | 13.56 MHz | Bluetooth 5.1 BLE Module | Bulk (Cut Tape) |
Product Type | Technology | OS/Software | System Architecture | Chipset (Wireless) | Antenna Type | Logical Interfaces | Frequency Range (Min) | Frequency Range (Max) | Frequency Range 2 (Min) | Frequency Range 2 (Max) | Additional Description | Bulk or Single | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
453-00039R | Embedded Module | Bluetooth 5.1, Single Mode (BLE), NFC | Nordic SDK, smartBASIC, AT Commands, Zephyr | Hostless | Nordic nRF52833 | Internal | Serial, GPIO, ADC, I2C, SPI, PCM, I2S, NFC, PWM, USB | 2402 MHz | 2480 MHz | 13.56 MHz | 13.56 MHz | Bluetooth 5.1 BLE Module | Bulk (Tape/Reel) |
Product Type | Technology | OS/Software | System Architecture | Chipset (Wireless) | Antenna Type | Logical Interfaces | Frequency Range (Min) | Frequency Range (Max) | Frequency Range 2 (Min) | Frequency Range 2 (Max) | Additional Description | Antenna Options | Bulk or Single | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
453-00041-K1 | Development Kit | Bluetooth 5.1, Single Mode (BLE), NFC | Nordic SDK, smartBASIC, AT Commands, Zephyr | Hostless | Nordic nRF52833 | External | Serial, GPIO, ADC, I2C, SPI, PCM, I2S, NFC, PWM, USB | 2402 MHz | 2480 MHz | 13.56 MHz | 13.56 MHz | Development Kit for Bluetooth 5.1 BLE Module | Trace Pin (External Antenna) | Single |
Product Type | Technology | OS/Software | System Architecture | Chipset (Wireless) | Antenna Type | Logical Interfaces | Frequency Range (Min) | Frequency Range (Max) | Frequency Range 2 (Min) | Frequency Range 2 (Max) | Additional Description | Antenna Options | Bulk or Single | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
453-00041C | Embedded Module | Bluetooth 5.1, Single Mode (BLE), NFC | Nordic SDK, smartBASIC, AT Commands, Zephyr | Hostless | Nordic nRF52833 | External | Serial, GPIO, ADC, I2C, SPI, PCM, I2S, NFC, PWM, USB | 2402 MHz | 2480 MHz | 13.56 MHz | 13.56 MHz | Bluetooth 5.1 BLE Module | Trace Pin (External Antenna) | Bulk (Cut Tape) |
Product Type | Technology | OS/Software | System Architecture | Chipset (Wireless) | Antenna Type | Logical Interfaces | Frequency Range (Min) | Frequency Range (Max) | Frequency Range 2 (Min) | Frequency Range 2 (Max) | Additional Description | Antenna Options | Bulk or Single | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
453-00041R | Embedded Module | Bluetooth 5.1, Single Mode (BLE), NFC | Nordic SDK, smartBASIC, AT Commands, Zephyr | Hostless | Nordic nRF52833 | External | Serial, GPIO, ADC, I2C, SPI, PCM, I2S, NFC, PWM, USB | 2402 MHz | 2480 MHz | 13.56 MHz | 13.56 MHz | Bluetooth 5.1 BLE Module | Trace Pin (External Antenna) | Bulk (Tape/Reel) |
Certified Antennas
001-0022
FlexPIFA Flexible Adhesive-Backed PIFA Internal AntennaIndustry-first, flexible, planar inverted-F antenna for curved surfaces 2.5-3 dBi gain. 2.4 GHz and dual-band 2.4/5.5 GHz.
EFA2400A3S-10MH4L
mFlexPIFA Flexible Adhesive-Backed PIFA Internal AntennaFlexPIFA antenna for metal mounting with minimal detuning. 2.4 GHz and dual-band 2.4/5.5 GHz with 2 dBi of gain.
0600-00061
NFC Flex PCB Antenna
Become a Laird Connectivity Customer and Gain Exclusive Access to Our Design Services Team
- Antenna Scans
- Antenna selection and placement
- Custom antenna design
- Worldwide EMC testing / certifications
- Embedded RF hardware / firmware design
- Cloud architecture and integration
- Mobile application development
- Product & Industrial Design
Documentation
Do BL65x modules support Boundary Scan function?
Unfortunately, we do not offer Boundary Scan functionality on the BL65x modules.
We do understand it is harder to place and recommend during development the use of an X-ray or some other means to verify to soldering process.
Do I have to use the Segger branded debugger to program over the 2-wire SWD interface (JTAG) of the Nordic-based modules?
Yes, any programmer/debugger that supports the SWD 2-wire interface and the Cortex M4F processor should work with the Nordic-based modules. You can find information about the memory map in the nRF5xxxx Product Specification under the Memory and NVMC sections.
Do you have a smartBASIC example for Android or iOS devices such as smartphones or tablets?
smartBASIC is a programming language developed for our BT900 and BL6xx modules to simplify the code required for programming them. It is not used for developing Android or iOS device applications. BLE applications for Android and iOS devices would need to written in code specific to the Android or iOS platform.
Our, Laird Toolkit Application available for iOS and Android is currently in the process of being updated for Android and iOS to work with newer OS platforms.
Once it is complete we expect to make the source code available, to customers working with our smartBASIC modules, for reference when developing Apps for these platforms.
As of the writing of this FAQ the current version of the Laird Toolkit is still available on the App store for iOS and Google Play for Android, however, it may not work with newer versions of iOS or Android until the updates have been made.
Google Play Store
Apple Store
An alternate resource, the Nordic nRF Toolbox is also available from the iOS App Store and Google Play. The source code for this application is available from Nordic's Website.
nRf Toolbox
Android
iOS
How can BL65x module or dongle be used to receive data from a custom service running on another device?
Several Sample Applications are available from the corresponding BL65x-Applications folder on Laird Connectivity's GitHub repository, including an AT Interface sample application. The AT Interface sample application enables a quick way to configure a smartBASIC BL65x module using the commands available in the AT Interface User Guide to scan, connect, read the GATT table and receive data from the connecting device via the appropriate UUID for the custom service. We recommend referencing the AT Interface Quick Start Guide v1 0.pdf to get started with the AT Interface Application, which walks you through loading the application and a few of the basic commands, including initiating a vSP connection, (vSP is Laird's custom Serial UART application.) A non-vSP connection can be established using AT+LCON as per page 21 of the AT Interface User Guide.
Alternatively, a custom smartBASIC central application could be developed and loaded to the dongle to connect with the custom service by referencing the Core Functionality smartBASIC and modular Extension User Guides available on the corresponding Product Page for the module, for example:
User Guide - smartBASIC Core Functionality v3.4
BL654 smartBASIC Extensions Guide v29.4.6.0
Please note: the BL654 dongle comes in two variants, smartBASIC variant (451-00003) and Nordic/Zephyr variant (451-00004). If electing to work with the smartBASIC firmware and example applications available on the GitHub repository it will be necessary to purchase the 451-00003 smartBASIC variant, as smartBASIC applications cannot be loaded to the 451-00004 Nordic/Zephyr variant.
How can I connect a Bluetooth Low Energy Device to a PC?
Bluetooth Low Energy uses Services as opposed to the set of standardized profiles that exists for Classic Bluetooth. While some Bluetooth Low Energy services have been standardized by the Bluetooth SIG, the development of custom services is allowed to meet custom application requirements.
Because Bluetooth Low Energy uses a completely different protocol than Classic Bluetooth and supports custom services, Bluetooth Low Energy devices cannot connect to a computer through the typical Bluetooth configuration of a computer. Therefore, connecting to a PC requires writing and running a Bluetooth Low Energy Central Role/Client application to collect the data sent from the Bluetooth Low Energy peripheral modules. Application development for PCs and Mobile devices is outside the scope of our support. Alternatively, a BL654 USB dongle could be used as a BLE Central Role device, to collect the BLE data and pass it to the PC over a COM Port. However, you would still need an application to view and process the data received over that COM Port.
We generally recommend customers who are new to Bluetooth Low Energy obtain a copy of Getting Started with Bluetooth Low Energy to help them understand the Bluetooth Low Energy protocol and the GATT table. There are also many resources available online which explain this.
When Bluetooth Low Energy was first introduced and we launched our BL6xx product line (predecessors to the BL65x series) we produced the BL600 and BL620 smartBASIC Application Walkthrough document, which provides an overview of how Bluetooth Low Energy works and how a GATT table is constructed.
How do you change the BAUD rate in the AT Interface Application for BL65x smartBASIC modules?
The default baud rate in the AT Interface application is 115200. In order to change the baud rate within the AT Interface code there are two modifications required in the AT Interface files as shown below:
- Locate the following settings within the $autorun$.AT.Interface.BL652._.sb file which sets the baud to 115200 (highlighted):
#define SREGINIT_VAL32_0 "\4C\1D\00\00\98\3A\00\00\00\C2\01\00\00\20\00\00\01\20\00\00"
#define SREGINIT_MIN32_0 "\4C\1D\00\00\4C\1D\00\00\B0\04\00\00\01\00\00\00\01\00\00\00"
#define SREGINIT_MAX32_0 "\1E\04\3D\00\1E\04\3D\00\40\42\0F\00\FF\FF\00\00\FF\FF\00\00"
Modify the settings to set the Hex value for the desired BAUD rate in little endian format
The example below will set it to 9600 baud (0x00 0x00 0x25 0x80) as shown below (highlighted)
#define SREGINIT_VAL32_0 "\4C\1D\00\00\98\3A\00\00\80\25\00\00\00\20\00\00\01\20\00\00"
#define SREGINIT_MIN32_0 "\4C\1D\00\00\4C\1D\00\00\B0\04\00\00\01\00\00\00\01\00\00\00"
#define SREGINIT_MAX32_0 "\1E\04\3D\00\1E\04\3D\00\40\42\0F\00\FF\FF\00\00\FF\FF\00\00" - Locate the settings for S Register 302 in the $LIB$.SRegInterface.sb file: Modify the settings in
#cmpif 0x00010000 : rc=BleEncode32(SregCache32$[0],115200,offset)
to set the baud rate to the desired baud rate.
Is there protection from Hacking when using smartBASIC modules?
Our Bluetooth 5.0 smartBASIC modules (BL652, BL653, BL654) have the capability of supporting LE Secure Connections Pairing as well as encryption. LE Secure Connection is an enhanced security feature introduced in Bluetooth v4.2. It uses a Federal Information Processing Standards (FIPS) compliant algorithm called Elliptic Curve Diffie Hellman (ECDH) for key generation.
LE Secure Connections, supports four association models:
- Just Works
- Numeric Comparison (Only for LE Secure Connections)
- Passkey Entry
- Out of Band (OOB)
Additional information about LE Secure Connections and the models can be found here: www.bluetooth.com.
Our Bluetooth 4.0 smartBASIC modules (BT900 /BL600 /BL620) support Simple Secure Pairing and Encryption
Additional information about Simple Secure Pairing can be found here:
lairdconnect.com/resources/newsroom/secure-ble-pairing-iot
lairdconnect.com/resources/white-papers/ble-and-lairds-bl6x0-series-bt900-modules-guide-security-and-privacy
We recommend reviewing the Pairing, Bonding and Security Manager functions in the BL6xx/BT900 smartBASIC Extensions User Guides. The full security of the Bluetooth/Bluetooth Low Energy connection will depend largely on how the smartBASIC application is written, and what the input/output capabilities are of the devices that are connecting. If either device will not have any input/output capabilities then pairing will have to default to Just Works, which is the least secure pairing method. However there are additional layers of security that can be added to increase protection from hacking when the Just Works pairing model is used.
With Bluetooth Low Energy, to further secure the connection, it is recommended that the metadata for the characteristic attributes are configured for Encryption with man-in-the-middle protection for characteristic value access. This will prevent anyone from accessing data on the module without proper encryption keys. (See BleAttrMetadataEx
in the BL6xx/BT900 smartBASIC Extensions User Guides.) Additionally, when using Just Works pairing, or any time additional security is required, we recommend adding a challenge/response question to the application layer, with a timer, which expects the connecting device to respond to the challenge question in a specified period of time after a connection has occurred. If the correct response is not received within that time period the application would force a disconnection. Finally, whisper mode pairing can be used during the pairing process as an additional layer of security. This is accomplished by reducing the Tx power while pairing using BleTxPwrWhilePairing
as per the BL6xx/BT900 smartBASIC Extensions User Guide, which will reduce the radius which a hacker would need to breach in order to capture or spoof the encryption procedure.
What is the easiest way to change the advertised Device Name in a smartBASIC Application?
Changing the advertised device name is accomplished using three different functions prior to calling the BleAdvertStart () function.
First, the BleGapSvcInit () function is used to change the device name from the default, Laird [BL600 | BT900], to the desired device name.
Next, the BleAdvRptInit () funtion must be called to create and initialize the advert report with the new device name.
Finally, the BleAdvRptsCommit () function must be called to commit the changes.
Below is an example of a simplified smartBASIC app which changes the default device name to "My Device":
//******************************************************************************
// Laird Connectivity
// Rikki Horrigan
//******************************************************************************
//******************************************************************************
//Definitions
//******************************************************************************
//******************************************************************************
//Global Variable Definitions
//******************************************************************************
dim rc //result code
dim nameWritable
dim nAppearance
dim nMinConnInterval
dim nMaxConnInterval
dim nSupervisionTout
dim nSlaveLatency
//******************************************************************************
// Initialize Global Variable
//******************************************************************************
nameWritable = 0 //The device name will not be writable by peer.
nAppearance = 1091 //Device will apear as Walking sensor on hip (org.bluetooth.characteristic.gap.appearance.)
nMinConnInterval = 500000 // must be smaller than nMaxConnInterval.
nMaxConnInterval = 1000000 //must be larger than nMinConnInterval
nSupervisionTout = 4000000 //Range is between 100000 to 32000000 microseconds (rounded to the nearest 10000 microseconds)
nSlaveLatency = 0 //value must be smaller than (nSupervisionTimeout/nMaxConnInterval)-1
//******************************************************************************
//Functions & Subroutines
//******************************************************************************
//ERROR HANDLER
SUB assertRC(rc, line)
IF rc != 0 THEN
PRINT "\nError on line ";line;", code: ";INTEGER.H'rc
ENDIF
ENDSUB
// Change Device Name
FUNCTION OnStartup()
print "Default Device Name: "; BleGetDeviceName$ ();"\n"
dim deviceName$ //declare variable for DEVICENAME
deviceName$= "My Device" //Set new DEVICENAME
rc = BleGapSvcInit (deviceName$, nameWritable, nAppearance, nMinConnInterval, nMaxConnInterval, nSupervisionTout, nSlaveLatency )
print "\n New Device Name: "; BleGetDeviceName$ (); "\n"
//Create and Initializing the Advert Report (not advertised until BLEADVRPTSCOMMIT is called)
dim adRpt$ //advert report
adRpt$ = ""
rc = BleAdvRptInit(adRpt$, 2, 0, 16)
//Commit the advert report
dim scRpt$ //scan report
scRpt$ = ""
rc = BleAdvRptsCommit(adRpt$,scRpt$)
//Start Advertising
dim addr$
addr$ = ""
rc = BleAdvertStart(0,addr$,100,0,0)
ENDFUNC 1 // Remain in WAITEVENT
//******************************************************************************
//Handler Definitions
//******************************************************************************
//******************************************************************************
//OnEvent Statements
//******************************************************************************
//******************************************************************************
//Equivalent to Main() in C
//******************************************************************************
rc = OnStartup()
Waitevent