Software/Arduino Core/Reference

Licensing

The licences covering the core, its vendored components and bundled models, and the obligations that apply to products built with them.

intermediate3 min read

Ohm Lab code in the core is released under the MIT licence. The repository also contains third-party components under their own terms, each recorded in extras/THIRD-PARTY.md with its upstream, version, licence and any local modification. Bundled neural networks are covered in models/README.md.

Summary

LicenceComponents
MITOhm Lab code, TinyUSB, FreeRTOS
BSD-3-ClauseSTM32 HAL and LL drivers, CMSIS device headers, ST BSP sensor drivers, lwIP, Hantro video encoder, ST audio preprocessing
Apache-2.0CMSIS Core
ST SLA0044ST Edge AI runtime, ST vision post-processing, VD66GY ISP middleware, ST generated network code
LGPL-2.1ArduinoCore-API, ArduinoBLE
GPL-3.0MMC5603NJ library
ISCquirc
BSD-2-ClauseAprilTag tag36h11 code table
NXP proprietaryIW610 WiFi and Bluetooth driver and firmware

Copyleft components

Two components impose obligations beyond MIT on any firmware that links them.

MMC5603NJ is GPL-3.0, by jmgiacalone for eMAKER Ltd. A sketch that includes this library produces a combined work distributable only under GPL-3.0. It is bundled for convenience and is not covered by the root LICENSE. A product whose firmware is to be distributed under other terms should not link it without legal advice.

ArduinoCore-API (in cores/NeuroN6/api) and ArduinoBLE are LGPL-2.1. Statically linking LGPL code into a single firmware image carries a relinking obligation: recipients must be able to substitute a modified version of the LGPL part. In practice this is met by offering the object files or full source on request. ArduinoCore-API is linked by every sketch.

Proprietary components

The NXP WiFi driver and the IW610 firmware are distributed under NXP's licence agreement, included in the MayaW476 library. The OV5640 autofocus coprocessor firmware is an OmniVision binary whose redistribution terms have not been confirmed in writing.

Models

FileOriginLicence
nia_1_int8.onnxOhm Lab, trained in houseMIT with the core
yolov8n_256_quant_pc_ii_seg_coco-st.tfliteST model zoo, YOLOv8 derivedUnder confirmation
yolov8n_256_quant_pc_uf_pose_coco-st.tfliteST model zoo, YOLOv8 derivedUnder confirmation
aed_yamnet_int8.onnxST audio event detectionST SLA0044
centerface-hwc.tfliteCenterFace, input rewrittenPermissive upstream, checkpoint not recorded
face4-int8.onnxMobileFaceNet, quantised in housePermissive upstream, checkpoint not recorded
033_palm_detection_full_quant_pc_uf_od.tfliteGoogle MediaPipe via STApache-2.0, provenance under confirmation
033_hand_landmark_full_quant_pc_uf_handl.tfliteGoogle MediaPipe via STApache-2.0, provenance under confirmation

Upstream YOLOv8 from Ultralytics is AGPL-3.0. ST redistributes converted YOLOv8 networks under its own terms, and which terms attach to these two files is being confirmed. If redistribution inside an MIT core is not permitted, the files will be removed and fetched from ST at build time.

Open items

extras/THIRD-PARTY.md lists three unresolved notes: the ArduinoBLE snapshot's version does not match any upstream release; the OmniVision autofocus firmware's terms are unconfirmed; and SLA0044 has been applied to the PostProcess and Models libraries on the basis that ST uses it for model zoo output, pending confirmation from ST.

Security policy

Vulnerabilities are reported to security@ohmlab.co.uk. SECURITY.md records two design limitations: over-the-air updates are integrity checked but not signed, and the third-party licences above apply. Bootloader issues belong to the Neuro-N6-Bootloader repository.