// OPEN LAB

OPEN LAB

When we are not working on a client’s product, we keep our internal labs open. Open-source code we actually use — protocol stacks, embedded firmware, tooling — published on github.com/stefanofante.

Hardware & firmware

  • USBPD-Stack logo USBPD-Stack ESP32-S3 · STM32 · ArduinoCPD 2.0 / 3.0PTN5110 TCPCBSD-3 + MIT

    Cross-platform distribution of the NXP USB Power Delivery stack for the PTN5110.

    Open-source distribution of the NXP MCUXpresso USB Power Delivery stack (PD 2.0/3.0 policy engine, PTN5110 TCPC driver), with a modern build system and portable HAL adapters: drop-in FreeRTOS ports for ESP32-S3 and STM32 (Cube HAL) and a cooperative Arduino port. Dual-licensed: original NXP sources under BSD-3-Clause, ST-LINE additions under MIT.

  • x-cube-n6-camera-capture-nucleo STM32N6 · Cortex-M55H.264 HW encoderMIPI-CSI2 + ISPFreeRTOS + USBXCMake / Ninja

    Exploring the STM32N6: a UVC webcam with the hardware H.264 encoder.

    The first of a series of projects to test the capabilities of the new STM32N6 — ST’s high-performance MCU class: a Cortex-M55 core @ 800 MHz with Helium, a Neural-ART NPU (600 GOPS, 3 TOPS/W) for on-device AI, 4.2 MB of RAM, an ISP and media/graphics accelerators. This first exploration brings up the imaging→encode→USB pipeline on the Nucleo-N657X0-Q: IMX335 over MIPI-CSI2 + ISP, hardware H.264 encoder, USB High-Speed streaming as a UVC webcam. AI projects on the NPU will follow. A port of the ST DK-board example adapted to the Nucleo (no external PSRAM, vendored FSBL, CMake/Ninja/VS Code). FreeRTOS + USBX.

Software & web

  • visualdb Python 3.11+ · NiceGUISQLAlchemy 2.0PostgreSQL · MySQL · SQL Server · Oracle · SQLite · DuckDBMIT

    Local app to build forms, sheets and reports over existing databases, no cloud.

    A local monolithic application in the spirit of Visual DB: a single Python codebase (NiceGUI UI, SQLAlchemy Core 2.0 engine) that runs as a native desktop window or a web app on 127.0.0.1. Everything derives from a JSON query-spec: forms, sheets (Excel-like editable grid) and reports are just different renders of it. Supports PostgreSQL, MySQL/MariaDB, SQL Server, Oracle, SQLite and DuckDB; bound parameters everywhere (no SQL injection), writes only on the main_table, read-only lookup columns, secrets never in clear text. Features: optimistic locking, validation and computed columns, atomic master-detail, reports with grouping and subtotals, saved views (private/shared/locked), point-in-time HTML and Excel snapshots, schema/DDL management with review, webhooks, PostgreSQL row-level security and an NL→SQL AI assistant (read-only). MIT-licensed.

Acoustics

  • acmap JavaScriptLeafletISO 9613-2MaekawaOpenStreetMapApache-2.0

    Browser-based acoustic mapping: sound-level surveys + ISO 9613-2 propagation with Maekawa diffraction on real OSM buildings. Live tool at /en/tools/acoustic-map/.

    Tool for environmental acoustics running entirely in the browser: visualises sound-level surveys (CSV with lat, lon, Leq) and simulates point-source propagation with a simplified model per octave band. Maekawa diffraction over real buildings fetched from OpenStreetMap via the Overpass API, with data transparency (% buildings with estimated vs measured height). Available both as a runnable web tool at /en/tools/acoustic-map/ (integrated into the ST-LINE site) and as a single-file HTML standalone in this repo, with vendored libraries and no runtime CDN dependency.

  • noise-barrier-calc JavaScriptLeafletISO 9613-2MaekawaBarrierApache-2.0

    Noise-barrier attenuation calculator: ISO 9613-2 §7.4 + Maekawa selectable, line/area/point sources. Live tool at /en/tools/barrier-calculator/.

    Tool for verifying the effectiveness of a noise barrier: point source (machinery), line source (road, railway) or area source (industrial zone), barrier drawn as a polyline with uniform height, configurable receiver grid. Computes Insertion Loss with two selectable diffraction methods: ISO 9613-2:1996 §7.4 (default, conservative, with K_met) or Maekawa 1968. Filled contour bands at 5 dB + isolines, vertical cross-section per receiver, CSV export. Shares its physics engine with acmap. Available both as a runnable web tool at /en/tools/barrier-calculator/ and as a single-file HTML in this repo.

  • pffdtd (fork) Python · CUDAFDTD wave-basedRoom acousticsCross-validationMIT

    Wave-based FDTD solver for room acoustics — fork with CUDA optimizations, a cross-validation reference for RaySound.

    A fork of Brian Hamilton's FDTD simulator (MIT). The changes are confined to the CUDA GPU engine: native-architecture builds, real multi-GPU peer access, batched source injection, block-wise read-out. The numerical scheme is unchanged — the forward output matches the reference Python engine to machine precision. ST-LINE maintains it as an independent wave-based tool to cross-validate, method against method, the DG engine of RaySound.

    Fork of: bsxfun/pffdtd — Brian Hamilton, University of Edinburgh, 2021

    GitHub ↗ Wiki → Blog · coming soon