Skip to content

About

It's quonking time

Resources

Stars

0 stars

Watchers

2 watching

Forks

Repository files navigation

QuonkBoard

QuonkBoard is a React mission-control dashboard for Rice Eclipse engine test operations. It provides live telemetry views, engine diagrams, valve controls, ignition controls, and plotting for the Proxima, Sphinx, and Prometheus configurations.

Project Structure

  • src/App.js - Application shell, routing, dark Material UI theme, and shared connection state.
  • src/pages/ - Main display pages for Proxima, Sphinx, and Prometheus.
  • src/components/ - Dashboard UI widgets, including connection controls, live readouts, plots, telemetry logs, valve controls, ignition controls, and the top bar.
  • src/logic/ - Runtime data handling. Interface.js manages the WebSocket connection and command messages, while DataManager.js stores telemetry, logs, valve states, moving averages, and rate-of-change views.
  • src/configs/ - Engine-specific sensor and driver mappings used to translate incoming telemetry into dashboard fields.
  • src/diagrams/, src/styles/, src/audio/, and src/fonts/ - Static assets and styling for the dashboard experience.
  • public/ - Static HTML and manifest files used by Create React App.

Prerequisites

This guide assumes you already have Git and a web browser (Chrome, Firefox, or Edge). The only other thing you need is Node.js (LTS version). npm, which installs the dependencies and runs npm start, is included with Node.js.

Download the LTS installer from https://nodejs.org/en/download and run it with the default options. Alternatively, from a terminal:

# Windows (PowerShell)
winget install OpenJS.NodeJS.LTS

# macOS (requires Homebrew, https://brew.sh)
brew install node

# Ubuntu / Debian
sudo apt update
sudo apt install nodejs npm

# Fedora
sudo dnf install nodejs npm

A code editor such as VS Code is optional, but it has a built-in terminal that makes the steps below easier.

Close and reopen your terminal after installing, then check that everything is installed correctly. Each command should print a version number:

git --version
node --version
npm --version

If a command says it is not recognized or not found, see Troubleshooting. On Ubuntu / Debian, the version of Node.js from apt can be very old. If node --version prints something older than v18, install the LTS version from https://nodejs.org/en/download instead.

Installation

The computer needs internet access for this section, so do it before you connect to the labjack over ethernet.

  1. Open a terminal. On Windows, search for "PowerShell" in the Start menu. On macOS, open "Terminal". On Linux, open your terminal app (Ctrl + Alt + T on Ubuntu). If you installed VS Code, you can use its built-in terminal instead.
  2. Download the code and move into the project folder:
git clone https://github.com/rice-eclipse/quonkboard.git
cd quonkboard
  1. Install the project dependencies. This can take a few minutes. You only need to do this once, or again after the dependencies in package.json change:
npm install

Development

  1. Make sure your terminal is in the quonkboard folder, then start the development server:
npm start
  1. Wait until the terminal says it compiled successfully. Your browser should open automatically. If it does not, open http://localhost:3000 yourself.

The app will run at http://localhost:3000 by default.

The page can be refreshed after edits are made to reflect changes

To stop the server, click on the terminal and press Ctrl + C. Leave the terminal open while you are using the dashboard, since closing it stops the server.

On Windows you can also double-click windows_start.bat to start the server without typing anything. It runs npm start for you, but you still need to run npm install first.

The dashboard runs on your own computer, so npm start and localhost:3000 work without any network connection.

Deployment

  1. Stop the quonkboard service on the RPi on labjack and delete the build folder
systemctl --user stop quonkboard
rm -rf ~/labjack_sphinx/quonkboard/build
  1. Run npm run build to Create a production build in build/
  2. Compress the file tar -cvf build.tar build
  3. Secure copy to the RPi on labjack
scp <path-to-repo>/quonkboard/build.tar eclipsepi@192.168.0.100:~/labjack_sphinx/quonkboard
tar -xvf build.tar build
  1. restart the quonkboard service
systemctl --user daemon-reload
systemctl --user restart quonkboard

Usage

The dashboard needs the labjack on the RPi to be powered on and running in order to show live data. Without it the pages still open, but nothing will be plotted.

  1. Connect your computer to the RPi with an ethernet cable, either directly or through the network switch. There is no wifi or wireless connection, so the dashboard only works over ethernet.
  2. Make sure your computer's ethernet connection is on the same network as the RPi (192.168.0.x). If it is not assigned an address automatically (for example, when plugged directly into the RPi), set a manual IPv4 address on the ethernet adapter such as 192.168.0.50 with subnet mask 255.255.255.0. Do not use 192.168.0.100, since that is the RPi. Check the connection with ping 192.168.0.100.
  3. Start the dashboard with npm start and open http://localhost:3000 in a browser.
  4. Select the appropriate engine display (Proxima, Sphinx, or Prometheus) on the home page.
  5. Enter the target WebSocket endpoint in ip:port format in the Connection IP box at the top right, such as 192.168.0.100:2707. This is the default value in the box.
  6. Click Connect to begin receiving telemetry. The button changes to Disconnect, which you can click to end the connection.
  7. To send valve or ignition commands, enter the labjack password in the Password box. Commands are rejected unless it matches the password under [general] in the labjack config .ini file on the RPi.

Troubleshooting

  • npm, node, or git is not recognized / command not found: Close and reopen your terminal, or restart your computer, so it picks up the new install. If it still fails, reinstall Node.js or Git.
  • npm install fails or Module not found appears when starting: Check that you have internet access (not just the ethernet link to the labjack), then delete the node_modules folder and package-lock.json and run npm install again.
  • Port 3000 is already in use: Another copy of the dashboard or program is using it. Close it, or type Y when asked if you want to use another port and open the address shown in the terminal.
  • The dashboard opens but will not connect: Check that the ethernet cable is plugged in at both ends, that your computer has an address on 192.168.0.x, that ping 192.168.0.100 gets a reply, that the labjack service is running on the RPi, and that the ip:port is correct.
  • Commands are rejected with Invalid password: Re-enter the password in the Password box and check that it matches the labjack config on the RPi.

Notes

QuonkBoard was bootstrapped with Create React App and uses React 18, React Router, Material UI, and MUI X Charts.

About

It's quonking time

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages