BL600 Series Bluetooth Module

Not Recommended for New Design (NRND)

Overview

NEW: Upgrade firmware from your host microcontroller!

The BL600 Series modules from Laird make it easy to add single-mode Bluetooth Low Energy (LE), or Bluetooth Smart, to small, portable, power-conscious devices, including those powered by AAA or coin cell batteries. The fully approved, programmable modules feature Laird's innovative, event-driven smartBASIC programming interface, which significantly simplifies Bluetooth LE module integration. Available in BL600-SA, BL600-SC, BL600-ST variants. 

 

Now introducing the Bx600 breakout boards: The right hardware for your design requirement.  

Specifications

Bluetooth Version
4.0
Chipset
Nordic nRF51822
Antenna Options
Integrated monopole chip antenna on BL600-SA
External dipole antenna connected with to IPEX MH4 RF connector on BL600-SC.
External dipole antenna connected to RSMA RF connector which then is connected with 50-Ohms RF track on host PCB to RF pad on BL600-ST.
4.2 Upgradeable
No
A2DP
No
ADC
Yes
AVRCP
No
BLE Connections
5
BT Class
2
BT Connections
0
Central Role
No
Certifications
FCC, ISED, EU, UKCA, MIC, NCC, Bluetooth SIG
DUN
No
Dimension (Height - mm)
3 mm
Dimension (Length - mm)
19 mm
Dimension (Width - mm)
12.5 mm
Dual Mode
No
FTP Client
No
GATT
Yes
GPIO
Yes
HCI Interface
No
HFP
No
HID
No
HSP
No
I2C
Yes
I2S
No
NFC
No
Output Power
+4 dBm
PCM
No
Peripheral Role
Yes
Processor On Board
Cortex M0
Receive Sensitivity
-91dBm
SPI
Yes
SPP
No
Stack On Board
Yes
Temperature Range
-40°C to +85°C
UART
Yes
USB
No
Wi-Fi Coexistence
No
Part NumberAdditional DescriptionAntenna OptionsAntenna TypeBLE ServicesBluetooth VersionChipset (Wireless)ComplianceConnectorData RateDevelopment Kit ContentsFrequency Range (Max)Frequency Range (Min)Logical InterfacesMemoryOS/SoftwareProduct TypeProtocolsRangeSoftwareSystem ArchitectureTechnologyTransmit Power (Max)WeightWireless Specification
BL600-ST
Not Recommended for New Design (NRND)
Buy Now
Trace Pin External Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC SMT 1 Mbps (over the air) Development Board 2480 MHz2402 MHzSerial, GPIO, SPI, I2C, ADC 16 kb for applications Nordic SDK, smartBASIC Embedded Module Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
DVK-BL600-SA
Not Recommended for New Design (NRND)
Buy Now
Internal Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC USB Pluggable 1 Mbps (over the air) Development Board 2480 MHz2402 MHzUSB, GPIO, SPI, I2C, ADC, Serial 16 kb for applications Nordic SDK, smartBASIC Development Kit Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
DVK-BL600-SC
Not Recommended for New Design (NRND)
Buy Now
IPEX MHF4 Connector External Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC USB Pluggable 1 Mbps (over the air) Development Board 2480 MHz2402 MHzUSB, GPIO, SPI, I2C, ADC, Serial 16 kb for applications Nordic SDK, smartBASIC Development Kit Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
BL600-SA-32
Not Recommended for New Design (NRND)
Buy Now
Internal Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC SMT 1 Mbps (over the air) Development Board 2480 MHz2402 MHzSerial, GPIO, SPI, I2C, ADC 32 kb for applications Nordic SDK, smartBASIC Embedded Module Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
DVK-BL600-ST
Not Recommended for New Design (NRND)
Buy Now
SMA Connector External Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC USB Pluggable 1 Mbps (over the air) Development Board 2480 MHz2402 MHzUSB, GPIO, SPI, I2C, ADC, Serial 16 kb for applications Nordic SDK, smartBASIC Development Kit Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
BL600-SC
Not Recommended for New Design (NRND)
Buy Now
IPEX MHF4 Connector External Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC SMT 1 Mbps (over the air) Development Board 2480 MHz2402 MHzSerial, GPIO, SPI, I2C, ADC 16 kb for applications Nordic SDK, smartBASIC Embedded Module Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
BL600-SA
Not Recommended for New Design (NRND)
Buy Now
Internal Any that can be implemented with smartBASIC v4.0 Single Mode Nordic nRF51822 FCC, ISED, EU, MIC SMT 1 Mbps (over the air) Development Board 2480 MHz2402 MHzSerial, GPIO, SPI, I2C, ADC 16 kb for applications Nordic SDK, smartBASIC Embedded Module Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software Hostless Bluetooth 4.0, Single Mode (BLE), Peripheral Mode +4 dBm .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
USB-SWD Programming Kit - Box Contents
453-00062-K1Buy Now
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

Documentation

Name Part Type Last Updated
Application Note - BL600 BT SIG Qualification v1.0.pdf All Application Note 01/17/2019
Application Note - BL600 Cable Replacement Mode.pdf All Application Note 01/17/2019
Application Note - BLE Recommended 128-bit Custom UUID Management.pdf All Application Note 01/17/2019
Application Note - BL600 Using Textpad and Color Syntax Highlighting.pdf All Application Note 01/17/2019
Application Note - BL600 Using UART Efficiently to Extend Battery Life.pdf All Application Note 01/17/2019
Application Note - BL600 Whisper Mode.pdf All Application Note 01/17/2019
Application Note - BL600 and BL620 Memory Map Overview.pdf All Application Note 01/17/2019
Application Note - BL6x0 Over-the-Air Application Download.pdf All Application Note 01/17/2019
Application Note - Default DVK-BL600 DIP Switch and Jumper Settings.pdf All Application Note 01/17/2019
Application Note - Finding the BL600-Sx Revision Number.pdf All Application Note 01/17/2019
Application Note - Flash Cloning for the BL600.pdf All Application Note 01/17/2019
Application Note - Laird BL600 Range Testing.pdf All Application Note 01/17/2019
Application Note - Upgrading BL600 Firmware via JTAG.pdf All Application Note 01/17/2019
Application Note - Upgrading BL600 Firmware via UART.pdf All Application Note 01/17/2019
Application Note - Using SPI Interface in smartBASIC with DotStar.pdf All Application Note 01/17/2019
Application Note - iBeacon Sample App.pdf All Application Note 01/17/2019
Application Note - smartBASIC App Download Protocol over UART.pdf All Application Note 01/17/2019
Application Note - smartBASIC for BLE Modules.pdf All Application Note 01/17/2019
Batch Application Notes for iOS.pdf All Application Note 01/17/2019
OTA Application Notes for iOS.pdf All Application Note 01/17/2019
UwTerminalX Quick Reference Guide All Application Note 02/28/2019
Application Note - Bluetooth Latency and Data.pdf All Application Note 01/17/2019
Serial Application Notes for iOS.pdf All Application Note 01/17/2019
Application Note - Using VSP with smartBASIC.pdf All Application Note 01/17/2019
Upgrading Firmware from your Host Microcontroller All Application Note 02/28/2019
Using Notepad-plus-plus and Color Syntax Highlighting v1 1.pdf All Application Note 01/17/2019
BLE Regulation Test in Linux v1 0.pdf All Application Note 01/17/2019
RoHS 3 - Bluetooth All Certification 01/04/2022
Release Note - BL600 Firmware v1.5.70.0.pdf All Documentation 01/17/2019
Release Note - BL600 Firmware v1.8.88.0.pdf All Documentation 01/17/2019
User Guide - BL600-DVK (Board Revision 4 or Below).pdf All Documentation 01/17/2019
User Guide - BL600-DVK (Board Revision 5).pdf All Documentation 01/17/2019
User Guide - Bx600 Breakout Boards All Documentation 10/05/2022
User Guide - smartBASIC BL600 Extensions Release 1.5.70.0.pdf All Documentation 01/17/2019
User Guide - smartBASIC BL600 Extensions Release 1.8.88.0.pdf All Documentation 01/17/2019
Walkthrough - Applications in smartBASIC (BL600 and BL620).pdf All Documentation 01/17/2019
Walkthrough - Beacons for smartBASIC (BL600 and BT900).pdf All Documentation 01/17/2019
Product Brief - BL600.pdf All Product Brief 10/08/2021
Product Brief - Bx600 Breakout Boards and DVK-BL600.pdf All Product Brief 10/08/2021
User Guide - StringPlayer.pdf All Documentation 01/17/2019
Datasheet - BL600 All Datasheet 01/22/2021
User Guide - smartBASIC Core Functionality v3.4 All Documentation 06/22/2020
Quick Start Guide - BL600-DVK Heart Rate.pdf All Instructional 01/17/2019
Quick Start Guide - BL600-DVK smartBASIC Proximity Profile.pdf All Instructional 01/17/2019
Quick Start Guide - PPK-BL600 Programming jig for BL600 modules.pdf All Instructional 01/17/2019
ITSE01020 14 BL600 Firmware v1 8 88 0-r3.zip All Software 03/02/2020
laird toolkit source code v4.18.1.13.zip All Software 01/17/2019
Laird Serial.zip All Software 01/17/2019
Laird Batch.zip All Software 01/17/2019
Laird OTA.zip All Software 01/17/2019
Laird Library v.0.18.1.1.zip All Software 01/17/2019
Heart Rate BLE Demo v5.18.1.0.zip All Software 01/17/2019
ITSE01020 08 BL600 Firmware & Sample smartBASIC Apps v1 5 70 0-r6.zip All Software 03/02/2020
BL600 iBeacon smartBASIC (r1.0).zip All Software 01/17/2019
BL600 3D Models.zip All Software 01/17/2019
BL600 Proximity App 12 4 2 iOS Source Code.zip All Software 01/17/2019
BL600 iOS App Source Code.zip All Software 01/17/2019
DVK-BL600-V2 SCHEMATICS 0.pdf All Software 01/17/2019
DVK-BL600-Sx-05 00276 v5.pdf All Software 01/17/2019
SCH-PCB CAD Drawings Download.zip All Software 01/17/2019
Application Note - Laird Custom BLE Serial Port Service All Application Note 06/21/2022
Application Note - Guidelines for Replacing Antennas v1.0 All Application Note 01/17/2019
FCC Certifications - BL600 and BL620 All Certification 12/13/2020
ISED (Canada) Certifications - BL600 and BL620 All Certification 12/13/2020
EU Certifications - BL600 and BL620 All Certification 01/14/2021
MIC Certifications - BL600 All Certification 12/09/2020
NCC Certification - BL600 All Certification 12/09/2020
UwTerminalX – Serial Terminal Utility All Software 04/27/2020
UwFlashX – Serial Firmware Update Utility All Software 04/27/2020
Application Note - How to Set Up vSP Service - BLxx All Application Note 07/31/2020
Regulatory Information - BL600 All Certification 06/11/2021
EOL Notice - BLE - Sept 21 All Documentation 09/08/2021
PCN 9F-2021 - BL600 & BT900 All Documentation 09/29/2021

