BL654 Series Bluetooth Module with NFC

Recommended for New Design (RND)

Overview

Building on Laird’s expertise with Nordic from the BL600 and BL652 series comes the most powerful yet -the BL654 series! It provides OEMs with the maximum design flexibility and performance. A complete multi-protocol embedded wireless offering with exceptional processing capability, all at a micro power budget. Powered by Nordic’s nRF52840 silicon, the small form factor BL654 modules, DVKs and USB Dongle provide for a secure, robust BLE and Cortex -M4F CPU for any OEM’s product design. The BL654 provides you with maximum development flexibility with programming options for the Nordic SDK, a simple, intuitive AT Command Set, as well as Laird’s own smartBASIC environment.

The BL654 series brings out all nRF52840 hardware features and capabilities including USB access, up to 5.5V supply considerations, and 802.15.4 (Thread) implementation. Complete regulatory certifications enable faster time to market and reduced development risk completes Laird’s simplification of your next Bluetooth design!

 

Secure, Efficient, and Optimized

  • Bluetooth 5.1 & Thread (802.15.4) - Bluetooth Low Energy (BLE) plus NFC, featuring Nordic nRF52840

  • Widest Range of Configurable Interfaces - UART, I2C, SPI, ADC, GPIO, PWM, FREQ, USB, and NFC

  • 2Mbps & LE Long Range - Support for 2Mbps, 1Mbps, & 125kps coded

  • Hostless Operation with Powerful Core - Internal MCU reduces BOM and Cortex-M4F (1Mbit Flash, 256k RAM)

  • Application Design Choice - Leverage Laird’s smartBASIC, simple AT Command Set or utilize Nordic SDK directly

  • USB Dongle Option - Packaged USB Adapter – bring full Bluetooth 5.1 connectivity to ANY device with a virtual COM port capability

Type Bulk or Single Antenna Connector Type
451-00001 Module Bulk - Tape/Reel Integrated Antenna
Type Bulk or Single Antenna Connector Type
451-00001C Module Bulk - Cut Tape Integrated Antenna
Type Bulk or Single Antenna Connector Type
451-00002 Module Bulk - Tape/Reel IPEX MHF4
Type Antenna Connector Type Bulk or Single
451-00002C Module IPEX MHF4 Bulk - Cut Tape
Type Antenna Connector Type Bulk or Single Dimension (Height - mm) Dimension (Width - mm) Dimension (Length - mm) Programming Options USB
451-00003 Pluggable USB Adapter Integrated Antenna Single 11 mm 18.39 mm 50.74 mm smartBASIC, AT Command Set, (Nordic SDK not supported) FTDI Based - Virtual COM Port
Antenna Connector Type Bulk or Single Dimension (Height - mm) Dimension (Length - mm) Dimension (Width - mm) Programming Options Type
451-00004 Integrated Antenna Single 11 mm 50.74 mm 18.39 mm Zephyr / Nordic SDK Pluggable USB Adapter
Type Antenna Connector Type Bulk or Single
455-00001 Development Board Integrated Antenna Single
Type Antenna Connector Type Bulk or Single
455-00002 Development Board IPEX MHF4 Single

Photo Gallery

451-00001

451-00001C

451-00002

451-00002C

451-00003

455-00001

455-00002

451-00004

Certified Antennas

  • mFlexPIFA Antenna

    EFA2400A3S-10MH4L

    mFlexPIFA Flexible Adhesive-Backed PIFA Internal Antenna

    FlexPIFA antenna for metal mounting with minimal detuning. 2.4 GHz and dual-band 2.4/5.5 GHz with 2 dBi of gain. 

    Learn More
  • FlexPIFA Antenna

    001-0022

    FlexPIFA Flexible Adhesive-Backed PIFA Internal Antenna

    Industry-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. 

    Learn More
  • FlexNotch Antenna

    001-0023

    FlexNotch 2.4 GHz Antenna
    Learn More

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

Documentation

