Got the Uno Q yesterday and it simply works, very nice to see that a MCU and a MPU work together.
The arduino app lab runs but it warns you to flash the board which I did, but it stopped after erasing the previous linux distro, at this point you might think you have bricked it, but this is not the case.
What you need to do is to get a jumper and short the most right pins on the JCTL jumper array (it is not explained when you run the flasher tool, I found the information on a Digikey website). Install the jumper when the board is not powered. Next the tool will flash it, when done remove the board from the computer, remove the jumper, and the latest linux distro will run, but as I said, everything under linux is erased.
It is now running a copy of the weather app where I modified the city to Rotterdam instead of Turin Another thing I noticed is that repowering the board just on a power adapter does not start an app, you need to keep it powered on and start the app in network mode.
Just a few observations, otherwise I think it is a great addition to the Arduino family of boards.
Hi @ejo60. Thanks for sharing your experience with the UNO Q!
You can make an App start automatically whenever the UNO Q boots by configuring it as the "default" App. I'll provide instructions you can follow to do that:
Start Arduino App Lab and connect it to the UNO Q board if using it in "hosted mode".
Open the App you wish to use as the default.
If the App is an example, click the "Copy and edit app" button and create your own user app from it. ⓘ Configuring an App as default is only supported for user Apps, not example Apps.
Click the ▼ button at the right side of the App name near the top left hand corner of the Arduino App Lab window.
A menu will open.
Select "Set as default app" from the menu.
The "Set as default" dialog will open.
Click the "Set as default" button in the dialog to confirm you do want this App to run automatically after every boot.
Note that there is some delay between powering on the UNO Q board and when the App will start running. This is because the App can only start running after three significant operations have completed:
Boot the Linux operating system on the UNO Q's microprocessor.
Start the Docker container in which the Python script of the App runs.
Compile and upload the Arduino sketch to the UNO Q's microcontroller (only for Apps that contain an Arduino sketch).
I am not understanding why it would have to compile and upload the Arduino sketch each time the board is restarted. Microcontrollers generally retain firmware in non volatile memory. Also, if the sketch for the microcontroller is unchanged why recompile?
The sketch program is intentionally stored in the RAM of the UNO Q's microcontroller:
The developer explained the reason there:
Motivation
Arduino apps require that the micro is in sync with the orchestration handled by arduino-app-cli. In particular, at boot, we need the micro to wait for the arduino-app-cli, and start only to execute the sketch of the default app or some other app decided by the user.
For this reason, we need to use the flash on RAM feature of the zephyr platform, which allows. In this way, the micro loses the code at every boot, and the arduino-app-cli can reflash it with the correct app at boot.
The Arduino sketch build system caches the compilation output. So it will indeed reuse the cache when appropriate rather than compiling the entire sketch program from source. But in the Arduino world we use the term "compile" whenever referring to a sketch build, even in the theoretical ideal case where the sketch build system only determines that all required objects are already present in the cache and thus that no source code needs to be compiled by the C++ compiler.
Good to know. I have had not prior experience with zephyr. This seems like an important detail but it does help explain what is happening during a boot.
The UI was reworked in the 0.3.0 release of Arduino App Lab. I'll provide an updated version of the instructions:
Start Arduino App Lab and connect it to the UNO Q board if using it in "hosted mode".
Open the App you wish to use as the default.
If the App is an example, click the "Copy and edit app" button and create your own user app from it. ⓘ Configuring an App as default is only supported for user Apps, not example Apps.
Click the ▼ button at the right side of the "Run" button (or the "Stop" button if the App is already running) at the top right hand corner of the Arduino App Lab window.
A menu will open.
Move the "Run at startup" switch to the "on" position.
A little note. In getting starting section it is mentioned to connect USB mouse/keyboard. I haven’t them in my hands by now as I’m travelling, So, I decided to implement Bluetooth devices instead.
Connected my notebook to Arduino Uno Q, launched App Lab and terminal. Then via bluetoothctl turned bluetooth on, scanned devices, trusted them, paired and finally connected.
Now am happy to use my compact keyboard and mouse with no wires.
Otherwise, it was impossible to input password when the first time turning the board on.