Recent Updates

  • 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.

  • Updated on: Oct 24, 2014

    SmartDashboard namespace

    SmartDashboard uses NetworkTables to send data between the robot and the Dashboard (Driver Station) computer. NetworkTables sends data as name, value pairs, like a distributed hashtable between the robot and the computer. When a value is changed in one place, its value is automatically updated in the other place. This mechanism and a standard set of name (keys) is how data is displayed on the SmartDashboard.

    There is a hierarchical structure in the name space creating a set of tables and subtables. SmartDashboard data is in the SmartDashboard subtable and LiveWindow data is in the LiveWindow subtable as shown below.

    For informational purposes the names and values can be displayed using the TableViewer application that is installed in the same location as the SmartDashboard. It will display all the NetworkTable keys and values as they are updated.

  • You can change the type of widget that displays values with the SmartDashboard. The allowable widgets depend on the type of the value being displayed.