Taras Woronjanski Turns to the Zephyr RTOS to Make the Arduino UNO Q a Little Rusty

Work-in-progress project seeks to port libraries to Rust, and already includes a working RPC implementation for the "dual-brain" board.

ghalfacree
about 6 hours ago HW101

Developer Taras Woronjanski is looking to make Arduino's first single-board computer in the UNO family, the Arduino UNO Q, a little rustier — by porting its libraries across to the language for use with the Zephyr real-time operating system (RTOS).

"I've been working on a Rust-based development framework for the Arduino UNO Q," Woronjanski explains of his project, "that enables communication between the [STMicroelectronics] STM32U585 MCU [Microcontroller Unit] and the [Qualcomm] QRB2210 Linux MPU [Microprocessor Unit] via SPI using MessagePack-RPC."

If you're looking to program the Arduino UNO Q in Rust, then Taras Woronjanski can get you started. (📷: Taras Woronjanski)

Launched late last year following Qualcomm's acquisition of Arduino, and recently joined by the second SBC in the UNO family in the form of the Arduino VENTUNO Q, the Arduino UNO Q ditches the single-microcontroller design of its predecessors in favor of what the company terms a "dual-brain" architecture. In this, the UNO-footprint board is a fully-functional Linux-capable single-board computer running on a Qualcomm Dragonwing system-on-chip with an STMicro STM32 microcontroller acting as a real-time coprocessor — and a messaging system allows the two "brains" to communicate.

Those developing for the Arduino UNO Q are expected to use Arduino App Lab, a new integrated development environment built specifically for the platform — but Woronjanski didn't want to use the combination of Wiring-flavored C/C++ and Python on offer, opting instead to begin an effort to bring the platform's libraries across to the Zephyr real-time operating system (RTOS) in Rust.

The project already includes a working RPC server and client implementation for the "dual-brain" layout, plus a library for the LED matrix. (📷: Arduino)

At the time of writing, Woronjanski had completed rust ports of a library for controlling the Arduino UNO Q's on-board 8×13 LED matrix and both the microcontroller and microprocessor sides of the remote procedure call (RPC) libraries that allows the board's two "brains" to communicate. To prove that the project works, Woronjanski has also written a simple application, which uses the microprocessor to pull live weather data from the internet and display it on the LED matrix via the microprocessor.

The source code is available on GitHub, under the user's choice of the permissive Apache 2.0 or MIT licenses. If you don't have an Arduino UNO Q to try it on yet, then enter our Invent the Future with Arduino UNO Q and App Lab contest for a chance to pick up one of 300 Arduino UNO Q boards on offer as part of the $20,000 prize pool from partners including Arduino, Qualcomm, Edge Impulse, Foundries, and more — you've got until April 5th to put your entry in the hat for the hardware, and until August 30th to submit your project. More details are available on the official contest page.

ghalfacree

Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.

Latest Articles