Name Part Type Last Updated
Product Brief - BL654 Series All Brochure 02-04-20
Product Brief - BL654 USB for Nordic SDK / Zephyr All Brochure 07-25-19
Product Brief - BL654 USB with smartBASIC All Brochure 07-25-19
Datasheet - BL654 v1.13 All Datasheet 05-20-20
User Guide - BL654 USB with smartBASIC All Brochure 07-25-19
User Guide & Quick Start Guide - BL654 DVK All Brochure 03-20-20
User Guide - smartBASIC Core Functionality v3.4 All Documentation 06-22-20
BL654 smartBASIC Extensions Guide v29.1.1.0 All Documentation 08-15-19
BL654 smartBASIC Extensions Guide v29.2.2.0 All Documentation 08-15-19
BL654 smartBASIC Extensions Guide v29.3.3.0 All Documentation 08-15-19
AT Interface Quick Start Guide v1 0.pdf All Documentation 01-17-19
User Guide - BL65x AT Interface Application All Brochure 03-10-20
Throughput Testing with BT 5 - LE 2M PHY Feature v1 0.pdf All Application Note 01-17-19
Using the DVK-BL654 and Nordic SDK v1 0.pdf All Application Note 01-17-19
Using vSP Service with smartBASIC v1 0.pdf All Application Note 01-17-19
BLE Data Transfer - CODED PHY Modulation - BL654 v1 0.pdf All Application Note 01-17-19
Using Direct Test Mode - BL654 v1 0.pdf All Application Note 01-17-19
Textpad Color Syntax Highlighting - BL654 v1 0.pdf All Application Note 01-17-19
Upgrading BL654 Firmware via UART - BL654 v1 0.pdf All Application Note 01-17-19
Upgrading BL654 Firmware via JTAG - BL654 v1 0.pdf All Application Note 01-17-19
Using BL654 DVK with Nordic nRFToolbox v1 1.pdf All Application Note 01-17-19
Using Notepad and Color Syntax Highlighting - BL654 v1 0.pdf All Application Note 01-17-19
Low Power Modes - BL654 v1 1.pdf All Application Note 01-17-19
NFC Manager - BL654 Sample smartBASIC Application v1 0.pdf All Application Note 01-17-19
Laird Range Testing - BL654 v1.1.pdf All Application Note 09-16-19
Exiting DTM Mode - BL654 v1 0.pdf All Application Note 01-17-19
Loading and Running Applications with UwTerminalX - BL654 v1 1.pdf All Application Note 01-17-19
NEW - BLE Mesh – BL654 smartBASIC Implementation - MESH310_8 r1 All Application Note 06-10-19
RoHSII - EU WEEE Compliance BT RAMP v1 8 All Certification 07-12-19
Getting Started with the BL654 Dongle (smartBASIC variant) v1_1 All Documentation 06-10-19
CS-RN-BL654-v29.1.1.0.pdf All Documentation 01-17-19
PCB Footprint for ASCII format - BL654.zip All Documentation 01-17-19
SCH Symbol for OrCAD format - BL654.zip All Documentation 01-17-19
BL654 Firmware v29.2.2.0 r0.zip All Software 01-17-19
3D Models - BL654.zip All Software 01-17-19
Mechanical Schematic - BL654 Series.pdf All Software 01-17-19
Host Land Pattern Schematic - BL654 Series.pdf All Software 01-17-19
BleDtmRfTool v8 00.zip All Software 01-17-19
Schematics - DVK-BL654 v1.0.pdf All Software 01-17-19
Application Note - Laird Custom BLE Serial Port Service All Application Note 01-17-19
BL654 FIrmware for Upgrade v29.1.1.0 r0 All Software 01-17-19
NEW - BL654 Firmware For Upgrade v29.3.31.8-MESH310-8 r1 All Software 06-10-19
BL654 Firmware for Upgrade v29.3.3.0 r0 All Software 01-17-19
BL654 Firmware for Upgrade v29.3.5.0 All Software 08-15-19
Release Notes - BL654 v29.3.3.0 All Documentation 05-29-19
Release Note - BL654 and BL654PA v29.3.5.0 All Documentation 08-15-19
Application Note - Guidelines for Replacing Antennas v1.0 All Application Note 01-17-19
PCN 4B-2019 - BL654 Series All Documentation 04-24-19
BL654 MIC Certifications All Certification 06-05-19
FCC Certifications - BL654 All Certification 07-08-19
AS/NZS Certifications - BL654 All Certification 07-08-19
CE Certifications - BL654 All Certification 07-08-19
Japan Certifications - BL654 All Certification 07-08-19
IC Certifications - BL654 All Certification 07-08-19
Quick Start Guide - BL654 USB for Nordic SDK / Zephyr All Documentation 08-29-19
BL654 smartBASIC Extensions Guide v29.3.5.0 All Documentation 08-15-19
Application Note - Creating a Secure Bootloader Image (BL654-USB) All Application Note 10-01-19
Application Note - Using the BL654 and Nordic SDK v16.0.0 with Eclipse and GCC All Application Note 11-27-19
BL654 smartBASIC Extensions Guide v29.4.6.0 All Documentation 03-20-20
Release Notes - Version 29.4.6.0 All Documentation 12-06-19
BL654 FIrmware for Upgrade v29.4.6.0 r0 All Software 12-09-19
Application Note - Bootloader UART Protocol - BL6xx All Application Note 03-24-20
Datasheet - NFC Flex PCB Antenna All Datasheet 04-07-20
CAD Files - 451-00003 (USB Adapter - smartBASIC) All Technical Drawings 04-17-20
CAD Files - 451-00004 (USB Adapter - Nordic/Zephyr) All Technical Drawings 04-17-20
User Guide - Repeater/Gateway Application v1.1 All Documentation 04-22-20
UwTerminalX – Serial Terminal Utility All Software 04-27-20
UwFlashX – Serial Firmware Update Utility All Software 04-27-20
Application Note - BL600 Using UART Efficiently to Extend Battery Life.pdf All Application Note 01-17-19
Application Note - Using UART Efficiently to Extend Battery Life (BL65x) All Application Note 06-04-20
BL654/BL654PA smartBASIC Extensions Guide v29.4.6.6 All Documentation 06-19-20
Release Notes - BL654/BL654PA v29.4.6.6 All Documentation 06-19-20
BL654/BL654PA Firmware for Upgrade v29.4.6.6 All Software 06-19-20

