BL651 Series Bluetooth Module

Recommended for New Design (RND)


Laird Connectivity’s BL651 Series contains the latest Nordic nRF52810 silicon with Bluetooth 5 Low Energy capabilities and groundbreaking ultra-low power performance. Building on Laird Connectivity’s multi generation module developments utilizing Nordic silicon (BL600, BL652, BL654) – now comes the latest series offering cost effective Bluetooth 5 enablement for simple Bluetooth LE applications. 

The BL651 series exposes all the capabilities of the Nordic nRF52810 silicon in a small, fully certified module with simple soldering castellation for easy prototyping and mass production manufacturing. Use the Nordic SDK & SoftDevice or Zephyr Project to deliver your Bluetooth LE application. 

Let Laird Connectivity’s innovative BL651 series and decades of expertise in Bluetooth module design speed your product to market.

In addition the BL651 series is 100% PCB footprint drop in compatible with the BL652 series of modules.


Antenna Options
Integrated (453-00005) or External via IPEX MHF4 (453-00006)
BLE Connections
Bluetooth Version
BT Class
Nordic nRF52810
Dimension (Height - mm)
2.1 mm
Dimension (Length - mm)
14 mm
Dimension (Width - mm)
10 mm
Dual Mode
32 configurable lines
Link Budget
100dB (conducted)
Logical Interfaces
Operating Temp (Max) (°C)
85 °C
Operating Temp (Min) (°C)
-40 °C
Peripheral Role
Processor On Board
Cortex M4
Programming Options
Nordic SDK or Zephyr
Receive Sensitivity
-96dBm (1mpbs)
Stack On Board
Transmit Power
4 dBM (max.) Configurable down to -40 dBm
Wi-Fi Coexistence
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Bulk or Single Type
453-00005 Embedded Module Bluetooth 5.0, Single Mode (BLE) Nordic SDK, Zephyr Hostless Nordic nRF52810 Internal Serial, GPIO, I2C, SPI, ADC, PWM 2402 MHz 2480 MHz Bulk - Tape/Reel Module
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Bulk or Single Type
453-00005C Embedded Module Bluetooth 5.0, Single Mode (BLE) Nordic SDK, Zephyr Hostless Nordic nRF52810 Internal Serial, GPIO, I2C, SPI, ADC, PWM 2402 MHz 2480 MHz Bulk - Cut Tape Module
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) Antenna Options Bulk or Single Type
453-00006 Embedded Module Bluetooth 5.0, Single Mode (BLE) Nordic SDK, Zephyr Hostless Nordic nRF52810 External Serial, GPIO, I2C, SPI, ADC, PWM 2402 MHz 2480 MHz 13.56 MHz 13.56 MHz IPEX MHF4 Bulk - Tape/Reel Module
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) Antenna Options Bulk or Single Type
453-00006C Embedded Module Bluetooth 5.0, Single Mode (BLE) Nordic SDK, Zephyr Hostless Nordic nRF52810 External Serial, GPIO, I2C, SPI, ADC, PWM 2402 MHz 2480 MHz 13.56 MHz 13.56 MHz IPEX MHF4 Bulk - Cut Tape Module
Additional Description
453-00062-K1 USB-SWD Programming Kit: Includes mainboard, TC2050-IDC Tag Connect cable, 10-pin flat IDC cable, 1.2 m USB cable, and 2-pin jumper

Photo Gallery






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

Talk to an Expert


