# SN-L00 Latency Tester Eurorack module for measuring round-trip latency in audio/CV signal chains. **Organization**: [SubModular](https://git.sub-net.at/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 | 8 HP (40mm) | | 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](hardware/BOM.md). ### PCB Layout (KiCad 8) 1. Open `hardware/kicad/SN-L00.kicad_pro` 2. Update PCB from schematic: **Tools → Update PCB from Schematic** (F8) 3. **Automated routing** (from terminal): ```bash cd hardware/kicad python3 scripts/autoroute.py ``` This places components, routes, and runs DRC automatically. Or manually in KiCad Scripting Console: ```python exec(open('scripts/autoroute_full.py').read()) ``` 5. Fill zones: Press **B** 6. Run DRC: **Inspect → Design Rules Checker** 7. Export Gerbers: **File → Fabrication Outputs → Gerbers** ### Manufacturing - PCB: 2-layer, 40×100mm (8HP) - Assembly: PCBWay or similar (SMD parts) - Hand-solder: RP2040-Zero module, OLED module - Panel: Aluminum or PCB (8HP, 40.30×128.50mm) ## Firmware Built with Raspberry Pi Pico SDK. ```bash 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](firmware/README.md) for details. ## Usage 1. Connect **TRIG OUT** to your signal chain input 2. Connect your signal chain output to **RETURN IN** 3. Press button to measure latency 4. 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.](https://sub-net.at)