WPILib Installation Guide

This guide is intended for Java and C++ teams. LabVIEW teams can skip to Installing LabVIEW for FRC (LabVIEW only). Additionally, the below tutorial shows Windows 10, but the steps are identical for all operating systems. Notes differentiating operating systems will be shown.

Prerequisites

Supported Operating Systems and Architectures:
  • Windows 10 & 11, 64 bit only. 32 bit and Arm are not supported

  • Ubuntu 22.04, 64 bit. Other Linux distributions with glibc >= 2.34 may work, but are unsupported

  • macOS 11 or higher, both Intel and Arm for Java. C++ requires macOS 12 or higher with Xcode 14.

Aviso

The following OSes are no longer supported: macOS 10.15, Ubuntu 18.04 & 20.04, Windows 7, Windows 8.1, and any 32-bit Windows.

WPILib is designed to install to different folders for different years, so that it is not necessary to uninstall a previous version before installing this year’s WPILib.

Downloading

WPILib Installer

WPILib 2024.1.1 Beta 2 Release - October 20, 2023

Downloads

Downloads for other platforms

Release Notes

This is the second beta release of WPILib for the 2024 season. Please join the discussions regarding beta testing at https://github.com/wpilibsuite/2024Beta/discussions.

This release requires the 2024_v1.1 beta roboRIO image to use on a robot. This image is included in the NI 2024 Beta 1 Game Tools.

Getting Started

Check out what's new for 2024 and jump directly to the WPILib installation guide.

If you're starting from a 2023 robot project, you will need to import it to create a 2024 project.

Downloads

For 2024, we are considering different options for our downloads due to GitHub file size limitations, and are testing this during the beta. Download links from alternate hosting are below; alternatively in Beta 2 we are providing "split" zip files in the GitHub release--you will need to download both the .zip and .z01 files and then unzip them to get the installer image (this can be done in Windows Explorer by selecting both files and running "Extract All"). Feedback regarding this change is welcome on the beta forum.

What's Changed Since Beta 1

Major new features

  • Bundled AdvantageScope in installer (v3.0.0-beta-3)
  • Added support for serialization/deserialization of protobuf and fixed-size structs to NT and DataLog by @PeterJohnson. Documentation/examples are in work. More information in #5391.
  • Added Exponential motion profile by @jlmcmchl in https://github.com/wpilibsuite/allwpilib/pull/5720

NetworkTables

  • Fixed crashes in networking on Windows by @PeterJohnson in https://github.com/wpilibsuite/allwpilib/pull/5788

Math

  • Added overloads for Transform2d and Transform3d by @anitmangal in https://github.com/wpilibsuite/allwpilib/pull/5757
  • Fixed hardcoded module count in SwerveDriveKinematics.resetHeading() by @calcmogul in https://github.com/wpilibsuite/allwpilib/pull/5762
  • Added DCMotor functions for Kraken X60 and Neo Vortex by @jlmcmchl in https://github.com/wpilibsuite/allwpilib/pull/5759
  • Added LinearSystemId DCMotorSystem overload by @narmstro2020 in https://github.com/wpilibsuite/allwpilib/pull/5770
  • Added ChassisSpeeds.fromRobotRelativeSpeeds() by @BlueZeeKing in https://github.com/wpilibsuite/allwpilib/pull/5744
  • Made Vector-Vector binary operators return Vector by @calcmogul in https://github.com/wpilibsuite/allwpilib/pull/5772

Examples

  • Make swerve examples multiply desired module speeds by cosine of heading error by @ori-coval in https://github.com/wpilibsuite/allwpilib/pull/5758

Other bug fixes

  • Workaround implemented for the beta v1.1 image missing the FRC_ prefix in the image name
  • [wpilib] Close sim device in ADIS IMUs by @calcmogul in https://github.com/wpilibsuite/allwpilib/pull/5776
  • [wpilib] Make physics sim setState() functions public by @calcmogul in https://github.com/wpilibsuite/allwpilib/pull/5779
  • [commands] Add requirements parameter to Commands.idle() by @rzblue in https://github.com/wpilibsuite/allwpilib/pull/5774
  • [wpilibj] Fix RobotBase.isSimulation() by @PeterJohnson in https://github.com/wpilibsuite/allwpilib/pull/5783
  • [wpilib] Counter: fix default distance per pulse, give c++ parity by @rzblue in https://github.com/wpilibsuite/allwpilib/pull/5796

Dependency updates

  • Updated C++ JSON to 3.11.2 by @pjreiniger in https://github.com/wpilibsuite/allwpilib/pull/5680
  • Updated EJML to 0.43.1 by @calcmogul in https://github.com/wpilibsuite/allwpilib/pull/5778

Full Changelog: https://github.com/wpilibsuite/allwpilib/compare/v2024.1.1-beta-1...v2024.1.1-beta-2

Errata

  • AdvantageScope fails the GateKeeper check on Mac

New contributors

WPILib is developed by a small team of volunteers and the FIRST community. Thanks to the following new contributors (since the beta-1 release) for helping make WPILib better for all teams!

  • @ori-coval made their first contribution in https://github.com/wpilibsuite/allwpilib/pull/5758
  • @anitmangal made their first contribution in https://github.com/wpilibsuite/allwpilib/pull/5757
  • @BlueZeeKing made their first contribution in https://github.com/wpilibsuite/allwpilib/pull/5744

MD5 Hashes

1debcd7d7f4ce61e6eea7f416ea851b2 WPILib_Linux-2024.1.1-beta-2.tar.gz
fe761aadc59aae329837176118009893 WPILib_Windows-2024.1.1-beta-2.iso
5246df73a8298527bbb403a3ce3ff821 WPILib_macOS-Intel-2024.1.1-beta-2.dmg
4d7cf833cf758cad6d2f335a17bbcc4a WPILib_macOS-Arm64-2024.1.1-beta-2.dmg
6e25e45d55d6deaeed131e63fabb672e WPILib_Linux-2024.1.1-beta-2.z01
bc5e14c94a9d5fbf1cf386b43c81fb76 WPILib_Linux-2024.1.1-beta-2.zip
e0fac709528b6f0618e7a4a6b4de413a WPILib_Windows-2024.1.1-beta-2.z01
ad485c5fec801eeb8631326c8c20c599 WPILib_Windows-2024.1.1-beta-2.zip
c5efe5a466c9ab67420bb8a5c424ec6c WPILib_macOS-Arm64-2024.1.1-beta-2.z01
b43d4f439867df2b44256a43d2d55065 WPILib_macOS-Arm64-2024.1.1-beta-2.zip
cada09d2cdb04fd9d9810215956d708f WPILib_macOS-Intel-2024.1.1-beta-2.z01
b39f18e4fe4b29a8fc419ac3ca9a8353 WPILib_macOS-Intel-2024.1.1-beta-2.zip

SHA256 Hashes

ff096dbef435701537946a88224f614bbffd970996b1d858436d56ccafbfa727 WPILib_Linux-2024.1.1-beta-2.tar.gz
e4107d683079e687fd38fcdf122fbe0e788384a24c88c64a0fd28a2bae7ccac3 WPILib_Windows-2024.1.1-beta-2.iso
0b70087a05c38ca2368cc13e2aafe1894abed3e322a6373568410167b7761ebc WPILib_macOS-Intel-2024.1.1-beta-2.dmg
f302deeec66a3d1430ae685e81ed21c53eeaeb7585b965ec9ba0e31ee81d0b7e WPILib_macOS-Arm64-2024.1.1-beta-2.dmg
4427cf1c51cf6904beaccfeac12ab70d017c9d69ad0d8b24c0266425133035e3 WPILib_Linux-2024.1.1-beta-2.z01
117e1b86384f5ae569d015dd3d69778764b350af4d60dab24e0a2dbb96a69876 WPILib_Linux-2024.1.1-beta-2.zip
a49c2d7c7e53e913157e716fe4a4a819763744cc879f14023bd627e52b951dea WPILib_Windows-2024.1.1-beta-2.z01
8f67a61358d2d7ff745a53f231456488284ffcbc5ccb8312626acff6492c53a8 WPILib_Windows-2024.1.1-beta-2.zip
5e684fd7001bd54c7d0e9b106e0bf4adfe5bfaad1d73e7286ec9a5427d43f8e5 WPILib_macOS-Arm64-2024.1.1-beta-2.z01
e7606da87de3ca757100e0de9717afdb272b666c4d4a0d0403f4d788d11e2f0a WPILib_macOS-Arm64-2024.1.1-beta-2.zip
e9801d884e73fd8538d85d450c42cdedaf2316c7c7ce464725c7008f7fa7cee0 WPILib_macOS-Intel-2024.1.1-beta-2.z01
14ec13851738a660224c4451631b3e8be9de893619fb6eb1d4c0eeaf26832f75 WPILib_macOS-Intel-2024.1.1-beta-2.zip

You can download the latest release of the installer from GitHub.

Once on the GitHub releases page, scroll to the Downloads section.

Latest WPILib release page on GitHub

Then click on the correct binary for your OS and architecture to begin the download.

Extracting the Installer

When you download the WPILib installer, it is distributed as a disk image file .iso for Windows, .tar.gz for Linux, and distributed as a DMG for MacOS.

Windows 10+ users can right click on the downloaded disk image and select Mount to open it. Then launch WPILibInstaller.exe.

The menu after right clicking on an .iso file to choose "Mount".

Nota

Other installed programs may associate with iso files and the mount option may not appear. If that software does not give the option to mount or extract the iso file, then follow the directions below.

You can use 7-zip to extract the disk image by right-clicking, selecting 7-Zip and selecting Extract to…. Windows 11 users may need to select Show more options at the bottom of the context menu.

After right clicking on the .iso file go to "7-Zip" then "Extract to....".

After opening the .iso file, launch the installer by opening WPILibInstaller.exe.

Nota

After launching the installer, Windows may display a window titled «Windows protected your PC». Click More info, then select Run anyway to run the installer.

For this release, macOS 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.

macOS users can double click on the downloaded DMG and then select WPILibInstaller to launch the application.

Show the macOS screen after double clicking the DMG file.

Linux users should extract the downloaded .tar.gz and then launch WPILibInstaller. Ubuntu treats executables in the file explorer as shared libraries, so double-clicking won’t run them. Run the following commands in a terminal instead with <version> replaced with the version you’re installing.

$ tar -xf WPILib_Linux-<version>.tar.gz
$ cd WPILib_Linux-<version>/
$ ./WPILibInstaller

Running the Installer

Upon opening the installer, you’ll be presented with the below screen. Go ahead and press Start.

Start of InstallerAn overview of the installer options

This showcases a list of options included with the WPILib installation.

  • Tools Only installs just the WPILib tools (Pathweaver, Shuffleboard, RobotBuilder, SysID, Glass, and OutlineViewer) and JDK.

  • Everything installs the full development environment (VS Code, extensions, all dependencies), WPILib tools, and JDK.

You will notice two buttons, Install for this User and Install for all Users. Install for this User only installs it on the current user account, and does not require administrator privileges. However, Install for all Users installs the tools for all system accounts and will require administrator access. Install for all Users is not an option for macOS and Linux.

Nota

If you select Install for all Users, Windows will prompt for administrator access through UAC during installation.

Select the option that is appropriate for you, and you’ll presented with the following installation screen.

This next screen involves downloading VS Code. Unfortunately, due to licensing reasons, VS Code can not be bundled with the installer.