Name Part Type Last Updated
BL651 Product Brief All Product Brief 10/08/2021
Datasheet - BL651 All Datasheet 02/21/2021
Application Note - Guidelines for Replacing Antennas v1.0 All Application Note 01/17/2019
BL651 3D Models (453-00005).zip All Documentation 01/17/2019
BL651 3D Models (453-00006).zip All Documentation 01/17/2019
BL651 Host Land Pattern.pdf All Documentation 01/17/2019
BL651 Mechanical Diagram.pdf All Documentation 01/17/2019
BL651 PCB Footprint and SCH All Documentation 01/17/2019
EU Certifications - BL651 All Certification 08/10/2021
FCC Certifications - BL651 All Certification 12/14/2020
ISED (Canada) Certifications - BL651 All Certification 12/14/2020
MIC Certifications - BL651 All Certification 12/14/2020
AS/NZS Certifications - BL651 All Certification 12/14/2020
RoHS 3 - Bluetooth All Certification 01/04/2022
Regulatory Information - BL651 All Certification 02/11/2022
ISED ICES-003 Issue 7 Declaration of Compliance All Certification 05/18/2021
PCN 10A-2021 - BL651 Series All Documentation 10/13/2021
Application Note - BT 5.x Feature Comparison for Laird Connectivity Bluetooth Modules All Documentation 02/24/2022


Is it possible to use AT commands to configure BL651?

The BL651 cannot be configured using AT commands, as the AT command set available with the BL65x modules requires loading a smartBASIC Application. Because of the limited Flash and RAM available on the BL651 it cannot support the smartBASIC firmware and therefore, the AT Interface application cannot be loaded to the module. It must be programmed using any of the developer platforms that support working with the nRF52810, such as Nordic SDK, Zephyr Project, or MyNewt, among others. All of these platforms require flashing the BLE application via the JTAG Interface, therefore it is required that you bring out the JTAG interface in order to program the BL651 module for BLE operation.

Is there a DVK for the BL651 module?

We do not offer a DVK for the BL651, however, as the BL651 and BL652 are pin for pin compatible, the DVK-BL652 can be used during development as the development platform. It is important you keep in mind that the BL651 has half the flash/RAM so it cannot support any central role functions such as scanning and initiating connections, and it is not capable of supporting smartBASIC firmware, therefore it will be necessary to flash the DVK with custom firmware, via the JTAG interface, based on the development platform that you elect to work with.

BL651 software development can be completed with any platform that supports working with the nRF52810 such as Nordic SDK, Zephyr Project or MyNewt to name a few.

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.

Where can I download UwTerminal as referenced in the BT900 or BL600 User Guides?

The BT900 and BL600 documents refer to the UwTerminal utility which was the primary utility when these documents were written. This utility is still available in the firmware zip files when they are downloaded from the BT900 Product Page or BL600 Product Page .

However, UwTerminalX is the new improved version of UwTerminal offering additional features not available in predecessor UwTerminal. We recommend working with UwTerminalX as it will support all the features mentioned in the BT900 documentation and offer the additional features, such as access to online Xcompilers.

The latest release of UwTerminalX can be downloaded from our GitHub Repository: UwTerminalX/releases


Where are BL651 Sample Applications Located?

The BL651 is for simple BLE applications, and does not support smartBASIC firmware due to its limited flash. Therefore, if you will be working with the BL651 you would need to program the module using a platform which supports working with Nordic's nRF52810 such as the Nordic SDK or Zephyr Project. Both Nordic and Zephyr Project offer sample code when you download and install their platform. Software development support requests will need to be directed to the resources for the platform selected.

Does Laird have example code for a Windows Demo App which enables scanning and connecting to Bluetooth Low Energy peripheral IoT devices?

Unfortunately, we do not have an example of a Windows Bluetooth Low Energy application. If you require assistance with developing a Windows Bluetooth Low Energy application please contact one of our Sales Experts and let them know you are interested in a Design Services engagement and we will be happy to discuss your application requirements and provide a quote.

How Can I Change the BL65x Tx Power Setting

The BL65x is delivered with the smartBASIC runtime FW loaded and no smartBASIC application. The BL65x will boot up in interactive mode and can be configured via AT Commands. In this mode the TX Power for both advertisements and connections is controlled via Config Register 109. This register is read from or written to via the AT+CFG AT command as is described in the BL654 smartBASIC Extensions Users Guide. However, Config register 109 is valid for Tx Power adjustment when Virtual Serial Port services is enabled.

If Virtual Serial Port Services is not enabled TX Power is configured via the BleTxPowerSet() function within a users smartBASIC application code. In this mode the current setting of Tx Power can be obtained from ATI register 2008 as described in the BL654 smartBASIC Extensions Users Guide

