Code
My open-source work, libraries, and older noteworthy projects
Looking for my apps? The current catalogue — each with its own product page — lives on the Apps page. This page is about the code underneath: the libraries I maintain and the open-source projects I’ve been part of over the years.
Current open source
A range of small, sharp, single-purpose tools and libraries I maintain on GitHub — most grown straight out of my own day-to-day work, and useful within seconds of cloning.
Automotive & CAN
Most of these came out of building OBD2 Expert, Beyond OBD2 coming soon, CANcorder and ECUmulator Studio.
- LTSupportAutomotive — The OBD2 / VIN-decoding library at the core of OBD2 Expert, released under the MIT license so other developers building for iOS, macOS, or watchOS can reuse the low-level groundwork. Objective-C
- mcanbus — High-performance SocketCAN bindings for Linux, plus an MCP server that exposes the CAN bus to AI agents. Rust
- mcangen — A high-performance CAN bus frame generator for testing and benchmarking. Rust
- mcandump — A CAN bus logger proxy that forwards SocketCAN traffic to CANcorder over the ECUconnect Logger protocol. Rust
- canconf —
canconf/canmon/cantalk: three zero-dependency Python tools for reconfiguring, health-monitoring, and talking to SocketCAN / CAN-FD interfaces from one terse command. Python - j2534-bridge — An out-of-process J2534 PassThru bridge for cross-bitness DLL loading and fault isolation. Rust
- Jester — A J2534 DLL tester for Windows, for exercising PassThru drivers without a full diagnostics stack. Rust
iOS Simulator tooling
The Simsalabim family restores hardware and realistic data workflows that are otherwise missing from the iOS Simulator. Every module remains useful and installable on its own; the suite brings their providers into one menu-bar app.
- Simsalabim — One macOS menu-bar suite for Bluetooth, camera, NFC, and realistic-data development in the iOS Simulator. Swift
- ImpossiBLE — Transparent CoreBluetooth passthrough to the Mac’s BLE hardware, plus configurable mock peripherals and test-owned fixtures. Objective-C Swift
- CAMouflage — AVFoundation camera capture in the Simulator, backed by a Mac camera, images, movies, test patterns, or generated machine codes. Objective-C Swift
- NFCromancer — Core NFC sessions backed by an ACR122U-compatible USB reader or a library of mock tags. Objective-C Swift
- Simulacrum — Seeds Contacts, Calendar, Reminders, and Photos into a booted simulator in one click. Swift
- SimBridgeKit — Shared socket transport, provider ownership, and macOS menu-bar infrastructure underneath the suite. Swift
macOS command-line tools
- core-bluetooth-tool — A Bluetooth Low Energy command-line tool for macOS: scan, connect to, and inspect peripherals straight from the terminal. Swift
- lsaudio — Who’s making noise? List — and kill — the processes currently playing audio on macOS. Swift
- lsusd — List USB serial devices together with their associated USB metadata. Python
- swift-repl — Launch a Swift REPL preloaded with the modules from your local Swift packages. Shell
Apple-platform libraries
- Cornucopia — My Swift toolbox of building blocks — streams, networking, persistence, SwiftUI components and more — that quietly powers apps like CANcorder, CarLab and SunDog. Swift
- SwiftYapDatabase — The venerable YapDatabase, packaged up as a modern Swift Package. Objective-C
- FoundationBandAid — Patches for some of the biggest gaps in swift-corelibs-foundation. Swift
Embedded (ESP-IDF)
- esp-microsleep — A drop-in replacement for FreeRTOS
vTaskDelaywith sub-tick granularity. C - esp-hpl — High-performance logging for ESP-IDF. C++
Older Projects
- Between 2007 and 2011, my main project was the special interest middleware freesmartphone.org. Here is the code.
- Between 2002 and 2006, I worked on software for mobile and embedded devices, in particular
- Opie, a C++-based smartphone and PDA environment using Qt/Embedded – Code,
- OpenSIMpad (free software for the SIEMENS SIMPad device family),
- OpenEZX (free software for the MOTOROLA EZX Linux smartphone family),
- OpenZaurus (free software for the SHARP ZAURUS Linux PDA family), and – last but not least –
- OpenEmbedded – the award-winning build system for embedded devices, which later was used to build Yocto – Code.
- Between 1985 and 1990, most of my programming activities happened on the Commodore AMIGA. This phase was so important that it deserves a dedicated AMIGA page.