GSoC/GCI Archive
Google Summer of Code 2011


Web Page:

Mailing List:

BlueZ provides support for the core Bluetooth layers and protocols. It is flexible, efficient and uses a modular implementation. It has many interesting features such as:

* Complete modular implementation

* Symmetric multi processing safe

* Multithreaded data processing

* Support for multiple Bluetooth devices

* Real hardware abstraction

* Standard socket interface to all layers

* Device and service level security support


Currently BlueZ consists of many separate modules:

* Bluetooth kernel subsystem core

* L2CAP and SCO audio kernel layers

* RFCOMM, BNEP, CMTP and HIDP kernel implementations

* HCI UART, USB, PCMCIA and virtual device drivers

* General Bluetooth and SDP libraries and daemons

* Configuration and testing utilities

* Protocol decoding and analysis tools

* Audio Service witch gives support to profiles: HSP, HFP, AVDTP, A2DP, AVRCP

* Input Service profiles: HID

* Network Service profiles: PAN

* Serial Service profiles: RFCOMM

* Obex daemon which provides the following profiles: OPP, FTP, PBAP and SYNC


  • Implement the Video Distribution Profile(VDP) Since Bluetooth bandwidth is comparatively lower a low bitrate encoding should be used. Ideally MPEG-4 Part 2 (H263) or MPEG-4 Part 10 (H264) with low bitrate should work without delays. To support these formats existing GStreamer plug-ins can be used and few can be developed to support them.
  • Implementing the Basic Imaging Profile My proposal is to implement the Basic Imaging Profile in the obexd project. This would be done similarly to existing profile implementations, but also addressing certain issues specific to this Profile.
  • Improve EDS backend of Phone Book Access Profile (PBAP) Main idea is to develop/extend new data source (backend) for Phone Book Access Profile. For now there are two (fully functional) backends -- Tracker and Dummy (based on filesystem). Because MeeGo developers recently decided to use Evolution Data Server (once again) as central data store, there is a need to write appropriate data access module.
  • Nintendo Wii Remote Device Driver The aim of this project is to develop a linux kernel device driver for the Nintendo Wii Remote. This includes reverse-engineering the whole proprietary fake-HID protocol and implementing a clean input-device interface into the linux kernel. Additionally, a user-space library is developed to allow easy integration of Wii Remotes as input devices into existing applications.