I did take the console apart last night to see what parts were used. I found the ICs were covered over with a hard black coating so you cannot identify what is there. I did not find anything that looked like pressure sensor. I did find what is probably the temp sensor.
I am finding that with my laptop, connecting to the console is not consistent. Once connected, it seems to do OK. I am not a programmer, so understanding the python code is not so easy for me. Makes it hard to understand just where things are not working. Wireshark is showing the system is having trouble initiating the transfer of data from the console to the host, even though it has already read the initialization data from the console. Below is a dump from wireshark.
Frame 596, the console responds, USB SET INTERFACE Response :: URB status: Protocol error (-EPROTO) (-71)
Frame 598, the console responds, USBHID GET_REPORT Response :: URB status: Success (0) Console responded with 10 data bytes.
All following messages were successful. So why did it just start working? And why was the data request successful when the set interface request failed? Is it not necessary for the USB interface to be set before a USBHID request? Who sent the USB request? Was it Python or the linux kernel? These are things I have not figured out.
595 690.183528 host 5.14.0 USB 64 SET INTERFACE Request
Frame 595: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface 0
USB URB
[Source: host]
[Destination: 5.14.0]
URB id: 0xffff88011c951300
URB type: URB_SUBMIT ('S')
URB transfer type: URB_CONTROL (0x02)
Endpoint: 0x00, Direction: OUT
Device: 14
URB bus id: 5
Device setup request: relevant (0)
Data: present (0)
URB sec: 1484814928
URB usec: 977890
URB status: Operation now in progress (-EINPROGRESS) (-115)
URB length [bytes]: 0
Data length [bytes]: 0
[Response in: 596]
Interval: 0
Start frame: 0
Copy of Transfer Flags: 0x00000000
Number of ISO descriptors: 0
URB setup
0000 00 13 95 1c 01 88 ff ff 53 02 00 0e 05 00 00 00 ........S....... Submit
0010 50 7a 80 58 00 00 00 00 e2 eb 0e 00 8d ff ff ff Pz.X............
0020 00 00 00 00 00 00 00 00 01 0b 00 00 00 00 00 00 ................
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
596 690.187517 5.14.0 host USB 64 SET INTERFACE Response
Frame 596: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface 0
USB URB
[Source: 5.14.0]
[Destination: host]
URB id: 0xffff88011c951300
URB type: URB_COMPLETE ('C')
URB transfer type: URB_CONTROL (0x02)
Endpoint: 0x00, Direction: OUT
Device: 14
URB bus id: 5
Device setup request: not relevant ('-')
Data: not present ('>')
URB sec: 1484814928
URB usec: 981879
URB status: Protocol error (-EPROTO) (-71)
URB length [bytes]: 0
Data length [bytes]: 0
[Request in: 595]
[Time from request: 0.003989000 seconds]
Unused Setup Header
Interval: 0
Start frame: 0
Copy of Transfer Flags: 0x00000000
Number of ISO descriptors: 0
0000 00 13 95 1c 01 88 ff ff 43 02 00 0e 05 00 2d 3e ........C.....-> From 14 05, the console bus address
0010 50 7a 80 58 00 00 00 00 77 fb 0e 00 b9 ff ff ff Pz.X....w....... Bold means protocol error
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
597 690.187738 host 5.14.0 USBHID 64 GET_REPORT Request
Frame 597: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface 0
USB URB
[Source: host]
[Destination: 5.14.0]
URB id: 0xffff88011c951300
URB type: URB_SUBMIT ('S')
URB transfer type: URB_CONTROL (0x02)
Endpoint: 0x80, Direction: IN
Device: 14
URB bus id: 5
Device setup request: relevant (0)
Data: not present ('<')
URB sec: 1484814928
URB usec: 982100
URB status: Operation now in progress (-EINPROGRESS) (-115)
URB length [bytes]: 10
Data length [bytes]: 0
[Response in: 598]
Interval: 0
Start frame: 0
Copy of Transfer Flags: 0x00000200
Number of ISO descriptors: 0
[bInterfaceClass: HID (0x03)]
URB setup
bRequest: GET_REPORT (0x01)
wValue: 0x0101
wIndex: 0
wLength: 10
0000 00 13 95 1c 01 88 ff ff 53 02 80 0e 05 00 00 3c ........S......< Submit
0010 50 7a 80 58 00 00 00 00 54 fc 0e 00 8d ff ff ff Pz.X....T.......
0020 0a 00 00 00 00 00 00 00 a1 01 01 01 00 00 0a 00 ................
0030 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................
598 690.194500 5.14.0 host USBHID 74 GET_REPORT Response
Frame 598: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface 0
USB URB
[Source: 5.14.0]
[Destination: host]
URB id: 0xffff88011c951300
URB type: URB_COMPLETE ('C')
URB transfer type: URB_CONTROL (0x02)
Endpoint: 0x80, Direction: IN
Device: 14
URB bus id: 5
Device setup request: not relevant ('-')
Data: present (0)
URB sec: 1484814928
URB usec: 988862
URB status: Success (0)
URB length [bytes]: 10
Data length [bytes]: 10
[Request in: 597]
[Time from request: 0.006762000 seconds]
Unused Setup Header
Interval: 0
Start frame: 0
Copy of Transfer Flags: 0x00000200
Number of ISO descriptors: 0
[bInterfaceClass: HID (0x03)]
So who determines that the protocol error exists? Did it come from the console, or from the linux kernel? Was the console flagging that it got a bad message? I have observed that when the request for data fails, the console responds in 3.5 to 4 mSec. When it works, it is typically 4.8 mSec for an R1 message. The first one here took longer, maybe needed to do some housekeeping for the first message. So when it fails, the console seems to know it is not going to respond, does not try and collect data, and responds more quickly.