Add PCB layout and panel design

PCB:
- 28x100mm 2-layer board outline
- Mounting holes for M3 screws
- Component placement guide with coordinates
- Routing guidelines and design rules

Panel:
- 6HP (30x128.5mm) Eurorack panel specification
- SVG design with hole positions
- Supports aluminum, PCB, or acrylic manufacturing

Updated main README with full project documentation.
This commit is contained in:
2026-01-23 03:40:00 +01:00
parent 64f9e34fc3
commit c4e1a43dfa
7 changed files with 739 additions and 17 deletions
+216
View File
@@ -0,0 +1,216 @@
# SN-L00 PCB Layout Guide
## Board Dimensions
| Parameter | Value | Notes |
|-----------|-------|-------|
| Width | 28.0mm | 6HP panel = 30mm, PCB 1mm clearance each side |
| Height | 100.0mm | Fits standard 3U with clearance |
| Thickness | 1.6mm | Standard PCB |
| Layers | 2 | Front + Back copper |
| Depth (mounted) | ~22mm | Skiff-friendly (<25mm) |
## Mounting Holes
| Hole | Position | Size |
|------|----------|------|
| MH1 (top) | 14.0, 5.0 | 3.2mm (M3) |
| MH2 (bottom) | 14.0, 95.0 | 3.2mm (M3) |
## Component Placement (Top to Bottom)
```
0mm 28mm
│←────── 28mm ───────→│
┌────────────────────┐ ─┬─ 0mm
│ ○ MH1 (M3) │ │
│ │ │ 5mm
├────────────────────┤ ─┤
│ │ │
│ ┌──────────────┐ │ │
│ │ OLED │ │ │ 10-25mm
│ │ MOD2 │ │ │
│ │ (128x32) │ │ │
│ └──────────────┘ │ │
│ │ │
├────────────────────┤ ─┤
│ [BTN] │ │ 28-35mm
│ SW1 │ │
├────────────────────┤ ─┤
│ │ │
│ ┌──────────────┐ │ │
│ │ RP2040-Zero │ │ │ 38-55mm
│ │ MOD1 │ │ │
│ │ (18x23mm) │ │ │
│ └──────────────┘ │ │
│ │ │
├────────────────────┤ ─┤
│ SMD Components │ │
│ U1 U2 U3 │ │ 58-75mm
│ C1-C5 R1-R6 │ │
│ D1-D4 D2(LED) │ │
├────────────────────┤ ─┤
│ │ │
│ ○ J2 ○ J3 │ │ 78-88mm
│ TRIG RETURN │ │
│ │ │
├────────────────────┤ ─┤
│ ═══════════════ │ │ 88-95mm
│ J1 │ │
│ (Eurorack 2x5) │ │
├────────────────────┤ ─┤
│ ○ MH2 (M3) │ │ 95mm
└────────────────────┘ ─┴─ 100mm
```
## Detailed Placement Coordinates
### Modules (Hand-solder)
| Ref | Component | Center X | Center Y | Rotation |
|-----|-----------|----------|----------|----------|
| MOD2 | OLED 128x32 | 14.0 | 17.5 | 0° |
| MOD1 | RP2040-Zero | 14.0 | 46.5 | 0° |
### User Interface
| Ref | Component | Center X | Center Y | Rotation |
|-----|-----------|----------|----------|----------|
| SW1 | Tactile 6x6mm | 14.0 | 31.5 | 0° |
| D2 | Power LED | 24.0 | 31.5 | 0° |
| R2 | LED resistor 1K | 24.0 | 36.0 | 90° |
### Connectors
| Ref | Component | Center X | Center Y | Rotation |
|-----|-----------|----------|----------|----------|
| J2 | Thonkiconn TRIG | 7.0 | 83.0 | 0° |
| J3 | Thonkiconn RETURN | 21.0 | 83.0 | 0° |
| J1 | 2x5 Eurorack | 14.0 | 92.0 | 0° |
### Power Section (Back side recommended)
| Ref | Component | Center X | Center Y | Rotation | Side |
|-----|-----------|----------|----------|----------|------|
| D1 | SS14 Schottky | 7.0 | 65.0 | 0° | Back |
| U1 | AMS1117-3.3 | 14.0 | 65.0 | 0° | Back |
| C1 | 10uF input | 10.0 | 60.0 | 0° | Back |
| C2 | 10uF output | 18.0 | 60.0 | 0° | Back |
| C3 | 100nF output | 21.0 | 60.0 | 0° | Back |
### Signal Conditioning
| Ref | Component | Center X | Center Y | Rotation | Side |
|-----|-----------|----------|----------|----------|------|
| U2 | 74LVC1G17 | 7.0 | 72.0 | 0° | Front |
| C4 | 100nF (U2) | 7.0 | 68.0 | 0° | Front |
| R3 | 100R trig | 7.0 | 76.0 | 90° | Front |
| U3 | MCP6001 | 21.0 | 72.0 | 0° | Front |
| C5 | 100nF (U3) | 21.0 | 68.0 | 0° | Front |
| R4 | 10K input | 21.0 | 76.0 | 90° | Front |
| R5 | 10K divider | 18.0 | 76.0 | 90° | Front |
| R6 | 22K divider | 18.0 | 72.0 | 90° | Front |
| D3 | BAT54 clamp | 24.0 | 70.0 | 90° | Front |
| D4 | BAT54 clamp | 24.0 | 74.0 | 90° | Front |
### Button
| Ref | Component | Center X | Center Y | Rotation |
|-----|-----------|----------|----------|----------|
| R1 | 10K pullup | 10.0 | 35.0 | 0° |
## Routing Guidelines
### Net Classes
| Class | Width | Clearance | Via Drill |
|-------|-------|-----------|-----------|
| Default | 0.25mm | 0.2mm | 0.3mm |
| Power | 0.5mm | 0.3mm | 0.4mm |
| Signal | 0.2mm | 0.2mm | 0.3mm |
### Power Routing
1. **+12V** path: J1 pin 4 → D1 → C1 → U1 VIN
2. **+3.3V** path: U1 VOUT → C2/C3 → distribute to all ICs
3. **GND**: Use ground pour on back layer, via stitch near decoupling caps
### Signal Routing Priority
1. I2C (SDA/SCL): Keep short, parallel, 0.5mm spacing
2. TRIG_OUT: Direct from RP2040 GP2 → U2 → R3 → J2
3. RETURN_IN: J3 → R4 → divider → U3 → RP2040 GP3
4. BTN: RP2040 GP4 → R1 → SW1 → GND
### Ground Plane
- Fill back copper with GND zone
- Via stitch every 5-10mm
- Keep clear around power input for thermal relief
- Connect GND pins of J2/J3 directly to plane
## Design Rules (PCBWay Compatible)
| Parameter | Value |
|-----------|-------|
| Min trace width | 0.15mm (0.2mm preferred) |
| Min clearance | 0.15mm (0.2mm preferred) |
| Min via drill | 0.3mm |
| Min via diameter | 0.6mm |
| Min hole size | 0.3mm |
| Min annular ring | 0.15mm |
## Silkscreen
### Front
- Component references (small, 0.8mm text)
- Jack labels: "TRIG" and "RETURN"
- "SN-L00 v0.1" at bottom
- "SubModular" at top
### Back
- "SN-L00" centered
- Pin 1 indicators for ICs
- Polarity markers for D1, power header
- "git.sub-net.at/submodular/SN-L00"
## Gerber Output
When exporting for PCBWay:
```
Required files:
- F.Cu (Front copper)
- B.Cu (Back copper)
- F.SilkS (Front silkscreen)
- B.SilkS (Back silkscreen)
- F.Mask (Front soldermask)
- B.Mask (Back soldermask)
- Edge.Cuts (Board outline)
- *.drl (Drill file)
Settings:
- Format: Gerber X2
- Drill: Excellon
- Units: mm
- Coordinate format: 4.6
```
## Assembly Notes
1. PCBWay can assemble all SMD parts on both sides
2. Hand-solder: MOD1 (RP2040-Zero), MOD2 (OLED)
3. Jacks (J2, J3) can be assembled or hand-soldered
4. Power header (J1) usually hand-soldered for alignment
## Checking Before Order
- [ ] DRC passes with no errors
- [ ] All nets connected (no airwires)
- [ ] Mounting holes align with panel
- [ ] Jacks align with panel holes
- [ ] Power header polarity marked
- [ ] Silkscreen readable and not over pads
- [ ] Ground plane connected properly
+191
View File
@@ -0,0 +1,191 @@
(kicad_pcb
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(general
(thickness 1.6)
(legacy_teardrops no)
)
(paper "A4")
(title_block
(title "SN-L00 Latency Tester")
(date "2026-01-23")
(rev "0.1")
(company "SubModular")
)
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(pad_to_mask_clearance 0)
(allow_soldermask_bridges_in_footprints no)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(plot_on_all_layers_selection 0x0000000_00000000)
(disableapertmacros no)
(usegerberextensions no)
(usegerberattributes yes)
(usegerberadvancedattributes yes)
(creategerberjobfile yes)
(dashed_line_dash_ratio 12.000000)
(dashed_line_gap_ratio 3.000000)
(svgprecision 4)
(plotframeref no)
(viasonmask no)
(mode 1)
(useauxorigin no)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(pdf_front_fp_property_popups yes)
(pdf_back_fp_property_popups yes)
(dxfpolygonmode yes)
(dxfimperialunits yes)
(dxfusepcbnewfont yes)
(psnegative no)
(psa4output no)
(plotreference yes)
(plotvalue yes)
(plotfptext yes)
(plotinvisibletext no)
(sketchpadsonfab no)
(subtractmaskfromsilk no)
(outputformat 1)
(mirror no)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
(net 1 "GND")
(net 2 "+12V")
(net 3 "+3.3V")
(net 4 "SDA")
(net 5 "SCL")
(net 6 "TRIG_OUT")
(net 7 "RETURN_IN")
(net 8 "BTN")
;; Board outline - 6HP Eurorack PCB
;; Width: 28mm (6HP = 30mm panel, PCB slightly narrower)
;; Height: 100mm (fits behind panel with clearance)
(gr_rect
(start 0 0)
(end 28 100)
(stroke
(width 0.15)
(type solid)
)
(fill none)
(layer "Edge.Cuts")
(uuid "board-outline")
)
;; Mounting holes (M3, 3.2mm)
;; Top mounting hole
(footprint "MountingHole:MountingHole_3.2mm_M3"
(layer "F.Cu")
(uuid "mh1")
(at 14 5)
(property "Reference" "MH1"
(at 0 -3 0)
(layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
)
(property "Value" "MountingHole"
(at 0 3 0)
(layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
)
(pad "" np_thru_hole circle
(at 0 0)
(size 3.2 3.2)
(drill 3.2)
(layers "*.Cu" "*.Mask")
)
)
;; Bottom mounting hole
(footprint "MountingHole:MountingHole_3.2mm_M3"
(layer "F.Cu")
(uuid "mh2")
(at 14 95)
(property "Reference" "MH2"
(at 0 -3 0)
(layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
)
(property "Value" "MountingHole"
(at 0 3 0)
(layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
)
(pad "" np_thru_hole circle
(at 0 0)
(size 3.2 3.2)
(drill 3.2)
(layers "*.Cu" "*.Mask")
)
)
;; Component placement guide (active from top to bottom):
;; Y=10-25: OLED module (MOD2)
;; Y=28-35: Button (SW1)
;; Y=38-55: RP2040-Zero (MOD1)
;; Y=58-75: SMD components (LDO, buffers, passives)
;; Y=78-90: Jacks (J2, J3) and Power header (J1)
;; Text annotations for assembly
(gr_text "SN-L00 v0.1"
(at 14 98 0)
(layer "F.SilkS")
(uuid "title-text")
(effects
(font (size 1.2 1.2) (thickness 0.2))
(justify center)
)
)
(gr_text "SubModular"
(at 14 2 0)
(layer "F.SilkS")
(uuid "company-text")
(effects
(font (size 0.8 0.8) (thickness 0.15))
(justify center)
)
)
;; Ground plane zones would be added here
;; (zone ...)
)