Known Issues

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

Open Issues

macOS Simulation fails to launch in Visual Studio Code

The first time launching simulation in VS Code on macOS using the WPILib: Simulate Robot Code on Desktop task will fail with a warning similar to the one below.

java.io.IOException: wpiHaljni could not be loaded from path or an embedded resource.
    attempted to load for platform /osx/x86-64/
    at edu.wpi.first.wpiutil.RuntimeLoader.loadLibrary(RuntimeLoader.java:78)
    at edu.wpi.first.hal.JNIWrapper.<clinit>(JNIWrapper.java:38)
    at edu.wpi.first.wpilibj.RobotBase.startRobot(RobotBase.java:316)
    at frc.robot.Main.main(Main.java:27)

This is a bug in VS Code being tracked by WPILib in vscode-wpilib#334.

Workaround: Attempt to launch the simulation once using the WPILib: Simulate Robot Code on Desktop task and let the task fail. Without closing the console that opens at the bottom of the VS Code window, launch the simulator again using the WPILib: Simulate Robot Code on Desktop task. The second time the simulator will launch properly.

C++ Intellisense - Files Open on Launch Don’t 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 not just the appropriate ones or not finding header files. This is a bug in VS Code.

Workaround:

  1. Close all files in VS Code, but leave VS Code 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 right you should see 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. Wait ~ 1 min

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

SmartDashboard and Simulation fail to launch on Windows N Editions

Issue: WPILib code using CSCore (dashboards and simulated robot code) will fail to launch on Education N editions of Windows.

Solution: Install the Media Feature Pack

NetworkTables Interoperability

There is currently an issue with inter-operating C++/Java Network Tables clients (dashboards or co-processors) with LabVIEW servers (LV robot code). In some scenarios users will see updates from one client fail to be replicated across to other clients (e.g. data from a co-processor will not be properly replicated out to a dashboard). Data still continues to return correctly when accessed by code on the server.

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

Fixed in 2020.3.2

PathWeaver Units

Issue: PathWeaver exports paths using the length unit that was used for the project. However, the WPILib trajectory tools expects paths with the length units of meters. If different units are selected in PathWeaver, the paths will be scaled incorrectly.

Solution: PathWeaver, starting with version 2020.3.2, can now export export to meters when the units within PathWeaver are set to something else.

Fixed in 2020.2.2

Java predefined colors are all zero

The predefined (static) colors from the WPILib Color class have all zero red, green, blue values.

This issue is being tracked by WPILib in allwpilib#2269.

C++ Command Based JoystickButton and POVButton not functioning

C++ JoystickButton and POVButton are both non functioning.

This issue is being tracked by WPILib in allwpilib#2259.

Workaround: Use a Button object directly instead of using JoystickButton or POVButton.

frc2::Button button{[&] { return m_joy.GetRawButton(1); }};

RobotBuilder extensions use the frc namespace (C++)

When using RobotBuilder to create a C++ robot program, extensions will generate code prepended with the frc:: namespace which will not compile.

Workaround: After generating C++ robot code with RobotBuilder, where appropriate, replace frc:: with the correct namespace for that device.

This issue is being tracked by WPILib in RobotBuilder#194.

Fixed in 2020.1.2

WPILib Projects created with 2020.1.1 have a project version of Beta2020-2

Any projects created have a project version of Beta2020-2 set in wpilib_preferences.json. This is not an issue, everything will still work properly. This will be fixed and update your projects in the 2nd release.

PathWeaver “Build Paths” Doesn’t Work

The “Build Paths” button in PathWeaver currently doesn’t work due to HAL usage reporting in the kinematics classes. This will be resolved in the 2nd release. See this page for more info on this error.