Manually using Bluetooth

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(A2DP)
Line 63: Line 63:
 
=== A2DP ===
 
=== A2DP ===
  
The A2DP codec, SBC, runs pretty well now in 32-bit fixed-point math. There is test code in the bluetooth-alsa.sf.net plugz module for using alsa plugins to send A2DP audio out and it's starting to be reimplemented "properly" into the bluez core.
+
The A2DP codec, SBC, runs pretty well now in 32-bit fixed-point math. There is test code in the bluetooth-alsa.sf.net plugz module for using alsa plugins to send A2DP audio out and it's starting to be reimplemented "properly" in the bluez core.
  
 
=== Headset Audio ===
 
=== Headset Audio ===

Revision as of 07:48, 11 May 2007

At the moment, we've just started to introduce Bluetooth into our Neo1973 Hardware.

We have quite a lot of plans about what exactly Bluetooth should be used for.

Contents

Bluetooth Functions

HID (Human Input Device)

Being able to use HID devices

We want to be able to use a bluetooth keyboard to type into the various applications of our Neo1973.


Acting as HID device

We want to be able to use the Neo1973 as a HID device, being able to use it as controller for presentations.

OBEX

Networking

Bluetooth should behave just like our usbnet and provide full TCP/IP access to the phone. BNEP has to be used.

On the laptop:

  • Start bluetooth
elara /home/alphaone # /etc/init.d/bluetooth start
  • Start pand as server
elara /home/alphaone # pand -s
  • As soon as pand is started on the phone configure your IP address
elara /home/alphaone # ip a add 10.0.0.1/24 dev bnep0
elara /home/alphaone # ip l set bnep0 up
  • Configure IP forwarding and masquerading to your liking

On the phone:

  • Insert the module and power up bluetooth
root@fic-gta01:~$ modprobe gta01-pm-bt # module may be built-into recent kernels
root@fic-gta01:~$ echo "1" > /sys/bus/platform/devices/gta01-pm-bt.0/power_on 
  • Scan for the laptop
root@fic-gta01:~$ hcitool scan
Scanning ...
        00:0E:6D:C0:0l:6A       Sho
        00:20:E0:5A:FE:C8       BlueZ (0)
  • Connect to the laptop pand
root@fic-gta01:~$ pand -c 00:20:E0:5A:FE:C8
  • Configure your IP address
ip a add 10.0.0.2/24 dev bnep0
ip r add default via 10.0.0.1
  • Enjoy
root@fic-gta01:~$ wget http://www-public.tu-bs.de:8080/~y0019680/tmp/thereisnophone.mp3 
Connecting to www-public.tu-bs.de[134.169.9.108]:8080
thereisnophone.mp3   100****************************************************|   266 KB 00:00:00 ETA
root@fic-gta01:~$ madplay thereisnophone.mp3 
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
630 frames decoded (0:00:22.6), -0.9 dB peak amplitude, 0 clipped samples

A2DP

The A2DP codec, SBC, runs pretty well now in 32-bit fixed-point math. There is test code in the bluetooth-alsa.sf.net plugz module for using alsa plugins to send A2DP audio out and it's starting to be reimplemented "properly" in the bluez core.

Headset Audio

Bluez has an audio daemon for headset audio that should work to set up the control connection to the headset. It will need hooks in the openmoko gui.

Hopefully FIC can provide more detail about what magic needs to happen so system audio uses the bluetooth SCO audio channel.

Further reading

http://www.holtmann.org/papers/bluetooth/ols2006_slides.pdf http://wiki.bluez.org/wiki/Audio#org.bluez.Audio

Personal tools

At the moment, we've just started to introduce Bluetooth into our Neo1973 Hardware.

We have quite a lot of plans about what exactly Bluetooth should be used for.

Bluetooth Functions

HID (Human Input Device)

Being able to use HID devices

We want to be able to use a bluetooth keyboard to type into the various applications of our Neo1973.


Acting as HID device

We want to be able to use the Neo1973 as a HID device, being able to use it as controller for presentations.

OBEX

Networking

Bluetooth should behave just like our usbnet and provide full TCP/IP access to the phone. BNEP has to be used.

On the laptop:

  • Start bluetooth
elara /home/alphaone # /etc/init.d/bluetooth start
  • Start pand as server
elara /home/alphaone # pand -s
  • As soon as pand is started on the phone configure your IP address
elara /home/alphaone # ip a add 10.0.0.1/24 dev bnep0
elara /home/alphaone # ip l set bnep0 up
  • Configure IP forwarding and masquerading to your liking

On the phone:

  • Insert the module and power up bluetooth
root@fic-gta01:~$ modprobe gta01-pm-bt # module may be built-into recent kernels
root@fic-gta01:~$ echo "1" > /sys/bus/platform/devices/gta01-pm-bt.0/power_on 
  • Scan for the laptop
root@fic-gta01:~$ hcitool scan
Scanning ...
        00:0E:6D:C0:0l:6A       Sho
        00:20:E0:5A:FE:C8       BlueZ (0)
  • Connect to the laptop pand
root@fic-gta01:~$ pand -c 00:20:E0:5A:FE:C8
  • Configure your IP address
ip a add 10.0.0.2/24 dev bnep0
ip r add default via 10.0.0.1
  • Enjoy
root@fic-gta01:~$ wget http://www-public.tu-bs.de:8080/~y0019680/tmp/thereisnophone.mp3 
Connecting to www-public.tu-bs.de[134.169.9.108]:8080
thereisnophone.mp3   100****************************************************|   266 KB 00:00:00 ETA
root@fic-gta01:~$ madplay thereisnophone.mp3 
MPEG Audio Decoder 0.15.2 (beta) - Copyright (C) 2000-2004 Robert Leslie et al.
630 frames decoded (0:00:22.6), -0.9 dB peak amplitude, 0 clipped samples

A2DP

The A2DP codec, SBC, runs pretty well now in 32-bit fixed-point math. There is test code in the bluetooth-alsa.sf.net plugz module for using alsa plugins to send A2DP audio out and it's starting to be reimplemented "properly" into the bluez core.

Headset Audio

Bluez has an audio daemon for headset audio that should work to set up the control connection to the headset. It will need hooks in the openmoko gui.

Hopefully FIC can provide more detail about what magic needs to happen so system audio uses the bluetooth SCO audio channel.

Further reading

http://www.holtmann.org/papers/bluetooth/ols2006_slides.pdf http://wiki.bluez.org/wiki/Audio#org.bluez.Audio