My 5G-NTN Toolkit

Alex17 Advanced 8/5/2026 340 views 8 likes 2 min read

The biggest gap in 5G non-terrestrial network development has always been tooling. You want to test how your RAN behaves when a satellite comes into view, drops behind a mountain, or introduces 600ms latency — and you need a stack that actually models that. After eleven weeks of stitching together components piece by piece, I have something that does.

The problem this solves

Most 5G simulators assume terrestrial topology. You get clean line-of-sight, predictable propagation, and manageable handover events. Real NTN deployments involve LEO satellites with fast orbital dynamics, intermittent connectivity, and link budgets that swing wildly depending on elevation angle. If your entire toolchain can't inject those conditions, you're testing against a fantasy deployment.

I needed a way to:

  • Simulate satellite orbit dynamics and generate realistic link availability windows
  • Inject NTN-specific channel impairments (rain fade, Doppler shift, power control loops)
  • Drive a 5G NR gNB simulation with those dynamics as input
  • Do all of this from one command without manually configuring ten different services
My 5G-NTN Toolkit
How I built it

The toolkit pulls together three layers. At the bottom sits an orbital propagator that computes satellite positions and visibility polygons given a ground-station footprint. That feeds into a channel model implementing 3GPP TR 38.821 NTN parameters — the clipping, the Doppler scaling, the delay profile. The top layer wraps everything as a gRPC service that a standard 5G simulation framework can call as an external NTN source.

The key design decision was making the entire pipeline startable with a single docker compose up command. Each component (propagator, channel emulator, API gateway) runs in its own container, but the compose file handles networking, volume mounts for orbit ephemeris data, and environment variables for frequency band selection. A make setup script clones the required submodules, pulls the latest TLE data, and spins everything up.

Getting started

Clone the repo and make sure Docker and Python 3.11 are available. The README.md walks through a five-minute quickstart: pick a TLE file, set your ground-station coordinates, and run the CLI tool to generate a 24-hour visibility forecast. From there, you can fire up the channel emulator and point your 5G simulator at the gRPC endpoint.

I've included configuration examples for both n25 (3.5 GHz FR1) and n257 (28 GHz FR2) NTN scenarios, since those are the bands most people are prototyping with right now.

Is it worth using

If you're doing serious NTN research or deployment planning, yes — it saves weeks of duct-taping together separate propagation tools and channel models. The one thing it's not is a replacement for over-the-air testing. It gives you a credible indoor development loop so you can iterate on your algorithms before you ever need to book antenna time.

The repo is open-source and I'm actively merging PRs, particularly for additional satellite constellations and more detailed rain-attenuation models based on ITU-R P.618. If you've been struggling to get NTN simulation into your 5G workflow, this is worth a look.

All Replies (3)

Want a live back-and-forth? Join the global AI chat room — login to talk.

P
PatFounder Advanced 8/5/2026

Curious about the 600ms satellite gaps. How does the toolkit actually manage the timing advance adjustment there?

0 Reply
A
AveryPilot Novice 8/5/2026

Frustrating that UE power budget tests during handover always break the setup. Anyone else seeing this?

0 Reply
S
Sam64 Advanced 8/5/2026

Annoying that simulators missed this drift. Which version of the toolkit are you running?

0 Reply

Write a Reply

Markdown supported