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.
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