Cross-platform GUI for controlling the Nexperia NEVC-MTR1 motor driver board via SCPI over USB-serial.
The GUI connects to an Arduino Leonardo running the NEVC-MTR1-t01 firmware and provides:
- Live motor control (enable/disable, frequency, direction)
- Real-time measurement graphs (speed, currents, duty cycle, voltage)
- Firmware configuration editor - all 26 parameters in
config.h - One-click compile and upload (arduino-cli and the Arduino AVR core are downloaded automatically on first use)
The kit hardware is documented on the Nexperia NEVB-MTR1-KIT1 product page.
| Graphs | Firmware & Config |
|---|---|
![]() |
![]() |
Tested platform: Windows 10/11 x64. Windows ARM64, Linux, and macOS builds are provided but untested - use at your own risk and report any issues.
- Download the archive for your platform from the Releases page and extract it.
- Connect the Arduino Leonardo USB cable to your PC.
- Run
NEVC-MTR1-GUI.exe(Windows) orNEVC-MTR1-GUI(Linux/macOS) - no installation required. - Select the COM port in the Connection tab and click Connect.
On first launch the app downloads arduino-cli.exe and the Arduino AVR core
(~130 MB, one time only). These are stored in
%APPDATA%\nevc_mtr1_gui\tools\ and reused on subsequent runs.
macOS: The binary is unsigned. On first launch, right-click it and choose Open to bypass Gatekeeper.
Linux / macOS: The firmware compile/upload tab requires
arduino-clito be installed manually - automatic download is Windows-only.
| Tool | Version |
|---|---|
| Rust (stable toolchain) | 1.77 or newer |
| Windows | 10 / 11 (64-bit) |
Install Rust via rustup.rs.
# Development build (faster compilation)
cargo run
# Optimised release build
cargo build --release
# Output: target\release\NEVC-MTR1-GUI.exesrc/
main.rs - entry point
app.rs - top-level iced application state and message routing
serial/ - serial port detection and async I/O
scpi/ - SCPI command builder and response parser
firmware/ - FirmwareConfig model, arduino-cli bootstrap, compile/upload
ui/ - per-tab panel widgets (connection, motor, graphs, firmware, config, log)
assets/
fonts/ - embedded fonts
icon/ - application icon (.ico, .png)
The GUI targets the main branch of
github.com/Nexperia/NEVC-MTR1-t01.
The firmware implements trapezoidal (six-step) commutation of a BLDC motor
using Hall-effect sensors on the Arduino Leonardo / ATmega32U4 platform.
All motor parameters are user-configurable via main/config.h; the GUI
exposes every parameter and can compile and flash a custom build without
leaving the application.
Pre-built firmware can also be uploaded manually using the Arduino IDE or
arduino-cli. Refer to the
firmware repository README
and the
NEVB-MTR1-KIT1 user manual (UM90029)
for hardware setup and pin-out details.
MIT/X Consortium License — see LICENSE.