FAQ

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 a enable/disable particular BLE channels used for advertising/scanning or when in a connection?

The smartBASIC language provides functions for setting a specific set of channels to be used for BLE advertising/scanning or a BLE connection.

  • BleChannelMap(chanMap$) enables or disables data channel usage when in a connection.
  • BleAdvSetCreate(nSetId, nAdvProperties, nPriSecPhy, nFilterPolicy, peerAddr$, chanMask$) can set BLE advert channels.
  • BleScanStartEx(scanTimeoutMs, nPriPhyScan, chanMask$, nFilterHandle) can set channels used for BLE scanning.

The channel map/mask has to be entered as a 5 byte long string for each of the functions and due to the little-endian architecture of the underlying ARM core its composition can be confusing. The below example will show the actual assignment of channel within that string. Furthermore the meaning of a set bit differs among the above functions.

  • BleChannelMap() -> a set bit means channel is enabled!
  • BleAdvSetCreate() and BleScanStartEx() -> a set bit means channel is disabled!

Now let's “visualize” the channel mapping into the five byte string:

channel number:

00000000|11111100|22221111|33222222|xxx33333
76543210|54321098|32109876|10987654|xxx65432
\byte 0/ \byte 1/ \byte 2/ \byte 3/ \byte 4/

So for enabling e.g., channels 9+10 only you would set the yellow bits:

00000000|11111100|22221111|33222222|xxx33333
76543210|54321098|32109876|10987654|xxx65432
\byte 0/ \byte 1/ \byte 2/ \byte 3/ \byte 4/
 0x00     0x06     0x00     0x00     0x00

giving “0006000000” as string.

For disabling channel only 35, i.e. active channels are 0-34 and 36, it would be:

00000000|11111100|22221111|33222222|xxx33333
76543210|54321098|32109876|10987654|xxx65432
\byte 0/ \byte 1/ \byte 2/ \byte 3/ \byte 4/
  0xFF     0xFF     0xFF     0xFF     0x17

giving “FFFFFFFF17” as string.

Further detail is given in the smartBASIC Extension Guides in the documentation section of the product page for each BLE module at Bluetooth Module Portfolio.

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.

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.

What is the maximum number of characteristics that can be supported using smartBASIC?

The maximum number of characteristics is not a limitation in smartBASIC but a limitation in the underlying Nordic SoftDevice SDK. The SoftDevice has a maximum RAM allowance of 64KB, adding more characteristics will increase RAM usage and depending on other configuration, will determine how many characteristics can be supported within the 64KB allowed RAM space.

The maximum number of characteristics supported in smartBASIC is roughly 24. This is a product of the combination of the total RAM allowance of 64K for SoftDevice, GATT Table configuration as well as the GATT Table size as is specified in Configuration Key 204 (refer to BL654 smartBASIC Extension Guide). The default GATT table size is 1792 bytes (Config 204)) which will allow for roughly 11 characteristics.

If using the AT Interface application the maximum number of characteristics is set to 24 by default. The default configuration can be found in $autorun$.AT.interface.BL654._.sb file:

 //This defines the maximum number of characteristics we can manage

 

 

#define MAX_CHARACTERISTICS 24


As mentioned previously this is the max number of characteristics that can be supported but Out of Box the GATT table size is 1792 bytes resulting in roughly 11 characteristics.

 

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. 

What could be causing additional power draw when in standby doze state?

There are several functions within an application that can increase current consumption above the measurement indicated in the Datasheet for standby doze, low power mode.

  • Timers
  • GPIOs held in an asserted state
  • LEDs
  • Nested functions - which keep the module from entering the standby doze state
  • UART (when open)

 

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. 

Online Xcompiler is not accessible is there a way to Xcompile a smartBASIC Application locally when using UwTerminalX?

If you are having issues using the Online Xcompilers it could be related to security settings in your system which may be blocking access to the Online Xcompilers. If you are not able to resolve this it is possible to Xcompile locally by following the steps below:

  1. Disable (uncheck) the Online XCompilers on the Config Tab in UwTerminalX as shown below:
  2. Locate the Xcomp_mmmmm_xxxx_xxxx.exe file in the firmware zip folder (downloaded from module's Product Page) for the version of firmware loaded to the module.
    Note: the Xcomp version MUST match the firmware version loaded to the module or the application will not compile.
    mmmmm = module
    xxxx_xxxx =Xcomp version
  3. Copy or Move the Xcomp_mmmmm_xxxx_xxxx.exe to the same folder the smartBASIC application is stored in as shown below:

You should now be able to Xcompile the application using UwTerminalX by right-clicking in the terminal and selecting one of the Xcompile options :

  • Xcompile
  • Xcompile+Load
  • Xcompile+Load+Run

Select the application from the folder where the Xcomp file is located. UwTerminalX will now look for the local Xcompiler in the application folder.

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.

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.

What is Laird Connectivity's product lifecycle EOL and PCN policy?

Laird Connectivity is committed to the long-term supply of all its standard embedded wireless modules and packaged products. Laird Connectivity’s products are specifically designed to meet the needs of the industrial and medical markets, which typically require 7 – 10 years product lifecycle. Although Laird Connectivity can’t guarantee that a component used in our products will not be obsoleted and cannot be reasonably substituted, Laird Connectivity can assure customers we will continue to sell our product when we have customer demand and can obtain the necessary components to build our products.

View our full policy here. 

When running the Virtual Serial Port (VSP) application, why does my PC recognize the BL600 but does not recognize the services available?

The Bluetooth Low Energy (BLE) concept of “Custom Services and Profiles” means that a developer can customize their product and applications so they are proprietary. In addition, BLE was not originally intended for streaming serial data, rather it was meant to send small packets of sensor data periodically. The BT SIG has not officially adopted a Serial Port service/profile as with Classic BT, so any implementation of VSP or other serial data service or profile will be proprietary to the manufacturer of the silicon or module you are using.

Laird Connectivity has provided VSP for our customers that want to use BLE for simple cable replacement as long as their application data rate does not exceed 10kbps. Laird Connectivity has also defined the VSP Profile which defines how the Peripheral device (BL600) will communicate with the Central device (smartphone/tablet/PC/MAC).

In order to communicate between the BL600 running VSP and a PC (or other Central role device), the PC will need to have an application running on it that recognizes and communicates with the VSP Service on the BL600. For example, a Windows 7 PC does not support BT4.0 / BT4.1 so you would need a BT4.0 USB dongle that incorporates the full BT4.0 stack on the dongle and an application that runs on Windows 7 and fulfills the requirements of a Central role device for Laird Connectivity’s VSP Profile.

Information regarding Laird Connectivity's VSP Profile can be found in the smartBASIC User Guide, which explains what is required when developing a Central Role VSP application.

Is Laird’s BL600 Firmware open source?

No, our firmware is not open source.

What are the implications of flashing the BL600 Development Kit to bare metal?

It is possible to flash the BL600 DVK to bare metal and remove the smart­­BASIC firmware. However, you must provide firmware to support the board’s functionality and Laird is unable to provide support for this. You must go directly to Nordic for such services. Laird only supports Laird firmware and applications written in smart­­BASIC.

Are there any API or interfacing documents available for the BT stack in case we want to write our own firmware?

If you decide to write your own application or firmware, you must register with Nordic to receive their tools and SDK. All on-going support, in that case, would also need to come from Nordic. Once Laird’s smartBASIC image is erased, we are no longer able to provide support for the module.

Is the whitelist manageable?

The whitelist is automatically populated. When the whitelist filter is enabled, the whitelist is populated from the bonding manager database.

My BL600 DVK board won't respond for a firmware upgrade. What's wrong?

For full firmware upgrade instructions, please refer to one of the following firmware upgrade application notes:

Development Kit Firmware Upgrade Guide

Upgrading BL600 Firmware over UART

Please note that a common error is failing to prepare the board to the required settings.  Before a firmware upgrade, you should ensure the positions of the three power switches at the bottom-left of the board are set correctly:

SW4 must be set to "USB"

SW5 must be set to "3V3"

SW6 must be set to "3V3 / 1V8"

How is Pulse Width Modulation controlled on the BL600 via smartBASIC?

As of firmware v1.2.55.3, smartBASIC may control PWM and FREQUENCY output on up to two GPIO pins. These are implemented using the BL600’s on-board timers, GPIOTE, and PPI channels.

Is it possible for the BL600 to download a smartBASIC program over the air?

Yes, BL600 smartBASIC programs can be loaded over the air by booting into VSP mode. Please refer to the Virtual Serial Port Service section of the smartBASIC  BL600 extensions document which can be found at this link.

Note the behaviour if a $autorun$ program exists, which may require you to include the ERASEFILESYTEM function in your smartBASIC program to erase any existing $autorun$ program prior to loading a new smartBASIC program.

What is the module license key and what is it used for?

The BL600 license key is a unique number assigned to each BL600 module. It is tied to the random MAC address which Nordic etches into the silicon of the Nordic chip. Laird’s firmware takes that random number and matches it with the license that we program at production time.

If the license key does not match or it does not exist, the firmware operates with reduced transmit power (~4 dBm) and the autorun program in the BL600 flash memory will not run.

For these reasons, it is extremely important that you restore the BL600’s license key after you upgrade the module firmware.

The BL600 module contains 256K of flash memory - how much flash memory is left in the end to hold my smartBASIC applications?

The 256K of flash is shared by the following components:

 

1) The BLE software stack from Nordic Semiconductor

2) Laird’s smartBASIC engine

3) File system to store users smartBASIC Application and data files.

