# Patent

## Title
Method for making a host personal computer act as an accessory in bluetooth piconet

## Abstract

A method for making a PC act as an accessory device in BLUETOOTH piconet is disclosed. The method includes the steps of: a) providing a BLUETOOTH adapter; b) connecting the BLUETOOTH adapter to the personal computer (PC) with a software program running in an application level; c) installing a custom BLUETOOTH adapter bus driver to be accessed and operated solely by the software program; d) implementing all necessary BLUETOOTH software stack above and including a BLUETOOTH Host to Controller Interface (HCI) profile; and e) the PC serving as a slave device.

## Background
BACKGROUND OF THE INVENTION
1. Technical Field
The invention relates to wireless communication between a host computer and peripherals, particularly to connection between BLUETOOTH devices.
2. Related Art
BLUETOOTH is a wireless technology standard for exchanging data over short distances (using short-wavelength UHF radio waves in the ISM band from 2.4 to 2.485 GHz) from fixed and mobile devices, and building personal area networks (PANs). It can connect several devices, overcoming problems of synchronization.
BLUETOOTH is a packet-based protocol with a master-slave structure. One master may communicate with up to seven slaves in a piconet. BLUETOOTH is defined as a layer protocol architecture consisting of core protocols, cable replacement protocols, telephony control protocols, and adopted protocols. Mandatory protocols for all BLUETOOTH stacks are: LMP (Link Management Protocol), L2CAP (Logical Link Control and Adaptation Protocol) and SDP (Service Discovery Protocol). In addition, devices that communicate with BLUETOOTH almost universally can use these protocols: HCI (Host to Controller Interface) and RFCOMM (Radio Frequency Communications).
According to the BLUETOOTH specification, when a personal computer (PC), such as a desktop or a laptop computer, is connected with one or more external devices through BLUETOOTH, the PC generally serves as a BLUETOOTH host device and the external devices serve as BLUETOOTH accessory devices. In other words, a PC itself cannot be a Bluetooth accessory of other Bluetooth device. For example, when a smartphone is connected to a PC through BLUETOOTH, the keyboard, mouse, speaker, and microphone of the PC cannot be used by the smartphone.
To remove this restriction, a common solution is to replace all inherent drivers of the peripherals of the PC with proprietary drivers in a driver level. The proprietary driver will implement the Bluetooth software stack to make the PC serve as Bluetooth accessory for other Bluetooth device such as smart phone. Since the inherent Bluetooth software stack in driver level is replaced and cannot coexist with proprietary driver, some features or API provided by computer OS cannot be used. It will result in some Bluetooth applications based on original inherent software stack not working.
SUMMARY OF THE INVENTION
An object of the invention is to provide a method for making a host personal computer as an accessory in a BLUETOOTH piconet, which can automatically change a BLUETOOTH host PC to act as a BLUETOOTH accessory device. The method proposed in this invention is to connect another Bluetooth adapter to PC and implement Bluetooth software stack in application level on top of the adapter to let PC play Bluetooth accessory role. With this approach, the inherent Bluetooth software stack provided by OS can still work and normally make PC play Bluetooth host role. Therefore, the PC can play both Bluetooth host and accessory roles simultaneously and smoothly.
To accomplish the above object, the method for making a host personal computer as an accessory in BLUETOOTH piconet of the invention includes the steps of:
a) providing a BLUETOOTH adapter;
b) connecting the BLUETOOTH adapter to a personal computer (PC) with a software program running in application level;
c) installing a custom BLUETOOTH adapter bus driver to be accessed and operated solely by the software program;
d) implementing all necessary BLUETOOTH software stack above and including Bluetooth HCI profiles; and
e) the PC serving as a BLUETOOTH accessory device.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic view of hardware arrangement of the invention; and
FIG. 2 is a flowchart of the method of the invention.



