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.
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.jsmanages the WebSocket connection and command messages, whileDataManager.jsstores 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/, andsrc/fonts/- Static assets and styling for the dashboard experience.public/- Static HTML and manifest files used by Create React App.
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 npmA 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 --versionIf 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.
The computer needs internet access for this section, so do it before you connect to the labjack over ethernet.
- Open a terminal. On Windows, search for "PowerShell" in the Start menu. On macOS, open "Terminal". On Linux, open your terminal app (
Ctrl + Alt + Ton Ubuntu). If you installed VS Code, you can use its built-in terminal instead. - Download the code and move into the project folder:
git clone https://github.com/rice-eclipse/quonkboard.git
cd quonkboard- Install the project dependencies. This can take a few minutes. You only need to do this once, or again after the dependencies in
package.jsonchange:
npm install- Make sure your terminal is in the
quonkboardfolder, then start the development server:
npm start- Wait until the terminal says it compiled successfully. Your browser should open automatically. If it does not, open
http://localhost:3000yourself.
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.
- Stop the quonkboard service on the RPi on labjack and delete the build folder
systemctl --user stop quonkboard
rm -rf ~/labjack_sphinx/quonkboard/build
- Run
npm run buildto Create a production build inbuild/ - Compress the file
tar -cvf build.tar build - 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
- restart the quonkboard service
systemctl --user daemon-reload
systemctl --user restart quonkboard
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.
- 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.
- 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 as192.168.0.50with subnet mask255.255.255.0. Do not use192.168.0.100, since that is the RPi. Check the connection withping 192.168.0.100. - Start the dashboard with
npm startand openhttp://localhost:3000in a browser. - Select the appropriate engine display (Proxima, Sphinx, or Prometheus) on the home page.
- Enter the target WebSocket endpoint in
ip:portformat in theConnection IPbox at the top right, such as192.168.0.100:2707. This is the default value in the box. - Click
Connectto begin receiving telemetry. The button changes toDisconnect, which you can click to end the connection. - To send valve or ignition commands, enter the labjack password in the
Passwordbox. Commands are rejected unless it matches thepasswordunder[general]in the labjack config.inifile on the RPi.
npm,node, orgitis 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 installfails orModule not foundappears when starting: Check that you have internet access (not just the ethernet link to the labjack), then delete thenode_modulesfolder andpackage-lock.jsonand runnpm installagain.- Port 3000 is already in use: Another copy of the dashboard or program is using it. Close it, or type
Ywhen 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, thatping 192.168.0.100gets a reply, that the labjack service is running on the RPi, and that theip:portis correct. - Commands are rejected with
Invalid password: Re-enter the password in thePasswordbox and check that it matches the labjack config on the RPi.
QuonkBoard was bootstrapped with Create React App and uses React 18, React Router, Material UI, and MUI X Charts.