Rust ยท Slint ยท Raspberry Pi

Precision seeding,
driven by Rust

An open-source control application for the Delta X 2 delta-arm seeding robot โ€” safe, fast and built for a touch-only greenhouse kiosk.

Rust edition 2024 Slint UI Raspberry Pi 3 / 4 / 5 7″ touch display G-code over serial MIT license

Built for the greenhouse, engineered like a flight controller

Every design decision serves one person: the operator standing at the touchscreen, gloves on, no keyboard in sight.

๐Ÿ›ก๏ธ

Safety first

Configurable software limits on X, Y and Z are checked before any command reaches the hardware โ€” the last barrier before physical damage.

๐Ÿ‘†

Touch-only kiosk

Fixed 800ร—480 UI with finger-sized targets, designed for the official Raspberry Pi Touch Display. Everything the operator needs is on screen โ€” errors included.

โšก

Responsive by design

All robot I/O runs on a dedicated worker thread. The UI never blocks โ€” stop, pause and resume act instantly, even mid-job.

๐ŸŒฑ

Configurable trays

Seeding plates are pure configuration: pot grid, spacing and origin live in config.toml. Adding a new tray type needs zero code.

๐Ÿ”Œ

Robust protocol

Native Delta X 2 G-code with IsDelta handshake and per-command FEEDBACK:ok synchronization over serial.

๐Ÿฆ€

Modern stack

Rust (edition 2024) for memory-safe control logic, Slint for a declarative, compiled UI. No async runtime, no surprises โ€” boring technology, deliberately.

Three clean layers

A strict separation keeps the robot logic testable and the UI honest.

1

Slint UI

Declarative screens compiled at build time. State-driven navigation, a two-step seeding flow, and live progress โ€” all mutated only from the event loop.

2

Robot logic

DeltaRobot generates G-code, tracks the head position and enforces safety limits. Owned exclusively by a worker thread fed through a command channel.

3

Serial transport

A thin, byte-level wrapper over the serial port. No protocol knowledge, easy to mock โ€” the robot never talks to raw hardware from anywhere else.

Quick start

From clone to running UI in three commands. The app starts even with the robot unplugged.

# Grab the sources
$ git clone https://github.com/guycorbaz/deltax2.git && cd deltax2

# Point config.toml at your serial port, then build & run
$ cargo run

# On the Raspberry Pi (kiosk deployment)
$ SLINT_BACKEND=linuxkms ./target/release/deltax2

Documentation

Everything is written down โ€” from first boot to the full G-code reference.