Sorry, I could not find this. Does anyone know: If I update a roboRIO 1 to the latest 2024 firmware, can it still run robot code from 2023 (not updated)?
No, you’ll need to update your 2023 code to 2024 WPILib (and vendor libraries) to use it on a 2024 imaged roborio.
Worth noting that “firmware” and “image” are two different things (in the rio imaging tool). What Ryan said is true if you update the rio image to a 2024 version (current one is 2024_v2.1
). That will also wipe any code off your rio. The rio firmware is separate and I don’t believe it affects what software you can run on the rio, but I haven’t had a need to update it very often.
Just wanted to check: we are using a Rio 1. When I imaged it yesterday, I noticed that the Firmware was version 6.0.0f (or something close). The tool has 2 firmware versions, including a “24.xx” (going by memory, maybe it was “22”?).
Do we need to also update the firmware? Is the “24.x” for the Rio 2?
We’re not actually sure what’s up with those at the moment. There’s no documentation on the different firmware, and it’s been years since there was an update. They’re not for the roboRIO 2.0 though.
As I understand it, the firmware is purely related to safe mode on the roboRIO, which is used to recover in the event of a corrupted image. On a roboRIO 2.0, this is achieved via imaging the SD card externally, so there’s no need for a safe mode - and the tool doesn’t even support updating the firmware for the 2.0. Per WPILib’s documentation, everything will work fine with a roboRIO 1 as long as it’s on firmware update 5.0.0 or later, but we’re waiting for official confirmation from NI here on what’s going on.
As for your original question, if you temporarily need to run 2023 code on your 2024 RIO, you could always downgrade the image (just bear in mind you’ll need to be running 2024 stuff at your events).
Thanks for the helpful response.
I understand about running 2023 code. That would just be for our old robot at an outreach demonstration. We will port the code forward, but I want to put that off until we have time.