10 years, 11 months ago.

BlueUSB Bluetooth Stack Software

Dear MBED Staff:

Please let me know if you believe your BlueTooth stack is appropriate for our project. Also any comments and suggestions about the functionality and implementation alternatives would be highly appreciated.

A description of the original BlueTooth project requirements for the project follows. For conciseness and clarity, the main component of the project is referred as the EDEVICE for the remainder of this document. The EDEVICE uses an off the shelf USB BlueTooth Adapter/Dongle to transfer data to other BlueTooth enabled devices. However, we are open to other BlueTooth data transfer solutions as long as the cost is relatively low. (e.g. A UART or USB BlueTooth module with an Apple MFI authentication chip interface.)

The following kinds of BlueTooth enabled devices initiate BlueTooth pairings/connections with the EDEVICE and retrieve small amounts of ASCII data from log files on the EDEVICE. (i.e. The log files contain EDEVICE diagnostic and event information.) The data rate is low and the distance between the other devices and the EDEVICE is typically 3 meters or less. They are termed PEER systems for the remainder of this document and are "master" systems in terms of BlueTooth terminology.

  • Laptops and PCs with MS Windows, Linux, or MAC OS(es).
  • Android based phones and PDAs.
  • IOS based iPhones, iPads, etc.

PEER system native applications and APIs should be used as much as possible. For example, on IOS platforms the EAF framework must be used by Apple certified Apps, versus the Android platforms which can implement the necessary functionality with BlueTooth Sockets and the SPP BlueTooth profile. It expected custom applications will be needed on most peer systems. (i.e. On MS Windows systems standard COM port tools may provide the required functionality.)

The EDEVICE is an RTOS based system whose MCU has integral USB ports. It uses an off the shelf generic BlueTooth Adapter/Dongle for connectivity and data transfer with PEER systems. It works with Adapter/Dongles that don't require custom drivers and are compatible with the BlueTooth stack and USB drivers commonly found on Windows PCs and Laptops. The EDEVICE MCU cannot use blocking APIs as it must perform other functions and BlueTooth data transfer concurrently. The EDEVICE does not need to support multiple concurrent BlueTooth connections. It is a "slave" in terms of BlueTooth terminology. The EDEVICE BlueTooth requirements and relevant attributes are as follows:

  • The EDEVICE BlueTooth software should have the highest level of SIG certification possible.
  • Data transfer should be done with standard APIs and protocols as much as possible on both the EDEVICE and PEER systems.
  • The host BlueTooth stack runs on the EDEVICE MCU. It includes the SPP and other typical BlueTooth profiles needed for data transfer. It also includes Apple IAP and MFI interface software/firmware components.
  • The EDEVICE MCU is interfaced with an Apple MFI authentication chip.
  • The EDEVICE MCU is interfaced with the BlueTooth Adapter/Dongle via a USB port with the help of the HCI interface.
  • A custom application running on the EDEVICE MCU accepts incoming connections/pairings from PEER systems and transfers data from log files to PEER systems. PEER systems that don't have native applications with the necessary functionality have peer applications.
  • The EDEVICE MCU has a USB driver and the software necessary to provide the USB CDC class and other USB functionality needed for bulk data transfer. The functionality is implemented with a minimum number of indirectly related software components.

Best Regards,

Paul Romero

1 Answer

10 years, 11 months ago.

BlueUSB is not one of the official libraries, so mbed staff is not responsible for it. Good chance it does what you want it to do. There is also the new official USBHost library (http://mbed.org/handbook/USBHost), and there are also some bluetooth libraries made with it, although they don't seem to be too user friendly currently. Still there is always the option to write it yourself.

Honestly the BlueUSB library is so easy to use (at least thats the impression I get from its page), that probably your best bet is simply to import it, connect bluetooth device, and play around with it a bit.

What is the approprate forum for this question. In particular, to determine if the BlueUSB library has been previously been used in a way which is compatible with Apple iOS platforms like the iPhone. Remember, it is is necessary to use an MFI chip for authentication to obtain Apple certification.

posted by Paul Romero 13 Jun 2013

Well you could hope someone here reads it, but good chance no one ever tried that. I wasn't familiar with MFI, so I googled it a bit, but it looks to me if you got the money to get an MFI chip you can also hire someone to do some reprogramming: Another reason why I doubt you will find much, MFI chips are kinda expensive for the hobbyist, and if a company ever used mbed in the first place to make an apple accesoire, they probably didn't publish the source code. The google also told me though that at least part of bluetooth devices does not require MFI: http://mfi.apple.com/faqs#1-1

Quote:

Non-electronic cases and accessories which do not use Apple's licensed technology (e.g., Bluetooth Low Energy or standard Bluetooth profiles supported by iOS) are not part of the MFi Program.

posted by Erik - 13 Jun 2013