◤ Built on open source ◥

ATTRIBUTION

CicadaTAK stands on the shoulders of open-source software. Credits, licenses, and how to obtain the source for the GPL-licensed components we distribute.

// What CicadaTAK is made of

A CicadaTAK node runs OpenWrt, with the Linux kernel and BATMAN Advanced mesh routing underneath, and Morse Micro's driver and control tooling operating the 802.11ah HaLow radio that carries the mesh. The image baseline we build from is OpenWrt 24.10 together with Morse Micro's public package feed. The optional long-range LoRa bridge runs Meshtastic firmware, or MeshCore by choice, and we ship both unmodified. These are free software — most of it under the GNU General Public License — and we are grateful to the projects and contributors behind them.

The downloadable node image we publish includes these GPL-licensed components, so this page provides the required credits and a written offer for the corresponding source.

// Node firmware

OpenWrt

GPL-2.0

The embedded Linux distribution every node runs — the build system, and the userspace that runs the radio, networking, and services on every node.

Linux kernel & batman-adv

GPL-2.0 · batman-adv modified from 0.23.0

The Linux kernel and the BATMAN Advanced (batman-adv) layer-2 mesh routing module that forms the self-healing network between nodes. Up to release 0.22.0 batman-adv shipped unmodified. From release 0.23.0 the batman-adv module carries three CicadaTAK patches (901-cicadatak-silent-router-yields: when the neighbour a route goes through goes silent on its link, sending no link probes, the route gives way to a live neighbour within seconds instead of waiting for the route to time out; 902-cicadatak-mcast-expand-head-align: odd-length multicast frames stay aligned and cross HaLow; 903-cicadatak-wifi-delivery-weight: a 2.4 GHz link whose radio reports frames lost after retries ranks below one that delivers), published on our source page and in each image’s source archive.

Morse Micro HaLow stack

Dual BSD/GPL · driver modified from 0.23.0

The morse_driver kernel module, morse_cli, the netifd integration, and the S1G builds of hostapd / wpa_supplicant — the software that operates the 802.11ah HaLow radio carrying the mesh. From release 0.13.0 our images are built directly against Morse Micro's public OpenWrt package feed, which supplies this stack, and releases 0.13.0 to 0.22.0 ship it unmodified — the stock Morse Micro mm6108 2.0.1 release. From release 0.23.0 the morse_driver kernel module carries one CicadaTAK patch (901-cicadatak-expected-throughput: a neighbour's link throughput is reported as measured delivery, so a dead link no longer looks fast to the mesh routing), published on our source page and in each image's source archive. Also from release 0.23.0, four first-boot scripts of Morse's morse-bundle package are replaced in our images by our own files of the same name (three SSH defaults, and the wireless defaults that switched spare radios on as access points); no morse-bundle file is modified. Images up to and including 0.12.0 carried one CicadaTAK patch to the driver's MMRC rate controller, against morse_driver 1.16.4-gateworks; that patch and the upstream base it applies against remain available under the written offer below, for everyone who received those images.

mt76 Wi-Fi driver

BSD-3-Clause-Clear · core modified from 0.23.0

The mt76 driver family that runs the optional 2.4 GHz USB Wi-Fi radio used as a second mesh link. Up to release 0.22.0 it shipped unmodified. From release 0.23.0 its driver core (kmod-mt76-core) carries one patch, a backport of the upstream project’s own fix (901-cicadatak-mt76-npu-mmio-only, openwrt/mt76 commit 2d9b52d: frames a USB radio receives in one block are put back in order before their replay check, so a frame resent after a later one is no longer dropped), published on our source page and in each image’s source archive. The other mt76 modules ship unmodified.

// LoRa firmware

Meshtastic

GPL-3.0 · unmodified since 2026-09-15

The firmware on the optional Heltec/LoRa board that bridges the HaLow mesh to long-range Meshtastic radios. Since 2026-09-15 we install the stock upstream build, pinned at 2.7.26, and ship it unmodified. Earlier images installed a build carrying a small CicadaTAK UX patch (rotary-encoder UI, message history, canned messages); that patch is retired, and its corresponding source remains available under the written offer below for everyone who received it.

MeshCore

MIT · unmodified

The firmware for the opt-in MeshCore LoRa protocol: the stock upstream Companion release companion-v1.17.0, which every image from release 0.13.0 carries for the Heltec V3 and V4 boards. Copyright © 2025 Scott Powell / rippleradios.com, under the MIT License. From release 0.23.0 the license notice ships beside the firmware in every image.

// Bundled Python packages

esptool

GPL-2.0-or-later · unmodified

Espressif's flashing tool, version 4.8.1, which a node uses to write firmware to an attached LoRa board. It runs only as a separate program and ships as readable source in every image.

Meshtastic Python library

GPL-3.0 · unmodified

The Meshtastic project's Python library, version 2.7.8, used only by our GPL-3.0 Meshtastic sidecar. It ships as readable source in every image.

Every other Python package in the image is under a permissive license, or MPL-2.0 (certifi, shipped unmodified as its own source). Each package's license travels with it in the image.

// Corresponding source (written offer)

For the GPL-licensed software included in any CicadaTAK node image we distribute, you are entitled to the complete corresponding source code under the terms of the applicable GNU GPL.

Unmodified components — OpenWrt (apart from the packages modified from release 0.23.0, named below), the Linux kernel, the Morse Micro HaLow stack (its driver only in releases 0.13.0 to 0.22.0), batman-adv up to release 0.22.0, the Meshtastic firmware, and the esptool and Meshtastic Python packages — are available from the upstream sources linked above. Node images up to and including release 0.12.0 were built on the OpenMANET baseline (GPL-2.0) and shipped its bsp-common and bsp-bcm271x packages; release 0.13.0 and later do not, and this offer covers those earlier images for their full term. From release 0.23.0 our images again ship modified GPL components: the Morse Micro HaLow driver (one CicadaTAK patch) and the batman-adv mesh routing module (three CicadaTAK patches), on our source page, and OpenWrt's fstools and the bcm27xx boot hook /lib/preinit/79_move_config (both in each image's source archive). Releases 0.19.0 to 0.22.0 shipped none. Two were modified earlier — the Morse Micro HaLow driver up to release 0.12.0, and the Meshtastic firmware before 2026-09-15 — and for each we still provide the patch together with the exact upstream base it applies against, for everyone who received those images. For those, or for a copy of the complete source corresponding to any image we publish, email info@cicadatak.com and we will provide it (a download link or physical media) for at least three years from the date you obtained the image.

The CicadaTAK gateway is our own work and is proprietary in the published images. Our Meshtastic sidecar daemon is first-party GPL-3.0, with source in every image at /opt/cicadatak/meshtastic-sidecar/, and so are two small node tools run by hand, /opt/cicadatak/gps-survey.sh and /opt/cicadatak/log-harvest.sh. The CicadaTAK mobile app is proprietary, is a separate program (it talks to the gateway over the network), and contains no GPL-licensed code.

From release 0.23.0 every image lists each component and its license in /etc/cicadatak/LICENSES.txt, and every installed operating-system package records its own license in /usr/lib/opkg/info/. The full text of every copyleft license the image carries (the GNU GPL, version 2 and version 3; the GNU LGPL, version 2.1 and version 3; the GCC Runtime Library Exception; and the Mozilla Public License 2.0) ships in /etc/cicadatak/licenses/, with the license terms of the binary radio and network firmware in its firmware/ folder, and the copyright and license notices of the permissively licensed software (MIT, BSD, ISC, Apache and similar) in NOTICES.txt there.