thanks for the info,
We have 17 falcon 500s, 4 CanCoders, Rev PDH(2021), and REV PCM (2021), RoboRio2 using v4 software using c++, and an MK4 8 falcon swerve.
Today we did some more testing and even when uploading a blank file, we were still at 100%. It oscillates from ~60-100. Even after disconnecting the cancoders(when the issue became apparent) the rest of our system still oscillated to 100%.
Some tests/ data we did (each % is the max value we saw):
1 falcon on can: ~7% utilization, however it was still oscillating and when we filmed the utilization on driver station in slow mo, we saw the % spike to 17% !
2 different swerve units w/o cancoder: ~32 max% (same oscillating behavior)
everything BUT drive base (excluding: 8 falcon 500s and 4 canCoders): 56 max% for just 9 motors! (same oscillating behavior)
Again, this was all with a blank code file.
Since CAN works when Motors are powered off, i started pulling breakers to see if somehow there was EM interference somewhere but no change - just a linear decrease in utilization when devices were cut off power. However, still oscillating usage that matched our tests above.
After seeing this troubling data we tried a robo rio 1 with older firmware and got a promising result where we saw 76% utilization for the entire robot and no crazy oscillation to 100%. Unfortunately the regulations require the newest firmware:
Rule update 8:
(https://firstfrc.blob.core.windows.net/frc2022/Manual/TeamUpdates/TeamUpdates-combined.pdf)
so we updated the roboRio 1 hoping it was somehow a roboRio2 issue. But after updating - the roboRio1 also got the oscillating, high can utilization…We made sure our REV firmware and ctre devices were up to date and still no change.
At this point - I feel like we’ve figured out that all the devices are contributing to this high utilization. They are all in this spiky behavior of oscillating between a reasonable can usage to a high can usage. And how its being caused by some firmware issue and not an electrical issue…
Would it be possible for you to explain more about "You can also influence which devices do not get to send data (to an extent) by the CAN IDs you assign. " I understand that the lower IDs might get priority but there is a way to lower data for devices?
Another datapoint is how we can see CanBus packets through the REV hardware client. Is there a way to understand those to help troubleshoot/ diagnose?
Thanks, sorry for delayed response.