Sand

The next-generation FRC dashboard built with Tauri, React and Mantine

Features

Design

Sand supports both light and dark mode and one of its goals is to have a good looking user-interface.

Screenshot 2022-12-24 at 23 38 33

Ease of Use

Sand resembles Shuffleboard so you don’t have to get used to different things. Some familiar aspects include the NetworkTables tree view, the drag and drop & grid layout,

Screenshot 2022-12-24 at 23 40 00

Keyboard Shortcuts

Screenshot 2022-12-24 at 23 36 04

Getting Started

Simply get the appropriate installer for your OS from the latest release. This should be a lightweight setup for the application which will automatically prompt you for updates when they are available.

Connecting to the Robot

In the app settings panel of the Edit tab (with the paste brush icon), enter your robot address. This should be something like 10.TE.AM.2. Hit save and restart the app, and then you should be connected. Note that Sand uses NT4 so it can only connect to WPILib 2023+ robots.

Caveats

  • While performance seems to be good in our limited testing, and we do try to keep performance as good as possible, it is not a main goal of the project (and indeed React, Mantine, and the code structure reflect quite a bit of room for improvement). Contributions are welcome to address this.
  • Web security is quite a complicated topic, and in order to view camera streams Sand must enable unsecure HTTP traffic. This means you should avoid putting non-camera URLs in the Camera widget.

Developing

  • Clone the repository
  • Follow the instructions for tauri and rust
  • Run npm install
  • Run npm run tauri dev

Roadmap

  • Components
    • Boolean Box
    • Toggle Switch
    • Text View
    • Label
    • Combo-Box Chooser
    • Gauge
    • Graph
    • Field
      • Robot
      • Trajectories
    • Camera
  • Robot-side control
  • Keyboard shortcuts
  • Edit props in-app with a nice GUI
  • Extensions
  • Update for NT4

Acknowledgements

Many things have been implemented as a result of the following:

GitHub

View Github