FAQs

Can I use the BL600 in interactive mode (with AT commands) to connect with other Bluetooth Low Energy devices?

No, the interactive mode is mainly used for file management. For the BL600 to interact with other Bluetooth Low Energy (BLE) devices, there must be a smartBASIC program running on the BL600.

smartBASIC is an event-driven programming language that enables standalone operation of the module whereby sensors can be attached via any of the interfaces without the need for an external processor.

Is BLE compatible with Android or Windows?

Yes.  As of Android 4.3 (Jelly Bean), Android comes with a built-in BLE stack.  Microsoft Windows 8 and up also include a BLE stack.

For more articles and definitions, see the Laird Knowledge Center.

Radio displays error message "Radio not responding."

Solution: Make sure the PC Settings are correct and that the Connexlink unit uses the right serial cable.

If any other program is using the same COM port as the Connexlink unit, close that program and try to read the radio again.

Reset the radio by cycling power after each unsuccessful read.

For more information, see the User's Guide for your Connexlink product.

The effective range of my BL600 is much lower than expected (10 meters or less). What's wrong?

If the range of the BL600 is much shorter than expected, there are a few possible causes:

The BL600 license key is invalid. The simple way to verify this is to use send the command AT I 4 to the BL600, and it will respond with its MAC address. If this response contains the word COFFEE, then the module has an invalid license key, of which one symptom of this is reduced output power. Additionally, the BL600 cannot autorun scripts without a valid key. Laird support can generate your key from the MAC address, which you can retrieve using the command AT I 14. To recover your license key, run the AT I 14 command to get the MAC address, provide the MAC address to Support and we will provide your key back to you. You can then enter it using the AT+LIC “” command.

Another possible cause comes if you are directly using the Nordic's softdevice stack with Nordic sample applications instead of smartBASIC on the BL600. In this scenario, in your Nordic application you must set Nordic GPIO 20 as an output and to logic low in order to enable the RF tx power circuitry.

What is Simple Secure Pairing (SSP)?

Simple secure pairing (SSP) was introduced with BT2.1 to increase the security provided by a Bluetooth link as well as make the pairing process more user friendly. Many of the changes relate to how a user interacts with devices during the pairing process which may not be suitable for those applications that do not have user interaction such as M2M applications. For this reason Laird Technologies can also supply BT2.0 modules as well that use the legacy pairing most people are familiar with.

Where can I get the command set/interface for WLAN and Bluetooth?

There is no published command set for either radio. The only interface is through the drivers built into the OS. The commands would have to be extracted, or reverse engineered from there.

19) Can the 60 series radio operate in a 1x1 antenna configuration instead of a 2x2?

Yes, in our 2 nd software release we will provide the capability to switch between a 1x1 and a 2x2 configuration.

3D models for Laird modules

Q: Does Laird provide 3D files for it's modules? A: Laird provides 3D files (STEP) files for most but not all of it's modules.  Based on the nature of the information in the files, in most cases Laird requires a login to access these files as well as layout files and software/firmware downloads.  As such, for most modules, the 3D files are found under the Software Downloads tab of the product page.  The page offers a credentials request link for customers who need credentials.  In most cases, the credentials are provided via return email within about 10 minutes.  Please contact cs-support@lairdtech.com if you have any additional questions or have any issues accessing our downloads.

40NBT BT: How can application determine whether BT is loaded successfully?

There is no event or notification that occurs to programmatically check if the patch was successful. However You can see the following message in debug message to tell if BT is loaded successfully [sdc_bt] BluetoothInitWorkerThread: BluetoothInit successful. To enable debugging for sdc_bt, set [HKLM\SOFTWARE\SUMMIT\BT]DbgLevel :DWORD =5 If you want to check BT loading process is finished regardless of its result(success/fail), there is a way to monitor it. The stack fires off a named event when the patching process is completed (regardless if it was successful or failed). You can monitor that event by declaring your own named event in your application. CreateEvent(NULL, FALSE, FALSE, L"SDC_BT.etServiceNotify");

40NBT BT: I have to set "BTEnable" back to 0 on suspend to force the BT firmware to be reloaded on resume

The reason the "BTEnable" key is set back to 0 is because patching failed and Bluetooth isn't enabled. That key is used as a state key, so when a system reboots and it is set then the patching process will begin. However, if the patching process fails it will revert to 0 as Bluetooth isn't enabled. Once the patching issues are fixed, this shouldn't be a problem.

40NBT BT: Is there a way to delay for sdc_bt to open COM port?

Yes, set the following registry key in millisecond : [HKEY_LOCAL_MACHINE\SOFTWARE\Summit\BT] "PatchDelay"=dword

40NBT BT: Is there is ways of controlling what services are available to the Remote Device before connection?

