This is an update release of WPILib for the 2023 season. This release reduces NetworkTables CPU usage and latency, improves dashboard NetworkTables connection/disconnection behavior, and has several other quality-of-life improvements, in particular to Shuffleboard. This release also includes all fixes made in earlier releases.
Upgrading from earlier 2023 releases is easy: simply download and run the new installer and it will update your current installation. If you already have the 2023 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.
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.
Minimum system requirements have changed for 2023. WPILib requires 64-bit Windows 10 or 11, Ubuntu 22.04, or macOS 11 or higher. Newly supported this year is Apple Silicon (arm64)! C++ teams should note that Visual Studio 2022 is now required for desktop builds. For this release, Mac users will need to have the Xcode Command Line Tools installed before running the installer; we are working on removing this requirement in a future release. 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 2023; be sure to read through this, as a lot has changed from 2022! You will need a new RoboRIO image for 2023; this is available via the FRC 2023 Game Tools. Follow the WPILib installation guide to install WPILib.
If you're starting from a 2022 robot project, you will need to import your project to create a 2023 project. The import process is important, as it will make a number of automated corrections for some breaking changes that happened in 2023. 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.
What's Changed since 2022.4.2
NetworkTables
- Optimize scan of outgoing messages by @PeterJohnson in #5227
- NT4 client: close timed-out connections by @PeterJohnson in #5175
- Use int64 for datalog type string by @PeterJohnson in #5186
- ParallelTcpConnector: don't connect to duplicate addresses by @PeterJohnson in #5169
Math
- Check LTV controller max velocity precondition by @calcmogul in #5142
- Fix invalid iterator access in TimeInterpolatableBuffer by @virtuald in #5138
- Fix Pose3d log returning Twist3d NaN for theta between 1E-9 and 1E-7 by @7910f6ba7ee4 in #5168
- Fix NaN in C++ MakeCostMatrix() that takes an array by @calcmogul in #5194
- Fix potential divide-by-zero in RKDP by @calcmogul in #5242
Commands
- RamseteCommand: default-initialize m_prevSpeeds by @PeterJohnson in #5188
WPILib
- Add isTestEnabled and minor docs cleanup by @rzblue in #5172
- Fix enableLiveWindowInTest crashing in disabled by @rzblue in #5173
- DataLogManager: increase time for datetime to be valid by @PeterJohnson in #5185
- Fix DutyCycleEncoder.setDistancePerRotation() in java simulation by @rzblue in #5147
- Fix RobotController.getComments() mishandling quotes inside the comments string by @rzblue in #5197
- [java] DriverStation: Fix joystick data logs by @PeterJohnson in #5240
- Shuffleboard: Keep duplicates on SelectTab() by @Starlight220 in #5198
Shuffleboard
- Fix IndexOutOfBoundsException in tab setup by @Starlight220 in wpilibsuite/shuffleboard#772
- Make any entries set by dashboard retained by @PeterJohnson in wpilibsuite/shuffleboard#778
- FieldData: Don't throw on missing data by @Starlight220 in wpilibsuite/shuffleboard#776
- Add DataSource.equals() by @Starlight220 in wpilibsuite/shuffleboard#774
- Don't switch to selected tab on value change by @Starlight220 in wpilibsuite/shuffleboard#771
- CameraServerWidget: Explicitly unbox Number objects by @Starlight220 in wpilibsuite/shuffleboard#780
- Use ConcurrentHashMap for static collection of NT sources by @Starlight220 in wpilibsuite/shuffleboard#779
SysId
- Give measurement period a valid default of 1 by @calcmogul in wpilibsuite/sysid#495
- Add Venom support by @wlmchen in wpilibsuite/sysid#499
Docs
- CommandScheduler.isComposed: Remove incorrect throws clause (NFC) by @DAflamingFOX in #5183
- WaitCommand: Remove subclass note (NFC) by @Starlight220 in #5200
Examples
- Shuffleboard: Correct parameter order by @Starlight220 in #5204
New Contributors
- @7910f6ba7ee4 made their first contribution in #5143
- @wlmchen made their first contribution in wpilibsuite/sysid#499
MD5 Hashes
fc58a52edea675b0ff91938a9c9d0743 WPILib_Linux-2023.4.3.tar.gz
5b67d336669bed34ab0dd428f81b9d31 WPILib_Windows-2023.4.3.iso
47246def80eea87b468e0be30119f789 WPILib_macOS-Intel-2023.4.3.dmg
1bb6113c1202fbb68248c3848556e47e WPILib_macOS-Arm64-2023.4.3.dmg
SHA256 Hashes
640e1ee7cc8f39d1789b4137f4a5aae90f78eeecf2326e2c50808205d02e7795 WPILib_Linux-2023.4.3.tar.gz
8ea417ede0a8541c9ab906b943be55ca49112dddef6750f2db1a742ba0c69378 WPILib_Windows-2023.4.3.iso
a80723596a08790c78b4c35ac64b4758c72076e74df559512a62c808b2a11ef1 WPILib_macOS-Intel-2023.4.3.dmg
8dad67e28a3bdf482979a1fe4c857d52ab36a2fdec56ae05971b7177d5409ae9 WPILib_macOS-Arm64-2023.4.3.dmg