Software
What runs on the gateway — where it comes from, and under which licence.
Nothing self-written runs on the gateway where it really counts: the radio work is done by software that has been around for years. What was added on top is under Modifications.
Operating system
Raspbian Buster (Debian 10). By now without security updates — a point that is on the list. The gateway is not exposed to the internet, but "it runs" is not a state you leave standing forever.
Alongside it log2ram: the log files live in RAM instead of on the SD card. A card that a service writes to around the clock is otherwise a wear part with an expiry date — and one that ends without warning.
The packet forwarder
The program that reads out the concentrator card and sends the packets to the
network server. In use is mp_pkt_fwd from
Jac Kersing's collection — the
build that can serve several servers at once.
The switch happened in August 2026, for two reasons. The first is a hard
limit: the previous forwarder (poly_pkt_fwd) serves four network servers
at most — and the gateway delivers to more, see
The gateway. I noticed at the fifth: four were
configured, and the next one could not be added.
The second reason: this build makes TX_ACK visible. So you can see whether a reply to a device was actually transmitted, instead of hoping so.
The previous forwarder is still on the device, unused, as a way back.
Origin and licences
The foundation is the Zurich TTN community's build for iC880A gateways, plus the install routine for the ch2i board. The actual radio work is done by Semtech's reference code.
| Project | Role | Licence |
|---|---|---|
| ttn-zh/ic880a-gateway | build and install script | GPL-3.0 |
| ch2i/ic880a-gateway | fork for the ch2i board | GPL-3.0 |
| Lora-net/lora_gateway | Semtech's driver for the concentrator | BSD (3 clause) |
| kersing/packet_forwarder | mp_pkt_fwd, the forwarder in use |
BSD (3 clause) |
| The Things Network Zurich | the community behind it | — |
Two licence worlds on one device. The install script is under the GPL, the Semtech part under a BSD licence. That is no contradiction but the normal case: the GPL governs what somebody passes on, and then demands disclosure — running it triggers nothing at all.
One note for anyone building this: ch2i is the fork, ttn-zh the
original. The fork was last touched in March 2018, the original in 2025.
If you want a template, take the original — the ch2i version only when the
adapter board is in play.