FAQ

Can a BL65x firmware be updated OTA?

OTA firmware updates are not available for the BL65x modules. While smartBASIC programs (e.g. hello.world.sb) can be uploaded OTA, Laird firmware version (e.g. v28.9.6.0) updates can only be done over JTAG or UART.

Can I load a smartBASIC application to the BL654 451-00004 dongle?

The 451-00004 is the Nordic/Zephry variant of the BL654 Dongle It was intended for developers who prefer working with Nordic SDK or Zephyr Project, or those who may already have an application developed on one of these platforms.

It is does not support the smartBASIC firmware and therefore smartBASIC applications cannot be loaded to it. Please reference the following documents available from the BL654 Product Page https://www.lairdconnect.com/wireless-modules/bluetooth-modules/bluetoo… for additional information about getting started with 451-00004 BL654 Dongle.

Product Brief - BL654 USB for Nordic SDK / Zephyr
Quick Start Guide - BL654 USB for Nordic SDK / Zephyr

Both Nordic and Zephyr provide their own library of sample applications and assistance with software development when electing to work with either of these platforms.

nRF5 SDK: https://www.nordicsemi.com/Software-and-tools/Software/nRF5-SDK
Zephyr Project: https://docs.zephyrproject.org/latest/

The 451-00003 is the smartBASIC variant of the BL654 Dongle which comes preloaded with smartBASIC firmware and can be programmed with smartBASIC applications. This variant of the dongle only supports loading applications developed using our smartBASIC firmware. We recommend referencing:

The Getting Started with the BL654 Dongle (smartBASIC variant) Application Note
User Guide - BL654 USB with smartBasic
Loading and Running Applications with UwTerminalX - BL654 v1.1

Can I use BL652/BL654 pair with BLE tag?

No. it is not possible as BL652/BL654 is NFC tag as well. You can make it to pair with a phone. The phone can provide the NFC energy field to energize the BL652.

Can I use USB on the BL654 if I'm using smartBASIC?

No, USB functionality was not built in to smartBASIC but all other peripherals are supported. You will need to use the Nordic SDK or Zephyr for your application development if USB is required.

