Open IProgrammedOnce opened 2 years ago
Here is some capture data which I hope can help. A short 50 second workout of 10 seconds each of 100, 110, 120, 130, 140 watts using ERG. The watts did jump around a bit. The folder has serial capture and Wireshark capture of the dircon adapter .88 and the laptop .29
debug-Tue__May_10_00_54_34_2022.log first qz log with serial on linux
"Current Speed: 24.37" "Current Cadence: 93" "Current Distance: 0.121908" "Current Watt: 95" "Current KCal: 3.30517" "Current CrankRevs: 8" "Last CrankEventTime: 64248"
In this line
"02 68 50 0b 11 00 00 44 00 85 09 ba 00 5f 00 0f 03 02 68 50 13 08 00 00 34 00 5f 00 52 ca 9d 0d 00 00 bb 53 69 05 97 54 07 03"
splittin to one
"02 68 50 0b 11 00 00 44 00 85 09 ba 00 5f 00 0f 03"
Watt 95 so 0x5F, so it's the 13th and 14th byte
Tue. May 10 00:57:34 2022 1652169454347 Debug: serial RX: "02 68 50 0b 11 00 00 44 00 6e 0b c6 00 a0 01 64 03 02 68 50 13 08 00 00 34 00 a0 01 b0 ee c3 0d 00 00 9b ab 79 05 11 7c 07 03" Tue. May 10 00:57:34 2022 1652169454376 Debug: bluetooth.cpp void bluetooth::debug(const QString&) " << 44 00 6e 0b c6 00 a0 01" Tue. May 10 00:57:34 2022 1652169454377 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Current Speed: 29.26" Tue. May 10 00:57:34 2022 1652169454379 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Current Cadence: 99" Tue. May 10 00:57:34 2022 1652169454380 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Current Distance: 0.201498" Tue. May 10 00:57:34 2022 1652169454382 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Current Watt: 416" Tue. May 10 00:57:34 2022 1652169454384 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Current KCal: 6.76911" Tue. May 10 00:57:34 2022 1652169454385 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Current CrankRevs: 19" Tue. May 10 00:57:34 2022 1652169454386 Debug: bluetooth.cpp void bluetooth::debug(const QString&) "Last CrankEventTime: 5599"
02 68 50 0b 11 00 00 44 00 6e 0b c6 00 a0 01 64 03
wattage is right here 0x1a0 = 416 cadence could be the byte after 64 = 100 speed is 0xb6e = 2926 so 29.26
@IProgrammedOnce everything is very clear!!!
02 68 50 13 08 00 00 34 00 a0 01 b0 ee c3 0d 00 00 9b ab 79 05 11 7c 07 03
on this frame i don't know which other values are coming through
Some more log files. Hopefully the names explain.
On 2 I was still wearing my HRM belt and had it in use on Zwift but disabled it in QZ.
On 2 I had real dircon selected in Zwift for all categories except HRM.
On 1 I had only cadence for real dircon so that the dircon serial data would be active. Hopefully it is all or nothing and it doesn't send just cadence but that will be interesting to see as well. Power and Controllable were QZdircon.
Hopefully this will allow some compatibility. debug_notWearingHRM_PwrCntrlCadenceRealDircon.zip debug_noHRMQZ_PwrCntrQZdir_CadenceRealDircon.zip debug_noHRMQZ_PwrCntrCadenceRealDircon.zip
debug-Tue__May_10_22_04_18_2022.zip first session with parser! watt and speed both work, cadence is wrong
cadence fixed @IProgrammedOnce :)
Serial TO KICKR debug-Tue__May_10_22_13_30_2022.zip
debug-RS232_Wed__May_11_22_10_35_2022.zip serial from and to KICKR
And another capture for comparison. Seems like a bit more junk (or is it not junk.....) before it settled down CapturePluggingInKickrNoZwift.txt
Some more captures and log files. I had both the data analyzer which can record and time stamp the bidirectional traffic and the serial adapter connected. This allows recording the data before QZ is online and there should be matching data in both the analyzer log and the debug log.
Without understanding how QZ is set up right now and just from looking at the data, it almost appears that QZ is like a telemarketer. The phone rings and the speech starts with no interaction. You (Kickr) keeps saying "Excuse me, excuse me" but the scripted conversation continues. Looking at the captures above there is interaction and possibly response in kind from the moment there is power up. Some of the TX RX pairs have the same time stamp so appear to be instantly returned unless they are that accurately timed at the same moment.
I am recording at 500kS/S so the resolution should be very good.
KickrPowered_StartQZ_serial.txt QZrunningPowerupKickr_Serial.txt
For whatever reason Github would not let me add these files to the above post so here are the matching QZ debug logs. The captures should contain the same data but not from the same start moment so some alignment will be required.
KickrPowered_StartQZ_serial.zip QZrunningPowerupKickr_Serial.zip
New build. [Uploading debug-Wed__May_18_13_58_21_2022.zip…]()
As Github will not let me add another file by editing the above post from a different computer here is the matching capture. May_18_13_58_21_Capture.txt
Debug file to match above capture.
@IProgrammedOnce checking this https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1128596707 that i'm using as a reference, i see that in the very begininning there is a handshake
FromKickr data 3.509428 82uS 0x02
FromKickr data 3.509524 82uS 0x01
FromKickr data 3.509618 82uS 0x01
FromKickr data 3.509714 82uS 0x00
FromKickr data 3.509808 82uS 0x00
FromKickr data 3.509902 82uS 0x03
To__Kickr data 3.51013 82uS 0x02
To__Kickr data 3.510224 82uS 0x01
To__Kickr data 3.51032 82uS 0x01
To__Kickr data 3.510414 82uS 0x00
To__Kickr data 3.510508 82uS 0x00
To__Kickr data 3.510604 82uS 0x03
FromKickr data 3.510902 82uS 0x02
FromKickr data 3.510988 82uS 0x01
FromKickr data 3.511082 82uS 0x10
FromKickr data 3.511176 82uS 0x03
FromKickr data 3.511272 82uS 0x00
FromKickr data 3.511366 82uS 0x10
FromKickr data 3.51146 82uS 0x02
FromKickr data 3.511556 82uS 0x03
it's very clear to me that to the 020101000003 must be the same answer from the other side. Infact, looking to the last log https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1130551827 ,
To__Kickr data 5.508466 82uS 0x02
To__Kickr data 5.508554 82uS 0x01
To__Kickr data 5.50864 82uS 0x01
To__Kickr data 5.508728 82uS 0x00
To__Kickr data 5.508814 82uS 0x00
To__Kickr data 5.5089 82uS 0x03
FromKickr data 5.575222 82uS 0x02
FromKickr data 5.575316 82uS 0x01
FromKickr data 5.575412 82uS 0x01
FromKickr data 5.575506 82uS 0x00
FromKickr data 5.5756 82uS 0x00
FromKickr data 5.575696 82uS 0x03
To__Kickr data 5.5905 82uS 0x02
To__Kickr data 5.590586 82uS 0x01
To__Kickr data 5.590672 82uS 0x01
To__Kickr data 5.59076 82uS 0x00
To__Kickr data 5.590846 82uS 0x00
To__Kickr data 5.590932 82uS 0x03
the only main difference is the timing. The native DIRCON is answering in 0.01s Maybe this is the root cause? What do you think?
Actually it is about 0.0002s wow.
So I decided to do some captures of the handshake between Kickr and Dircon. It occurred to me that maybe I was not capturing it the same way as QZ is implementing. With QZ the Kickr is on, then when QZ runs it tries to connect. So this time I had the Kickr plugged in and then while capturing plugged the dircon into the kickr. It kind of looks like it might even send some programming or something by the length of some of the sends. KickrOn_PlugInDircon_1.txt KickrOn_PlugInDircon_2.txt KickrOn_PlugInDircon_3.txt KickrOn_PlugInDircon_4.txt
I realized all the previous ones were without ethernet. Not sure if it makes a difference.
Debug file to match above capture.
OMG @IProgrammedOnce I just had time now to check this log! It worked! So it was a matter of timing! We're close!
ok perfect, i need to add other frames from the https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1128596707
thanks, pushed another one :) it's ready for your morning :D
thanks, pushed another one https://github.com/cagnulein/qdomyos-zwift/commit/0216ce1170630327c8836ca89ad6ed96e224f212 i improved the init9 phase
thanks, pushed another one. but please don't follow me in my craziness, for me it's just a puzzle game so i can't stop it :D anyway i'm going to eat so i neet to stop it for 2h
@IProgrammedOnce sorry for the delay. Fixed the issue https://github.com/cagnulein/qdomyos-zwift/commit/fa5677d550dfdbbf17113245ad15adb4e0276887 Pull it and build it when you have time Thanks!
Ok another piece is ok, I need to fix the next one. Thanks
Il giorno ven 27 mag 2022 alle 19:03 IProgrammedOnce < @.***> ha scritto:
debug-Fri__May_27_09_58_46_2022.zip https://github.com/cagnulein/qdomyos-zwift/files/8788245/debug-Fri__May_27_09_58_46_2022.zip
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1139804479, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALYWA3XRBAGTK73QFIV2LVMD543ANCNFSM5UB4LOVQ . You are receiving this because you were assigned.Message ID: @.***>
-- Roberto Viola Software engineer and open source enthusiast http://robertoviola.cloud
@IProgrammedOnce sorry again for the delay. I fixed the run frame, I forgot a byte. Please pull it and try when you have time. Thanks
QZ did not wake the kickr. After a number of seconds I spun the cranks to wake it. debug-Tue__May_31_04_13_23_2022.zip
@IProgrammedOnce ok now the communication is perfect but probably i'm using a sniff as base that doesn't wake up the kickr? i'm using this one https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1128596707
Only difference is I was pedaling. I went into settings and back out but the data screen did not appear. I was surprised when I came home to see the kickr did not go to sleep today. Bluetooth is flashing so it did not pair to QZ. debug-Tue__May_31_21_31_03_2022.zip
@IProgrammedOnce like the https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1128596707 did you collect a log from kickr and dircon without QZ during a small ride? I guess we're missing this piece
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
@IProgrammedOnce when you will be ready to test it again let me know. No rush from my side!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I think in the past when I did this capture it was before I figured out how to copy the text to Notepad++. The last ones were files that had to be opened in Logic.
thanks @IProgrammedOnce i will check this in the next days!
@IProgrammedOnce I didn't forget about this (it's that with the baby it's a crazy world). Check now this https://zwiftinsider.com/kickr-update-2022/
A dircon client it would be mandatory to talk with it I guess ;)
My road bike is off the trainer for summer anyway. Let me know if you need any data.
On Tue., Sep. 13, 2022, 05:54 Roberto Viola, @.***> wrote:
@IProgrammedOnce https://github.com/IProgrammedOnce I didn't forget about this (it's that with the baby it's a crazy world). Check now this https://zwiftinsider.com/kickr-update-2022/
A dircon client it would be mandatory to talk with it I guess ;)
— Reply to this email directly, view it on GitHub https://github.com/cagnulein/qdomyos-zwift/issues/782#issuecomment-1245372803, or unsubscribe https://github.com/notifications/unsubscribe-auth/AYHL2AFDKMMRXDPVIQD3LTTV6B2RFANCNFSM5UB4LOVQ . You are receiving this because you were mentioned.Message ID: @.***>
Useful to avoid using bluetooth and also for research.