diff --git a/README.md b/README.md new file mode 100644 index 0000000..979bc4f --- /dev/null +++ b/README.md @@ -0,0 +1,194 @@ +# BumbleBoard + +BumbleBoard is an FRC dashboard using React and TypeScript developed by BumbleB 3339. This dashboard provides a customized, interactive interface for controlling and monitoring an FRC robot. It includes multiple widgets, such as live camera streams, graphs, indicators, etc, helping teams have a real-time overview of their robot's performance. + +--- + +## 📚 Table of Contents + +1. [About](#about) +2. [Installing](#installing) +3. [Connecting to your robot](#connecting-to-your-robot) +4. [Adding widgets](#adding-widgets) + - [Widget List](#widget-list) + - [Number](#number) + - [Slider](#slider) + - [Graph](#graph) + - [Boolean Indicator](#boolean-indicator) + - [Switch](#switch) + - [Text Indicator](#text-indicator) + - [Chooser](#chooser) + - [Camera](#camera) + - [Field](#field) + - [Timer](#timer) + - [Table](#table) +5. [Getting Help](#getting-help) + +--- + +## About + +BumbleBoard is designed to give FRC teams a responsive interface for robot control and data visualization. With this dashboard, team members can easily observe real-time data, and control various robot functions from a single location. BumbleBoard is developed to be highly customizable, allowing teams to adapt the dashboard to their specific robot's needs. + +## Installing + +To get BumbleBoard running, follow these steps to install and run BumbleBoard. + +### 1. Download the latest release + +Go to the [BumbleBoard GitHub releases](https://github.com/BumbleB3339/BumbleBoard/releases/latest) page and download the latest setup file (EXE) for Windows. + +### 2. Run the installer + +Open the downloaded setup file and follow the on-screen instructions to install BumbleBoard on your system. + +### 3. Launch BumbleBoard + +Once installed, you can find BumbleBoard in your Start menu or Applications folder. + +## Connecting to your robot + +To connect BumbleBoard to your robot, follow these steps: + +1. In the top-right corner of the BumbleBoard interface, click the **Settings** button located next to the minimize button. + +2. In the Settings panel, locate the `Connect By` field and choose: + + - **Team Number:** BumbleBoard will automatically connect to your robot’s network table using the default IP configuration based on the team number you entered. + + - **IP Address:** If you prefer to specify the robot’s IP address directly, enter the IP address of your robot. + +After configuring your connection, BumbleBoard will connect to your robot's network based on your selected settings. + +## Adding widgets + +To add widgets to BumbleBoard: + +1. Open the sidebar by clicking the Sidebar button in the top-left corner of the app, or by pressing Tab on your keyboard. + +2. Once the sidebar is open, you’ll see two widget options: + + - NetworkTables: Drag any network table entry from this menu to add it as a widget on the dashboard. + - Custom Widgets: Drag any custom widget from this menu to add it to the dashboard. + +### **Widget list** + +#### **Number** + +Displays a numeric value. Supports reading and writing to the entry. +
+Parameters: + +- `Digits After Point`: Number of decimal places to display. +- `Step Type`: + - **Automatic**: Steps adjust dynamically based on the entry value. + - **Manual**: Allows setting a step value. + +![](/app-pics/NumberWidget.png) + +#### **Slider** + +Displays a numeric value as a slider. Supports reading and writing to the entry. +
+Parameters: + +- `Min`: Minimum value of the slider. +- `Max`: Maximum value of the slider. +- `Step`: The step increment for slider movements. + +![](/app-pics/SliderWidget.png) + +#### **Graph** + +Displays values over time. Supports data types such as _int_, _double_, _boolean_, _int[]_, _double[]_, and _boolean[]_. Multiple entries can be displayed in the same graph widget by adding paths using the plus button. +
+Parameters: + +- `Min`: Minimum value of the graph. Leave blank for auto-scaling. +- `Max`: Maximum value of the graph. Leave blank for auto-scaling. + +![](/app-pics/GraphWidget.png) + +#### **Boolean Indicator** + +Displays a boolean value with visual feedback using colors. +
+Parameters: + +- `Color on True`: The color displayed when the value is true. +- `Color on False`: The color displayed when the value is false. + +![](/app-pics/BooleanIndicatorWidget.png) + +#### **Switch** + +Displays a boolean value with a toggle switch. Supports reading and writing to the entry. + +![](/app-pics/SwitchWidget.png) + +#### **Text Indicator** + +Displays a string value along with a visual indicator (color/image) based on the value. Useful for enums or similar cases. Supports reading and writing to the entry. +
+Parameters: + +- `Indicators`: + - Add indicators with the plus button. + - Enter the specific value in the 'value' field. + - Choose an indicator type (color/image). + - Select the desired color or image for the indicator. + +![](/app-pics/TextIndicatorWidget.png) + +#### **Chooser** + +Displays a sendable chooser (e.g., Auto Chooser). + +![](/app-pics/ChooserWidget.png) + +#### **Camera** + +Displays a live camera stream from the robot. +
+Parameters: + +- `Source`: The camera stream to display. + +![](/app-pics/CameraWidget.png) + +#### **Field** + +Displays the robot’s position on the field based on its alliance. For the red alliance, `(0,0)` is the bottom-left corner; for the blue alliance, `(0,0)` is the top-right corner. +
+Parameters: + +- `Alliance`: Set to **red**, **blue**, or auto-detect from the FMS. +- `History`: Number of "ghost" robots (past positions) shown behind the current position. + +![](/app-pics/FieldWidget.png) + +#### **Timer** + +Displays a timer that reads from an entry. +
+Parameters: + +- `Blink Time`: Time at which the timer starts flashing red and white. + +![](/app-pics/TimerWidget.png) + +#### **Table** + +Displays multiple entries in a table format. Supports all entry types. + +![](/app-pics/TableWidget.png) + +## Getting Help + +If you need any assistance, we are here to help! + +1. Open an issue on our GitHub repository, where we can track and resolve problems efficiently. +2. Alternatively, post your question or concern on Chief Delphi, where other teams and developers can also assist. +3. For direct support, feel free to reach out to us on [Instagram](https://www.instagram.com/bumbleb3339/). + +We’re committed to ensuring BumbleBoard works smoothly and effectively for your team! diff --git a/app-pics/BooleanIndicatorWidget.png b/app-pics/BooleanIndicatorWidget.png new file mode 100644 index 0000000..8f4338c Binary files /dev/null and b/app-pics/BooleanIndicatorWidget.png differ diff --git a/app-pics/CameraWidget.png b/app-pics/CameraWidget.png new file mode 100644 index 0000000..b93f588 Binary files /dev/null and b/app-pics/CameraWidget.png differ diff --git a/app-pics/ChooserWidget.png b/app-pics/ChooserWidget.png new file mode 100644 index 0000000..fd4df25 Binary files /dev/null and b/app-pics/ChooserWidget.png differ diff --git a/app-pics/FieldWidget.png b/app-pics/FieldWidget.png new file mode 100644 index 0000000..0766e9c Binary files /dev/null and b/app-pics/FieldWidget.png differ diff --git a/app-pics/GraphWidget.png b/app-pics/GraphWidget.png new file mode 100644 index 0000000..86a2aa3 Binary files /dev/null and b/app-pics/GraphWidget.png differ diff --git a/app-pics/NumberWidget.png b/app-pics/NumberWidget.png new file mode 100644 index 0000000..900642e Binary files /dev/null and b/app-pics/NumberWidget.png differ diff --git a/app-pics/SliderWidget.png b/app-pics/SliderWidget.png new file mode 100644 index 0000000..b89591f Binary files /dev/null and b/app-pics/SliderWidget.png differ diff --git a/app-pics/SwitchWidget.png b/app-pics/SwitchWidget.png new file mode 100644 index 0000000..bea8a7b Binary files /dev/null and b/app-pics/SwitchWidget.png differ diff --git a/app-pics/TableWidget.png b/app-pics/TableWidget.png new file mode 100644 index 0000000..0119b66 Binary files /dev/null and b/app-pics/TableWidget.png differ diff --git a/app-pics/TextIndicatorWidget.png b/app-pics/TextIndicatorWidget.png new file mode 100644 index 0000000..38cb48c Binary files /dev/null and b/app-pics/TextIndicatorWidget.png differ diff --git a/app-pics/TimerWidget.png b/app-pics/TimerWidget.png new file mode 100644 index 0000000..d3f496a Binary files /dev/null and b/app-pics/TimerWidget.png differ