DETAILED DESCRIPTION OF THE INVENTION
Please refer to FIG. 1. The invention provides a method for making a host personal computer act as a BLUETOOTH accessory in a BLUETOOTH piconet. The method is applied between a personal computer (PC) 2 and a BLUETOOTH device 1. The PC 2 may be a desktop computer or a laptop computer with at least one USB (universal serial bus) port, UART (universal asynchronous receiver/transmitter) port, or SDIO (Secure Digital Input Output) port. The BLUETOOTH device 1 may be a smartphone or tablet computer with a BLUETOOTH function. Of course, the PC 2 is provided with peripherals such as a speaker 21, a microphone 22, a keyboard 23, and a mouse 24.
Please refer to FIG. 2, which shows a flowchart of the method of the invention. In step S1, a BLUETOOTH adapter 3 is provided. The BLUETOOTH adapter 3 is provided with a USB interface, a UART interface, or an SDIO interface for connecting a corresponding port of the PC 2. In general, the BLUETOOTH adapter 3 will be a dongle when it has a USB interface. The BLUETOOTH adapter 3 is provided with a BLUETOOTH function. In step S2, the BLUETOOTH adapter 3 is connected to a corresponding port of the PC 2 and is installed with a software program. The software program is running in an application level. In step S3, the software program installs a custom BLUETOOTH adapter bus driver to access and operate solely by itself. In step S4, the software program implements all necessary BLUETOOTH software stack above and including the HCI (Host to Controller Interface) profiles.
While each implementation has specific requirements that are detailed in the BLUETOOTH specification, the BLUETOOTH core system architecture has many consistent elements. The system includes an RF transceiver, baseband and protocol stacks that enable devices to connect and exchange a variety of classes of data.
The BLUETOOTH device 1 exchanges protocol signaling according to the BLUETOOTH specification. Core system protocols are the radio (RF) protocol, link control (LC) protocol, link manager (LM) protocol and logical link control and adaptation protocol (L2CAP), all of which are fully defined in the BLUETOOTH specification.
The lowest three system layers—the radio, link control and link manager protocols—are often grouped into a subsystem known as the BLUETOOTH controller. This is a common implementation that uses an optional standard interface—the Host to Controller Interface (HCI)—that enables two-way communication with the remainder of the BLUETOOTH system, called the BLUETOOTH host. The step S4 implements all necessary BLUETOOTH software stack above and including the HCI, namely, the logical link control and adaptation protocol (L2CAP), the RFCOMM (Radio Frequency Communications) and the SDP (Service Discovery Protocol).
The BLUETOOTH application profiles include, but not limited to, HID (human interface device), HFP (Hand-Free Profile), A2DP (Advanced Audio Distribution Profile), and BLE (BLUETOOTH low energy). All the mentioned software stack is implemented in an application level instead of a driver level.
Finally, in step S5, the PC 2 is switched to serve as a BLUETOOTH accessory device in the piconet after step S4 and can be used to wirelessly connect other BLUETOOTH devices. As a result, the peripherals of the PC 2, such as the speaker 21, the microphone 22, the keyboard 23, and the mouse 24 can become accessory devices of the BLUETOOTH device 1.
In sum, by the method of the invention, a personal computer 2 can be automatically and stably switched to serve as an accessory device in a BLUETOOTH piconet. This is very helpful for those users who connect their handheld computers to a personal computer through BLUETOOTH.
It will be appreciated by persons skilled in the art that the above embodiment has been described by way of example only and not in any limitative sense, and that various alterations and modifications are possible without departure from the scope of the invention as defined by the appended claims.

## Claims

1. A method for making a personal computer act as an accessory in BLUETOOTH piconet, comprising:
a) providing a BLUETOOTH adapter;
b) connecting the BLUETOOTH adapter to the personal computer (PC) with a software program running in an application level;
c) installing a custom BLUETOOTH adapter bus driver to be accessed and operated solely by the software program;
d) implementing all necessary BLUETOOTH software stack above and including a BLUETOOTH Host to Controller Interface (HCI) profile; and
e) the PC serving as a slave device, wherein the slave device is adapted to be an accessory device for a handheld computer, wherein the PC plays both Bluetooth host and accessory roles simultaneously.

2. The method of claim 1, wherein the BLUETOOTH adapter has a USB (universal serial bus) interface, UART (universal asynchronous receiver/transmitter) interface, or SDIO (Secure Digital Input Output) interface.

3. The method of claim 2, wherein the BLUETOOTH adapter is a dongle when it has a USB interface.

4. The method of claim 1, wherein step d) further comprises implementing a plurality of protocols, wherein the protocols comprise, an L2CAP (logical link control and adaptation protocol), an RFCOMM (Radio Frequency Communications) and an SDP (Service Discovery Protocol).

5. The method of claim 1, wherein step d) further comprises implementing a plurality of BLUETOOTH application profiles, wherein the BLUETOOTH application profiles comprise, an HID (human interface device), HFP (Hand-Free Profile), A2DP (Advanced Audio Distribution Profile), and BLE (BLUETOOTH low energy).