UNO Q Bricked ?

I suspect that I have bricked my UNO Q, from the perspective of the IDE anyway.
Slowly working through a small project using the built-in LED array, then the array stopped working. I reverted to example in the IDE, but to no avail. The board displays the startup patterns then blank. Several examples of LED us that I have found, fail to compile, one over the undefined "fonts" function.
Is there a way that I can restore the bootloader via the App lab ?

Hi @sbkenn.

After updating the "Arduino UNO Q Board" platform via Arduino IDE, you must perform a "Burn Bootloader" operation. If you don't do that after updating the platform to the recent versions, then the uploaded sketch does not run.

I'll provide instructions you can follow to do that:

  1. Connect the UNO Q board to your computer with a USB cable.
  2. Select the serial port of the UNO Q from Arduino IDE's Toolls > Port menu.
  3. Select Tools > Programmer > OpenOCD from the Arduino IDE menus.
  4. Select Tools > Burn Bootloader from the Arduino IDE menus.
    Arduino IDE will perform a "Burn Bootloader" operation.
  5. Wait for the "Burn Bootloader" operation to finish successfully.

Now upload the sketch to the board once again. Hopefully this time it will work as expected.

If you would like help with using those examples, please post a link to the site where you found them in a forum post. We'll take a look and see if we can help you to get them to compile.

Yesterday, I updated my Board Package from 0.55.0 to 0.55.2, but I did not perform the Burn Bootloader operation. My UNO Q board is working alright!

The first thing to note is that Arduino App Lab automagically performs a "Burn Bootloader" operation whenever it updates the Arduino UNO Q Board / arduino:zephyr platform. It also does so on the first run on a fresh operating system image.

So if you are using both Arduino App Lab and Arduino IDE, you will end up with the correct version of the loader on your UNO Q even if you never perform a "Burn Bootloader" operation via Arduino IDE. The only problem you might encounter is if you try to use the UNO Q with an updated version of the platform in Arduino IDE before the time when you install the update in Arduino App Lab.


The other thing to note is that the loader doesn't necessarily become outdated at every single new release of the Arduino UNO Q Board / arduino:zephyr platform. It all depends on what exactly the developers changed in the platform since the time of the previous release. So for some releases, it is not necessary for Arduino IDE users to perform a "Burn Bootloader" operation. For other releases, perhaps it is necessary, but the problems that result from not doing so will be more subtle than the more obvious "my sketch doesn't run" symptom.

We could carefully evaluate the changesets between the release of the loader flashed on the board and the release being updated to, and determine whether or not Arduino IDE users should update the loader after performing an update. However, that will be a lot of work and quite challenging for anyone without a deep familiarity with this complex subject matter. So it is much easier for Arduino IDE users to just go ahead and perform a "Burn Bootloader" operation after every update, regardless of whether it is absolutely necessary for that update.

With other Arduino boards, we must connect an external programmer to the board in order to perform a "Burn Bootloader" operation, and so this is something generally only done by advanced users. However, with the UNO Q, a "Burn Bootloader" operation is only matter of connecting the board alone to the computer with a USB cable, selecting a couple of things from the Arduino IDE menus, then waiting a few seconds for the process to finish. So it is not an onerous task for the user.

As I already mentioned in response to your related question in the other topic, there is work in progress to make Arduino IDE automagically update the loader on platform installation/update just like Arduino App Lab already does. That feature will make platform updates much more friendly to Arduino IDE users.

Right!

Now I remember that I updated the board package from IDE first and then uploaded Blink LED sketch which did not run. I get puzzled and then quickly went to App Lab and the prompt appered for update again and I did. I uploaded Blink LED sketch and it worked. This verifies that that the App Lab automatically did perform the Burn Bootloader operation.

Many thanks. This is substantially a mental exercise after a minor stroke. I was never particularly competent and hadn't done any of this for 4 years so was losing confidence in my abilities and sanity.

You are welcome. I'm glad if I was able to be of assistance.

Regards, Per

Thanks to you guys (and/or ladies) have made considerable progress. I have a functional sketch for a real control job of 4-zone temperature control and reporting (on the matrix)
Now, I am having difficulty with the boundary between uC and uP. Supplying power via a USB hub, the preloaded app doesn't work, but if I supply power directly from the laptop, it does.
I presume some handshaking happens between the uP/SOC and hub and that the uP has dominance (am I even allowed to use that term ;-) ) . Should I be able to load the same sketch to the board with App Lab ?
Ideally, I would like to use a small TFT panel, even if only a small part of it, as a display for the uC, but the TFT seems to be tied to Linux. I don't currently have a separate keyboard or a way to connect it (hub only has one USB-C which is the power connector and doesn't seem capable of handling data.

I don't know what you mean by "doesn't work". Please provide a more detailed description of what you mean in a reply on this forum topic to help us to understand it.

Make sure to include the following information:

  • What did you do?
  • What were the results you expected from doing that thing?
  • What were the results you observed that did not match your expectations?

If you encountered any errors or warnings, please provide the full and exact text of those messages.

Yes.

Arduino IDE is a tool for developing Arduino sketches, and thus is useful in the case where you want to develop the sketch program that runs on the microcontroller of the UNO Q board by itself. Conversely, Arduino App Lab is a tool for developing Arduino Apps. The sketch is only one (optional) component of an App. An App also contains a Python script that runs on the microprocessor of the board. So Arduino App Lab allows you to develop a hybrid project that controls both processors on the board in coordination, via a single development environment.

You can also use Arduino IDE when creating hybrid projects that utilize both processors on the board, but in that case you would develop the component that runs on the microprocessor using a separate tool of your choosing.

What observations led you to the conclusion that the TFT is tied to Linux?

If you have a project that utilizes a keyboard as an input device, it will be no problem to overcome this. You can obtain an adapter or cable that allows you to connect your existing keyboard to the USB-A socket on the hub. Or you could obtain a USB-C hub that has USB-C sockets (Arduino even sells one).

If your project does not require a keyboard as an input device, then your current inability to connect a keyboard to the board is no problem. Some UNO Q owners may choose to use the board in single-board computer (SBC) mode, and it is true that you would need to connect a keyboard, mouse and HDMI monitor to the board via a USB-C hub to use it in this mode. However, since you also have a standard PC, that is not necessary. You can develop projects for the UNO Q via your standard PC, and also manage the operating system on the UNO Q from the standard PC.