create kicad project

This commit is contained in:
Brendan Haines 2024-10-20 15:22:39 -06:00
parent 93e48595a0
commit ff19e4390c
11 changed files with 1881 additions and 0 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
# kicad backup/cache files
*-backups
*.bak
# prerelease outputs directory
outputs

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "common_libraries"]
path = common_libraries
url = git@git.brendanhaines.com:brendanhaines/kicad.git

1
common_libraries Submodule

@ -0,0 +1 @@
Subproject commit dba8da46d4b91865847d9deb0a21eec2d90646ff

7
fp-lib-table Normal file
View File

@ -0,0 +1,7 @@
(fp_lib_table
(version 7)
(lib (name "common")(type "KiCad")(uri "${KIPRJMOD}/common_libraries/common.pretty")(options "")(descr ""))
(lib (name "jst")(type "KiCad")(uri "${KIPRJMOD}/common_libraries/jst.pretty")(options "")(descr ""))
(lib (name "molex")(type "KiCad")(uri "${KIPRJMOD}/common_libraries/molex.pretty")(options "")(descr ""))
(lib (name "samtec")(type "KiCad")(uri "${KIPRJMOD}/common_libraries/samtec.pretty")(options "")(descr ""))
)

7
photodetector.kicad_dru Normal file
View File

@ -0,0 +1,7 @@
(version 1)
(rule IgnoreSilkScreenGraphicOverlap
(condition "A.Type == 'Graphic' && B.Type == 'Graphic'")
(constraint silk_clearance)
(severity ignore)
)

476
photodetector.kicad_pcb Normal file
View File

