I am attempting to connect to a weight-measuring scale using the following communication line: Laptop -> USB to DB-9 Serial adapter -> Scale. The problem I'm experiencing is that my laptop recognizes the adapter as the device on the COM port, thus when I check the VID and PID of the device, it gives me the IDs for the cable and not the scale. Is there some way to find the information for the device on the other end?
I am coding in Python using the PySerial library, but any general answer would be helpful. The adapter I'm using is a USB to UART PL2303 from Prolific Technology Inc. My OS is Windows 10.
I have tried connecting scales from multiple different brands using a USB-to-Serial adapter, and I get the same result. I haven't been able to establish a connection with any of them, with all queries to the scales not being responded to. Two such scales are the Sartorius Entris and the Mettler Toledo Excellence Plus.
EDIT: Responses are saying that serial devices do not have a VID or PID. In that case, how can I tell if a serial device is a certain device from a specific manufacturer? I'm trying to do this so I can recognize when a scale is plugged in and not some other device, using a Python program to communicate with the scale.
Serial devices dont have VID/PID pair.
In "historic" times PCs have two ports - parallel and serial (also known as RS-232). Serial devices are PnP devices, so dont need driver and because this no need VID/PID pair.
What scales are you used?
If industrial, is very possible that are based on RS-485 standard.
I am trying to have a Raspberry Pi Zero emulate a Cisco USB console interface (non-FTDI version). At a high level this is actually not that difficult:
The g_serial driver running on the Pi can accept Cisco idvendor and idproduct parameters, so it will look roughly the same on a lsusb output
The Linux host uses the same driver, cdc_acm, to connect to the Pi and the Cisco Device
The one problem I am having is that the kernel device path is slightly different between the two.
Cisco: /sys/bus/usb/devices/1-1.4.2:1.0
Raspberry Pi: /sys/bus/usb/devices/1-1.4.2:2.0
The Cisco's device path ends in :1.0 and the Raspberry Pi's ends in :2.0. I know 1-1.4.2 comes from the USB hubs I am using on the host, but I do not know how the numbers after the : are assigned.
So my questions are:
how is the last number assigned in the devpath? does it come from the host or attached device?
is there anything I can do to the g_serial driver to make it better emulate the Cisco device and appear as :1.0
Note: I am not trying to fix this with a udev rule. My goal is to completely emulate the Cisco device with the Pi.
I am quite new to KaiOS and was wondering if it is possible to build an app that sends / receives serial communications (for instance communicate with Arduino) over a physical cable connected to the phone.
I am currently doing it on Android using this library https://github.com/mik3y/usb-serial-for-android, and would love to do it on KaiOS.
I looked at the permissions and see that there is nothing related (https://developer.kaiostech.com/core-developer-topics/permissions) but I did not find any info saying that it is possible (or not possible) to do it
If not possible, any idea of how to do Serial communication between a feature phone and an Arduino is welcomed !
Thanks for you help !
Nope. KaiOS phones do not support USB Host mode.
I've tried plugging USB mouse and keyboard in Nokia 2720 using USB OTG cable, the phone did not even provide +5V power to the USB port (my keyboard lights up LED if I plug it into USB charger)
Likewise, Bluetooth is limited to headphones, my Bluetooth mouse and Bluetooth gamepad did not work.
I'm trying to use CSR BlueFlash to dump the firmware/upload new firmware to a JBL Flip 3 speaker. I've put the speaker into DFU mode and it shows up in the OSX ioregistry (see below):
but when I try to run BlueFlash, no USB devices are found. Looking in ~/.wine/dosdevices, there are no COM<number> symlinks. In fact, I don't believe there are any /dev/tty devices corresponding to the USB device. I've tried many different USB port numbers (like idProduct and bcdDevice) but BlueFlash finds no USB devices with that number.
I have seen a project where someone got BlueFlash to recognize the device with a JBL Flip 4 so I am fairly certain that what I am trying to do is possible.
Does anyone know how to get Wine on OSX to recognize a USB device?
I was following the Coral Dev Board get started guide - Get started with the Dev Board (https://coral.withgoogle.com/docs/dev-board/get-started/). Everything worked fine until to the step - Connect to the board's shell via MDT.
I've waited about 5 minutes until the flashing to complete, and the terminal prompt returned to me, then I tried the command:
mdt devices
The terminal returns nothing. Unlike the guide says it supposes to return my board hostname and IP address. I've checked the USB-C OTG and USB-C power cable, they are all connected well.
I've also tried this solution: https://superuser.com/questions/1452786/coral-dev-board-not-recongized-on-mdt-shell. I went to Network under System Preferences, and clicked "+" icon, but I couldn't find the mendel device.
I'm using Macbook Pro running on macOS Catalina. The fastboot and mdt commands are both working.
I just found a solution:
Just plug micro-B USB cable, then run:
screen /dev/cu.SLAB_USBtoUART 115200
If it shows blank, wait a couple seconds, then plug usb-c power cable, the system of the dev board will start loading, the login prompt will come out. After I logged in, I plugged the usb-c cable into data port(keep the micro-B USB cable in at the same time), then run:
mdt devices
or
mdt shell
This solution works for me only when I have turned on the wifi of the dev board and connect it to the same wifi network. If you want to turn on the wifi network of coral dev board, run the command on screen terminal:
nmtui
The Network Manager TUI prompt will come out then you can connect to your wifi network.
It's a problem on macOS Catalina. It doesn't "see" USB connection as a network connection and as such it is impossible to connect to Coral Dev Board.
I have the same issue, but I tried with another MAC with older macOS and it worked just fine.
Now, I don't have yet the solution, but at least we all know the problem ;-)
Regards,
Rui
First check the that the device is detected by running dmesg command.
Normally you should see something like this
$ dmesg
...
[107834.681816] usb 2-3: new high-speed USB device number 3 using xhci_hcd
[107834.845073] usb 2-3: New USB device found, idVendor=18d1, idProduct=9304, bcdDevice= 4.19
[107834.845077] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[107834.845079] usb 2-3: Product: Mendel
[107834.845081] usb 2-3: Manufacturer: Google,LLC
[107834.845083] usb 2-3: SerialNumber: bored-horse
[107834.985296] cdc_acm 2-3:1.0: ttyACM0: USB ACM device
[107834.986069] usbcore: registered new interface driver cdc_acm
[107834.986070] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[107835.005045] cdc_ether 2-3:1.2 usb0: register 'cdc_ether' at usb-0000:06:00.3-3, CDC Ethernet Device, aa:9f:04:54:dc:45
[107835.005124] usbcore: registered new interface driver cdc_ether
[107835.019787] cdc_ether 2-3:1.2 enxaa9f0454dc45: renamed from usb0
[107897.336866] IPv6: MLD: clamping QRV from 1 to 2!
[107956.344960] usb 2-3: USB disconnect, device number 3
[107956.345357] cdc_ether 2-3:1.2 enxaa9f0454dc45: unregister 'cdc_ether' usb-0000:06:00.3-3, CDC Ethernet Device
...
After that, check your network interfaces using ip command
$ ip link
Then look for the one with the one with the same MAC address as the one that appears in the logs of dmesg.
Once you find it, run this command to assign an IP address
$ sudo dhclient <name of the network interface of coral dev board>
Now you should see an IP assigned to the interface.
$ ip a
After that, run mdt devices and you should see the dev board connected.
$ mdt devices
bored-horse (192.168.100.2)
I had the same problem in Debian (Buster). I was able to follow all the steps to connect and flash the device until 'mdt shell' and I would receive a 'Unable to find any devices on your local network segment' message.
Opening the network settings and enabling 'USB' as a network interface worked for me.
After connecting to the Coral Dev Board the first time and exchanging private keys, I unplugged the USB cable. After that, my computer was offline until I re-enabled the ethernet connection. It seems that enabling the USB network disabled the ethernet. At that point, mdt shell was able to connect via the ethernet network.
So I've just spent most of the afternoon with this issue. After I downgraded the OS to Chef it seemed to work fine as the USB device (OTG port) would initialize on boot and then the SSH key could be pushed through. However, with the latest OS (Eagle) this was not the case.
The fix was simple:
Remove the USB C OTG port cable from the board
Reboot the Coral board
Wait for boot sequence to complete
Connect the USB C OTG port cable to the board
Run "mdt shell"
key is pushed through!
Now I can set up the WiFi or connect Ethernet and remove that cable once again and now I can freely call mdt shell and it connects every time.