Known Issues

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

Open up Issues

Onboard I2C Causing Organisation Lockups

Outcome: Use of the onboard I2C port, in whatsoever language, tin result in system lockups. The frequency of these lockups appears to exist dependent on the specific hardware (i.e. unlike roboRIOs will comport differently) as well as how the bus is being used.

Workaround: The only surefire mitigation is to use the MXP I2C port or another device to read the I2C information. Acessing the device less oft and/or using a different roboRIO may significantly reduce the likelihood/frequency of lockups, it will be up to each team to assess their tolerance of the risk of lockup. This lockup can not exist definitively identified on the field and a field fault will non be chosen for a friction match where this beliefs is believed to occur. This lockup is a CPU/kernel hang, the roboRIO will completely cease responding and will non exist accessible via the DS, webpage or SSH. If you can admission your roboRIO via any of these methods, you are experiencing a different 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.

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

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

CAN bus utilization is noisy

Issue: Can motorcoach 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 ane period will accept a much lower utilization than reality and the next a much college utilization than reality.

Workaround: Zoom in on the DS log plot and look for time periods when the utilization is stable (the spikes will exist both in a higher place and below this boilerplate). The average utilization is the true utilization.

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

Upshot: Updating the properties on a roboRIO two.0 without reformatting using the Imaging Tool (such as setting the team number) may be slow or hang.

Workaround: Afterwards a few minutes of the tool waiting the roboRIO should be able to be rebooted and the new backdrop should be set up.

Simulation crashes on Mac after updating WPILib

Issue: On macOS, later on updating the project to use a newer version of WPILib, running simulation immediately crashes without the GUI actualization.

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

Issue: Rarely, a user's Gradle enshroud volition go broken and they will get shown errors similar to the following:

                                        Could not apply requested plugin [id: 'edu.wpi.first.GradleRIO', version: '2020.3.2'] every bit it does not provide a plugin with id 'edu.wpi.first.GradleRIO'                  

Workaround:

Delete your Gradle cache located under ~$USER_HOME/.gradle . Windows machines may need to enable the ability to view hidden files. This issue has only shown up on Windows so far. Please report this effect if you lot get it on an alternative OS.

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

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

                                        Could not determine the dependencies of task ':extractReleaseNative'.                    > Could not resolve all files for configuration ':nativeRelease'.                                          > Failed to transform hal-cpp-2022.ane.i-rc-ane-osxx86.nada (edu.wpi.starting time.hal:hal-cpp:2022.1.1-rc-1) to friction match attributes {artifactType=gr-directory, org.gradle.status=release}.                    ...                  

Workaround: M1-based macOS is not supported. The above error will bear witness upwards when using an ARM-based JDK. User must use a x64-compatible JDK xi or preferably apply 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 merely happen when Windows is set to a language other then English language.

Chinese character appearing in the Driver Station log window.

Workaround: In that location are ii known workarounds:

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

  2. Temporarily modify the Windows linguistic communication to English.

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

Issue: In C++, files open when VS Code launches will have issues with Intellisense showing suggestions from all options from a compilation unit and non just the appropriate ones or non finding header files. This is a bug in VS Code.

Workaround:

  1. Close all files in VS Lawmaking, only leave VS Code open up

  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 right you should encounter something that looks like a platform (linuxathena or windowsx86-64 etc). If it's not linuxathena click it and set it to linuxathena (release)

  5. Await ~ane min

  6. Open up the main cpp file (non a header file). Intellisense should at present exist working

Issues with WPILib Dashboards and Simulation on Windows N Editions

Issue: WPILib code using CSCore (dashboards and simulated robot code) volition have problems on Education N editions of Windows.

  • Shuffleboard will run, but non load cameras

  • Smartdashbard volition crash on starting time-up

  • Robot Simulation will crash on start-up

Solution: Install the Media Feature Pack

NetworkTables Interoperability

In that location is currently an issue with inter-operating C++/Java NetworkTables clients (dashboards or co-processors) with LabVIEW servers (LV robot lawmaking). In some scenarios users will see updates from one client fail to exist replicated across to other clients (eastward.g. data from a co-processor will not be properly replicated out to a dashboard). Data yet continues to return correctly when accessed past lawmaking on the server.

Workaround: Write code on the server to mirror any keys yous wish to see on other clients (e.g. dashboards) to a split up key. For example, if you accept a key named targetX being published by a co-processor that you desire to show up on a dashboard, you could write lawmaking 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 yous launch the LabVIEW installer by using the Autorun file, the menu particular correctly says 2022, but the graphic says 2020.

Workaround: This tin can be safely ignored, if the bill of fare item says 2022, you are installing the correct software.

Stock-still in WPILib 2022.4.1

Reentrant uses of synchronized may crusade deadlock in Java

Event: If multiple threads call a synchronized object, there may be a deadlock. This is acquired by a bug in the version of JDK bundled with the 2022.1.one to 2022.three.ane versions of WPILib.

The sometime commands framework, when using PIDController and PIDCommand, is possibly susceptible to this effect. If using that combination, please update to the latest WPILib to solve the outcome.

Workaround: There are two options for workarounds:

  1. Install the 2022 JDK. This is performed automatically in WPILib 2022.4.one and later.

    1. Download the 2022 JDK.

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

    3. SSH equally 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

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

ADIS16448 non reading values in Java

Issue: In WPILib 2022.3.1, using the no-args constructor for the ADIS16448 IMU in Coffee results in an dissever by cipher exception in a carve up 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 end updating in Java

Issue: A deadlock in the Coffee WPILib DriverStation thread may occur. This is primarily noticeable past Joystick values "freezing" and not updating. Disable and East-Cease are not affected by this effect.

Recommendations: Ensure that anyone operating a robot is prepared to disable or East-Stop if this effect 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 Check for Updates Broken

Outcome: Checking for vendor library updates online results in the following error 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 manner the WPILib Command library vendordeps were created. This outcome will be stock-still in the next WPILib release.

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

Shuffleboard aborts while launching

Consequence: Shuffleboard may beginning to open, so abort. 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

Notation

This issue may bear on whatsoever WPILib java tool, as they utilize the same scripts to open. If you take issues with PathWeaver, RobotBuilder, or SmartDashboard supersede shuffleboard.jar higher up with PathWeaver.jar , RobotBuilder.jar or SmartDashboard.jar