This is an update release of WPILib for the 2024 season. This release improves dashboard NetworkTables connection/disconnection behavior and improves SysId, along with other bugfixes. This upgrade is recommended for all teams.
Upgrading from earlier 2024 releases is easy: simply download and run the new installer and it will update your current installation. If you already have the 2024 WPILib vscode installed, it will detect it and you can simply click "next" for that installation step. After installation, vscode will prompt you when opening your robot project whether you want to upgrade it to this version. Note that using the installer is required to get the new version of desktop tools such as Shuffleboard. This release is compatible with the kickoff release of the RoboRIO image, so there is no need to upgrade the RIO image if you have already done so for 2024. Mac note: for this release, it is necessary to manually remove the 2024.1.1 version of AdvantageScope before running the installer in order for the new version to be installed.
The documentation for WPILib is located at https://docs.wpilib.org/ (if you have trouble accessing this location, https://frcdocs.wpi.edu/en/stable/ is an alternate location with the same content).
If you're new to FRC, start with Getting Started.
System Requirements: WPILib requires 64-bit Windows 10 or 11, Ubuntu 22.04, or macOS 12 or higher. C++ teams should note that Visual Studio 2022 is required for desktop builds. Mac users will need to have the Xcode Command Line Tools installed before running the installer. This can be done by running xcode-select --install
in the Terminal.
If you're returning from a previous season, check out what's new for 2024. You will need a new RoboRIO image for 2024; this is available via the FRC 2024 Game Tools. Follow the WPILib installation guide to install WPILib.
If you're starting from a 2023 robot project, you will need to import your project to create a 2024 project. The import process is important, as it will make a few automated corrections for some breaking changes that happened in 2024. It is also necessary to import vendor libraries again, since last year’s vendor libraries must be updated to be compatible with this year’s projects.
A complete list of known issues with this release can be found here.
WPILib is developed by a small team of volunteers and the FIRST community.
Downloads
For 2024, we have changed the location for WPILib downloads due to GitHub file size limitations. Please use the links below to download the installer package for your platform.
- WPILib 2024.2.1 - Windows (2.2 GB)
- WPILib 2024.2.1 - Mac (Arm) (1.9 GB)
- WPILib 2024.2.1 - Mac (Intel) (2.1 GB)
- WPILib 2024.2.1 - Linux (x64) (2.5 GB)
- WPILib 2024.2.1 - Linux (arm64) (2.3 GB)
What's Changed since 2024.1.1
NetworkTables
- Fix large text message splitting by @PeterJohnson in #6263
- Use last received time instead of last ping response for connection timeout by @PeterJohnson in #6266
- WebSocket serializer bugfixes by @PeterJohnson in #6264
- Fix client "received unknown id -1" by @PeterJohnson in #6186
- Improve disconnect reason reporting by @PeterJohnson in #6262 and #6265
- Enhance debug logging across NT and WS layers by @PeterJohnson in #6267
- Map int[] to int64[] for DataLog by @PeterJohnson in #6279
- NetworkTable::GetStruct: Add I template param by @PeterJohnson in #6183
SysId
- Data selector: use timestamps instead of ranges by @PeterJohnson in #6193
- Filter valid test names by @PeterJohnson in #6200
- Fix peak acceleration filtering behavior in dynamic velocity test by @HarryXChen3 in #6207
- Fix test duration slider responsiveness by @Oblarg in #6216
- Remove unused "gains to encoder counts" checkbox by @calcmogul in #6234
- Show warning tooltips next to bad feedforward gains instead of throwing by @HarryXChen3 in #6251
- Document using AdvantageScope for troubleshooting by @calcmogul in #6247
SysIdRoutine:
- Fix SysId log key for acceleration by @calcmogul in #6196
- Defer creation of state log entry by @jwbonner in #6259
- Fix state log entry name typo by @auscompgeek in #6261
- Use mechanism name instead of subsystem name by @AngleSideAngle in #6277
WPILib
- Add ADIS16470 methods with no params by @spacey-sooty in #6184
- [C++] Use std::atomic for ADIS classes by @spacey-sooty in #6217
- Don't automatically pull in cscore for all robot projects by @ThadHouse in #6245
- [C++] Fix destruction crash in ADIS classes by @PeterJohnson in #6282
Glass / Simulation GUI
- Fix Field2d position and scaling by @PeterJohnson in #6222
- Default to 2024 field image by @PeterJohnson in #6225
- Sim GUI DS: Add "Disconnected" state and start in it by @PeterJohnson in #6218
RoboRIO Team Number Setter
- Add functionality to enable and disable NI webserver by @ThadHouse in #6270
VS Code
- Pass native compiler arguments to intellisense engine by @ThadHouse in wpilibsuite/vscode-wpilib#656
- Fix debug keybindings by @sciencewhiz in wpilibsuite/vscode-wpilib#657
- Disable vscode completion case matching by @sciencewhiz in wpilibsuite/WPILibInstaller-Avalonia#390
GradleRIO
- Increase SSH timeout from 3 to 7 seconds by @ThadHouse in wpilibsuite/GradleRIO#717
- Catch MalformedInputException by @ThadHouse in wpilibsuite/GradleRIO#719
- Update OneDrive error to be more informative by @spacey-sooty in wpilibsuite/GradleRIO#716
Installer
- Offline cache module files for junit by @ThadHouse in wpilibsuite/WPILibInstaller-Avalonia#387
- Add Linux arm64 installer by @ThadHouse in wpilibsuite/WPILibInstaller-Avalonia#305
- Fix running AdvantageScope.py directly by @calcmogul in wpilibsuite/WPILibInstaller-Avalonia#388
- Update AdvantageScope to 3.0.2 by @jwbonner in wpilibsuite/WPILibInstaller-Avalonia#391
- Install Python API docs by @sciencewhiz in wpilibsuite/WPILibInstaller-Avalonia#392
Examples
- Limit error bit correction in April Tag examples by @sciencewhiz in #6224
Other notable changes
- Use Miklast high resolution field render by @sciencewhiz in #6185
- [wpiutil] Fix using 2 different locks in StructArrayLogEntry by @ThadHouse in #6231
- [wpimath] Use tolerance in rotation interpolation tests by @calcmogul in #6237
- [wpiutil] Fix how DynamicStructs handle strings by @ThadHouse in #6253
- [hal] Don't write a 0 length led string to the FPGA by @ThadHouse in #6271
- [hal] Use 64 bit timestamp in DMA by @ThadHouse in #6278
New Contributors
- @gerth2 made their first contribution in #6191
- @HarryXChen3 made their first contribution in #6207
- @BenBean18 made their first contribution in #6219
- @AngleSideAngle made their first contribution in #6277
Full Changelog: v2024.1.1...v2024.2.1
MD5 Hashes
84ce28678ccf243c6c042beca8fbe996 WPILib_Linux-2024.2.1.tar.gz
198dd9c87660f0e84440cfdd98f7320c WPILib_LinuxArm64-2024.2.1.tar.gz
99e8b6987b9c2c9deb8d146c21f0ac48 WPILib_Windows-2024.2.1.iso
6f03a9c0b0432622a9fd35a8a91258cb WPILib_macOS-Intel-2024.2.1.dmg
b1d9c6a58952b2161c99258e6dbf2df0 WPILib_macOS-Arm64-2024.2.1.dmg
SHA256 Hashes
ccc6f6504975b7ba3f998382676d1c169968d835ecddb27c1f7cd713d68c509b WPILib_Linux-2024.2.1.tar.gz
5d20eb60f3e6440078e25551133d93d5f66aed2d0547dda3d54ad189422e3a89 WPILib_LinuxArm64-2024.2.1.tar.gz
575f0ac3967c633e1c483de8a2d6fc93db5dbceca1a0d142bb4fbc1688d48b3c WPILib_Windows-2024.2.1.iso
ac2537bcafb91a78ed3488d113e8119d1b0c4da32af6d78866081422df7c41f3 WPILib_macOS-Intel-2024.2.1.dmg
8ac5465408ba1d7ade6b17100093eb1d3717e7703b3bba381cb17e0df8b14c58 WPILib_macOS-Arm64-2024.2.1.dmg