4) Non-volatile data store for user to do as they please, see NvRecordSet(), NvRecordGet()

5) The trusted device database which contains thinks line LTK,IRK,CSRK etc

 

Item (3) is currently 32k bytes.

Item (4) is 4k bytes (but given headers etc, actual effective user data space is about 75% of that).

In our experience, the largest smartBASIC application we have seen is about 20K.

If item (4) is not big enough, Laird recommends that an external I2C or SPI based serial EEPROM be included in the customer design. In this case, you could have about 256kbytes and smartBASIC provides high level API to read/write from I2C or SPI ports. You will not need to write any low level drivers and sample code can be supplied on request.

How do I perform a firmware upgrade for the BL600?

The BL600 firmware upgrade prodedure is documented in the following application notes, depending on whether you are upgrading via the UART or with the JTAG.

Upgrade over JTAG

Upgrade over UART

Can the BL600 be used as a hardware module for use with the Nordic soft device / SDK?

Yes. Laird Connectivity encourages all customers to utilize the smartBASIC implementation on-board every BL600 module for ease of use and fastest time to market. Our experts will assist customers on a case-by-case basis to support the Nordic SDK. Please note in these instances software and firmware technical support will need to be provided by Nordic, rather than Laird Connectivity.

Please contact support for further information.

After many days of operation I am getting MALLOC_FAIL errors. How can I resolve?

A MALLOC_FAIL can occur for 2 reasons.

  1. There is no more space in RAM
  2. The heap is fragmented*

The latter can be resolved by calling reset() which will reset the module and defragment the heap. If there is enough contiguous memory freed up by the defragmentation, the issue is then resolved.

For the former, you will have to reconsider the use and scope of the variables and structures in your smartBASIC application.

*http://en.wikipedia.org/wiki/Fragmentation_(computing)

Does Laird offer iOS applications for communicating with the BL600 from an Apple device?

Yes, the Laird Toolkit app contains the BPM, HRM, Proximity, HTM, Serial, OTA, and Batch apps in one easy download.

Can you provide some iOS and Android sample source code to help us start developing our own application?

Any available source code for Laird's Andriod and iOS applications can be found on the BL600 product page under the "Software Downloads" tab.

Is there a way to make the BL600 only detectable to an iPhone with a specific app installed?

No. This is not possible because you cannot hide ADV prior to a connection and you can only advertise with ADV_IND (connectable undirected advertising event) before a connection is made. Once connected, you can advertise with ADV_DIRECT_IND (connectable directed advertising event).

Does Laird offer Android applications for communicating with the BL600 from an Android device?

Yes, the Laird Toolkit app contains the BPM, HRM, Proximity, HTM, Serial, OTA, and Batch apps in one easy download.

Where can I buy the BL600 and DVK-BL600?

To purchase the BL600 and DVK-BL600, you may contact sales directly or visit one of Laird’s distributors.

Where can I find detailed documentation on all aspects of the BL600 modules and associated DVK?

The documentation tab of the BL600 page provides the product brief, hardware integration guide, schematics, firmware updates, 3D models, quick start guides, and a collection of application notes for specific topics. It also provides the smart BASIC application library, BL600 utilities, and training videos.

Where do I register for access to the BL600 and BL600 DVK firmware, or the various schematics for the DVK?

Firmware, schematics and more are part of the Bluetooth Secure Download Center, available for Laird customers. You must register for access. When you have access, visit the BL600 product page and log into the software tab.

Note:  Please remember to FIRST note the module license key, as you will have to restore the license key after the upgrade.

Can I use both top and bottom layers for ground planes on BL600?

Yes, you can have GND on bottom (or inner layer if the Host PCB is more than a 2 layer board) and top but please be aware that you must connect the two GNDs together by via (regularly placed). Also, solid (meaning less cuts in GND plane due vias going from top to bottom thus cutting area of the GND plane) continuous GND plane is good for EMC as return currents have smaller loop area (lower inductance). 

How to add data to advert with BL600?

DIM rc, s$, dn$ DIM ad$:ad$="\01\02\03\04" DIM prAddr$:prAddr$="" DIM advRpt$, scnRpt$ rc = BleScanRptInit(advRpt$) dn$ = BleGetDeviceName$() print "BleGetDeviceName$() : ";dn$ //Add device name to scan Report rc = BleAdvRptAppendAD(s$, 0x09, dn$) rc = BleAdvRptAppendAD(advRpt$,0x31,ad$) print "rc for BleAdvRptAppendAD : ";rc;"

