Arduino UNO verify failed in bank

I left my Arduino UNO for one month on the shelf. Take it back and does not run my app anymore giving this Error: verify failed in bank at 0x08000000....

I reflash my UNO Q just to be sure. At the reflash I got this same kind of error. Some exemple app runs by not my app. Could this verify error be the problem?

Running with app lab 0.8.0

I don't have a UNO Q or your code to test, so I really don't know whether the problem is with the board, the application, or something in the programming process. If you have another UNO Q available, could you try it on that board?

@gilshutz Thank you for the answer. No I have only one board. These are expensive and need to test first. I will have to troubleshoot but before I was worry about this verify error

The only other things I can think of are be sure your power is good and try a different programing cable. Bad power supplies are very high on the "I cannot Find a Problem" list right below bad cables. Sorry I cannot do more, good luck!

Check where your board fails:

  1. Connect using USB cable. Is the board recognized under a COM Port?
  2. Does animation apper and finish?
  3. Open IDE 2.3.10 and upload Blink sketch.
  4. Does LED3_R blink?

@GolamMostafa Golam thanks for your help...

I found the problem in the code. The sketch.

I was changing the I2C speed Wire.setClock(100000); // 100kHz instead of 400kHz and then some lines of code later made the Wire.begin. Seems that the sequence is wrong. I should Wire.begin first and then change the clock. Any way eliminate this clock change and all works.

Investigating more it could be that the new update 0.8.0 may have change this from the Zephyr 0.55.0. I did needed some help from some AI to arrive to this conclusion. Because before this was working and tested for weeks...

Back to my original question: from this verify error I found should I care about this? Do I need to replace my board?

Does your board pass all the tests of post #5?

Note: I have also seen this same error with the current release. This time on a Q4

