Skip to content
Azimuth

Azimuth

The people's satellite ground network

Created on 21st February 2026

Azimuth

Azimuth

The people's satellite ground network

The problem Azimuth solves

The Problem Azimuth Solves

Traditional satellite ground station networks are centralized, expensive, and opaque. A handful of corporations control who receives satellite data, where it's stored, and who gets access, creating single points of failure, coverage gaps, and zero incentive for independent operators to participate.

Research teams and businesses that need satellite data are priced out by the enormous costs of cloud infrastructure (AWS, Azure) and the prohibitive expense of building and maintaining their own ground stations - hardware, licensing, maintenance, and operational overhead that only the largest organizations can afford.

Azimuth makes satellite ground infrastructure accessible to anyone.


What Azimuth Changes

Fragmented reception → Collaborative recovery
A single ground station only catches a fraction of packets as a satellite passes overhead. Azimuth coordinates multiple independent stations to receive the same pass simultaneously, merging their data into a complete image recovering packets no single station could alone.

Centralized storage → Permanent, uncensorable record
Every merged satellite image is uploaded to Arweave and its transaction ID anchored on Hedera, making it permanently retrievable by anyone, forever no corporation can delete or gatekeep it.

Trusted intermediaries → On-chain proof
Reception events are cryptographically proven on-chain via PoRx (Proof of Reception).
Anyone can verify which station received which packets, when, and how many no trust required.

Unpaid operators → Token incentives
Station operators earn AZM tokens automatically for every heartbeat (PoA) and every satellite pass they receive (PoRx), paid out by a self-executing smart contract with no human in the loop.


Who Can Use It

Use caseHow Azimuth helps
Research teamsAccess raw satellite imagery without AWS/Azure bills or the $100k+ cost of building a dedicated ground station
UniversitiesRun a student-operated node on a Raspberry Pi — no enterprise contracts, no gatekeepers
Startups & SMBsGet satellite data coverage at a fraction of traditional infrastructure costs
Disaster response teamsRedundant, decentralized reception ensures data survives infrastructure outages
Hardware hobbyistsTurn a Raspberry Pi + LoRa radio into a revenue-generating ground station
Web3 developersBuild applications on top of a verifiable, permanent satellite data layer
DePIN investorsStake in physical infrastructure with transparent, on-chain proof of contribution

Challenges I ran into

Challenges I Ran Into

Building Azimuth meant going well beyond software I was dealing with radio physics, antenna geometry, hardware signal integrity, and the brutal reality that satellites don't wait for your code to be ready.


1. Receiving a Signal That Wasn't Designed for You

The hardest part of building a DePIN ground station isn't the blockchain layer, it's actually receiving a usable signal from a satellite traveling at 27,000 km/h, hundreds of miles overhead, transmitting with a few watts of power.

LoRa was not designed for satellite reception. It was designed for low-power IoT sensors a few kilometres apart. Adapting it to receive downlinks from LEO satellites meant tuning every radio parameter by hand, spreading factor, bandwidth, coding rate, preamble length, sync word and validating them against live passes. A single wrong parameter means the radio decodes nothing, and you don't find out until the satellite has already moved out of range.

Getting a consistent lock on the signal required dozens of failed passes before we found the configuration that worked.


2. A Satellite Pass Lasts About 10 Minutes — Then It's Gone

LEO satellites are only above the horizon for roughly 8–12 minutes per pass, and the usable high-elevation window where signal is strong is often just 3–5 minutes. There are no retries. If your hardware isn't ready, powered, and listening at exactly the right moment, you get nothing.

This forced the entire system to be always-on and interrupt-driven. The ground station software has to be running continuously, the serial port has to be open, and the LoRa radio has to be in receive mode before the satellite crests the horizon. Any boot delay, crash, or missed wake-up means a wasted pass and no data until the next orbit, roughly 90 minutes later.


3. Packet Loss Is the Default, Not the Exception

