Hello,
we are using a PMD-1208LS together with a compute module 4 (Raspberry Pi 4). It works, we can do measurement based on the example test-usb1208LS.py.
We are using only DA and AD ports. We are using single ended measurements.
From time to time the measurement returns a value -1024=-0x400, which is then converted to -10 Volts.
We are reading values from multiple channels and all of them return the same value, again and again (even when we restart the test program).
When we reboot the Raspberry Pi, the values are correct again.
When we disconnect and re-connect the PMD-1208LS, it is also working again.
This is what we are using:
test@test:/usr/local/bin $ uname -a
Linux test 5.15.76-v7l+ #1597 SMP Fri Nov 4 12:14:58 GMT 2022 armv7l GNU/Linux
test@test:/usr/local/bin $
Bus 001 Device 006: ID 09db:007a Measurement Computing Corp. PMD-1208LS
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x09db Measurement Computing Corp.
idProduct 0x007a PMD-1208LS
bcdDevice 1.02
iManufacturer 1 MCC
iProduct 2 USB-1208LS
iSerial 3 020A93B3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0029
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4 Cfg1
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0
bInterfaceProtocol 0
iInterface 5 EP1
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 36
Report Descriptor: (length is 36)
Item(Global): Usage Page, data= [ 0x00 0xff ] 65280
(null)
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Main ): Input, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Main ): Output, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Report Count, data= [ 0x68 ] 104
Item(Main ): Feature, data= [ 0x02 0x01 ] 258
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Buffered Bytes
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 10
can't get debug descriptor: Resource temporarily unavailable
Device Status: 0x0000
(Bus Powered)
Any idea what it could be? Is there perhaps a firmware version we can check and perhaps update the firmware?
Or can I try something out, when I next time reach this situation?
Is there some way to reset the part which could make this problems?
We already tried
#!/bin/bash
for X in /sys/bus/usb/devices/*; do
if [ -f $X/idVendor ] && [ $(cat "$X/idVendor") == "09db" ] ; then
echo "Resetting device"
echo 0 > $X/authorized
sleep 1
echo 1 > $X/authorized
fi
done
but this has not helped.
Many thanks!
Best regards,
Martin