4 Replies Latest reply on Dec 10, 2015 7:35 AM by Intel_Peter

    Can not Connect two Edisons Using Connman

    postITnote

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

        • 1. Re: Can not Connect two Edisons Using Connman
          Intel_Peter

          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.

          • 2. Re: Can not Connect two Edisons Using Connman
            postITnote

            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!

            • 3. Re: Can not Connect two Edisons Using Connman
              Intel_Peter

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

              • 4. Re: Can not Connect two Edisons Using Connman
                Intel_Peter

                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/ 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 <Edison2>

                    # scan off

                    # exit

                   

                On Edison2:

                    # trust <Edison1>

                 

                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.