Community
cancel
Showing results for 
Search instead for 
Did you mean: 
LGran3
New Contributor I
1,390 Views

Can not Connect two Edisons Using Connman

Hey there,

Hardware:

Edison Arduino bb and Mini bb with updated Yocto images

I am going through the instructions provided at 6.6.2 in the Intel Edison http://download.intel.com/support/edison/sb/edisonbluetooth_331704004.pdf bluetooth guide , page 44. The "PAN test between two Intel Edison devices" section.

I've gotten as far as item 9 on page 47, "from the first (PANU) device, connect to the second (PAN-NAP) device using the connmanctl utility:"

The commands I am using are the same as listed, except after I use:

connmanctl> services

only my wifi is listed, not the bluetooth service.

I've paired and connected the devices using bluetoothctl utility and made the 1st device trusted. I have also enabled bluetooth in connman, with it telling me that it is already enabled. I've followed all the directions up till the point where I can't see my bluetooth service. I don't understand what I am missing.

Another note is that I tried to connect anyway:

connect bluetooth_MACADDRESSOFDEVICE1_MACADDRESSOFDEVICE2

which gives me this error:

Method "Connect" with signature "" on interface "net.connman.Service" doesn't exist

I'm guessing this has something to do with the bluetooth service not showing up, but thought it may be of importance.

4 Replies
Pedro_M_Intel
Employee
64 Views

Hello postITnote,

That's strange, could you show me what exactly you have tried so far? I would like to see if I can replicate it with my Edison. Please make sure to separate what you did on the fisrt Edison from what you did on the second Edison.

Peter.

LGran3
New Contributor I
64 Views

Sure! I just went through the process again. I may have found the problem, but it still does not make sense to me. Here are my steps and relevant log prints. Was going to make a gist, but perhaps the formatting here will actually make it more readable, so here it goes.

Chapter 4 – scanning and connecting

Have already scanned and opbatined MAC addresses of device 1 and device 2

Device 1 and 2

Rfkill unblock bluetooth

Bluetoothctl

Agent KeyboardDisplay

Default-agent

Device 1 log - all successful

root@tesla:~# rfkill unblock bluetooth

root@tesla:~# bluetoothctl

[NEW] Controller 11:22:33:44:55:77 tesla [default]

[NEW] Device 11:22:33:44:55:66 turing2

[bluetooth]# agent KeyboardDisplay

Agent registered

[bluetooth]# default-agent

Default agent request successful

Device 2 gave some success read out

Device 1 when trying to pair and connect, I get an error, but then connect and get the info from each peer, which seems to tell me it's paired and connected

[bluetooth]# pair 11:22:33:44:55:66

Attempting to pair with 11:22:33:44:55:66

Failed to pair: org.bluez.Error.AlreadyExists

[bluetooth]# connect

[bluetooth]# connect 11:22:33:44:55:66

Attempting to connect to 11:22:33:44:55:66

Failed to connect: org.bluez.Error.Failed

[CHG] Device 11:22:33:44:55:66 Connected: yes

[CHG] Device 11:22:33:44:55:66 Name: BlueZ 5.24

[CHG] Device 11:22:33:44:55:66 Alias: BlueZ 5.24

Device 2

After connecting from device 1

[bluetooth]#

[CHG] Device 11:22:33:44:55:77 Connected: yes

Device 2 and 1 (with each other's MAC addresses)

Info 11:22:33:44:55:66

Says that they are paired and connected

exit

Chapter 6.6 personal area networking

  • - Edison to another edison

Downloaded test file and from bluez package and copied it to home/root on both devices

Did the enabling and connecting, shown above.

  1. 6.6.2 PAN test between two edison devices

Device 1 and 2

root@tesla:~# systemctl start connman

root@tesla:~# connmanctl enable bluetooth

Error bluetooth: Already enabled

root@tesla:~# hciconfig

hci0: Type: BR/EDR Bus: UART

BD Address: 11:22:33:44:55:66 ACL MTU: 1021:8 SCO MTU: 64:1

UP RUNNING PSCAN

RX bytes:3746 acl:47 sco:0 events:254 errors:0

TX bytes:217873 acl:392 sco:0 commands:47 errors:0

Device 2

./test/test-nap br0

Server for nap registered to br0

Press CTRL-C to disconnect

CTRL-C

Brctl addbr br0

Ifconfig br0 192.168.1.1

Bluetoothctl

Discoverable on

Agent DisplayOnly

Default-agent

Device 1

Bluetoothctl

Agent DisplayOnly

Default-agent

Scan on

Pair 11:22:33:44:55:66

 

Failed to pair: org.bluez.Error.AlreadyExists

Connect 11:22:33:44:55:66

 

Attempting to connect to 11:22:33:44:55:66

Connection successful

Exit

Device 2

Trust 11:22:33:44:55:77

Trust succeeded

Device 1

Connmanctl

Connmanctl>services

Network name Wifi_numbers_managed_psk

Is it because there was an error when trying to initially pair? I searched for a remedy to it, but haven't succeeded eliminating after it told me it paired successfully the first time I ever enabled bluetooth. These steps are how to create a bluetooth network

Also, when I do connect and it says to ping the IP, is it the IP of the bridge? These steps are how to create a bluetooth network and not WiFi, so I'm confused as to why I would be pinging the boards IP address, I already know how to connect one board to another's network when one is in AP mode.

Thanks!

Pedro_M_Intel
Employee
64 Views

@postITnote,

I've been trying to create my own PAN; nevertheless I am facing the same issue as you. Please let me take a deeper look at this and I will try to get back to you as soon as possible.

Peter.

Pedro_M_Intel
Employee
64 Views

After some testing we were able to create a PAN on Edison, my Edison2 was missing the bluez-test packages so I downloaded them to the board. These are the steps we took:

On Edison2:

Downloaded http://www.bluez.org/release-of-bluez-5-18/ http://www.bluez.org/release-of-bluez-5-18/ to home directory

Untar file

# tar -xvf bluez-5.18.tar.xz

On both Edison boards, enable Bluetooth and start connman:

# rfkill unblock bluetooth

# systemctl start connman

# connmanctl enable bluetooth

# hciconfig

On Edison2:

Go to bluez directory (untared file)

# cd bluez-5.18

Start NAP service:

# ./test/test-nap br0 &

Add bridge:

# brctl addbr br0

Set static IP:

# ifconfig br0 192.168.1.1

Launch Bluetooth* controller utility, set discoverable on and register agent:

# bluetoothctl

# discoverable on

# agent DisplayOnly

# default-agent

On Edison1:

Launch Bluetooth* controller utility, register agent, scan and pair with Edison2:

# bluetoothctl

# agent DisplayOnly

# default-agent

# scan on

# pair

# scan off

# exit

On Edison2:

# trust

On Edison1:

# connmanctl

# services

* Edison2 bluetooth_XXXX_XXXX

# connect bluetooth_XXXX_XXXX

# exit

Both Edison boards should have bnep interface:

ping 192.168.1.10

Peter.

Reply