" rc = BleAdvRptsCommit(advRpt$,scnRpt$)  print "rc for BleAdvRptsCommit(advRpt$,scnRpt$) : ";rc;"

" print "

Free space in advert report: ";BleAdvRptGetSpace(advRpt$);" bytes." print "

Free space in scan report: ";BleAdvRptGetSpace(scnRpt$);" bytes." rc = BleAdvertStart(2,prAddr$, 100, 0,0)  

What encryption is used on the BT900 and BL6xx?

The BT900, BL620, and BL600 all support 128 bit encryption. The radio handles this automatically when you have an encrypted connection. The AesEncrypt function in smarBASIC utilizes 128 bit encryption. For more information regarding this function, please feel free to reference the following smartBASIC Core Guide.

I accidentally erased the flash/deleted my BL600 License Key and did not create a copy of it. How can I get my module to function properly again?

Please run the AT I 4 command in UwTerminal to retrieve the MAC address of the affected module and contact support asking for a license key to be generated and be sure to include the MAC address that you retrieved. You must include the MAC address for our software to generate a new license key.

Can BL600 Firmware be upgrade over BLE?

I am using a BL600 Bluetooth module in my device and I was wondering if there is any way to upgrade the BL600 over BLE? Do you have open protocol to update firmware over BLE? Or maybe you have your own mobile application for upgrading?

Due to memory limitations the firmware (FW) updates cannot be loaded to the BL600 Over-the-Air (OTA) via BLE. Virtual Serial Port (vSP) only provides a serial connection, which streams the information one single bit at time. Additionally, the vSP buffers, located in the RAM only allocate 256 bytes for Rx buffer and 256 for the Tx buffer, which is not sufficient for transferring the firmware update, for subsequent processing of the upgrade on the module. Only smartBASIC applications can be loaded to the module OTA. Therefore, due to the memory limitations, it is not possible to load FW updates OTA. This would require having enough memory on the module for two copies of the FW, which the BL600 does not have. All firmware upgrades must be performed via a JTAG or UART connection as per the attached documents: BL600 Firmware Upgrade over JTAG

Is there a way to load the Bx600 Breakout Boards with central role device firmware (BL620)?

The Bx600 Breakout Boards are intended for peripheral mode, BL600 firmware, only. The latest BL600 1.8.88.0 firmware supports UART Bootloader and all future firmware upgrades are done via UART. Unfortunately, BL620 firmware does NOT support UART Bootloader because the version of the Nordic softdevice used in the BL620 firmware doesn't support it. Therefore, BL620 firmware can only be loaded with a JLink. The Bx600 boards do not have a JTAG interface and are therefore designed for peripheral mode (BL600) only. For the central role side we recommend either the  BL620-US USB Dongle or the DVK-BL600.  The DVK-BL600 has a JTAG interface which supports switching between the BL600 and BL620 firmware, as well as the following additional hardware: a temperature sensor, voltage measurement circuit, programmable LED array and push button switches.

 

How do I enable DCDC on the BL600(v1.8.88.0) in smartBasic?

BL600-07, which has the latest chip (Nordic HW Variant: nRF51822-QFAA-H0) and firmware (Firmware v1.8.88.0), that the DCDC is not enabled by default. Note: in older modules -06 and older, the DCDC is always forced OFF because Nordic advised us that there was a hardware level issue which got fixed in the latest chip which we deploy in the -07 To enable DCDC the smartBASIC application should have the following line: BleConfigDcDc( 1 ) It is safe to have this line even in older modules because based on the variant at runtime I will force to OFF if it is an older chip.

How do I direct advert from BL600 to a specific BL620?

The following code will run on BL600 and direct advert to BL620 with specific MAC address: dim rc,addr$ addr$ = "\02\D4\F4\6F\CA\C8\E7" ?? ?? ?? //address of specific BL620 rc = BleAdvertStart(1,addr$,100,0,0) WaitEvent I tried direct advert with a smartphone instead of the BL620 but was unsuccessful, this is most likely because the MAC on smartphone changes.

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

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


 

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

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.

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

