BLE connects but connection is lost immediately

  • I wrote a simple script to discover a device with a fixed adv complete name, and connect to this device with his MAC address. After found it i need to connect to that device and discover services and characteristics, but after the connection i get a GATT object and connection closes when i try to discover his services.

    I verified the connection on my BLE device. The connection started normally. Anyway when i call the


    it fails and on my console i do not get the error message i wrote for that condition.

    The full code i wrote is here

    import binascii
    from network import Bluetooth
    bluetooth = Bluetooth()
    bluetooth.start_scan(10)    # start scanning with no timeout
    while bluetooth.isscanning():
        adv = bluetooth.get_adv()
        if(adv != None):
            name = bluetooth.resolve_adv_data(, Bluetooth.ADV_NAME_CMPL)
            if(name == 'xDev-FF:A1:B0-M01'):
                mac_address = binascii.hexlify(adv.mac)
                print("MAC: "+ str(mac_address))
                print("DATA: {}".format(binascii.hexlify(
                conn = bluetooth.connect(adv.mac)
                    print("Connection opened!")
                print("Connected to device with addr = {}".format(binascii.hexlify(adv.mac)))
                services =
                print("Service List")
                for service in services:

    And here the log

    MAC: b'f10403020100'
    DATA: b'020106120978444f4d2d46463a41313a42302d4d3031020afe000000000000'
    Connected to device with addr = b'f10403020100'
    Traceback (most recent call last):
      File "<stdin>", line 18, in <module>
    OSError: connection already closed

  • @salvoaerodev Sure, I hope this bug will be fixed soon as it could be nice to reupgrade firmware for already fixed bugs.

  • It's your same firmware @Arkaik, so probably it's a bug introduced with 1.6.12.b1. I will try to downgrade too. Thanks for your support and let's keep in touch for next updates on BLE.

  • Hi, I had the same problem, which firmware version are you using?

    Personnaly I was using 1.6.12.b1.
    Following this topic I found that downgrading to 1.4.0.b1 works.

    Hope it helps.

Pycom on Twitter