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 (BLE), 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 BLE 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
4.2 Upgradeable
No
A2DP
No
ADC
Yes
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.
AVRCP
No
BLE Connections
5
BT Class
2
Central Role
No
Certifications
FCC, IC, CE, MIC, NCC, SIG
Chipset
Nordic nRF51822
Dimension (Height - mm)
3 mm
Dimension (Length - mm)
19 mm
Dimension (Width - mm)
12.5 mm
Dual Mode
No
DUN
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
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
BL600-SA Embedded Module Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 Internal Serial, GPIO, SPI, I2C, ADC 2402 MHz 2480 MHz Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC SMT 1 Mbps (over the air) Development Board +4 dBm 16 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
BL600-SA-32 Embedded Module Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 Internal Serial, GPIO, SPI, I2C, ADC 2402 MHz 2480 MHz Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC SMT 1 Mbps (over the air) Development Board +4 dBm 32 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Antenna Options BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
BL600-SC Embedded Module Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 External Serial, GPIO, SPI, I2C, ADC 2402 MHz 2480 MHz IPEX MHF4 Connector Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC SMT 1 Mbps (over the air) Development Board +4 dBm 16 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Antenna Options BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
BL600-ST Embedded Module Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 External Serial, GPIO, SPI, I2C, ADC 2402 MHz 2480 MHz Trace Pin Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC SMT 1 Mbps (over the air) Development Board +4 dBm 16 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
DVK-BL600-SA Development Kit Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 Internal USB, GPIO, SPI, I2C, ADC, Serial 2402 MHz 2480 MHz Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC USB Pluggable 1 Mbps (over the air) Development Board +4 dBm 16 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Antenna Options BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
DVK-BL600-SC Development Kit Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 External USB, GPIO, SPI, I2C, ADC, Serial 2402 MHz 2480 MHz IPEX MHF4 Connector Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC USB Pluggable 1 Mbps (over the air) Development Board +4 dBm 16 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode
Product Type Technology OS/Software System Architecture Chipset (Wireless) Antenna Type Logical Interfaces Frequency Range (Min) Frequency Range (Max) Antenna Options BLE Services Bluetooth Version Compliance Connector Data Rate Development Kit Contents Max Transmit Power Memory Protocols Range Software Weight Wireless Specification
DVK-BL600-ST Development Kit Bluetooth 4.0, Single Mode (BLE), Peripheral Mode Nordic SDK, smartBASIC Hostless Nordic nRF51822 External USB, GPIO, SPI, I2C, ADC, Serial 2402 MHz 2480 MHz SMA Connector Any that can be implemented with smartBASIC v4.0 Single Mode FCC/IC/CE/MIC USB Pluggable 1 Mbps (over the air) Development Board +4 dBm 16 kb for applications Any that can be implemented using smartBASIC Up to 100 m UwTerminalX terminal software .035 oz (< 1g) Bluetooth Version 4.0 Peripheral Mode

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
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
Maximum Permissible Exposure (for BT) BL600 and BL620.pdf All Certification 01/17/2019
EU Declaration of Conformity - BL600.pdf All Certification 01/17/2019
Radio Equipment Directive (RED) Updates - May 2017 All Certification 03/01/2019
RoHSII - EU WEEE Compliance BT RAMP v1 8 All Certification 07/12/2019
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.pdf All Documentation 01/17/2019
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 Brochure 03/05/2019
Product Brief - Bx600 Breakout Boards and DVK-BL600.pdf All Brochure 03/05/2019
User Guide - StringPlayer.pdf All Documentation 01/17/2019
Datasheet-BL600 v3.9 All Datasheet 02/13/2019
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 01/17/2019
Application Note - Guidelines for Replacing Antennas v1.0 All Application Note 01/17/2019
BL600 FCC Certifications All Certification 06/05/2019
BL600 IC Certifications All Certification 06/05/2019
BL600 CE Certifications All Certification 06/05/2019
BL600 MIC Certifications All Certification 06/05/2019
BL600 NCC Certification All Certification 06/05/2019
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

FAQ

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)

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.

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

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

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.

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.

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.

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.

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.

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.

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

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.

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)  

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.

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.

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.

Is Laird’s BL600 Firmware open source?

No, our firmware is not open source.

Is the whitelist manageable?

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

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.

 

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

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"

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.

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.

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.

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

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.

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.