Files
SN-L00/README.md
T
florian.berthold cd337b8718 Add Freerouting autoroute script
- 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
2026-01-23 05:41:09 +01:00

3.6 KiB
Raw Blame History

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)

  1. Open hardware/kicad/SN-L00.kicad_pro
  2. Update PCB from schematic: Tools → Update PCB from Schematic (F8)
  3. Place components using the script:
    # In KiCad Scripting Console (Tools → Scripting Console)
    exec(open('scripts/place_components.py').read())
    
  4. Autoroute using Freerouting:
    # Export DSN from KiCad: File → Export → Specctra DSN
    ./hardware/kicad/scripts/autoroute.sh
    # Import SES in KiCad: File → Import → Specctra Session
    
  5. Fill zones: Press B
  6. Run DRC: Inspect → Design Rules Checker
  7. 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

  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