How can I update and send Extended or Normal Advertisement data using AT Interface application?

In AT Interface there are just a few commands for modifying and sending Extended or Normal Advertisement data. Extended Advertisement Data is provided from the Server to the Scanner via Scan Request and Response PDU’s. An AD Element needs to be created to add the AD report that is returned after a scan request is received. To add AD Elements to the Advert Report use AT Command:

AT+AARA tag,”payload”

Tag refers to the Data Type Value specified in the Bluetooth SIG Generic Access Profile document. Using a tag of Data Type Value of 0xFF <Manufacturing Specific Data> the command will look like:

AT+AARA 0xFF “payload”


AT+AARA 255 “payload”

Once the AD Report is updated it must be committed using:


To begin Extended Advertisements use AT Command:

AT+EADV <advProp>,<advIntvlMs>,<maxCount>,<priSecPhy>,<peerAddr>, <chanMask>

Refer to AT Interface Guide for more details of parameters.

For now the key parameter is <advProp>. <advProp> is a bitmask where bit 0 is set for connectable adverts, bit 1 is set for scannable adverts, bit 2 for directed adverts and in that case ‘peerAddr’ must be a valid 14 hex digit string and bit 3 is set for extended adverts. For this example AT Command:


This command will begin sending non-connectable Extended Advertisements using default values for remaining fields which are taken from their corresponding S Registers.

To clear AD Elements when new advertisement data needs to be sent use AT Commands:


followed by


This will clear existing AD Elements. If the need to maintain current AD Elements for the Advert report but additional AD Elements need to be added to the Advert Report then simply continue adding AD Elements using





How many I2C ports does the BL65x support

The BL65x Data sheet lists two I2C controllers (up to 400 Kbps) are supported. The data sheet is provided as a hardware guide and refers to the hardware itself. The Nordic nRF528xx BLE mcu’s support multiple I2C controllers. However, the actual number of I2C interfaces depends on what SW is used for application development. If using smartBASIC for development there is one I2C instance and that instance is a master, there is no slave support.

Referring to the smartBASIC Extensions guide for the various BL65x modules it states:

Note I2COpenEx() allows for SCL and SDA to be routed to other GPIO pins.

This function uses the same I2C instance but allows changing the pins it is operating on. The smartBASIC I2C driver does not support a second instance. The intent of this function is so multiple devices with the same I2C address can be used. Some devices support a single address, some have multiple addresses they can use. If a sensor with 2 possible addresses is used then a third cannot be added on the same bus because the address of 2 devices will clash, but it can be used on different pins. Another example is if one sensor only supports 100KHz mode but another that supports 250KHz. Different busses would need to be used so that the 250KHz signals do not cause undefined operation for the 100KHz sensor

For applications developed using Nordic SDK or Nordic Zephyr SDK then I2C interfaces supported by the particular nRF528xx BLE MCU can be used. Both master and/or slave operation is also supported. Refer to the nRF828xx data sheet for details.

Issues with Flashing custom firmware to BL65x using Segger Embedded Studios IDE

The BL652, BL653, and BL654 modules come preloaded with our smartBASIC firmware. When flashing custom firmware using Segger IDE it is necessary to do a full erase of the Laird BL65x module before programming the module. This can be accomplished using the NRFJPROG command line tool to send the command nrfjprog --eraseall.

Can I use Windows to scan for my BLE Peripheral and Connect to it?

Laird does not provide a Windows utility for scanning and connecting to BLE devices. We are also not aware of any existing third party apps to do this either. Android and iOS are the best options for scanning for and connecting to BLE radios. 

Can the BL5340 or BL65x use a different stack to support a hosted application?

Theoretically as long as whoever 3rd party BLE stack is used is tested and supported on Nordic nRF5340 or nRF528xx used on BL65x modules.

Laird would not have tested anything other than Zepher/nRF SDK.

A 3rd party CODEC could be used as well as long as it is targeted for nRF5340. However, licensing would need to be considered.

