I've been using your (very helpful) write up as a guide alongside decompiled builds of the headunit apps as a reference for modifying my Peloton
The command you're using to get resistance (F5 4A 3F F6) is defined as CMD_GET_CURRENT_AD_VALUE in the app, which probably translates to "Get current value from the Analog-to-Digital converter"
But there's a more specific command RESISTENCE_REQ_CMD (sic) defined as F5 49 3E F6 (49 as opposed to 4A)
That sequence seems to return a number in the range "0" - "100" that's already been helpfully transformed with the calibration values.
This might not be implemented for all versions of the Bike (I have a V1 with an older tablet), but figured others might be interested in trying this out, since it greatly what's needed to read values off the interface
(Hopefully unnecessary) disclaimer: I formerly worked at Peloton, but not on any sort of hardware internals. This is solely coming from exploring public builds of the app on a personally owned production bike
I've been using your (very helpful) write up as a guide alongside decompiled builds of the headunit apps as a reference for modifying my Peloton
The command you're using to get resistance (
F5 4A 3F F6) is defined as CMD_GET_CURRENT_AD_VALUE in the app, which probably translates to "Get current value from the Analog-to-Digital converter"But there's a more specific command RESISTENCE_REQ_CMD (sic) defined as
F5 49 3E F6(49as opposed to4A)That sequence seems to return a number in the range "0" - "100" that's already been helpfully transformed with the calibration values.
This might not be implemented for all versions of the Bike (I have a V1 with an older tablet), but figured others might be interested in trying this out, since it greatly what's needed to read values off the interface
(Hopefully unnecessary) disclaimer: I formerly worked at Peloton, but not on any sort of hardware internals. This is solely coming from exploring public builds of the app on a personally owned production bike