svenmeier / coxswain

Your rowing servant
http://play.google.com/store/apps/details?id=svenmeier.coxswain
Apache License 2.0
80 stars 21 forks source link

Time reading pauses during session #142

Closed d-studer closed 1 year ago

d-studer commented 1 year ago

I am encountering a problem of time reading in the Coxswain app from the S4 monitor using the PiRowFlo bluetooth interface.

At seemingly random times during a session, the time displayed in the Coxswain app will stop updating for exactly one minute, while distance, speed etc. are still being updated. As a result, the time on the S4 monitor will be multiple minutes ahead of the Coxswain time at the end of the session. I have attached a training session recording plot for distance and speed vs. time. If I understand correctly, the recordings within the stopped time windows are not recorded, so the distance will suddenly increases when the recording resumes. session.pdf

The S4 firmware version is 2.10. Coxswain and PiRowFlo are up to date. PiRowFlo runs on a Raspberry Pi Zero W v1.1.

svenmeier commented 1 year ago

Could you please activate "write trace" in Coxswain's settings? Then start a training, row until the time stops and plus 2 minutes, then stop the training. Please attach the file /coxswain/waterrower.trace

d-studer commented 1 year ago

During the attached session time stopped updating at 25:00, then again at 25:01 and around 26 min; one minute each. At around 27 min updates were a bit chunky for a while, but still accurate as far as I can tell. At the end of the session S4 time was 3 minutes ahead of Coxswain. session.pdf waterrower.trace.txt

svenmeier commented 1 year ago

Thanks for the trace file.

Please search for the following lines:

1674127335343# elapsedTime 1499 (1499) 1674127335523# elapsedTime 1559 (1500) ..... 1674127395240# elapsedTime 1559 (1500) 1674127395472# elapsedTime 1619 (1501)

The 1499 in the first line is the last correct reported time. Then the reported time jumps to 1559, stays for that value for a long duration and then jumps to 1619.

Note that Coxswain does only accept time deltas of 1 second (see Coxswain's value in parenthesis). This is done to circumvent a known bug in the S4 bluetooth module, which reports erroneous time readings from time to time.

Are you using the S4 bluetooth module in your setup? I wonder why PiRowFlo is reporting wrong values.

d-studer commented 1 year ago

I dont have the S4 Bluetooth module. If the problem is with PiRowFlo I can report this issue there. Would it make sense to add an option to use Coxswains values instead of the transmitted time values?

svenmeier commented 1 year ago

I thought so. It's an interesting coincidence that PiRowFlo produces the same error as the S4 Bluetooth module does. Regarding the option: I wanted to keep the time reading in Coxswain in sync with that on the S4 display, including when you pause the training on the S4. Until now that worked pretty well, I suggest you report this problem to the PiRowFlo developers.