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.

  • 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…

  • 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.

  • 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.