Professional Documents
Culture Documents
BT
BT
SDK configuration
First of all you should generate an image of the kernel with bluetooth support.
Fig.1
SDK configuration
# make menuconfig
Select your FOX board type then the Kernel version 2.6.15.
Select Driver settings then Enable Webcam support and then Bluetooth BlueZ libraries and tools and the sub-menus Open-Obex
and ussp-push as in Fig.1. Please note that we’re not going to use the servfox so you can leave the Webcam tools option
unselected.
# ./configure
… Page | 2
# make
At the end reflash the FOX board with the new fimage, according to the instructions you can find on www.acmesystems.it
website.
The bt.tar.gz tarball available at http://rossi.lorenzo.googlepages.com/foxboard contains, in the fox directory, three files you
have copy in the right position, in order to have the installation process completed.
The first one is the jpeg over bluetooth configuration shell script. The second one is the webcam driver, compiled as kernel
module and the last one is the jpeg over bluetooth server.
To test the dongle, simply copy these files in the specified directories, plug the bluetooth dongle and plug the camera.
Then insert the bluetooth and ov51x kernel modules and start the server, please be sure that the job.sh script has the execute
flag set.
# cd /mnt/flash
# chmod +x job.sh
# ./job.sh
Using /lib/modules/2.6.15/kernel/net/bluetooth/bluetooth.ko
Using /lib/modules/2.6.15/kernel/net/bluetooth/l2cap.ko
Using /lib/modules/2.6.15/kernel/net/bluetooth/rfcomm/rfcomm.ko
Using /lib/modules/2.6.15/kernel/drivers/bluetooth/hci_usb.ko
Using /lib/modules/2.6.15/kernel/drivers/media/video/videodev.ko
Using /mnt/flash/ov51x.ko
# dmesg
...
usb 1-1: new full speed USB device using hc-crisv10 and address 3
usb 1-2: new full speed USB device using hc-crisv10 and address 4
Bluetooth: Core ver 2.8
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP ver 2.8
Bluetooth: L2CAP socket layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM ver 1.6
Bluetooth: HCI USB driver ver 2.9
usbcore: registered new driver hci_usb
Linux video capture interface: v1.00
/projects/fox/ov51x/ov51x.c: USB OV519 video device found
/projects/fox/ov51x/ov51x.c: Sensor is an OV7670
/projects/fox/ov51x/ov51x.c: Device at usb-hc-crisv10.0-2 registered to minor 0
usbcore: registered new driver ov51x
/projects/fox/ov51x/ov51x.c: v1.65-1.12-lr : ov51x USB Camera Driver
# ./jpegbt –r 30000
Page | 3
Now you should be able to receive the jpeg video stream using the simple client for windows that you can find in the windows
directory of the bt.tar.gz tarball.
Plug the bluetooth dongle in your PC and in windows double-click the FOXJS.exe.
From the upper combo box select the bluetooth interface then please wait for the scan of the bluetooth devices in range.
When the scan completes, in the lower combo you should find a list, MAC address and name, of the devices in the range of your
PC. Select the device named IIT then from the Bluetooth menu, select Video.
In a few moments you should be able to see the video streaming.
Please note that the window client is only a small demo and in order to quit correctly you have to first uncheck the Video menu
voice and then close the window.
With the –r option, we choose to limit the bandwidth to approx 30 Kbps because some dongles we tested simply crashed under a
heavy load, the best performer was the Nortek BT600, with this dongle we were able to have 6 fps without bandwidth limitation.
Fig.2
jpeg over bluetooth windows client
Source code
In the bt.tar.gz tarball you can also find the directory src containing the source files and Makefile to build the the jpeg over
bluetooth server, in the same directory you can find the code of the windows client in the windows folder.
You can find the source code at http://rossi.lorenzo.googlepages.com/foxboard
At the same address you can find the ov51x driver for the supported webcams.
Lorenzo ROSSI
Robotics, Brain and Cognitive sciences
You can compile the kernel modules simply typing make clean and then make.
Page | 4
[root@localhost ov51x]# make clean
rm -f ov51x.o *.o
rm -f /projects/fox/ov51x/ov51x.o /projects/fox/ov51x/*.o
rmdir include/linux 2>/dev/null || true
rmdir include 2>/dev/null || true
[root@localhost ov51x]# make
make[1]: Entering directory `/projects/fox/ov51x'
make -C /home/fox/devboard-R2_01/os/linux-2.6 SUBDIRS=/projects/fox/ov51x EXTRA_CFLAGS="-DNOKERNEL -D__KERNEL__
-Wall -Wstrict-prototypes -D_GNU_SOURCE -O2 " modules
make[2]: Entering directory `/home/fox/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1'
LD /projects/fox/ov51x/built-in.o
CC [M] /projects/fox/ov51x/ov51x.o
Building modules, stage 2.
MODPOST
CC /projects/fox/ov51x/ov51x.mod.o
LD [M] /projects/fox/ov51x/ov51x.ko
make[2]: Leaving directory `/home/fox/devboard-R2_01/os/linux-2.6-tag--devboard-R2_01-1'
gcc-cris -isystem /home/fox/devboard-R2_01/target/cris-axis-linux-gnu/include -mlinux -mno-mul-bug-workaround -
Wall -Wshadow -O2 -g -DNOKERNEL -D__KERNEL__ -Wall -Wstrict-prototypes -D_GNU_SOURCE -O2 -c -o ov51x.o ov51x.c
make[1]: Leaving directory `/projects/fox/ov51x'
The windows client doesn’t need installation, just double-click on the FOXJS.exe. Keep in mind that you have to have the Visual
C++ 2005 Express Edition + SDK installed.
About…
Lorenzo ROSSI
Robotics, Brain and Cognitive Sciences
mobile : +393346532958
lorenzo.rossi@iit.it
http://www.iit.it
http://rossi.lorenzo.googlepages.com
http://www.linkedin.com/in/lorenzorossi