Bluetooth stack for OpenSolaris in user land


Hello all, I am Anand B and this page is dedicated for my final semester project during my Under Graduate Program at RVCE, Bangalore.

I primarily started this page as a common place to store my intermediate drafts, a very primitive source version management :-) but then I think it is time I updated this page with some details.
 
Firstly, this project was a joint effort of three guys, me, Amit Kundlia and Abhishek Kumar Sinha. We were the project partners. Although, we didn't receive much guidance throughout the project from anyone, I would like to mention one important person without whom we wouldn't have gotten this opportunity to work on this project - Mr. Ganesh Hiregoudar. He was my manager at Sun as part of the Sun Evangelist program.

The main idea for this project was to provide Bluetooth support for Open Solaris since it didn't have one. Since we were time bound, we took the option of building the stack in user space itself rather than kernel space. The catch is that this stack requires libusb library to talk to the Bluetooth dongle. So in some sense the physical layer for us was the USB layer. Rest of the stack will be similar to any Bluetooth stack. I implemented not only the stack but also some application protocols like OBEX FTP and object push profile etc so that we could demo our project. It works the best with Nokia phones since i had one which i used for testing extensively :). We are able to transfer huge files and get pretty good speeds for upload or download of files. I had used Sun Studio to do the development.

The project won the Third Prize in the OpenSolaris Community Innovation Awards 2008 (look into the contest entries). It was also one of the three Best Projects at Computer Science department, RVCE for the year 2008.

Most of the documentation got lost in mails. I managed to save this Powerpoint presentation though - Bluetooth Project. If you are interested then contact me, I can try and get some more documentation on this.

The code links shown below indicate the progression in which the project was completed, starting with just one .c file. This was our source management solution at that time and I don't feel like removing them now :). The final version of the drafts can be downloaded from the last link below or from the link provided in the above OpenSolaris awards page


Intermediate drafts -

hci_usb_draft_1.c 

hci_usb_transport_layer_draft_2.tar.bz2 

hci_usb_transport_draft_3.zip 

hci_usb_transport_draft_4.zip 

hci_usb_transport_draft_5.zip 

hci_usb_transport_draft_6.zip 

hci_usb_transport_draft_7.zip 

hci_usb_transport_draft_8.zip 

hci_usb_transport_draft_8a.zip

hci_usb_transport_draft_8b.zip 

hci_usb_transport_draft_8c.zip

hci_usb_transport_draft_9.zip

 

l2cap -

l2cap_draft_2a.zip

l2cap_draft_3_rfcomm_test.zip


rfcomm -

rfcomm_draft_1a.zip

rfcomm_draft_1b.zip

rfcomm_draft_2.zip

sdp -

sdp_draft_0a.zip

sdp_draft_1.zip

sdp_draft_3.zip


fixes - 

sdp_rfcomm_draft_3_fix_2.zip

sdp_rfcomm_draft_3_final_fix.zip

sdp_rfcomm_draft_3_final_fix_2.zip


fixed drafts

rfcomm -

rfcomm_draft_4.zip


not yet completed drafts -

obex_draft_0e.zip


working drafts -

constraints / to be done-

1) No implementation of retransmission or flow control or even fragmentation at l2cap layer 

2) File needs to be small.

3) Disconnection at higher layers not implemented 

obex_draft_1.zip 

obex_draft_2.zip


fixed the file size, transfer rates and fragmentation and re assembly part.

obex_draft_4b.zip


obex draft 5 -


works both directions for nokia phones, pc to phone with sony ericsson.


obex_FTP_draft_5.zip


obex_FTP_draft_7a_shell.zip

obex_FTP_draft_7b_shell.zip

obex_FTP_draft_8_shell.zip

obex_FTP_draft_9_shell.zip 

obex_FTP_draft_9a_shell.zip


Final drafts -

obex_FTP_draft_11_shell.zip

obex_FTP_draft_11a_shell.zip


Final working draft (same as the one mentioned in the OpenSolaris Awards page) -

obexftp1.zip

 


Sign in  |  Recent Site Activity  |  Terms  |  Report Abuse  |  Print page  |  Powered by Google Sites