cd337b8718198ef6fa68116393e111d6cd208ee8
- autoroute.sh: Downloads and runs Freerouting in batch mode - Updated README with complete PCB layout workflow - Script handles DSN→SES conversion automatically Usage: Export DSN from KiCad, run ./autoroute.sh, import SES
SN-L00 Latency Tester
Eurorack module for measuring round-trip latency in audio/CV signal chains.
Organization: SubModular / Sub-Net e.U.
Features
- Measures latency from 0.01ms to 999ms
- 128×32 OLED display showing milliseconds
- Three modes: Single shot, Continuous, Statistics
- Skiff-friendly depth (<25mm)
- USB serial output for logging
Specifications
| Parameter | Value |
|---|---|
| Width | 6 HP (30mm) |
| Depth | <25mm |
| Power +12V | ~25mA |
| Power -12V | 0mA |
| Resolution | 0.01ms |
| Output | 0-3.3V trigger |
| Input | 0-10V tolerant |
Project Structure
SN-L00/
├── hardware/
│ ├── BOM.md # Bill of materials with LCSC part numbers
│ ├── kicad/ # KiCad schematic and PCB
│ │ ├── SN-L00.kicad_pro
│ │ ├── SN-L00.kicad_sch
│ │ ├── SN-L00.kicad_pcb
│ │ ├── README.md # ASCII schematic reference
│ │ └── PCB_LAYOUT.md # Placement guide
│ └── panel/
│ ├── PANEL_SPEC.md # Dimensions and specifications
│ └── SN-L00_panel.svg # Panel design
├── firmware/
│ ├── CMakeLists.txt # Pico SDK build
│ ├── README.md # Build instructions
│ ├── include/ # Header files
│ └── src/ # Source files
└── docs/
└── DESIGN.md # Technical design document
Hardware
Components
| Part | Description |
|---|---|
| MCU | RP2040-Zero (Waveshare) |
| Display | 0.91" OLED 128×32 I2C |
| Output buffer | 74LVC1G17 Schmitt trigger |
| Input buffer | MCP6001 op-amp |
| Regulator | AMS1117-3.3 LDO |
Full BOM with LCSC part numbers in hardware/BOM.md.
PCB Layout (KiCad 8)
- Open
hardware/kicad/SN-L00.kicad_pro - Update PCB from schematic: Tools → Update PCB from Schematic (F8)
- Place components using the script:
# In KiCad Scripting Console (Tools → Scripting Console) exec(open('scripts/place_components.py').read()) - Autoroute using Freerouting:
# Export DSN from KiCad: File → Export → Specctra DSN ./hardware/kicad/scripts/autoroute.sh # Import SES in KiCad: File → Import → Specctra Session - Fill zones: Press B
- Run DRC: Inspect → Design Rules Checker
- Export Gerbers: File → Fabrication Outputs → Gerbers
Manufacturing
- PCB: 2-layer, 28×100mm
- Assembly: PCBWay or similar (SMD parts)
- Hand-solder: RP2040-Zero module, OLED module
- Panel: Aluminum or PCB (6HP)
Firmware
Built with Raspberry Pi Pico SDK.
export PICO_SDK_PATH=/path/to/pico-sdk
cd firmware
mkdir build && cd build
cmake .. && make
Flash sn_l00.uf2 via USB bootloader.
See firmware/README.md for details.
Usage
- Connect TRIG OUT to your signal chain input
- Connect your signal chain output to RETURN IN
- Press button to measure latency
- Long press to toggle continuous mode
Modes
- SINGLE: Press to measure once
- CONT: Auto-measures every 500ms, shows live reading
- STATS: Shows min/max/average after continuous mode
Typical Latency Values
| Source | Expected Latency |
|---|---|
| Analog modules | <0.1ms |
| Digital Eurorack (DSP) | 1-5ms |
| Audio interface round-trip | 3-20ms |
| DAW + plugins | 5-50ms+ |
License
TBD
Links
- Repository: https://git.sub-net.at/submodular/SN-L00
- Organization: https://git.sub-net.at/submodular
- Parent: Sub-Net e.U.
Description
Languages
Python
51.6%
C
31.8%
Shell
15.3%
CMake
1.3%