Buy Now

Distributor Part In Stock Region Buy
Digi-Key 453-00062-K1 24 North America Buy Now
Mouser 453-00062-K1 21 North America Buy Now
RS 453-00062-K1 4 EMEA Buy Now
Avnet 453-00062-K1 0 North America Buy Now
Symmetry Electronics 453-00062-K1 0 North America Buy Now
Mouser BL600-SA 2851 North America Buy Now
Farnell BL600-SA 32 EMEA Buy Now
Newark BL600-SA 32 North America Buy Now
element14 APAC BL600-SA 32 APAC Buy Now
Avnet BL600-SA-32 0 North America Buy Now
Farnell BL600-SA-32 0 EMEA Buy Now
Newark BL600-SA-32 0 North America Buy Now
element14 APAC BL600-SA-32 0 APAC Buy Now
Allied Electronics & Automation BL600-SC 0 North America Buy Now
Avnet BL600-SC 0 North America Buy Now
Farnell BL600-SC 0 EMEA Buy Now
Mouser BL600-SC 0 North America Buy Now
Newark BL600-SC 0 North America Buy Now
element14 APAC BL600-SC 0 APAC Buy Now
Digi-Key BL600-ST 138 North America Buy Now
Avnet BL600-ST 0 North America Buy Now
Farnell BL600-ST 0 EMEA Buy Now
Digi-Key DVK-BL600-SA 3 North America Buy Now
Farnell DVK-BL600-SA 0 EMEA Buy Now
Newark DVK-BL600-SA 0 North America Buy Now
element14 APAC DVK-BL600-SA 0 APAC Buy Now
Digi-Key DVK-BL600-SC 1 North America Buy Now
Allied Electronics & Automation DVK-BL600-SC 0 North America Buy Now
Avnet DVK-BL600-SC 0 North America Buy Now
Farnell DVK-BL600-SC 0 EMEA Buy Now
Mouser DVK-BL600-SC 0 North America Buy Now
Newark DVK-BL600-SC 0 North America Buy Now
element14 APAC DVK-BL600-SC 0 APAC Buy Now
Avnet DVK-BL600-ST 0 North America Buy Now
Farnell DVK-BL600-ST 0 EMEA Buy Now
Mouser DVK-BL600-ST 0 North America Buy Now
Newark DVK-BL600-ST 0 North America Buy Now
element14 APAC DVK-BL600-ST 0 APAC Buy Now

Distributors

Distributor Phone Number Region Website
Alpha Micro UK Only +44 1256-851770
EMEA Website
Arrow Electronics 1-855-326-4757
+44 2039 365486
APAC, North America, South America, EMEA Website
Avnet 1-480-643-2000
+44 1628 512900
APAC, North America, South America, EMEA Website
Cal-Chip Connect 1-215-942-8900
North America Website
Control Synergy +61-2-4966-5211
APAC Website
Digi-Key 1-800-344-4539
North America, South America, APAC, EMEA Website
EBV Elektronik EMEA Website
Farlink Technology +86 13266922199
APAC Website
Farnell 1-800-936-198
+44 3447 11 11 22
EMEA Website
Future Electronics 1-800-675-1619
1-514-428-8470
North America, South America, APAC, EMEA Website
Glyn +49-6126-590-0
EMEA Website
Jetronic China, Hong Kong and Taiwan 852-27636806 
APAC Website
Laird Connectivity 1-847-839-6925
+44 1628 858941
North America, South America, APAC, EMEA Website
M2M Germany +49-6081-587386-0
EMEA Website
Martinsson +46 8 7440300
EMEA Website
McCoy South East Asia +65 6515 2988
APAC Website
Mouser 1-800-346-6873
+44 1494 427500
North America, South America, APAC, EMEA Website
RS Components +852-2421-9898
+44 3457-201201
North America, South America, APAC, EMEA Website
Ryoyo Japan +81-3-3543-7711
APAC Website
Symmetry Electronics 1-866-506-8829
North America Website
Tekdis Australia and New Zealand +61 3 8669 1210
APAC Website
Telsys +972 3 7657666
EMEA Website