Inkplate 6 MOTION sketch upload fails on Linux but works on Windows

Customer:

I’m experiencing a Linux-specific issue uploading sketches to Inkplate 6 MOTION. On Windows it works fine, and I can upload to Arduino Micro boards on Linux without problems, but Inkplate 6 MOTION behaves differently.

On Linux, when I press the programming button, the serial output shows “Programming mode active.” However, after a Linux upload, the program doesn’t execute and pressing the programming button produces no serial output.

Attempting to upload sketches with BOOT position 0 fails with: “Timeout error occured while waiting for acknowledgement. Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration.”

Switching to BOOT position 1 with reset allows successful upload but produces no result on screen, no behavior change, and no serial output when pressing the programming button.

I’m running Arduino IDE 2.3.6 with Inkplate Library 1.0.1, Inkplate MOTION Boards 1.0.2, and STM32Programmer 2.20.0. The sketch compiles successfully (158744 bytes, 7% of storage).

Full error output:

sh "/home/username/.arduino15/packages/Inkplate_Motion/tools/STM32Tools/2.2.1-0/stm32CubeProg.sh" 1 "/home/username/.cache/arduino/sketches/A1BF44/Inkplate_6_Motion_Simple_BW.ino.bin" 0x0 ttyUSB0

STM32CubeProgrammer v2.20.0

Serial Port ttyUSB0 is successfully opened. Port configuration: parity = even, baudrate = 230400, data-bit = 8, stop-bit = 1.0, flow-control = off
Timeout error occured while waiting for acknowledgement.
Error: Activating device: KO. Please, verify the boot mode configuration and check the serial port configuration.
Reset your device then try again...
Failed uploading: uploading error: exit status 1

I’m open to alternative methods using arduino-cli or STM tools directly, or beta testing ESPhome if available.

Originally submitted via the contact form on soldered.com on 22 September 2025. Migrated to the forum for community visibility.

Soldered Support:

Make sure you’re using Arduino 2.0 or newer, which is required for Inkplate 6 MOTION.

First, verify the basic workflow: plug Inkplate via USB, open the Serial monitor at 115200 baud, and press the PROG button. It should display “Programming mode active.” This indicates programming mode is active. Once you see this, you do not need to exit programming mode. Try uploading one of the basic examples (Basic→Inkplate_6_Motion_Simple_BW). If that fails, try uploading an entirely blank sketch. Sketch size has been reported to affect upload success.

If Arduino IDE upload continues to fail, you can use STM32CubeProgrammer as a workaround. When you click ‘verify’ in Arduino, it generates a .bin file at a path like: /home/username/.cache/arduino/sketches/A1BF44/Inkplate_6_Motion_Simple_BW.ino.bin

You can upload this .bin manually using STM32CubeProgrammer’s GUI, starting from address 0x0 onwards. STM32CubeProgrammer should already be installed as a board definition requirement.

Alternatively, you can use a STM32 programming device that connects via USB with jumper wires to Inkplate’s SWDIO and SWDCLK pins. In Arduino, select this as your upload method. This approach should work consistently every time and generally be faster without reset issues.

Attachment omitted in migration: image.png