How to program and flash the firmware on FRC radios
Radio programming kind of sucks. More accurately, flashing radio firmware onto OpenMesh radios sucks. This page, compiled from countless hours of pain, suffering, and Googling, will attempt to summarize how to do it and what to do if it doesn't work.
Programming vs. Flashing
First, let's clarify the difference between programming a radio and flashing a radio.
Programming a radio is simply changing the settings on the radio. You'll do this at competition to configure the radio to connect to the field rather than our laptop.
Flashing a radio, on the other hand, is the process of taking a brand-new radio and putting FRC firmware on it so that it can be used with robots at all. This is kind of a major pain in the butt sometimes.
Programming a Radio
If you just need to program a radio, the WPILib documentation should be sufficient. If you're doing it at comp with one of the kiosks, you basically just plug it in and push the button.
This happens because in order to flash the firmware, the tool has to talk to the radio right as it's booting up. This can cause issues when you're using a POE adapter (the thing that goes to the VRM and plugs into the radio and you plug a patch cable from the laptop into) since the radio will get power and get connected to the laptop at the same time.
If you get the error, try these steps:
Instead of plugging the patch cable from the laptop into the POE adapter (the thing that plugs into the VRM), plug it into the port on the radio itself furthest from the power jack (the one labeled "802.3af POE")
Follow the normal flashing instructions, unplug the radio from power (the POE adapter), click "flash," plug power back in when prompted, be really careful not to brick it