You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am the developer of the PM5 firmware, and have been contacted by a user of PyRow indicating the firmware versions released on or about April 2023 no long work properly. The PM5 firmware versions affected are v34.000/173.000/212.000/257.000.
To summarize, I see in the source code (csafe_command.py) that there is logic to map messages to USB reports using length (snippet) below. The PM5 firmware change obsoleted the 63 byte report and added a 500 byte report in it's place. This change is reflected in the USB enumeration for the HID class, but since you have it hard-coded I suspect this is the source of the failure.
I think the easiest change is just to eliminate the the logic block relating to the 63 byte report and just support 21 byte and 121 byte report lengths. For your application it will have zero impact on performance. I sure your users would appreciate the fix so that they can move forward for current and future firmware versions.
This change applies the fix recommended by @mlyonupdesigns here:
wemakewaves#5
Page 6 of the PM5 CSAFE specification indicates that the spec was revised on
04/06/23 by Mark Lyons, which is likely the change mentioned in the linked
issue:
Changed USB report ID 4 size from 62 to 500 bytes; added some a dditonal
enumeration definitions; V0.26
See: https://www.concept2.com/files/pdf/us/monitors/PM5_CSAFECommunicationDefinition.pdf
This change is said to be necessary for compatibility with PM5 ergs, which
happens to be what I have on hand. I have confirmed that this commit enables
the statshow.log command to function correctly with a PM5 Concept2 RowErg.
Additional information: I am runing this on NixOS over USB with 3.13.
I am the developer of the PM5 firmware, and have been contacted by a user of PyRow indicating the firmware versions released on or about April 2023 no long work properly. The PM5 firmware versions affected are v34.000/173.000/212.000/257.000.
To summarize, I see in the source code (csafe_command.py) that there is logic to map messages to USB reports using length (snippet) below. The PM5 firmware change obsoleted the 63 byte report and added a 500 byte report in it's place. This change is reflected in the USB enumeration for the HID class, but since you have it hard-coded I suspect this is the source of the failure.
I think the easiest change is just to eliminate the the logic block relating to the 63 byte report and just support 21 byte and 121 byte report lengths. For your application it will have zero impact on performance. I sure your users would appreciate the fix so that they can move forward for current and future firmware versions.
Any questions, please reach out to me at mlyon@updesigns.com.
#report IDs
maxmessage = max(len(message) + 1, maxresponse)
The text was updated successfully, but these errors were encountered: