Python BLE Bleak Device not Found - python

I'm trying to use the Adafruit_CircuitPython_BLE_iBBQ python library (see https://github.com/adafruit/Adafruit_CircuitPython_BLE_iBBQ) to connect to the INKBIRD Smart Wireless BBQ Thermometer. I have used conda and the circuitpython docs to successfully create a circuit python environment. I'm running the sample code at https://docs.circuitpython.org/projects/ble_ibbq/en/latest/examples.html.
It correctly finds the iBBQ advertisement but then throws
bleak.exc.BleakError: Device with address FC:45:C3:38:76:03 was not found.
Does anyone know how this might be addressed?
Thank you!

Related

How to determine the Bluetooth LMP with python on Windows

Been banging my head on this problem for a while now and tried various python libraries:
https://github.com/Infinidat/infi.devicemanager - lists usb devices but not the LMP
bleak - allows for scanning but supplies no information about the local bluetooth adapter
There's a tool called Bluetooth Version finder (https://www.sordum.org/10772/bluetooth-version-finder-v1-2/) which does work so there has to be a way to do this in software
That page also explains how to do it manually.
If anyone knows of a python or c# library that is able to give me LMP version of the local bluetooth adapter or can point me to code that could be ported it would be greatly appreciated.

Connecting Thorlabs Powermeter via pymeasure

i'm currently trying to connect with my Thorlabs PM100USB Powermeter via pymeasure.
I'm using Win10 und pymeasure is installed via anaconda.
I found an old python script of my lab in an archive which connected to the powermeter via:
adapter = 'USB0::0x1313::0x8078::P0025186::INSTR'
power_meter = thorlabspm100usb.ThorlabsPM100USB(adapter)
But at this point I'm completly lost.
How do I get this address?
And yes, I have read the chapter on connecting to a device in the pymeasure documentation, but I can't figure it out either.
If I try to run the the code above the following error is raised:
VisaIOError: VI_ERROR_RSRC_NFOUND (-1073807343): Insufficient location information or the requested device or resource is not present in the system.
May anyone help me? Thanks a lot!

FTDI 232H: USB Port 'Locked' to a physical port under Windows

Working with an Adafruit FTDI 232H Breakout assembly. I've already asked at Adafruit and FTDI and I'm still clueless. Writing in Python using the Adafruit-provided libraries and the FTDI libraries. Very new to Python and the FTDI 232H device...
Using Windows 10 Pro
I am able to successfully install the 'drivers' for the Adafruit based on this tutorial (specifically the Windows portion):
https://learn.adafruit.com/adafruit-ft232h-breakout?view=all
In the end, the interface will work, but what happens is that the device seems to be locked to a physical USB port. If I move the device to another USB port on the same machine, it is not recognized.
Based on some reading I've done, it seems like the driver, although installed in Windows, can only associate with the device on one port. Some say that Windows uses the serial number to keep track of what device uses what driver.
I have observed, using USBDView, that this device is not displaying a S/N. I have other devices that do not display a serial number and they can move from port to port without issue. This leads me to believe that the S/N tracking may not be 100% true in Windows. The Adafruit board does have a S/N in the EEPROM, but for some reason that information is not being provided to Windows / USBDView. I've not been able to successfully access the EEPROM via the FTProg utility.
I suspect that this might have something to to with the libusbK library that is installed via Zadig tool (again in the instructions) but I am not sure. FTDI says that there should not be any issue using the libusbK library.
Can anyone out there give me some pointers on:
Is it accurate that Windows uses the S/N to keep track of what driver goes with what device?
If so, how to get the FTDI device to display the S/N?
Is there some other setting in Windows that needs to be changed to allow this device to be used on other physical ports?
Is there any other utility like FTProg that could be used to work with the EEPROM?
Am I just missing something simple, Noob-style?
Thank you in advance,
I seem to recall a similar case related to COM port enumeration and Windows where the COM port enumeration is a hash of assorted variables including the PCI bus #, device #, etc. We witnessed this through the Microsoft devcon utility which is priceless and is a command line version of Device Manager.
https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/devcon
https://blogs.technet.microsoft.com/deploymentguys/2009/12/16/where-to-find-devcon-exe/
If you google around, you can find the compiled version of this invaluable tool. With confidence, believe this tool will assist you to debug your USB port mystery. Good luck.

Checking whether a plugged in device is hotpluggable or not using udev

I have a python script to get plugged in device details. I am using udev library to manage the connected devices.
From my python script I want to check whether the plugged in device is hotpluggable or not. How can I find this using udev library.
Earlier I was using HAL library to manage device. In HAL I was able to get this information from 'storage.hotpluggable' property of HAL device.
Please help. Thanks in advance....

BlueZ-4.101 on embedded ARM device

I'm implementing Bluetooth on an embedded device and have a few questions about the BlueZ protocol stack. I'm using BlueZ-4.101 (do not have the option to upgrade to BlueZ-5), and do not have Python available.
Here are my questions after spending some time looking into BlueZ:
Is bluetoothd needed in my situation? As in, is it just a daemon that handles Python dbus messages between user-space and the kernel, or is it more? I've looked through the source and can only find mostly dbus related calls
How does one determine the value of DeviceID in /etc/bluetooth/main.conf? I found these instructions (section 3.4), but they are for a different platform using BlueZ 5
Will sdptool work without setting the DeviceID value? I've tried the following command and receive timeouts every time (only for my local device):
# sdptool browse local
Browsing FF:FF:FF:00:00:00 ...
Service Search failed: Connection timed out
Is it viable to replace all of the python simple-agent scripts with libbluetooth instead, or do I need to try and port them over to a supported scripting language?
Any help would be greatly appreciated!!!
If more logs are needed I can try and get them.

Categories

Resources