Even with a good antenna and correct radio settings, packet loss on a satellite downlink is normal and expected. Atmospheric absorption, Doppler shift as the satellite moves, brief obstructions, and the radio's sensitivity floor all cause individual packets to be lost or corrupted mid-pass.

This is the core reason Azimuth uses two ground stations. No single station reliably captures every packet. Station A might receive packets 0–60 cleanly while Station B catches 45–103. The DePIN architecture exists precisely because the physics of satellite reception makes redundancy not optional but fundamental. Getting the packet merging logic right — union of received indices, zero-filling gaps, preserving the JPEG byte order required careful testing against real corrupted captures.


4. Running a Node on a Raspberry Pi in the Field

The Raspberry Pi 5 as a DePIN node introduced a different class of hardware challenges.
The Pi had to run headlessly (no monitor, no keyboard), stay connected over WiFi, maintain a stable serial connection to the LoRa radio, run the Node.js hedera-client, and survive being restarted without losing state.

GPIO-to-LoRa wiring had to be solid, a loose SPI connection causes intermittent receive failures that look like software bugs. We had corrupted captures that turned out to be a grounding issue. Power stability also matters: an underpowered Pi under load drops packets at the serial layer, not the radio layer, which is almost impossible to diagnose without an oscilloscope.


5. Two Stations, Two Operators, One Shared Infrastructure Layer

In a traditional system, two receiving stations would send their data to a central server for merging. We had no central server, so the coordination had to happen entirely via Hedera HCS, with each station acting as a fully independent peer.

Getting two physically separate machines, one a Mac, one a Raspberry Pi on the other side of the room to autonomously agree on which satellite pass they both received, independently upload their data to Arweave, and trigger a merge purely through on-chain messages required careful design of the announcement and deduplication logic. This is what makes it DePIN rather than just distributed software: the trust and coordination layer is the blockchain, not a server we control.

Use of AI tools and agents

Use of AI Tools and Agents

Azimuth uses AI at two distinct layers: on-device signal processing at the ground station hardware level, and autonomous agent orchestration across the decentralized network layer.


1. Claude Code - Development Agent

The Azimuth system was architected and built in collaboration with Claude Code, used as an active development partner throughout the project.

Claude was used for:

  • Smart contract design- architecting the

    OrbitalVault

    contract, designing the PoA epoch settlement logic, PoRx proof verification, and HSS schedule automation
  • Multi-node coordination protocol - designing the HCS announcement protocol between ground stations, the Arweave upload pipeline, and the packet merge logic
  • Debugging hardware-adjacent software - diagnosing serial communication issues between the LoRa radio and the ground station, packet decoding algorithm design, and headless Pi deployment

2. AI-Assisted Packet Decoding

The ground station software uses a learned decoding algorithm to reconstruct satellite image packets from raw LoRa radio bytes. Satellite downlinks don't arrive with clean headers the signal contains noise, partial packets, and protocol-specific framing that varies by satellite.

The decoding logic was developed iteratively using AI assistance to:

  • Identify packet boundaries from raw byte streams
  • Detect and discard corrupted packets based on checksum patterns
  • Reconstruct packet indices for out-of-order reception
  • Normalise RSSI and SNR readings across different hardware configurations

This layer runs entirely on-device at the ground station no cloud call, no latency ensuring that even in a field deployment with no internet, the station can decode and store received packets locally before uploading to Arweave.


Tracks Applied (3)

Futurllama

Azimuth is a DePIN project that decentralizes satellite ground station infrastructure, the layer that has always been lo...Read More

On-Chain Automation with Hedera Schedule Service

Azimuth's "OrbitalVault" smart contract is a self-running application built entirely around Hedera's Schedule Service. E...Read More
Hedera

Hedera

Open Project Submission

Azimuth turns Raspberry Pi ground stations into a tokenised satellite imagery network on ADI Chain, where every image ha...Read More
ADI Foundation

ADI Foundation

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio