Known Issues

This article details known issues (and workarounds) for FRC® Control System Software.

Open Issues

Onboard I2C Causing System Lockups

Issue: Use of the onboard I2C port, in whatsoever language, tin can effect in system lockups. The frequency of these lockups appears to be dependent on the specific hardware (i.e. different roboRIOs will bear differently) also as how the bus is being used.

Workaround: The merely surefire mitigation is to use the MXP I2C port or another device to read the I2C data. Acessing the device less often and/or using a different roboRIO may significantly reduce the likelihood/frequency of lockups, information technology will exist up to each squad to assess their tolerance of the gamble of lockup. This lockup can not be definitively identified on the field and a field fault will not be called for a match where this behavior is believed to occur. This lockup is a CPU/kernel hang, the roboRIO will completely finish responding and will not exist accessible via the DS, webpage or SSH. If y'all tin can access your roboRIO via any of these methods, you are experiencing a dissimilar issue.

Several alternatives exist for accessing the REV color sensor without using the roboRIO I2C port. A similar approach could exist used for other I2C sensors.

  • Apply a Raspberry Pi Pico. Supports up to 2 REV color sensors, sends data to the roboRIO via serial. The Pi Pico is low cost (less than $x) and readily available.

  • Use a Raspberry Pi. Supports i-4 color sensors, sends data to the roboRIO via NetworkTables. Primarily useful for teams already using a Raspberry Pi as a coprocessor.

Can jitney utilization is noisy

Issue: CAN jitney utilization as reported live past the DS or as shown in the DS log has significant variation or "spikes" in the data. This is due to the RoboRIO occasionally counting CAN packets in the incorrect time period, so 1 period will have a much lower utilization than reality and the adjacent a much higher utilization than reality.

Workaround: Zoom in on the DS log plot and look for time periods when the utilization is stable (the spikes will be both above and beneath this average). The average utilization is the true utilization.

Updating Properties on roboRIO 2.0 may be ho-hum or hang

Issue: Updating the properties on a roboRIO 2.0 without reformatting using the Imaging Tool (such as setting the team number) may be deadening or hang.

Workaround: After a few minutes of the tool waiting the roboRIO should exist able to exist rebooted and the new properties should be set.

Simulation crashes on Mac after updating WPILib

Issue: On macOS, after updating the project to utilize a newer version of WPILib, running simulation immediately crashes without the GUI appearing.

Workaround: In VS Code, run WPILib | Run a command in Gradle, clean . Alternatively, run .\gradlew clean in the terminal or delete the build directory.

Invalid build due to missing GradleRIO

Effect: Rarely, a user'due south Gradle cache will go cleaved and they will go shown errors similar to the following:

                                        Could not apply requested plugin [id: 'edu.wpi.first.GradleRIO', version: '2020.iii.2'] equally it does non provide a plugin with id 'edu.wpi.kickoff.GradleRIO'                  

Workaround:

Delete your Gradle cache located nether ~$USER_HOME/.gradle . Windows machines may need to enable the ability to view hidden files. This issue has simply shown upwardly on Windows so far. Please study this issue if you get information technology on an culling Bone.

Unable to Build Robot Projects outside of VS Code on M1-based macOS

Issue: Error when edifice a robot project in non-WPILib installations.

                                        Could non determine the dependencies of task ':extractReleaseNative'.                    > Could not resolve all files for configuration ':nativeRelease'.                                          > Failed to transform hal-cpp-2022.1.one-rc-ane-osxx86.aught (edu.wpi.commencement.hal:hal-cpp:2022.one.ane-rc-i) to match attributes {artifactType=gr-directory, org.gradle.condition=release}.                    ...                  

Workaround: M1-based macOS is non supported. The to a higher place error will show up when using an ARM-based JDK. User must use a x64-uniform JDK 11 or preferably use the WPILib installer.

Chinese characters in Driver Station Log

Issue: Rarely, the commuter station log will show Chinese characters instead of the English text. This appears to but happen when Windows is set to a language other then English.

Chinese character appearing in the Driver Station log window.

Workaround: There are two known workarounds:

  1. Copy and paste the Chinese characters into notepad, and the English text volition be shown.

  2. Temporarily change the Windows language to English.

C++ Intellisense - Files Open on Launch Don't Piece of work Properly

Result: In C++, files open when VS Code launches volition accept problems with Intellisense showing suggestions from all options from a compilation unit of measurement and not but the advisable ones or non finding header files. This is a bug in VS Lawmaking.

Workaround:

  1. Close all files in VS Lawmaking, only go out VS Lawmaking open

  2. Delete c_cpp_properties.json file in the .vscode folder, if it exists

  3. Run the "Refresh C++ Intellisense" command in vscode.

  4. In the bottom correct you should see something that looks like a platform (linuxathena or windowsx86-64 etc). If information technology'south non linuxathena click it and gear up it to linuxathena (release)

  5. Wait ~1 min

  6. Open up the primary cpp file (not a header file). Intellisense should now be working

