// OPEN LAB

OPEN LAB

Quando non lavoriamo sul prodotto del cliente, manteniamo aperti i nostri laboratori interni. Codice open source che usiamo davvero — stack di protocollo, firmware embedded, strumenti — pubblicato su github.com/stefanofante.

Hardware & firmware

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

    Distribuzione cross-platform dello stack USB Power Delivery NXP per PTN5110.

    Distribuzione open source dello stack USB Power Delivery NXP MCUXpresso (policy engine PD 2.0/3.0, driver TCPC PTN5110), con build system moderno e adapter HAL portabili: port FreeRTOS drop-in per ESP32-S3 e STM32 (Cube HAL) e port cooperativo Arduino. Doppia licenza: sorgenti NXP originali BSD-3-Clause, aggiunte ST-LINE MIT.

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

    Esplorazione dello STM32N6: webcam UVC con encoder H.264 hardware.

    Primo di una serie di progetti per testare le capability del nuovo STM32N6 — la classe di MCU ST ad alte prestazioni: core Cortex-M55 @ 800 MHz con Helium, NPU Neural-ART (600 GOPS, 3 TOPS/W) per AI on-device, 4,2 MB di RAM, ISP e acceleratori media/grafica. Questa prima esplorazione mette in pista la pipeline imaging→encode→USB sulla Nucleo-N657X0-Q: IMX335 via MIPI-CSI2 + ISP, encoder H.264 hardware, streaming USB High-Speed come webcam UVC. Seguiranno progetti dedicati all’AI sulla NPU. Port dell’esempio ST per board DK adattato al Nucleo (no PSRAM esterna, FSBL vendorizzato, CMake/Ninja/VS Code). FreeRTOS + USBX.

Software & web

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

    App locale per costruire form, sheet e report su database esistenti, senza cloud.

    Applicazione monolitica locale, nello spirito di Visual DB: un unico codebase Python (UI NiceGUI, engine SQLAlchemy Core 2.0) che gira come finestra desktop nativa o web app su 127.0.0.1. Tutto parte da una query-spec JSON: form, sheet (griglia editabile stile Excel) e report ne sono render diversi. Supporta PostgreSQL, MySQL/MariaDB, SQL Server, Oracle, SQLite e DuckDB; parametri sempre bind (no SQL injection), scrittura solo sulla main_table, colonne di lookup in sola lettura, segreti mai in chiaro. Funzioni: locking ottimistico, validazione e colonne calcolate, master-detail atomico, report con raggruppamento e subtotali, viste salvate (private/condivise/bloccate), snapshot point-in-time in HTML ed Excel, gestione schema/DDL con revisione, webhook, row-level security PostgreSQL e assistente AI NL→SQL (solo lettura). Licenza MIT.

Acustica

  • acmap JavaScriptLeafletISO 9613-2MaekawaOpenStreetMapApache-2.0

    Mappatura acustica in browser: rilievi fonometrici + propagazione ISO 9613-2 con diffrazione Maekawa su edifici OSM reali. Tool live a /tools/mappa-acustica/.

    Strumento per acustica ambientale che gira interamente in browser: visualizza rilievi fonometrici (CSV con lat, lon, Leq) e simula la propagazione di sorgenti puntuali con un modello semplificato per banda d'ottava. Diffrazione Maekawa su edifici reali scaricati da OpenStreetMap via Overpass API, con trasparenza dei dati (% edifici con altezza stimata vs misurata). Disponibile sia come tool web eseguibile su /tools/mappa-acustica/ (versione integrata nel sito ST-LINE) sia come single-file HTML standalone in questo repo, con vendor libraries locali e nessuna dipendenza CDN runtime.

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

    Calcolatore di attenuazione barriere acustiche: ISO 9613-2 §7.4 + Maekawa selezionabili, sorgenti lineari/areali/puntuali. Tool live a /tools/calcolo-barriere/.

    Tool per la verifica dell'efficacia di una barriera acustica: sorgente puntuale (macchinario), lineare (strada, ferrovia) o areale (zona industriale), barriera disegnata come polilinea con altezza uniforme, griglia di ricevitori configurabile. Calcolo dell'Insertion Loss con due metodi di diffrazione selezionabili: ISO 9613-2:1996 §7.4 (default, conservativo, con K_met) o Maekawa 1968. Visualizzazione a bande riempite 5 dB + isolinee, sezione verticale per ogni ricevitore, export CSV. Stesso motore fisico di acmap. Disponibile sia come tool web eseguibile su /tools/calcolo-barriere/ sia come single-file HTML in questo repo.

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

    Solver FDTD wave-based per acustica delle sale — fork con ottimizzazioni CUDA, riferimento di cross-validation per RaySound.

    Fork del simulatore FDTD di Brian Hamilton (MIT). Le modifiche riguardano il motore GPU CUDA: build per architettura nativa, peer-access multi-GPU reale, iniezione sorgenti in batch, read-out a blocchi. Lo schema numerico è invariato — l'output forward coincide con l'engine Python di riferimento a precisione macchina. ST-LINE lo mantiene come strumento wave-based indipendente per validare metodo-contro-metodo l'engine DG di RaySound.

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

    GitHub ↗ Wiki → Blog · in arrivo