BeaglePhone

In tutorial we’ll show you how to use an UMTS dongle to perform a voice call using a Beagle Bone Black.
We use ophono and bluez. In this way it is possible to issue commands via dBus.
Pulseaudio is a configurable audio server for linux.  We developed a small program that interact with pulse to send and receive audio data from modem

Requirements

  • BeagleBoneBlack
  • micro SD 16GB class 10
  • Powerd HUB USB
  • UMTS dongle: K3765
  • LCD TouchScreen Monitor

Setup

You can install Ubuntu Saucy on BeagleBoneBlack following these steps:

$m[2]

NetInstall Method. You will need a 8GB SD card or greater. Download the netinstall script:

$m[2]

We chose this Ubuntu distribution:

distro saucy (13.10)

Device: <board> selection:

BeagleBone Black      – am335x-boneblack

Put an SD in your linux box and run this command, where sdX is the device identifier of micro SD and launch installation script

$m[2]

Other Options:

$m[2]

Place micro SD card into Beagle Board Black , connect ethernet cable and boot. Choose right network option according to your board

See Robert C Nelson notes for testing procedure: https://github.com/RobertCNelson/netinstall/blob/master/test.Ubuntu

Install additional software

$m[2]

Build environment

In order to compile application for beagle bone black we created a build environment on our linux box.

Our distro is Ubuntu Saucy 13.10
We used gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux as cross-compile toolchain

Install debootstrap and schroot

$m[2]

Create chroot environment

$m[2]

Edit /etc/schroot/schroot.conf set your favorite users and groups

$m[2]

Edit chroot apt sources /var/chroot/etc/apt/sources.list as follow

$m[2]

Copy arm toolchain in chroot

$m[2]

test chroot

$m[2]

create startup script setupenv.sh

$m[2]

add it to .bashrc or .profile

Update repositories

$m[2]

Add pulse library to chroot build environment

$m[2]

Compile pulse audio example pa_cat.c with following command:

$m[2]

Bluetooh headset connection

We use pulse audio to connect headset. There is an issue on BeagleBone USB port and SCO packet. So we fixed USB port speed to FULL-SPEED

$m[2]

Check ACL

$m[2]

Then test pulse audio and bluetooth device. First you should discover your bluetooth headset and pair it

$m[2]

Then you can link this device to audio services with following commands

$m[2]

Now you have to check if pulseaudio recognize it

check if pulse audio recognizes bluetooth audio
$m[2]

If you can’t see any bluetooth device, wait some second and retry If there isn’t any bluetooth device linked to pulse, try restarting pulseaudio

$m[2]

For full-duplex communication we need to put headset in HSP mode

$m[2]

It is possibile to test audio linking standard mic input to bluetooth speaker

$m[2]

or you can link standard speaker to bluetooth mic

$m[2]

Place a call with an UMTS Dongle

Check if your modem is recognized:

$m[2]

If modem is present you can start audio communication with following application:

You can use local audio and mic port

$m[2]

or bluetooth headset

$m[2]

Then call your favorite number and test audio performance

$m[2]

Notes

If your dongle doesn’t support voice service, try to unlock with DC-Unlocker or look for another Dongle.

In next tutorials we’ll add more features to our phone like SMS, Internet Sharing via Bluetooth PAN and a GUI.

Stay tuned

Simone nel 2014 con Matteo Bissoli e Federico Tognetti fonda la software house Netgrid. Nel lavoro ha dimostrato ottime capacità di problem-solving ed esprime al meglio le sue competenze tecniche in applicazioni mobile, Internet of Things e software embedded. Nutre una forte passione verso il mondo della tecnologia e l’elettronica. Sente proprio il mondo dei Makers e sogna di creare un giorno un FabLab.