Starting app "rover simple joystick"
Sketch profile configured: Name="default", Port=""
The library Arduino_RouterBridge has been added from sketch project.
The library Arduino_RPClite has been added from sketch project.
The library MsgPack has been added from sketch project.
The library DebugLog has been added from sketch project.
The library ArxTypeTraits has been added from sketch project.
The library ArxContainer has been added from sketch project.
The library Adafruit Motor Shield V2 Library has been added from sketch project.
The library Adafruit BusIO has been added from sketch project.
Sketch uses 102676 bytes (13%) of program storage space. Maximum is 786432 bytes.
Global variables use 39092 bytes (14%) of dynamic memory, leaving 223052 bytes for local variables. Maximum is 262144 bytes.
Board platform: arduino:zephyr (0.56.0) in /home/arduino/.arduino15/packages/arduino/hardware/zephyr/0.56.0
Used library Wire () in /home/arduino/.arduino15/packages/arduino/hardware/zephyr/0.56.0/libraries/Wire
Used library Arduino_RouterBridge (0.4.3) in /home/arduino/.arduino15/internal/Arduino_RouterBridge_0.4.3_456a4ab6b378b066/Arduino_RouterBridge
Used library Arduino_RPClite (0.3.0) in /home/arduino/.arduino15/internal/Arduino_RPClite_0.3.0_66fefd6c76c3d010/Arduino_RPClite
Used library MsgPack (0.4.2) in /home/arduino/.arduino15/internal/MsgPack_0.4.2_a0d4adc5044d022c/MsgPack
Used library DebugLog (0.8.4) in /home/arduino/.arduino15/internal/DebugLog_0.8.4_c199e2cf6415ecc8/DebugLog
Used library ArxTypeTraits (0.3.2) in /home/arduino/.arduino15/internal/ArxTypeTraits_0.3.2_d65e2aabfeed7838/ArxTypeTraits
Used library ArxContainer (0.7.0) in /home/arduino/.arduino15/internal/ArxContainer_0.7.0_007f0bb2a1cdefe3/ArxContainer
Used library Adafruit Motor Shield V2 Library (1.1.4) in /home/arduino/.arduino15/internal/Adafruit_Motor_Shield_V2_Library_1.1.4_8b4e8194fd911147/Adafruit Motor Shield V2 Library
Used library Adafruit BusIO (1.17.4) in /home/arduino/.arduino15/internal/Adafruit_BusIO_1.17.4_7b46ea3f5fdb9ecd/Adafruit BusIO
Used library SPI () in /home/arduino/.arduino15/packages/arduino/hardware/zephyr/0.56.0/libraries/SPI
Open On-Chip Debugger 0.12.0+dev-ge6a2c12f4 (2025-05-22-15:51)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
clock_config
/tmp/remoteocd/zephyr-arduino_uno_q_stm32u585xx.elf
/tmp/remoteocd/zephyr-arduino_uno_q_stm32u585xx.elf
/tmp/remoteocd/sketch.ino.elf-zsk.bin
Info : Linux GPIOD JTAG/SWD bitbang driver (libgpiod v2)
Info : Note: The adapter "linuxgpiod" doesn't support configurable speed
Info : SWD DPIDR 0x0be12477
Info : [stm32u5.ap0] Examination succeed
Info : [stm32u5.cpu] Cortex-M33 r0p4 processor detected
Info : [stm32u5.cpu] target has 8 breakpoints, 4 watchpoints
Info : [stm32u5.cpu] Examination succeed
Info : [stm32u5.ap0] gdb port disabled
Info : [stm32u5.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
CPU in Non-Secure state
[stm32u5.cpu] halted due to debug-request, current mode: Thread 
xPSR: 0x41000000 pc: 0x08016f54 psp: 0x20042938
Info : device idcode = 0x30076482 (STM32U57/U58xx - Rev U : 0x3007)
Info : TZEN = 0 : TrustZone disabled by option bytes
Info : RDP level 0 (0xAA)
Info : flash size = 2048 KiB
Info : flash mode : dual-bank
Info : Padding image section 2 at 0x080374f4 with 12 bytes (bank write end alignment)
Info : Padding image section 0 at 0x08119114 with 12 bytes (bank write end alignment)
Error: verify failed in bank at 0x08000000 starting at 0x00100000
Info : Padding image section 0 at 0x08119114 with 12 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x08119120 .. 0x08119fff
shutdown command invoked
python provisioning

This was using a zip file from @Merlin513, that I simply did the create app from zip and then a RUN...

I will also double check to see if it also happens on the Q2 later.
@ptillisch Wonder if issue with some of the updates during the last release cycle?

Yeah noticed this same failure on both the Q2 and the Q4. It does not appear to prevent the code from running.

I am curious as to why this was necessary since according to documentation, 100kHz is "usually the baseline", and the default standard mode on the STM32U585 is also runs at 100kHz, although it can go faster. The order of commands seems to make sense since one usually has to initialize a class object before using its additional methods, but...

Having done some testing as well, with similar results:

Sketch uses 73892 bytes (9%) of program storage space. Maximum is 786432 bytes.
Global variables use 27788 bytes (10%) of dynamic memory, leaving 234356 bytes for local variables. Maximum is 262144 bytes.
"/home/johnc/.arduino15/packages/arduino/tools/remoteocd/0.1.1/remoteocd" upload --adb-path "/home/johnc/.arduino15/packages/arduino/tools/adb/32.0.0/adb" -s "611119766" -f "/home/johnc/.arduino15/packages/arduino/hardware/zephyr/0.56.0/variants/arduino_uno_q_stm32u585xx/flash_sketch.cfg" "--verbose" "/home/johnc/.arduino15/packages/arduino/hardware/zephyr/0.56.0/firmwares/zephyr-arduino_uno_q_stm32u585xx.elf" "/home/johnc/.cache/arduino/sketches/DC6E6C42E99D597A900326EE71D1501C/master_reader.ino.elf-zsk.bin"
Pushing binary: [/home/johnc/.arduino15/packages/arduino/hardware/zephyr/0.56.0/firmwares/zephyr-arduino_uno_q_stm32u585xx.elf /home/johnc/.cache/arduino/sketches/DC6E6C42E99D597A900326EE71D1501C/master_reader.ino.elf-zsk.bin]
Pushing config files: [/home/johnc/.arduino15/packages/arduino/hardware/zephyr/0.56.0/variants/arduino_uno_q_stm32u585xx/flash_sketch.cfg]
Running command: /opt/openocd/bin/openocd -d2 -s /opt/openocd -s /opt/openocd/share/openocd/scripts -f openocd_gpiod.cfg -c set filename /tmp/remoteocd/zephyr-arduino_uno_q_stm32u585xx.elf -c set filename0 /tmp/remoteocd/zephyr-arduino_uno_q_stm32u585xx.elf -c set filename1 /tmp/remoteocd/master_reader.ino.elf-zsk.bin -f /tmp/remoteocd/flash_sketch.cfg
Open On-Chip Debugger 0.12.0+dev-ge6a2c12f4 (2025-05-22-15:51)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
debug_level: 2
clock_config
/tmp/remoteocd/zephyr-arduino_uno_q_stm32u585xx.elf
/tmp/remoteocd/zephyr-arduino_uno_q_stm32u585xx.elf
/tmp/remoteocd/master_reader.ino.elf-zsk.bin
Info : Linux GPIOD JTAG/SWD bitbang driver (libgpiod v2)
Info : Note: The adapter "linuxgpiod" doesn't support configurable speed
Info : SWD DPIDR 0x0be12477
Info : [stm32u5.ap0] Examination succeed
Info : [stm32u5.cpu] Cortex-M33 r0p4 processor detected
Info : [stm32u5.cpu] target has 8 breakpoints, 4 watchpoints
Info : [stm32u5.cpu] Examination succeed
Info : [stm32u5.ap0] gdb port disabled
Info : [stm32u5.cpu] starting gdb server on 3333
Info : Listening on port 3333 for gdb connections
CPU in Non-Secure state
[stm32u5.cpu] halted due to debug-request, current mode: Thread 
xPSR: 0x41000000 pc: 0x08016f54 psp: 0x20042938
Info : device idcode = 0x30076482 (STM32U57/U58xx - Rev U : 0x3007)
Info : TZEN = 0 : TrustZone disabled by option bytes
Info : RDP level 0 (0xAA)
Info : flash size = 2048 KiB
Info : flash mode : dual-bank
Info : Padding image section 2 at 0x080374f4 with 12 bytes (bank write end alignment)
Info : Padding image section 0 at 0x081120a4 with 12 bytes (bank write end alignment)
Error: verify failed in bank at 0x08000000 starting at 0x00100000
Info : Padding image section 0 at 0x081120a4 with 12 bytes (bank write end alignment)
Warn : Adding extra erase range, 0x081120b0 .. 0x08113fff
shutdown command invoked

Out of 5 attempts, it compiled only once without an error. It seems that the error frequently appears regardless of whether Wire.setClock() is used and what position in the sketch its in ( before or after .begin() ).

I think given the other responses, the answer to the question:

Is no. Its kind of looking like a Zephyr or Wire library issue?

On another but related note, I couldn't find any Wire examples (or SPI for that matter) when the UNO Q board is selected. I had to select a traditional UNO R3, open a Wire example (I used master_reader) and then switch to the UNO Q board. Is this an omission, or has the Wire library not been properly adopted for the UNO Q yet?

I opened up an issue on it, as a place holder:
Arduino UNO verify failed in bank · Issue #542 · arduino/ArduinoCore-zephyr

Quick update:

There were a couple responses on the issue:

Hi @KurtE , the string
Error: verify failed in bank at 0x08000000 starting at 0x00100000
is not a real error, but a side effect of the method that was introduced with #436 to automatically flash the loader if it's misaligned (either out of date or self compiled).
You'll see it only when switching core, so we thout it was not a big deal to leave it and avoid patching opencod to hide the "error"

And then later

After rereading the script, I noticed we also added a "shortcut" to avoid reflashing the sketch if it didn't change... So the "error" line would be printed way too often. #543 should fix it; it need to be tested on Win and Mac but on Linux it already does the job :slightly_smiling_face:
Thanks for reporting so promptly!

Thank you for looking at this problem.

But I like to understand, even so I installed the version applab 0.8.0 it keep asking me if I want to update. I did it but it goes to a loop and never end the update. What should be the plan now for those updates? Now I skip updates and I would be happy to trust those updates and stop to have anxieties at every new updates...

0.9.0 came out yesterday which I installed and so far no problems...

Never ends? Did you click on the button or the like, with a title something like
show details? It then shows you each thing it is downloading and expanding and installing.

Did this stop? Or was it simply taking a long time on your internet. It takes a while on mine...

Look at the screenshot. Like this for more 30 minutes. Stopped applab and restart. Still 0.8.0

Arduino App Lab may be installed in two distinct locations:

  • On the host PC
  • On the UNO Q's filesystem

The update shown in your screenshot is updating the Arduino App Lab installation on the UNO Q's filesystem. This is used when you use the board in single-board computer (SBC) mode.

That update will not affect the separate installation of Arduino App Lab present on your host PC. So if you are using the board in PC hosted mode, then it is expected that you will still be using Arduino App Lab version 0.8.0 after restarting App Lab.

You can use the following procedure to check if the software on the UNO Q's filesystem is up to date:

  1. Navigate to the main view (where you can select the "My Apps" view, "Examples" view, etc.).
  2. Click the "Settings" button near the bottom left hand corner of the window.
    The "Settings" view will open.
  3. Scroll down to the "System Info" section of the view.

If the system is up to date, you will see a "System is up to date" label to the right of the "System version" field:

If it is not up to date, you will instead see an "Update" button there.

@ptillisch Thank you for the info. I found it and it says that I am system uptodate. So why is applab asking me to update? Applab itself?

What should I do if I want the version 0.9.0? Should I need it to stay uptodate? Should I install it from the download software and run the install on the PC?

My configuration: running Applab from a Windows PC and the board is almost exlusively running with the WIFI.

What is the update asking me to do? To update the app lab? or the board?. It is still unclear to me.

I would like to be sure I will not release my project to the public and get stuck at the next "update" for some firmware problem I would like to understand the mechanism.

When you say "asking me to update", are you referring to the exact dialog you shared in post #15:

Or are you seeing a different dialog?

Thanks for the clarification. In this case, the Arduino App Lab update you see performed via the dialog in the screenshot you shared in post #15 is not relevant, as that is only updating the installation on the UNO Q's file system. You instead need to update the installation that is present on your Windows computer's hard drive.

If you are using an outdated version of Arduino App Lab, it should display a dialog that offers to update the application:

You can simply click the "Install updates" button in that dialog, and Arduino App Lab will update the installation on the hard drive of your Windows computer.

Do you see that dialog?

If yes, have you clicked the "Install updates" button and completed the update successfully?

If no, have you verified that you are indeed still using an older version of Arduino App Lab? The version number is shown in the title bar of the Arduino App Lab window.

We do recommend using the latest version of Arduino App Lab. The developers are making significant enhancements and bug fixes with each release of this relatively young software, so you may miss out on something quite important if you refrain from updating.

That is definitely an alternative to using the auto-update feature I mentioned above. The only possible problem with manually installing the new version is that you might end up with multiple installations of Arduino App Lab on your computer.

Having multiple installations won't cause any problem for Arduino App Lab (I have 16 installations on my computer), but it could cause confusion for you: If you were to start Arduino App Lab from an old shortcut that points to a previous installation on your computer, then you will end up in the confusing situation where you find that an old version of Arduino App Lab is running, even though you know for certain that you installed the latest version. Ideally, such a situation will not occur if you use Arduino App Lab's auto-update feature, since it should replace the existing installation with the new version.

The screenshot you shared in post #15 is the update of software on the file system of the UNO Q's Linux operating system.

However, it is possible that you are now encountering a different update dialog that has a different significance.

@ptillisch thanks for your update and help.

When I answered "yes" to the button on the message requesting the update I was stuck again for ever to the message saying "the system is updating". Only one message is asking for the update, never noticed other different message!!

I resolved the problem by installing the new version applab 0.9.0 available on the Arduino web site. You are right I found also 2 version installed in my PC but the short cut was updated to the last version 0.9.0.

BTW: I bought another board as well... :-D

For more info: working with 2 PCs, one with windows 10 and one windows 11. But had the similar problem on both.
Resolved so far.