@Gijs actually I solved my problem before seeing this , anyway it is very interesting. In particular, my problem was solved by removing if not bt.isscanning(): bt.start_scan(-1) # start scanning with no timeout print('Trying to establish connection with Nord') connection = bt.connect('ac5fea133f19') I found out these commands were not needed and they broke my code.