@ -0,0 +1,476 @@
(kicad_pcb (version 20221018) (generator pcbnew)
(general
(thickness 1.6)
)
(paper "A")
(title_block
(title "${PROJECT_NAME}")
(rev "${PCB_REVISION}")
(company "BRENDANHAINES.COM")
)
(layers
(0 "F.Cu" signal)
(1 "In1.Cu" signal)
(2 "In2.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(stackup
(layer "F.SilkS" (type "Top Silk Screen") (color "White"))
(layer "F.Paste" (type "Top Solder Paste"))
(layer "F.Mask" (type "Top Solder Mask") (color "Green") (thickness 0.01))
(layer "F.Cu" (type "copper") (thickness 0.035))
(layer "dielectric 1" (type "core") (thickness 0.48) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02))
(layer "In1.Cu" (type "copper") (thickness 0.035))
(layer "dielectric 2" (type "prepreg") (thickness 0.48) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02))
(layer "In2.Cu" (type "copper") (thickness 0.035))
(layer "dielectric 3" (type "core") (thickness 0.48) (material "FR4") (epsilon_r 4.5) (loss_tangent 0.02))
(layer "B.Cu" (type "copper") (thickness 0.035))
(layer "B.Mask" (type "Bottom Solder Mask") (color "Green") (thickness 0.01))
(layer "B.Paste" (type "Bottom Solder Paste"))
(layer "B.SilkS" (type "Bottom Silk Screen") (color "White"))
(copper_finish "ENIG")
(dielectric_constraints no)
)
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(plot_on_all_layers_selection 0x0000000_00000000)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(dashed_line_dash_ratio 12.000000)
(dashed_line_gap_ratio 3.000000)
(svgprecision 4)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(property "PCB_REVISION" "0.0")
(property "PROJECT_NAME" "PROJECT_NAME")
(net 0 "")
(net 1 "GND")
(footprint "common:MH120X230_#4" (layer "F.Cu")
(tstamp 0ed882a0-e4ce-4f18-bef6-9c3cccbc2678)
(at 123.19 123.19)
(descr "Mounting Hole, #4")
(property "Sheetfile" "jlcpcb_template.kicad_sch")
(property "Sheetname" "")
(property "ki_description" "Hole")
(path "/79801d06-18e7-498c-8d4e-cc6cc5060c9d")
(zone_connect 2)
(attr exclude_from_pos_files)
(fp_text reference "MH3" (at 0 0) (layer "F.SilkS") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp 14ecb36f-08db-4212-9cc8-01cdb58e47f7)
)
(fp_text value "Mounting_Hole" (at 0 0) (layer "F.Fab") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp 27613306-b783-4cb9-acf3-88e3b21dd5a5)
)
(fp_circle (center 0 0) (end 3.175 0)
(stroke (width 0.1778) (type solid)) (fill none) (layer "F.SilkS") (tstamp ae932b76-a5d5-4332-9618-4f8af0eeca49))
(pad "1" thru_hole circle (at 0 0) (size 5.842 5.842) (drill 3.048) (layers "*.Cu" "*.Mask")
(net 1 "GND") (pinfunction "1") (pintype "passive") (zone_connect 2) (tstamp 706a15cb-e926-49ae-94cd-c84e7fda89cd))
)
(footprint "common:LOGO_BH" (layer "F.Cu")
(tstamp 2c2034ad-58b7-4a90-9915-abf69702fa36)
(at 99.06 116.84)
(property "Sheetfile" "jlcpcb_template.kicad_sch")
(property "Sheetname" "")
(property "exclude_from_bom" "")
(path "/34f9aa7c-9331-4a4e-ada5-723181f4dcaa")
(attr smd exclude_from_pos_files exclude_from_bom allow_missing_courtyard)
(fp_text reference "LOGO1" (at 0 -0.3175 unlocked) (layer "F.SilkS") hide
(effects (font (size 0.635 0.635) (thickness 0.127)))
(tstamp a9243f51-eda4-4f1b-a757-cd7225d8ae98)
)
(fp_text value "~" (at 0 0.635 unlocked) (layer "F.Fab") hide
(effects (font (size 0.635 0.635) (thickness 0.127)))
(tstamp 8e493312-c025-4c71-8e0c-010a596ed2b6)
)
(fp_poly
(pts
(xy 0.340334 -4.906285)
(xy 0.426334 -4.89815)
(xy 0.511644 -4.88464)
(xy 0.595939 -4.865795)
(xy 0.678894 -4.8417)
(xy 0.760165 -4.81244)
(xy 0.839439 -4.778135)
(xy 0.916405 -4.73892)
(xy 0.990754 -4.69495)
(xy 1.062204 -4.646395)
(xy 1.130454 -4.59345)
(xy 1.195245 -4.536325)
(xy 1.256325 -4.475245)
(xy 1.313449 -4.410455)
(xy 1.366394 -4.342205)
(xy 1.414949 -4.270755)
(xy 1.45892 -4.196405)
(xy 1.498135 -4.11944)
(xy 1.532439 -4.040165)
(xy 1.561699 -3.958895)
(xy 1.585795 -3.87594)
(xy 1.60464 -3.791645)
(xy 1.61815 -3.706335)
(xy 1.626285 -3.620335)
(xy 1.629 -3.534)
(xy 1.626285 -3.447665)
(xy 1.61815 -3.361665)
(xy 1.60464 -3.276355)
(xy 1.585795 -3.19206)
(xy 1.561699 -3.109105)
(xy 1.532439 -3.027835)
(xy 1.498135 -2.94856)
(xy 1.45892 -2.871594)
(xy 1.414949 -2.797245)
(xy 1.366395 -2.725796)
(xy 1.31345 -2.657543)
(xy 1.256325 -2.592754)
(xy 1.195245 -2.531674)
(xy 1.130455 -2.474552)
(xy 1.062205 -2.421604)
(xy 0.990755 -2.373051)
(xy 0.916405 -2.329083)
(xy 0.83944 -2.289867)
(xy 0.760165 -2.255558)
(xy 0.678895 -2.226299)
(xy 0.59594 -2.202206)
(xy 0.511645 -2.183361)
(xy 0.426335 -2.169849)
(xy 0.340335 -2.161717)
(xy 0.254 -2.159)
(xy 0.254 -0.909001)
(xy -0.246 -0.909001)
(xy -0.246 -2.159)
(xy -0.996 -2.159)
(xy -0.996 -0.909001)
(xy -1.496 -0.909001)
(xy -1.496 -3.909)
(xy -0.996 -3.909)
(xy -0.996 -2.659)
(xy -0.246 -2.659)
(xy -0.246 -3.909)
(xy 0.254 -3.909)
(xy 0.254 -2.659)
(xy 0.30894 -2.660733)
(xy 0.363665 -2.665905)
(xy 0.417955 -2.674503)
(xy 0.4716 -2.686497)
(xy 0.524385 -2.701832)
(xy 0.576105 -2.720448)
(xy 0.62655 -2.742283)
(xy 0.67553 -2.767238)
(xy 0.72284 -2.795215)
(xy 0.768305 -2.826115)
(xy 0.81174 -2.859806)
(xy 0.852975 -2.89616)
(xy 0.89184 -2.935025)
(xy 0.928195 -2.97626)
(xy 0.961885 -3.019695)
(xy 0.992785 -3.06516)
(xy 1.02076 -3.11247)
(xy 1.04572 -3.16145)
(xy 1.067555 -3.211895)
(xy 1.08617 -3.263615)
(xy 1.101505 -3.3164)
(xy 1.113495 -3.370045)
(xy 1.122094 -3.424335)
(xy 1.12727 -3.47906)
(xy 1.129 -3.534)
(xy 1.12727 -3.58894)
(xy 1.122094 -3.643665)
(xy 1.113495 -3.697955)
(xy 1.101505 -3.7516)
(xy 1.08617 -3.804386)
(xy 1.067555 -3.856106)
(xy 1.04572 -3.90655)
(xy 1.02076 -3.95553)
(xy 0.992785 -4.00284)
(xy 0.961885 -4.048305)
(xy 0.928195 -4.09174)
(xy 0.89184 -4.132975)
(xy 0.852975 -4.17184)
(xy 0.81174 -4.208195)
(xy 0.768305 -4.241885)
(xy 0.72284 -4.272785)
(xy 0.67553 -4.30076)
(xy 0.62655 -4.32572)
(xy 0.576105 -4.347555)
(xy 0.524385 -4.36617)
(xy 0.4716 -4.381505)
(xy 0.417955 -4.393495)
(xy 0.363665 -4.402095)
(xy 0.30894 -4.40727)
(xy 0.254 -4.409)
(xy -1.996 -4.409)
(xy -1.996 -0.409001)
(xy 0.254 -0.409001)
(xy 0.30894 -0.410731)
(xy 0.363665 -0.415906)
(xy 0.417955 -0.424506)
(xy 0.4716 -0.436496)
(xy 0.524385 -0.451831)
(xy 0.576105 -0.470446)
(xy 0.62655 -0.492281)
(xy 0.67553 -0.517241)
(xy 0.72284 -0.545216)
(xy 0.768305 -0.576116)
(xy 0.81174 -0.609806)
(xy 0.852975 -0.646161)
(xy 0.89184 -0.685026)
(xy 0.928195 -0.726261)
(xy 0.961885 -0.769696)
(xy 0.992785 -0.815161)
(xy 1.02076 -0.862471)
(xy 1.04572 -0.911451)
(xy 1.067555 -0.961896)
(xy 1.08617 -1.013615)
(xy 1.101505 -1.066401)
(xy 1.113495 -1.120046)
(xy 1.122094 -1.174336)
(xy 1.12727 -1.229061)
(xy 1.129 -1.284001)
(xy 1.12727 -1.338941)
(xy 1.122094 -1.393666)
(xy 1.113495 -1.447956)
(xy 1.101505 -1.501601)
(xy 1.08617 -1.554386)
(xy 1.067555 -1.606106)
(xy 1.04572 -1.65655)
(xy 1.02076 -1.705531)
(xy 0.992785 -1.752841)
(xy 0.961885 -1.798306)
(xy 0.928195 -1.841741)
(xy 0.89184 -1.882976)
(xy 0.87594 -1.898876)
(xy 0.89821 -1.906896)
(xy 0.99911 -1.950558)
(xy 1.097065 -2.00047)
(xy 1.19169 -2.056431)
(xy 1.28262 -2.118222)
(xy 1.32232 -2.149022)
(xy 1.366395 -2.092205)
(xy 1.414949 -2.020756)
(xy 1.45892 -1.946408)
(xy 1.498135 -1.869441)
(xy 1.53244 -1.790166)
(xy 1.5617 -1.708896)
(xy 1.585795 -1.625941)
(xy 1.60464 -1.541646)
(xy 1.61815 -1.456336)
(xy 1.626285 -1.370336)
(xy 1.629 -1.284001)
(xy 1.626285 -1.197666)
(xy 1.61815 -1.111666)
(xy 1.60464 -1.026356)
(xy 1.585795 -0.942061)
(xy 1.5617 -0.859106)
(xy 1.53244 -0.777836)
(xy 1.498135 -0.698561)
(xy 1.45892 -0.621596)
(xy 1.414949 -0.547247)
(xy 1.366395 -0.475796)
(xy 1.31345 -0.407547)
(xy 1.256325 -0.342756)
(xy 1.195245 -0.281676)
(xy 1.130455 -0.224551)
(xy 1.062205 -0.171607)
(xy 0.990755 -0.123051)
(xy 0.916405 -0.079081)
(xy 0.83944 -0.039866)
(xy 0.760165 -0.005561)
(xy 0.678895 0.023699)
(xy 0.59594 0.047794)
(xy 0.511645 0.066639)
(xy 0.426335 0.080149)
(xy 0.340335 0.088284)
(xy 0.254 0.090999)
(xy -2.496 0.090999)
(xy -2.496 -4.909)
(xy 0.254 -4.909)
)
(stroke (width 0) (type solid)) (fill solid) (layer "F.SilkS") (tstamp 8dfe82ec-40a7-47e6-80e6-edff09265729))
(group "" (id 8ecd1901-04fe-4191-860f-7e11c9c603de)
(members
8dfe82ec-40a7-47e6-80e6-edff09265729
)
)
)
(footprint "common:MH120X230_#4" (layer "F.Cu")
(tstamp 9cf13263-b30a-43c4-9c5f-ce1ec46a078d)
(at 123.19 80.01)
(descr "Mounting Hole, #4")
(property "Sheetfile" "jlcpcb_template.kicad_sch")
(property "Sheetname" "")
(property "ki_description" "Hole")
(path "/f50864ff-d371-4215-9314-242c46489f70")
(zone_connect 2)
(attr exclude_from_pos_files)
(fp_text reference "MH2" (at 0 0) (layer "F.SilkS") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp ec12a169-aff4-4e07-b6d0-b514273aa0d3)
)
(fp_text value "Mounting_Hole" (at 0 0) (layer "F.Fab") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp cb9705b6-1b08-460e-9326-9bad2d122079)
)
(fp_circle (center 0 0) (end 3.175 0)
(stroke (width 0.1778) (type solid)) (fill none) (layer "F.SilkS") (tstamp fcdf4db1-d631-4177-b993-aeecad385c6b))
(pad "1" thru_hole circle (at 0 0) (size 5.842 5.842) (drill 3.048) (layers "*.Cu" "*.Mask")
(net 1 "GND") (pinfunction "1") (pintype "passive") (zone_connect 2) (tstamp 960cecf2-1d43-424a-a28c-370176f7ad84))
)
(footprint "common:MH120X230_#4" (layer "F.Cu")
(tstamp c0724124-56f1-4f5b-a04e-718e5095e569)
(at 80.01 123.19)
(descr "Mounting Hole, #4")
(property "Sheetfile" "jlcpcb_template.kicad_sch")
(property "Sheetname" "")
(property "ki_description" "Hole")
(path "/409ab3ca-8890-41e5-8523-0edcaaeb13ca")
(zone_connect 2)
(attr exclude_from_pos_files)
(fp_text reference "MH4" (at 0 0) (layer "F.SilkS") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp f9cf991c-bf67-4f90-a467-e70307be092f)
)
(fp_text value "Mounting_Hole" (at 0 0) (layer "F.Fab") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp 01fd67c4-2ef0-4f98-8948-9808ec8ff273)
)
(fp_circle (center 0 0) (end 3.175 0)
(stroke (width 0.1778) (type solid)) (fill none) (layer "F.SilkS") (tstamp 3778145b-ae9b-4f30-af8c-84bfddd3a262))
(pad "1" thru_hole circle (at 0 0) (size 5.842 5.842) (drill 3.048) (layers "*.Cu" "*.Mask")
(net 1 "GND") (pinfunction "1") (pintype "passive") (zone_connect 2) (tstamp 99e3e858-673d-4f44-ab6d-88b16c373d3f))
)
(footprint "common:MH120X230_#4" (layer "F.Cu")
(tstamp e6a1835e-7425-4888-a7a8-6177237b4709)
(at 80.01 80.01)
(descr "Mounting Hole, #4")
(property "Sheetfile" "jlcpcb_template.kicad_sch")
(property "Sheetname" "")
(property "ki_description" "Hole")
(path "/94346919-81db-46a4-8218-cd482107d9cb")
(zone_connect 2)
(attr exclude_from_pos_files)
(fp_text reference "MH1" (at 0 0) (layer "F.SilkS") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp 881d93b4-0525-4202-85fe-85a4efda2f16)
)
(fp_text value "Mounting_Hole" (at 0 0) (layer "F.Fab") hide
(effects (font (size 0.762 0.762) (thickness 0.127)))
(tstamp 2a7167b7-bcb7-4273-81dc-bac9fafa92e4)
)
(fp_circle (center 0 0) (end 3.175 0)
(stroke (width 0.1778) (type solid)) (fill none) (layer "F.SilkS") (tstamp b2231778-25a1-434a-abce-0f47d646481c))
(pad "1" thru_hole circle (at 0 0) (size 5.842 5.842) (drill 3.048) (layers "*.Cu" "*.Mask")
(net 1 "GND") (pinfunction "1") (pintype "passive") (zone_connect 2) (tstamp 6eda37ca-2ae5-47bd-8781-e110e3eb5ecf))
)
(gr_line (start 76.2 80.01) (end 76.2 123.19)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp 01eeaaa2-1d96-4fbe-a7c0-eab31686fcf1))
(gr_arc (start 76.2 80.01) (mid 77.315923 77.315923) (end 80.01 76.2)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp 43123108-00ac-4a91-9a21-505fe9f540b7))
(gr_line (start 80.01 76.2) (end 123.19 76.2)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp 48120843-2e2a-4d0a-8268-ab901cdcc4b7))
(gr_line (start 123.19 127) (end 80.01 127)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp 799ba558-8122-48f3-8f20-8a331e6eb16e))
(gr_arc (start 123.19 76.2) (mid 125.884077 77.315923) (end 127 80.01)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp 7d8e835b-274b-4347-b69b-509aad33d996))
(gr_arc (start 127 123.19) (mid 125.884077 125.884077) (end 123.19 127)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp 95fe84bb-7111-4bc6-b57d-cd7018d67a30))
(gr_line (start 127 123.19) (end 127 80.01)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp afaa3464-4511-458b-a9c8-5d3a7d059ede))
(gr_arc (start 80.01 127) (mid 77.315923 125.884077) (end 76.2 123.19)
(stroke (width 0.0254) (type default)) (layer "Edge.Cuts") (tstamp e58e6794-0db3-438b-9daf-38a35d163066))
(gr_text "JLCJLCJLCJLC" (at 96.52 124.46) (layer "F.SilkS") (tstamp 091288de-23c4-4edc-b533-5d552fa8084b)
(effects (font (size 1.016 1.016) (thickness 0.2032) bold) (justify left bottom))
)
(gr_text "BRENDANHAINES.COM\n${PROJECT_NAME}\nPCB REV: ${PCB_REVISION}" (at 101.6 116.84) (layer "F.SilkS") (tstamp 437bdfe8-9461-4ec7-870c-371d6a52dc16)
(effects (font (size 1.016 1.016) (thickness 0.2032) bold) (justify left bottom))
)
(gr_text "SERIAL NUMBER \n " (at 96.52 121.92) (layer "F.SilkS" knockout) (tstamp 6c2be5ce-85b7-4de0-9953-9a61d10d3e1f)
(effects (font (size 1.016 1.016) (thickness 0.2032) bold) (justify left bottom))
)
(dimension (type aligned) (layer "F.Fab") (tstamp 01ee0b31-f02b-4470-b2f7-07b9d1207f38)
(pts (xy 76.2 76.2) (xy 127 76.2))
(height -5.08)
(gr_text "2000.0000 mils" (at 101.6 69.977) (layer "F.Fab") (tstamp 01ee0b31-f02b-4470-b2f7-07b9d1207f38)
(effects (font (size 1.016 1.016) (thickness 0.127)))
)
(format (prefix "") (suffix "") (units 3) (units_format 1) (precision 4))
(style (thickness 0.127) (arrow_length 1.27) (text_position_mode 0) (extension_height 0.58642) (extension_offset 0.5) keep_text_aligned)
)
(dimension (type aligned) (layer "F.Fab") (tstamp 0517aec2-45e6-4cc3-9803-feed6af5a135)
(pts (xy 76.2 76.2) (xy 76.2 127))
(height 5.08)
(gr_text "2000.0000 mils" (at 69.977 101.6 90) (layer "F.Fab") (tstamp 0517aec2-45e6-4cc3-9803-feed6af5a135)
(effects (font (size 1.016 1.016) (thickness 0.127)))
)
(format (prefix "") (suffix "") (units 3) (units_format 1) (precision 4))
(style (thickness 0.127) (arrow_length 1.27) (text_position_mode 0) (extension_height 0.58642) (extension_offset 0.5) keep_text_aligned)
)
)

