Archive
All writing
Everything I have published here since 2017. Architecture, gliding, lab experiments, and the occasional side note. Filter by pillar or scroll through the lot.
68
Posts
14
Categories
2017
First post
-
A second 5G gNB on macOS ARM64: OpenAirInterface
OpenAirInterface now builds and runs on my Mac: the gNB, its nrUE, and the RF simulator between them, against the same Open5GS core from the earlier posts. The UE registers, opens a PDU session, gets 10.45.0.6, and pings the gateway both ways. Twenty-six patches, none in protocol code.
-
A production 5G gNB on macOS ARM64
My 5G SA loopback now runs OCUDU as the gNB instead of srsENB. Same Mac, same Open5GS core, same srsUE, same ZeroMQ link in place of radios. The UE registers, opens a PDU session, takes 10.45.0.3, and pings the gateway both ways. Forty-nine patches to get there, none of them touching protocol code.
-
Running a full 5G SA network on macOS ARM64
I got a complete 5G standalone network running on an Apple Silicon Mac: Open5GS as the core, srsRAN as the gNB and the UE, connected over ZeroMQ instead of radios. The UE registers, opens a PDU session, gets an IP, and pings the user-plane gateway both ways. No SDR, no Linux VM, no containers.
-
Setting up an SDR lab on macOS Apple Silicon: Part 2
Part 2 of the macOS ARM64 SDR lab port. A 9-daemon Osmocom 2G+3G core runs native on the LibreSDR B220, with SCTP shim v0.3.x, AF_UNIX SOCK_STREAM fallback for PCUIF, utun for GGSN, and Iu-CS/Iu-PS control plane complete against a patched hnb-test. Plus the LTE measurement kit run on the same hardware.
-
Kraken A5/1 on macOS ARM64 (port notes)
Frank Stevenson’s Kraken builds on Apple Silicon with three patches and a semaphore shim. CPU cracker only. Cross-checked against libosmocore.
-
Setting up an SDR lab on macOS Apple Silicon: Part 1
A small passive SDR research lab on MacBook Pro M4 with LibreSDR B220 Mini. GSM BCCH decode from wideband capture, 35 2G and 34 4G cells inventoried across all Bucharest operators, full srsRAN LTE stack in loopback, native macOS ARM64. Notes on the four porting problems and the bitstream trap that looked like a UHD…
-
Berchtesgaden, Obersalzberg
View toward Untersberg and Watzmann, from the southern slope of Obersalzberg.
-
Sample density bias in Zigbee temperature averages
Consumer Zigbee sensors report on change, not on schedule. A naive mean() weights every sample equally regardless of how much real time it stands for. When a transient produces hundreds of clustered samples, the monthly mean drifts by two or three degrees. Fix at query time with hourly pre-aggregation.
-
Why Grafana MCP clients fail behind the Home Assistant ingress proxy
Grafana as a Home Assistant add-on serves its API under a hassio_ingress prefix, not at /api/. Every third-party client I tested hardcodes the shorter path and fails silently with HTTP 200 and HTML. Diagnosis, prefix workaround, and two InfluxDB notes.
-
Flying in Unterwossen
In-flight video of an ASK 21 glider at DASSU Unterwössen, in the Bavarian Alps.
-
2023 in pictures
A photo essay of 2023: a selection of favourite pictures from the year, taken in the cockpit and on the ground.
-
Gliding in Germany
A Google map of German gliding clubs and airfields, sourced from segelflug.de and remapped so cities and routes are visible for trip planning.