feat(pcb): add four M2 NPTH mounting holes at the corners

Insets uniformly 3.00 mm from each board edge. Hole pattern is
75.00 mm (X) x 54.00 mm (Y) center-to-centre on the 81 x 60 mm board.

Hole specs per location:
  MH1 (63, 43)   - top-left
  MH2 (138, 43)  - top-right
  MH3 (63, 97)   - bottom-left
  MH4 (138, 97)  - bottom-right
  drill 2.2 mm (M2 medium-fit clearance), copper keep-out 4.0 mm dia,
  NPTH, no solder-mask opening.

Constraint: M2 clearance hole, NPTH (no electrical connection)
Constraint: board outline gr_rect (60,40)-(141,100) -> 81 x 60 mm
Rejected: 2.5 mm inset | pad edge sits exactly on board edge clearance min
Rejected: solder-mask opening on the pad | ESP32 silk at y=96.36
  near MH3 produced two silk_over_copper warnings; bare drill (no mask
  opening) keeps DRC clean at the cost of less-visible holes
Rejected: putting holes outside Edge.Cuts as silkscreen markers |
  user asked for real mounting holes, not indicators
Confidence: high
Scope-risk: narrow
Directive: hole positions are coupled to the board outline -- if the
  outline changes, the 3.00 mm uniform inset must be recomputed
This commit is contained in:
2026-05-15 16:14:01 -04:00
parent cd115c8805
commit 24d76b1fff
3 changed files with 1115 additions and 696 deletions
+14 -2
View File
@@ -1,14 +1,26 @@
** Drc report for firstpcb.kicad_pcb **
** Created on 2026-05-15T16:00:06 **
** Created on 2026-05-15T16:12:52 **
** Report includes: Errors, Warnings, Exclusions **
** Found 2 DRC violations **
** Found 6 DRC violations **
[lib_footprint_mismatch]: Footprint 'MountingHole_2.2mm_M2' does not match copy in library 'MountingHole'
Local override; warning
@(138.0000 mm, 97.0000 mm): Footprint MH4
[lib_footprint_mismatch]: Footprint 'MountingHole_2.2mm_M2' does not match copy in library 'MountingHole'
Local override; warning
@(138.0000 mm, 43.0000 mm): Footprint MH2
[lib_footprint_issues]: The current configuration does not include the footprint library 'Library'
Local override; warning
@(65.0000 mm, 53.3600 mm): Footprint ESP32-WROOM1
[lib_footprint_mismatch]: Footprint 'RHL0020A' does not match copy in library 'Project'
Local override; warning
@(118.2250 mm, 77.4750 mm): Footprint U2
[lib_footprint_mismatch]: Footprint 'MountingHole_2.2mm_M2' does not match copy in library 'MountingHole'
Local override; warning
@(63.0000 mm, 43.0000 mm): Footprint MH1
[lib_footprint_mismatch]: Footprint 'MountingHole_2.2mm_M2' does not match copy in library 'MountingHole'
Local override; warning
@(63.0000 mm, 97.0000 mm): Footprint MH3
** Found 0 unconnected pads **