BLE and Wifi interference?



  • 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



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



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



  • 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



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



  • This may be a real problem...



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


Log in to reply
 

Looks like your connection to Pycom Forum was lost, please wait while we try to reconnect.