first
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
# Temporary files
|
||||
*.000
|
||||
*.bak
|
||||
*.bck
|
||||
*.kicad_pcb-bak
|
||||
*.kicad_sch-bak
|
||||
*-backups
|
||||
*-cache*
|
||||
*-bak
|
||||
*-bak*
|
||||
*~
|
||||
~*
|
||||
_autosave-*
|
||||
\#auto_saved_files\#
|
||||
*.tmp
|
||||
*-save.pro
|
||||
*-save.kicad_pcb
|
||||
fp-info-cache
|
||||
~*.lck
|
||||
\#auto_saved_files#
|
||||
|
||||
# Netlist files (exported from Eeschema)
|
||||
*.net
|
||||
|
||||
# Autorouter files (exported from Pcbnew)
|
||||
*.dsn
|
||||
*.ses
|
||||
|
||||
# Exported BOM files
|
||||
*.xml
|
||||
*.csv
|
||||
|
||||
# Archived Backups (KiCad 6.0)
|
||||
**/*-backups/*.zip
|
||||
|
||||
# Local git-based history (KiCad 9.0+)
|
||||
.history
|
||||
|
||||
# Local project settings
|
||||
*.kicad_prl
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,272 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.7*%
|
||||
%TF.CreationDate,2026-01-13T21:49:27+02:00*%
|
||||
%TF.ProjectId,Servo2350,53657276-6f32-4333-9530-2e6b69636164,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Soldermask,Bot*%
|
||||
%TF.FilePolarity,Negative*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 9.0.7) date 2026-01-13 21:49:27*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%ADD10R,1.700000X1.700000*%
|
||||
%ADD11C,1.700000*%
|
||||
%ADD12C,2.154000*%
|
||||
%ADD13C,0.650000*%
|
||||
%ADD14O,1.000000X2.100000*%
|
||||
%ADD15O,1.000000X1.800000*%
|
||||
%ADD16C,0.425000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,D6*%
|
||||
X152475000Y-137230000D03*
|
||||
D11*
|
||||
X152475000Y-134690000D03*
|
||||
X152475000Y-132150000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,POWER1*%
|
||||
X145400000Y-72800000D03*
|
||||
X140400000Y-72800000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,14*%
|
||||
X137310000Y-114600000D03*
|
||||
D11*
|
||||
X134770000Y-114600000D03*
|
||||
X132230000Y-114600000D03*
|
||||
X129690000Y-114600000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,18*%
|
||||
X137310000Y-125800000D03*
|
||||
D11*
|
||||
X134770000Y-125800000D03*
|
||||
X132230000Y-125800000D03*
|
||||
X129690000Y-125800000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,9*%
|
||||
X137310000Y-100600000D03*
|
||||
D11*
|
||||
X134770000Y-100600000D03*
|
||||
X132230000Y-100600000D03*
|
||||
X129690000Y-100600000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,15*%
|
||||
X137310000Y-117400000D03*
|
||||
D11*
|
||||
X134770000Y-117400000D03*
|
||||
X132230000Y-117400000D03*
|
||||
X129690000Y-117400000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,2*%
|
||||
X137210000Y-81000000D03*
|
||||
D11*
|
||||
X134670000Y-81000000D03*
|
||||
X132130000Y-81000000D03*
|
||||
X129590000Y-81000000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,D4*%
|
||||
X158075000Y-137230000D03*
|
||||
D11*
|
||||
X158075000Y-134690000D03*
|
||||
X158075000Y-132150000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,11*%
|
||||
X137310000Y-106200000D03*
|
||||
D11*
|
||||
X134770000Y-106200000D03*
|
||||
X132230000Y-106200000D03*
|
||||
X129690000Y-106200000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,17*%
|
||||
X137310000Y-123000000D03*
|
||||
D11*
|
||||
X134770000Y-123000000D03*
|
||||
X132230000Y-123000000D03*
|
||||
X129690000Y-123000000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,D1*%
|
||||
X166525000Y-137230000D03*
|
||||
D11*
|
||||
X166525000Y-134690000D03*
|
||||
X166525000Y-132150000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,5*%
|
||||
X137310000Y-89400000D03*
|
||||
D11*
|
||||
X134770000Y-89400000D03*
|
||||
X132230000Y-89400000D03*
|
||||
X129690000Y-89400000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,1*%
|
||||
X137240000Y-78200000D03*
|
||||
D11*
|
||||
X134700000Y-78200000D03*
|
||||
X132160000Y-78200000D03*
|
||||
X129620000Y-78200000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,3*%
|
||||
X137210000Y-83800000D03*
|
||||
D11*
|
||||
X134670000Y-83800000D03*
|
||||
X132130000Y-83800000D03*
|
||||
X129590000Y-83800000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,13*%
|
||||
X137310000Y-111800000D03*
|
||||
D11*
|
||||
X134770000Y-111800000D03*
|
||||
X132230000Y-111800000D03*
|
||||
X129690000Y-111800000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,D2*%
|
||||
X163675000Y-137230000D03*
|
||||
D11*
|
||||
X163675000Y-134690000D03*
|
||||
X163675000Y-132150000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,J1*%
|
||||
X180300000Y-128310000D03*
|
||||
D11*
|
||||
X180300000Y-125770000D03*
|
||||
X180300000Y-123230000D03*
|
||||
X180300000Y-120690000D03*
|
||||
X180300000Y-118150000D03*
|
||||
X180300000Y-115610000D03*
|
||||
X180300000Y-113070000D03*
|
||||
X180300000Y-110530000D03*
|
||||
X180300000Y-107990000D03*
|
||||
X180300000Y-105450000D03*
|
||||
X180300000Y-102910000D03*
|
||||
X180300000Y-100370000D03*
|
||||
X180300000Y-97830000D03*
|
||||
X180300000Y-95290000D03*
|
||||
X180300000Y-92750000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,SWD1*%
|
||||
X180300000Y-78940000D03*
|
||||
D11*
|
||||
X180300000Y-81480000D03*
|
||||
X180300000Y-84020000D03*
|
||||
X180300000Y-86560000D03*
|
||||
X180300000Y-89100000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,D5*%
|
||||
X155275000Y-137230000D03*
|
||||
D11*
|
||||
X155275000Y-134690000D03*
|
||||
X155275000Y-132150000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,J2*%
|
||||
X180300000Y-132225000D03*
|
||||
D11*
|
||||
X177760000Y-132225000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,12*%
|
||||
X137310000Y-109000000D03*
|
||||
D11*
|
||||
X134770000Y-109000000D03*
|
||||
X132230000Y-109000000D03*
|
||||
X129690000Y-109000000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,16*%
|
||||
X137310000Y-120200000D03*
|
||||
D11*
|
||||
X134770000Y-120200000D03*
|
||||
X132230000Y-120200000D03*
|
||||
X129690000Y-120200000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,J3*%
|
||||
X168690000Y-74405000D03*
|
||||
X162910000Y-74405000D03*
|
||||
D14*
|
||||
X170120000Y-74925000D03*
|
||||
D15*
|
||||
X170120000Y-70725000D03*
|
||||
D14*
|
||||
X161480000Y-74925000D03*
|
||||
D15*
|
||||
X161480000Y-70725000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,6*%
|
||||
X137310000Y-92200000D03*
|
||||
D11*
|
||||
X134770000Y-92200000D03*
|
||||
X132230000Y-92200000D03*
|
||||
X129690000Y-92200000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,D3*%
|
||||
X160875000Y-137230000D03*
|
||||
D11*
|
||||
X160875000Y-134690000D03*
|
||||
X160875000Y-132150000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,7*%
|
||||
X137310000Y-95000000D03*
|
||||
D11*
|
||||
X134770000Y-95000000D03*
|
||||
X132230000Y-95000000D03*
|
||||
X129690000Y-95000000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,8*%
|
||||
X137310000Y-97800000D03*
|
||||
D11*
|
||||
X134770000Y-97800000D03*
|
||||
X132230000Y-97800000D03*
|
||||
X129690000Y-97800000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,U1*%
|
||||
X161475000Y-107525000D03*
|
||||
X161475000Y-108375000D03*
|
||||
X161475000Y-109225000D03*
|
||||
X162325000Y-107525000D03*
|
||||
X162325000Y-108375000D03*
|
||||
X162325000Y-109225000D03*
|
||||
X163175000Y-107525000D03*
|
||||
X163175000Y-108375000D03*
|
||||
X163175000Y-109225000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,10*%
|
||||
X137310000Y-103400000D03*
|
||||
D11*
|
||||
X134770000Y-103400000D03*
|
||||
X132230000Y-103400000D03*
|
||||
X129690000Y-103400000D03*
|
||||
%TD*%
|
||||
D10*
|
||||
%TO.C,4*%
|
||||
X137240000Y-86600000D03*
|
||||
D11*
|
||||
X134700000Y-86600000D03*
|
||||
X132160000Y-86600000D03*
|
||||
X129620000Y-86600000D03*
|
||||
%TD*%
|
||||
M02*
|
||||
@@ -0,0 +1,15 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.7*%
|
||||
%TF.CreationDate,2026-01-13T21:49:27+02:00*%
|
||||
%TF.ProjectId,Servo2350,53657276-6f32-4333-9530-2e6b69636164,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Paste,Bot*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 9.0.7) date 2026-01-13 21:49:27*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
G04 APERTURE END LIST*
|
||||
M02*
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,74 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.7*%
|
||||
%TF.CreationDate,2026-01-13T21:49:27+02:00*%
|
||||
%TF.ProjectId,Servo2350,53657276-6f32-4333-9530-2e6b69636164,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Profile,NP*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 9.0.7) date 2026-01-13 21:49:27*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
%TA.AperFunction,Profile*%
|
||||
%ADD10C,0.050000*%
|
||||
%TD*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
X181750000Y-68700000D02*
|
||||
X129250000Y-68700000D01*
|
||||
X181750000Y-71200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X179250000Y-71200000I-1250000J0D01*
|
||||
G01*
|
||||
X179250000Y-71200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X181750000Y-71200000I1250000J0D01*
|
||||
G01*
|
||||
X181750000Y-136200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X179250000Y-136200000I-1250000J0D01*
|
||||
G01*
|
||||
X179250000Y-136200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X181750000Y-136200000I1250000J0D01*
|
||||
G01*
|
||||
X129250000Y-138700000D02*
|
||||
X181750000Y-138700000D01*
|
||||
X183000000Y-69950000D02*
|
||||
X181750000Y-68700000D01*
|
||||
X181750000Y-138700000D02*
|
||||
X183000000Y-137450000D01*
|
||||
X128000000Y-69950000D02*
|
||||
X128000000Y-137450000D01*
|
||||
X131750000Y-71200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X129250000Y-71200000I-1250000J0D01*
|
||||
G01*
|
||||
X129250000Y-71200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X131750000Y-71200000I1250000J0D01*
|
||||
G01*
|
||||
X131750000Y-136200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X129250000Y-136200000I-1250000J0D01*
|
||||
G01*
|
||||
X129250000Y-136200000D02*
|
||||
G75*
|
||||
G02*
|
||||
X131750000Y-136200000I1250000J0D01*
|
||||
G01*
|
||||
X129250000Y-68700000D02*
|
||||
X128000000Y-69950000D01*
|
||||
X128000000Y-137450000D02*
|
||||
X129250000Y-138700000D01*
|
||||
X183000000Y-137450000D02*
|
||||
X183000000Y-69950000D01*
|
||||
M02*
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,939 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.7*%
|
||||
%TF.CreationDate,2026-01-13T21:49:27+02:00*%
|
||||
%TF.ProjectId,Servo2350,53657276-6f32-4333-9530-2e6b69636164,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Soldermask,Top*%
|
||||
%TF.FilePolarity,Negative*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 9.0.7) date 2026-01-13 21:49:27*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
G04 Aperture macros list*
|
||||
%AMRoundRect*
|
||||
0 Rectangle with rounded corners*
|
||||
0 $1 Rounding radius*
|
||||
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
|
||||
0 Add a 4 corners polygon primitive as box body*
|
||||
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
|
||||
0 Add four circle primitives for the rounded corners*
|
||||
1,1,$1+$1,$2,$3*
|
||||
1,1,$1+$1,$4,$5*
|
||||
1,1,$1+$1,$6,$7*
|
||||
1,1,$1+$1,$8,$9*
|
||||
0 Add four rect primitives between the rounded corners*
|
||||
20,1,$1+$1,$2,$3,$4,$5,0*
|
||||
20,1,$1+$1,$4,$5,$6,$7,0*
|
||||
20,1,$1+$1,$6,$7,$8,$9,0*
|
||||
20,1,$1+$1,$8,$9,$2,$3,0*%
|
||||
G04 Aperture macros list end*
|
||||
%ADD10C,0.010000*%
|
||||
%ADD11R,1.700000X1.700000*%
|
||||
%ADD12C,1.700000*%
|
||||
%ADD13RoundRect,0.091750X-0.495250X-0.275250X0.495250X-0.275250X0.495250X0.275250X-0.495250X0.275250X0*%
|
||||
%ADD14RoundRect,0.135000X-0.135000X-0.185000X0.135000X-0.185000X0.135000X0.185000X-0.135000X0.185000X0*%
|
||||
%ADD15C,2.154000*%
|
||||
%ADD16R,0.600000X0.300000*%
|
||||
%ADD17R,0.300000X1.700000*%
|
||||
%ADD18RoundRect,0.135000X0.135000X0.185000X-0.135000X0.185000X-0.135000X-0.185000X0.135000X-0.185000X0*%
|
||||
%ADD19RoundRect,0.140000X0.140000X0.170000X-0.140000X0.170000X-0.140000X-0.170000X0.140000X-0.170000X0*%
|
||||
%ADD20RoundRect,0.140000X0.170000X-0.140000X0.170000X0.140000X-0.170000X0.140000X-0.170000X-0.140000X0*%
|
||||
%ADD21RoundRect,0.290500X1.806500X0.871500X-1.806500X0.871500X-1.806500X-0.871500X1.806500X-0.871500X0*%
|
||||
%ADD22RoundRect,0.135000X-0.185000X0.135000X-0.185000X-0.135000X0.185000X-0.135000X0.185000X0.135000X0*%
|
||||
%ADD23RoundRect,0.140000X-0.140000X-0.170000X0.140000X-0.170000X0.140000X0.170000X-0.140000X0.170000X0*%
|
||||
%ADD24RoundRect,0.147500X-0.172500X0.147500X-0.172500X-0.147500X0.172500X-0.147500X0.172500X0.147500X0*%
|
||||
%ADD25RoundRect,0.140000X-0.170000X0.140000X-0.170000X-0.140000X0.170000X-0.140000X0.170000X0.140000X0*%
|
||||
%ADD26RoundRect,0.060000X-0.890000X-0.180000X0.890000X-0.180000X0.890000X0.180000X-0.890000X0.180000X0*%
|
||||
%ADD27RoundRect,0.102000X-0.525000X-0.325000X0.525000X-0.325000X0.525000X0.325000X-0.525000X0.325000X0*%
|
||||
%ADD28RoundRect,0.102000X0.525000X0.325000X-0.525000X0.325000X-0.525000X-0.325000X0.525000X-0.325000X0*%
|
||||
%ADD29C,0.650000*%
|
||||
%ADD30R,0.600000X1.240000*%
|
||||
%ADD31R,0.300000X1.240000*%
|
||||
%ADD32O,1.000000X2.100000*%
|
||||
%ADD33O,1.000000X1.800000*%
|
||||
%ADD34RoundRect,0.102000X-0.710000X-0.290000X0.710000X-0.290000X0.710000X0.290000X-0.710000X0.290000X0*%
|
||||
%ADD35RoundRect,0.102000X-0.525000X-0.650000X0.525000X-0.650000X0.525000X0.650000X-0.525000X0.650000X0*%
|
||||
%ADD36R,0.780000X0.220000*%
|
||||
%ADD37R,0.220000X0.780000*%
|
||||
%ADD38C,0.425000*%
|
||||
%ADD39R,3.400000X3.400000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,U5*%
|
||||
X170775000Y-119625000D02*
|
||||
X170200000Y-119625000D01*
|
||||
X170200000Y-119275000D01*
|
||||
X170775000Y-119275000D01*
|
||||
X170775000Y-119625000D01*
|
||||
G36*
|
||||
X170775000Y-119625000D02*
|
||||
G01*
|
||||
X170200000Y-119625000D01*
|
||||
X170200000Y-119275000D01*
|
||||
X170775000Y-119275000D01*
|
||||
X170775000Y-119625000D01*
|
||||
G37*
|
||||
X170775000Y-120125000D02*
|
||||
X170200000Y-120125000D01*
|
||||
X170200000Y-119775000D01*
|
||||
X170775000Y-119775000D01*
|
||||
X170775000Y-120125000D01*
|
||||
G36*
|
||||
X170775000Y-120125000D02*
|
||||
G01*
|
||||
X170200000Y-120125000D01*
|
||||
X170200000Y-119775000D01*
|
||||
X170775000Y-119775000D01*
|
||||
X170775000Y-120125000D01*
|
||||
G37*
|
||||
X170775000Y-120625000D02*
|
||||
X170200000Y-120625000D01*
|
||||
X170200000Y-120275000D01*
|
||||
X170775000Y-120275000D01*
|
||||
X170775000Y-120625000D01*
|
||||
G36*
|
||||
X170775000Y-120625000D02*
|
||||
G01*
|
||||
X170200000Y-120625000D01*
|
||||
X170200000Y-120275000D01*
|
||||
X170775000Y-120275000D01*
|
||||
X170775000Y-120625000D01*
|
||||
G37*
|
||||
X170775000Y-121125000D02*
|
||||
X170200000Y-121125000D01*
|
||||
X170200000Y-120775000D01*
|
||||
X170775000Y-120775000D01*
|
||||
X170775000Y-121125000D01*
|
||||
G36*
|
||||
X170775000Y-121125000D02*
|
||||
G01*
|
||||
X170200000Y-121125000D01*
|
||||
X170200000Y-120775000D01*
|
||||
X170775000Y-120775000D01*
|
||||
X170775000Y-121125000D01*
|
||||
G37*
|
||||
X171325000Y-119575000D02*
|
||||
X170975000Y-119575000D01*
|
||||
X170975000Y-119000000D01*
|
||||
X171325000Y-119000000D01*
|
||||
X171325000Y-119575000D01*
|
||||
G36*
|
||||
X171325000Y-119575000D02*
|
||||
G01*
|
||||
X170975000Y-119575000D01*
|
||||
X170975000Y-119000000D01*
|
||||
X171325000Y-119000000D01*
|
||||
X171325000Y-119575000D01*
|
||||
G37*
|
||||
X171325000Y-121400000D02*
|
||||
X170975000Y-121400000D01*
|
||||
X170975000Y-120825000D01*
|
||||
X171325000Y-120825000D01*
|
||||
X171325000Y-121400000D01*
|
||||
G36*
|
||||
X171325000Y-121400000D02*
|
||||
G01*
|
||||
X170975000Y-121400000D01*
|
||||
X170975000Y-120825000D01*
|
||||
X171325000Y-120825000D01*
|
||||
X171325000Y-121400000D01*
|
||||
G37*
|
||||
X171825000Y-119575000D02*
|
||||
X171475000Y-119575000D01*
|
||||
X171475000Y-119000000D01*
|
||||
X171825000Y-119000000D01*
|
||||
X171825000Y-119575000D01*
|
||||
G36*
|
||||
X171825000Y-119575000D02*
|
||||
G01*
|
||||
X171475000Y-119575000D01*
|
||||
X171475000Y-119000000D01*
|
||||
X171825000Y-119000000D01*
|
||||
X171825000Y-119575000D01*
|
||||
G37*
|
||||
X171825000Y-121400000D02*
|
||||
X171475000Y-121400000D01*
|
||||
X171475000Y-120825000D01*
|
||||
X171825000Y-120825000D01*
|
||||
X171825000Y-121400000D01*
|
||||
G36*
|
||||
X171825000Y-121400000D02*
|
||||
G01*
|
||||
X171475000Y-121400000D01*
|
||||
X171475000Y-120825000D01*
|
||||
X171825000Y-120825000D01*
|
||||
X171825000Y-121400000D01*
|
||||
G37*
|
||||
X172325000Y-119575000D02*
|
||||
X171975000Y-119575000D01*
|
||||
X171975000Y-119000000D01*
|
||||
X172325000Y-119000000D01*
|
||||
X172325000Y-119575000D01*
|
||||
G36*
|
||||
X172325000Y-119575000D02*
|
||||
G01*
|
||||
X171975000Y-119575000D01*
|
||||
X171975000Y-119000000D01*
|
||||
X172325000Y-119000000D01*
|
||||
X172325000Y-119575000D01*
|
||||
G37*
|
||||
X172325000Y-121400000D02*
|
||||
X171975000Y-121400000D01*
|
||||
X171975000Y-120825000D01*
|
||||
X172325000Y-120825000D01*
|
||||
X172325000Y-121400000D01*
|
||||
G36*
|
||||
X172325000Y-121400000D02*
|
||||
G01*
|
||||
X171975000Y-121400000D01*
|
||||
X171975000Y-120825000D01*
|
||||
X172325000Y-120825000D01*
|
||||
X172325000Y-121400000D01*
|
||||
G37*
|
||||
X173100000Y-119625000D02*
|
||||
X172525000Y-119625000D01*
|
||||
X172525000Y-119275000D01*
|
||||
X173100000Y-119275000D01*
|
||||
X173100000Y-119625000D01*
|
||||
G36*
|
||||
X173100000Y-119625000D02*
|
||||
G01*
|
||||
X172525000Y-119625000D01*
|
||||
X172525000Y-119275000D01*
|
||||
X173100000Y-119275000D01*
|
||||
X173100000Y-119625000D01*
|
||||
G37*
|
||||
X173100000Y-120125000D02*
|
||||
X172525000Y-120125000D01*
|
||||
X172525000Y-119775000D01*
|
||||
X173100000Y-119775000D01*
|
||||
X173100000Y-120125000D01*
|
||||
G36*
|
||||
X173100000Y-120125000D02*
|
||||
G01*
|
||||
X172525000Y-120125000D01*
|
||||
X172525000Y-119775000D01*
|
||||
X173100000Y-119775000D01*
|
||||
X173100000Y-120125000D01*
|
||||
G37*
|
||||
X173100000Y-120625000D02*
|
||||
X172525000Y-120625000D01*
|
||||
X172525000Y-120275000D01*
|
||||
X173100000Y-120275000D01*
|
||||
X173100000Y-120625000D01*
|
||||
G36*
|
||||
X173100000Y-120625000D02*
|
||||
G01*
|
||||
X172525000Y-120625000D01*
|
||||
X172525000Y-120275000D01*
|
||||
X173100000Y-120275000D01*
|
||||
X173100000Y-120625000D01*
|
||||
G37*
|
||||
X173100000Y-121125000D02*
|
||||
X172525000Y-121125000D01*
|
||||
X172525000Y-120775000D01*
|
||||
X173100000Y-120775000D01*
|
||||
X173100000Y-121125000D01*
|
||||
G36*
|
||||
X173100000Y-121125000D02*
|
||||
G01*
|
||||
X172525000Y-121125000D01*
|
||||
X172525000Y-120775000D01*
|
||||
X173100000Y-120775000D01*
|
||||
X173100000Y-121125000D01*
|
||||
G37*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,D6*%
|
||||
X152475000Y-137230000D03*
|
||||
D12*
|
||||
X152475000Y-134690000D03*
|
||||
X152475000Y-132150000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,RN3*%
|
||||
X144492500Y-110100000D03*
|
||||
X144492500Y-110900000D03*
|
||||
X144492500Y-111700000D03*
|
||||
X144492500Y-112500000D03*
|
||||
X146242500Y-112500000D03*
|
||||
X146242500Y-111700000D03*
|
||||
X146242500Y-110900000D03*
|
||||
X146242500Y-110100000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,R12*%
|
||||
X171511500Y-94675000D03*
|
||||
X172531500Y-94675000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,POWER1*%
|
||||
X145400000Y-72800000D03*
|
||||
X140400000Y-72800000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,U2*%
|
||||
X150850000Y-100875000D03*
|
||||
X150850000Y-101375000D03*
|
||||
X150850000Y-101875000D03*
|
||||
X150850000Y-102375000D03*
|
||||
X153350000Y-102375000D03*
|
||||
X153350000Y-101875000D03*
|
||||
X153350000Y-101375000D03*
|
||||
X153350000Y-100875000D03*
|
||||
D17*
|
||||
X152100000Y-101625000D03*
|
||||
%TD*%
|
||||
D18*
|
||||
%TO.C,R1*%
|
||||
X173610000Y-98500000D03*
|
||||
X172590000Y-98500000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,C12*%
|
||||
X153080000Y-108675000D03*
|
||||
X152120000Y-108675000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C14*%
|
||||
X166750000Y-99180000D03*
|
||||
X166750000Y-98220000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,RN2*%
|
||||
X144550000Y-104500000D03*
|
||||
X144550000Y-105300000D03*
|
||||
X144550000Y-106100000D03*
|
||||
X144550000Y-106900000D03*
|
||||
X146300000Y-106900000D03*
|
||||
X146300000Y-106100000D03*
|
||||
X146300000Y-105300000D03*
|
||||
X146300000Y-104500000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,14*%
|
||||
X137310000Y-114600000D03*
|
||||
D12*
|
||||
X134770000Y-114600000D03*
|
||||
X132230000Y-114600000D03*
|
||||
X129690000Y-114600000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,R7*%
|
||||
X170743500Y-131590000D03*
|
||||
X171763500Y-131590000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,18*%
|
||||
X137310000Y-125800000D03*
|
||||
D12*
|
||||
X134770000Y-125800000D03*
|
||||
X132230000Y-125800000D03*
|
||||
X129690000Y-125800000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,9*%
|
||||
X137310000Y-100600000D03*
|
||||
D12*
|
||||
X134770000Y-100600000D03*
|
||||
X132230000Y-100600000D03*
|
||||
X129690000Y-100600000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,C3*%
|
||||
X153080000Y-106150000D03*
|
||||
X152120000Y-106150000D03*
|
||||
%TD*%
|
||||
D21*
|
||||
%TO.C,C26*%
|
||||
X146565000Y-132800000D03*
|
||||
X138085000Y-132800000D03*
|
||||
%TD*%
|
||||
D18*
|
||||
%TO.C,R11*%
|
||||
X164210000Y-78635000D03*
|
||||
X163190000Y-78635000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,15*%
|
||||
X137310000Y-117400000D03*
|
||||
D12*
|
||||
X134770000Y-117400000D03*
|
||||
X132230000Y-117400000D03*
|
||||
X129690000Y-117400000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,R9*%
|
||||
X158100000Y-120990000D03*
|
||||
X158100000Y-122010000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C22*%
|
||||
X170970000Y-123300000D03*
|
||||
X171930000Y-123300000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,RN5*%
|
||||
X144317500Y-121400000D03*
|
||||
X144317500Y-122200000D03*
|
||||
X144317500Y-123000000D03*
|
||||
X144317500Y-123800000D03*
|
||||
X146067500Y-123800000D03*
|
||||
X146067500Y-123000000D03*
|
||||
X146067500Y-122200000D03*
|
||||
X146067500Y-121400000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,2*%
|
||||
X137210000Y-81000000D03*
|
||||
D12*
|
||||
X134670000Y-81000000D03*
|
||||
X132130000Y-81000000D03*
|
||||
X129590000Y-81000000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C15*%
|
||||
X164950000Y-99180000D03*
|
||||
X164950000Y-98220000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,D4*%
|
||||
X158075000Y-137230000D03*
|
||||
D12*
|
||||
X158075000Y-134690000D03*
|
||||
X158075000Y-132150000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,11*%
|
||||
X137310000Y-106200000D03*
|
||||
D12*
|
||||
X134770000Y-106200000D03*
|
||||
X132230000Y-106200000D03*
|
||||
X129690000Y-106200000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,17*%
|
||||
X137310000Y-123000000D03*
|
||||
D12*
|
||||
X134770000Y-123000000D03*
|
||||
X132230000Y-123000000D03*
|
||||
X129690000Y-123000000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,C18*%
|
||||
X154530000Y-99200000D03*
|
||||
X153570000Y-99200000D03*
|
||||
%TD*%
|
||||
D24*
|
||||
%TO.C,LED2*%
|
||||
X158100000Y-123815000D03*
|
||||
X158100000Y-124785000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C20*%
|
||||
X168545000Y-81305000D03*
|
||||
X168545000Y-82265000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,R10*%
|
||||
X167900000Y-78735000D03*
|
||||
X168920000Y-78735000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,R5*%
|
||||
X151650000Y-98190000D03*
|
||||
X151650000Y-99210000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,D1*%
|
||||
X166525000Y-137230000D03*
|
||||
D12*
|
||||
X166525000Y-134690000D03*
|
||||
X166525000Y-132150000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C4*%
|
||||
X171670000Y-104800000D03*
|
||||
X172630000Y-104800000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,C17*%
|
||||
X163455000Y-122250000D03*
|
||||
X162495000Y-122250000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,5*%
|
||||
X137310000Y-89400000D03*
|
||||
D12*
|
||||
X134770000Y-89400000D03*
|
||||
X132230000Y-89400000D03*
|
||||
X129690000Y-89400000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,RN4*%
|
||||
X144392500Y-115800000D03*
|
||||
X144392500Y-116600000D03*
|
||||
X144392500Y-117400000D03*
|
||||
X144392500Y-118200000D03*
|
||||
X146142500Y-118200000D03*
|
||||
X146142500Y-117400000D03*
|
||||
X146142500Y-116600000D03*
|
||||
X146142500Y-115800000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,1*%
|
||||
X137240000Y-78200000D03*
|
||||
D12*
|
||||
X134700000Y-78200000D03*
|
||||
X132160000Y-78200000D03*
|
||||
X129620000Y-78200000D03*
|
||||
%TD*%
|
||||
D26*
|
||||
%TO.C,U4*%
|
||||
X148690000Y-83900000D03*
|
||||
X148690000Y-84550000D03*
|
||||
X148690000Y-85200000D03*
|
||||
X148690000Y-85850000D03*
|
||||
X148690000Y-86500000D03*
|
||||
X148690000Y-87150000D03*
|
||||
X148690000Y-87800000D03*
|
||||
X148690000Y-88450000D03*
|
||||
X148690000Y-89100000D03*
|
||||
X148690000Y-89750000D03*
|
||||
X148690000Y-90400000D03*
|
||||
X148690000Y-91050000D03*
|
||||
X155700000Y-91050000D03*
|
||||
X155700000Y-90400000D03*
|
||||
X155700000Y-89750000D03*
|
||||
X155700000Y-89100000D03*
|
||||
X155700000Y-88450000D03*
|
||||
X155700000Y-87800000D03*
|
||||
X155700000Y-87150000D03*
|
||||
X155700000Y-86500000D03*
|
||||
X155700000Y-85850000D03*
|
||||
X155700000Y-85200000D03*
|
||||
X155700000Y-84550000D03*
|
||||
X155700000Y-83900000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,3*%
|
||||
X137210000Y-83800000D03*
|
||||
D12*
|
||||
X134670000Y-83800000D03*
|
||||
X132130000Y-83800000D03*
|
||||
X129590000Y-83800000D03*
|
||||
%TD*%
|
||||
D18*
|
||||
%TO.C,R6*%
|
||||
X149960000Y-99200000D03*
|
||||
X148940000Y-99200000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,13*%
|
||||
X137310000Y-111800000D03*
|
||||
D12*
|
||||
X134770000Y-111800000D03*
|
||||
X132230000Y-111800000D03*
|
||||
X129690000Y-111800000D03*
|
||||
%TD*%
|
||||
D27*
|
||||
%TO.C,BOOT*%
|
||||
X154725000Y-70260000D03*
|
||||
X158875000Y-70260000D03*
|
||||
X154725000Y-72410000D03*
|
||||
X158875000Y-72410000D03*
|
||||
%TD*%
|
||||
D28*
|
||||
%TO.C,RESET*%
|
||||
X173975000Y-136665000D03*
|
||||
X169825000Y-136665000D03*
|
||||
X173975000Y-134515000D03*
|
||||
X169825000Y-134515000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C9*%
|
||||
X171670000Y-108600000D03*
|
||||
X172630000Y-108600000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C5*%
|
||||
X156450000Y-99180000D03*
|
||||
X156450000Y-98220000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,RN1*%
|
||||
X144550000Y-98900000D03*
|
||||
X144550000Y-99700000D03*
|
||||
X144550000Y-100500000D03*
|
||||
X144550000Y-101300000D03*
|
||||
X146300000Y-101300000D03*
|
||||
X146300000Y-100500000D03*
|
||||
X146300000Y-99700000D03*
|
||||
X146300000Y-98900000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C16*%
|
||||
X159875000Y-118270000D03*
|
||||
X159875000Y-119230000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,D2*%
|
||||
X163675000Y-137230000D03*
|
||||
D12*
|
||||
X163675000Y-134690000D03*
|
||||
X163675000Y-132150000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,C2*%
|
||||
X153105000Y-111200000D03*
|
||||
X152145000Y-111200000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C6*%
|
||||
X156150000Y-117720000D03*
|
||||
X156150000Y-118680000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C8*%
|
||||
X171670000Y-112200000D03*
|
||||
X172630000Y-112200000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,R8*%
|
||||
X155700000Y-120990000D03*
|
||||
X155700000Y-122010000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C13*%
|
||||
X172620000Y-100500000D03*
|
||||
X173580000Y-100500000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C1*%
|
||||
X158150000Y-99180000D03*
|
||||
X158150000Y-98220000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C21*%
|
||||
X155495000Y-81975000D03*
|
||||
X156455000Y-81975000D03*
|
||||
%TD*%
|
||||
D24*
|
||||
%TO.C,LED1*%
|
||||
X155700000Y-123815000D03*
|
||||
X155700000Y-124785000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C7*%
|
||||
X159850000Y-99180000D03*
|
||||
X159850000Y-98220000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C10*%
|
||||
X167850000Y-118220000D03*
|
||||
X167850000Y-119180000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,J1*%
|
||||
X180300000Y-128310000D03*
|
||||
D12*
|
||||
X180300000Y-125770000D03*
|
||||
X180300000Y-123230000D03*
|
||||
X180300000Y-120690000D03*
|
||||
X180300000Y-118150000D03*
|
||||
X180300000Y-115610000D03*
|
||||
X180300000Y-113070000D03*
|
||||
X180300000Y-110530000D03*
|
||||
X180300000Y-107990000D03*
|
||||
X180300000Y-105450000D03*
|
||||
X180300000Y-102910000D03*
|
||||
X180300000Y-100370000D03*
|
||||
X180300000Y-97830000D03*
|
||||
X180300000Y-95290000D03*
|
||||
X180300000Y-92750000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C24*%
|
||||
X158300000Y-117720000D03*
|
||||
X158300000Y-118680000D03*
|
||||
%TD*%
|
||||
D24*
|
||||
%TO.C,L1*%
|
||||
X168550000Y-98215000D03*
|
||||
X168550000Y-99185000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,SWD1*%
|
||||
X180300000Y-78940000D03*
|
||||
D12*
|
||||
X180300000Y-81480000D03*
|
||||
X180300000Y-84020000D03*
|
||||
X180300000Y-86560000D03*
|
||||
X180300000Y-89100000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,D5*%
|
||||
X155275000Y-137230000D03*
|
||||
D12*
|
||||
X155275000Y-134690000D03*
|
||||
X155275000Y-132150000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,J2*%
|
||||
X180300000Y-132225000D03*
|
||||
D12*
|
||||
X177760000Y-132225000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,R2*%
|
||||
X165775000Y-118140000D03*
|
||||
X165775000Y-119160000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,12*%
|
||||
X137310000Y-109000000D03*
|
||||
D12*
|
||||
X134770000Y-109000000D03*
|
||||
X132230000Y-109000000D03*
|
||||
X129690000Y-109000000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,R4*%
|
||||
X163250000Y-98180000D03*
|
||||
X163250000Y-99200000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,C23*%
|
||||
X172030000Y-125200000D03*
|
||||
X171070000Y-125200000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,16*%
|
||||
X137310000Y-120200000D03*
|
||||
D12*
|
||||
X134770000Y-120200000D03*
|
||||
X132230000Y-120200000D03*
|
||||
X129690000Y-120200000D03*
|
||||
%TD*%
|
||||
D29*
|
||||
%TO.C,J3*%
|
||||
X168690000Y-74405000D03*
|
||||
X162910000Y-74405000D03*
|
||||
D30*
|
||||
X169000000Y-75525000D03*
|
||||
X168200000Y-75525000D03*
|
||||
D31*
|
||||
X167050000Y-75525000D03*
|
||||
X166050000Y-75525000D03*
|
||||
X165550000Y-75525000D03*
|
||||
X164550000Y-75525000D03*
|
||||
D30*
|
||||
X163400000Y-75525000D03*
|
||||
X162600000Y-75525000D03*
|
||||
X162600000Y-75525000D03*
|
||||
X163400000Y-75525000D03*
|
||||
D31*
|
||||
X164050000Y-75525000D03*
|
||||
X165050000Y-75525000D03*
|
||||
X166550000Y-75525000D03*
|
||||
X167550000Y-75525000D03*
|
||||
D30*
|
||||
X168200000Y-75525000D03*
|
||||
X169000000Y-75525000D03*
|
||||
D32*
|
||||
X170120000Y-74925000D03*
|
||||
D33*
|
||||
X170120000Y-70725000D03*
|
||||
D32*
|
||||
X161480000Y-74925000D03*
|
||||
D33*
|
||||
X161480000Y-70725000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,C25*%
|
||||
X171620000Y-103000000D03*
|
||||
X172580000Y-103000000D03*
|
||||
%TD*%
|
||||
%TO.C,C11*%
|
||||
X171670000Y-106700000D03*
|
||||
X172630000Y-106700000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,R13*%
|
||||
X171511500Y-92775000D03*
|
||||
X172531500Y-92775000D03*
|
||||
%TD*%
|
||||
D34*
|
||||
%TO.C,U3*%
|
||||
X163755000Y-81285000D03*
|
||||
X163755000Y-82235000D03*
|
||||
X163755000Y-83185000D03*
|
||||
X166045000Y-83185000D03*
|
||||
X166045000Y-81285000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,6*%
|
||||
X137310000Y-92200000D03*
|
||||
D12*
|
||||
X134770000Y-92200000D03*
|
||||
X132230000Y-92200000D03*
|
||||
X129690000Y-92200000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,D3*%
|
||||
X160875000Y-137230000D03*
|
||||
D12*
|
||||
X160875000Y-134690000D03*
|
||||
X160875000Y-132150000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,7*%
|
||||
X137310000Y-95000000D03*
|
||||
D12*
|
||||
X134770000Y-95000000D03*
|
||||
X132230000Y-95000000D03*
|
||||
X129690000Y-95000000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,C19*%
|
||||
X161345000Y-81305000D03*
|
||||
X161345000Y-82265000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,8*%
|
||||
X137310000Y-97800000D03*
|
||||
D12*
|
||||
X134770000Y-97800000D03*
|
||||
X132230000Y-97800000D03*
|
||||
X129690000Y-97800000D03*
|
||||
%TD*%
|
||||
D35*
|
||||
%TO.C,Y1*%
|
||||
X162000000Y-117600000D03*
|
||||
X162000000Y-119900000D03*
|
||||
X163750000Y-119900000D03*
|
||||
X163750000Y-117600000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,R3*%
|
||||
X161550000Y-98190000D03*
|
||||
X161550000Y-99210000D03*
|
||||
%TD*%
|
||||
D36*
|
||||
%TO.C,U1*%
|
||||
X157428500Y-104575000D03*
|
||||
X157428500Y-104975000D03*
|
||||
X157428500Y-105375000D03*
|
||||
X157428500Y-105775000D03*
|
||||
X157428500Y-106175000D03*
|
||||
X157428500Y-106575000D03*
|
||||
X157428500Y-106975000D03*
|
||||
X157428500Y-107375000D03*
|
||||
X157428500Y-107775000D03*
|
||||
X157428500Y-108175000D03*
|
||||
X157428500Y-108575000D03*
|
||||
X157428500Y-108975000D03*
|
||||
X157428500Y-109375000D03*
|
||||
X157428500Y-109775000D03*
|
||||
X157428500Y-110175000D03*
|
||||
X157428500Y-110575000D03*
|
||||
X157428500Y-110975000D03*
|
||||
X157428500Y-111375000D03*
|
||||
X157428500Y-111775000D03*
|
||||
X157428500Y-112175000D03*
|
||||
D37*
|
||||
X158525000Y-113271500D03*
|
||||
X158925000Y-113271500D03*
|
||||
X159325000Y-113271500D03*
|
||||
X159725000Y-113271500D03*
|
||||
X160125000Y-113271500D03*
|
||||
X160525000Y-113271500D03*
|
||||
X160925000Y-113271500D03*
|
||||
X161325000Y-113271500D03*
|
||||
X161725000Y-113271500D03*
|
||||
X162125000Y-113271500D03*
|
||||
X162525000Y-113271500D03*
|
||||
X162925000Y-113271500D03*
|
||||
X163325000Y-113271500D03*
|
||||
X163725000Y-113271500D03*
|
||||
X164125000Y-113271500D03*
|
||||
X164525000Y-113271500D03*
|
||||
X164925000Y-113271500D03*
|
||||
X165325000Y-113271500D03*
|
||||
X165725000Y-113271500D03*
|
||||
X166125000Y-113271500D03*
|
||||
D36*
|
||||
X167221500Y-112175000D03*
|
||||
X167221500Y-111775000D03*
|
||||
X167221500Y-111375000D03*
|
||||
X167221500Y-110975000D03*
|
||||
X167221500Y-110575000D03*
|
||||
X167221500Y-110175000D03*
|
||||
X167221500Y-109775000D03*
|
||||
X167221500Y-109375000D03*
|
||||
X167221500Y-108975000D03*
|
||||
X167221500Y-108575000D03*
|
||||
X167221500Y-108175000D03*
|
||||
X167221500Y-107775000D03*
|
||||
X167221500Y-107375000D03*
|
||||
X167221500Y-106975000D03*
|
||||
X167221500Y-106575000D03*
|
||||
X167221500Y-106175000D03*
|
||||
X167221500Y-105775000D03*
|
||||
X167221500Y-105375000D03*
|
||||
X167221500Y-104975000D03*
|
||||
X167221500Y-104575000D03*
|
||||
D37*
|
||||
X166125000Y-103478500D03*
|
||||
X165725000Y-103478500D03*
|
||||
X165325000Y-103478500D03*
|
||||
X164925000Y-103478500D03*
|
||||
X164525000Y-103478500D03*
|
||||
X164125000Y-103478500D03*
|
||||
X163725000Y-103478500D03*
|
||||
X163325000Y-103478500D03*
|
||||
X162925000Y-103478500D03*
|
||||
X162525000Y-103478500D03*
|
||||
X162125000Y-103478500D03*
|
||||
X161725000Y-103478500D03*
|
||||
X161325000Y-103478500D03*
|
||||
X160925000Y-103478500D03*
|
||||
X160525000Y-103478500D03*
|
||||
X160125000Y-103478500D03*
|
||||
X159725000Y-103478500D03*
|
||||
X159325000Y-103478500D03*
|
||||
X158925000Y-103478500D03*
|
||||
X158525000Y-103478500D03*
|
||||
D38*
|
||||
X161475000Y-107525000D03*
|
||||
X161475000Y-108375000D03*
|
||||
X161475000Y-109225000D03*
|
||||
X162325000Y-107525000D03*
|
||||
X162325000Y-108375000D03*
|
||||
D39*
|
||||
X162325000Y-108375000D03*
|
||||
D38*
|
||||
X162325000Y-109225000D03*
|
||||
X163175000Y-107525000D03*
|
||||
X163175000Y-108375000D03*
|
||||
X163175000Y-109225000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,10*%
|
||||
X137310000Y-103400000D03*
|
||||
D12*
|
||||
X134770000Y-103400000D03*
|
||||
X132230000Y-103400000D03*
|
||||
X129690000Y-103400000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,4*%
|
||||
X137240000Y-86600000D03*
|
||||
D12*
|
||||
X134700000Y-86600000D03*
|
||||
X132160000Y-86600000D03*
|
||||
X129620000Y-86600000D03*
|
||||
%TD*%
|
||||
M02*
|
||||
@@ -0,0 +1,639 @@
|
||||
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.7*%
|
||||
%TF.CreationDate,2026-01-13T21:49:27+02:00*%
|
||||
%TF.ProjectId,Servo2350,53657276-6f32-4333-9530-2e6b69636164,rev?*%
|
||||
%TF.SameCoordinates,Original*%
|
||||
%TF.FileFunction,Paste,Top*%
|
||||
%TF.FilePolarity,Positive*%
|
||||
%FSLAX46Y46*%
|
||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||
G04 Created by KiCad (PCBNEW 9.0.7) date 2026-01-13 21:49:27*
|
||||
%MOMM*%
|
||||
%LPD*%
|
||||
G01*
|
||||
G04 APERTURE LIST*
|
||||
G04 Aperture macros list*
|
||||
%AMRoundRect*
|
||||
0 Rectangle with rounded corners*
|
||||
0 $1 Rounding radius*
|
||||
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
|
||||
0 Add a 4 corners polygon primitive as box body*
|
||||
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
|
||||
0 Add four circle primitives for the rounded corners*
|
||||
1,1,$1+$1,$2,$3*
|
||||
1,1,$1+$1,$4,$5*
|
||||
1,1,$1+$1,$6,$7*
|
||||
1,1,$1+$1,$8,$9*
|
||||
0 Add four rect primitives between the rounded corners*
|
||||
20,1,$1+$1,$2,$3,$4,$5,0*
|
||||
20,1,$1+$1,$4,$5,$6,$7,0*
|
||||
20,1,$1+$1,$6,$7,$8,$9,0*
|
||||
20,1,$1+$1,$8,$9,$2,$3,0*%
|
||||
G04 Aperture macros list end*
|
||||
%ADD10C,0.010000*%
|
||||
%ADD11RoundRect,0.066250X-0.418750X-0.198750X0.418750X-0.198750X0.418750X0.198750X-0.418750X0.198750X0*%
|
||||
%ADD12RoundRect,0.135000X-0.135000X-0.185000X0.135000X-0.185000X0.135000X0.185000X-0.135000X0.185000X0*%
|
||||
%ADD13RoundRect,0.135000X0.135000X0.185000X-0.135000X0.185000X-0.135000X-0.185000X0.135000X-0.185000X0*%
|
||||
%ADD14RoundRect,0.140000X0.140000X0.170000X-0.140000X0.170000X-0.140000X-0.170000X0.140000X-0.170000X0*%
|
||||
%ADD15RoundRect,0.140000X0.170000X-0.140000X0.170000X0.140000X-0.170000X0.140000X-0.170000X-0.140000X0*%
|
||||
%ADD16R,0.475000X0.250000*%
|
||||
%ADD17R,0.250000X0.475000*%
|
||||
%ADD18RoundRect,0.265000X1.730000X0.795000X-1.730000X0.795000X-1.730000X-0.795000X1.730000X-0.795000X0*%
|
||||
%ADD19RoundRect,0.135000X-0.185000X0.135000X-0.185000X-0.135000X0.185000X-0.135000X0.185000X0.135000X0*%
|
||||
%ADD20RoundRect,0.140000X-0.140000X-0.170000X0.140000X-0.170000X0.140000X0.170000X-0.140000X0.170000X0*%
|
||||
%ADD21RoundRect,0.147500X-0.172500X0.147500X-0.172500X-0.147500X0.172500X-0.147500X0.172500X0.147500X0*%
|
||||
%ADD22RoundRect,0.140000X-0.170000X0.140000X-0.170000X-0.140000X0.170000X-0.140000X0.170000X0.140000X0*%
|
||||
%ADD23RoundRect,0.060000X-0.890000X-0.180000X0.890000X-0.180000X0.890000X0.180000X-0.890000X0.180000X0*%
|
||||
%ADD24R,1.050000X0.650000*%
|
||||
%ADD25R,0.600000X1.240000*%
|
||||
%ADD26R,0.300000X1.240000*%
|
||||
%ADD27R,1.420000X0.580000*%
|
||||
%ADD28R,1.050000X1.300000*%
|
||||
%ADD29R,1.000000X1.000000*%
|
||||
%ADD30R,0.780000X0.220000*%
|
||||
%ADD31R,0.220000X0.780000*%
|
||||
G04 APERTURE END LIST*
|
||||
D10*
|
||||
%TO.C,U2*%
|
||||
X151000000Y-100975000D02*
|
||||
X150450000Y-100975000D01*
|
||||
X150450000Y-100775000D01*
|
||||
X151000000Y-100775000D01*
|
||||
X151000000Y-100975000D01*
|
||||
G36*
|
||||
X151000000Y-100975000D02*
|
||||
G01*
|
||||
X150450000Y-100975000D01*
|
||||
X150450000Y-100775000D01*
|
||||
X151000000Y-100775000D01*
|
||||
X151000000Y-100975000D01*
|
||||
G37*
|
||||
X151000000Y-101475000D02*
|
||||
X150450000Y-101475000D01*
|
||||
X150450000Y-101275000D01*
|
||||
X151000000Y-101275000D01*
|
||||
X151000000Y-101475000D01*
|
||||
G36*
|
||||
X151000000Y-101475000D02*
|
||||
G01*
|
||||
X150450000Y-101475000D01*
|
||||
X150450000Y-101275000D01*
|
||||
X151000000Y-101275000D01*
|
||||
X151000000Y-101475000D01*
|
||||
G37*
|
||||
X151000000Y-101975000D02*
|
||||
X150450000Y-101975000D01*
|
||||
X150450000Y-101775000D01*
|
||||
X151000000Y-101775000D01*
|
||||
X151000000Y-101975000D01*
|
||||
G36*
|
||||
X151000000Y-101975000D02*
|
||||
G01*
|
||||
X150450000Y-101975000D01*
|
||||
X150450000Y-101775000D01*
|
||||
X151000000Y-101775000D01*
|
||||
X151000000Y-101975000D01*
|
||||
G37*
|
||||
X151000000Y-102475000D02*
|
||||
X150450000Y-102475000D01*
|
||||
X150450000Y-102275000D01*
|
||||
X151000000Y-102275000D01*
|
||||
X151000000Y-102475000D01*
|
||||
G36*
|
||||
X151000000Y-102475000D02*
|
||||
G01*
|
||||
X150450000Y-102475000D01*
|
||||
X150450000Y-102275000D01*
|
||||
X151000000Y-102275000D01*
|
||||
X151000000Y-102475000D01*
|
||||
G37*
|
||||
X152200000Y-101525000D02*
|
||||
X152000000Y-101525000D01*
|
||||
X152000000Y-101025000D01*
|
||||
X152200000Y-101025000D01*
|
||||
X152200000Y-101525000D01*
|
||||
G36*
|
||||
X152200000Y-101525000D02*
|
||||
G01*
|
||||
X152000000Y-101525000D01*
|
||||
X152000000Y-101025000D01*
|
||||
X152200000Y-101025000D01*
|
||||
X152200000Y-101525000D01*
|
||||
G37*
|
||||
X152200000Y-102225000D02*
|
||||
X152000000Y-102225000D01*
|
||||
X152000000Y-101725000D01*
|
||||
X152200000Y-101725000D01*
|
||||
X152200000Y-102225000D01*
|
||||
G36*
|
||||
X152200000Y-102225000D02*
|
||||
G01*
|
||||
X152000000Y-102225000D01*
|
||||
X152000000Y-101725000D01*
|
||||
X152200000Y-101725000D01*
|
||||
X152200000Y-102225000D01*
|
||||
G37*
|
||||
X153750000Y-100975000D02*
|
||||
X153200000Y-100975000D01*
|
||||
X153200000Y-100775000D01*
|
||||
X153750000Y-100775000D01*
|
||||
X153750000Y-100975000D01*
|
||||
G36*
|
||||
X153750000Y-100975000D02*
|
||||
G01*
|
||||
X153200000Y-100975000D01*
|
||||
X153200000Y-100775000D01*
|
||||
X153750000Y-100775000D01*
|
||||
X153750000Y-100975000D01*
|
||||
G37*
|
||||
X153750000Y-101475000D02*
|
||||
X153200000Y-101475000D01*
|
||||
X153200000Y-101275000D01*
|
||||
X153750000Y-101275000D01*
|
||||
X153750000Y-101475000D01*
|
||||
G36*
|
||||
X153750000Y-101475000D02*
|
||||
G01*
|
||||
X153200000Y-101475000D01*
|
||||
X153200000Y-101275000D01*
|
||||
X153750000Y-101275000D01*
|
||||
X153750000Y-101475000D01*
|
||||
G37*
|
||||
X153750000Y-101975000D02*
|
||||
X153200000Y-101975000D01*
|
||||
X153200000Y-101775000D01*
|
||||
X153750000Y-101775000D01*
|
||||
X153750000Y-101975000D01*
|
||||
G36*
|
||||
X153750000Y-101975000D02*
|
||||
G01*
|
||||
X153200000Y-101975000D01*
|
||||
X153200000Y-101775000D01*
|
||||
X153750000Y-101775000D01*
|
||||
X153750000Y-101975000D01*
|
||||
G37*
|
||||
X153750000Y-102475000D02*
|
||||
X153200000Y-102475000D01*
|
||||
X153200000Y-102275000D01*
|
||||
X153750000Y-102275000D01*
|
||||
X153750000Y-102475000D01*
|
||||
G36*
|
||||
X153750000Y-102475000D02*
|
||||
G01*
|
||||
X153200000Y-102475000D01*
|
||||
X153200000Y-102275000D01*
|
||||
X153750000Y-102275000D01*
|
||||
X153750000Y-102475000D01*
|
||||
G37*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,RN3*%
|
||||
X144492500Y-110100000D03*
|
||||
X144492500Y-110900000D03*
|
||||
X144492500Y-111700000D03*
|
||||
X144492500Y-112500000D03*
|
||||
X146242500Y-112500000D03*
|
||||
X146242500Y-111700000D03*
|
||||
X146242500Y-110900000D03*
|
||||
X146242500Y-110100000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,R12*%
|
||||
X171511500Y-94675000D03*
|
||||
X172531500Y-94675000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,R1*%
|
||||
X173610000Y-98500000D03*
|
||||
X172590000Y-98500000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C12*%
|
||||
X153080000Y-108675000D03*
|
||||
X152120000Y-108675000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,C14*%
|
||||
X166750000Y-99180000D03*
|
||||
X166750000Y-98220000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,RN2*%
|
||||
X144550000Y-104500000D03*
|
||||
X144550000Y-105300000D03*
|
||||
X144550000Y-106100000D03*
|
||||
X144550000Y-106900000D03*
|
||||
X146300000Y-106900000D03*
|
||||
X146300000Y-106100000D03*
|
||||
X146300000Y-105300000D03*
|
||||
X146300000Y-104500000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,R7*%
|
||||
X170743500Y-131590000D03*
|
||||
X171763500Y-131590000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C3*%
|
||||
X153080000Y-106150000D03*
|
||||
X152120000Y-106150000D03*
|
||||
%TD*%
|
||||
D16*
|
||||
%TO.C,U5*%
|
||||
X170487500Y-119450000D03*
|
||||
X170487500Y-119950000D03*
|
||||
X170487500Y-120450000D03*
|
||||
X170487500Y-120950000D03*
|
||||
D17*
|
||||
X171150000Y-121112500D03*
|
||||
X171650000Y-121112500D03*
|
||||
X172150000Y-121112500D03*
|
||||
D16*
|
||||
X172812500Y-120950000D03*
|
||||
X172812500Y-120450000D03*
|
||||
X172812500Y-119950000D03*
|
||||
X172812500Y-119450000D03*
|
||||
D17*
|
||||
X172150000Y-119287500D03*
|
||||
X171650000Y-119287500D03*
|
||||
X171150000Y-119287500D03*
|
||||
%TD*%
|
||||
D18*
|
||||
%TO.C,C26*%
|
||||
X146565000Y-132800000D03*
|
||||
X138085000Y-132800000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,R11*%
|
||||
X164210000Y-78635000D03*
|
||||
X163190000Y-78635000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,R9*%
|
||||
X158100000Y-120990000D03*
|
||||
X158100000Y-122010000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C22*%
|
||||
X170970000Y-123300000D03*
|
||||
X171930000Y-123300000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,RN5*%
|
||||
X144317500Y-121400000D03*
|
||||
X144317500Y-122200000D03*
|
||||
X144317500Y-123000000D03*
|
||||
X144317500Y-123800000D03*
|
||||
X146067500Y-123800000D03*
|
||||
X146067500Y-123000000D03*
|
||||
X146067500Y-122200000D03*
|
||||
X146067500Y-121400000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,C15*%
|
||||
X164950000Y-99180000D03*
|
||||
X164950000Y-98220000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C18*%
|
||||
X154530000Y-99200000D03*
|
||||
X153570000Y-99200000D03*
|
||||
%TD*%
|
||||
D21*
|
||||
%TO.C,LED2*%
|
||||
X158100000Y-123815000D03*
|
||||
X158100000Y-124785000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,C20*%
|
||||
X168545000Y-81305000D03*
|
||||
X168545000Y-82265000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,R10*%
|
||||
X167900000Y-78735000D03*
|
||||
X168920000Y-78735000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,R5*%
|
||||
X151650000Y-98190000D03*
|
||||
X151650000Y-99210000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C4*%
|
||||
X171670000Y-104800000D03*
|
||||
X172630000Y-104800000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C17*%
|
||||
X163455000Y-122250000D03*
|
||||
X162495000Y-122250000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,RN4*%
|
||||
X144392500Y-115800000D03*
|
||||
X144392500Y-116600000D03*
|
||||
X144392500Y-117400000D03*
|
||||
X144392500Y-118200000D03*
|
||||
X146142500Y-118200000D03*
|
||||
X146142500Y-117400000D03*
|
||||
X146142500Y-116600000D03*
|
||||
X146142500Y-115800000D03*
|
||||
%TD*%
|
||||
D23*
|
||||
%TO.C,U4*%
|
||||
X148690000Y-83900000D03*
|
||||
X148690000Y-84550000D03*
|
||||
X148690000Y-85200000D03*
|
||||
X148690000Y-85850000D03*
|
||||
X148690000Y-86500000D03*
|
||||
X148690000Y-87150000D03*
|
||||
X148690000Y-87800000D03*
|
||||
X148690000Y-88450000D03*
|
||||
X148690000Y-89100000D03*
|
||||
X148690000Y-89750000D03*
|
||||
X148690000Y-90400000D03*
|
||||
X148690000Y-91050000D03*
|
||||
X155700000Y-91050000D03*
|
||||
X155700000Y-90400000D03*
|
||||
X155700000Y-89750000D03*
|
||||
X155700000Y-89100000D03*
|
||||
X155700000Y-88450000D03*
|
||||
X155700000Y-87800000D03*
|
||||
X155700000Y-87150000D03*
|
||||
X155700000Y-86500000D03*
|
||||
X155700000Y-85850000D03*
|
||||
X155700000Y-85200000D03*
|
||||
X155700000Y-84550000D03*
|
||||
X155700000Y-83900000D03*
|
||||
%TD*%
|
||||
D13*
|
||||
%TO.C,R6*%
|
||||
X149960000Y-99200000D03*
|
||||
X148940000Y-99200000D03*
|
||||
%TD*%
|
||||
D24*
|
||||
%TO.C,BOOT*%
|
||||
X154725000Y-70260000D03*
|
||||
X158875000Y-70260000D03*
|
||||
X154725000Y-72410000D03*
|
||||
X158875000Y-72410000D03*
|
||||
%TD*%
|
||||
%TO.C,RESET*%
|
||||
X173975000Y-136665000D03*
|
||||
X169825000Y-136665000D03*
|
||||
X173975000Y-134515000D03*
|
||||
X169825000Y-134515000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C9*%
|
||||
X171670000Y-108600000D03*
|
||||
X172630000Y-108600000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,C5*%
|
||||
X156450000Y-99180000D03*
|
||||
X156450000Y-98220000D03*
|
||||
%TD*%
|
||||
D11*
|
||||
%TO.C,RN1*%
|
||||
X144550000Y-98900000D03*
|
||||
X144550000Y-99700000D03*
|
||||
X144550000Y-100500000D03*
|
||||
X144550000Y-101300000D03*
|
||||
X146300000Y-101300000D03*
|
||||
X146300000Y-100500000D03*
|
||||
X146300000Y-99700000D03*
|
||||
X146300000Y-98900000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,C16*%
|
||||
X159875000Y-118270000D03*
|
||||
X159875000Y-119230000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C2*%
|
||||
X153105000Y-111200000D03*
|
||||
X152145000Y-111200000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,C6*%
|
||||
X156150000Y-117720000D03*
|
||||
X156150000Y-118680000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C8*%
|
||||
X171670000Y-112200000D03*
|
||||
X172630000Y-112200000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,R8*%
|
||||
X155700000Y-120990000D03*
|
||||
X155700000Y-122010000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C13*%
|
||||
X172620000Y-100500000D03*
|
||||
X173580000Y-100500000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,C1*%
|
||||
X158150000Y-99180000D03*
|
||||
X158150000Y-98220000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C21*%
|
||||
X155495000Y-81975000D03*
|
||||
X156455000Y-81975000D03*
|
||||
%TD*%
|
||||
D21*
|
||||
%TO.C,LED1*%
|
||||
X155700000Y-123815000D03*
|
||||
X155700000Y-124785000D03*
|
||||
%TD*%
|
||||
D15*
|
||||
%TO.C,C7*%
|
||||
X159850000Y-99180000D03*
|
||||
X159850000Y-98220000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,C10*%
|
||||
X167850000Y-118220000D03*
|
||||
X167850000Y-119180000D03*
|
||||
%TD*%
|
||||
%TO.C,C24*%
|
||||
X158300000Y-117720000D03*
|
||||
X158300000Y-118680000D03*
|
||||
%TD*%
|
||||
D21*
|
||||
%TO.C,L1*%
|
||||
X168550000Y-98215000D03*
|
||||
X168550000Y-99185000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,R2*%
|
||||
X165775000Y-118140000D03*
|
||||
X165775000Y-119160000D03*
|
||||
%TD*%
|
||||
%TO.C,R4*%
|
||||
X163250000Y-98180000D03*
|
||||
X163250000Y-99200000D03*
|
||||
%TD*%
|
||||
D14*
|
||||
%TO.C,C23*%
|
||||
X172030000Y-125200000D03*
|
||||
X171070000Y-125200000D03*
|
||||
%TD*%
|
||||
D25*
|
||||
%TO.C,J3*%
|
||||
X169000000Y-75525000D03*
|
||||
X168200000Y-75525000D03*
|
||||
D26*
|
||||
X167050000Y-75525000D03*
|
||||
X166050000Y-75525000D03*
|
||||
X165550000Y-75525000D03*
|
||||
X164550000Y-75525000D03*
|
||||
D25*
|
||||
X163400000Y-75525000D03*
|
||||
X162600000Y-75525000D03*
|
||||
X162600000Y-75525000D03*
|
||||
X163400000Y-75525000D03*
|
||||
D26*
|
||||
X164050000Y-75525000D03*
|
||||
X165050000Y-75525000D03*
|
||||
X166550000Y-75525000D03*
|
||||
X167550000Y-75525000D03*
|
||||
D25*
|
||||
X168200000Y-75525000D03*
|
||||
X169000000Y-75525000D03*
|
||||
%TD*%
|
||||
D20*
|
||||
%TO.C,C25*%
|
||||
X171620000Y-103000000D03*
|
||||
X172580000Y-103000000D03*
|
||||
%TD*%
|
||||
%TO.C,C11*%
|
||||
X171670000Y-106700000D03*
|
||||
X172630000Y-106700000D03*
|
||||
%TD*%
|
||||
D12*
|
||||
%TO.C,R13*%
|
||||
X171511500Y-92775000D03*
|
||||
X172531500Y-92775000D03*
|
||||
%TD*%
|
||||
D27*
|
||||
%TO.C,U3*%
|
||||
X163755000Y-81285000D03*
|
||||
X163755000Y-82235000D03*
|
||||
X163755000Y-83185000D03*
|
||||
X166045000Y-83185000D03*
|
||||
X166045000Y-81285000D03*
|
||||
%TD*%
|
||||
D22*
|
||||
%TO.C,C19*%
|
||||
X161345000Y-81305000D03*
|
||||
X161345000Y-82265000D03*
|
||||
%TD*%
|
||||
D28*
|
||||
%TO.C,Y1*%
|
||||
X162000000Y-117600000D03*
|
||||
X162000000Y-119900000D03*
|
||||
X163750000Y-119900000D03*
|
||||
X163750000Y-117600000D03*
|
||||
%TD*%
|
||||
D19*
|
||||
%TO.C,R3*%
|
||||
X161550000Y-98190000D03*
|
||||
X161550000Y-99210000D03*
|
||||
%TD*%
|
||||
D29*
|
||||
%TO.C,U1*%
|
||||
X161425000Y-107475000D03*
|
||||
X161425000Y-109275000D03*
|
||||
X163225000Y-107475000D03*
|
||||
X163225000Y-109275000D03*
|
||||
D30*
|
||||
X157428500Y-104575000D03*
|
||||
X157428500Y-104975000D03*
|
||||
X157428500Y-105375000D03*
|
||||
X157428500Y-105775000D03*
|
||||
X157428500Y-106175000D03*
|
||||
X157428500Y-106575000D03*
|
||||
X157428500Y-106975000D03*
|
||||
X157428500Y-107375000D03*
|
||||
X157428500Y-107775000D03*
|
||||
X157428500Y-108175000D03*
|
||||
X157428500Y-108575000D03*
|
||||
X157428500Y-108975000D03*
|
||||
X157428500Y-109375000D03*
|
||||
X157428500Y-109775000D03*
|
||||
X157428500Y-110175000D03*
|
||||
X157428500Y-110575000D03*
|
||||
X157428500Y-110975000D03*
|
||||
X157428500Y-111375000D03*
|
||||
X157428500Y-111775000D03*
|
||||
X157428500Y-112175000D03*
|
||||
D31*
|
||||
X158525000Y-113271500D03*
|
||||
X158925000Y-113271500D03*
|
||||
X159325000Y-113271500D03*
|
||||
X159725000Y-113271500D03*
|
||||
X160125000Y-113271500D03*
|
||||
X160525000Y-113271500D03*
|
||||
X160925000Y-113271500D03*
|
||||
X161325000Y-113271500D03*
|
||||
X161725000Y-113271500D03*
|
||||
X162125000Y-113271500D03*
|
||||
X162525000Y-113271500D03*
|
||||
X162925000Y-113271500D03*
|
||||
X163325000Y-113271500D03*
|
||||
X163725000Y-113271500D03*
|
||||
X164125000Y-113271500D03*
|
||||
X164525000Y-113271500D03*
|
||||
X164925000Y-113271500D03*
|
||||
X165325000Y-113271500D03*
|
||||
X165725000Y-113271500D03*
|
||||
X166125000Y-113271500D03*
|
||||
D30*
|
||||
X167221500Y-112175000D03*
|
||||
X167221500Y-111775000D03*
|
||||
X167221500Y-111375000D03*
|
||||
X167221500Y-110975000D03*
|
||||
X167221500Y-110575000D03*
|
||||
X167221500Y-110175000D03*
|
||||
X167221500Y-109775000D03*
|
||||
X167221500Y-109375000D03*
|
||||
X167221500Y-108975000D03*
|
||||
X167221500Y-108575000D03*
|
||||
X167221500Y-108175000D03*
|
||||
X167221500Y-107775000D03*
|
||||
X167221500Y-107375000D03*
|
||||
X167221500Y-106975000D03*
|
||||
X167221500Y-106575000D03*
|
||||
X167221500Y-106175000D03*
|
||||
X167221500Y-105775000D03*
|
||||
X167221500Y-105375000D03*
|
||||
X167221500Y-104975000D03*
|
||||
X167221500Y-104575000D03*
|
||||
D31*
|
||||
X166125000Y-103478500D03*
|
||||
X165725000Y-103478500D03*
|
||||
X165325000Y-103478500D03*
|
||||
X164925000Y-103478500D03*
|
||||
X164525000Y-103478500D03*
|
||||
X164125000Y-103478500D03*
|
||||
X163725000Y-103478500D03*
|
||||
X163325000Y-103478500D03*
|
||||
X162925000Y-103478500D03*
|
||||
X162525000Y-103478500D03*
|
||||
X162125000Y-103478500D03*
|
||||
X161725000Y-103478500D03*
|
||||
X161325000Y-103478500D03*
|
||||
X160925000Y-103478500D03*
|
||||
X160525000Y-103478500D03*
|
||||
X160125000Y-103478500D03*
|
||||
X159725000Y-103478500D03*
|
||||
X159325000Y-103478500D03*
|
||||
X158925000Y-103478500D03*
|
||||
X158525000Y-103478500D03*
|
||||
%TD*%
|
||||
M02*
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,17 @@
|
||||
M48
|
||||
; DRILL file {KiCad 9.0.7} date 2026-01-13T21:49:25+0200
|
||||
; FORMAT={-:-/ absolute / metric / decimal}
|
||||
; #@! TF.CreationDate,2026-01-13T21:49:25+02:00
|
||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.7
|
||||
; #@! TF.FileFunction,NonPlated,1,4,NPTH
|
||||
FMAT,2
|
||||
METRIC
|
||||
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
|
||||
T1C0.650
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T1
|
||||
X162.91Y-74.405
|
||||
X168.69Y-74.405
|
||||
M30
|
||||
@@ -0,0 +1,314 @@
|
||||
M48
|
||||
; DRILL file {KiCad 9.0.7} date 2026-01-13T21:49:25+0200
|
||||
; FORMAT={-:-/ absolute / metric / decimal}
|
||||
; #@! TF.CreationDate,2026-01-13T21:49:25+02:00
|
||||
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.7
|
||||
; #@! TF.FileFunction,Plated,1,4,PTH
|
||||
FMAT,2
|
||||
METRIC
|
||||
; #@! TA.AperFunction,Plated,PTH,ViaDrill
|
||||
T1C0.250
|
||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||
T2C0.250
|
||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||
T3C0.600
|
||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||
T4C1.000
|
||||
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
|
||||
T5C1.300
|
||||
%
|
||||
G90
|
||||
G05
|
||||
T1
|
||||
X131.25Y-132.15
|
||||
X143.0Y-100.5
|
||||
X143.0Y-101.3
|
||||
X143.0Y-104.5
|
||||
X143.0Y-105.3
|
||||
X143.0Y-106.1
|
||||
X143.0Y-106.9
|
||||
X143.0Y-108.75
|
||||
X143.0Y-110.1
|
||||
X143.0Y-110.9
|
||||
X143.0Y-111.7
|
||||
X143.0Y-112.5
|
||||
X143.0Y-115.8
|
||||
X143.0Y-116.6
|
||||
X143.0Y-117.4
|
||||
X143.0Y-118.2
|
||||
X143.1Y-121.4
|
||||
X143.1Y-122.2
|
||||
X143.2Y-99.6
|
||||
X144.4Y-97.4
|
||||
X144.7Y-85.5
|
||||
X145.7Y-89.9
|
||||
X146.4Y-91.1
|
||||
X146.75Y-126.25
|
||||
X147.5Y-98.9
|
||||
X147.7Y-92.25
|
||||
X147.8Y-97.35
|
||||
X148.45Y-100.45
|
||||
X148.45Y-102.075
|
||||
X148.75Y-117.75
|
||||
X149.4Y-100.5
|
||||
X149.85Y-101.1
|
||||
X150.0Y-117.0
|
||||
X150.1Y-102.5
|
||||
X150.3Y-106.15
|
||||
X150.55Y-108.7
|
||||
X150.6Y-71.25
|
||||
X150.65Y-96.85
|
||||
X150.725Y-115.775
|
||||
X151.2Y-112.65
|
||||
X151.6Y-114.725
|
||||
X152.45Y-113.75
|
||||
X152.55Y-99.85
|
||||
X152.7Y-112.1
|
||||
X152.75Y-77.65
|
||||
X153.275Y-112.875
|
||||
X153.9Y-112.025
|
||||
X154.0Y-91.6
|
||||
X154.1Y-90.4
|
||||
X154.475Y-102.525
|
||||
X154.5Y-100.25
|
||||
X154.6Y-101.2
|
||||
X154.6Y-118.75
|
||||
X154.6Y-123.05
|
||||
X154.65Y-120.1
|
||||
X154.75Y-117.6
|
||||
X155.05Y-116.4
|
||||
X155.2Y-101.8
|
||||
X155.7Y-82.9
|
||||
X156.1Y-115.8
|
||||
X156.7Y-76.1
|
||||
X156.7Y-100.0
|
||||
X156.85Y-96.55
|
||||
X156.9Y-115.5
|
||||
X156.9Y-124.8
|
||||
X157.9Y-89.75
|
||||
X158.4Y-106.2
|
||||
X158.4Y-110.6
|
||||
X158.5Y-111.4
|
||||
X158.8Y-109.55
|
||||
X158.9Y-99.95
|
||||
X158.9Y-117.15
|
||||
X160.05Y-116.55
|
||||
X160.15Y-99.85
|
||||
X160.425Y-115.575
|
||||
X160.525Y-104.3
|
||||
X160.75Y-121.75
|
||||
X160.8Y-102.4
|
||||
X161.325Y-104.9
|
||||
X161.45Y-86.15
|
||||
X161.6Y-97.1
|
||||
X161.65Y-112.0
|
||||
X161.7Y-102.5
|
||||
X162.0Y-101.4
|
||||
X162.1Y-104.6
|
||||
X162.5Y-79.6
|
||||
X162.65Y-111.95
|
||||
X163.3Y-97.1
|
||||
X163.3Y-104.7
|
||||
X163.7Y-111.95
|
||||
X164.15Y-104.95
|
||||
X164.55Y-105.65
|
||||
X164.7Y-112.0
|
||||
X165.0Y-79.5
|
||||
X165.0Y-115.05
|
||||
X165.1Y-114.15
|
||||
X165.15Y-94.35
|
||||
X165.3Y-112.3
|
||||
X165.4Y-89.55
|
||||
X165.45Y-104.9
|
||||
X165.9Y-110.15
|
||||
X165.95Y-112.0
|
||||
X166.1Y-116.1
|
||||
X166.1Y-120.6
|
||||
X166.3Y-77.75
|
||||
X166.3Y-100.6
|
||||
X166.35Y-97.2
|
||||
X166.4Y-107.8
|
||||
X166.9Y-116.1
|
||||
X166.9Y-120.1
|
||||
X167.45Y-128.15
|
||||
X167.85Y-81.3
|
||||
X167.85Y-120.2
|
||||
X168.3Y-105.55
|
||||
X168.45Y-101.65
|
||||
X168.5Y-79.65
|
||||
X168.5Y-104.55
|
||||
X168.7Y-110.95
|
||||
X168.8Y-110.2
|
||||
X169.0Y-105.75
|
||||
X169.6Y-116.55
|
||||
X169.9Y-105.75
|
||||
X170.0Y-122.5
|
||||
X170.3Y-111.8
|
||||
X170.6Y-108.6
|
||||
X170.7Y-96.5
|
||||
X171.0Y-105.0
|
||||
X171.15Y-122.15
|
||||
X171.5Y-95.6
|
||||
X171.8Y-85.9
|
||||
X172.95Y-73.9
|
||||
X173.2Y-122.3
|
||||
X173.85Y-107.9
|
||||
X174.05Y-79.25
|
||||
X174.1Y-120.2
|
||||
X174.3Y-103.45
|
||||
X174.45Y-125.0
|
||||
X174.85Y-129.45
|
||||
X175.2Y-122.55
|
||||
X176.2Y-72.3
|
||||
X176.7Y-91.2
|
||||
X177.8Y-137.35
|
||||
X177.925Y-113.85
|
||||
X180.8Y-74.1
|
||||
T2
|
||||
X161.475Y-107.525
|
||||
X161.475Y-108.375
|
||||
X161.475Y-109.225
|
||||
X162.325Y-107.525
|
||||
X162.325Y-108.375
|
||||
X162.325Y-109.225
|
||||
X163.175Y-107.525
|
||||
X163.175Y-108.375
|
||||
X163.175Y-109.225
|
||||
T4
|
||||
X129.59Y-81.0
|
||||
X129.59Y-83.8
|
||||
X129.62Y-78.2
|
||||
X129.62Y-86.6
|
||||
X129.69Y-89.4
|
||||
X129.69Y-92.2
|
||||
X129.69Y-95.0
|
||||
X129.69Y-97.8
|
||||
X129.69Y-100.6
|
||||
X129.69Y-103.4
|
||||
X129.69Y-106.2
|
||||
X129.69Y-109.0
|
||||
X129.69Y-111.8
|
||||
X129.69Y-114.6
|
||||
X129.69Y-117.4
|
||||
X129.69Y-120.2
|
||||
X129.69Y-123.0
|
||||
X129.69Y-125.8
|
||||
X132.13Y-81.0
|
||||
X132.13Y-83.8
|
||||
X132.16Y-78.2
|
||||
X132.16Y-86.6
|
||||
X132.23Y-89.4
|
||||
X132.23Y-92.2
|
||||
X132.23Y-95.0
|
||||
X132.23Y-97.8
|
||||
X132.23Y-100.6
|
||||
X132.23Y-103.4
|
||||
X132.23Y-106.2
|
||||
X132.23Y-109.0
|
||||
X132.23Y-111.8
|
||||
X132.23Y-114.6
|
||||
X132.23Y-117.4
|
||||
X132.23Y-120.2
|
||||
X132.23Y-123.0
|
||||
X132.23Y-125.8
|
||||
X134.67Y-81.0
|
||||
X134.67Y-83.8
|
||||
X134.7Y-78.2
|
||||
X134.7Y-86.6
|
||||
X134.77Y-89.4
|
||||
X134.77Y-92.2
|
||||
X134.77Y-95.0
|
||||
X134.77Y-97.8
|
||||
X134.77Y-100.6
|
||||
X134.77Y-103.4
|
||||
X134.77Y-106.2
|
||||
X134.77Y-109.0
|
||||
X134.77Y-111.8
|
||||
X134.77Y-114.6
|
||||
X134.77Y-117.4
|
||||
X134.77Y-120.2
|
||||
X134.77Y-123.0
|
||||
X134.77Y-125.8
|
||||
X137.21Y-81.0
|
||||
X137.21Y-83.8
|
||||
X137.24Y-78.2
|
||||
X137.24Y-86.6
|
||||
X137.31Y-89.4
|
||||
X137.31Y-92.2
|
||||
X137.31Y-95.0
|
||||
X137.31Y-97.8
|
||||
X137.31Y-100.6
|
||||
X137.31Y-103.4
|
||||
X137.31Y-106.2
|
||||
X137.31Y-109.0
|
||||
X137.31Y-111.8
|
||||
X137.31Y-114.6
|
||||
X137.31Y-117.4
|
||||
X137.31Y-120.2
|
||||
X137.31Y-123.0
|
||||
X137.31Y-125.8
|
||||
X152.475Y-132.15
|
||||
X152.475Y-134.69
|
||||
X152.475Y-137.23
|
||||
X155.275Y-132.15
|
||||
X155.275Y-134.69
|
||||
X155.275Y-137.23
|
||||
X158.075Y-132.15
|
||||
X158.075Y-134.69
|
||||
X158.075Y-137.23
|
||||
X160.875Y-132.15
|
||||
X160.875Y-134.69
|
||||
X160.875Y-137.23
|
||||
X163.675Y-132.15
|
||||
X163.675Y-134.69
|
||||
X163.675Y-137.23
|
||||
X166.525Y-132.15
|
||||
X166.525Y-134.69
|
||||
X166.525Y-137.23
|
||||
X177.76Y-132.225
|
||||
X180.3Y-78.94
|
||||
X180.3Y-81.48
|
||||
X180.3Y-84.02
|
||||
X180.3Y-86.56
|
||||
X180.3Y-89.1
|
||||
X180.3Y-92.75
|
||||
X180.3Y-95.29
|
||||
X180.3Y-97.83
|
||||
X180.3Y-100.37
|
||||
X180.3Y-102.91
|
||||
X180.3Y-105.45
|
||||
X180.3Y-107.99
|
||||
X180.3Y-110.53
|
||||
X180.3Y-113.07
|
||||
X180.3Y-115.61
|
||||
X180.3Y-118.15
|
||||
X180.3Y-120.69
|
||||
X180.3Y-123.23
|
||||
X180.3Y-125.77
|
||||
X180.3Y-128.31
|
||||
X180.3Y-132.225
|
||||
T5
|
||||
X140.4Y-72.8
|
||||
X145.4Y-72.8
|
||||
T3
|
||||
G00X161.48Y-71.125
|
||||
M15
|
||||
G01X161.48Y-70.325
|
||||
M16
|
||||
G05
|
||||
G00X161.48Y-75.475
|
||||
M15
|
||||
G01X161.48Y-74.375
|
||||
M16
|
||||
G05
|
||||
G00X170.12Y-71.125
|
||||
M15
|
||||
G01X170.12Y-70.325
|
||||
M16
|
||||
G05
|
||||
G00X170.12Y-75.475
|
||||
M15
|
||||
G01X170.12Y-74.375
|
||||
M16
|
||||
G05
|
||||
M30
|
||||
@@ -0,0 +1,6 @@
|
||||
### Footprint positions - created on 2026-01-13T21:49:38+0200 ###
|
||||
### Printed by KiCad version 9.0.7
|
||||
## Unit = mm, Angle = deg.
|
||||
## Side : bottom
|
||||
# Ref Val Package PosX PosY Rot Side
|
||||
## End
|
||||
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"Header": {
|
||||
"GenerationSoftware": {
|
||||
"Vendor": "KiCad",
|
||||
"Application": "Pcbnew",
|
||||
"Version": "9.0.7"
|
||||
},
|
||||
"CreationDate": "2026-01-13T21:49:28+02:00"
|
||||
},
|
||||
"GeneralSpecs": {
|
||||
"ProjectId": {
|
||||
"Name": "Servo2350",
|
||||
"GUID": "53657276-6f32-4333-9530-2e6b69636164",
|
||||
"Revision": "rev?"
|
||||
},
|
||||
"Size": {
|
||||
"X": 55.05,
|
||||
"Y": 70.05
|
||||
},
|
||||
"LayerNumber": 4,
|
||||
"BoardThickness": 1.6,
|
||||
"Finish": "None"
|
||||
},
|
||||
"DesignRules": [
|
||||
{
|
||||
"Layers": "Outer",
|
||||
"PadToPad": 0.1,
|
||||
"PadToTrack": 0.1,
|
||||
"TrackToTrack": 0.2,
|
||||
"MinLineWidth": 0.2,
|
||||
"TrackToRegion": 0.5,
|
||||
"RegionToRegion": 0.5
|
||||
},
|
||||
{
|
||||
"Layers": "Inner",
|
||||
"PadToPad": 0.1,
|
||||
"PadToTrack": 0.1,
|
||||
"TrackToTrack": 0.2,
|
||||
"TrackToRegion": 0.5,
|
||||
"RegionToRegion": 0.5
|
||||
}
|
||||
],
|
||||
"FilesAttributes": [
|
||||
{
|
||||
"Path": "Servo2350-F_Cu.gbr",
|
||||
"FileFunction": "Copper,L1,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-In1_Cu.gbr",
|
||||
"FileFunction": "Copper,L2,Inr",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-In2_Cu.gbr",
|
||||
"FileFunction": "Copper,L3,Inr",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-B_Cu.gbr",
|
||||
"FileFunction": "Copper,L4,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-F_Paste.gbr",
|
||||
"FileFunction": "SolderPaste,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-B_Paste.gbr",
|
||||
"FileFunction": "SolderPaste,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-F_Silkscreen.gbr",
|
||||
"FileFunction": "Legend,Top",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-B_Silkscreen.gbr",
|
||||
"FileFunction": "Legend,Bot",
|
||||
"FilePolarity": "Positive"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-F_Mask.gbr",
|
||||
"FileFunction": "SolderMask,Top",
|
||||
"FilePolarity": "Negative"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-B_Mask.gbr",
|
||||
"FileFunction": "SolderMask,Bot",
|
||||
"FilePolarity": "Negative"
|
||||
},
|
||||
{
|
||||
"Path": "Servo2350-Edge_Cuts.gbr",
|
||||
"FileFunction": "Profile",
|
||||
"FilePolarity": "Positive"
|
||||
}
|
||||
],
|
||||
"MaterialStackup": [
|
||||
{
|
||||
"Type": "Legend",
|
||||
"Name": "Top Silk Screen"
|
||||
},
|
||||
{
|
||||
"Type": "SolderPaste",
|
||||
"Name": "Top Solder Paste"
|
||||
},
|
||||
{
|
||||
"Type": "SolderMask",
|
||||
"Thickness": 0.01,
|
||||
"Name": "Top Solder Mask"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Thickness": 0.035,
|
||||
"Name": "F.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "Dielectric",
|
||||
"Thickness": 0.1,
|
||||
"Material": "FR4",
|
||||
"Name": "F.Cu/In1.Cu",
|
||||
"Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Thickness": 0.035,
|
||||
"Name": "In1.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "Dielectric",
|
||||
"Thickness": 1.24,
|
||||
"Material": "FR4",
|
||||
"Name": "In1.Cu/In2.Cu",
|
||||
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Thickness": 0.035,
|
||||
"Name": "In2.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "Dielectric",
|
||||
"Thickness": 0.1,
|
||||
"Material": "FR4",
|
||||
"Name": "In2.Cu/B.Cu",
|
||||
"Notes": "Type: dielectric layer 3 (from In2.Cu to B.Cu)"
|
||||
},
|
||||
{
|
||||
"Type": "Copper",
|
||||
"Thickness": 0.035,
|
||||
"Name": "B.Cu"
|
||||
},
|
||||
{
|
||||
"Type": "SolderMask",
|
||||
"Thickness": 0.01,
|
||||
"Name": "Bottom Solder Mask"
|
||||
},
|
||||
{
|
||||
"Type": "SolderPaste",
|
||||
"Name": "Bottom Solder Paste"
|
||||
},
|
||||
{
|
||||
"Type": "Legend",
|
||||
"Name": "Bottom Silk Screen"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
### Footprint positions - created on 2026-01-13T21:49:38+0200 ###
|
||||
### Printed by KiCad version 9.0.7
|
||||
## Unit = mm, Angle = deg.
|
||||
## Side : top
|
||||
# Ref Val Package PosX PosY Rot Side
|
||||
1 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.2400 -78.2000 -90.0000 top
|
||||
2 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.2100 -81.0000 -90.0000 top
|
||||
3 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.2100 -83.8000 -90.0000 top
|
||||
4 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.2400 -86.6000 -90.0000 top
|
||||
5 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -89.4000 -90.0000 top
|
||||
6 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -92.2000 -90.0000 top
|
||||
7 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -95.0000 -90.0000 top
|
||||
8 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -97.8000 -90.0000 top
|
||||
9 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -100.6000 -90.0000 top
|
||||
10 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -103.4000 -90.0000 top
|
||||
11 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -106.2000 -90.0000 top
|
||||
12 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -109.0000 -90.0000 top
|
||||
13 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -111.8000 -90.0000 top
|
||||
14 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -114.6000 -90.0000 top
|
||||
15 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -117.4000 -90.0000 top
|
||||
16 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -120.2000 -90.0000 top
|
||||
17 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -123.0000 -90.0000 top
|
||||
18 Conn_01x04_Pin PinHeader_1x04_P2.54mm_Vertical 137.3100 -125.8000 -90.0000 top
|
||||
BOOT SKRPABE010 SW_SKRPABE010 156.8000 -71.3350 0.0000 top
|
||||
C1 100nF C_0402_1005Metric 158.1500 -98.7000 90.0000 top
|
||||
C2 100nF C_0402_1005Metric 152.6250 -111.2000 180.0000 top
|
||||
C3 100nF C_0402_1005Metric 152.6000 -106.1500 180.0000 top
|
||||
C4 100nF C_0402_1005Metric 172.1500 -104.8000 0.0000 top
|
||||
C5 100nF C_0402_1005Metric 156.4500 -98.7000 90.0000 top
|
||||
C6 100nF C_0402_1005Metric 156.1500 -118.2000 -90.0000 top
|
||||
C7 100nF C_0402_1005Metric 159.8500 -98.7000 90.0000 top
|
||||
C8 100nF C_0402_1005Metric 172.1500 -112.2000 0.0000 top
|
||||
C9 100nF C_0402_1005Metric 172.1500 -108.6000 0.0000 top
|
||||
C10 100nF C_0402_1005Metric 167.8500 -118.7000 -90.0000 top
|
||||
C11 4.7uF C_0402_1005Metric 172.1500 -106.7000 0.0000 top
|
||||
C12 100nF C_0402_1005Metric 152.6000 -108.6750 180.0000 top
|
||||
C13 4.7uF C_0402_1005Metric 173.1000 -100.5000 0.0000 top
|
||||
C14 4.7uF C_0402_1005Metric 166.7500 -98.7000 90.0000 top
|
||||
C15 4.7uF C_0402_1005Metric 164.9500 -98.7000 90.0000 top
|
||||
C16 15pF C_0402_1005Metric 159.8750 -118.7500 -90.0000 top
|
||||
C17 15pF C_0402_1005Metric 162.9750 -122.2500 180.0000 top
|
||||
C18 100nF C_0402_1005Metric 154.0500 -99.2000 180.0000 top
|
||||
C19 1uF C_0402_1005Metric 161.3450 -81.7850 -90.0000 top
|
||||
C20 1uF C_0402_1005Metric 168.5450 -81.7850 -90.0000 top
|
||||
C21 100nF C_0402_1005Metric 155.9750 -81.9750 0.0000 top
|
||||
C22 100nF C_0402_1005Metric 171.4500 -123.3000 0.0000 top
|
||||
C23 100nF C_0402_1005Metric 171.5500 -125.2000 180.0000 top
|
||||
C24 100nF C_0402_1005Metric 158.3000 -118.2000 -90.0000 top
|
||||
C25 100nF C_0402_1005Metric 172.1000 -103.0000 0.0000 top
|
||||
C26 220uF CAPAE1030X1080N_UWT1H221MNL1GS 142.3250 -132.8000 180.0000 top
|
||||
D1 Conn_01x03_Pin PinHeader_1x03_P2.54mm_Vertical 166.5250 -137.2300 180.0000 top
|
||||
D2 Conn_01x03_Pin PinHeader_1x03_P2.54mm_Vertical 163.6750 -137.2300 180.0000 top
|
||||
D3 Conn_01x03_Pin PinHeader_1x03_P2.54mm_Vertical 160.8750 -137.2300 180.0000 top
|
||||
D4 Conn_01x03_Pin PinHeader_1x03_P2.54mm_Vertical 158.0750 -137.2300 180.0000 top
|
||||
D5 Conn_01x03_Pin PinHeader_1x03_P2.54mm_Vertical 155.2750 -137.2300 180.0000 top
|
||||
D6 Conn_01x03_Pin PinHeader_1x03_P2.54mm_Vertical 152.4750 -137.2300 180.0000 top
|
||||
J1 Conn_01x15_Pin PinHeader_1x15_P2.54mm_Vertical 180.3000 -128.3100 180.0000 top
|
||||
J2 Conn_01x02_Pin PinSocket_1x02_P2.54mm_Vertical 180.3000 -132.2250 -90.0000 top
|
||||
J3 USB_C_OUT USB_C_Receptacle_G-Switch_GT-USB-7010ASV 165.8000 -71.8000 180.0000 top
|
||||
L1 3.3u L_0402_1005Metric 168.5500 -98.7000 -90.0000 top
|
||||
LED1 LED_Small LED_0402_1005Metric 155.7000 -124.3000 -90.0000 top
|
||||
LED2 LED_Small LED_0402_1005Metric 158.1000 -124.3000 -90.0000 top
|
||||
POWER1 691137710002 691137710002 142.9000 -72.8000 180.0000 top
|
||||
R1 33 R_0402_1005Metric 173.1000 -98.5000 180.0000 top
|
||||
R2 1k R_0402_1005Metric 165.7750 -118.6500 -90.0000 top
|
||||
R3 27 R_0402_1005Metric 161.5500 -98.7000 -90.0000 top
|
||||
R4 27 R_0402_1005Metric 163.2500 -98.6900 -90.0000 top
|
||||
R5 10k R_0402_1005Metric 151.6500 -98.7000 -90.0000 top
|
||||
R6 1k R_0402_1005Metric 149.4500 -99.2000 180.0000 top
|
||||
R7 10k R_0402_1005Metric 171.2535 -131.5900 0.0000 top
|
||||
R8 560 R_0402_1005Metric 155.7000 -121.5000 -90.0000 top
|
||||
R9 560 R_0402_1005Metric 158.1000 -121.5000 -90.0000 top
|
||||
R10 5.1k R_0402_1005Metric 168.4100 -78.7350 0.0000 top
|
||||
R11 5.1k R_0402_1005Metric 163.7000 -78.6350 180.0000 top
|
||||
R12 10k R_0402_1005Metric 172.0215 -94.6750 0.0000 top
|
||||
R13 10k R_0402_1005Metric 172.0215 -92.7750 0.0000 top
|
||||
RESET SKRPABE010 SW_SKRPABE010 171.9000 -135.5900 180.0000 top
|
||||
RN1 CAY16-181J4LF RESCAF80P320X160X60-8N 145.4250 -100.1000 0.0000 top
|
||||
RN2 CAY16-181J4LF RESCAF80P320X160X60-8N 145.4250 -105.7000 0.0000 top
|
||||
RN3 CAY16-181J4LF RESCAF80P320X160X60-8N 145.3675 -111.3000 0.0000 top
|
||||
RN4 CAY16-181J4LF RESCAF80P320X160X60-8N 145.2675 -117.0000 0.0000 top
|
||||
RN5 CAY16-181J4LF RESCAF80P320X160X60-8N 145.1925 -122.6000 0.0000 top
|
||||
SWD1 Conn_01x05_Pin PinHeader_1x05_P2.54mm_Vertical 180.3000 -78.9400 0.0000 top
|
||||
U1 RP2350B-QFN80 RP2350B_QFN-80_EP_10.573x10.573_Pitch0.4mm 162.3250 -108.3750 0.0000 top
|
||||
U2 W25Q16JVUXIQ_TR IC_W25Q16JVUXIQ_TR 152.1000 -101.6250 0.0000 top
|
||||
U3 NCP115ASN330T2G SOT95P275X110-5N 164.9000 -82.2350 0.0000 top
|
||||
U4 CD74HC4067SM96 SOP65P780X200-24N 152.1950 -87.4750 0.0000 top
|
||||
U5 ~ IC_ICM-45686 171.6500 -120.2000 0.0000 top
|
||||
Y1 ABM8-272-T3 XTAL_ABM8-272-T3 162.8750 -118.7500 0.0000 top
|
||||
## End
|
||||
Executable
+42538
File diff suppressed because it is too large
Load Diff
Executable
+762
@@ -0,0 +1,762 @@
|
||||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"apply_defaults_to_fp_barcodes": false,
|
||||
"apply_defaults_to_fp_dimensions": false,
|
||||
"apply_defaults_to_fp_fields": false,
|
||||
"apply_defaults_to_fp_shapes": false,
|
||||
"apply_defaults_to_fp_text": false,
|
||||
"board_outline_line_width": 0.05,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.05,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": true,
|
||||
"text_position": 0,
|
||||
"units_format": 0
|
||||
},
|
||||
"fab_line_width": 0.1,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.1,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 0.25,
|
||||
"height": 0.425,
|
||||
"width": 0.425
|
||||
},
|
||||
"silk_line_width": 0.1,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.1,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"border_display_style": 2,
|
||||
"border_hatch_pitch": 0.5,
|
||||
"corner_radius": 0.0,
|
||||
"corner_smoothing": 0,
|
||||
"fill_mode": 0,
|
||||
"hatch_gap": 1.5,
|
||||
"hatch_orientation": 0.0,
|
||||
"hatch_smoothing_level": 0,
|
||||
"hatch_smoothing_value": 0.1,
|
||||
"hatch_thickness": 1.0,
|
||||
"min_clearance": 0.5,
|
||||
"min_island_area": 10.0,
|
||||
"min_thickness": 0.25,
|
||||
"pad_connection": 1,
|
||||
"remove_islands": 0,
|
||||
"thermal_relief_gap": 0.5,
|
||||
"thermal_relief_spoke_width": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [
|
||||
{
|
||||
"gap": 0.0,
|
||||
"via_gap": 0.0,
|
||||
"width": 0.0
|
||||
}
|
||||
],
|
||||
"drc_exclusions": [
|
||||
[
|
||||
"lib_footprint_mismatch|133430000|78200000|8a40cc05-6103-4a4c-bf5f-5b55275bc31d|00000000-0000-0000-0000-000000000000",
|
||||
""
|
||||
]
|
||||
],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"creepage": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_filters_mismatch": "ignore",
|
||||
"footprint_symbol_field_mismatch": "warning",
|
||||
"footprint_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_to_hole": "warning",
|
||||
"holes_co_located": "warning",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"mirrored_text_on_front_layer": "ignore",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"missing_tuning_profile": "warning",
|
||||
"net_conflict": "warning",
|
||||
"nonmirrored_text_on_back_layer": "ignore",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "ignore",
|
||||
"silk_over_copper": "ignore",
|
||||
"silk_overlap": "ignore",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "ignore",
|
||||
"text_height": "ignore",
|
||||
"text_on_edge_cuts": "error",
|
||||
"text_thickness": "ignore",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_angle": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_not_centered_on_via": "ignore",
|
||||
"track_on_post_machined_layer": "error",
|
||||
"track_segment_length": "error",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"tuning_profile_track_geometries": "ignore",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_groove_width": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.2,
|
||||
"min_microvia_drill": 0.1,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.8,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.25,
|
||||
"min_track_width": 0.0,
|
||||
"min_via_annular_width": 0.1,
|
||||
"min_via_diameter": 0.45,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpthpad": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_onsmdpad": true,
|
||||
"td_ontrackend": false,
|
||||
"td_onvia": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [
|
||||
0.0,
|
||||
0.2,
|
||||
0.5,
|
||||
1.0,
|
||||
1.7
|
||||
],
|
||||
"tuning_pattern_settings": {
|
||||
"diff_pair_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 1.0
|
||||
},
|
||||
"diff_pair_skew_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"single_track_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
}
|
||||
},
|
||||
"via_dimensions": [
|
||||
{
|
||||
"diameter": 0.0,
|
||||
"drill": 0.0
|
||||
}
|
||||
],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"ipc2581": {
|
||||
"bom_rev": "",
|
||||
"dist": "",
|
||||
"distpn": "",
|
||||
"internal_id": "",
|
||||
"mfg": "",
|
||||
"mpn": "",
|
||||
"sch_revision": ""
|
||||
},
|
||||
"layer_pairs": [],
|
||||
"layer_presets": [],
|
||||
"viewports": []
|
||||
},
|
||||
"boards": [],
|
||||
"component_class_settings": {
|
||||
"assignments": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"sheet_component_classes": {
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"cvpcb": {
|
||||
"equivalence_files": []
|
||||
},
|
||||
"erc": {
|
||||
"erc_exclusions": [],
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"pin_map": [
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
],
|
||||
"rule_severities": {
|
||||
"bus_definition_conflict": "error",
|
||||
"bus_entry_needed": "error",
|
||||
"bus_to_bus_conflict": "error",
|
||||
"bus_to_net_conflict": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"field_name_whitespace": "warning",
|
||||
"footprint_filter": "ignore",
|
||||
"footprint_link_issues": "warning",
|
||||
"four_way_junction": "ignore",
|
||||
"global_label_dangling": "warning",
|
||||
"ground_pin_not_ground": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"isolated_pin_label": "warning",
|
||||
"label_dangling": "error",
|
||||
"label_multiple_wires": "warning",
|
||||
"lib_symbol_issues": "warning",
|
||||
"lib_symbol_mismatch": "warning",
|
||||
"missing_bidi_pin": "warning",
|
||||
"missing_input_pin": "warning",
|
||||
"missing_power_pin": "error",
|
||||
"missing_unit": "warning",
|
||||
"multiple_net_names": "warning",
|
||||
"net_not_bus_member": "warning",
|
||||
"no_connect_connected": "warning",
|
||||
"no_connect_dangling": "warning",
|
||||
"pin_not_connected": "error",
|
||||
"pin_not_driven": "error",
|
||||
"pin_to_pin": "warning",
|
||||
"power_pin_not_driven": "error",
|
||||
"same_local_global_label": "warning",
|
||||
"similar_label_and_power": "warning",
|
||||
"similar_labels": "warning",
|
||||
"similar_power": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"single_global_label": "ignore",
|
||||
"stacked_pin_name": "warning",
|
||||
"unannotated": "error",
|
||||
"unconnected_wire_endpoint": "warning",
|
||||
"undefined_netclass": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "Servo2350.kicad_pro",
|
||||
"version": 3
|
||||
},
|
||||
"net_settings": {
|
||||
"classes": [
|
||||
{
|
||||
"bus_width": 12,
|
||||
"clearance": 0.2,
|
||||
"diff_pair_gap": 0.25,
|
||||
"diff_pair_via_gap": 0.25,
|
||||
"diff_pair_width": 0.2,
|
||||
"line_style": 0,
|
||||
"microvia_diameter": 0.3,
|
||||
"microvia_drill": 0.1,
|
||||
"name": "Default",
|
||||
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||
"priority": 2147483647,
|
||||
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||
"track_width": 0.2,
|
||||
"tuning_profile": "",
|
||||
"via_diameter": 0.6,
|
||||
"via_drill": 0.3,
|
||||
"wire_width": 6
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"version": 5
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "output/",
|
||||
"pos_files": "output/",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"svg": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"annotation": {
|
||||
"method": 0,
|
||||
"sort_order": 0
|
||||
},
|
||||
"bom_export_filename": "${PROJECTNAME}.csv",
|
||||
"bom_fmt_presets": [],
|
||||
"bom_fmt_settings": {
|
||||
"field_delimiter": ",",
|
||||
"keep_line_breaks": false,
|
||||
"keep_tabs": false,
|
||||
"name": "CSV",
|
||||
"ref_delimiter": ",",
|
||||
"ref_range_delimiter": "",
|
||||
"string_delimiter": "\""
|
||||
},
|
||||
"bom_presets": [],
|
||||
"bom_settings": {
|
||||
"exclude_dnp": false,
|
||||
"fields_ordered": [
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Reference",
|
||||
"name": "Reference",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "${QUANTITY}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Value",
|
||||
"name": "Value",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "DNP",
|
||||
"name": "${DNP}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Exclude from BOM",
|
||||
"name": "${EXCLUDE_FROM_BOM}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Exclude from Board",
|
||||
"name": "${EXCLUDE_FROM_BOARD}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "MANUFACTURER",
|
||||
"name": "MANUFACTURER",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "MAXIMUM_PACKAGE_HEIGHT",
|
||||
"name": "MAXIMUM_PACKAGE_HEIGHT",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "PARTREV",
|
||||
"name": "PARTREV",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "SNAPEDA_PN",
|
||||
"name": "SNAPEDA_PN",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "STANDARD",
|
||||
"name": "STANDARD",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Sim.Pin",
|
||||
"name": "Sim.Pin",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "VERIFIER",
|
||||
"name": "VERIFIER",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "CREATOR",
|
||||
"name": "CREATOR",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Description",
|
||||
"name": "Description",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "#",
|
||||
"name": "${ITEM_NUMBER}",
|
||||
"show": false
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"include_excluded_from_bom": true,
|
||||
"name": "",
|
||||
"sort_asc": true,
|
||||
"sort_field": "Reference"
|
||||
},
|
||||
"bus_aliases": {},
|
||||
"connection_grid_size": 50.0,
|
||||
"drawing": {
|
||||
"dashed_lines_dash_length_ratio": 12.0,
|
||||
"dashed_lines_gap_length_ratio": 3.0,
|
||||
"default_line_thickness": 6.0,
|
||||
"default_text_size": 50.0,
|
||||
"field_names": [],
|
||||
"hop_over_size_choice": 0,
|
||||
"intersheets_ref_own_page": false,
|
||||
"intersheets_ref_prefix": "",
|
||||
"intersheets_ref_short": false,
|
||||
"intersheets_ref_show": false,
|
||||
"intersheets_ref_suffix": "",
|
||||
"junction_size_choice": 3,
|
||||
"label_size_ratio": 0.375,
|
||||
"operating_point_overlay_i_precision": 3,
|
||||
"operating_point_overlay_i_range": "~A",
|
||||
"operating_point_overlay_v_precision": 3,
|
||||
"operating_point_overlay_v_range": "~V",
|
||||
"overbar_offset_ratio": 1.23,
|
||||
"pin_symbol_size": 25.0,
|
||||
"text_offset_ratio": 0.15
|
||||
},
|
||||
"legacy_lib_dir": "",
|
||||
"legacy_lib_list": [],
|
||||
"meta": {
|
||||
"version": 1
|
||||
},
|
||||
"net_format_name": "",
|
||||
"page_layout_descr_file": "",
|
||||
"plot_directory": "Schematic/",
|
||||
"reuse_designators": true,
|
||||
"space_save_all_events": true,
|
||||
"spice_current_sheet_as_root": false,
|
||||
"spice_external_command": "spice \"%I\"",
|
||||
"spice_model_current_sheet_as_root": true,
|
||||
"spice_save_all_currents": false,
|
||||
"spice_save_all_dissipations": false,
|
||||
"spice_save_all_voltages": false,
|
||||
"subpart_first_id": 65,
|
||||
"subpart_id_separator": 0,
|
||||
"top_level_sheets": [
|
||||
{
|
||||
"filename": "Servo2350.kicad_sch",
|
||||
"name": "Servo2350",
|
||||
"uuid": "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
],
|
||||
"used_designators": "",
|
||||
"variants": []
|
||||
},
|
||||
"sheets": [
|
||||
[
|
||||
"f7b1a6c5-8ce5-4d2c-a65c-2d44b87e188c",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {},
|
||||
"tuning_profiles": {
|
||||
"meta": {
|
||||
"version": 0
|
||||
},
|
||||
"tuning_profiles_impedance_geometric": []
|
||||
}
|
||||
}
|
||||
Executable
+24681
File diff suppressed because it is too large
Load Diff
Executable
BIN
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
build/
|
||||
|
||||
# tmp
|
||||
reference/
|
||||
notes.md
|
||||
tmp/
|
||||
__pycache__/
|
||||
logs/
|
||||
|
||||
# doxygen
|
||||
doxygen/
|
||||
@@ -0,0 +1,10 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
cmake_minimum_required(VERSION 3.20.0)
|
||||
set(BOARD_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
||||
project(servo2350)
|
||||
|
||||
FILE(GLOB app_sources src/*.c)
|
||||
target_sources(app PRIVATE ${app_sources})
|
||||
@@ -0,0 +1,97 @@
|
||||
.. zephyr:code-sample:: blinky
|
||||
:name: Blinky
|
||||
:relevant-api: gpio_interface
|
||||
|
||||
Blink an LED forever using the GPIO API.
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The Blinky sample blinks an LED forever using the :ref:`GPIO API <gpio_api>`.
|
||||
|
||||
The source code shows how to:
|
||||
|
||||
#. Get a pin specification from the :ref:`devicetree <dt-guide>` as a
|
||||
:c:struct:`gpio_dt_spec`
|
||||
#. Configure the GPIO pin as an output
|
||||
#. Toggle the pin forever
|
||||
|
||||
See :zephyr:code-sample:`pwm-blinky` for a similar sample that uses the PWM API instead.
|
||||
|
||||
.. _blinky-sample-requirements:
|
||||
|
||||
Requirements
|
||||
************
|
||||
|
||||
Your board must:
|
||||
|
||||
#. Have an LED connected via a GPIO pin (these are called "User LEDs" on many of
|
||||
Zephyr's :ref:`boards`).
|
||||
#. Have the LED configured using the ``led0`` devicetree alias.
|
||||
|
||||
Building and Running
|
||||
********************
|
||||
|
||||
Build and flash Blinky as follows, changing ``reel_board`` for your board:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/basic/blinky
|
||||
:board: reel_board
|
||||
:goals: build flash
|
||||
:compact:
|
||||
|
||||
After flashing, the LED starts to blink and messages with the current LED state
|
||||
are printed on the console. If a runtime error occurs, the sample exits without
|
||||
printing to the console.
|
||||
|
||||
Build errors
|
||||
************
|
||||
|
||||
You will see a build error at the source code line defining the ``struct
|
||||
gpio_dt_spec led`` variable if you try to build Blinky for an unsupported
|
||||
board.
|
||||
|
||||
On GCC-based toolchains, the error looks like this:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
error: '__device_dts_ord_DT_N_ALIAS_led_P_gpios_IDX_0_PH_ORD' undeclared here (not in a function)
|
||||
|
||||
Adding board support
|
||||
********************
|
||||
|
||||
To add support for your board, add something like this to your devicetree:
|
||||
|
||||
.. code-block:: DTS
|
||||
|
||||
/ {
|
||||
aliases {
|
||||
led0 = &myled0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
myled0: led_0 {
|
||||
gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
The above sets your board's ``led0`` alias to use pin 13 on GPIO controller
|
||||
``gpio0``. The pin flags :c:macro:`GPIO_ACTIVE_LOW` mean the LED is on when
|
||||
the pin is set to its low state, and off when the pin is in its high state.
|
||||
|
||||
Tips:
|
||||
|
||||
- See :dtcompatible:`gpio-leds` for more information on defining GPIO-based LEDs
|
||||
in devicetree.
|
||||
|
||||
- If you're not sure what to do, check the devicetrees for supported boards which
|
||||
use the same SoC as your target. See :ref:`get-devicetree-outputs` for details.
|
||||
|
||||
- See :zephyr_file:`include/zephyr/dt-bindings/gpio/gpio.h` for the flags you can use
|
||||
in devicetree.
|
||||
|
||||
- If the LED is built in to your board hardware, the alias should be defined in
|
||||
your :ref:`BOARD.dts file <devicetree-in-out-files>`. Otherwise, you can
|
||||
define one in a :ref:`devicetree overlay <set-devicetree-overlays>`.
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
if BOARD_SERVO2350
|
||||
|
||||
menu "USB sample options"
|
||||
depends on USB_DEVICE_STACK_NEXT
|
||||
|
||||
config USBD_MANUFACTURER
|
||||
string "USB device sample manufacturer string"
|
||||
default "Zephyr Project"
|
||||
help
|
||||
USB device sample manufacturer string.
|
||||
|
||||
config USBD_PRODUCT
|
||||
string "USB device sample product string"
|
||||
default "USBD sample"
|
||||
help
|
||||
USB device sample product stringa.
|
||||
|
||||
config USBD_PID
|
||||
hex "USB device sample Product ID"
|
||||
default 0x0001
|
||||
help
|
||||
USB device sample Product ID.
|
||||
|
||||
config USBD_SELF_POWERED
|
||||
bool "USB device sample Self-powered attribute"
|
||||
default y
|
||||
help
|
||||
Set the Self-powered attribute in the sample configuration.
|
||||
|
||||
config USBD_REMOTE_WAKEUP
|
||||
bool "USB device sample Remote Wakeup attribute"
|
||||
help
|
||||
Set the Remote Wakeup attribute in the sample configuration.
|
||||
|
||||
config USBD_MAX_POWER
|
||||
int "USB device sample bMaxPower value"
|
||||
default 125
|
||||
range 0 250
|
||||
help
|
||||
bMaxPower value in the sample configuration in 2 mA units.
|
||||
|
||||
config USBD_20_EXTENSION_DESC
|
||||
bool "Use default USB 2.0 Extension Descriptor"
|
||||
depends on USBD_BOS_SUPPORT
|
||||
help
|
||||
Set bcdUSB value to 0201 and use default USB 2.0 Extension Descriptor.
|
||||
|
||||
endmenu
|
||||
|
||||
endif # BOARD_SERVO2350
|
||||
@@ -0,0 +1,4 @@
|
||||
|
||||
config BOARD_SERVO2350
|
||||
select SOC_RP2350B_HAZARD3 if BOARD_SERVO2350_RP2350B_HAZARD3
|
||||
select SOC_RP2350B_M33 if BOARD_SERVO2350_RP2350B_M33
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
board_runner_args(openocd --cmd-pre-init "source [find interface/cmsis-dap.cfg]")
|
||||
if(CONFIG_ARM)
|
||||
board_runner_args(openocd --cmd-pre-init "source [find target/rp2350.cfg]")
|
||||
else()
|
||||
board_runner_args(openocd --cmd-pre-init "source [find target/rp2350-riscv.cfg]")
|
||||
endif()
|
||||
|
||||
board_runner_args(probe-rs "--chip=RP235x")
|
||||
|
||||
# The adapter speed is expected to be set by interface configuration.
|
||||
# The Raspberry Pi's OpenOCD fork doesn't, so match their documentation at
|
||||
# https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html#debugging-with-swd
|
||||
board_runner_args(openocd --cmd-pre-init "set_adapter_speed_if_not_set 5000")
|
||||
|
||||
board_runner_args(uf2 "--board-id=RP2350")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/probe-rs.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)
|
||||
@@ -0,0 +1,6 @@
|
||||
board:
|
||||
name: servo2350
|
||||
full_name: Servo2350
|
||||
vendor: arm
|
||||
socs:
|
||||
- name: rp2350b
|
||||
@@ -0,0 +1,75 @@
|
||||
#include <zephyr/dt-bindings/pinctrl/rpi-pico-rp2350b-pinctrl.h>
|
||||
|
||||
&pinctrl {
|
||||
uart0_default: uart0_default {
|
||||
group1 {
|
||||
pinmux = <UART0_TX_P0>;
|
||||
};
|
||||
|
||||
group2 {
|
||||
pinmux = <UART0_RX_P1>;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
uart1_default: uart1_default {
|
||||
// These are the same pins as SPI
|
||||
group1 {
|
||||
pinmux = <UART1_TX_P26>;
|
||||
};
|
||||
|
||||
group2 {
|
||||
pinmux = <UART1_RX_P27>;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
i2c0_default: i2c0_default {
|
||||
group1 {
|
||||
pinmux = <I2C0_SDA_P36>, <I2C0_SCL_P37>;
|
||||
input-enable;
|
||||
input-schmitt-enable;
|
||||
};
|
||||
};
|
||||
|
||||
spi0_default: spi0_default {
|
||||
group1 {
|
||||
pinmux = <SPI0_CSN_P17>, <SPI0_SCK_P18>, <SPI0_TX_P19>;
|
||||
};
|
||||
|
||||
group2 {
|
||||
pinmux = <SPI0_RX_P16>;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
|
||||
pwm_default: pwm_default {
|
||||
group1 {
|
||||
pinmux = <PWM_0A_P0>,
|
||||
<PWM_0B_P1>,
|
||||
<PWM_1A_P2>,
|
||||
<PWM_1B_P3>,
|
||||
<PWM_2A_P4>,
|
||||
<PWM_2B_P5>,
|
||||
<PWM_3A_P6>,
|
||||
<PWM_3B_P7>,
|
||||
<PWM_4A_P8>,
|
||||
<PWM_4B_P9>,
|
||||
<PWM_5A_P10>,
|
||||
<PWM_5B_P11>,
|
||||
<PWM_6A_P12>,
|
||||
<PWM_6B_P13>,
|
||||
<PWM_7A_P14>,
|
||||
<PWM_7B_P15>,
|
||||
<PWM_8A_P32>,
|
||||
<PWM_8B_P33>;
|
||||
};
|
||||
};
|
||||
|
||||
adc_default: adc_default {
|
||||
group1 {
|
||||
pinmux = <ADC_CH0_P40>, <ADC_CH1_P41>, <ADC_CH2_P42>, <ADC_CH3_P43>;
|
||||
input-enable;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,406 @@
|
||||
#include <freq.h>
|
||||
|
||||
#include <zephyr/dt-bindings/i2c/i2c.h>
|
||||
#include <zephyr/dt-bindings/pwm/pwm.h>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
#include "servo2350-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,console = &cdc_acm_uart0;
|
||||
zephyr,shell-uart = &cdc_acm_uart0;
|
||||
zephyr,code-partition = &code_partition;
|
||||
};
|
||||
|
||||
zephyr,user {
|
||||
io-channels = <&adc 0>, /* ADC channel 1 (adc2) - connected to mux */
|
||||
<&adc 1>, /* ADC channel 0 (adc1) - direct channel 16 */
|
||||
<&adc 2>; /* ADC channel 2 (adc3) - direct channel 17 */
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led0: led_0 {
|
||||
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
|
||||
label = "LED0";
|
||||
};
|
||||
led1: led_1 {
|
||||
gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
|
||||
label = "LED1";
|
||||
};
|
||||
};
|
||||
|
||||
imu_int1_pin {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
imu_int1: imu_int1 {
|
||||
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
|
||||
label = "IMU_INT1";
|
||||
};
|
||||
};
|
||||
|
||||
digital_inputs {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
digital1: digital_1 {
|
||||
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
|
||||
label = "DIGITAL_1";
|
||||
};
|
||||
digital2: digital_2 {
|
||||
gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
|
||||
label = "DIGITAL_2";
|
||||
};
|
||||
digital3: digital_3 {
|
||||
gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
|
||||
label = "DIGITAL_3";
|
||||
};
|
||||
digital4: digital_4 {
|
||||
gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
|
||||
label = "DIGITAL_4";
|
||||
};
|
||||
digital5: digital_5 {
|
||||
gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
|
||||
label = "DIGITAL_5";
|
||||
};
|
||||
digital6: digital_6 {
|
||||
gpios = <&gpio0 21 GPIO_ACTIVE_HIGH>;
|
||||
label = "DIGITAL_6";
|
||||
};
|
||||
};
|
||||
|
||||
digital_outputs {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
leg0_enable: leg0_enable {
|
||||
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
|
||||
label = "LEG0_ENABLE";
|
||||
};
|
||||
leg1_enable: leg1_enable {
|
||||
gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
|
||||
label = "LEG1_ENABLE";
|
||||
};
|
||||
leg2_enable: leg2_enable {
|
||||
gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
|
||||
label = "LEG2_ENABLE";
|
||||
};
|
||||
leg3_enable: leg3_enable {
|
||||
gpios = <&gpio0_hi 11 GPIO_ACTIVE_HIGH>;
|
||||
label = "LEG3_ENABLE";
|
||||
};
|
||||
leg4_enable: leg4_enable {
|
||||
gpios = <&gpio0_hi 12 GPIO_ACTIVE_HIGH>;
|
||||
label = "LEG4_ENABLE";
|
||||
};
|
||||
leg5_enable: leg5_enable {
|
||||
gpios = <&gpio0_hi 13 GPIO_ACTIVE_HIGH>;
|
||||
label = "LEG5_ENABLE";
|
||||
};
|
||||
};
|
||||
|
||||
pwm_servos {
|
||||
compatible = "pwm-leds";
|
||||
|
||||
servo1: servo_1 {
|
||||
pwms = <&pwm 0 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_1";
|
||||
};
|
||||
servo2: servo_2 {
|
||||
pwms = <&pwm 1 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_2";
|
||||
};
|
||||
servo3: servo_3 {
|
||||
pwms = <&pwm 2 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_3";
|
||||
};
|
||||
servo4: servo_4 {
|
||||
pwms = <&pwm 3 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_4";
|
||||
};
|
||||
servo5: servo_5 {
|
||||
pwms = <&pwm 4 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_5";
|
||||
};
|
||||
servo6: servo_6 {
|
||||
pwms = <&pwm 5 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_6";
|
||||
};
|
||||
servo7: servo_7 {
|
||||
pwms = <&pwm 6 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_7";
|
||||
};
|
||||
servo8: servo_8 {
|
||||
pwms = <&pwm 7 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_8";
|
||||
};
|
||||
servo9: servo_9 {
|
||||
pwms = <&pwm 8 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_9";
|
||||
};
|
||||
servo10: servo_10 {
|
||||
pwms = <&pwm 9 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_10";
|
||||
};
|
||||
servo11: servo_11 {
|
||||
pwms = <&pwm 10 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_11";
|
||||
};
|
||||
servo12: servo_12 {
|
||||
pwms = <&pwm 11 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_12";
|
||||
};
|
||||
servo13: servo_13 {
|
||||
pwms = <&pwm 12 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_13";
|
||||
};
|
||||
servo14: servo_14 {
|
||||
pwms = <&pwm 13 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_14";
|
||||
};
|
||||
servo15: servo_15 {
|
||||
pwms = <&pwm 14 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_15";
|
||||
};
|
||||
servo16: servo_16 {
|
||||
pwms = <&pwm 15 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_16";
|
||||
};
|
||||
servo17: servo_17 {
|
||||
pwms = <&pwm 16 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_17";
|
||||
};
|
||||
servo18: servo_18 {
|
||||
pwms = <&pwm 17 PWM_USEC(20000) PWM_POLARITY_NORMAL>;
|
||||
label = "SERVO_18";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
aliases {
|
||||
watchdog0 = &wdt0;
|
||||
led0 = &led0;
|
||||
led1 = &led1;
|
||||
imu = &icm45686;
|
||||
imu-int1 = &imu_int1;
|
||||
digital1 = &digital1;
|
||||
digital2 = &digital2;
|
||||
digital3 = &digital3;
|
||||
digital4 = &digital4;
|
||||
digital5 = &digital5;
|
||||
digital6 = &digital6;
|
||||
leg0-enable = &leg0_enable;
|
||||
leg1-enable = &leg1_enable;
|
||||
leg2-enable = &leg2_enable;
|
||||
leg3-enable = &leg3_enable;
|
||||
leg4-enable = &leg4_enable;
|
||||
leg5-enable = &leg5_enable;
|
||||
servo1 = &servo1;
|
||||
servo2 = &servo2;
|
||||
servo3 = &servo3;
|
||||
servo4 = &servo4;
|
||||
servo5 = &servo5;
|
||||
servo6 = &servo6;
|
||||
servo7 = &servo7;
|
||||
servo8 = &servo8;
|
||||
servo9 = &servo9;
|
||||
servo10 = &servo10;
|
||||
servo11 = &servo11;
|
||||
servo12 = &servo12;
|
||||
servo13 = &servo13;
|
||||
servo14 = &servo14;
|
||||
servo15 = &servo15;
|
||||
servo16 = &servo16;
|
||||
servo17 = &servo17;
|
||||
servo18 = &servo18;
|
||||
adc-mux = &adc1;
|
||||
adc0 = &adc1;
|
||||
adc2 = &adc2;
|
||||
adc3 = &adc3;
|
||||
uart0 = &uart0;
|
||||
uart-bridge = &uart1;
|
||||
};
|
||||
|
||||
pico_header: connector {
|
||||
compatible = "raspberrypi,pico-header";
|
||||
#gpio-cells = <2>;
|
||||
gpio-map-mask = <0xffffffff 0xffffffc0>;
|
||||
gpio-map-pass-thru = <0 0x3f>;
|
||||
gpio-map = <0 0 &gpio0 0 0>, /* GP0 */
|
||||
<1 0 &gpio0 1 0>, /* GP1 */
|
||||
<2 0 &gpio0 2 0>, /* GP2 */
|
||||
<3 0 &gpio0 3 0>, /* GP3 */
|
||||
<4 0 &gpio0 4 0>, /* GP4 */
|
||||
<5 0 &gpio0 5 0>, /* GP5 */
|
||||
<6 0 &gpio0 6 0>, /* GP6 */
|
||||
<7 0 &gpio0 7 0>, /* GP7 */
|
||||
<8 0 &gpio0 8 0>, /* GP8 */
|
||||
<9 0 &gpio0 9 0>, /* GP9 */
|
||||
<10 0 &gpio0 10 0>, /* GP10 */
|
||||
<11 0 &gpio0 11 0>, /* GP11 */
|
||||
<12 0 &gpio0 12 0>, /* GP12 */
|
||||
<13 0 &gpio0 13 0>, /* GP13 */
|
||||
<14 0 &gpio0 14 0>, /* GP14 */
|
||||
<15 0 &gpio0 15 0>, /* GP15 */
|
||||
<16 0 &gpio0 16 0>, /* GP16 */
|
||||
<17 0 &gpio0 17 0>, /* GP17 */
|
||||
<18 0 &gpio0 18 0>, /* GP18 */
|
||||
<19 0 &gpio0 19 0>, /* GP19 */
|
||||
<20 0 &gpio0 20 0>, /* GP20 */
|
||||
<21 0 &gpio0 21 0>, /* GP21 */
|
||||
<22 0 &gpio0 22 0>, /* GP22 */
|
||||
<26 0 &gpio0 26 0>, /* GP26 */
|
||||
<27 0 &gpio0 27 0>, /* GP27 */
|
||||
<28 0 &gpio0 28 0>; /* GP28 */
|
||||
};
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
/* W25Q16JVUXIQ_TR: 16M-bit (2MB) NOR Flash */
|
||||
reg = <0x10000000 DT_SIZE_M(2)>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
/* Code partition: 256KB for application code (starts at beginning of flash) */
|
||||
code_partition: partition@0 {
|
||||
label = "code";
|
||||
reg = <0x00000000 DT_SIZE_K(256)>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
/* Settings partition: 64KB for settings data */
|
||||
settings_partition: partition@40000 {
|
||||
label = "settings";
|
||||
reg = <0x00040000 DT_SIZE_K(64)>;
|
||||
};
|
||||
|
||||
/* Data partition: 1728KB for data storage (largest partition) */
|
||||
data_partition: partition@50000 {
|
||||
label = "data";
|
||||
reg = <0x00050000 DT_SIZE_K(1728)>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart0_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
pinctrl-0 = <&uart1_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
zephyr_udc0: &usbd {
|
||||
status = "okay";
|
||||
cdc_acm_uart0: cdc_acm_uart0 {
|
||||
compatible = "zephyr,cdc-acm-uart";
|
||||
label = "Zephyr USB CDC-ACM";
|
||||
};
|
||||
};
|
||||
|
||||
gpio0_lo: &gpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio0_hi {
|
||||
status = "okay";
|
||||
|
||||
};
|
||||
|
||||
&spi0 {
|
||||
clock-frequency = <DT_FREQ_M(8)>;
|
||||
pinctrl-0 = <&spi0_default>;
|
||||
pinctrl-names = "default";
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-0 = <&i2c0_default>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
clock-frequency = <I2C_BITRATE_FAST>;
|
||||
|
||||
icm45686: icm45686@68 {
|
||||
compatible = "invensense,icm42688";
|
||||
reg = <0x68>;
|
||||
status = "okay";
|
||||
|
||||
int1-gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
|
||||
int2-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
|
||||
|
||||
accel-pwr-mode = <3>;
|
||||
accel-ord = <9>;
|
||||
accel-fs = <16>;
|
||||
accel-lpf = <0>;
|
||||
|
||||
gyro-pwr-mode = <0>; /* turn off */
|
||||
gyro-ord = <9>;
|
||||
gyro-fs = <2000>;
|
||||
};
|
||||
};
|
||||
|
||||
adc0: &adc {
|
||||
pinctrl-0 = <&adc_default>;
|
||||
pinctrl-names = "default";
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc1: channel@0 {
|
||||
reg = <0>;
|
||||
zephyr,gain = "ADC_GAIN_1";
|
||||
zephyr,reference = "ADC_REF_INTERNAL";
|
||||
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
|
||||
zephyr,resolution = <12>;
|
||||
};
|
||||
|
||||
adc2: channel@1 {
|
||||
reg = <1>;
|
||||
zephyr,gain = "ADC_GAIN_1";
|
||||
zephyr,reference = "ADC_REF_INTERNAL";
|
||||
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
|
||||
zephyr,resolution = <12>;
|
||||
};
|
||||
|
||||
adc3: channel@2 {
|
||||
reg = <2>;
|
||||
zephyr,gain = "ADC_GAIN_1";
|
||||
zephyr,reference = "ADC_REF_INTERNAL";
|
||||
zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;
|
||||
zephyr,resolution = <12>;
|
||||
};
|
||||
};
|
||||
|
||||
&pwm {
|
||||
status = "okay";
|
||||
pinctrl-0 = <&pwm_default>;
|
||||
pinctrl-names = "default";
|
||||
divider-int-0 = <64>;
|
||||
};
|
||||
|
||||
&timer0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
pico_spi: &spi0 {};
|
||||
|
||||
pico_i2c0: &i2c0 {};
|
||||
|
||||
pico_i2c1: &i2c1 {};
|
||||
|
||||
pico_serial: &uart0 {};
|
||||
|
||||
zephyr_i2c: &i2c0 {};
|
||||
|
||||
imu: &icm45686 {};
|
||||
@@ -0,0 +1,12 @@
|
||||
/dts-v1/;
|
||||
|
||||
/* The build system assumes that there's a cpucluster-specific file.
|
||||
*
|
||||
* This file provides composition of the device tree:
|
||||
* 1. The common features of the SoC
|
||||
* 2. Core-specific configuration.
|
||||
* 3. Board-specific configuration.
|
||||
*/
|
||||
#include <raspberrypi/rpi_pico/rp2350b.dtsi>
|
||||
#include <riscv/raspberrypi/hazard3.dtsi>
|
||||
#include "servo2350.dtsi"
|
||||
@@ -0,0 +1,20 @@
|
||||
identifier: servo2350/rp2350b/hazard3
|
||||
name: Servo2350 (Hazard3)
|
||||
type: mcu
|
||||
arch: riscv
|
||||
flash: 16384
|
||||
ram: 8192
|
||||
toolchain:
|
||||
- zephyr
|
||||
supported:
|
||||
- adc
|
||||
- clock
|
||||
- counter
|
||||
- dma
|
||||
- gpio
|
||||
- hwinfo
|
||||
- i2c
|
||||
- pwm
|
||||
- spi
|
||||
- usbd
|
||||
- uart
|
||||
@@ -0,0 +1,10 @@
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_RESET=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
@@ -0,0 +1,12 @@
|
||||
/dts-v1/;
|
||||
|
||||
/* The build system assumes that there's a cpucluster-specific file.
|
||||
*
|
||||
* This file provides composition of the device tree:
|
||||
* 1. The common features of the SoC
|
||||
* 2. Core-specific configuration.
|
||||
* 3. Board-specific configuration.
|
||||
*/
|
||||
#include <raspberrypi/rpi_pico/rp2350b.dtsi>
|
||||
#include <raspberrypi/rpi_pico/m33.dtsi>
|
||||
#include "servo2350.dtsi"
|
||||
@@ -0,0 +1,21 @@
|
||||
identifier: servo2350/rp2350b/m33
|
||||
name: Servo2350 (Cortex-M33)
|
||||
type: mcu
|
||||
arch: arm
|
||||
flash: 16384
|
||||
ram: 8192
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
supported:
|
||||
- adc
|
||||
- clock
|
||||
- counter
|
||||
- dma
|
||||
- gpio
|
||||
- hwinfo
|
||||
- i2c
|
||||
- pwm
|
||||
- spi
|
||||
- usbd
|
||||
- uart
|
||||
@@ -0,0 +1,10 @@
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
CONFIG_BUILD_OUTPUT_UF2=y
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_RESET=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_USE_DT_CODE_PARTITION=y
|
||||
@@ -0,0 +1,8 @@
|
||||
# Checking and set 'adapter speed'.
|
||||
# Set the adaptor speed, if unset, and given as an argument.
|
||||
proc set_adapter_speed_if_not_set { speed } {
|
||||
puts "checking adapter speed..."
|
||||
if { [catch {adapter speed} ret] } {
|
||||
adapter speed $speed
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
add_subdirectory(multiplexer)
|
||||
@@ -0,0 +1,5 @@
|
||||
menu "Servo2350 Device Drivers"
|
||||
|
||||
rsource "multiplexer/Kconfig"
|
||||
|
||||
endmenu
|
||||
@@ -0,0 +1 @@
|
||||
add_subdirectory_ifdef(CONFIG_CD74HC4067 cd74hc4067)
|
||||
@@ -0,0 +1,5 @@
|
||||
menu "Multiplexer Drivers"
|
||||
|
||||
rsource "cd74hc4067/Kconfig"
|
||||
|
||||
endmenu
|
||||
@@ -0,0 +1,5 @@
|
||||
if(CONFIG_CD74HC4067)
|
||||
target_sources(app PRIVATE ${CMAKE_CURRENT_LIST_DIR}/cd74hc4067.c)
|
||||
target_include_directories(app PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
menuconfig CD74HC4067
|
||||
bool "TI CD74HC4067 analog multiplexer"
|
||||
depends on GPIO
|
||||
help
|
||||
Enable support for the TI CD74HC4067 16-channel analog/digital
|
||||
multiplexer/demultiplexer controlled through GPIO selection pins.
|
||||
|
||||
if CD74HC4067
|
||||
|
||||
config CD74HC4067_INIT_PRIORITY
|
||||
int "Initialization priority"
|
||||
default 80
|
||||
help
|
||||
Device initialization priority for the CD74HC4067 driver. This should
|
||||
be higher (lower numeric value) than any clients that depend on the
|
||||
multiplexer being ready.
|
||||
|
||||
module = CD74HC4067
|
||||
module-str = cd74hc4067
|
||||
source "subsys/logging/Kconfig.template.log_config"
|
||||
|
||||
endif # CD74HC4067
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
|
||||
#define DT_DRV_COMPAT cd74hc4067
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdbool.h>
|
||||
#include <zephyr/device.h>
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/drivers/gpio.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/logging/log.h>
|
||||
#include <zephyr/sys/util.h>
|
||||
|
||||
#include "cd74hc4067.h"
|
||||
|
||||
LOG_MODULE_REGISTER(cd74hc4067, CONFIG_CD74HC4067_LOG_LEVEL);
|
||||
|
||||
#define CD74HC4067_CHANNEL_COUNT 16U
|
||||
#define CD74HC4067_SELECTION_PIN_COUNT 4U
|
||||
|
||||
struct cd74hc4067_config {
|
||||
struct gpio_dt_spec sel[CD74HC4067_SELECTION_PIN_COUNT];
|
||||
struct gpio_dt_spec enable;
|
||||
bool has_enable;
|
||||
};
|
||||
|
||||
struct cd74hc4067_data {
|
||||
struct k_mutex lock;
|
||||
uint8_t current_channel;
|
||||
bool enabled;
|
||||
};
|
||||
|
||||
static int cd74hc4067_sync_enable_state(const struct device *dev, bool enable)
|
||||
{
|
||||
const struct cd74hc4067_config *cfg = dev->config;
|
||||
struct cd74hc4067_data *data = dev->data;
|
||||
int ret = 0;
|
||||
|
||||
if (!cfg->has_enable) {
|
||||
if (!enable) {
|
||||
return -ENOTSUP;
|
||||
}
|
||||
|
||||
data->enabled = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!device_is_ready(cfg->enable.port)) {
|
||||
LOG_ERR("%s enable GPIO not ready", dev->name);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = gpio_pin_set_dt(&cfg->enable, enable ? 0 : 1);
|
||||
if (ret == 0) {
|
||||
data->enabled = enable;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int cd74hc4067_configure_gpios(const struct device *dev)
|
||||
{
|
||||
const struct cd74hc4067_config *cfg = dev->config;
|
||||
int ret;
|
||||
|
||||
for (size_t i = 0; i < ARRAY_SIZE(cfg->sel); i++) {
|
||||
const struct gpio_dt_spec *sel = &cfg->sel[i];
|
||||
|
||||
if (!device_is_ready(sel->port)) {
|
||||
LOG_ERR("%s sel%zu GPIO not ready", dev->name, i);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = gpio_pin_configure_dt(sel, GPIO_OUTPUT_INACTIVE);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("%s failed to configure sel%zu GPIO (%d)", dev->name, i, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
if (cfg->has_enable) {
|
||||
if (!device_is_ready(cfg->enable.port)) {
|
||||
LOG_ERR("%s enable GPIO not ready", dev->name);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = gpio_pin_configure_dt(&cfg->enable, GPIO_OUTPUT_HIGH);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("%s failed to configure enable GPIO (%d)", dev->name, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cd74hc4067_init(const struct device *dev)
|
||||
{
|
||||
const struct cd74hc4067_config *cfg = dev->config;
|
||||
struct cd74hc4067_data *data = dev->data;
|
||||
int ret;
|
||||
|
||||
k_mutex_init(&data->lock);
|
||||
data->current_channel = 0U;
|
||||
data->enabled = !cfg->has_enable;
|
||||
|
||||
ret = cd74hc4067_configure_gpios(dev);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Latch the default channel (0) */
|
||||
ret = cd74hc4067_select_channel(dev, 0U);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
LOG_INF("%s initialized (enable pin %s)", dev->name, cfg->has_enable ? "present" : "absent");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int cd74hc4067_select_channel(const struct device *dev, uint8_t channel)
|
||||
{
|
||||
const struct cd74hc4067_config *cfg = dev->config;
|
||||
struct cd74hc4067_data *data = dev->data;
|
||||
int ret = 0;
|
||||
|
||||
if (channel >= CD74HC4067_CHANNEL_COUNT) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = k_mutex_lock(&data->lock, K_FOREVER);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < ARRAY_SIZE(cfg->sel); i++) {
|
||||
ret = gpio_pin_set_dt(&cfg->sel[i], (channel >> i) & 0x1);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("%s failed to drive sel%zu GPIO (%d)", dev->name, i, ret);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
data->current_channel = channel;
|
||||
|
||||
out:
|
||||
k_mutex_unlock(&data->lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int cd74hc4067_enable(const struct device *dev)
|
||||
{
|
||||
struct cd74hc4067_data *data = dev->data;
|
||||
int ret;
|
||||
|
||||
ret = k_mutex_lock(&data->lock, K_FOREVER);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = cd74hc4067_sync_enable_state(dev, true);
|
||||
|
||||
k_mutex_unlock(&data->lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int cd74hc4067_disable(const struct device *dev)
|
||||
{
|
||||
struct cd74hc4067_data *data = dev->data;
|
||||
int ret;
|
||||
|
||||
ret = k_mutex_lock(&data->lock, K_FOREVER);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = cd74hc4067_sync_enable_state(dev, false);
|
||||
|
||||
k_mutex_unlock(&data->lock);
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint8_t cd74hc4067_get_current_channel(const struct device *dev)
|
||||
{
|
||||
struct cd74hc4067_data *data = dev->data;
|
||||
uint8_t channel;
|
||||
|
||||
k_mutex_lock(&data->lock, K_FOREVER);
|
||||
channel = data->current_channel;
|
||||
k_mutex_unlock(&data->lock);
|
||||
|
||||
return channel;
|
||||
}
|
||||
|
||||
#define CD74HC4067_DEFINE(inst) \
|
||||
BUILD_ASSERT(DT_PROP_LEN(DT_DRV_INST(inst), sel_gpios) == CD74HC4067_SELECTION_PIN_COUNT, \
|
||||
"cd74hc4067 requires exactly 4 selection GPIOs"); \
|
||||
static const struct cd74hc4067_config cd74hc4067_config_##inst = { \
|
||||
.sel = { \
|
||||
GPIO_DT_SPEC_GET_BY_IDX(DT_DRV_INST(inst), sel_gpios, 0), \
|
||||
GPIO_DT_SPEC_GET_BY_IDX(DT_DRV_INST(inst), sel_gpios, 1), \
|
||||
GPIO_DT_SPEC_GET_BY_IDX(DT_DRV_INST(inst), sel_gpios, 2), \
|
||||
GPIO_DT_SPEC_GET_BY_IDX(DT_DRV_INST(inst), sel_gpios, 3), \
|
||||
}, \
|
||||
.enable = COND_CODE_1(DT_INST_NODE_HAS_PROP(inst, enable_gpios), \
|
||||
(GPIO_DT_SPEC_GET(DT_DRV_INST(inst), enable_gpios)), \
|
||||
((struct gpio_dt_spec){0})), \
|
||||
.has_enable = DT_INST_NODE_HAS_PROP(inst, enable_gpios), \
|
||||
}; \
|
||||
static struct cd74hc4067_data cd74hc4067_data_##inst; \
|
||||
DEVICE_DT_INST_DEFINE(inst, cd74hc4067_init, NULL, &cd74hc4067_data_##inst, \
|
||||
&cd74hc4067_config_##inst, POST_KERNEL, \
|
||||
CONFIG_CD74HC4067_INIT_PRIORITY, NULL);
|
||||
|
||||
DT_INST_FOREACH_STATUS_OKAY(CD74HC4067_DEFINE)
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
#ifndef SERVO2350_DRIVERS_MULTIPLEXER_CD74HC4067_H_
|
||||
#define SERVO2350_DRIVERS_MULTIPLEXER_CD74HC4067_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include <zephyr/device.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Select one of the 16 multiplexed channels.
|
||||
*
|
||||
* @param dev CD74HC4067 device instance.
|
||||
* @param channel Channel number to route (0-15).
|
||||
*
|
||||
* @retval 0 If the channel was selected.
|
||||
* @retval -EINVAL If the channel number is out of range.
|
||||
* @retval -ENODEV If one of the selection GPIOs is not ready.
|
||||
* @retval other Negative errno value from the GPIO driver.
|
||||
*/
|
||||
int cd74hc4067_select_channel(const struct device *dev, uint8_t channel);
|
||||
|
||||
/**
|
||||
* @brief Enable the multiplexer output (drives the /EN pin low).
|
||||
*
|
||||
* If the instance does not provide an enable GPIO, this call is a no-op.
|
||||
*
|
||||
* @param dev CD74HC4067 device instance.
|
||||
*
|
||||
* @retval 0 On success.
|
||||
* @retval -ENODEV If the enable GPIO is not ready.
|
||||
* @retval negative errno on GPIO failures.
|
||||
*/
|
||||
int cd74hc4067_enable(const struct device *dev);
|
||||
|
||||
/**
|
||||
* @brief Disable the multiplexer output (drives the /EN pin high).
|
||||
*
|
||||
* @param dev CD74HC4067 device instance.
|
||||
*
|
||||
* @retval 0 On success.
|
||||
* @retval -ENOTSUP If the instance does not expose an enable GPIO.
|
||||
* @retval -ENODEV If the enable GPIO is not ready.
|
||||
* @retval negative errno on GPIO failures.
|
||||
*/
|
||||
int cd74hc4067_disable(const struct device *dev);
|
||||
|
||||
/**
|
||||
* @brief Return the last channel value written to the device.
|
||||
*
|
||||
* @param dev CD74HC4067 device instance.
|
||||
*
|
||||
* @return Channel number in the range [0, 15].
|
||||
*/
|
||||
uint8_t cd74hc4067_get_current_channel(const struct device *dev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* SERVO2350_DRIVERS_MULTIPLEXER_CD74HC4067_H_ */
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
description: |
|
||||
GPIO-controlled 16-channel analog/digital multiplexer/demultiplexer.
|
||||
|
||||
The CD74HC4067 has 4 selection pins (S0-S3) that select one of 16 channels.
|
||||
Supports optional common enable pin for power management.
|
||||
|
||||
compatible: "cd74hc4067"
|
||||
|
||||
include: base.yaml
|
||||
|
||||
properties:
|
||||
sel-gpios:
|
||||
type: phandle-array
|
||||
required: true
|
||||
description: |
|
||||
GPIO pins for channel selection (S0-S3).
|
||||
Array must contain exactly 4 GPIOs:
|
||||
- Index 0: S0 (LSB)
|
||||
- Index 1: S1
|
||||
- Index 2: S2
|
||||
- Index 3: S3 (MSB)
|
||||
|
||||
enable-gpios:
|
||||
type: phandle-array
|
||||
description: |
|
||||
Optional GPIO for common enable pin (E).
|
||||
When low, enables the multiplexer. When high, disables it.
|
||||
@@ -0,0 +1,31 @@
|
||||
# Basic
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_PWM=y
|
||||
|
||||
# Serial
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_STDOUT_CONSOLE=y
|
||||
CONFIG_UART_LINE_CTRL=y
|
||||
|
||||
# USB
|
||||
CONFIG_USB_DEVICE_STACK_NEXT=y
|
||||
CONFIG_CDC_ACM_SERIAL_INITIALIZE_AT_BOOT=y
|
||||
CONFIG_CDC_ACM_SERIAL_PRODUCT_STRING="Servo2350"
|
||||
CONFIG_CDC_ACM_SERIAL_PID=0x0004
|
||||
|
||||
# Route console/logs to USB CDC ACM (configured via device tree)
|
||||
CONFIG_LOG=n
|
||||
CONFIG_LOG_DEFAULT_LEVEL=3
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_LOG_BACKEND_UART=y
|
||||
|
||||
# Shell
|
||||
CONFIG_SHELL=y
|
||||
CONFIG_USBD_SHELL=y
|
||||
CONFIG_SHELL_HISTORY=y
|
||||
|
||||
# ZBUS Configuration
|
||||
CONFIG_ZBUS=y
|
||||
CONFIG_ZBUS_RUNTIME_OBSERVERS=y
|
||||
@@ -0,0 +1,12 @@
|
||||
sample:
|
||||
name: Blinky Sample
|
||||
tests:
|
||||
sample.basic.blinky:
|
||||
tags:
|
||||
- LED
|
||||
- gpio
|
||||
filter: dt_enabled_alias_with_parent_compat("led0", "gpio-leds")
|
||||
depends_on: gpio
|
||||
harness: led
|
||||
integration_platforms:
|
||||
- frdm_k64f
|
||||
@@ -0,0 +1,103 @@
|
||||
#include "led.h"
|
||||
#include "zbus_message.h"
|
||||
|
||||
#include <zephyr/device.h>
|
||||
#include <zephyr/devicetree.h>
|
||||
#include <zephyr/drivers/gpio.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/logging/log.h>
|
||||
#include <zephyr/zbus/zbus.h>
|
||||
|
||||
LOG_MODULE_REGISTER(led, LOG_LEVEL_INF);
|
||||
|
||||
#define LED0_NODE DT_ALIAS(led0)
|
||||
#define LED1_NODE DT_ALIAS(led1)
|
||||
|
||||
static const struct gpio_dt_spec led0_gpio = GPIO_DT_SPEC_GET(LED0_NODE, gpios);
|
||||
static const struct gpio_dt_spec led1_gpio = GPIO_DT_SPEC_GET(LED1_NODE, gpios);
|
||||
|
||||
static bool led0_state = false;
|
||||
static bool led1_state = false;
|
||||
|
||||
/* ZBUS handler - update LED state */
|
||||
static void leds_zbus_handler(const struct zbus_channel *chan)
|
||||
{
|
||||
const struct leds_message *msg;
|
||||
int ret;
|
||||
const struct gpio_dt_spec *target_gpio;
|
||||
bool *target_state;
|
||||
|
||||
msg = zbus_chan_const_msg(chan);
|
||||
if (msg == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (msg->led_id == 0) {
|
||||
target_gpio = &led0_gpio;
|
||||
target_state = &led0_state;
|
||||
} else if (msg->led_id == 1) {
|
||||
target_gpio = &led1_gpio;
|
||||
target_state = &led1_state;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
*target_state = msg->led_value;
|
||||
ret = gpio_pin_set_dt(target_gpio, msg->led_value ? 1 : 0);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to set LED%d: %d", msg->led_id, ret);
|
||||
return;
|
||||
}
|
||||
|
||||
LOG_DBG("LED%d updated: %s (LED0=%s, LED1=%s)",
|
||||
msg->led_id, msg->led_value ? "ON" : "OFF",
|
||||
led0_state ? "ON" : "OFF", led1_state ? "ON" : "OFF");
|
||||
}
|
||||
|
||||
ZBUS_LISTENER_DEFINE(leds_listener, leds_zbus_handler);
|
||||
|
||||
int led_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!device_is_ready(led0_gpio.port)) {
|
||||
LOG_ERR("LED0 GPIO device not ready");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = gpio_pin_configure_dt(&led0_gpio, GPIO_OUTPUT_INACTIVE);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to configure LED0 GPIO: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!device_is_ready(led1_gpio.port)) {
|
||||
LOG_ERR("LED1 GPIO device not ready");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
ret = gpio_pin_configure_dt(&led1_gpio, GPIO_OUTPUT_INACTIVE);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to configure LED1 GPIO: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = zbus_chan_add_obs(&leds_chan, &leds_listener, K_MSEC(200));
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to add LED listener: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = gpio_pin_set_dt(&led0_gpio, 0);
|
||||
ret |= gpio_pin_set_dt(&led1_gpio, 0);
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to initialize LEDs");
|
||||
return ret;
|
||||
}
|
||||
|
||||
LOG_INF("LED driver initialized (LED0: GPIO %d, LED1: GPIO %d)",
|
||||
led0_gpio.pin, led1_gpio.pin);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef LED_H
|
||||
#define LED_H
|
||||
|
||||
/**
|
||||
* @file led.h
|
||||
* @brief LED control via GPIO and ZBUS
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Initialize LED driver
|
||||
*
|
||||
* @return 0 on success, negative errno on failure
|
||||
*/
|
||||
int led_init(void);
|
||||
|
||||
#endif /* LED_H */
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/logging/log.h>
|
||||
|
||||
LOG_MODULE_REGISTER(main, LOG_LEVEL_INF);
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* LED driver - status indicators */
|
||||
ret = led_init();
|
||||
if (ret != 0) {
|
||||
LOG_ERR("Failed to initialize LED driver: %d", ret);
|
||||
}
|
||||
|
||||
|
||||
while (1) {
|
||||
k_msleep(1000);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
#include "zbus_message.h"
|
||||
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/logging/log.h>
|
||||
#include <zephyr/shell/shell.h>
|
||||
#include <zephyr/zbus/zbus.h>
|
||||
|
||||
LOG_MODULE_REGISTER(led_shell, LOG_LEVEL_INF);
|
||||
|
||||
/**
|
||||
* @brief Parse and publish an LED command to leds_chan.
|
||||
*
|
||||
* Usage:
|
||||
* led set <id> <on|off>
|
||||
*
|
||||
* @param shell Shell instance
|
||||
* @param argc Argument count (must be 3: "set", id, state)
|
||||
* @param argv Argument vector
|
||||
* @return 0 on success, negative errno on failure
|
||||
*/
|
||||
static int cmd_led_set(const struct shell *shell, size_t argc, char **argv)
|
||||
{
|
||||
struct leds_message msg;
|
||||
int ret;
|
||||
|
||||
/* Parse LED id */
|
||||
char *endptr;
|
||||
long id = strtol(argv[1], &endptr, 10);
|
||||
|
||||
if (*endptr != '\0' || id < 0 || id > 1) {
|
||||
shell_error(shell, "Invalid LED id '%s'. Use 0 or 1.", argv[1]);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Parse state */
|
||||
if (strcmp(argv[2], "on") == 0) {
|
||||
msg.led_value = true;
|
||||
} else if (strcmp(argv[2], "off") == 0) {
|
||||
msg.led_value = false;
|
||||
} else {
|
||||
shell_error(shell, "Invalid state '%s'. Use 'on' or 'off'.", argv[2]);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
msg.led_id = (uint8_t)id;
|
||||
|
||||
ret = zbus_chan_pub(&leds_chan, &msg, K_MSEC(200));
|
||||
if (ret != 0) {
|
||||
shell_error(shell, "Failed to publish LED command: %d", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
shell_print(shell, "LED%d turned %s", msg.led_id, msg.led_value ? "ON" : "OFF");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Turn on all LEDs.
|
||||
*/
|
||||
static int cmd_led_all_on(const struct shell *shell, size_t argc, char **argv)
|
||||
{
|
||||
struct leds_message msg;
|
||||
int ret;
|
||||
|
||||
for (uint8_t i = 0; i <= 1; i++) {
|
||||
msg.led_id = i;
|
||||
msg.led_value = true;
|
||||
|
||||
ret = zbus_chan_pub(&leds_chan, &msg, K_MSEC(200));
|
||||
if (ret != 0) {
|
||||
shell_error(shell, "Failed to turn on LED%d: %d", i, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
shell_print(shell, "All LEDs turned ON");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Turn off all LEDs.
|
||||
*/
|
||||
static int cmd_led_all_off(const struct shell *shell, size_t argc, char **argv)
|
||||
{
|
||||
struct leds_message msg;
|
||||
int ret;
|
||||
|
||||
for (uint8_t i = 0; i <= 1; i++) {
|
||||
msg.led_id = i;
|
||||
msg.led_value = false;
|
||||
|
||||
ret = zbus_chan_pub(&leds_chan, &msg, K_MSEC(200));
|
||||
if (ret != 0) {
|
||||
shell_error(shell, "Failed to turn off LED%d: %d", i, ret);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
shell_print(shell, "All LEDs turned OFF");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Subcommands for the "led" root command */
|
||||
SHELL_STATIC_SUBCMD_SET_CREATE(sub_led,
|
||||
SHELL_CMD_ARG(set, NULL,
|
||||
"Set a single LED state.\n"
|
||||
"Usage: led set <id> <on|off>\n"
|
||||
" id : 0 or 1\n"
|
||||
" state: on | off",
|
||||
cmd_led_set, 3, 0),
|
||||
SHELL_CMD(allon, NULL,
|
||||
"Turn all LEDs on.\n"
|
||||
"Usage: led allon",
|
||||
cmd_led_all_on),
|
||||
SHELL_CMD(alloff, NULL,
|
||||
"Turn all LEDs off.\n"
|
||||
"Usage: led alloff",
|
||||
cmd_led_all_off),
|
||||
SHELL_SUBCMD_SET_END
|
||||
);
|
||||
|
||||
SHELL_CMD_REGISTER(led, &sub_led,
|
||||
"LED control commands.\n"
|
||||
" led set <id> <on|off> - Set LED state\n"
|
||||
" led allon - Turn all LEDs on\n"
|
||||
" led alloff - Turn all LEDs off",
|
||||
NULL);
|
||||
@@ -0,0 +1,16 @@
|
||||
#include "zbus_message.h"
|
||||
|
||||
#include <zephyr/zbus/zbus.h>
|
||||
|
||||
/**
|
||||
* @brief ZBUS channel definition for LED control.
|
||||
*
|
||||
* No validator is used; any leds_message value is accepted.
|
||||
* Observers are registered at runtime via zbus_chan_add_obs().
|
||||
*/
|
||||
ZBUS_CHAN_DEFINE(leds_chan, /* channel name */
|
||||
struct leds_message, /* message type */
|
||||
NULL, /* validator */
|
||||
NULL, /* user data */
|
||||
ZBUS_OBSERVERS_EMPTY,
|
||||
ZBUS_MSG_INIT(.led_id = 0, .led_value = false));
|
||||
@@ -0,0 +1,30 @@
|
||||
#ifndef ZBUS_MESSAGE_H
|
||||
#define ZBUS_MESSAGE_H
|
||||
|
||||
/**
|
||||
* @file zbus_message.h
|
||||
* @brief ZBUS channel and message definitions for LED control
|
||||
*/
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <zephyr/zbus/zbus.h>
|
||||
|
||||
/**
|
||||
* @brief Message published to leds_chan to control an LED.
|
||||
*
|
||||
* @param led_id LED index (0 or 1)
|
||||
* @param led_value true = ON, false = OFF
|
||||
*/
|
||||
struct leds_message {
|
||||
uint8_t led_id;
|
||||
bool led_value;
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief ZBUS channel for LED control messages.
|
||||
*
|
||||
* Publish a struct leds_message to this channel to set an LED state.
|
||||
*/
|
||||
ZBUS_CHAN_DECLARE(leds_chan);
|
||||
|
||||
#endif /* ZBUS_MESSAGE_H */
|
||||
Reference in New Issue
Block a user