Overview
To understand what the new Arduino UNO Q is about, I've been looking at the new the Arduino App Lab coding tool. The App Lab download page links to the source code at https://downloads.arduino.cc/app-lab-release/source-app-lab.zip, but the source seems incomplete. Among other differences, there aren't any build instructions or scripts in the source archive. So, I've been poking around trying to understand how the source works and how it differs from the binaries.
Highlights of what I found: You need a UNO Q board to get past the first screen. The app is written with Wails which uses Go for the backend and a web app for the frontend (similar to Electron, but using a native web view rather than embedding a browser). The binaries include embedded markdown for examples that don't appear in the source. The app may be using Hotjar telemetry for analytics.
Download Checksums
When I downloaded the macOS dmg, Linux tar.gz, and source-app-lab.zip files on October 16, 2025, these are the checksums I got:
$ sha256sum source-app-lab.zip ArduinoAppLab_0.1.23.dmg ArduinoAppLab_0.1.23_Linux_x86-64.tar.gz ed973391ff5806dac07fb674674faabbf654a3307968d24144841f045dbc9fc5 source-app-lab.zip c85061f524ca6350e22c0f1d614cd8c670e4aa71ff9e2cd2e3c8e7221e7377c5 ArduinoAppLab_0.1.23.dmg d12c3fc5d0bfb21da25ec389aef7d5b9330530cec50a71fca85e06bae364d149 ArduinoAppLab_0.1.23_Linux_x86-64.tar.gz
Viewing Embedded Strings
The main thing I was hoping to do is read the UNO Q example code. But, I got stuck on the first screen since I don't have a UNO Q board and the preorders won't ship for a while yet (writing this on 2025-10-16). I started off by looking at the App Lab source, but there wasn't much there in the way of examples or docs. By using the strings command line tool, I found there were some interesting embedded strings in the binaries.
Here's my procedure for identifying and extracting the interesting embedded strings using macOS command line tools:
- Extract the ArduinoAppLab app from
ArduinoAppLab_0.1.23.dmg - In Terminal,
cdinto the extractedArduinoAppLab.app/Contents/MacOS/directory. You should see anArduinoAppLabbinary - Use
otool -l ArduinoAppLabto list all the segments and sections in the binary - Use the BBEdit editor's regular expression search and replace to transform the
otooloutput into a list of section hexdump command like this:otool -V -s __TEXT __rodata ArduinoAppLab | less - Hexdump all the sections in the list, looking for ones that aren't boring (this is how I identified
__TEXT,__rodata) - Extract the sections of interest into a separate file using
otoolandxxd
This is how I extracted the __rodata section using otool to hexdump its contents, tail and cut to strip the address offsets, and xxd to reverse the hexdump:
otool -s __TEXT __rodata ArduinoAppLab | tail -n +3 | cut -c17- | xxd -r -p - rodata.bin
To view the resulting data, I used the less command line tool. Since less automatically filters out garbage characters, it works great even though lots of the variable initializer data in __rodata is binary. The embedded markdown files start with a yaml header ("---\ntitle: ..."), so you can find them by using the less search feature /title: + [return key].
This is how it looks to start searching for the first title:
This is what the first yaml header looks like (press n to search again for the next one):
To quit less, press the q key. You can also page forward with [spacebar] and backward with b.
If you wanted to get fancy, you could try writing a script to separate the __rodata binary dump into individual strings by looking for patterns like 0x0a 0x00 at the end of a string, but I haven't bothered with that yet.
These are the titles and descriptions of the markdown documents I found in the __rodata section:
- Arduino UNO Q: An overview of the Arduino UNO Q board featuring a Linux system and a microcontroller.
- AI Models: Learn how AI models work, where to find them, and how to use them in an App.
- What is a Brick?: Learn about Bricks, the code building blocks for Apps.
- Built-in Examples: Discover ready-made examples to launch in under a minute.
- Single Board Computer (SBC): Set up the UNO Q as a Single-Board Computer with a display, mouse & keyboard.
- First Setup: Get to know the Arduino App Lab.
- What is an App?: Learn how Apps work, and how they run on the UNO Q.
Based on searching the contents of source-app-lab.zip for some of the strings in the markdown files, they don't seem to be included in the source.
This page (Exploring the Arduino App Lab Binary) was last updated on October 20, 2025.