-
|
Recently I managed to decode the Rowing data from Merach NovaRow R50, are any guideline I can follow in order to add it to the app? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 22 replies
-
|
You can add a rower module following for example the echelonrower module
and create a PR.
Let me know if you need a hand!
Thanks
Roberto Viola
Software engineer and open source enthusiast
http://robertoviola.cloud
Il giorno lun 4 ago 2025 alle 00:53 Frankie Chow ***@***.***>
ha scritto:
… Recently I managed to decode the Rowing data from Merach NovaRow R50, are
any guideline I can follow in order to add it to the app?
—
Reply to this email directly, view it on GitHub
<#3593>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAALYWAYXCOTBM4TYXYKTLT3L2HF7AVCNFSM6AAAAACDAQQXLWVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZYGY3TGMBUG4>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
Guys with this information I can write a module for qz.
I will do this today!
Roberto Viola
Software engineer and open source enthusiast
http://robertoviola.cloud
Il giorno lun 6 ott 2025 alle 00:47 Chin Chow ***@***.***> ha
scritto:
… Hi @YAMLcase <https://github.com/YAMLcase>
I am not familiar with how to make a module to qdomyos-zwift and I stopped
I tried to wirte an android app, capturing the BT payload and send out as
FTMS.
You can check at
https://github.com/chowchin/novarow-r50/blob/main/app/src/main/java/com/chowchin/r50/MainActivity.kt
Below is a quick summary on my findings
1.
send out the following payload one by one
f0a5440104de
f0a04401d5
f0a001e879
f0a501e80280
I guess that it is to change it to Bluetooth mode
2.
send out the following payload to ask the R50 to send out the current
Rowing data
f0a201e87b
Below is the data format for the Rowing data
val values = characteristic.value
val rowingData =
if (values.size == 23) {
RowingData(
hex = hex,
timestamp = System.currentTimeMillis(),
elapsedSecond = (values[4] - 1) * 60 + values[5] - 1,
strokeCount = (values[6] - 1) * 99 + (values[7] - 1),
strokePerMinute = (values[8] - 1) * 99 + (values[9] - 1),
distance = (values[10] - 1) * 99 + (values[11] - 1),
calories = (values[12] - 1) * 99 + (values[13] - 1),
heartbeat = (values[14] - 1) * 99 + (values[15] - 1),
power = (values[16] - 1) * 99 + (values[17] - 1),
gear = values[20] - 1,
)
} else {
RowingData(
hex = hex,
timestamp = System.currentTimeMillis(),
)
}
I hope that it can help you to understand the data format of R50
—
Reply to this email directly, view it on GitHub
<#3593 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAALYWAKQQAXZPF2XOA7XMD3WGNWJAVCNFSM6AAAAACDAQQXLWVHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTINJZHE2DGNQ>
.
You are receiving this because you commented.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
Regardless how you transform the data, it is garbage to begin with. Merarch and any B-Brand monitor is so far below par that it spews numbers, but they won't make any sense. I am the developer of OpenRowingMonitor and we see that most monitors lack any fundamental understanding of what the flywheel is doing, thus we developed the open source software that allows you to retrofit a good monitor on any rowing machine. As an added bonus, we can emulate a Concept2 PM5 BLE interface, which is better suited for rowing and is accepted by apps like KinoMap, EXR, etc.. |
Beta Was this translation helpful? Give feedback.

@cagnulein tested and it worked perfectly.