Known Problems

This article details known bug (and workarounds) for FRC® Command Arrangement Software.

Open Issues

Onboard I2C Causing System Lockups

Issue: Use of the onboard I2C port, in any language, can consequence in organisation lockups. The frequency of these lockups appears to exist dependent on the specific hardware (i.due east. different roboRIOs will carry differently) also as how the bus is being used.

Workaround: The simply surefire mitigation is to use the MXP I2C port or another device to read the I2C data. Acessing the device less frequently and/or using a different roboRIO may significantly reduce the likelihood/frequency of lockups, it volition be upwardly to each squad to assess their tolerance of the risk of lockup. This lockup can not be definitively identified on the field and a field fault will not be chosen for a match where this beliefs is believed to occur. This lockup is a CPU/kernel hang, the roboRIO will completely terminate responding and will not be accessible via the DS, webpage or SSH. If you can access your roboRIO via any of these methods, you are experiencing a different upshot.

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

  • Utilize a Raspberry Pi Pico. Supports up to ii REV color sensors, sends data to the roboRIO via series. The Pi Pico is low cost (less than $10) and readily available.

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

CAN bus utilization is noisy

Event: Tin can bus utilization as reported alive by the DS or as shown in the DS log has pregnant variation or "spikes" in the data. This is due to the RoboRIO occasionally counting Can packets in the incorrect fourth dimension period, so one period will have a much lower utilization than reality and the next a much higher utilization than reality.

Workaround: Zoom in on the DS log plot and look for fourth dimension periods when the utilization is stable (the spikes will exist both above and below this average). The average utilization is the truthful utilization.

Updating Properties on roboRIO ii.0 may exist slow or hang

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

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

Simulation crashes on Mac after updating WPILib

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

Workaround: In VS Lawmaking, run WPILib | Run a control in Gradle, clean . Alternatively, run ./gradlew make clean in the final or delete the build directory.

Invalid build due to missing GradleRIO

Result: Rarely, a user'south Gradle cache will get broken and they will get shown errors like to the following:

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

Workaround:

Delete your Gradle cache located nether ~$USER_HOME/.gradle . Windows machines may need to enable the power to view hidden files. This upshot has only shown up on Windows so far. Delight report this issue if you get it on an alternative Os.

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

Result: Mistake when building a robot projection in not-WPILib installations.

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

Workaround: M1-based macOS is not supported. The above error volition bear witness upwards when using an ARM-based JDK. User must use a x64-compatible JDK xi or preferably use the WPILib installer.

Chinese characters in Driver Station Log

Upshot: Rarely, the commuter station log will evidence Chinese characters instead of the English text. This appears to only happen when Windows is set to a language other so English language.

Chinese character appearing in the Driver Station log window.

Workaround: There are 2 known workarounds:

  1. Re-create and paste the Chinese characters into notepad, and the English text will be shown.

  2. Temporarily change 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 of measurement and not simply the appropriate ones or non finding header files. This is a problems in VS Code.

Workaround:

  1. Close all files in VS Code, merely exit VS Code open

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

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

  4. In the bottom right you should see something that looks like a platform (linuxathena or windowsx86-64 etc). If information technology's not linuxathena click it and ready information technology to linuxathena (release)

  5. Await ~1 min

  6. Open the master cpp file (non a header file). Intellisense should now be working

Bug with WPILib Dashboards and Simulation on Windows Due north Editions

Outcome: WPILib lawmaking using CSCore (dashboards and false robot code) volition have issues on Education Northward editions of Windows.

  • Shuffleboard will run, simply not load cameras

  • Smartdashbard will crash on offset-upward

  • Robot Simulation will crash on starting time-up

Solution: Install the Media Characteristic Pack

NetworkTables Interoperability

In that location is currently an issue with inter-operating C++/Coffee NetworkTables clients (dashboards or co-processors) with LabVIEW servers (LV robot code). In some scenarios users will come across updates from one client fail to exist replicated across to other clients (e.thou. information from a co-processor will non be properly replicated out to a dashboard). Information however continues to return correctly when accessed past lawmaking on the server.

Workaround: Write lawmaking on the server to mirror any keys yous wish to encounter on other clients (e.g. dashboards) to a split primal. For instance, if you take a fundamental named targetX being published by a co-processor that you lot desire to show up on a dashboard, you could write code on the robot to read the key and re-write it to a fundamental similar targetXDash .

LabVIEW Autorun graphics say 2020

LabVIEW autorun screen showing mismatched versions

Issue: If you launch the LabVIEW installer by using the Autorun file, the menu item correctly says 2022, but the graphic says 2020.

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

Fixed in WPILib 2022.4.1

Reentrant uses of synchronized may crusade deadlock in Java

Issue: If multiple threads call a synchronized object, there may be a deadlock. This is caused by a bug in the version of JDK bundled with the 2022.1.one to 2022.3.1 versions of WPILib.

The one-time commands framework, when using PIDController and PIDCommand, is perchance susceptible to this issue. If using that combination, delight update to the latest WPILib to solve the event.

Workaround: There are two options for workarounds:

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

    1. Download the 2022 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-ane.ipk

  2. Supplant uses of synchronized with reentrantLock

                                        try                    {                    reentrantLock                    .                    lock                    ()                    ...                    do                    code                    hither                    ...                    }                    finally                    {                    reentrantLock                    .                    unlock                    ()                    }                  

ADIS16448 not reading values in Java

Issue: In WPILib 2022.iii.1, using the no-args constructor for the ADIS16448 IMU in Java results in an divide by nil 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); .

Stock-still in WPILib 2022.2.1

Joysticks may finish updating in Java

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

Recommendations: Ensure that anyone operating a robot is prepared to disable or Due east-End if this result occurs. Limit calls to the post-obit 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 updates and possible workarounds.

VS Code Vendor Cheque for Updates Cleaved

Issue: Checking for vendor library updates online results in the following mistake message: Command 'WPILib: Manage Vendor Libraries' resulted in an mistake (Only accented URLs are supported). This is acquired by a bug in the VS Code extension related to the mode the WPILib Control library vendordeps were created. This upshot volition exist fixed in the next WPILib release.

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

Shuffleboard aborts while launching

Issue: Shuffleboard may start to open, and then 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/java -jar ~/wpilib/2022/tools/shuffleboard.jar

Note

This issue may touch whatsoever WPILib java tool, as they utilize the same scripts to open. If you lot have problems with PathWeaver, RobotBuilder, or SmartDashboard supervene upon shuffleboard.jar above with PathWeaver.jar , RobotBuilder.jar or SmartDashboard.jar