andrea bozzo / personal home page

← Tutti i progetti

projects / zero-grappler

Rust · Embedded · no_std · Embassy · TinyML

Zero Grappler

Pipeline async minimali sensor-to-inference no_std per Rust embedded.

Un crate prototipo per cablare fonti async, trasformazioni DSP e stadi di inferenza attraverso canali Embassy con zero allocazioni.

Perché esiste

Gli esempi di ML embedded spesso intrecciano accesso hardware, estrazione di feature e logica di inferenza, rendendo il riuso più difficile di quanto dovrebbe essere. Zero Grappler esiste per separare presto queste responsabilità, così una pipeline da sensore può essere ragionata come stadi di source, transform e inference invece che come una singola demo accoppiata che funziona solo su una board.

Centro tecnico

Il crate divide la pipeline in tre trait, tiene le dimensioni dei buffer fissate a compile-time, instrada gli stadi attraverso canali Embassy ed evita completamente l'allocazione su heap. Quella struttura è intenzionalmente noiosa nel miglior senso embedded: i tipi portano i vincoli sui buffer, i task async portano il modello di scheduling e il percorso di runtime resta compatibile con target no_std.

Prove correnti

Anche prima della prima demo completa su board, il design è già ancorato dalla separazione dei trait senza allocazione, dai wrapper monomorfi per i task Embassy, dall'esempio mock lato host e da una distinta materiali documentata che mantiene realistico il primo loop hardware pubblico invece di renderlo ipotetico. La prossima prova significativa non è un'astrazione più grande, ma un piccolo loop end-to-end da sensore che mostri la separazione dei trait sopravvivere al contatto con limiti reali di tempo e memoria.

Zero Grappler architecture diagram
Sensor, DSP, and inference stages.
Zero Grappler hardware cost estimation graphic
Pico 2 W starter kit and budget.