Issues with WPILib Dashboards and Simulation on Windows North Editions

Upshot: WPILib code using CSCore (dashboards and faux robot code) will have bug on Teaching N editions of Windows.

  • Shuffleboard will run, just not load cameras

  • Smartdashbard will crash on start-up

  • Robot Simulation volition crash on showtime-up

Solution: Install the Media Feature Pack

NetworkTables Interoperability

At that place is currently an issue with inter-operating C++/Java NetworkTables clients (dashboards or co-processors) with LabVIEW servers (LV robot code). In some scenarios users will see updates from one customer neglect to be replicated beyond to other clients (east.g. data from a co-processor will not be properly replicated out to a dashboard). Information however continues to return correctly when accessed past lawmaking on the server.

Workaround: Write code on the server to mirror any keys you wish to see on other clients (e.one thousand. dashboards) to a carve up key. For example, if you take a key named targetX being published past a co-processor that you want to show up on a dashboard, y'all could write code on the robot to read the key and re-write it to a key like targetXDash .

LabVIEW Autorun graphics say 2020

LabVIEW autorun screen showing mismatched versions

Issue: If you launch the LabVIEW installer past using the Autorun file, the carte du jour item correctly says 2022, just the graphic says 2020.

Workaround: This can be safely ignored, if the menu item says 2022, yous are installing the correct software.

Stock-still in WPILib 2022.four.one

Reentrant uses of synchronized may cause deadlock in Java

Issue: If multiple threads call a synchronized object, there may be a deadlock. This is caused past a bug in the version of JDK bundled with the 2022.1.1 to 2022.3.ane versions of WPILib.

The quondam commands framework, when using PIDController and PIDCommand, is peradventure susceptible to this issue. If using that combination, delight update to the latest WPILib to solve the issue.

Workaround: In that location are 2 options for workarounds:

  1. Install the 2021 JDK. This is performed automatically in WPILib 2022.4.1 and later.

    1. Download the 2021 JDK.

    2. Copy the downloaded .ipk file to the roboRIO.

    3. SSH as admin to the roborio and execute opkg remove frc2022-openjdk* and opkg install roborio-2021-11.0.9u11-1.ipk

  2. Replace uses of synchronized with reentrantLock

                                        attempt                    {                    reentrantLock                    .                    lock                    ()                    ...                    do                    code                    here                    ...                    }                    finally                    {                    reentrantLock                    .                    unlock                    ()                    }                  

ADIS16448 not reading values in Java

Issue: In WPILib 2022.3.1, using the no-args constructor for the ADIS16448 IMU in Java results in an separate by zero exception in a separate thread and no IMU data updates.

Workaround: Instead of the no-args constructor, use new ADIS16448_IMU(ADIS16448_IMU.IMUAxis.kZ, SPI.Port.kMXP, ADIS16448_IMU.CalibrationTime._1s); .

Fixed in WPILib 2022.2.1

Joysticks may terminate updating in Java

Issue: A deadlock in the Java WPILib DriverStation thread may occur. This is primarily noticeable past Joystick values "freezing" and not updating. Disable and E-Stop are non afflicted by this upshot.

Recommendations: Ensure that anyone operating a robot is prepared to disable or E-Stop if this issue occurs. Limit calls to the following DriverStation methods: isEnabled , isEStopped , isAutonomous , isDisabled , isAutonomousEnabled , isTeleopEnabled , isTest , isDSAttached , isFMSAttached , and updateControlWord , especially from multiple threads, to limit the chance of the deadlock occurring. Follow this WPILib issue for more than updates and possible workarounds.

VS Code Vendor Cheque for Updates Broken

Issue: Checking for vendor library updates online results in the following fault message: Control 'WPILib: Manage Vendor Libraries' resulted in an mistake (Only absolute URLs are supported). This is caused by a bug in the VS Lawmaking extension related to the way the WPILib Command library vendordeps were created. This issue will exist fixed in the next WPILib release.

Workaround: If you aren't using either the new or old Control vendordep, remove them from your project. Alternately, the new or sometime Command vendordep can be temporarily removed before checking for updates, then re-added.

Shuffleboard aborts while launching

Issue: Shuffleboard may start to open up, and then arrest. This is caused by issues with the scripts for launching the WPILib tools.

Workaround: Manually launch Shuffleboard from the commandline without using the shortcut or script. On Windows run c:\Users\Public\wpilib\2022\jdk\bin\java -jar c:\Users\Public\wpilib\2022\tools\shuffleboard.jar . On Linux or macOS, run ~/wpilib/2022/jdk/bin/coffee -jar ~/wpilib/2022/tools/shuffleboard.jar

Note

This issue may touch on any WPILib java tool, as they use the same scripts to open. If yous take problems with PathWeaver, RobotBuilder, or SmartDashboard replace shuffleboard.jar above with PathWeaver.jar , RobotBuilder.jar or SmartDashboard.jar