83
photodetector.kicad_prl Normal file
View File

@ -0,0 +1,83 @@
{
"board": {
"active_layer": 37,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40
],
"visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_password": "",
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "photodetector.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

513
photodetector.kicad_pro Normal file
View File

@ -0,0 +1,513 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.0254,
"copper_line_width": 0.127,
"copper_text_italic": false,
"copper_text_size_h": 0.635,
"copper_text_size_v": 0.635,
"copper_text_thickness": 0.127,
"copper_text_upright": true,
"courtyard_line_width": 0.0254,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.127,
"fab_text_italic": false,
"fab_text_size_h": 1.016,
"fab_text_size_v": 1.016,
"fab_text_thickness": 0.127,
"fab_text_upright": true,
"other_line_width": 0.127,
"other_text_italic": false,
"other_text_size_h": 0.635,
"other_text_size_v": 0.635,
"other_text_thickness": 0.127,
"other_text_upright": true,
"pads": {
"drill": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.17779999999999999,
"silk_text_italic": false,
"silk_text_size_h": 0.635,
"silk_text_size_v": 0.635,
"silk_text_thickness": 0.127,
"silk_text_upright": true,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "ignore",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "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_type_mismatch": "warning",
"hole_clearance": "error",
"hole_near_hole": "error",
"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",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.08889999999999999,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.19999999999999998,
"min_hole_clearance": 0.0,
"min_hole_to_hole": 0.254,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.635,
"min_text_thickness": 0.127,
"min_through_hole_diameter": 0.19999999999999998,
"min_track_width": 0.08889999999999999,
"min_via_annular_width": 0.127,
"min_via_diameter": 0.19999999999999998,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.127,
0.254
],
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
},
{
"diameter": 0.4064,
"drill": 0.2032
},
{
"diameter": 0.508,
"drill": 0.254
}
],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"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",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "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": "error",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "error",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "photodetector.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.127,
"diff_pair_gap": 0.127,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.127,
"line_style": 0,
"microvia_diameter": 0.508,
"microvia_drill": 0.254,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.127,
"via_diameter": 0.508,
"via_drill": 0.254,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 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,
"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": "",
"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_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"5c9b5493-28d5-442a-a1c0-43be0cca0b1b",
""
]
],
"text_variables": {
"PCB_REVISION": "0.0",
"PROJECT_NAME": "PROJECT_NAME"
}
}