How do I select the 32.768kHz Low Power Clock Source in the new nRF Connect SDK

Customers using the new nRF Connect SDK from Nordic will need to change the low power 32kHz clock source when working with the BL65x family of products.

To do this in the new SDK using the Segger IDE follow the instructions here;

  1. In Segger Embedded Studio select Project --> Configure nRF Connect SDK Project 
  2. Filter the list for 'osc' or drill down in the list to the Device Drivers --> Hardware clock controller support --> NRF Clock controller support --> 32KHz clock source
  3. Select the clock source based on your configuration/design:
    1. Without the optional external 32khz xtal, default configuration for our modules, select 'RC Oscillator'
    2. With the external 32Khz xtal connected to the module, select 'Crystal Oscillator'


With the correct value selected your code should build with the right clock source configuration and your application should run smoothly.

What does the Bluetooth message "advertised data length corrected" indicate?

This is effectively a Bluetooth SPAM message. It indicates the advert data being parsed is less than a full advert record can be, in other words trailing zeroes were removed.

Can Pullups or Pulldowns be Disabled on Default UART Pins

The BL65x is delivered with the smartBASIC runtime FW loaded and no smartBASIC application. In this configuration the module will boot into smartBASIC Interactive mode and the default pins for the UART at startup are set as per:

  • RTS: digital out, no pull, default high
  • TXD: digital out, no pull, default high
  • CTS: digital in, pull down
  • RXD: digital in, pull up

Startup flow is as follows:

  • sB engine starts
  • If there is no autorun application - UART is opened (default parameters)
  • If there is an autorun application - UART is not opened
    • If the autorun application uses print - UART is opened (default parameters)
    • If the autorun application uses UARTOPEN - UART is opened (custom parameters)


The pull up/down options can be changed in the smartBASIC application only when the UART is not open. If the $autorun application has opened the UART by using a print statement or calling UARTOPEN() then the UART must first be closed by calling the UARTCLOSE() function.

In the smartBASIC application when the UART port has been closed the code can call GpioSetFunc() to configure the desired GPIO parameters.

The smartBASIC application can use UARTOPEN() function to now enable the UART port. UARTOPEN() does not configure GPIO pull up/down configurations keeping the desired GPIO configurations intact.

How many SPI Interfaces does the BL65x support

The BL654 Data sheet lists four SPI Interfaces (up to 8 Mbps) are supported. The data sheet is provided as a hardware guide and refers to the hardware itself. The Nordic nRF52840 MCU supports up to 4 SPI instances. However, the actual number of SPI interfaces depends on what SW is used for application development. If using smartBASIC for development there is one SPI instance that can be configured as SPI master.

The SPI port is opened via smartBASIC function SPIOPEN(). This function includes parameters that allow configuration of SPI Mode, SPI Clock Rate and SPI Flags. SPI pins cannot be configured and use the pins that are specified in the BL65x Data Sheet. Refer to smartBASIC Core Functionality Specification. SPI_CS is not controlled in smartBASIC firmware and must be controlled by the application through use of SIO pins.

For applications developed using Nordic SDK or Nordic Zephyr SDK the nRF528xx MCU supports up to 4 SPI Instances. There can be up to 4 SPI Master interfaces (SPIM Master) and up to 3 SPI Slave interfaces (SPIS) but not all at once. There are four total SPI interfaces and master/slave combinations are shared across those four instances. The nRF528xx also contains two I2C Instances which are shared with the two lower SPI instances via TWI. Refer to the latest nRF52xx data sheet for details.

Why are multiple EMPTY_PDU are being sent from the Master per connection interval?

The communications protocol for Bluetooth is a ping pong type style, so every connection event begins with the Master sending the slave a packet and the Slave then responds to that packet with any data it may have. Therefore, when the Master has no data to transmit it will send an EMPTY_PDU to the Server and the Server, if it has data to send, will send back the data in response. You can see this readily where there is no data transmissions, the Master and Slave ping pong EMPTY_PDU’s back and forth on every connection event, if Slave Latency was incorporated then during these periods of no data transmissions you would see Master send EMPTY_PDU and no response from Slave because it has no data to send and was allowed to skip the connection event because of it.