Can I write/encode an NFC tag using the BL65x?

The NFC capability of the BL652 is NFC-A Listen Mode, Type 2. It is exposed as a passive interface. Therefore, the BL652 NFC functionality currently allows for read-only (type 2) tags which can be read from an Active NFC reader, such as a smartphone or Arduino-based shield. It is not able to write or encode external tags.

More information on NFC capability on the BL652 can be found in section 7.1, "Near Field Communication (NFC) on page 314 of the BL652 smartBASIC Extensions User Guide

For the BL654, more information can be found in section 6.1 on page 344 of the BL654 smartBASIC Extensions User Guide

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 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 do I exit autorun on the BL654 dongle?

To exit an autorun application on the BL654 dongle, navigate to the "Config" tab and select "BL654 USB Dongle - Exit autorun" from the options at the top of the page (see below). This will enable you to put the dongle back into Interactive Command Mode while an autorun application is loaded to the dongle.

This option is only available in the SSL version of UwTerminalX. If you do not see this option, please download the SSL version of UwTerminalX which can be found on Github. https://github.com/LairdCP/UwTerminalX/releases

How do I set parity on the BL65x?

Setting parity is not possible using smartBASIC on the BL652 and BL654. However, setting parity is supported when working with the Nordic SDK. Therefore, if parity setting is required, the module will have to be programmed using the Nordic SDK and the Nordic examples instead of Laird's smartBASIC examples.

Please refer to the Using the DVK-BL652 and Nordic SDK v14.0.0 with Eclipse & GCC or the Using the BL654 and Nordic SDK v16.0.0 with Eclipse and GCC  application note for assistance in setting up the BL652-DVK or BL654-DVK using the Nordic SDK. Please note that Nordic examples work with the external crystal as the clock source. The DVK-BL652 uses the internal RC Oscillator as the clock source, therefore if you will not be fitting the low frequency external crystal please be sure to modify the Nordic examples as explained in the above application note. You may also wish to refer to the BL652 Dev Kit User Guide or the BL654-DVK User Guide & Quick Start Guide

Is BT 5.0 extended range feature related to higher power on newer modules like BL654, Sable X-R2?

Actually the extended range is achieved with slower transmission bit rate which let the radio emissions can be correctly received at a longer range. This data rate is reduced.

Is it safe to run a Laird Connectivity Bluetooth module through a PCBA wash cycle?

In general, cleaning the populated modules is strongly discouraged. Residuals under the module cannot be easily removed with any cleaning process. 

  • Cleaning with water can lead to capillary effects where water is absorbed into the gap between the host board and the module. The combination of soldering flux residuals and encapsulated water could lead to short circuits between neighboring pads. Water could also damage any stickers or labels.
  • Cleaning with alcohol or a similar organic solvent will likely flood soldering flux residuals into the RF shield, which is not accessible for post-washing inspection. The solvent could also damage any stickers or labels.
  • Ultrasonic cleaning could damage the module permanently.

However, if water washing is required you will need to use deionized water. We do not recommend chemical cleaning and cannot guarantee it will not damage the modules. If you MUST clean PCB with chemicals it is recommended that you test on one board and then confirm the module still works after the process, prior to adding it to production, while understanding the above affects washing the populated PCBs can have on the module.

The BL654 Dongle is not presenting as a Bluetooth Adapter

The BL654 is a stand-alone Bluetooth dongle with its own Bluetooth stack - it does not rely on the host stack and should present as a USB Serial COM Port or nRF52 SDFU USB COM port under Ports in Device Manager depending on which variant of the dongle was purchased.

smartBASIC variant (451-00003)

The 451-00003 will need to be programmed with a smartBASIC application in order to configure it for BLE operations.

Nordic/Zephyr variant (451-00004)

The 451-00004 will need to be programmed with a Nordic or Zephyr application in order to configure it for BLE operations.

Additional documentation for programming the dongle is available from the BL654 Product Page.

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

What's the total number of concurrent connections?

The BL652/654 can do 7 (outgoing)+1(incoming) connections. But it is not possible to do 2 incoming, as peripheral can only 1 incoming, per the BLE spec.