595
photodetector.kicad_sch Normal file
View File

@ -0,0 +1,595 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid 5c9b5493-28d5-442a-a1c0-43be0cca0b1b)
(paper "A")
(title_block
(title "${PROJECT_NAME}")
(rev "${PCB_REVISION}")
(company "BRENDANHAINES.COM")
)
(lib_symbols
(symbol "bh:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "#PWR" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (at 0 -4.064 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Power Symbol" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "GND_0_1"
(polyline
(pts
(xy -0.635 -1.905)
(xy 0.635 -1.905)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -0.127 -2.54)
(xy 0.127 -2.54)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 0 -1.27)
(xy 0 0)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -1.27)
(xy -1.27 -1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "GND_1_1"
(pin power_in line (at 0 0 90) (length 0) hide
(name "GND" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "bh:LOGO_BH" (in_bom no) (on_board yes)
(property "Reference" "LOGO" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "" (at 0.635 0.635 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "common:LOGO_BH" (at 0.635 0.635 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 0.635 0.635 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LOGO_BH_0_1"
(rectangle (start -5.08 -4.445) (end 1.905 -5.715)
(stroke (width 0) (type default))
(fill (type outline))
)
(rectangle (start -5.08 4.445) (end -3.81 -4.445)
(stroke (width 0) (type default))
(fill (type outline))
)
(rectangle (start -5.08 5.715) (end 1.905 4.445)
(stroke (width 0) (type default))
(fill (type outline))
)
(rectangle (start -2.54 3.175) (end -1.27 -3.175)
(stroke (width 0) (type default))
(fill (type outline))
)
(rectangle (start -1.27 0.635) (end 0.635 -0.635)
(stroke (width 0) (type default))
(fill (type outline))
)
(polyline
(pts
(xy 1.905 0.635)
(xy 1.905 -0.635)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 3.7084 -1.8542)
(xy 3.7084 -1.6002)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 4.6482 -0.9906)
(xy 4.572 -1.1684)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 4.7244 -1.1176)
(xy 4.4704 -1.1684)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 4.8006 -1.2446)
(xy 4.2418 -1.2954)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 4.8514 -1.3716)
(xy 4.064 -1.4224)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 4.953 -2.54)
(xy 4.9022 -1.778)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 3.81 -2.54)
(xy 3.81 -2.3622)
(xy 3.7846 -2.2098)
(xy 3.7338 -2.032)
(xy 3.683 -1.8796)
(xy 3.6322 -1.7272)
(xy 3.5814 -1.6002)
(xy 3.7338 -1.524)
(xy 3.8862 -1.4478)
(xy 4.1148 -1.3208)
(xy 4.2926 -1.2192)
(xy 4.4704 -1.0922)
(xy 4.6482 -0.9652)
(xy 4.7498 -1.143)
(xy 4.8514 -1.3462)
(xy 4.9276 -1.5748)
(xy 4.9784 -1.778)
(xy 5.0292 -1.9812)
(xy 5.0546 -2.1844)
(xy 5.08 -2.54)
)
(stroke (width 0) (type default))
(fill (type none))
)
(rectangle (start 0.635 3.175) (end 1.905 -3.175)
(stroke (width 0) (type default))
(fill (type outline))
)
(arc (start 1.905 -5.715) (mid 4.1501 -4.7851) (end 5.08 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -5.588) (mid 4.0603 -4.6953) (end 4.953 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -5.461) (mid 3.9705 -4.6055) (end 4.826 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -5.334) (mid 3.8807 -4.5157) (end 4.699 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -5.207) (mid 3.7909 -4.4259) (end 4.572 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -5.08) (mid 3.7011 -4.3361) (end 4.445 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -4.953) (mid 3.6112 -4.2462) (end 4.318 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -4.826) (mid 3.5214 -4.1564) (end 4.191 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -4.699) (mid 3.4316 -4.0666) (end 4.064 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -4.572) (mid 3.3418 -3.9768) (end 3.937 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -4.445) (mid 3.252 -3.887) (end 3.81 -2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -0.635) (mid 4.1501 0.2949) (end 5.08 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -0.508) (mid 4.0603 0.3847) (end 4.953 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -0.381) (mid 3.9705 0.4745) (end 4.826 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -0.254) (mid 3.8807 0.5643) (end 4.699 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 -0.127) (mid 3.7909 0.6541) (end 4.572 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0) (mid 3.7011 0.7439) (end 4.445 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0.127) (mid 3.6112 0.8338) (end 4.318 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0.254) (mid 3.5214 0.9236) (end 4.191 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0.381) (mid 3.4316 1.0134) (end 4.064 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0.508) (mid 3.3418 1.1032) (end 3.937 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 1.905 0.635) (mid 3.252 1.193) (end 3.81 2.54)
(stroke (width 0) (type default))
(fill (type none))
)
(rectangle (start 3.81 -1.524) (end 4.826 -2.54)
(stroke (width 0) (type default))
(fill (type outline))
)
(arc (start 3.81 2.54) (mid 3.252 3.887) (end 1.905 4.445)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 3.937 2.54) (mid 3.3418 3.9768) (end 1.905 4.572)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.064 2.54) (mid 3.4316 4.0666) (end 1.905 4.699)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.191 2.54) (mid 3.5214 4.1564) (end 1.905 4.826)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.318 2.54) (mid 3.6112 4.2462) (end 1.905 4.953)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.445 2.54) (mid 3.7011 4.3361) (end 1.905 5.08)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.572 2.54) (mid 3.7909 4.4259) (end 1.905 5.207)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.699 2.54) (mid 3.8807 4.5157) (end 1.905 5.334)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.826 2.54) (mid 3.9705 4.6055) (end 1.905 5.461)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 4.953 2.54) (mid 4.0603 4.6953) (end 1.905 5.588)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 5.08 2.54) (mid 4.1501 4.7851) (end 1.905 5.715)
(stroke (width 0) (type default))
(fill (type none))
)
)
)
(symbol "bh:Mounting_Hole" (pin_numbers hide) (pin_names (offset 0.762) hide) (in_bom yes) (on_board yes)
(property "Reference" "MH" (at 0 7.62 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Mounting_Hole" (at 0 7.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "" (at 5.08 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 5.08 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Hole" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Pin* Test*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Mounting_Hole_0_1"
(circle (center 0 4.572) (radius 0.762)
(stroke (width 0) (type default))
(fill (type none))
)
(circle (center 0 4.572) (radius 2.032)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "Mounting_Hole_1_1"
(pin passive line (at 0 0 90) (length 2.54)
(name "1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
)
)
)
(symbol (lib_id "bh:LOGO_BH") (at 146.05 190.5 0) (unit 1)
(in_bom no) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 34f9aa7c-9331-4a4e-ada5-723181f4dcaa)
(property "Reference" "LOGO1" (at 146.05 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "~" (at 146.685 189.865 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "common:LOGO_BH" (at 146.685 189.865 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 146.685 189.865 0)
(effects (font (size 1.27 1.27)) hide)
)
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "LOGO1") (unit 1)
)
)
)
)
(symbol (lib_id "bh:Mounting_Hole") (at 63.5 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 409ab3ca-8890-41e5-8523-0edcaaeb13ca)
(property "Reference" "MH4" (at 67.31 186.563 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "Mounting_Hole" (at 63.5 182.88 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "common:MH120X230_#4" (at 68.58 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 68.58 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid e9fe4d85-5c86-4f7a-82e6-f2fd7d225d6e))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "MH4") (unit 1)
)
)
)
)
(symbol (lib_id "bh:GND") (at 38.1 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 502eb072-ba38-4b4c-a84e-3eecb76ad8ae)
(property "Reference" "#PWR02" (at 38.1 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (at 38.1 194.564 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "" (at 38.1 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 38.1 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 7132b3cd-5db9-4381-a698-ffffd0acedbb))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "#PWR02") (unit 1)
)
)
)
)
(symbol (lib_id "bh:GND") (at 25.4 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 789ca065-c39a-46bf-983b-0fdbd76a385f)
(property "Reference" "#PWR01" (at 25.4 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (at 25.4 194.564 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "" (at 25.4 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 25.4 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 1f2ca150-5a64-49a1-bbd4-dcb61762f9d2))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "#PWR01") (unit 1)
)
)
)
)
(symbol (lib_id "bh:Mounting_Hole") (at 50.8 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 79801d06-18e7-498c-8d4e-cc6cc5060c9d)
(property "Reference" "MH3" (at 54.61 186.563 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "Mounting_Hole" (at 50.8 182.88 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "common:MH120X230_#4" (at 55.88 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 55.88 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 3f50ef8e-cdc4-4af3-a657-0f48355bb37d))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "MH3") (unit 1)
)
)
)
)
(symbol (lib_id "bh:Mounting_Hole") (at 25.4 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 94346919-81db-46a4-8218-cd482107d9cb)
(property "Reference" "MH1" (at 29.21 186.563 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "Mounting_Hole" (at 25.4 182.88 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "common:MH120X230_#4" (at 30.48 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 30.48 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 974c2f03-6a35-4c79-90cb-e1ae51185391))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "MH1") (unit 1)
)
)
)
)
(symbol (lib_id "bh:GND") (at 63.5 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid d5be52a2-518e-4e89-827b-31eeb48d5b08)
(property "Reference" "#PWR04" (at 63.5 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (at 63.5 194.564 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "" (at 63.5 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 63.5 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 4044e045-29bd-4607-807f-67125a854a21))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "#PWR04") (unit 1)
)
)
)
)
(symbol (lib_id "bh:GND") (at 50.8 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid f3f370c0-1e6d-4161-848c-0c4f6ab8559f)
(property "Reference" "#PWR03" (at 50.8 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (at 50.8 194.564 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "" (at 50.8 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 50.8 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 1e10cdd5-879d-436b-a2a5-38904066b64c))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "#PWR03") (unit 1)
)
)
)
)
(symbol (lib_id "bh:Mounting_Hole") (at 38.1 190.5 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid f50864ff-d371-4215-9314-242c46489f70)
(property "Reference" "MH2" (at 41.91 186.563 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "Mounting_Hole" (at 38.1 182.88 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Footprint" "common:MH120X230_#4" (at 43.18 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at 43.18 190.5 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 9dd8d1f8-25ce-4da4-aed2-54d45a5a6ed9))
(instances
(project "jlcpcb_template"
(path "/5c9b5493-28d5-442a-a1c0-43be0cca0b1b"
(reference "MH2") (unit 1)
)
)
)
)
(sheet_instances
(path "/" (page "1"))
)
)

186
release.py Normal file
View File

@ -0,0 +1,186 @@
# %% Imports
import shutil
import subprocess
import zipfile
from pathlib import Path
# %% Find the relevant files
projects = list(Path(__file__).parent.glob("*.kicad_pro"))
if len(projects) == 1:
root_project = projects[0].resolve()
else:
raise NotImplementedError("Need to determine which project is the root one (when multiple exist for sim)")
project_name = root_project.stem
dir_out = root_project.parent / "outputs"
if dir_out.exists():
shutil.rmtree(str(dir_out))
dir_out.mkdir(parents=True)
print(f"Writing outputs to {dir_out}")
# %% Verify state of repository
# TODO: check if repo is committed and pushed or if we're in CI
# %% Check Kicad version
kicad_version = subprocess.run(["kicad-cli", "version"], capture_output=True, check=True).stdout.decode()
major, minor, patch = kicad_version.split(".")
if int(major) < 7:
raise ValueError(f"Requires minimum Kicad version 7.0.0 buf found {kicad_version}")
# %% General documentation PDFs
subprocess.run(
[
"kicad-cli",
"sch",
"export",
"pdf",
str(root_project.with_suffix(".kicad_sch")),
"-o",
str(dir_out / f"{project_name}_schematic.pdf"),
],
check=True,
)
subprocess.run(
[
"kicad-cli",
"pcb",
"export",
"pdf",
str(root_project.with_suffix(".kicad_pcb")),
"-o",
str(dir_out / f"{project_name}_fabrication_drawing.pdf"),
"--include-border-title",
"--layers",
",".join(["Edge.Cuts", "F.Cu", "F.Mask", "F.Silkscreen", "F.Fab"]),
],
check=True,
)
subprocess.run(
[
"kicad-cli",
"pcb",
"export",
"step",
str(root_project.with_suffix(".kicad_pcb")),
"-o",
str(dir_out / f"{project_name}.step"),
"--subst-models",
"--no-virtual", # TODO: decide if I want virtual models. I might just generate both
],
check=True,
)
# %% Fabrication Files
dir_gerber = dir_out / f"{project_name}_gerbers"
dir_gerber.mkdir(exist_ok=True)
subprocess.run(
[
"kicad-cli",
"pcb",
"export",
"gerbers",
str(root_project.with_suffix(".kicad_pcb")),
"-o",
str(dir_gerber),
],
check=True,
)
subprocess.run(
[
"kicad-cli",
"pcb",
"export",
"drill",
str(root_project.with_suffix(".kicad_pcb")),
"--separate-files",
"--generate-map", # not necessary but kinda nice since I can't nicely make a drill table in the main pdf
# "-o", # -0 flag is not working so I'm just using cwd instead
# str(dir_gerber),
],
cwd=str(dir_gerber.resolve()),
check=True,
)
# TODO: add version strings to every single filename
# %% Zip up the gerbers
with zipfile.ZipFile(dir_gerber.with_suffix(".zip"), "w") as z:
for f in dir_gerber.glob("*"):
z.write(f, f.name)
# %% Assembly files
# Assembly Drawing
subprocess.run(
[
"kicad-cli",
"pcb",
"export",
"pdf",
str(root_project.with_suffix(".kicad_pcb")),
"-o",
str(dir_out / f"{project_name}_assembly_drawing.pdf"),
"--include-border-title",
"--layers",
",".join(["Edge.Cuts", "F.Mask", "F.Silkscreen", "F.Fab"]),
],
check=True,
)
# Position Files
subprocess.run(
[
"kicad-cli",
"pcb",
"export",
"pos",
str(root_project.with_suffix(".kicad_pcb")),
"-o",
str(dir_out / f"{project_name}.pos"),
"--format",
"ascii",
"--side",
"both",
],
check=True,
)
# BOM
subprocess.run(
[
"kicad-cli",
"sch",
"export",
"python-bom",
str(root_project.with_suffix(".kicad_sch")),
"-o",
str(dir_out / f"{project_name}_bom.xml"),
],
check=True,
)
subprocess.run(
[
"python3",
"/home/brendan/Documents/projects/bhht/common_libraries/plugins/bom_csv_grouped_extra.py", # TODO: move this
str(dir_out / f"{project_name}_bom.xml"),
str(dir_out / f"{project_name}_bom.csv"),
],
check=True,
)
# # Interactive BOM
# subprocess.run(
# [
# "python3",
# "path/to/InteractiveHtmlBom/generate_interactive_bom.py", # TODO: locate this somewhere reasonable
# str(root_project.with_suffix(".kicad_pcb")),
# ],
# check=True,
# )

4
sym-lib-table Normal file
View File

@ -0,0 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "bh")(type "KiCad")(uri "${KIPRJMOD}/common_libraries/bh.kicad_sym")(options "")(descr ""))
)