Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    BLE and Wifi interference?

    Scheduled Pinned Locked Moved WiPy 2&3
    blewifiwipy 2.0
    7 Posts 4 Posters 2.7k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • P Offline
      Paco88
      last edited by Paco88

      Hi to everyone!
      I noticeed a possible issue using, at the same time, BLE and wifi.
      Once created a bluetooth object, if services are exposed, i can't make a socket connection, and also the ftp server has communication problem.
      Instead if a bluetooth object is created without services no issue is arised.
      In the following code i try to create 3 bluetooth services and after that, i try to make a mqtt broker connection.

      wlan = WLAN()
      wlan.init(mode = WLAN.STA, antenna = WLAN.EXT_ANT, channel = 11)
      bt = Bluetooth()
      id = str(ubinascii.hexlify(machine.unique_id(), ':'), 'utf-8')
      bt.set_advertisement(name = 'X-DOM - '+id[9:17].upper())
      bt.advertise(True)
      bt.callback(trigger=Bluetooth.CLIENT_CONNECTED | Bluetooth.CLIENT_DISCONNECTED, handler=conn_cb)
      
      srv_reset = bt.service(uuid=0x77777777, isprimary=True,  nbr_chars=2, start=True)
      reset = srv_reset.characteristic(uuid = 0x11111111, properties = Bluetooth.PROP_WRITE, value = 0)
      password = srv_reset.characteristic(uuid = 0x22222222, properties = Bluetooth.PROP_WRITE, value = 0)
      password.callback(trigger=Bluetooth.CHAR_WRITE_EVENT,handler= func_password)
      reset.callback(trigger=Bluetooth.CHAR_WRITE_EVENT,handler= func_reset)
      
      srv_refresh = bt.service(uuid=0x88888888, isprimary=True,  nbr_chars=1, start=True)
      refresh = srv_refresh.characteristic(uuid = 0x33333333, properties = Bluetooth.PROP_WRITE, value = 0)
      refresh.callback(trigger=Bluetooth.CHAR_WRITE_EVENT,handler= func_refresh)
      
      srv_config = bt.service(uuid=0x99999999, isprimary=True,  nbr_chars=4, start=True)
      ch_nets = srv_config.characteristic(uuid=0x44444444, properties = Bluetooth.PROP_READ, value = 0)
      ch_nets.callback(trigger=Bluetooth.CHAR_READ_EVENT, handler=func_scanning)
      net_config = srv_config.characteristic(uuid=0x55555555, properties = Bluetooth.PROP_WRITE, value = 0)
      net_config.callback(trigger=Bluetooth.CHAR_WRITE_EVENT, handler=func_net_cf)
      mqtt_config = srv_config.characteristic(uuid=0x66666666, properties = Bluetooth.PROP_WRITE, value = 0)
      mqtt_config.callback(trigger=Bluetooth.CHAR_WRITE_EVENT, handler=func_mqtt_cf)
      notify_config = srv_config.characteristic(uuid=0x12345678, properties = Bluetooth.PROP_WRITE, value = 0)
      notify_config.callback(trigger=Bluetooth.CHAR_WRITE_EVENT, handler=func_notify_cf)
      
      client = MQTTClient(CLIENT_ID,server="projectxdom.co.uk",user=uid,password=pwd_mqtt)
      client.set_callback(sub_cb)
      if not client.connect(clean_session = True):
          client.subscribe('/rgbled/color')
          client.subscribe('PippoBaudo')
      

      In the client.connect() the wipy return the error code OSError: -76

      Instead the following code works fine

      wlan = WLAN()
      wlan.init(mode = WLAN.STA, antenna = WLAN.EXT_ANT, channel = 11)
      bt = Bluetooth()
      id = str(ubinascii.hexlify(machine.unique_id(), ':'), 'utf-8')
      bt.set_advertisement(name = 'X-DOM - '+id[9:17].upper())
      bt.advertise(True)
      bt.callback(trigger=Bluetooth.CLIENT_CONNECTED | Bluetooth.CLIENT_DISCONNECTED, handler=conn_cb)
      client = MQTTClient(CLIENT_ID,server="projectxdom.co.uk",user=uid,password=pwd_mqtt)
      client.set_callback(sub_cb)
      if not client.connect(clean_session = True):
          client.subscribe('/rgbled/color')
          client.subscribe('PippoBaudo')
      

      Is it a bug, or my mistake?
      Tnx

      I 1 Reply Last reply Reply Quote 2
      • I Offline
        Innocenzo @Paco88
        last edited by

        @Paco88 I think that the INTERNAL ANTENNA and the EXTERNAL ANTENNA are too close and this can cause an interference.

        1 Reply Last reply Reply Quote 1
        • P Offline
          Paco88
          last edited by

          This may be a real problem...

          I 1 Reply Last reply Reply Quote 1
          • I Offline
            Innocenzo @Paco88
            last edited by

            @Paco88 Someone like @robert-hh, @jmarcelino or @bucknall maybe know some other motivation

            1 Reply Last reply Reply Quote 0
            • D Offline
              duffo64
              last edited by duffo64

              Hi @Paco88

              WiFi and BLE are on the same antenna and ESP32 controls access via coexistence (hardware or software).
              I see that you are explicitly enabling external antenna. What happens if you try with the onboard antenna ?

              Claudio

              /Claudio

              P 1 Reply Last reply Reply Quote 0
              • P Offline
                Paco88 @duffo64
                last edited by

                @duffo64
                Hi!
                No difference with internal or external antenna.

                1 Reply Last reply Reply Quote 0
                • R Offline
                  redimo
                  last edited by

                  Even with an External Antenna the BLE seems to have quite some problems. Sometimes it doesnt find anyhting at all.

                  1 Reply Last reply Reply Quote 0

                  Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                  Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                  With your input, this post could be even better 💗

                  Register Login
                  • 1 / 1
                  • First post
                    Last post

                  Pycom on Twitter

                  Pycom