Redid layout with JLC library symbols

This commit is contained in:
zyphlar
2026-07-04 03:28:12 -07:00
parent 600cf052a8
commit 03ff592b3c
18 changed files with 156292 additions and 2404 deletions
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
File diff suppressed because it is too large Load Diff
Binary file not shown.
+247
View File
@@ -0,0 +1,247 @@
(footprint "A16N_cast"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(property "Reference" "A16N_cast"
(at 0 0 180)
(layer "F.Fab")
(hide yes)
(uuid "1a5b7791-8f63-45e3-ba51-bdb607dbad8d")
(effects
(font
(size 0.5 0.5)
(thickness 0.08)
)
(justify mirror)
)
)
(property "Value" ""
(at 0 0 180)
(layer "F.Fab")
(hide yes)
(uuid "2a0a9b57-fb2d-4d8d-97df-33d56890bcc6")
(effects
(font
(size 0.5 0.5)
(thickness 0.08)
)
(justify mirror)
)
)
(property "Datasheet" ""
(at 0 0 180)
(layer "B.Fab")
(hide yes)
(uuid "c1562060-2dc6-40e5-a842-6b0b3718ed71")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
(justify mirror)
)
)
(property "Description" ""
(at 0 0 180)
(layer "B.Fab")
(hide yes)
(uuid "192bfde5-19ee-4adf-bebb-81fd10c34a8a")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
(justify mirror)
)
)
(fp_line
(start -5.5 -2)
(end -5.5 2)
(stroke
(width 0.05)
(type default)
)
(layer "Edge.Cuts")
(uuid "d95d3b74-f702-4dcf-b586-73fe612fbf14")
)
(fp_line
(start -5.5 -2)
(end 5.5 -2)
(stroke
(width 0.05)
(type default)
)
(layer "Edge.Cuts")
(uuid "e0fe8c6c-6f0b-448a-a897-953d8e408995")
)
(fp_line
(start 5.5 -2)
(end 5.5 -1)
(stroke
(width 0.05)
(type default)
)
(layer "Edge.Cuts")
(uuid "f103481f-9cd7-49fb-9ef8-8cf3f1f18077")
)
(fp_line
(start 5.5 -0.5)
(end 5.5 0.5)
(stroke
(width 0.05)
(type default)
)
(layer "Edge.Cuts")
(uuid "9bfdd896-1412-4814-8b18-ff79232de116")
)
(fp_line
(start 5.5 1)
(end 5.5 2)
(stroke
(width 0.05)
(type default)
)
(layer "Edge.Cuts")
(uuid "db0661ce-4ee5-4bf8-b53c-96194948eb78")
)
(fp_line
(start 5.5 2)
(end -5.5 2)
(stroke
(width 0.05)
(type default)
)
(layer "Edge.Cuts")
(uuid "6b7c98ed-7f51-4a72-8e5a-c756fc767f63")
)
(pad "1" thru_hole circle
(at -4.445 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "c44cc01c-63c6-4a8b-a34a-3f3562f8ea9e")
)
(pad "2" thru_hole circle
(at -3.175 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "20b4f39d-8998-4528-9e8c-b07c1d608b72")
)
(pad "3" thru_hole circle
(at -1.905 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "dcaf6ebc-802a-4edc-b78a-47735327fdff")
)
(pad "4" thru_hole circle
(at -0.635 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "6c82a869-868e-4a04-8334-40ed9f56ee40")
)
(pad "5" thru_hole circle
(at 0.635 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "f2ea3ef7-f5a6-4f46-8f93-9f71bb5c3d83")
)
(pad "6" thru_hole circle
(at 1.905 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "891692d5-2d1d-48e9-af5e-945a883ed2f0")
)
(pad "7" thru_hole circle
(at 3.175 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "ab1ef5fa-f4eb-4baa-8969-fe18b59fcbdd")
)
(pad "8" thru_hole circle
(at 4.445 -2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "ad7db280-4b54-426b-abd1-845d00d42a97")
)
(pad "9" thru_hole circle
(at 4.445 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "f35c3503-222a-4918-97b9-3b985d84cab8")
)
(pad "10" thru_hole circle
(at 3.175 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "0620b8ea-907e-4511-a5f6-b80a478020b5")
)
(pad "11" thru_hole circle
(at 1.905 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "6b3a7199-3da9-422c-8f9a-8ba41a7f2cee")
)
(pad "12" thru_hole circle
(at 0.635 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "f36c9c99-3c1a-4dfa-a0f6-50b842534d06")
)
(pad "13" thru_hole circle
(at -0.635 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "015ee49c-7f11-472e-bed0-149c72b8955e")
)
(pad "14" thru_hole circle
(at -1.905 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "b61b8691-2e6c-4bde-914d-11aa3ecf971e")
)
(pad "15" thru_hole circle
(at -3.175 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "264c09ce-3a11-422f-a0ad-fb8732805823")
)
(pad "16" thru_hole circle
(at -4.445 2)
(size 1 1)
(drill 0.6)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "95c7bfdc-ae7b-4377-a98b-d45bd3ab02a2")
)
(embedded_fonts no)
)
@@ -0,0 +1,364 @@
(footprint "CONN-FPC-SMD_16P-P1.00-O0.50"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(property "Reference" "FPC2"
(at 0 -4 0)
(layer "F.SilkS")
(uuid "c4cf29e2-0fc8-49c1-95e1-11a20630aeeb")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "FPC-16"
(at 0 3.5 0)
(layer "F.Fab")
(uuid "8c0e3441-8af2-4406-8b1c-a69858e055c6")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "cbb681ef-cf2e-4ad1-a1ae-6a47dd935e1e")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "17675362-769b-4af3-b736-674e9bfc0aa0")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "JLC_3DModel_Q" "312da58311b441c88ccf7f3f52954456"
(at 0 0 0)
(layer "Cmts.User")
(hide yes)
(uuid "883c8658-1b1e-4224-bf8c-cacf45f511e2")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "JLC_3D_Size" "25 4.4"
(at 0 0 0)
(layer "Cmts.User")
(hide yes)
(uuid "fbc4c6d1-3b94-4077-927f-9a80edc6141e")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Manufacturer Part" "FPC16-T1T1-2020-A"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "157c3e12-06ea-4e81-ac02-9879fc32ff1d")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Manufacturer" "SHETIME(高钺达)"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "632a2417-c252-4ccb-b5bd-42b9110cfb1a")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Supplier Part" "C52740846"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "0fa54962-e810-4f0e-9964-25ab1ac7298c")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Supplier" "LCSC"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "a9d7b505-6206-4098-b62b-757fe25816b0")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "LCSC Part Name" "翻盖式 下接 P数:16P 间距:0.5mm"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "3ab2d9cc-80b5-4daa-970d-4a07c87ab013")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(fp_rect
(start -6 -1.2)
(end -4.2 1.2)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Cu")
(uuid "42506433-7fbd-48b9-9018-af7738a016bb")
)
(fp_rect
(start 4.7 -1.2)
(end 6.5 1.2)
(stroke
(width 0)
(type solid)
)
(fill yes)
(layer "F.Cu")
(uuid "0842fa47-f564-452e-937a-1d975bcc2281")
)
(fp_line
(start -6.5 -2)
(end -6.5 2.5)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "12b7cbf4-ba14-4211-8d98-f75be29f1ee2")
)
(fp_line
(start -6.5 2.5)
(end 7 2.5)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "e3fa00aa-71dd-4b00-b8a3-798b44b4e08a")
)
(fp_line
(start -5.5 -3)
(end -6.5 -2)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "f9b0b97e-10e4-414f-94e0-d4fad34f8111")
)
(fp_line
(start 6 -3)
(end -5.5 -3)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "e07329f1-bcfa-4887-b12c-d5cfc45bad1c")
)
(fp_line
(start 7 -2)
(end 6 -3)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "0007694b-d36c-4821-8786-8da3d8951588")
)
(fp_line
(start 7 2.5)
(end 7 -2)
(stroke
(width 0.1)
(type default)
)
(layer "F.SilkS")
(uuid "3be8df40-ba49-471c-a5ad-bfd796cefa9f")
)
(fp_rect
(start -6.2 -1.4)
(end -3.8 1.4)
(stroke
(width 0.01)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "ef75f980-78ee-4de6-966d-e07fe7186386")
)
(fp_rect
(start 4.3 -1.4)
(end 6.7 1.4)
(stroke
(width 0.01)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "537b1dcc-864a-42ca-9d38-fe257cde524c")
)
(fp_circle
(center -7 3.5)
(end -6.9 3.5)
(stroke
(width 0.254)
(type solid)
)
(fill no)
(layer "F.SilkS")
(uuid "d3fa9cc8-625e-4466-9fd5-81c9178bb698")
)
(pad "1" smd rect
(at -3.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "6fab43c3-9bfd-44a2-ab00-aa839c1ef025")
)
(pad "2" smd rect
(at -3 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "65be5679-8d2c-4baf-92b4-cc786e4dd0c9")
)
(pad "3" smd rect
(at -2.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "0af1b3af-8057-4c02-bf19-d204bfbd0262")
)
(pad "4" smd rect
(at -2 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "db30d023-33b1-4019-9b18-90a65f4d0aa8")
)
(pad "5" smd rect
(at -1.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "9904cbc4-5dc8-4081-9d40-e4a5196bf53f")
)
(pad "6" smd rect
(at -1 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "aa69d731-167d-4dab-b5b6-40169c0b7970")
)
(pad "7" smd rect
(at -0.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "772746e2-270c-4de4-b9a8-dc02a344bd16")
)
(pad "8" smd rect
(at 0 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "eeaf74f0-9a2d-4509-9770-36e0b8871261")
)
(pad "9" smd rect
(at 0.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "e8e1c5d5-2cb9-430f-807a-aa74f798d34d")
)
(pad "10" smd rect
(at 1 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "49f45ba2-ea7c-435d-a0ba-6d60fc537aaa")
)
(pad "11" smd rect
(at 1.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "8eaccd0b-909d-4aea-a3ce-e27c8e14a08c")
)
(pad "12" smd rect
(at 2 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "6e22bcec-9f4a-49cd-8ce7-2fdca0190bf7")
)
(pad "13" smd rect
(at 2.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "0d557cf3-d88e-4331-be9f-e880908c9a83")
)
(pad "14" smd rect
(at 3 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "c569763a-9e95-4025-92ea-5a05bb227784")
)
(pad "15" smd rect
(at 3.5 1.25)
(size 0.6 1.7)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "05a3373b-f15d-4fc7-8c29-73316a5dde54")
)
(pad "16" smd rect
(at 4 -1.35)
(size 0.6 1.9)
(layers "F.Cu" "F.Mask" "F.Paste")
(uuid "f655dd8b-a1c2-4c73-a4f2-81abc3bcf658")
)
(embedded_fonts no)
(model "${KIPRJMOD}/EASYEDA_MODELS/CONN-SMD_23P-L25.0-W3.0-P1.00-L_TE_2-84982-3.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -0 -0 -0)
)
)
)
+542
View File
@@ -0,0 +1,542 @@
(footprint "XIAO-nRF52840-DIP"
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at -0.025 -10.275 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "7bab359d-5e5b-4dff-9db4-e7c8562ce635")
(effects
(font
(size 0.635 0.635)
(thickness 0.1016)
)
)
)
(property "Value" "XIAO-nRF52840-DIP"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(uuid "79cabf23-4ebc-4d37-9172-bb2cf4ea975f")
(effects
(font
(size 0.635 0.635)
(thickness 0.1016)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "663dc686-104e-47e1-9669-e1228477fa6f")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "a25b2a4a-94ce-41bd-8341-b98204aa9142")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(attr smd)
(fp_line
(start -10.414 -6.985)
(end -10.414 6.985)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "e213e2f5-659f-4cdb-b390-b284746621aa")
)
(fp_line
(start -8.509 -8.89)
(end 8.636 -8.89)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "f58afa0e-63f9-4096-9d17-7cf8e5de7759")
)
(fp_line
(start -8.509 8.89)
(end 8.636 8.89)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "9c6409b2-5f1b-4299-85bf-d07c96f13a2a")
)
(fp_line
(start 10.541 -4.495)
(end 11.551272 -4.491272)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "23214df5-b52e-45e0-ac07-b60a48600cec")
)
(fp_line
(start 10.541 6.985)
(end 10.541 -6.985)
(stroke
(width 0.1)
(type solid)
)
(layer "F.SilkS")
(uuid "c821ef3d-9e13-4de8-a780-a537bd79adac")
)
(fp_line
(start 10.541 6.985)
(end 10.541 -6.985)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "6f680559-bbef-46de-9ef5-efda7c2411e9")
)
(fp_line
(start 11.551 4.504)
(end 10.541 4.504)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "c58f1897-4668-42a7-bd1a-f1a940aeba3f")
)
(fp_line
(start 12.051 -3.991272)
(end 12.051 4.004)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "e9d2603d-7fff-40aa-88b4-19c44fdc9fe7")
)
(fp_arc
(start -10.414 -6.985)
(mid -9.856038 -8.332038)
(end -8.509 -8.89)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "88e5d6ea-6b70-4830-9817-980fd2b32f79")
)
(fp_arc
(start -8.509 8.89)
(mid -9.856038 8.332038)
(end -10.414 6.985)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "f108f05c-d5f6-4de1-bc6f-4c31ef53e967")
)
(fp_arc
(start 8.636 -8.89)
(mid 9.983038 -8.332038)
(end 10.541 -6.985)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "c6870bc4-897a-485a-b951-3feda1bdd32e")
)
(fp_arc
(start 10.541 6.985)
(mid 9.983038 8.332038)
(end 8.636 8.89)
(stroke
(width 0.127)
(type solid)
)
(layer "F.SilkS")
(uuid "e1d8f660-1495-43db-8a6b-7fdc7dc42e35")
)
(fp_arc
(start 11.551272 -4.491272)
(mid 11.904644 -4.344724)
(end 12.051 -3.991272)
(stroke
(width 0.127)
(type default)
)
(layer "F.SilkS")
(uuid "2386a799-f1fa-4f9f-9618-9a8303e79cb3")
)
(fp_arc
(start 12.051 4.004)
(mid 11.904524 4.357524)
(end 11.551 4.504)
(stroke
(width 0.127)
(type default)
)
(layer "F.SilkS")
(uuid "43f048da-d34b-4a04-9621-3a55862dbd09")
)
(fp_circle
(center 9.52 -7.707)
(end 9.774 -7.707)
(stroke
(width 0.5)
(type solid)
)
(fill yes)
(layer "F.SilkS")
(uuid "f72c7e66-38df-4370-a74f-c8adbcd7dda9")
)
(fp_circle
(center 10.4 -8.85)
(end 10.654 -8.85)
(stroke
(width 0.5)
(type solid)
)
(fill yes)
(layer "F.SilkS")
(uuid "9f75af63-6fcc-45e9-a9a8-a61fe7785974")
)
(fp_rect
(start -10.425 -8.9)
(end 10.55 8.9)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "F.CrtYd")
(uuid "b53697bc-d105-40e2-af66-708b16a7f26c")
)
(fp_rect
(start -10.425 -8.9)
(end 10.55 8.9)
(stroke
(width 0.1)
(type default)
)
(fill no)
(layer "F.Fab")
(uuid "a45a327e-f036-4877-8d89-39f4f4b0c715")
)
(fp_circle
(center 9.526 -7.704)
(end 9.78 -7.704)
(stroke
(width 0.5)
(type solid)
)
(fill yes)
(layer "F.Fab")
(uuid "bfbc825c-96d2-405a-9bde-5de29ef0a240")
)
(pad "1" smd roundrect
(at 7.62 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "82bbfb55-8baa-4218-ac89-ab07d82ef7f8")
)
(pad "1" thru_hole circle
(at 7.62 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "f2fffd4f-460c-4b4d-b954-811e935ed1d6")
)
(pad "2" smd roundrect
(at 5.08 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "18ef9914-2d15-494c-9020-2334abcc1460")
)
(pad "2" thru_hole circle
(at 5.08 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "4732cc3f-e641-4870-a9b3-ae13729c7bba")
)
(pad "3" smd roundrect
(at 2.54 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "15338a55-8514-4218-a2c1-2cae003104c3")
)
(pad "3" thru_hole circle
(at 2.54 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "0cef5e55-d8ff-4394-9cc1-cc318608b0d9")
)
(pad "4" smd roundrect
(at 0 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "191a259d-5773-4a80-91de-baa69611fab8")
)
(pad "4" thru_hole circle
(at 0 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "200b8da4-9395-48a5-b7ac-92a6a147c215")
)
(pad "5" smd roundrect
(at -2.54 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "52012467-1c46-4a8e-aa82-6f6ce69bd2ca")
)
(pad "5" thru_hole circle
(at -2.54 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "2b50ccce-3634-47d1-bf7d-a3db4f3f9a9f")
)
(pad "6" smd roundrect
(at -5.08 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "04aeaf95-142a-40f6-97a3-04453fc50824")
)
(pad "6" thru_hole circle
(at -5.08 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "7636de9d-d8e5-49c9-9fff-0cd76515690d")
)
(pad "7" smd roundrect
(at -7.62 -8.455 90)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "e997fd0b-233a-4656-afad-cb2f8b9d87c9")
)
(pad "7" thru_hole circle
(at -7.62 -7.62 90)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "9d2c0d0c-05dd-477e-8384-b14eec83fc2e")
)
(pad "8" thru_hole circle
(at -7.62 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "1e50c66f-49b8-4b03-9889-8cc6ca45ad8e")
)
(pad "8" smd roundrect
(at -7.62 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "e7b72803-b5f0-433c-8313-83247355fb43")
)
(pad "9" thru_hole circle
(at -5.08 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "808bf9dc-1c26-4a77-93c9-e4c6d5eccbb2")
)
(pad "9" smd roundrect
(at -5.08 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "532de3b6-bd30-47c5-b70e-0bca6abbd997")
)
(pad "10" thru_hole circle
(at -2.54 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "a792a2ac-537b-4136-8f92-b81f7ce8f753")
)
(pad "10" smd roundrect
(at -2.54 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "6e3f5c75-6143-468e-bb07-d89020c03f59")
)
(pad "11" thru_hole circle
(at 0 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "fb78046a-9b91-4893-b010-827957cc07be")
)
(pad "11" smd roundrect
(at 0 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "5249f425-bece-432d-8076-28e1b8b386e3")
)
(pad "12" thru_hole circle
(at 2.54 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "0b8ccc97-5100-4dcf-8500-e99789ee0b4c")
)
(pad "12" smd roundrect
(at 2.54 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "82f1bbd1-708b-4d2d-9113-7ba3c2313670")
)
(pad "13" thru_hole circle
(at 5.08 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "03882061-01af-484b-b620-9e92a3daaf68")
)
(pad "13" smd roundrect
(at 5.08 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "954f51d1-3d75-42fb-a02a-7389b30718d9")
)
(pad "14" thru_hole circle
(at 7.62 7.62 270)
(size 1.524 1.524)
(drill 0.889)
(layers "*.Cu" "*.Mask")
(remove_unused_layers no)
(uuid "c6d1af47-da13-4409-9ab1-55d358cc57eb")
)
(pad "14" smd roundrect
(at 7.62 8.455 270)
(size 2.432 1.524)
(layers "F.Cu" "F.Mask")
(roundrect_rratio 0.1)
(thermal_bridge_angle 45)
(uuid "6b725fd4-d6f0-46bf-b3e0-7ec07cc05622")
)
(embedded_fonts no)
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-nRF52840 v15.step"
(hide yes)
(offset
(xyz -1.778 -6.096 0.381)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -90 0 0)
)
)
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeeduino XIAO SAMD21 v4.step"
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz 0 0 0)
)
)
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO RP2040 v26.step"
(hide yes)
(offset
(xyz 0 0 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz 0 0 90)
)
)
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO-ESP32-C3.step"
(hide yes)
(offset
(xyz -1.7018 -6.096 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -90 0 0)
)
)
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-ESP32S3 v2.step"
(hide yes)
(offset
(xyz -1.778 -6.1722 0)
)
(scale
(xyz 1 1 1)
)
(rotate
(xyz -90 0 0)
)
)
)
+330 -1
View File
@@ -225,6 +225,226 @@
"cvpcb": { "cvpcb": {
"equivalence_files": [] "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",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"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",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": { "libraries": {
"pinned_footprint_libs": [], "pinned_footprint_libs": [],
"pinned_symbol_libs": [] "pinned_symbol_libs": []
@@ -276,8 +496,117 @@
"page_layout_descr_file": "" "page_layout_descr_file": ""
}, },
"schematic": { "schematic": {
"annotate_start_num": 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
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Reference"
},
"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": [],
"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_dir": "",
"legacy_lib_list": [] "legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"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
}, },
"sheets": [], "sheets": [],
"text_variables": {} "text_variables": {}
+5123 -2063
View File
File diff suppressed because it is too large Load Diff
+42 -4
View File
@@ -446,8 +446,12 @@
} }
}, },
"libraries": { "libraries": {
"pinned_footprint_libs": [], "pinned_footprint_libs": [
"pinned_symbol_libs": [] "EasyEDA_Lib"
],
"pinned_symbol_libs": [
"EasyEDA_Lib"
]
}, },
"meta": { "meta": {
"filename": "baby-mobile-v5.kicad_pro", "filename": "baby-mobile-v5.kicad_pro",
@@ -479,7 +483,36 @@
}, },
"net_colors": null, "net_colors": null,
"netclass_assignments": null, "netclass_assignments": null,
"netclass_patterns": [] "netclass_patterns": [
{
"netclass": "Default",
"pattern": "/VIN"
},
{
"netclass": "Default",
"pattern": "/VBAT"
},
{
"netclass": "Default",
"pattern": "/C_VBAT"
},
{
"netclass": "Default",
"pattern": "/GND"
},
{
"netclass": "Default",
"pattern": "/SPI_MISO"
},
{
"netclass": "Default",
"pattern": "/FLASH_CS"
},
{
"netclass": "Default",
"pattern": "/C_3V3"
}
]
}, },
"pcbnew": { "pcbnew": {
"last_paths": { "last_paths": {
@@ -608,6 +641,11 @@
"subpart_first_id": 65, "subpart_first_id": 65,
"subpart_id_separator": 0 "subpart_id_separator": 0
}, },
"sheets": [], "sheets": [
[
"3033f063-d051-4b2e-89f5-f1cfe4577b32",
"Root"
]
],
"text_variables": {} "text_variables": {}
} }
+4805 -318
View File
File diff suppressed because it is too large Load Diff
+26 -18
View File
@@ -81,8 +81,8 @@ using namespace Adafruit_LittleFS_Namespace;
// SPI MOSI/MISO/SCK use default SPI pins // SPI MOSI/MISO/SCK use default SPI pins
// Buttons (directly to GPIO, active LOW with internal pull-up) // Buttons (directly to GPIO, active LOW with internal pull-up)
#define PIN_BTN1 3 #define PIN_BTN1 0
#define PIN_BTN2 4 #define PIN_BTN2 1
#define PIN_BTN3 5 #define PIN_BTN3 5
#define PIN_BTN4 3 #define PIN_BTN4 3
/* /*
@@ -874,6 +874,15 @@ void waitButtonRelease(uint8_t btn) {
// ============================================================ // ============================================================
void enterDeepSleep() { void enterDeepSleep() {
// Don't sleep if any button is currently LOW — would wake instantly.
// Also catches floating pins that the internal pull-up isn't winning against.
for (uint8_t i = 0; i < NUM_BUTTONS; i++) {
if (analogRead(BTN_PINS[i]) < 128) {
g_lastActivity = millis(); // postpone
return;
}
}
Serial.println("Entering deep sleep..."); Serial.println("Entering deep sleep...");
audioStop(); audioStop();
motorStop(); motorStop();
@@ -885,14 +894,11 @@ void enterDeepSleep() {
// Stop BLE advertising to save power // Stop BLE advertising to save power
Bluefruit.Advertising.stop(); Bluefruit.Advertising.stop();
// Configure buttons as wake sources // Configure buttons as wake sources.
// On nRF52840, any GPIO can wake from System OFF // nrf_gpio_cfg_sense_input takes nRF GPIO numbers, not Arduino pin numbers —
// We use System ON sleep (RTOS idle) for quick wake // use g_ADigitalPinMap[] to convert.
// For deepest sleep, use sd_power_system_off()
// Use pin sense for wake
for (uint8_t i = 0; i < NUM_BUTTONS; i++) { for (uint8_t i = 0; i < NUM_BUTTONS; i++) {
nrf_gpio_cfg_sense_input(BTN_PINS[i], nrf_gpio_cfg_sense_input(g_ADigitalPinMap[BTN_PINS[i]],
NRF_GPIO_PIN_PULLUP, NRF_GPIO_PIN_PULLUP,
NRF_GPIO_PIN_SENSE_LOW); NRF_GPIO_PIN_SENSE_LOW);
} }
@@ -1205,6 +1211,7 @@ static void serUploadTick() {
void loop() { void loop() {
// ---- Audio sample output (8kHz, loop-driven) ---- // ---- Audio sample output (8kHz, loop-driven) ----
if (g_playing) { if (g_playing) {
g_lastActivity = millis(); // stay awake while audio is playing
uint32_t now = micros(); uint32_t now = micros();
if ((int32_t)(now - g_nextSampleUs) >= 0) { if ((int32_t)(now - g_nextSampleUs) >= 0) {
g_nextSampleUs += 125; // 1/8000s = 125µs g_nextSampleUs += 125; // 1/8000s = 125µs
@@ -1259,6 +1266,8 @@ void loop() {
switch (btn) { switch (btn) {
case 1: // Play / Pause case 1: // Play / Pause
case 2:
case 3:
if (g_playing) { if (g_playing) {
audioStop(); audioStop();
} else if (g_numTracks > 0) { } else if (g_numTracks > 0) {
@@ -1266,40 +1275,40 @@ void loop() {
} }
break; break;
case 2: // Next track case 4: // Next track
if (g_numTracks > 0) { if (g_numTracks > 0) {
g_currentTrack = (g_currentTrack + 1) % g_numTracks; g_currentTrack = (g_currentTrack + 1) % g_numTracks;
if (g_playing) { audioStop(); audioStart(g_currentTrack); } if (g_playing) { audioStop(); audioStart(g_currentTrack); }
} }
break; break;
case 3: // Previous track case 5: // Previous track
if (g_numTracks > 0) { if (g_numTracks > 0) {
g_currentTrack = (g_currentTrack == 0) ? g_numTracks - 1 : g_currentTrack - 1; g_currentTrack = (g_currentTrack == 0) ? g_numTracks - 1 : g_currentTrack - 1;
if (g_playing) { audioStop(); audioStart(g_currentTrack); } if (g_playing) { audioStop(); audioStart(g_currentTrack); }
} }
break; break;
case 4: // Motor toggle case 6: // Motor toggle
if (g_motorOn) motorStop(); else motorStart(g_motorSpeed); if (g_motorOn) motorStop(); else motorStart(g_motorSpeed);
break; break;
case 5: // Motor faster case 7: // Motor faster
if (g_motorSpeed < 240) g_motorSpeed += 20; if (g_motorSpeed < 240) g_motorSpeed += 20;
if (g_motorOn) analogWrite(PIN_MOTOR_PWM, g_motorSpeed); if (g_motorOn) analogWrite(PIN_MOTOR_PWM, g_motorSpeed);
break; break;
case 6: // Motor slower case 8: // Motor slower
if (g_motorSpeed > 60) g_motorSpeed -= 20; if (g_motorSpeed > 60) g_motorSpeed -= 20;
if (g_motorOn) analogWrite(PIN_MOTOR_PWM, g_motorSpeed); if (g_motorOn) analogWrite(PIN_MOTOR_PWM, g_motorSpeed);
break; break;
case 7: // Play all (music + motor) case 9: // Play all (music + motor)
motorStart(g_motorSpeed); motorStart(g_motorSpeed);
if (!g_playing && g_numTracks > 0) audioStart(0); if (!g_playing && g_numTracks > 0) audioStart(0);
break; break;
case 8: // Stop all case 10: // Stop all
audioStop(); audioStop();
motorStop(); motorStop();
break; break;
@@ -1308,12 +1317,11 @@ void loop() {
waitButtonRelease(btn); waitButtonRelease(btn);
} }
// ---- Auto shutoff ---- // ---- Auto shutoff / idle sleep ----
if (millis() - g_lastActivity > AUTO_OFF_MS) { if (millis() - g_lastActivity > AUTO_OFF_MS) {
enterDeepSleep(); enterDeepSleep();
} }
// ---- Idle sleep (if nothing happening, no USB) ----
if (!g_playing && !g_motorOn && !g_usbConnected && !g_bleUploading) { if (!g_playing && !g_motorOn && !g_usbConnected && !g_bleUploading) {
if (millis() - g_lastActivity > IDLE_SLEEP_MS) { if (millis() - g_lastActivity > IDLE_SLEEP_MS) {
enterDeepSleep(); enterDeepSleep();
+1
View File
File diff suppressed because one or more lines are too long
+5
View File
@@ -0,0 +1,5 @@
(fp_lib_table
(version 7)
(lib (name "Library")(type "KiCad")(uri "${KIPRJMOD}/Library.pretty")(options "")(descr ""))
(lib (name "EasyEDA_Lib")(type "EasyEDA / JLCEDA Pro")(uri "${KIPRJMOD}/EasyEDA_Lib/EasyEDA_Lib.elibz")(options "")(descr ""))
)
+3
View File
@@ -0,0 +1,3 @@
[Library]
name = EasyEDA_Lib
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
(sym_lib_table
(lib (name "EasyEDA_Lib")(type "EasyEDA (JLCEDA) Pro")(uri "${KIPRJMOD}/EasyEDA_Lib/EasyEDA_Lib.elibz")(options "")(descr ""))
)