Skip to content

htl-stp-ecer/botui

Repository files navigation

StpVelox

StpVelox (BotUI)

The Flutter desktop environment for the KIPR Wombat — dashboard, programs, sensors, and more.

Build & Release Latest Release License: GPL v3 Flutter Dart Platform Display

📖 Full documentation at raccoon-docs.pages.dev


StpVelox is the graphical environment that runs directly on the KIPR Wombat controller. It replaces the default Wombat UI with a fast, touch-friendly Flutter interface purpose-built for Botball competition — real-time sensor graphs, a program runner with live terminal output, WiFi management, and a camera feed, all on an 800×480 display.


Features

Screen What it does
Dashboard Live sensor overview grid — IMU, analog/digital ports, battery
Programs Browse, launch, and monitor robot programs with a live terminal
Sensors Real-time charts for gyro, accelerometer, magnetometer, and analog inputs
Camera Live camera feed from the robot's vision system
WiFi Scan, connect, and manage networks via Linux NetworkManager
Settings Device config, touch calibration for the embedded display

Building & deploying

StpVelox uses FVM for Flutter version pinning and flutterpi_tool for ARM64 cross-compilation.

Prerequisites

# Install FVM
dart pub global activate fvm
fvm install   # picks up version from .fvmrc

# Activate flutterpi_tool
dart pub global activate flutterpi_tool

Build & deploy to Pi

# Build release + deploy to Pi in one step
DEPLOY_HOST=<your-pi-ip> bash deploy.sh

Debug (profile mode on connected Pi)

bash debug.sh

Build only (output in build/)

bash build.sh

The build script runs build_runner for code generation (Riverpod, Freezed, JSON serialization), then cross-compiles for arm64 / pi3.


Architecture

StpVelox follows Clean Architecture with three layers and Riverpod for state management throughout.

lib/
├── core/           # DI (GetIt), routing (go_router), theme, shared utilities
├── features/       # One folder per feature (dashboard, program, sensors, wifi, ...)
│   └── <feature>/
│       ├── domain/       # Entities, repository interfaces, use cases
│       ├── data/         # Repository implementations, data sources
│       └── presentation/ # Riverpod providers, screens, widgets
├── shared/         # Shared widgets and helpers used across features
└── main.dart

Hardware data flows in via LCM through raccoon-transport — sensor values, motor state, and IMU readings are published on the LCM bus and consumed by the UI in real time.

Program execution uses a pseudoterminal so program stdout/stderr stream live into the terminal widget (xterm).

Rendering uses flutter-pi to render directly to the Linux framebuffer — no desktop environment, no compositor overhead. This gives high frame rates at almost no system cost on the Pi.


Requirements

  • FVM — Flutter version manager
  • Dart SDK ^3.5.4
  • flutterpi_tool for ARM64 builds
  • KIPR Wombat with Raspberry Pi (ARM64, 800×480 display)

Part of RaccoonOS

Repository What it is
raccoon-lib Core robotics library
raccoon-cli Dev toolchain — scaffolding, raccoon run
raccoon-transport LCM messaging layer
documentation Full platform docs

License

Copyright (C) 2026 Tobias Madlberger
Licensed under the GNU General Public License v3.0 — see COPYING for details.

About

Flutter desktop environment for the KIPR Wombat — real-time dashboard, program runner, sensor visualisation, and WiFi management

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors