Recent Updates

  • Updated on: Dec 16, 2014

    FRC Driver Station Errors/Warnings

    In an effort to provide both Teams and Volunteers (FTAs/CSAs/etc.) more information to use when diagnosing robot problems, a number of Warning and Error messages have been added to the Driver Station. These messages are displayed in the DS diagnostics tab when they occur and are also included in the DS Log Files that can be viewed with the Log File Viewer. This document discusses the messages produced by the DS (messages produced by WPILib can also appear in this box and the DS Logs).

  • Updated on: Dec 16, 2014

    LabVIEW Resources

    To learn more about programming in LabVIEW and specifically programming FRC robots in LabVIEW, check out the following resources.

  • Updated on: Dec 10, 2014

    Updating CAN Jaguar Firmware

    To use CAN Jaguars with the 2015 Control system, teams will have to update them to the latest version of the firmware. The recommended method to do so is by using the serial interface and the BDC-Comm software tool.

  • Updated on: Nov 04, 2014

    The new SmartDashboard (SFX)

    We have a new SmartDashboard that uses the more modern JavaFX for it's user interface. This has the promise of much richer user interfaces since it allows the widgets to have style sheets applied to them and the library is much newer. The new dashboard requires a current version of Oracle Java 7 (minimum release 7u6) to be installed on your system to get JavaFX.

  • Updated on: Oct 24, 2014

    Verifying SmartDashboard is working

  • Updated on: Oct 24, 2014

    Enabling Test mode (LiveWindow)

    You may add code to your program to display values for your sensors and actuators while the robot is in Test mode. This can be selected from the Driver Station whenever the robot is not on the field. The code to display these values is automatically generated by RobotBuilder and is described in the next article. Test mode is designed to verify the correct operation of the sensors and actuators on a robot. In addition it can be used for obtaining setpoints from sensors such as potentiometers and for tuning PID loops in your code.

  • Updated on: Oct 24, 2014

    Setting SFX to Launch with the DS

    The C++ and Java Dashboard buttons in the Driver Station link to the previously existing SmartDashboard for the 2015 season. This article details how to set up the DS to launch SFX instead.

  • Updated on: Oct 24, 2014

    Creating a custom control using FXML

    sfx comes with a palette of built-in controls that feature a wide range of use cases. But sometimes you would like to further customize your robot dashboard with controls that you create yourself. There are two strategies for creating custom controls, either:

    1. FXML - a XML-based markup language for describing your own controls using a declarative language without needing programming
    2. Java-based controls can have more complex requirements and behaviors

    In this lesson we'll look at creating FXML-based controls. For creating Java controls, see the Java tutorial.

  • Updated on: Oct 24, 2014

    Creating a custom control using Java

    sfx comes with a palette of built-in controls that feature a wide range of use cases. But sometimes you would like to further customize your robot dashboard with controls that you create yourself. There are two strategies for creating custom controls, either:

    1. FXML - a XML-based markup language for describing your own controls using a declarative language without needing programming
    2. Java-based controls can have more complex requirements and behaviors

    In this lesson we'll look at creating Java-based controls. For FXML controls see the FXML tutorial.

  • Updated on: Oct 24, 2014

    Stale data and SmartDashboard

    SmartDashboard uses NetworkTables for communicating values between the robot and the driver station laptop. Network Tables acts as a distributed table of name and value pairs. If a name/value pair is added to either the client (laptop) or server (robot) it is replicated to the other. If a name/value pair is deleted from, say, the robot but the SmartDashboard or OutlineViewer are still running, then when the robot is restarted, the old values will still appear in the SmartDashboard and OutlineViewer because they never stopped running and continue to have those values in their tables. When the robot restarts, those old values will be replicated to the robot.

    To ensure that the SmartDashboard and OutlineViewer are showing exactly the same values, it is necessary to restart all of them at the same time. That way, old values that one is holding won't get replicated to the others.

    This usually isn't a problem if the program isn't constantly changing, but if the program is in development and the set of keys being added to NetworkTables is constantly changing, then it might be necessary to do the restart of everything to accurately see what is current.