Customer:
I recently purchased an Inkplate 6 Motion and have been experimenting with it. I’m an experienced backend developer but new to embedded programming. I’ve started learning Rust and noticed that all the examples and code for the Inkplate 6 Motion are currently in C++ (which I was able to get working). I see that both the STM32 chip and the ESP32 chip both have Rust support. Is it possible to use Rust with the Inkplate 6 Motion? Would I need to upload with the STM32 libraries or the ESP32 libraries? I read that I would probably need to use Platform.io with VS Code. Is this accurate? Can you provide some information or documentation to get started?
Originally submitted via email support on 27 January 2026. Migrated to the forum for community visibility.
Soldered Support:
The onboard ESP32 is running esp-at firmware, so it’s acting as a wireless modem to download and upload data from WiFi to the main processor, which is the STM32. You need to focus on uploading code to the STM32 in Rust.
We don’t have official Rust support or any drivers for the e-Paper. You would need to translate the existing C++ drivers to Rust. This file among others is relevant: Inkplate_Motion_Arduino_Library/src/boards/Inkplate6Motion/IP6MotionDriver.cpp at main · SolderedElectronics/Inkplate_Motion_Arduino_Library · GitHub
Porting the Inkplate 6 Motion STM32 Arduino library to Rust would be quite a significant undertaking. If you want to proceed with this project, let me know and I can send pointers. Alternatively, I’d recommend writing an e-Paper project using the existing Inkplate 6 Motion library.
Customer:
I encountered a compilation error in Arduino:
~/.arduino15/packages/Inkplate_Motion/hardware/stm32/1.0.2/system/extras/prebuild.sh: 17: Bad substitution
exit status 2
Error compiling for board Inkplate 6 MOTION.
The original line in the script is:
printf '\n-fmacro-prefix-map="%s"=.' "${BOARD_PLATFORM_PATH//\\/\\\\}" > "$BUILD_PATH/sketch/build.opt"
Changing it to the following allowed everything to work:
ESC_PATH=$(printf '%s' "$BOARD_PLATFORM_PATH" | sed 's/\\/\\\\/g')
printf '\n-fmacro-prefix-map="%s"=.' "$ESC_PATH" > "$BUILD_PATH/sketch/build.opt"
I’m running Debian Trixie. I started setting things up in VSCode and Platform.io but ran into multiple issues related to using Debian on arm64. I’m switching my setup to amd64 to try again.
Soldered Support:
Thank you for finding a workaround on Debian. The fix that worked for you appears to break the linking process on Windows and macOS, so we’ll need to investigate further in the next release of the core. We appreciate you bringing this to our attention.
If you can explain the errors you encountered while trying to get Platform.io running on arm64, we can try to troubleshoot them.