I have tried the bluetooth drivers supplied by Windows update and the latest Broadcom drivers directly from the Broadcom updater software. The problems persist (I can rule out any further configuration issues or alternative device drivers, I have tried every possibility).
I have tried a trial version of the BlueSoleil Bluetooth stack and it solved the wake-up problem. However the BlueSoleil stack causes some other problems, is relatively expensive and I would prefer not to use it.
To my knowledge there used to be Toshiba Bluetooth stack for non-Toshiba hardware, but the older versions I have found on the internet do not install, they do not seem to recognize the bluetooth hardware when installing the driver.
Here is what I finally did to solve the problem:I did not find any other bluetooth stack, besides the ones mentionend in the first post. I then kept on experimenting with the Microsoft and the Widcomm stack, until I broke my registry. I made a mistake a long the way, but it still seems to be a reasonable way to go: how to remove bluetooth entries from registry
With the basic functionality broken, I had another look at the BlueSoleil stack, which works well with the keyboard but has minor problems with the mouse. Unfortunately it seems no longer to be supported.
Next I took an older version of the Toshiba stack and tried it with a secondary bluetooth adapter. Things still did not work properly, but at least it installed in trial mode. Next step was to make the Toshiba stack work with my inbuilt adapter. I added the relevant vendor and product id into tosrfusb.sys and overrode the driver manually. Worked.
The good thing about the Toshiba stack is that it is very configurable. It did work with each HID device seperately, but not when multiple devices were connected at once. I then went into the advanced security configuration and tried the different combinations of server and client encryption etc. This works for me now.
As Martin mentoined, Toshiba bluetooth stack can be used with non-Toshiba hardware.Broadcomm drivers making my windows 7 unusable so I tried installing Toshiba driver. Here's the steps.
The v4.x Silicon Labs Bluetooth stack is an advanced Bluetooth 5-compliant protocol stack implementing the Bluetooth low energy standard. It supports multiple connections, concurrent central, peripheral, broadcaster, and observer roles. The v3.x Silicon Labs Bluetooth stack is meant for Silicon Labs EFR32 SoCs and modules.
The Bluetooth API provided by the Silicon Labs Bluetooth stack is the primary API to communicate with the stack. It provides access to all the Bluetooth functionality implemented by the Bluetooth stack, such as the Generic Access Profile (GAP), connection manager, the security manager (SM), GATT client and server.
When configured in NCP (network co-processor) mode, the Bluetooth stack can be controlled using the BGAPI serial protocol. This allows the Bluetooth stack to be controlled over a serial interface such as UART from a separate host, such as EFM32 microcontroller. The BGAPI serial protocol provides exactly the same Bluetooth APIs over UART as the BGAPI API when used in a standalone mode.
The BGAPI serial protocol is a lightweight, binary protocol that carries the BGAPI commands from the host to the Bluetooth stack, and carries responses and events from the Bluetooth stack back to the host.
The Bluetooth SDK delivers a ready-made BGAPI serial protocol parser implementation both for the NCP target (EFR) and for the NCP host. It implements the serial protocol parser for all APIs provided by the Bluetooth stack. The host code developed on top of host API can be written to be identical to the code for the EFR, which allows easy porting of the application code from the EFR to a separate host or vice versa.
The GATT database developed with the Profile Toolkit is converted to a .c file and a .h file and included in the application project as a pre-build step when the firmware is compiled. Then, the GATT can be accessed with the Bluetooth stack GATT APIs or by a remote Bluetooth device.
The Bluetooth SDK is a full software development kit that enables you to develop applications on top of the Bluetooth stack using C programming language. The SDK also supports making standalone applications, where the Bluetooth stack and the application both run in the Wireless Gecko, or the network co-processor (NCP) architecture, where the application runs on an external host and the Bluetooth stack runs in the Wireless Gecko. SDK contents and folder structure are described in QSG169: Bluetooth SDK v3.x Quick-Start Guide.
UG434: Silicon Labs Bluetooth C Application Developer's Guide for SDK v3.x -Covers the Bluetooth stack v3.x architecture, application development flow, using the MCU core and peripherals, stack configuration options, and stack resource usage.
AN1260: Integrating v3.x Silicon Labs Bluetooth Applications with Real-Time Operating Systems -Describes how to integrate a v3.x Silicon Labs Bluetooth application with an RTOS, and demonstrate how a time- and event-driven application can be run in parallel with the Bluetooth stack.
AN1333: Running Zigbee, OpenThread, and Bluetooth Concurrently on a Linux Host with a Multiprotocol Co-Processor -Describes how to run any combination of Zigbee EmberZNet, OpenThread, and Bluetooth networking stacks on a Linux host processor, interfacing with a single EFR32 Radio Co-processor (RCP) with multiprotocol and multi-PAN support, as well as how to run the Zigbee stack on the EFR32 as a network co-processor (NCP) alongside the OpenThread RCP.
UG489: Silicon Labs Gecko Bootloader User's Guide for GSDK 4.0 and Higher -Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks in GSDK 4.0 and higher.
AN1309: Bluetooth Low Energy Interoperability Testing Report -Includes the results of the interoperability testing of Silicon Labs' ICs and Bluetooth Low Energy stack with Android and iOS smart phones.
SoftDevice S332 is a combined Bluetooth LE and ANT protocol stack supporting concurrent operation on the nRF52832 SoC.It is distributed and Bluetooth qualified by Garmin Canada, Inc.
The S310 is a combined Peripheral Bluetooth LE and ANT protocol stack for the nRF51422 that supports concurrent operation and all ANT features.It is distributed and Bluetooth qualified by Garmin Canada, Inc.
Need a specific setup of profiles for your project TI provides a wide range of device options (CC2560, CC2564 and CC2564MODN) to pick the ones you need, with the option to select or turn off the profiles you want running in your system. The TI dual-mode Bluetooth stack provides the same offering across all the platforms, so any setup can be run across any supported MCU (MSP430, TM4C or STM32F4) and TI dual-mode Bluetooth device (CC2560, CC2564 and CC2564MODN) combination. With a wide range of available profiles, from the common Advanced Audio Distribution Profile (A2DP) to Health Thermometer Profile (HTP), there is no limit to what can be created!
The flexibility, fast-to-market functionality and outstanding performance of the stack makes the TI dual-mode Bluetooth stack the perfect SDK for any project. Build your unique individual solution for your specific project from a vast list of classic and low energy profiles. What will you create with the Bluetooth stack
This section describes the functionality of the Bluetooth low energy protocolstack and provides a list of APIs to interface with the protocol stack. Thestack project and its associated files serve to implement the Bluetooth lowenergy protocol stack task. This is the highest priority task in the systemand it implements the Bluetooth low energy protocol stack as shown inFigure 27.
Most of the Bluetooth low energy protocol stack is object code in a singlelibrary file (TI does not provide the protocol stack source code as a matterof policy). A developer must understand the functionality of the variousprotocol stack layers and how they interact with the application and profiles.This section explains these layers.
The Bluetooth low energy protocol stack (or protocol stack) consistsof the controller and the host. This separation of controller andhost derives from the implementation of classic Bluetooth BR/EDRdevices, where the two sections are implemented separately. Anyprofiles and applications sit on top of the GAP and GATT layers ofthe protocol stack.
The Security Manager layer defines the methods for pairing andkey distribution, and provides functions for the other layers ofthe protocol stack to securely connect and exchange data with another device.
The main function is contained in source file main.c located in theIDE Start-up folder. This function is the starting point at run time.The purpose of main is to bring up the target with interrupts disabled,drivers initialized, power management on, TI-RTOS tasks created orconstructed, and start the SYS/BIOS kernel scheduler with interrupts enabled.The main function does not return. Main.c exists in the applicationproject; in other words main.c will be allocated within flash reserved forthe application.
Indirect Call Framework (ICall) is a module that provides amechanism for the application to interface with the Bluetooth lowenergy protocol stack services (that is, BLE-StackAPIs) as well as certain primitive services provided by TI-RTOS(for example, thread synchronization). ICall allows the applicationand protocol stack to operate efficiently, communicate, and shareresources in a unified TI-RTOS environment.
Because the ICall module is part of the application project, theapplication task can access ICall with direct function calls.Because the BLE-Stack executes at thehighest priority, the application task blocks until the response isreceived. Certain protocol stack APIs may respond immediately, butthe application thread bloc