Overview of VS Code download options
  • Download for this computer only

    • This downloads VS Code only for the current platform, which is also the smallest download.

  • Skip and don’t use VS Code

    • Skips installing VS Code. Useful for advanced installations or configurations. Generally not recommended.

  • Select existing VS Code archive for offline install on this computer

    • Selecting this option will bring up a prompt allowing you to select a pre-existing zip file of VS Code that has been downloaded by the installer previously. This option does not let you select an already installed copy of VS Code on your machine.

  • Create VS Code archives to share with other computers/OSes for offline install

    • This option downloads and saves a copy of VS Code for all platforms, which is useful for sharing the copy of the installer.

Go ahead and select Download for this computer only. This will begin the download process and can take a bit depending on internet connectivity (it’s ~100MB). Once the download is done, select Next. You should be presented with a screen that looks similar to the one below.

Installer progress bar

After installation is complete, you will be presented with the finished screen.

Installer finished screen.

Importante

WPILib installs a separate version of VS Code. It does not use an already existing installation. Each year has it’s own copy of the tools appended with the year. IE: WPILib VS Code 2022. Please launch the WPILib VS Code and not a system installed copy!

Congratulations, the WPILib development environment and tooling is now installed on your computer! Press Finish to exit the installer.

Post-Installation

Some operating systems require some final action to complete installation.

After installation, the installer opens the WPILib VS Code folder. Drag the VS Code application to the dock. Eject WPILibInstaller image from the desktop.

Some versions of Linux (e.g. Ubuntu 20.04) require you to give the desktop shortcut the ability to launch. Right click on the desktop icon and select Allow Launching.

Menu that pops up after right click the desktop icon in Linux.

Nota

Installing desktop tools and rebooting will create a folder on the desktop called YYYY WPILib Tools, where YYYY is the current year. Desktop tool shortcuts are not available on Linux and macOS.

Additional C++ Installation for Simulation

C++ robot simulation requires that a native compiler to be installed. For Windows, this would be Visual Studio 2022 (not VS Code), macOS requires Xcode 14 or later, and Linux (Ubuntu) requires the build-essential package.

Ensure the Desktop Development with C++ option is checked in the Visual Studio installer for simulation support.

Screenshot of the Visual Studio build tools option

What is Installed?

The Offline Installer installs the following components:

  • Visual Studio Code - The supported IDE for 2019 and later robot code development. The offline installer sets up a separate copy of VS Code for WPILib development, even if you already have VS Code on your machine. This is done because some of the settings that make the WPILib setup work may break existing workflows if you use VS Code for other projects.

  • C++ Compiler - The toolchains for building C++ code for the roboRIO

  • Gradle - The specific version of Gradle used for building/deploying C++ or Java robot code

  • Java JDK/JRE - A specific version of the Java JDK/JRE that is used to build Java robot code and to run any of the Java based Tools (Dashboards, etc.). This exists side by side with any existing JDK installs and does not overwrite the JAVA_HOME variable

  • WPILib Tools - SmartDashboard, Shuffleboard, RobotBuilder, Outline Viewer, Pathweaver, Glass, SysID

  • WPILib Dependencies - OpenCV, etc.

  • VS Code Extensions - WPILib extensions for robot code development in VS Code

Uninstalling

WPILib is designed to install to different folders for different years, so that it is not necessary to uninstall a previous version before installing this year’s WPILib. However, the following instructions can be used to uninstall WPILib if desired.

  1. Delete the appropriate wpilib folder (c:\Users\Public\wpilib\YYYY where YYYY is the year to uninstall)

  2. Delete the desktop icons at C:\Users\Public\Public Desktop

  1. Delete the appropriate wpilib folder (~/wpilib/YYYY where YYYY is the year to uninstall)

  1. Delete the appropriate wpilib folder (~/wpilib/YYYY where YYYY is the year to uninstall). eg rm -rf ~/wpilib/YYYY

Troubleshooting

In case the installer fails, please open an issue on the installer repository. A link is available here. The installer should give a message on the cause of the error, please include this in the description of your issue.