Repository: github.com/elijah286/mini-system-manager
Purpose: A simple, readable LabVIEW-based “mini system manager” for connecting to Revidyne educational hardware systems (available via revidyne.com).
Revidyne builds small, functional, desktop-scale models designed to help educators teach engineering and programming concepts using real “code + electronics + physical system” workflows. Examples include modules like a solar tracker (ReviSol), a wind turbine (ReviWin), and a small power plant model (ReviGen), all controllable over USB.
Learn more about the hardware at revidyne.com.
This project provides a Queued Message Handler (QMH) application focused on:
- Device connectivity
- Connect to Revidyne hardware over USB (string/command-style communication).
- Command discovery
- Query a connected device for its supported command set.
- Interactive test console
- Send commands, receive responses/data, and validate behavior during development or labs.
- Curriculum + exercises integration
- Serve pre-written curriculum materials and related exercises.
- Help learners understand which devices are required and which devices are compatible with a given lesson plan.
The code is intentionally simple and readable to model best practices and make it approachable for students and educators.
This project is intentionally lightweight—there’s no installer.
- LabVIEW 2020 or later
- NI-VISA (required for device communications)
- Download (or clone) this repository:
git clone https://github.com/elijah286/mini-system-manager.git
Revidyne offers multiple small systems that connect to a PC via USB and can be monitored/controlled with string-based commands. Examples include:
- ReviSol — solar tracker with a photovoltaic panel and stepper motor; supports solar tracking algorithms and IV curve tracing concepts.
- ReviWin — wind turbine model with directional control and interrupt-driven wind-speed measurement concepts.
- ReviGen — small power plant model with motor/generator coupling, PWM control, output power calculations, and PID control concepts.
- ReviGrid — a collection of power grid models connected via a case hub to explore smart-grid strategies and model interactions.
(See revidyne.com for the current set of models and details.)
This application uses a classic Queued Message Handler (QMH) style:
- A UI/message loop enqueues actions
- A worker/handler loop processes messages deterministically
- State and device I/O are kept straightforward to support teaching and maintainability
Browse front panel and block diagram snapshots for every VI in this project: Open VI Browser →
All VIs & Controls (42 files)
| File | Type |
|---|---|
| Controller Commands.ctl | CTL |
| Curriculum Launcher.vi | VI |
| Find Curriculum.vi | VI |
| Graph Popup.vi | VI |
| main.vi | VI |
| Simple Solar Tracker v4.vi | VI |
| Status String Update.vi | VI |
| File | Type |
|---|---|
| Generator Driver Template 1.vi | VI |
| Generator Driver Template 2.vi | VI |
| Generator Driver Template 3.vi | VI |
| Generator Driver Template 4.vi | VI |
| Generator Driver Template 5.vi | VI |
| File | Type |
|---|---|
| Demo PID Control.vi | VI |
| Default Instrument Setup.vi | VI |
| Close.vi | VI |
| Initialize.vi | VI |
| VI Tree.vi | VI |
| Init.vi | VI |
| Motor Off.vi | VI |
| Motor On.vi | VI |
| Set Load.vi | VI |
| Set Speed.vi | VI |
| Get KW.vi | VI |
| Get Value.vi | VI |
| Error Query.vi | VI |
| Reset.vi | VI |
| Revision Query.vi | VI |
| Self-Test.vi | VI |
| File | Type |
|---|---|
| Main Power Grid.vi | VI |
| File | Type |
|---|---|
| Solar Example.vi | VI |
- Install LabVIEW (version/tooling appropriate for the project contents).
- Clone the repo
git clone https://github.com/elijah286/mini-system-manager.git
## CI pipeline
This repository now includes GitHub Actions modeled on the Windows-container workflows in `ni/labview-for-containers`:
- **MassCompile - Windows Container**: mass compiles the repository on pull requests and pushes to `main`
- **Run VI Analyzer - Windows Container**: runs a starter VI Analyzer ruleset and uploads the text report as an artifact
- **VIDiff Report - Windows Container**: generates HTML diffs for changed `.vi` and `.ctl` files in pull requests
- **Deploy VIDiff Reports**: publishes VIDiff HTML reports to GitHub Pages and comments on the pull request with links
The CI workflows pull a pre-baked LabVIEW image from GitHub Container Registry (GHCR): `ghcr.io/elijah286/mini-system-manager-labview:2026`.
This repo keeps the image definition in source control and the built image in GHCR:
- Dockerfile in repo: `.github/docker/labview-ci.Dockerfile`
- Build/publish workflow: `.github/workflows/build-labview-image.yml`
- Published package location: repository **Packages** tab in GitHub
### Rebuilding the CI image
1. Run the `Build LabVIEW CI Image` workflow from Actions.
2. Optionally set `labview_tag` in workflow dispatch input (defaults to `2026`).
3. Check the workflow summary for the pushed tags and digest.
The build workflow runs on changes to the Dockerfile path and monthly on schedule, and always uses `windows-2022`.
If you need to pin a different LabVIEW version, update `LABVIEW_CONTAINER_IMAGE` in workflow files under `.github/workflows/`, then rebuild and publish the corresponding image tag.
The starter VI Analyzer configuration is in `.github/labview/via-configs/via-config-default.viancfg`. You should expect to tune that ruleset once you see the first CI results for this codebase.
<!-- labview-ci:dashboard -->
## LabVIEW CI
[](https://elijah286.github.io/mini-system-manager/)
LabVIEW CI runs on every pull request. See the [**CI dashboard**](https://elijah286.github.io/mini-system-manager/) for build status, VI Analyzer results, VI diffs, and mass-compile reports.