Driver Station Disconnecting due to Static Shock Caused by Robot Touching Practice Stage Chain After Flywheels Spin Up: A Solved Saga

Hello CD readers, I hope your season (and competitions) are going well! I am writing this post partially as a cautionary tale, but mostly because I feel that someone out there will enjoy the story of what some members of my team are considering to be the funniest problem we have ever faced.

It all began during driver practice for our team, with our drivers piloting the nearly complete robot while giving feedback to the software team on which parts of the driving experience could be improved, with others watching for errors that took place during the match so we could fix them before competition. And as errors go, we found a large one.

During the “match”, often while we were trying to climb, the driver’s joysticks would disconnect, and we would lose all control of the robot until we did a control rescan. Needless to say, this is a fatal error to take place during a match, so we began to try and get to the bottom of it. Our team has four custom driver stations, but when swapping them out, this error always ended up happening. This led us to believe that the USB port of our driver station laptop could be the issue, but changing which port we plugged it into did not fix the issue either.

From here, we gave our custom controls to other members of the team for issue diagnosis, and split off to tackle the problem from different angles. At some point, we tried using a different laptop as the driver station but the error remained. Our software co-lead looked in the code for the controls, while a couple others delved into windows settings to find any place where USB ports would be shut off automatically for power saving. As it turns out, we were instantiating our controls twice in the code, and there were two different settings on the driver station laptop that could have been turning off USB ports. While finding this, we heard that our controllers had no issues. We fixed both of the problems we found and… the problem persisted.

This is when things began to descend into chaos. After about an hour or so of tackling this catastrophic issue, we were back at square one. To make things worse, we didn’t know if this was a hardware or software issue, and load-in for our first competition was in less than 48 hours. So, what better way to figure out the issue than to recreate it?

Perhaps, we thought, the controller disconnects when we press too many buttons at once, or it somehow happens when we lose vision of apriltags, or we need to update windows. No, no, and no again. With our driver continuing to practice, he noticed that the disconnect sometimes happened when he was pressing the button that preps an amp shot. This was a red herring, as nothing was wrong with the button, but it nonetheless guided us towards the answer: whenever he was preparing an amp shot after collecting from the source, he was driving under the stage to get there. Whenever he disconnected, he was driving under the stage.

After zeroing in on this, we quickly figured out that after some time driving around, the controller would disconnect when touching the chain of our stage. This chain is not grounded as our practice stage, which it is suspended from, is made of wood. With this understanding, we arrived at the conclusion you see in the title: the robot was momentarily losing communication when making contact with our practice stage chain when there was no note in the launching mechanism and the flywheels of said mechanism had been spinning for a while… wow.

So, dear reader, that leaves me with one question for you: do you know if the stage in competition is grounded?


We have been fighting an issue where the robot disables by itself, then immediately re-enables. It is often (but not always) when we hit the chain. We competed last weekend and still had the problem on the real field at times.

I would not count on the real field acting different from a chain grounding standpoint.

Good to know we’re not the only ones! My team put a grounding wire on the bottom of our swerve base tonight and it seems to have fixed the issue, I hope you find a solution as well!

Disregard my previous response, the issue seems to have returned. We think we’ve narrowed it down to being a radio issue, does your robot happen to have a REV POE Injector?

We do not have a POE injector. We use the Rev Radio Power Module. We be been fighting this for several weeks and have not yet found it. If we do find anything, we will be happy to share out.

We troubleshooted the same issue for a few weeks. We were able to eliminate it by adding a pair of ferrite chokes snapped onto the power and data lines on the Rev POE injector right before the radio. We still don’t fully understand what the cause is. My hunch is ESD discharge through the hanger hook is somehow knocking out the ethernet communication to the radio momentarily. These are the ones we got. Best of luck.