There is a way to control which services are available to a remote device. All the local services are started by default, however in the API user can call the following functions to limit which services are available to connect with.. LRDBTERR LRD_BT_StopServerByName(char *serviceName);

40NBT BT: what does the message "Write_BT_FW: "Send CMD: HCI Reset SUCCESS." mean in sdc_bt.txt?

?Write_BT_FW: ?Send CMD: HCI Reset SUCCESS.? message does not guarantee that there is communication between radio and serial driver). This message is generated when we try to send firmware but it is possible that there is no response.

40NBT BT: What is the "SleepMode" value?

The ?SleepMode? key is used to tell the radio during patch time that when the OS goes into a low power state that it will be receiving a signal from an external pin to go into ?Low Power? mode. In Low Power mode the module will still remained patched however not be functional until it receives a signal from an external pin to resume. Those pins are documented in the HIG.

40NBT BT: What is the best way to start up with Bluetooth disabled?

The best way to start up with Bluetooth disabled would either to have the "BTEnable" key previously set to '0' [HKEY_LOCAL_MACHINE\SOFTWARE\Summit\BT] "BTEnable"=dword:0

40NBT SDK : How do I initiate a connection?

After discovering an Access Point, a Profile must be created, then finally ?Activated?. - Call ?CreateConfig()? to create a profile with all of the default values for a configuration - Assign values too the SDCConfig struct that was passed into the ?CreateConfig? call from the BSSID List. (i.e. the SDCConfig ?SSID? should be set to the SSID from the SDC_80211_BSSID_LIST_EX. NOTE: The ?ConfigName? field must be unique per profile.)

40NBT SDK for Windows CE : How do I perform operations regarding the IP address, including releasing/renewing an IP Address, selecting Static or DHCP, and pinging an IP Address?

IP operations are performed at the NDIS level of the operating system. Those functions are available in the link below in the IP Helper API (iphlpapi.h). You will need to detect the adapter using ?GetAdaptersInfo().? https://msdn.microsoft.com/en-us/library/ms886687.aspx To release/renew an IP address, you can use the functions "IPReleaseAddress/IPRenewAddress?.

40NBT SDK: Can I send data over SPP via BT SDK

Q : Do you have any C / C++ examples of how to set up an SPP service and exchange data across it using the Laird BT SDK? For example a simple "Chat" example? What I want to do is set up an SPP connection between the Laird module (running on our system acting as a server) and an Android tablet / phone acting as a client. I want to be able to send / receive data over this SPP link A: The Bluetooth SDK does not handle the SPP data directly. The SPP data is piped through a Virtual Serial Port that is installed on the system when the stack starts. Also, by default the stack has an SPP Service running when it starts. Typically when the SPP Service is installed it is running on COM Port #7 (this is the default number that the SPP service uses). You will have to. 1) Have the tablet discover and pair with your Laird module (on your system acting as a server). 2) The tablet should do a search for services and will find the Laird module has an SPP service available. 3) The tablet will then connect on your service. From there, you will have to open a COM port using Microsofts API call of CreateFile(). Something similar to the effect of CreateFile("COM7:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); Here is an example for opening the COM port. https://msdn.microsoft.com/en-us/library/windows/desktop/aa363201%28v=v… You must make sure that your tablet supports SPP as well. If SPP isn't supported then your tablet will not be able to discover your Laird Modules' SPP service.

40NBT SDK: Does GetBSSIDList start a scan and then return the result or does it just return a list that was scanned before?

1. The documentation does not mention whether this API starts the scan and then returns the result or it just returns a list that was scanned before. Which is the case? [Laird]: This API initiates a scan AND returns a list of the updated BSSIDs. 2. If this function does the scanning then: ? a. How do I know if the scanning is started and running? ?? [Laird]: This is a blocking call, so once it is made the scan has begun and scanning is complete once this function returns. ? b. How can I set the timeout for the scanning? ?? [Laird]: The timeout is fixed and cannot be changed. ? c. How do we know when the scanning is done? ?? [Laird]: When this function returns then scanning is complete. ? d. Is this call blocking or non-blocking? ?? [Laird]: This is a blocking call. 3. If this function does not do the scanning and only returns the list discovered before, then how can I initiate scanning? Is there another function that does the scanning? [Laird]: We recommend putting this scan call on a worker thread to prevent any blocking for UI. A snippet of the code is below: int numBufEntries = 50; SDC_802_11_BSSID_LIST_EX list[50]; // Make call to tell driver to scan and give us back the scan list. SDCERR err = GetBSSIDList( &list[0], &numBufEntries); // Loop through all SSIDs in the scan list. for(ULONG i =0; issid; }

40NBT SDK: Is UAPSD supported in the 40NBT SDK?

UAPSD is not supported globally for the 40 series radio, but you can enable it in the NDIS radio config by setting the following registry key: "[hklm\comm\sdcsd40n1\parms]UAPSDEnable=1"