On Wednesday, January 18, 2017 at 4:24:16 PM UTC-8, David Morgan wrote:
>
>
>>
> The barometric pressure is way wrong on the console, and there is some
> disagreement between the console and the WeeWx display. I am curious if
> anyone knows yet what sensors are used. I have resisted peeking so far,
> but that may change.
>
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 595, the host issues a USB SET INTERFACE Request
Frame 596, the console responds, USB SET INTERFACE Response :: URB
status: Protocol error (-EPROTO) (-71)
Frame 597, the host issues a USBHID GET_REPORT Request
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)]
0000 00 13 95 1c 01 88 ff ff 43 02 80 0e 05 00 2d 00 ........C.....-.
0010 50 7a 80 58 00 00 00 00 be 16 0f 00 00 00 00 00 Pz.X............
0020 0a 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 ................
0030 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 ................
0040 *01 cb 57 78 00 45 64 5f 03 ff* ..Wx.Ed_..
*Data!*
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.
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.