Customer:
I’m attempting to reprogram my Inkplate 6 Motion using the provided simple examples, but I cannot program the device unless the boot switch is set to 1. Once programming completes, the device does not boot after returning the boot switch to 0. I also cannot enter programming mode when the boot switch is set to 0 - I see no output on the serial monitor.
I’ve tried the troubleshooting steps for uploading code and am only seeing these issues. I’m running Arduino 2.3.6 IDE in a Linux environment. Previously I had no issues programming the device and getting code to execute. This appears to have started after a couple weeks of not using the device.
Originally submitted via email support on 20 June 2025. Migrated to the forum for community visibility.
Soldered Support:
Do you have an ST-Link programmer? During development this issue occurred but was resolved after reflashing the board using the ST-Link method, which then allowed continued uploads over USB.
When you press the programming button with the board connected, do you see output on the serial monitor? Usually it should display ‘Programming mode active.’ This message is sent at 112500 baud - are you reading at the correct baud rate?
Also, can you try this with one of the official examples from the library, such as the black and white example, rather than your own code?
Customer:
I tried all the troubleshooting steps using a basic example from the Inkplate Arduino library and am seeing the same issue. I repeated the steps this morning to make sure I didn’t miss anything, but the behavior remains the same.
I can acquire an ST-Link to try resolving this, but I’ll wait to see what additional information is available.
Soldered Support:
Try uploading a simple sketch without the Inkplate library:
void setup() {
Serial.begin(115200);
Serial.println("Sketch running");
}
void loop() {
delay(1000);
Serial.println("Still running");
}
Make sure the serial monitor is set to 115200 baud, as that’s what the bootloader uses too. Then:
- Flash with BOOT = 1
- Flip switch to BOOT = 0
- Reset or power cycle
- Check if serial output appears
If it still doesn’t work, we may need to reflash the bootloader using an ST-Link. Something in the bootloader may have been overwritten.
Customer:
I tried the instructions but unfortunately the behavior is still not as expected. I can still upload with BOOT=1, but I see nothing on the serial monitor at 115200 baud when attempting to run with BOOT=0.
I was able to get an ST-Link device, so I should be able to attempt reflashing the bootloader.
Soldered Support:
With an ST-Link you will be able to upload code using Arduino IDE, which is the simplest approach.
Connect your ST-Link to these pins on Inkplate 6 Motion:
(Refer to the pinout drawn on the ST-Link itself - it may differ from reference images)
You only need the 4 marked pins. I recommend also connecting USB to Inkplate for additional power.
Open an empty sketch in Arduino IDE, select the Inkplate 6 Motion board definition, and select the ST-Link upload method.
The serial port doesn’t matter in this case as Arduino IDE will find the ST-Link itself.
Upload the serial print sketch from the previous message. This should also write the bootloader and everything along with the sketch.
Afterward, verify that you can use it correctly without the ST-Link by using the classic programming method with the PROG button.
Attachment omitted in migration: image.png
Attachment omitted in migration: image.png
Attachment omitted in migration: image.png
Customer:
Your instructions to reprogram with the ST-Link resolved my issue. However, I have further information: this fix only worked with version 1.0.0 of the Inkplate Motion Arduino Library. Upgrading to 1.0.1 and reprogramming causes the failure mode to occur again. Reverting to 1.0.0 and reprogramming with the ST-Link is required to get the hardware working again.
Attachment omitted in migration: image.png
Attachment omitted in migration: image.png
Attachment omitted in migration: image.png
Soldered Support:
Thank you for this insight. The board definitions had to be updated due to regular USB code upload showing errors on some operating systems. This information is important - we’ll work on fixing the board definition accordingly.