-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
measuring bitrate and arbitration delays #14
Comments
I've done the mesuring as described and I get weird readings:
I'm starting to think that my connection issues with that Vaillant auroCOMPACT are because of the large deviations. In most cases it says 2424Hz. But 2711 is quite out of bounds. I tried quite a lot of things, but nothing enabled a stable connection to the heater. Is it "broken"? |
the more edges are counted (i.e. the longer the time between two "ebus -v" calls is), the more unreliable is the measurement, so the 2711 Hz are not really reliable. I guess your device it right at the edge with 2424 Hz, so I'd suggest to set the deviation to 30 and see if that helps. |
Sorry, I get back so late. I'm thinking about ditching the network connection and move my py next to the heater and use USB. |
you might want to give the current version a try |
Hey @john30 thanks for this great guid on adjusting these 2 values, but if you able to help me a bit i need som clarifications. Ebusd config:
Command argument:
I configured polling for some values (arund 30 or so, 5s interval) and sometimes get "arbitration lost" messages in my log:
A run the procedure you described and got the following logs:
I discarded the entries with high values (above 2450hz) and figured out that 35 is a good value to set as "bitrate deviation" but this not resolved it. After that I looked at the reported master delays and increased the arbitration delay to 300, but after ~2hr this setting completly killed the bus in my system, the bus was reset and not able to rediscover devices until force shutdown the indoor unit and restarted it. After settings this back to 200 looks like it working stable again but the menioned errors still ocuures time to time. Update:
Update: |
@Zolli as this is a multi-master bus with arbitration access, arbitration errors are normal and nothing unexpected. especially when polling, ebusd does not immediately repeat a request if arbitration was lost, since it is going to be polled again later on anyway |
Thanks, i know that, i just assumed these "Errors" are caused by some other event. Can you maybe have some ideae about the other part of my comment where i mentioned that my system bus collapsed 3 times when the adapter was connected. Just to mention i have a tip, but i really curious about your opinion as well. (Maybe the SD card gets failing in my PI, i saw a few times that commands get executed very slowly (not the execution is slow, it felt like huge delays) and maybe during one of these delays ebusd tried to write something incomplete to the bus that caused the whole bus to collapse. I will get back from holiday within a week and try to get some low power x86 platform to run ebusd on.) |
Just a small uupdate on this, i switched to a small n3350 based mini PC today, i will wait what happens in the coming days, right now its works as expected. But i still need to mention that the 'ebus -v' command on the adapter |
this is a continuation of john30/ebusd#891 as it was misplaced there.
the recently released firmware is capable of analysing the signal wrt bitrate and arbitration delay.
in order to use that feature, the adapter needs to be udpated and then the following steps need to be performed:
the interesting part of the output after each "ebus -v" will look like this:
the first line shows bitrate measurement details with the calculated bitrate, min. clock counts for consecutive pos/neg edges, min. clock counts for H/L pulse widths, as well as calculated H/L pulse widths in microseconds.
the 2400 Bd target a H/L pulse width of 416 us which is basically 1000 clock counts. the minimal pos/neg edge width is targeted at 2000.
so in the above example it looks like the actual bitrate on the line is a little bit higher than it should be, i.e. 2412 Bd instead of 2400, which is 0.5%. this is still tolerable, but when it exceeds 1.2% it might be problematic.
anyway, the firmware now also allows to adhere such situations by using the new bitrate deviation option in the web UI. this way, a slightly higher bitrate can be set which will then be used for transmission as well as reception.
the other 2 lines reveal the seen master addresses, independent of whether the message was valid wrt CRC, so when arbitration errors occur, "fantasy" master addresses would appear here.
anyway, for each master it shows its current arbitration delay as well as the minimum and maximum seen for it since boot.
this allows for using the second feature of the adapter: to adjust the arbitration delay.
the default for the delay is 200 us, but when other participants have a lower delay, then this should be adjusted accordingly.
The text was updated successfully, but these errors were encountered: