Skip to content

Third-party material

Everything in this repository is MIT-licensed (see LICENSE) except the files listed here, which belong to other projects and keep their own terms. Each one carries its original license header — do not replace those with this project's.

Trademarks and affiliation

This is an independent project. It is not affiliated with, authorized by, sponsored by, or endorsed by any of the companies or projects named in it.

Arduino® and UNO®, Qualcomm® and Snapdragon®, STMicroelectronics® and STM32®, Arm® and Cortex®, Zephyr®, Linux®, Debian®, Python®, Microsoft®, Windows®, Visual Studio Code, GitHub®, macOS® and Qwiic® are the property of their respective owners, and may be registered trademarks in some jurisdictions.

The same goes for every other product and project name on this site — USB-C®, Bluetooth®, Raspberry Pi®, Docker®, SparkFun®, MCUboot, OpenOCD, U-Boot and the rest: each belongs to its owner.

They are used here descriptively — to say accurately what this software runs on, builds with and talks to. You cannot explain a Zephyr application that flashes an STM32 over SWD without naming Zephyr and STM32. That is descriptive use, not a claim on the names, and nothing here should be read as suggesting that any of these organizations produced, reviewed or endorsed this project.

  • The only third-party mark shown is GitHub's, as the link to this project's repository. No other vendor logo, icon or brand artwork is used or redistributed. The mark on this site is docs/assets/logo.svg — four LED bars, drawn for this project and MIT-licensed like the rest of it.
  • No vendor binaries or firmware images are redistributed. See Not included for what was deliberately removed and why.
  • Where third-party files are included, they keep their own license headers and are listed below.

If you own one of these marks and object to how it is used here, open an issue and it will be changed.

Licenses, not trademarks

The rest of this page is about copyright and licensing — which files belong to whom, and under what terms. That is a separate question from the trademark notice above, and the two are easy to conflate: a permissive license on a project's code grants nothing at all in respect of its name.

File Owner License
.vscode/STM32U585.svd STMicroelectronics Apache-2.0
.clang-format The Zephyr Project Apache-2.0

Both are copied unmodified, and both keep the notice they came with. The text of the Apache license is in LICENSES/Apache-2.0.txt.

Derived work

mcu/app/src/matrix.c implements the 8×13 LED panel from scratch, but two facts in it were read out of Arduino's own implementation (ArduinoCore-zephyr, loader/matrix.inc, Apache-2.0): which ordered pin pair lights which LED, and the 10 µs slot. That wiring is not described anywhere else — not in the UNO Q datasheet and not in Zephyr's arduino_uno_q board definition, which does not mention the panel at all. The grayscale scheme, the refresh ISR and the register-level MODER/BSRR handling are this project's.

mcu/board-support/openocd_gpiod.cfg is adapted from the adapter configuration Arduino ships on the board's stock image (/opt/openocd/openocd_gpiod.cfg). It is six lines naming which GPIO lines carry SWD; the numbers are Arduino's.

Build-time dependencies

Not redistributed here — you install them yourself, and they are listed for completeness because the firmware links against them:

License
Zephyr RTOS (+ MCUboot) Apache-2.0
OpenOCD — built by tools/build-openocd.sh GPL-2.0-or-later
pyserial, gpiod, smpclient BSD-3-Clause / LGPL-2.1 / Apache-2.0
MkDocs + Material for MkDocs BSD-2-Clause / MIT

OpenOCD is GPL. tools/build-openocd.sh builds it from upstream source into /opt/openocd; no OpenOCD code is vendored into this repository. If you pass a built /opt/openocd on to someone else, the GPL applies to you: give them the source, or say where it is. The script prints the commit it built.

The firmware you build also links the modules Zephyr pulls in for this board, among them ST's STM32Cube HAL (BSD-3-Clause) and Arm's CMSIS (Apache-2.0). This project publishes no firmware binary; if you publish one, their notices go with it.

Inside the site you are reading

This page is part of a site built by Material for MkDocs, and the build copies some of that project's work into the output. That output ships on the USB drive and is served over the network, so it is redistribution and belongs here.

In share/learn/ Owner License
assets/stylesheets/, assets/javascripts/bundle.*.js Martin Donath (squidfunk) and contributors — Material for MkDocs MIT
inside that bundle RxJS; tslib; clipboard.js; escape-html; focus-visible Apache-2.0; 0BSD; MIT; MIT; W3C
assets/javascripts/workers/search.*.js Oliver Nightingale — lunr.js MIT
assets/javascripts/lunr/min/ Mihai Valentin and others — lunr-languages, with the Snowball stemmers MPL-1.1
assets/javascripts/lunr/tinyseg.js, wordcut.js Taku Kudo — TinySegmenter; Vee Satayamas — wordcut see each project
assets/external/unpkg.com/mermaid@11/ The Mermaid authors. It bundles DOMPurify, d3, dagre, cytoscape, KaTeX, lodash and others, each under its own permissive license MIT
assets/external/unpkg.com/iframe-worker/ Martin Donath MIT
Icons, inlined as SVG Pictogrammers — Material Design Icons; GitHub — Octicons; Fonticons — Font Awesome Free Apache-2.0; MIT; CC BY 4.0

The site is in English only, so the language files under lunr/ are never loaded. They are there because the theme ships them.

assets/javascripts/mermaid-init.js sits beside those and is ours, not third-party - it is the few lines that actually call mermaid.run(), which the theme does not.

The privacy plugin is what puts the mermaid and lunr copies there: it downloads at build time anything the theme would otherwise fetch from a CDN while the page is loading, so that a reader with no network still gets a complete site. The consequence is that the copies travel with the drive, which is the point, and which is why they are listed.

None of it is in this repository — share/learn/ is generated output and is in .gitignore. Rebuild it with tools/build-docs.sh.

Downloaded onto your board, never redistributed

share/fetch-vscode.sh downloads Microsoft's official Visual Studio Code installers onto the board so it can hand them to a laptop that has no internet of its own — over the USB fileshare and over unoq-learn.

Owner Terms
VS Code installers (.exe, .zip, .deb, .tar.gz) Microsoft Microsoft Software License Terms

They are not in this repository and are not published by this project. They are fetched from update.code.visualstudio.com at the moment you run that script, onto your own hardware, and land inside unoq-share.img which is likewise not tracked here. Handing them on to other people is redistribution and is governed by Microsoft's terms, not by this project's MIT license.

Note that the official builds are not the MIT-licensed vscode source — they add Microsoft-proprietary components. If you would rather ship something freely redistributable, point the script at VSCodium builds instead.

Not included

Earlier revisions of this project kept a backup/ directory holding Arduino's stock MCU firmware image, Arduino's remoteocd helper binary, and OpenOCD target configuration files. Those are other people's build artifacts and are not this project's to redistribute, so they are not published here and have been removed from the git history.

If you want the stock firmware back on your own board you need your own copy, taken before you purge the Arduino tree — see Keep your own copies for the commands. mcu/restore-arduino-firmware.sh uses it via STOCK_FW.