Do I still have to list/qualify my product with the BT SIG even if I don't use the BT logo?

Yes, you need to qualify/list any product that uses BT SIG intellectual property, even if you do not use the logo or require interoperability with other BT devices. see here for more details. Qualify Your Product | Bluetooth® Technology Website


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. 

What influence does the client have when it comes to notifications?

The Client must initiate the ability of the Server to send Notifications by writing to the CCCD descriptor for the Notified Characteristic on the Server.

How can I read out the MAC address from a BLE module during test/production?

A fast and convenient way to read out the MAC address of each module during a test/production process would be through SWD from FICR (Factory information configuration registers) registers DEVICEADDR[0] and DEVICEADDR[1]. The following command will read the MAC address from our BLE modules:

nrfjprog --memrd 0x100000A4 --w 8 --n 6

Please note that reading from memory through SWD will halt the CPU. If you need your application firmware to start afterwards (like for performing some test sequence) you would have to run the CPU with

nrfjprog –run

More information on FICR registers are available in the respective data sheets, like this for nRF52840 / BL654.

What factors influence the actual TX rate of the controller?

The actual TX rate is influenced by the PDU and MTU sizes along with the Connection Intervals and Slave Latency.

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.

How do I program BL65x modules in production or in the field (Tag-Connect)?

Consider using a PCB pad layout with support for Tag-Connect for JTAG which allows for easy, low cost programming in production or in the field.

Note: Laird recommends you use JTAG (2-wire interface) to handle future BL65x module firmware upgrades. You MUST wire out the JTAG (2-wire interface) on your host design , where four lines should be wired out, namely SWDIO, SWDCLK, GND and VCC. Firmware upgrades can still be performed over the BL65x UART interface, but this is slower (60 seconds using UART vs. 10 seconds when using JTAG) than using the BL65x JTAG (2-wire interface).

Is there a way to extend the shelf life of Laird modules?? If the shelf life cannot be extended in any way, what are the consequences of using modules after shelf life?

The shelf life statements are essentially to prevent mishandling of the product and not storing it properly. If the modules are still sealed in the package, stored at the proper temperature and have not been exposed to moisture they should be fine. However, when working with modules beyond their shelf life you MUST bake the modules before populating the them to your board. Failure to bake the modules could result in the yield rate dropping down lower than expectation due to popcorn or de-lamination on the modules. It is recommended that you follow IPC/JEDEC J-STD-033 which is the general standard for the handling, packing, shipping and use of moisture/reflow sensitive surface mount devices.

Our main concern is around the castellation/pads which solder the module to the board. It is imperative those pads do not get tarnished, as this would cause soldering issues. Humidity can affect solderability as well, as if there is any excess moisture in the solder on the module, during reflow of the module to the board, steam balls can essentially explode the solder and sometimes result in an open circuit (or possibly a short circuit).

As long as all of the moisture handling and temperature guidelines are being followed you will likely have no issues. It is further recommended that when you do the build with modules that have exceeded their shelf life that you start with a handful to perform a test run and do a final test to make sure all is working as expected. As long as there are no issues with the initial test run we would expect that you will not experience any problems.

Why is the data I am sending in an advertisement PDU seem to be received as converted ASCII data?

When sending extended or normal advertisements by setting AD Elements for scan or advertise response PDU’s using AT+AARA tag,<payload> or At+ASRA tag, <payload> the parser is expecting the payload to be a string enclosed by quotes.

However, how do you differentiate between a normal text string and a string of ASCII hex?

Is FF 0x46 0x46

Or is it


For example if the data added in the response packet is:

T+AARA tag, “BEEF”

The parser interprets this as a four byte string of 0x42, 0x45, 0x45, 0x46

If the command is changed to:

At+AARA tag, “\BE\EF” the parser would interpret this as a two byte string of 0xBE, 0xEF. The slash interprets the following two characters as ONE hex byte.