├── pcb-common ├── .gitignore ├── models ├── launch.pretty │ ├── MountingHole.kicad_mod │ ├── SOT-23.kicad_mod │ ├── R_0402_1005Metric.kicad_mod │ ├── C_0402_1005Metric.kicad_mod │ ├── LED_SK6805-EC15.kicad_mod │ ├── SOT-23-5.kicad_mod │ ├── SOT-563.kicad_mod │ ├── W-DFN2020-8_Type_C.kicad_mod │ ├── DFN-10_1x2.5mm_P0.5mm.kicad_mod │ ├── USB3_A_CnC_Tech_1003-002-01100.kicad_mod │ ├── QFN-16-1EP_2.6x2.6mm_P0.4mm_EP1.1x1mm.kicad_mod │ ├── QFN-20-1EP_2.5x4.5mm_P0.5mm_EP1x3mm.kicad_mod │ ├── USB_C_Receptacle_Amphenol_12401610E4-2A.kicad_mod │ ├── AFC07-S20FCC-00.kicad_mod │ └── QFN-100-1EP_12x12mm_P0.4mm_EP8x8mm.kicad_mod ├── README.md └── Kailh.pretty │ └── Kailh_socket_MX.kicad_mod ├── pcb-iso ├── I2C.md ├── docs ├── models ├── .gitignore ├── sym-lib-table ├── fp-lib-table ├── launch-iso.kicad_prl └── launch-iso.kicad_pro ├── benchmark ├── .gitignore ├── Cargo.toml └── src │ └── main.rs ├── pcb-heavy ├── models ├── .gitignore ├── sym-lib-table ├── fp-lib-table ├── launch-heavy.kicad_prl └── launch-heavy.kicad_pro ├── .gitignore ├── pcb ├── models │ ├── SOD128.FCStd │ ├── LED_1515.FCStd │ ├── PTN5110.FCStd │ ├── PUSB3FR4.FCStd │ ├── USB7206.FCStd │ ├── OSC_2.5x3.2.FCStd │ ├── AFC07-S20FCC-00.FCStd │ ├── GT-TC025D-H0065.FCStd │ ├── BSPG1350.igs │ ├── BSPG1425.stp │ ├── CPG1232.stp │ ├── CPG1425.stp │ ├── LED_1515.step │ ├── PTN5110.step │ ├── PUSB3FR4.step │ ├── SOD128.step │ ├── SOT764-1.step │ ├── USB7206.step │ ├── 1003-002-01100.stp │ ├── AFC07-S20FCC-00.step │ ├── CPG151101S11.stp │ ├── CPG1511F01S11.stp │ ├── GT-TC025D-H0065.step │ ├── OSC_2.5x3.2.step │ ├── M-12401610E42A-REVT2.stp │ └── TYPE-C-31-M-12--3DModel-STEP-56544_license.txt ├── docs │ ├── USB7206_EVB_schematic.PDF │ ├── AP22811.pdf │ ├── BSPG1350.pdf │ ├── CPG1232.pdf │ ├── AP3441-L.pdf │ ├── AP61302.pdf │ ├── CBTL02043.pdf │ ├── ECS-3225MV.pdf │ ├── PTN5110_SDS.pdf │ ├── PUSB3FR4.pdf │ ├── SK6805-EC15.pdf │ ├── USB7206.pdf │ ├── sn74lvc1g08.pdf │ ├── tlv62585.pdf │ ├── 1003-002-01100.pdf │ ├── PTN5110_AN12137.pdf │ ├── USB72x6-USB7252-Errata-80000847B.pdf │ ├── AN26.2-Application-Note-DS00001876C.pdf │ ├── Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf │ ├── USB7206-Evaluation-Kit-Users-Guide-50002937A.pdf │ ├── USB7206-Hardware-Design-Checklist-00003336A.pdf │ └── AN2935-Configuration-of-USB7202-USB7206-USB725x-Application-Note-00002935A.pdf ├── .gitignore ├── launch-pcb.png ├── sym-lib-table ├── fp-lib-table ├── launch.kicad_dru ├── launch.kicad_prl ├── I2C.md └── launch.kicad_pro ├── pcb-lite ├── .gitignore ├── sym-lib-table ├── fp-lib-table ├── launch-lite.kicad_prl └── launch-lite.kicad_pro ├── pcb-lite-iso ├── .gitignore ├── sym-lib-table ├── fp-lib-table ├── launch-lite-iso.kicad_prl └── launch-lite-iso.kicad_pro ├── .gitmodules ├── regulatory ├── launch_upc_qr.png ├── launch-lite_upc_qr.png ├── launch_1_upc_1dcode.png ├── launch_lite_1_upc_1dcode.png ├── launch_1_upc_detail.txt └── launch_lite_1_upc_detail.txt ├── chassis ├── launch │ ├── CAD │ │ ├── Launch V1.step │ │ ├── Steel Blank.f3d │ │ ├── TPU Foot V1.f3d │ │ ├── KEYALU-001001.f3d │ │ ├── KEYALU-001001.step │ │ ├── KEYALU-002001.step │ │ ├── KEYALU-002002.f3d │ │ ├── KEYALU-003001.step │ │ ├── KEYALU-003002.f3d │ │ ├── Launch Foot V1.step │ │ ├── Launch PCBA V1.step │ │ ├── M3 Screw Isolation.f3d │ │ ├── Launch Steel Blank V1.step │ │ └── M3 Screw Isolation.step │ ├── launch-chassis.png │ └── Drawings │ │ ├── KEYALU-001001 R1.pdf │ │ ├── KEYALU-002001 R1.pdf │ │ ├── KEYALU-003001.pdf │ │ ├── Launch Magnet R1.pdf │ │ └── Launch Steel Plate R1.pdf ├── launch-heavy │ ├── CAD │ │ ├── Key Caps.step │ │ ├── PN-000336 v7.f3d │ │ ├── PN-000336 v7.step │ │ ├── PN-000337 v19.f3d │ │ ├── PN-000337 v19.step │ │ ├── PN-000338 v10.f3d │ │ ├── PN-000338 v10.step │ │ ├── Heavy Production V1.step │ │ └── PCB V1 - Physical Place Holder.step │ └── Drawings │ │ ├── PN-000336 v8 v2.pdf │ │ ├── PN-000337 v2.pdf │ │ └── PN-000338 Drawing v2.pdf ├── launch-lite │ ├── CAD │ │ ├── Key Caps.step │ │ ├── Lite V1.step │ │ ├── Lite V2.step │ │ ├── Lite v18.step │ │ ├── PN-000164 v28.f3d │ │ ├── PN-000164 v28.step │ │ ├── PN-000164 v32.f3d │ │ ├── PN-000164 v32.step │ │ ├── PN-000166 v11.f3d │ │ ├── PN-000166 v11.step │ │ ├── PN-000166 v14.f3d │ │ ├── PN-000166 v14.step │ │ └── PCB V1 - Physical Place Holder.step │ └── Drawings │ │ ├── PN-000164 v28 v1.pdf │ │ ├── PN-000164 v28 v2.pdf │ │ ├── PN-000164 v28 v3.pdf │ │ ├── PN-000166 v11 v2.pdf │ │ └── PN-000166 v11 v4.pdf └── shared-components │ ├── CAD │ ├── PN-000160 v3.f3d │ ├── PN-000173.f3d │ ├── PN-000173.step │ ├── PN-000160 v3.step │ ├── PN-000163 v6.f3d │ ├── PN-000163 v6.step │ ├── PN-000174 v6.f3d │ ├── PN-000174 v6.step │ ├── PN-000176 v3.f3d │ ├── PN-000176 v3.step │ ├── AS_TEST_STABIL_ASM v2.f3d │ ├── AS_TEST_STABIL_ASM v2.step │ └── M3x10mm Countersunk - 91698A306.step │ └── Drawings │ ├── PN-0000173 v1 v1.pdf │ ├── PN-000160 v3 v1.pdf │ ├── PN-000163 v6 v1.pdf │ ├── PN-000176 v3 v2.pdf │ └── PN-000174 Drawing v1.pdf ├── packaging ├── launch-keyboard-box-bottom.ai ├── launch-keyboard-box-bottom.pdf ├── launch_1_packaging_dielines.pdf ├── Launch_Packaging_reference.step ├── launch-keyboard-box-top_with-artwork.ai └── launch-keyboard-box-top_with-artwork.pdf ├── .gitattributes ├── scripts ├── production.sh ├── leds-lite.sh ├── leds.sh ├── add_dfu_header.py ├── lvfs-uf2.sh ├── leds-heavy.sh └── lvfs-dfu.sh └── README.md /pcb-common/.gitignore: -------------------------------------------------------------------------------- 1 | *.bak -------------------------------------------------------------------------------- /pcb-iso/I2C.md: -------------------------------------------------------------------------------- 1 | ../pcb/I2C.md -------------------------------------------------------------------------------- /pcb-iso/docs: -------------------------------------------------------------------------------- 1 | ../pcb/docs/ -------------------------------------------------------------------------------- /pcb-iso/models: -------------------------------------------------------------------------------- 1 | ../pcb/models/ -------------------------------------------------------------------------------- /benchmark/.gitignore: -------------------------------------------------------------------------------- 1 | /target/ 2 | -------------------------------------------------------------------------------- /pcb-common/models: -------------------------------------------------------------------------------- 1 | ../pcb/models/ -------------------------------------------------------------------------------- /pcb-heavy/models: -------------------------------------------------------------------------------- 1 | ../pcb/models -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | *~ 3 | *autosave* 4 | *auto_saved* -------------------------------------------------------------------------------- /pcb/models/SOD128.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/SOD128.FCStd -------------------------------------------------------------------------------- /pcb/models/LED_1515.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/LED_1515.FCStd -------------------------------------------------------------------------------- /pcb/models/PTN5110.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/PTN5110.FCStd -------------------------------------------------------------------------------- /pcb/models/PUSB3FR4.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/PUSB3FR4.FCStd -------------------------------------------------------------------------------- /pcb/models/USB7206.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/USB7206.FCStd -------------------------------------------------------------------------------- /pcb/models/OSC_2.5x3.2.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/OSC_2.5x3.2.FCStd -------------------------------------------------------------------------------- /pcb/models/AFC07-S20FCC-00.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/AFC07-S20FCC-00.FCStd -------------------------------------------------------------------------------- /pcb/models/GT-TC025D-H0065.FCStd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/models/GT-TC025D-H0065.FCStd -------------------------------------------------------------------------------- /pcb-heavy/.gitignore: -------------------------------------------------------------------------------- 1 | *-bak 2 | fp-info-cache 3 | *.bck 4 | bom 5 | launch.step 6 | gerber 7 | *-backups 8 | *.pdf 9 | *.step -------------------------------------------------------------------------------- /pcb-iso/.gitignore: -------------------------------------------------------------------------------- 1 | *-bak 2 | fp-info-cache 3 | *.bck 4 | bom 5 | launch.step 6 | gerber 7 | *-backups 8 | *.pdf 9 | *.csv -------------------------------------------------------------------------------- /pcb-lite/.gitignore: -------------------------------------------------------------------------------- 1 | *-bak 2 | fp-info-cache 3 | *.bck 4 | bom 5 | launch.step 6 | gerber 7 | *-backups 8 | *.pdf 9 | *.step -------------------------------------------------------------------------------- /pcb/docs/USB7206_EVB_schematic.PDF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/system76/launch/HEAD/pcb/docs/USB7206_EVB_schematic.PDF -------------------------------------------------------------------------------- /pcb-lite-iso/.gitignore: -------------------------------------------------------------------------------- 1 | *-bak 2 | fp-info-cache 3 | *.bck 4 | bom 5 | launch.step 6 | gerber 7 | *-backups 8 | *.pdf 9 | *.step -------------------------------------------------------------------------------- /pcb/.gitignore: -------------------------------------------------------------------------------- 1 | *-bak 2 | fp-info-cache 3 | *.bck 4 | bom 5 | launch.step 6 | gerber 7 | *-backups 8 | *.pdf 9 | *.csv 10 | *.lck 11 | *.FCStd1 -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "firmware"] 2 | path = firmware 3 | url = https://github.com/system76/qmk_firmware.git 4 | branch = "0.7.103_backup_DO_NOT_DELETE" 5 | -------------------------------------------------------------------------------- /pcb-heavy/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.kicad_sym")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /pcb-iso/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.kicad_sym")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /pcb-lite/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.kicad_sym")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /pcb/docs/AP22811.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:55663295ab4c8b6207af1db702a1eff14cbb3b28c213caf7d2f2e822d3e22577 3 | size 609077 4 | -------------------------------------------------------------------------------- /pcb/docs/BSPG1350.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:96ae12f1cf44f3fb090e3bd4802963ab2dfc7a7b639c390698175c1dba56e3bd 3 | size 81852 4 | -------------------------------------------------------------------------------- /pcb/docs/CPG1232.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:669c63664f9487d47d488cf7ff189bfe729c0f0f429bca82f01de10930878777 3 | size 186468 4 | -------------------------------------------------------------------------------- /pcb/launch-pcb.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cf0acf02c2d1ae917eb3cd60cffb4dc04b4831998c3792c0eb6911b2f1375026 3 | size 672920 4 | -------------------------------------------------------------------------------- /pcb-lite-iso/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.kicad_sym")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /pcb/docs/AP3441-L.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e7eaa2712321d06ec3d81fccf8be16fbb69dff1d2cc928505eb95eb9210a1044 3 | size 960188 4 | -------------------------------------------------------------------------------- /pcb/docs/AP61302.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ffe8b3f88e62189ddad0990af83f89c1e68ce180138fd03dbf1db5edcc486d36 3 | size 1874475 4 | -------------------------------------------------------------------------------- /pcb/docs/CBTL02043.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4331c6a3bcc277ae99f8a7a1e6e3726927d2011ab56e4b2507cb2d1212bfd35f 3 | size 270106 4 | -------------------------------------------------------------------------------- /pcb/docs/ECS-3225MV.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7a446f9f89cd286059c5d6e5d665990cf45d98c0857d54482ed787e871e2582e 3 | size 367313 4 | -------------------------------------------------------------------------------- /pcb/docs/PTN5110_SDS.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6bfbfabe1a0c343935ed467f07af62723751a649e2deb5b2520ec288c1f0cee9 3 | size 1749993 4 | -------------------------------------------------------------------------------- /pcb/docs/PUSB3FR4.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9761c8e9b72727be75b42c4a213ad65a29d5f975cce554293ca2b8be4597c7f4 3 | size 688729 4 | -------------------------------------------------------------------------------- /pcb/docs/SK6805-EC15.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eb19889e534ab1d89ed4dd3b2e1c40523c3c9b280a9358ead0a7a1f0c8d46a5c 3 | size 3094006 4 | -------------------------------------------------------------------------------- /pcb/docs/USB7206.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:26afc72a2d7c7d4f56753b90a610d8e490cba6e49dad2c6d8b7d76419db6466e 3 | size 2343204 4 | -------------------------------------------------------------------------------- /pcb/docs/sn74lvc1g08.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a962d8e9913682c14799976269ef9865c718c0d6de0e94e17e94369d6ca523a6 3 | size 2790146 4 | -------------------------------------------------------------------------------- /pcb/docs/tlv62585.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fa470268c153abca312ac3e6c349bbe38dc06bd79a57de0268ef453302b9c76a 3 | size 1803768 4 | -------------------------------------------------------------------------------- /pcb/models/BSPG1350.igs: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:620fc8c31de56506dbd8fad8ab52cef6d1c4f77f2729637b28b0f1efe7f7f07e 3 | size 1142998 4 | -------------------------------------------------------------------------------- /pcb/models/BSPG1425.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee2f1c60802993817be1a62f53b3146f5a1815d47e0493be936b9445eda87484 3 | size 280611 4 | -------------------------------------------------------------------------------- /pcb/models/CPG1232.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0d19da5cf27b9844715474e659615c82d7a989e7a0d8739d74fa27473d5d5954 3 | size 3293927 4 | -------------------------------------------------------------------------------- /pcb/models/CPG1425.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b434f75634450970e68e4d2acd6da801a9f4409c230b08ce753405d02efc0a67 3 | size 2021447 4 | -------------------------------------------------------------------------------- /pcb/models/LED_1515.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b810d2c33582788fb0899c5b46735818f6e83a704d8c22a6e81967ae806c132a 3 | size 16065 4 | -------------------------------------------------------------------------------- /pcb/models/PTN5110.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b6747cae79dca30693b343146685d5390d1f45751b515b3907828ffdc8ba288a 3 | size 15987 4 | -------------------------------------------------------------------------------- /pcb/models/PUSB3FR4.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0c9586448c23a29536e1013d974dc2c57cb193ea9a614d2d1e80531a48cc61a4 3 | size 16018 4 | -------------------------------------------------------------------------------- /pcb/models/SOD128.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:cbcf5a1625b32e20df653c67af1d34847ff8cb86bd1ff6f3545c777a758fd3f2 3 | size 16046 4 | -------------------------------------------------------------------------------- /pcb/models/SOT764-1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:46e2f1f22a3fd4e285017c2ece68716b4617d71c05258deb7514ddd11494ca2b 3 | size 1281505 4 | -------------------------------------------------------------------------------- /pcb/models/USB7206.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8f4d6afbff497fbfb8c20d4ad4bc3dcc452c59c68a7a1868e1c7e8a5ad3f440a 3 | size 15936 4 | -------------------------------------------------------------------------------- /pcb/docs/1003-002-01100.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2d356bc4011f18819ce4d8e00afddd8c38b406aa1e0786a518fa622834e455f4 3 | size 105928 4 | -------------------------------------------------------------------------------- /pcb/docs/PTN5110_AN12137.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5f36a3dea055939c656fdaa624874d6b7e8de99c266beaee5a211b80d2c5feac 3 | size 751723 4 | -------------------------------------------------------------------------------- /pcb/models/1003-002-01100.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:57f73bd36ba89b9733f994ab995e48f06a97739d2c42e6f4cd76424ac22c9f50 3 | size 6265347 4 | -------------------------------------------------------------------------------- /pcb/models/AFC07-S20FCC-00.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1cbb2121fc45e16bfe9e9e7591e9e3dd43856def59dbcf87381da2f2e931e854 3 | size 49506 4 | -------------------------------------------------------------------------------- /pcb/models/CPG151101S11.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bce906ea7c421337de0002a2a9474f6ab80c8076d89fc62a3288d2691742faca 3 | size 600894 4 | -------------------------------------------------------------------------------- /pcb/models/CPG1511F01S11.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5b4ed2bb84b012fe07b42af404cbdb37b99714d67bfc7086424767ebadf03596 3 | size 1587547 4 | -------------------------------------------------------------------------------- /pcb/models/GT-TC025D-H0065.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aaa8d1cd6a56d5ce372ecef3556ceac277872822c4ec41eb50c6da3b2b654334 3 | size 20585 4 | -------------------------------------------------------------------------------- /pcb/models/OSC_2.5x3.2.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eabf3f448c0b4d0800515ac9a2deb2864e387e07820b041e2ba36e8f1596a092 3 | size 16023 4 | -------------------------------------------------------------------------------- /regulatory/launch_upc_qr.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:806cf4c3d6afefad5121bee32989d1fb7279d72a1f8ff7c6f6ec87fb833b28c0 3 | size 1910 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/Launch V1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a069900a018051508dff9ae1fff5d0446250d27c13933d37f27b23c90b0c2a16 3 | size 23055006 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/Steel Blank.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bdb605aa3317611f0e9599581f7632051fbae358671bced1b12fa060fe44cb61 3 | size 49328 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/TPU Foot V1.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2dbf694482b602be0c3a58e8aaaa4fc18380daa0e21c8e882631fd2c372cc00b 3 | size 237974 4 | -------------------------------------------------------------------------------- /chassis/launch/launch-chassis.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e212d779ed6204a1346cf9dbb4c918486cc834428e772b50bce0ad42f5183dc1 3 | size 160449 4 | -------------------------------------------------------------------------------- /pcb/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (version 7) 3 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.kicad_sym")(options "")(descr "")) 4 | ) 5 | -------------------------------------------------------------------------------- /regulatory/launch-lite_upc_qr.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5f2d50bf30ba051513a13432026434dc7da2485dff8c69858053a22e68e3de8e 3 | size 41836 4 | -------------------------------------------------------------------------------- /regulatory/launch_1_upc_1dcode.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:296d8282b3f75339fe42d4cf7c0d73bc7f42615682075a120f07b1bccc9ed80c 3 | size 236666 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/Key Caps.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d033692b687997de690d20349a8c5ee431d09d3ec358090668ea8fed36b49e8c 3 | size 1041474 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/Key Caps.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:af2d167696b8abf7e38bfa0f300a16fca1cb3057d82a877f691174f3ef7cc336 3 | size 1015861 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/Lite V1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:418aa7511756f913c38e625e3faa799527d70b29a2cb49ebbce0286013e7294c 3 | size 8200433 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/Lite V2.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e1c2c0cda99fa61599f550e7cdff997ec48d23c2c53d726d2f632e7ba6fe846e 3 | size 8972783 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/Lite v18.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8d5ece81796af3298e1623cfd7aee1279f0f335b16f1af6d5f3a5fd4034f326c 3 | size 8362805 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/KEYALU-001001.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3dd72d0810f20142e1bd07fb776911c231f17470e509e7e16309b8ee5a28521d 3 | size 11388417 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/KEYALU-001001.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9b3f5618f4f4280b8a94d114ca4b305f96a37cf538c34be9bcd03ebadecdc97d 3 | size 3568620 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/KEYALU-002001.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:86dc9e1a051c00b6dabd952ef1168cfcd955ff6348e450948bfebfb2b6525168 3 | size 243372 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/KEYALU-002002.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3f828a2871d62f6502db1342e393e0ced6446016d1f374d3c176c87303b150c7 3 | size 3694992 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/KEYALU-003001.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ccf5e15edfef382eaab146f204873404784043a78db264fc050a4f6879097d8b 3 | size 77221 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/KEYALU-003002.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:932db0313c735d9f1d8bf506dd72a71adf841e7fff9264971ff3dcee7c6467ec 3 | size 143628 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/Launch Foot V1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3fc130117d9067711d06929bcbd31d3076413c772455fca064a46947067fe513 3 | size 25821 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/Launch PCBA V1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e8dffdd8f01f6576b11fe8a9c775d9e51500b4d3dfa697438a42e2b3526a5037 3 | size 17470647 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/M3 Screw Isolation.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c7e13f179ea4c4ea02ff9c52145f56a199d0f41a59be45c61383152b1a850bbe 3 | size 63771 4 | -------------------------------------------------------------------------------- /packaging/launch-keyboard-box-bottom.ai: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8a4ce77da222192b5e1843cc8a36094f4813f5abb7081b81ebb7ea0945b99377 3 | size 51352 4 | -------------------------------------------------------------------------------- /packaging/launch-keyboard-box-bottom.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:00d746126dd3d656051732d795f78c3ed86612e86f76ad0a69d1ff48283674be 3 | size 511897 4 | -------------------------------------------------------------------------------- /packaging/launch_1_packaging_dielines.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2f2e3d1f3b47d2d412aaa1aab03d5bd5ea7131d917da040513b10b548ee7c10f 3 | size 56959 4 | -------------------------------------------------------------------------------- /pcb/models/M-12401610E42A-REVT2.stp: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d63537c3fe241324a1c036335d5b161562f9c149c8f656f80c057a48b2877887 3 | size 8004045 4 | -------------------------------------------------------------------------------- /regulatory/launch_lite_1_upc_1dcode.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a6d4a4997e3c7876891d213a24cc8682ad79a5c6b937f6e517b3ebd49d75c09b 3 | size 319654 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PN-000336 v7.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:32c4d9ceb3a52565307517644f6101e2bee0bf86568fbfe012d2042eb1ef8164 3 | size 214614 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PN-000336 v7.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c44e407d1d5067e3a9060b39237200f29ffd6d6969a17bdc9e3dd59f8167a2e4 3 | size 53981 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PN-000337 v19.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7cbb4683162e274ddc6b1a27685e9f79bbb0fd91a99ec019cf63e63c5bc7ba8e 3 | size 21057333 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PN-000337 v19.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:98c5edea64ca5e9ac03c104c5830cbc4d5768dc2b51e2eb629e657b7b2c30cf2 3 | size 1104779 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PN-000338 v10.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:194654eeab8232ce0ac710024ce47242367fffd6681a26e7122250c557d9164e 3 | size 2437053 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PN-000338 v10.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9c5a93558ff5f3a78dc9fdfcc39113bc14cbfa2d9b27cdfc23c3f87286a40ac3 3 | size 268931 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000164 v28.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7f864bda6f2544119cb59b71448aa95f4c100c9c78924b59c67fda19342e334c 3 | size 16170260 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000164 v28.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4e08f24664df75f79c3f8d3514603434d55b275a31e1faecbe15e7e7e3e03c64 3 | size 883616 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000164 v32.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd91d142307bb7ee13c315edd3e695b813156792275ca26b4e096cdbc612ee09 3 | size 17546963 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000164 v32.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5548a907203dfb76749d24d7ed94d8a3ba8a339f77944a21d563d158f0b1b933 3 | size 790939 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000166 v11.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2f28ab5a5f41f7dd1474c1216701f6c0e59903d6da2dc9dd9038eb2091534872 3 | size 1790687 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000166 v11.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ee9b4fd7d1d0b8dce05b776ce6e559b7746a07be99577acf2833a156a7714caa 3 | size 226661 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000166 v14.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2b56cc3faffa6d3e8a0c26855e4c83c78cfaf4fe2de2063d949100e9bcce6942 3 | size 1898668 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PN-000166 v14.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f0cbca46a4235b0dc3e9a674c5b9beae4856fac226db3178a815de8ab333d28a 3 | size 209225 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/Launch Steel Blank V1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8c0f6cf08e39907f5410ff6d2ede4a855a65c84a6b805f8ee2c717936afaf258 3 | size 15704 4 | -------------------------------------------------------------------------------- /chassis/launch/CAD/M3 Screw Isolation.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6e3196bbea0c3453387175bb8d9a1bad8ba1cf78e7faaf62a066ca33889c7098 3 | size 10558 4 | -------------------------------------------------------------------------------- /chassis/launch/Drawings/KEYALU-001001 R1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d70ea4dda59cef7841eac06c2f7db2e5966172ae8f8ea36e73c3479120fb6c3c 3 | size 219352 4 | -------------------------------------------------------------------------------- /chassis/launch/Drawings/KEYALU-002001 R1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:9ba28d47f63f39fdd0f5e6cdfc6fe0e5c1e5f14f0a45a0501c52d3ed357e2cda 3 | size 134449 4 | -------------------------------------------------------------------------------- /chassis/launch/Drawings/KEYALU-003001.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5a7a1d8788eb023790d9df049063d74b972114ab9a90bfab4be82a43c96f230c 3 | size 131729 4 | -------------------------------------------------------------------------------- /chassis/launch/Drawings/Launch Magnet R1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6ff1f474bd245f1a0b699cb1b0bfa59e5c96d3a027c188e785748703ffe3b5da 3 | size 128270 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000160 v3.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c5c65230583dba6f14a2b58256f9d91b3e824ae137a4372caa1cc55970fec53f 3 | size 67995 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000173.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f5253cb419abf63ff01a9e8313103c4d1b67048a7d922a797edda08eb2eba44e 3 | size 51812 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000173.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1623967ec02753c18d63fca8f184b2d6d7659708c00edb7c43b8d50bd6bc4868 3 | size 9098 4 | -------------------------------------------------------------------------------- /packaging/Launch_Packaging_reference.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:634d5bb8401f20839fb5c628e8227f17f09b9942bbfdb5abb4519daa7a36222f 3 | size 425367 4 | -------------------------------------------------------------------------------- /pcb/docs/USB72x6-USB7252-Errata-80000847B.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a61e9c59d4e4d44df8d63cbf4f949aed05dcfced3d5658cb4d5e9ab570e2f74 3 | size 681875 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/Drawings/PN-000336 v8 v2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:067807a72f245e9d11ea47100ca31a5e01df3a27d3da35a8469caaae4024cda6 3 | size 132649 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/Drawings/PN-000337 v2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7e4868f6051416ca1faa6a8d877a0da3239df020abab62e303a027c7a8547859 3 | size 160588 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/Drawings/PN-000164 v28 v1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6117b658b26378dbe71c63e50c1d82c7e4653cad8e98338987f1f88aae949672 3 | size 160885 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/Drawings/PN-000164 v28 v2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ca0501fbc7dc07d3a0d19902d25854cc6d5e0df33b0181e7d6476712fe460dd 3 | size 143223 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/Drawings/PN-000164 v28 v3.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:48a5891397e5b0a11dd78d4bc35dee95fe56e50dd34b6fab0dbe97f050c04bb4 3 | size 159429 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/Drawings/PN-000166 v11 v2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:972763980f1ff5221e203d73a7ee72a750737996ae0870a9b7eb705d355fa105 3 | size 156464 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/Drawings/PN-000166 v11 v4.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:03e391ad8156c687256a44882c2de2ff46086d33eac6d52f66d7abc3d38f1c1c 3 | size 156296 4 | -------------------------------------------------------------------------------- /chassis/launch/Drawings/Launch Steel Plate R1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7730c6ab9a8ccb13c7f0214eecc8b29a13173ed9f425c9591b911e4cedb952ce 3 | size 127632 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000160 v3.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f3e3d13c88dd7792e994229b1cd238e8569e3eae5fb7d4d81f5ca09a9a086ed9 3 | size 10490 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000163 v6.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bcf6dcad741b38d9198ad06a62ca946fe9310459ca7085848356675e7637da79 3 | size 239241 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000163 v6.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:588f9b4bffbdd9711ab3624aa7933b9157fa95e3544037830f253f75d1ac68e7 3 | size 25798 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000174 v6.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7a21e98818fdac3486728c91ecce6a3b67fc8c187c7b1d1f0780daabec42ae22 3 | size 164683 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000174 v6.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0ef5057b36e001049f2fb1d9f0d931ab93a94ff6b9365c5692477c2d4bc4ec1b 3 | size 81146 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000176 v3.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ee40d77860b858cf5117c3c7df425e238f4b620268ea971d77de807c61acf1f 3 | size 130992 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/PN-000176 v3.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5dc020710645b42b96d7b0734f78e61f610ec910df1ead0bfd9a435730f14289 3 | size 10985 4 | -------------------------------------------------------------------------------- /packaging/launch-keyboard-box-top_with-artwork.ai: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:058f2f73f29146d3339206c5623f2fa453a4653738afe19e7e466a4b0570fb32 3 | size 619026 4 | -------------------------------------------------------------------------------- /pcb/docs/AN26.2-Application-Note-DS00001876C.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d74c49e44bac97cd0259c5e3df7b197adca1c650f6a1f4adfa9a6e4defbf5732 3 | size 1844962 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/Heavy Production V1.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:49c02789b17bae674013a27e60d976c8a7dd550cbfb9600b34f8b23a58c5c898 3 | size 22612226 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/Drawings/PN-000338 Drawing v2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a5ceda2144756cb39cc60cdca45833c0a24f1b08e39caf0813aae1b2a27459c9 3 | size 159511 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/AS_TEST_STABIL_ASM v2.f3d: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6ca6d4922b9045cab37d76f4a498f9f32311d6e671ae3446fe89f59f734d1b19 3 | size 322934 4 | -------------------------------------------------------------------------------- /chassis/shared-components/Drawings/PN-0000173 v1 v1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:54a7e5efb275cff75cc24258e59f1a41c1689d21a7feb7a4609b86046d8a9899 3 | size 132465 4 | -------------------------------------------------------------------------------- /chassis/shared-components/Drawings/PN-000160 v3 v1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:31b409b6a4665fde0f96e5228e74580c08fc2645f093ea20dc6d2ef91b472068 3 | size 130730 4 | -------------------------------------------------------------------------------- /chassis/shared-components/Drawings/PN-000163 v6 v1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0d33e296b9cf073673c58102a6c42bc606f9c12439c4da1c711781bee415e3d2 3 | size 130948 4 | -------------------------------------------------------------------------------- /chassis/shared-components/Drawings/PN-000176 v3 v2.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63f200e4f5d34cd1e2e0424643dba927d63d35deb8591cde86c08543ff896caf 3 | size 130828 4 | -------------------------------------------------------------------------------- /packaging/launch-keyboard-box-top_with-artwork.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5c3dde85c6245274e30eb7b92a89b68117100be21ffd159929febbc121fb5ffa 3 | size 1080685 4 | -------------------------------------------------------------------------------- /chassis/launch-lite/CAD/PCB V1 - Physical Place Holder.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b97698e3b068cd8a23c60c97c5dbf99faec9a081718fd13b9669fe43f8a5c2e9 3 | size 4891133 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/AS_TEST_STABIL_ASM v2.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a8bd3f34d44d0a9581e79ef376944bea22406303680b19cdea1c12460fd52b31 3 | size 555196 4 | -------------------------------------------------------------------------------- /chassis/shared-components/Drawings/PN-000174 Drawing v1.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:06300390b7a6c36b57f150ca3b01f82f91a72eec24afe483bc89ba6cb3e2ea91 3 | size 141990 4 | -------------------------------------------------------------------------------- /pcb/docs/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8e8c81dd4119062397bc08d677e7033d7abb4292628414c4e6e0a234cc53203a 3 | size 5610594 4 | -------------------------------------------------------------------------------- /pcb/docs/USB7206-Evaluation-Kit-Users-Guide-50002937A.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c1a8510413ec35ce853a5fa51c40ce47e5f18a538712fe390b9a28d9f98085d2 3 | size 5027780 4 | -------------------------------------------------------------------------------- /pcb/docs/USB7206-Hardware-Design-Checklist-00003336A.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:abeda3b82c6e5afea1c202ed6874fd55a7a4963d9884156850f7e41cd19c68fd 3 | size 3041149 4 | -------------------------------------------------------------------------------- /chassis/launch-heavy/CAD/PCB V1 - Physical Place Holder.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f8da84436917a7c6a3d9973c4d6692f2d3741378fb5c0e5e29d74b155c16bcf8 3 | size 19338228 4 | -------------------------------------------------------------------------------- /chassis/shared-components/CAD/M3x10mm Countersunk - 91698A306.step: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ab20f8ea7af55804147ad9daa82eae2e7477a4a6a16202775868ec3eed1d3a02 3 | size 401574 4 | -------------------------------------------------------------------------------- /pcb/docs/AN2935-Configuration-of-USB7202-USB7206-USB725x-Application-Note-00002935A.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6f67cff96fd075d5fab0784e1d44f59fcdd800ddfe04ee7a1482474c003c52ac 3 | size 1377706 4 | -------------------------------------------------------------------------------- /regulatory/launch_1_upc_detail.txt: -------------------------------------------------------------------------------- 1 | GS1 US Data Hub Sales Sheet 2 | Company Name: System 76, Inc. 3 | Brand Name: System76 4 | Product Description: Launch configurable keyboard 5 | GTIN: 00856287006668 6 | GTIN-12 (if applicable): 856287006668 7 | -------------------------------------------------------------------------------- /regulatory/launch_lite_1_upc_detail.txt: -------------------------------------------------------------------------------- 1 | GS1 US Data Hub Sales Sheet 2 | Company Name: System 76, Inc. 3 | Brand Name: System76 4 | Product Description: Launch Lite configurable keyboard 5 | GTIN: 00856287006538 6 | GTIN-12 (if applicable): 856287006538 7 | -------------------------------------------------------------------------------- /pcb/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "Kailh")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/Kailh.pretty")(options "")(descr "")) 3 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.pretty")(options "")(descr "")) 4 | ) 5 | -------------------------------------------------------------------------------- /pcb-heavy/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "Kailh")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/Kailh.pretty")(options "")(descr "")) 3 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.pretty")(options "")(descr "")) 4 | ) 5 | -------------------------------------------------------------------------------- /pcb-iso/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "Kailh")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/Kailh.pretty")(options "")(descr "")) 3 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.pretty")(options "")(descr "")) 4 | ) 5 | -------------------------------------------------------------------------------- /pcb-lite/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "Kailh")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/Kailh.pretty")(options "")(descr "")) 3 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.pretty")(options "")(descr "")) 4 | ) 5 | -------------------------------------------------------------------------------- /pcb-lite-iso/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "Kailh")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/Kailh.pretty")(options "")(descr "")) 3 | (lib (name "launch")(type "KiCad")(uri "${KIPRJMOD}/../pcb-common/launch.pretty")(options "")(descr "")) 4 | ) 5 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.igs filter=lfs diff=lfs merge=lfs -text 2 | *.pdf filter=lfs diff=lfs merge=lfs -text 3 | *.stp filter=lfs diff=lfs merge=lfs -text 4 | *.step filter=lfs diff=lfs merge=lfs -text 5 | *.png filter=lfs diff=lfs merge=lfs -text 6 | *.ai filter=lfs diff=lfs merge=lfs -text 7 | *.f3d filter=lfs diff=lfs merge=lfs -text 8 | -------------------------------------------------------------------------------- /benchmark/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "launch-benchmark" 3 | version = "0.1.0" 4 | authors = ["Jeremy Soller "] 5 | edition = "2018" 6 | 7 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 8 | 9 | [dependencies] 10 | chrono = "0.4" 11 | futures = "0.3" 12 | libc = "0.2" 13 | memmap = "0.7" 14 | usb-disk-probe = "0.1" 15 | -------------------------------------------------------------------------------- /pcb/launch.kicad_dru: -------------------------------------------------------------------------------- 1 | (version 1) 2 | 3 | (rule npth_clearance 4 | (constraint hole_clearance (min 0.3mm)) 5 | (condition "A.Type == 'Zone' && !B.isPlated()")) 6 | 7 | (rule npth_via_clearance 8 | (constraint hole_clearance (min 0.15mm)) 9 | (condition "A.Type == 'Via' && !B.isPlated()")) 10 | 11 | (rule via_edge_clearance 12 | (constraint edge_clearance (min 0.15mm)) 13 | (condition "A.Type == 'Via'")) 14 | 15 | (rule pad_edge_clearance 16 | (constraint edge_clearance (min 0.15mm)) 17 | (condition "A.Type == 'Pad'")) 18 | 19 | (rule track_edge_clearance 20 | (constraint edge_clearance (min 0.15mm)) 21 | (condition "A.Type == 'Track'")) -------------------------------------------------------------------------------- /pcb-common/launch.pretty/MountingHole.kicad_mod: -------------------------------------------------------------------------------- 1 | (module MountingHole (layer F.Cu) (tedit 5F70B341) 2 | (descr "Mounting Hole 2.7mm") 3 | (tags "mounting hole 2.7mm") 4 | (attr virtual) 5 | (fp_text reference REF** (at 0 -3.7) (layer F.SilkS) hide 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value MountingHole (at 0 3.7) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_circle (center 0 0) (end 2.95 0) (layer F.CrtYd) (width 0.05)) 12 | (fp_text user %R (at 0.3 0) (layer F.Fab) 13 | (effects (font (size 1 1) (thickness 0.15))) 14 | ) 15 | (pad 1 thru_hole circle (at 0 0) (size 7 7) (drill 4.75) (layers *.Cu *.Mask)) 16 | ) 17 | -------------------------------------------------------------------------------- /scripts/production.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | if [ -z "$1" ] 6 | then 7 | echo "$0 [model]" >&2 8 | exit 1 9 | fi 10 | MODEL="$1" 11 | 12 | make -C firmware distclean 13 | make -C firmware "system76/${MODEL}:default:production" 14 | 15 | #TODO: Should --dirty be used? 16 | REVISION="$(grep QMK_VERSION firmware/quantum/version.h | cut -d '"' -f2)" 17 | echo "REVISION: ${REVISION}" 18 | 19 | DATE="$(grep QMK_BUILDDATE firmware/quantum/version.h | cut -d '"' -f2 | cut -d '-' -f1,2,3)" 20 | echo "DATE: ${DATE}" 21 | 22 | NAME="${MODEL}_${REVISION}" 23 | echo "NAME: ${NAME}" 24 | 25 | BUILD="build/production/${NAME}" 26 | echo "BUILD: ${BUILD}" 27 | 28 | rm -rf "${BUILD}" 29 | mkdir -pv "${BUILD}" 30 | 31 | cp "firmware/system76_${MODEL}_default_production.hex" "${BUILD}/${NAME}.hex" 32 | avr-objcopy -I ihex -O binary "${BUILD}/${NAME}.hex" "${BUILD}/${NAME}.bin" 33 | -------------------------------------------------------------------------------- /scripts/leds-lite.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | LEDS=( 6 | LM4 LL4 LK4 LJ4 LI4 LH4 LG4 LF4 LE4 LD4 7 | LC4 LB4 LA4 LA5 LB5 LC5 LD5 LE5 LG5 LH5 8 | LI5 LJ5 LK5 LL5 LM5 LO3 LM3 LL3 LK3 LJ3 9 | LI3 LH3 LG3 LF3 LE3 LD3 LC3 LB3 LA3 LA2 10 | LB2 LC2 LD2 LE2 LF2 LG2 LH2 LI2 LJ2 LK2 11 | LL2 LM2 LN2 LO2 LO1 LN1 LM1 LL1 LK1 LJ1 12 | LI1 LH1 LG1 LF1 LE1 LD1 LC1 LB1 LA1 LO0 13 | ) 14 | 15 | min_x=60 16 | min_y=-73.95 17 | scale_x=280.25 18 | scale_y=76 19 | 20 | printf "LED\tX\tY\tRX\tRY\tSX\tSY\tMX\tMY\n" >&2 21 | for led in "${LEDS[@]}" 22 | do 23 | pos=($(grep "^${led}" pcb-lite/gerber/launch-lite-top.pos | tr -s ' ' | cut -d ' ' -f4,5)) 24 | x="${pos[0]}" 25 | y="${pos[1]}" 26 | rx=$(echo "$x - $min_x" | bc -lq) 27 | ry=$(echo "$min_y - $y" | bc -lq) 28 | sx=$(echo "$rx / $scale_x" | bc -lq) 29 | sy=$(echo "$ry / $scale_y" | bc -lq) 30 | mx=$(echo "224 * $sx" | bc -lq) 31 | my=$(echo "64 * $sy" | bc -lq) 32 | printf "%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\n" $led $x $y $rx $ry $sx $sy $mx $my >&2 33 | printf "{%.00f, %.00f},\n" $mx $my 34 | done 35 | -------------------------------------------------------------------------------- /scripts/leds.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | LEDS=( 6 | LM4 LL4 LK4 LJ4 LI4 LH4 LG4 LF4 LE4 LD4 7 | LC4 LB4 LA4 LA5 LB5 LC5 LD5 LE5 LG5 LH5 8 | LI5 LJ5 LK5 LL5 LM5 LO3 LM3 LL3 LK3 LJ3 9 | LI3 LH3 LG3 LF3 LE3 LD3 LC3 LB3 LA3 LA2 10 | LB2 LC2 LD2 LE2 LF2 LG2 LH2 LI2 LJ2 LK2 11 | LL2 LM2 LN2 LO2 LO1 LN1 LM1 LL1 LK1 LJ1 12 | LI1 LH1 LG1 LF1 LE1 LD1 LC1 LB1 LA1 LA0 13 | LB0 LC0 LD0 LE0 LF0 LG0 LH0 LI0 LJ0 LK0 14 | LL0 LM0 LN0 LO0 15 | ) 16 | 17 | min_x=10.0 18 | min_y=-4.95 19 | scale_x=4.75 20 | scale_y=19.0 21 | scale_w=59 22 | scale_h=5 23 | 24 | #printf "LED\tX\tY\tSX\tSY\tMX\tMY\n" 25 | for led in "${LEDS[@]}" 26 | do 27 | pos=($(grep "^\"${led}\"" pcb/gerber/launch-top-pos.csv | cut -d ',' -f4,5 | sed 's/,/ /g')) 28 | x="${pos[0]}" 29 | y="${pos[1]}" 30 | rx=$(echo "$x - $min_x" | bc -lq) 31 | ry=$(echo "$min_y - $y" | bc -lq) 32 | sx=$(echo "$rx / $scale_x" | bc -lq) 33 | sy=$(echo "$ry / $scale_y" | bc -lq) 34 | mx=$(echo "(224 / $scale_w) * $sx" | bc -lq) 35 | my=$(echo "(64 / $scale_h) * $sy" | bc -lq) 36 | printf "%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\n" $led $x $y $rx $ry $sx $sy $mx $my >&2 37 | printf "{%.00f, %.00f},\n" $mx $my 38 | done 39 | -------------------------------------------------------------------------------- /pcb/models/TYPE-C-31-M-12--3DModel-STEP-56544_license.txt: -------------------------------------------------------------------------------- 1 | This model was obtained from SnapEDA. 2 | 3 | From their terms: 4 | 5 | 4 USE OF DESIGN FILES LICENSE 6 | 4.1 Creative Commons Attribute License: Individual Design Files downloaded from SnapEDA are licensed to you pursuant to Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA) ("Creative Commons License") and pursuant to the Design Exception 1.0 set forth below in Subsection 4.2. The Creative Commons License allows you to use Design Files downloaded from SnapEDA for commercial and personal purposes free of charge, and to make derivative works as set forth below. 7 | 8 | 4.2 Design Exception 1.0: You and your sub-licensees are hereby licensed to design, manufacture, use and distribute, circuit board designs and circuit boards formed by combining Design Files provided by SnapEDA with other circuit elements of your choosing. You may then convey such combinations under terms of your choice, and are not required to attribute SnapEDA as the source, even if such actions would otherwise violate the terms of the Creative Commons License. For clarity, any files shared publicly containing Design Files are still subject to the Site License restriction of 5.1.(g) 9 | -------------------------------------------------------------------------------- /pcb-lite/launch-lite.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "000ffff_8000007f", 67 | "zone_display_mode": 0 68 | }, 69 | "meta": { 70 | "filename": "launch-lite.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /pcb-lite-iso/launch-lite-iso.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "000ffff_8000007f", 67 | "zone_display_mode": 0 68 | }, 69 | "meta": { 70 | "filename": "launch-lite-iso.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /pcb-iso/launch-iso.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 44, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6200000047683716 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": false, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "000ffff_8000007f", 67 | "zone_display_mode": 0 68 | }, 69 | "meta": { 70 | "filename": "launch-iso.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /pcb-heavy/launch-heavy.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6000000238418579 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": false, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "003ffff_80000001", 67 | "zone_display_mode": 0 68 | }, 69 | "meta": { 70 | "filename": "launch-heavy.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /pcb/launch.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_netclasses": [], 7 | "hidden_nets": [], 8 | "high_contrast_mode": 0, 9 | "net_color_mode": 1, 10 | "opacity": { 11 | "images": 0.6, 12 | "pads": 1.0, 13 | "tracks": 1.0, 14 | "vias": 1.0, 15 | "zones": 0.6200000047683716 16 | }, 17 | "ratsnest_display_mode": 0, 18 | "selection_filter": { 19 | "dimensions": true, 20 | "footprints": true, 21 | "graphics": true, 22 | "keepouts": true, 23 | "lockedItems": false, 24 | "otherItems": true, 25 | "pads": true, 26 | "text": true, 27 | "tracks": true, 28 | "vias": true, 29 | "zones": true 30 | }, 31 | "visible_items": [ 32 | 0, 33 | 1, 34 | 2, 35 | 3, 36 | 4, 37 | 5, 38 | 6, 39 | 8, 40 | 9, 41 | 10, 42 | 11, 43 | 12, 44 | 13, 45 | 14, 46 | 15, 47 | 16, 48 | 17, 49 | 18, 50 | 19, 51 | 20, 52 | 21, 53 | 22, 54 | 23, 55 | 24, 56 | 25, 57 | 26, 58 | 27, 59 | 28, 60 | 29, 61 | 30, 62 | 32, 63 | 33, 64 | 34, 65 | 35, 66 | 36 67 | ], 68 | "visible_layers": "000ffff_8000007f", 69 | "zone_display_mode": 0 70 | }, 71 | "meta": { 72 | "filename": "launch.kicad_prl", 73 | "version": 3 74 | }, 75 | "project": { 76 | "files": [] 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /pcb/I2C.md: -------------------------------------------------------------------------------- 1 | I2C addresses in this document include the R/W bit. 2 | 3 | # USB Hub @ 0x5A 4 | 5 | As I2C pullups are present on this board, the hub will wait for configuration before becoming active. The upstream superspeed mux should be set first. 6 | 7 | # Type C Port Controllers (TCPC) 8 | - Register information is in PTN5110_AN2137.pdf rather than the data sheet. 9 | - The FRS pin is used as a GPIO to control the superspeed mux. See EXT_GPIO_CONFIG/CONTROL registers. 10 | - The interrupt pin is not wired due to lack of pins on the AVR. The TCPCs will need to be periodically polled. 11 | - All support full USB PD communication, but this does not have to be used 12 | - Can source VCONN for active cables, electronic markers 13 | 14 | ## Upstream @ 0xA2 15 | - The CC_STATUS reigster can be read to determine connector orientation and available power. 16 | - A PD contract may allow more power than indicated in CC_STATUS, for example, a device that can source 2 A would report 1.5 A via CC_STATUS. 17 | - PTN5110DHQ which defaults to acting as a power sink. 18 | - Defaults should be OK except for GPIO setup on FRS. 19 | ## Downstream C Left @ 0xA4, Right @ 0xA0 20 | - PTN5110THQ which defaults to acting as a power source 21 | - The AVR will need to poll for cable connects and disconnects. tVbusOFF in the USB C spec is 650 ms which sets the maximum polling interval. 22 | - The SRC pin is used on the downstream ports to enable sourcing power. It may be required to switch the SRC pin to a GPIO so that sourcing power is only enabled after the superspeed mux is set properly. 23 | - It's probably best to only offer default power. 24 | -------------------------------------------------------------------------------- /scripts/add_dfu_header.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: utf-8 -*- 3 | # 4 | # Copyright (C) 2020 Richard Hughes 5 | # 6 | # SPDX-License-Identifier: LGPL-2.1+ 7 | 8 | import struct 9 | import zlib 10 | import argparse 11 | 12 | 13 | def main(bin_fn, dfu_fn, pad, vid, pid, rev): 14 | 15 | # read binary file 16 | with open(bin_fn, 'rb') as f: 17 | blob = f.read() 18 | 19 | # pad blob to a specific size 20 | if pad: 21 | while len(blob) < int(pad, 16): 22 | blob += b'\0' 23 | 24 | # create DFU footer with checksum 25 | blob += struct.pack( 26 | '= Launch 20 | 1.1. Note that USB7006 is only Gen 1 USB. 21 | 22 | - USB7206: original, do not install R18, R28 if using, Gen 2 (10 Gb/s) 23 | - USB7216: alternate, install R18, R28, Gen 2 (10 Gb/s), has built Type-C support for 1 port which we are not using to retain ability to use USB7206. 24 | - USB7006: alternate, do not install R18, R28 if using, Gen 1 (5 Gb/s) 25 | 26 | #### PTN5111 Type-C port controller 27 | 28 | NXP introduced the PTN5110NHQZ and discontinued all others in the 29 | PTN5110 line. It defaults to a toggling dual role port, will need to 30 | be configured by software for the downstream facing ports. The 31 | upstream facing port should select the correct mode. No hardware 32 | changes are required. 33 | 34 | - PTN5110THQ: original for downstream ports (U12, U13), defaults to sourcing power 35 | - PTN5110DHQ: original for upstream port (U11), defaults to sinking power 36 | - PTN5110NHQZ: replacement, defaults to dual role port, same part used all 3 locations 37 | 38 | #### Buck converters 39 | 40 | Changes were all due to availability problems. Each part only works 41 | with the listed PCB revisions. 42 | 43 | - TI TLV62585PDRL: Launch 1.0, 1.1 44 | - Diodes Inc. AP3441LSHE-7B: Launch 1.2, 1.4 45 | - Diodes Inc. AP61302: Launch 1.3 46 | - Aerosemi M3406-ADJ: Launch Lite 1.0 (includes ISO) 47 | - Aerosemi MT3410LB: Launch 2.0 (includes ISO) -------------------------------------------------------------------------------- /pcb-common/launch.pretty/LED_SK6805-EC15.kicad_mod: -------------------------------------------------------------------------------- 1 | (module LED_SK6805-EC15 (layer F.Cu) (tedit 5F81CF8C) 2 | (descr "1.5mm x 1.5mm LED") 3 | (tags LED) 4 | (attr smd) 5 | (fp_text reference REF** (at 0 -1.8) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value LED (at 0 2.25) (layer F.Fab) hide 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_poly (pts (xy 0.1 0.7) (xy -0.1 0.5) (xy 0.1 0.3)) (layer F.SilkS) (width 0)) 12 | (fp_line (start -1 1) (end 1 1) (layer F.SilkS) (width 0.12)) 13 | (fp_line (start -1 -1) (end 1 -1) (layer F.SilkS) (width 0.12)) 14 | (fp_line (start -1 -0.55) (end -1 -1) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start 1 -1) (end -1 -1) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 1 1) (end 1 -1) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1 1) (end 1 1) (layer F.Fab) (width 0.1)) 18 | (fp_line (start -1 -1) (end -1 1) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 0 -1) (end -1 0) (layer F.Fab) (width 0.1)) 20 | (fp_line (start 1.2 -1.2) (end -1.2 -1.2) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start 1.2 1.2) (end 1.2 -1.2) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start -1.2 1.2) (end 1.2 1.2) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start -1.2 -1.2) (end -1.2 1.2) (layer F.CrtYd) (width 0.05)) 24 | (fp_circle (center 0 0) (end 0.8 0) (layer F.Fab) (width 0.1)) 25 | (fp_text user %R (at 0 0) (layer F.Fab) 26 | (effects (font (size 0.5 0.5) (thickness 0.075))) 27 | ) 28 | (pad 2 smd rect (at -0.475 0.475) (size 0.55 0.55) (layers F.Cu F.Paste F.Mask)) 29 | (pad 3 smd rect (at 0.475 0.475) (size 0.55 0.55) (layers F.Cu F.Paste F.Mask)) 30 | (pad 4 smd rect (at 0.475 -0.475) (size 0.55 0.55) (layers F.Cu F.Paste F.Mask)) 31 | (pad 1 smd rect (at -0.475 -0.475) (size 0.55 0.55) (layers F.Cu F.Paste F.Mask)) 32 | (model ${KIPRJMOD}/models/LED_1515.step 33 | (offset (xyz 0 0 0.1)) 34 | (scale (xyz 1 1 1)) 35 | (rotate (xyz 0 0 0)) 36 | ) 37 | ) 38 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/SOT-23-5.kicad_mod: -------------------------------------------------------------------------------- 1 | (module SOT-23-5 (layer F.Cu) (tedit 5C9B9A96) 2 | (descr "5-pin SOT23 package") 3 | (tags SOT-23-5) 4 | (attr smd) 5 | (fp_text reference REF** (at 0 -2.9) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value SOT-23-5 (at 0 2.9) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -0.9 1.61) (end 0.9 1.61) (layer F.SilkS) (width 0.12)) 12 | (fp_line (start 0.9 -1.61) (end -1.55 -1.61) (layer F.SilkS) (width 0.12)) 13 | (fp_line (start -1.9 -1.8) (end 1.9 -1.8) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start 1.9 -1.8) (end 1.9 1.8) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start 1.9 1.8) (end -1.9 1.8) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -1.9 1.8) (end -1.9 -1.8) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start -0.9 -0.9) (end -0.25 -1.55) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 0.9 -1.55) (end -0.25 -1.55) (layer F.Fab) (width 0.1)) 19 | (fp_line (start -0.9 -0.9) (end -0.9 1.55) (layer F.Fab) (width 0.1)) 20 | (fp_line (start 0.9 1.55) (end -0.9 1.55) (layer F.Fab) (width 0.1)) 21 | (fp_line (start 0.9 -1.55) (end 0.9 1.55) (layer F.Fab) (width 0.1)) 22 | (fp_text user %R (at 0 0 90) (layer F.Fab) 23 | (effects (font (size 0.5 0.5) (thickness 0.075))) 24 | ) 25 | (pad 5 smd roundrect (at 1.3 -0.95) (size 1 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 26 | (pad 4 smd roundrect (at 1.3 0.95) (size 1 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 27 | (pad 3 smd roundrect (at -1.3 0.95) (size 1 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 28 | (pad 2 smd roundrect (at -1.3 0) (size 1 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 29 | (pad 1 smd roundrect (at -1.3 -0.95) (size 1 0.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 30 | (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-23-5.wrl 31 | (at (xyz 0 0 0)) 32 | (scale (xyz 1 1 1)) 33 | (rotate (xyz 0 0 0)) 34 | ) 35 | ) 36 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/SOT-563.kicad_mod: -------------------------------------------------------------------------------- 1 | (module SOT-563 (layer F.Cu) (tedit 5C73646B) 2 | (descr SOT563) 3 | (tags SOT-563) 4 | (attr smd) 5 | (fp_text reference REF** (at 0 -1.7) (layer F.SilkS) hide 6 | (effects (font (size 0.7 0.7) (thickness 0.125))) 7 | ) 8 | (fp_text value SOT-563 (at 0 1.75) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -0.65 -0.5) (end -0.3 -0.85) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 0.65 0.9) (end -0.65 0.9) (layer F.SilkS) (width 0.12)) 13 | (fp_line (start -0.9 -0.9) (end 0.65 -0.9) (layer F.SilkS) (width 0.12)) 14 | (fp_line (start -0.65 -0.5) (end -0.65 0.85) (layer F.Fab) (width 0.1)) 15 | (fp_line (start -0.65 0.85) (end 0.65 0.85) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 0.65 0.85) (end 0.65 -0.85) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0.65 -0.85) (end -0.3 -0.85) (layer F.Fab) (width 0.1)) 18 | (fp_line (start -1.35 -1.1) (end 1.35 -1.1) (layer F.CrtYd) (width 0.05)) 19 | (fp_line (start -1.35 -1.1) (end -1.35 1.1) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start 1.35 1.1) (end 1.35 -1.1) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start 1.35 1.1) (end -1.35 1.1) (layer F.CrtYd) (width 0.05)) 22 | (fp_text user %R (at 0 0 90) (layer F.Fab) 23 | (effects (font (size 0.4 0.4) (thickness 0.0625))) 24 | ) 25 | (pad 5 smd roundrect (at 0.74 0) (size 0.67 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 26 | (pad 4 smd roundrect (at 0.74 0.5) (size 0.67 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 27 | (pad 2 smd roundrect (at -0.74 0) (size 0.67 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 28 | (pad 6 smd roundrect (at 0.74 -0.5) (size 0.67 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 29 | (pad 3 smd roundrect (at -0.74 0.5) (size 0.67 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 30 | (pad 1 smd roundrect (at -0.74 -0.5) (size 0.67 0.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 31 | (model ${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-666.wrl 32 | (at (xyz 0 0 0)) 33 | (scale (xyz 1 1 1)) 34 | (rotate (xyz 0 0 0)) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/W-DFN2020-8_Type_C.kicad_mod: -------------------------------------------------------------------------------- 1 | (module W-DFN2020-8_Type_C (layer F.Cu) (tedit 60A7CFA9) 2 | (descr "W-DFN2020-8 Type C (https://www.diodes.com/assets/Datasheets/AP3441-L.pdf)") 3 | (tags "DFN 0.5") 4 | (attr smd) 5 | (fp_text reference REF** (at 0 -2) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value W-DFN2020-8_Type_C (at 0 2) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -0.5 -1) (end 1 -1) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 1 -1) (end 1 1) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 1 1) (end -1 1) (layer F.Fab) (width 0.1)) 14 | (fp_line (start -1 1) (end -1 -0.5) (layer F.Fab) (width 0.1)) 15 | (fp_line (start -1 -0.5) (end -0.5 -1) (layer F.Fab) (width 0.1)) 16 | (fp_line (start -1.4 -1.25) (end -1.4 1.25) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start 1.4 -1.25) (end 1.4 1.25) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start -1.4 -1.25) (end 1.4 -1.25) (layer F.CrtYd) (width 0.05)) 19 | (fp_line (start -1.4 1.25) (end 1.4 1.25) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start -1 1.1) (end 1 1.1) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 0 -1.1) (end 1 -1.1) (layer F.SilkS) (width 0.12)) 22 | (fp_text user %R (at 0 0) (layer F.Fab) 23 | (effects (font (size 0.5 0.5) (thickness 0.1))) 24 | ) 25 | (pad 1 smd rect (at -0.905 -0.75) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 26 | (pad 2 smd rect (at -0.905 -0.25) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 27 | (pad 3 smd rect (at -0.905 0.25) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 28 | (pad 4 smd rect (at -0.905 0.75) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 29 | (pad 5 smd rect (at 0.905 0.75) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 30 | (pad 6 smd rect (at 0.905 0.25) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 31 | (pad 7 smd rect (at 0.905 -0.25) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 32 | (pad 8 smd rect (at 0.905 -0.75) (size 0.49 0.3) (layers F.Cu F.Paste F.Mask)) 33 | (pad 9 smd roundrect (at 0 0) (size 0.9 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.15) 34 | (solder_paste_margin -0.25)) 35 | (model ${KISYS3DMOD}/Package_DFN_QFN.3dshapes/WDFN-8_2x2mm_P0.5mm.wrl 36 | (at (xyz 0 0 0)) 37 | (scale (xyz 1 1 1)) 38 | (rotate (xyz 0 0 0)) 39 | ) 40 | ) 41 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/DFN-10_1x2.5mm_P0.5mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module DFN-10_1x2.5mm_P0.5mm (layer F.Cu) (tedit 5F81CE94) 2 | (descr "DFN, 10 Pin (https://assets.nexperia.com/documents/data-sheet/PUSB3FR4.pdf), generated with kicad-footprint-generator ipc_dfn_qfn_generator.py") 3 | (tags "DFN DFN_QFN") 4 | (attr smd) 5 | (fp_text reference REF** (at 0 -2.2) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value DFN-10_1x2.5mm_P0.5mm (at 0 2.2) (layer F.Fab) hide 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start 0.75 -1.5) (end -0.75 -1.5) (layer F.CrtYd) (width 0.05)) 12 | (fp_line (start 0.75 1.5) (end 0.75 -1.5) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start -0.75 1.5) (end 0.75 1.5) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start -0.75 -1.5) (end -0.75 1.5) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start -0.5 -1) (end -0.25 -1.25) (layer F.Fab) (width 0.1)) 16 | (fp_line (start -0.5 1.25) (end -0.5 -1) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0.5 1.25) (end -0.5 1.25) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 0.5 -1.25) (end 0.5 1.25) (layer F.Fab) (width 0.1)) 19 | (fp_line (start -0.25 -1.25) (end 0.5 -1.25) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -0.5 1.36) (end 0.5 1.36) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 0 -1.36) (end 0.5 -1.36) (layer F.SilkS) (width 0.12)) 22 | (fp_text user %R (at 0 0 90) (layer F.Fab) 23 | (effects (font (size 0.3 0.3) (thickness 0.04))) 24 | ) 25 | (pad 1 smd roundrect (at -0.3875 -1) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 26 | (pad 2 smd roundrect (at -0.3875 -0.5) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 27 | (pad 3 smd roundrect (at -0.3875 0) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 28 | (pad 4 smd roundrect (at -0.3875 0.5) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 29 | (pad 5 smd roundrect (at -0.3875 1) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 30 | (pad 6 smd roundrect (at 0.3875 1) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 31 | (pad 7 smd roundrect (at 0.3875 0.5) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 32 | (pad 8 smd roundrect (at 0.3875 0) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 33 | (pad 9 smd roundrect (at 0.3875 -0.5) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 34 | (pad 10 smd roundrect (at 0.3875 -1) (size 0.475 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 35 | (model ${KIPRJMOD}/models/PUSB3FR4.step 36 | (at (xyz 0 0 0)) 37 | (scale (xyz 1 1 1)) 38 | (rotate (xyz 0 0 0)) 39 | ) 40 | ) 41 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/USB3_A_CnC_Tech_1003-002-01100.kicad_mod: -------------------------------------------------------------------------------- 1 | (module USB3_A_CnC_Tech_1003-002-01100 (layer F.Cu) (tedit 5F70B5B6) 2 | (descr "USB 3.0, type A, right angle, mid mount") 3 | (tags "USB 3.0 type A right angle") 4 | (attr smd) 5 | (fp_text reference J? (at 0 -3.6 180) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value USB3_A (at 0 0.75 180) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -6.8 -2.98) (end -6.8 5) (layer Edge.Cuts) (width 0.05)) 12 | (fp_line (start 6.3 -3.48) (end -6.3 -3.48) (layer Edge.Cuts) (width 0.05)) 13 | (fp_line (start -9 9) (end -9 -6.25) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start 9 9) (end -9 9) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start 9 -6.25) (end 9 9) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -9 -6.25) (end 9 -6.25) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start 6.8 5) (end 6.8 -2.98) (layer Edge.Cuts) (width 0.05)) 18 | (fp_text user %R (at 0 5 180) (layer F.Fab) 19 | (effects (font (size 1 1) (thickness 0.15))) 20 | ) 21 | (fp_arc (start 6.3 -2.98) (end 6.3 -3.48) (angle 90) (layer Edge.Cuts) (width 0.05)) 22 | (fp_arc (start -6.3 -2.98) (end -6.8 -2.98) (angle 90) (layer Edge.Cuts) (width 0.05)) 23 | (pad 7 smd roundrect (at 0 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 24 | (pad 10 thru_hole roundrect (at 7.9 -4.2 180) (size 1.8 3.3) (drill oval 0.6 2.18) (layers *.Cu *.Mask F.Paste) (roundrect_rratio 0.25)) 25 | (pad 10 smd roundrect (at 7.85 0) (size 1.6 2.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.1)) 26 | (pad 10 smd roundrect (at -7.85 0) (size 1.6 2.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.1)) 27 | (pad 10 thru_hole roundrect (at -7.9 -4.25 180) (size 1.8 3.3) (drill oval 0.6 2.18) (layers *.Cu *.Mask F.Paste) (roundrect_rratio 0.25)) 28 | (pad 2 smd roundrect (at -1 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 29 | (pad 3 smd roundrect (at 1 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 30 | (pad 6 smd roundrect (at 2 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 31 | (pad 4 smd roundrect (at 3 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 32 | (pad 5 smd roundrect (at 4 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 33 | (pad 8 smd roundrect (at -2 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 34 | (pad 1 smd roundrect (at -3 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 35 | (pad 9 smd roundrect (at -4 -5) (size 0.5 1.6) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 36 | (pad 10 smd roundrect (at 9 -4.2) (size 1.8 3.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 37 | (pad 10 smd roundrect (at -9 -4.25) (size 1.8 3.3) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 38 | (model ${KIPRJMOD}/models/1003-002-01100.stp 39 | (offset (xyz -0 -1 3.2)) 40 | (scale (xyz 1 1 1)) 41 | (rotate (xyz 0 0 0)) 42 | ) 43 | ) 44 | -------------------------------------------------------------------------------- /benchmark/src/main.rs: -------------------------------------------------------------------------------- 1 | use chrono::Local; 2 | use futures::stream::StreamExt; 3 | use memmap::MmapMut; 4 | use std::{ 5 | fs::{self, OpenOptions}, 6 | io::{Read, Seek, SeekFrom}, 7 | os::unix::fs::OpenOptionsExt, 8 | time::Instant, 9 | }; 10 | use usb_disk_probe::stream::UsbDiskProbe; 11 | 12 | fn format_speed(speed: u128) -> String { 13 | if speed > 4 * 1024 * 1024 * 1024 { 14 | format!("{} GiB/s", speed / 1024 / 1024 / 1024) 15 | } else if speed > 4 * 1024 * 1024 { 16 | format!("{} MiB/s", speed / 1024 / 1024) 17 | } else if speed > 4 * 1024 { 18 | format!("{} KiB/s", speed / 1024) 19 | } else { 20 | format!("{} B/s", speed) 21 | } 22 | } 23 | 24 | fn main() { 25 | let mut paths: Vec = Vec::new(); 26 | futures::executor::block_on(async { 27 | let mut stream = UsbDiskProbe::new().await.expect("failed to find USB disks"); 28 | while let Some(path_res) = stream.next().await { 29 | let path = path_res.expect("failed to read USB disk path"); 30 | paths.push(path.to_path_buf().into()); 31 | } 32 | }); 33 | for path in paths.iter_mut() { 34 | let canonical = fs::canonicalize(&path).expect(&format!( 35 | "failed to get canonical path for USB disk: {}", 36 | path.display() 37 | )); 38 | eprintln!("{}: {}", path.display(), canonical.display()); 39 | *path = canonical; 40 | } 41 | paths.sort(); 42 | 43 | let mut disks = Vec::new(); 44 | for path in paths { 45 | let file = OpenOptions::new() 46 | .read(true) 47 | .custom_flags(libc::O_DIRECT) 48 | .open(&path) 49 | .expect(&format!( 50 | "failed to open USB disk: {}", 51 | path.display() 52 | )); 53 | 54 | let buf = MmapMut::map_anon(4096 * 4096) 55 | .expect("failed to map read buffer"); 56 | 57 | disks.push(( 58 | path, 59 | file, 60 | buf, 61 | 0u128, 62 | )); 63 | } 64 | 65 | loop { 66 | let date = Local::now(); 67 | for (path, file, buf, speed) in disks.iter_mut() { 68 | file.seek(SeekFrom::Start(0)).expect(&format!( 69 | "failed to seek USB disk: {}", 70 | path.display() 71 | )); 72 | 73 | let elapsed = { 74 | let instant = Instant::now(); 75 | file.read(buf).expect(&format!( 76 | "failed to read USB disk: {}", 77 | path.display() 78 | )); 79 | instant.elapsed() 80 | }; 81 | 82 | let nanos = elapsed.as_nanos(); 83 | *speed = (buf.len() as u128 * 1_000_000_000u128) / nanos; 84 | } 85 | 86 | eprintln!(); 87 | eprintln!("\x1B[1m{}\x1B[0m", date.format("%Y-%m-%d %H:%M:%S")); 88 | for (path, _file, _buf, speed) in disks.iter() { 89 | eprintln!("{}: {}", path.display(), format_speed(*speed)); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/QFN-16-1EP_2.6x2.6mm_P0.4mm_EP1.1x1mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module QFN-16-1EP_2.6x2.6mm_P0.4mm_EP1.1x1mm (layer F.Cu) (tedit 5F591601) 2 | (descr "QFN, 16 Pin (NXP PTN5110), generated with kicad-footprint-generator ipc_noLead_generator.py") 3 | (tags "QFN NoLead") 4 | (solder_paste_margin -0.025) 5 | (attr smd) 6 | (fp_text reference REF** (at 0 -2.38) (layer F.SilkS) 7 | (effects (font (size 1 1) (thickness 0.15))) 8 | ) 9 | (fp_text value QFN-16-1EP_2.6x2.6mm_P0.4mm_EP1.1x1mm (at 0 2.38) (layer F.Fab) 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | ) 12 | (fp_line (start 1.68 -1.68) (end -1.68 -1.68) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start 1.68 1.68) (end 1.68 -1.68) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start -1.68 1.68) (end 1.68 1.68) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start -1.68 -1.68) (end -1.68 1.68) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -1.3 -0.65) (end -0.65 -1.3) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1.3 1.3) (end -1.3 -0.65) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 1.3 1.3) (end -1.3 1.3) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 1.3 -1.3) (end 1.3 1.3) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -0.65 -1.3) (end 1.3 -1.3) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -0.76 -1.41) (end -1.41 -1.41) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 1.41 1.41) (end 1.41 1.16) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start 0.76 1.41) (end 1.41 1.41) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -1.41 1.41) (end -1.41 1.16) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start -0.76 1.41) (end -1.41 1.41) (layer F.SilkS) (width 0.12)) 26 | (fp_line (start 1.41 -1.41) (end 1.41 -1.16) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 0.76 -1.41) (end 1.41 -1.41) (layer F.SilkS) (width 0.12)) 28 | (fp_text user %R (at 0 0) (layer F.Fab) 29 | (effects (font (size 0.65 0.65) (thickness 0.1))) 30 | ) 31 | (pad 17 smd roundrect (at 0 0) (size 1.1 1) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.15) 32 | (solder_paste_margin -0.25)) 33 | (pad 1 smd roundrect (at -1.25 -0.8) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 34 | (pad 2 smd roundrect (at -1.25 -0.4) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 35 | (pad 3 smd roundrect (at -1.25 0) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 36 | (pad 4 smd roundrect (at -1.25 0.4) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 37 | (pad 5 smd roundrect (at -1.25 0.8) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 38 | (pad 6 smd roundrect (at -0.4 1.25) (size 0.23 0.7) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 39 | (pad 7 smd roundrect (at 0 1.25) (size 0.23 0.7) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 40 | (pad 8 smd roundrect (at 0.4 1.25) (size 0.23 0.7) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 41 | (pad 9 smd roundrect (at 1.25 0.8) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 42 | (pad 10 smd roundrect (at 1.25 0.4) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 43 | (pad 11 smd roundrect (at 1.25 0) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 44 | (pad 12 smd roundrect (at 1.25 -0.4) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 45 | (pad 13 smd roundrect (at 1.25 -0.8) (size 0.7 0.23) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 46 | (pad 14 smd roundrect (at 0.4 -1.25) (size 0.23 0.7) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 47 | (pad 15 smd roundrect (at 0 -1.25) (size 0.23 0.7) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 48 | (pad 16 smd roundrect (at -0.4 -1.25) (size 0.23 0.7) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 49 | (model ${KIPRJMOD}/models/PTN5110.step 50 | (at (xyz 0 0 0)) 51 | (scale (xyz 1 1 1)) 52 | (rotate (xyz 0 0 0)) 53 | ) 54 | ) 55 | -------------------------------------------------------------------------------- /scripts/lvfs-uf2.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | if [ -z "$1" ] 6 | then 7 | echo "$0 [model] [description]" >&2 8 | exit 1 9 | fi 10 | MODEL="$1" 11 | 12 | if [ -z "$2" ] 13 | then 14 | echo "$0 [model] [description]" >&2 15 | exit 1 16 | fi 17 | DESCRIPTION="$2" 18 | 19 | BOOTLOADER_VID="2E8A" # Raspberry Pi 20 | BOOTLOADER_PID="0003" # RP2040 21 | RUNTIME_VID="3384" # System76 22 | case "${MODEL}" in 23 | "launch_3") 24 | RUNTIME_PID="0009" 25 | ;; 26 | "launch_heavy_3") 27 | RUNTIME_PID="000A" 28 | ;; 29 | *) 30 | echo "$0: unknown model '${MODEL}'" >&2 31 | exit 1 32 | ;; 33 | esac 34 | 35 | echo "MODEL: ${MODEL}" 36 | echo "DESCRIPTION: ${DESCRIPTION}" 37 | 38 | BOOTLOADER_ID="USB\\VID_${BOOTLOADER_VID}&PID_${BOOTLOADER_PID}" 39 | echo "BOOTLOADER_ID: ${BOOTLOADER_ID}" 40 | 41 | BOOTLOADER_UUID="$(appstream-util generate-guid "${BOOTLOADER_ID}")" 42 | echo "BOOTLOADER_UUID: ${BOOTLOADER_UUID}" 43 | 44 | RUNTIME_ID="USB\\VID_${RUNTIME_VID}&PID_${RUNTIME_PID}" 45 | echo "RUNTIME_ID: ${RUNTIME_ID}" 46 | 47 | RUNTIME_UUID="$(appstream-util generate-guid "${RUNTIME_ID}")" 48 | echo "RUNTIME_UUID: ${RUNTIME_UUID}" 49 | 50 | make -C firmware distclean 51 | make -C firmware "system76/${MODEL}:default" 52 | 53 | VERSION_HEADER="firmware/.build/obj_system76_${MODEL}_default/src/version.h" 54 | 55 | REVISION="$(grep QMK_VERSION "${VERSION_HEADER}" | cut -d '"' -f2)" 56 | echo "REVISION: ${REVISION}" 57 | 58 | DATE="$(grep QMK_BUILDDATE "${VERSION_HEADER}" | cut -d '"' -f2 | cut -d '-' -f1,2,3)" 59 | echo "DATE: ${DATE}" 60 | 61 | NAME="${MODEL}_${REVISION}" 62 | echo "NAME: ${NAME}" 63 | 64 | SOURCE="https://github.com/system76/launch" 65 | echo "SOURCE: ${SOURCE}" 66 | 67 | BUILD="build/lvfs/${NAME}" 68 | echo "BUILD: ${BUILD}" 69 | 70 | rm -rf "${BUILD}" 71 | mkdir -pv "${BUILD}" 72 | 73 | cp "firmware/.build/system76_${MODEL}_default.uf2" "${BUILD}/firmware.uf2" 74 | 75 | echo "writing '${BUILD}/firmware.metainfo.xml'" 76 | cat > "${BUILD}/firmware.metainfo.xml" < 78 | 79 | 80 | com.system76.${MODEL}.firmware 81 | Launch Configurable Keyboard 82 | System76 Launch Configurable Keyboard Firmware 83 | 84 |

85 | The System76 Launch Configurable Keyboard firmware is based on QMK and 86 | provides a USB HID keyboard implementation with keyboard remapping and 87 | RGB LED functionality 88 |

89 |
90 | 91 | 92 | ${RUNTIME_UUID} 93 | 94 | https://github.com/system76/launch 95 | CC0-1.0 96 | GPL-2.0+ 97 | System76 98 | 99 | 100 | 101 | ${SOURCE} 102 | 103 |

${DESCRIPTION}

104 |
105 |
106 |
107 | 108 | org.freedesktop.fwupd 109 | 110 | 111 | X-Device 112 | 113 | 114 | uf2 115 | 116 | 117 | com.microsoft.uf2 118 | plain 119 | 120 |
121 | EOF 122 | 123 | gcab \ 124 | --verbose \ 125 | --create \ 126 | --nopath \ 127 | "${BUILD}.cab" \ 128 | "${BUILD}/"* 129 | 130 | echo "created '${BUILD}.cab'" 131 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # System76 Launch Configurable Keyboard 2 | 3 | The System76 Launch Configurable Keyboard is designed to provide the ultimate 4 | user controlled keyboard experience, with open source mechanical and electrical 5 | design, open source firmware and associated software, and a large number of 6 | user configuration opportunities. It is registered open source hardware with 7 | [OSHWA UID US001062](https://certification.oshwa.org/us001062.html). 8 | 9 | - [Mechanical Design](#mechanical-design) 10 | - [Electrical Design](#electrical-design) 11 | - [Firmware and Software](#firmware-and-software) 12 | 13 | ## Mechanical Design 14 | 15 | ![Chassis Image](./chassis/launch/launch-chassis.png) 16 | 17 | ### Open Source Chassis 18 | 19 | The Launch chassis is licensed CC-BY-SA-4.0 and can be viewed in the 20 | [chassis](./chassis/) folder using [FreeCAD](https://www.freecad.org). 21 | 22 | ### Milled Aluminum 23 | 24 | The chassis is milled from two solid blocks of aluminum and powder coated to 25 | provide excellent fit and finish. Each pocket, port, and hole is designed and 26 | precisely machined so that swapping switches and plugging in cables is easy and 27 | secure for the user. 28 | 29 | ### Detachable Lift Bar 30 | 31 | The included lift bar can be magnetically secured to add 15 degrees of angle to 32 | your keyboard for ergonomics. 33 | 34 | ### Innovative Layout 35 | 36 | The layout is designed to provide a large number of remapping opportunities. 37 | The default layout can be viewed 38 | [here](http://www.keyboard-layout-editor.com/#/gists/8ec5e9026d616ebad6b2c7e9d943e7c0), 39 | and the extra keys included can be viewed 40 | [here](http://www.keyboard-layout-editor.com/#/gists/a3ad8710b27f78fd938077b2bf6d3ef5). 41 | 42 | ### Swappable Keycaps 43 | 44 | The keycaps are PBT material with a dye sublimation legend and XDA profile to 45 | provide excellent feel and lifespan. Extras are provided for common replacements 46 | and color preference. An included keycap puller can be used to move and replace 47 | the keycaps. 48 | 49 | ### Swappable Switches 50 | 51 | The switches are mounted in sockets that support any RGB switch with an MX 52 | compatible footprint. Examples are the Cherry MX RGB switches and the Kailh 53 | BOX switches. Switches can be removed easily at any time with the included 54 | switch puller. 55 | 56 | ## Electrical Design 57 | 58 | ![PCB Image](./pcb/launch-pcb.png) 59 | 60 | ### Open Source PCB 61 | 62 | The Launch PCB is licensed GPLv3 and can be viewed in the 63 | [pcb](./pcb/) folder using [KiCad](https://kicad.org/). 64 | 65 | ### Integrated Dock 66 | 67 | Launch connects to a computer using the included USB-C to USB-C cable or USB-C 68 | to USB-A cable. It supports USB 3.2 Gen 2 with speeds up to 10 Gbps with either 69 | cable, provided the computer supports these speeds. It provides 2 USB-C and 2 70 | USB-A connectors that also support USB 3.2 Gen 2, with the 10 Gbps bandwidth 71 | shared between them on demand. 72 | 73 | ### Independent RGB Lighting 74 | 75 | Each switch has an RGB LED that is independently controlled by firmware. This 76 | allows for a number of RGB LED patterns to be selected. 77 | 78 | ### N-Key Rollover 79 | 80 | The keyboard matrix uses diodes on all intersections, providing full independent 81 | scanning of each key position. 82 | 83 | ## Firmware and Software 84 | 85 | ### Open Source Firmware 86 | 87 | The Launch firmware is based on [QMK](https://github.com/system76/qmk_firmware), 88 | licensed GPLv2, and the latest version is linked in the `firmware` submodule. 89 | 90 | ### Open Source Software 91 | 92 | Projects that integrate with Launch are open source software, such as the 93 | [System76 Keyboard Configurator](https://github.com/pop-os/keyboard-configurator), 94 | licensed GPLv3, and [fwupd](https://github.com/fwupd/fwupd/), licensed LGPLv2.1. 95 | 96 | ### Easy Remapping 97 | 98 | The keyboard can be remapped at runtime using the 99 | [System76 Keyboard Configurator](https://github.com/pop-os/keyboard-configurator). 100 | This utility runs on Linux, Mac OS, and Windows. 101 | 102 | ### Firmware Updates 103 | 104 | Firmware updates are supported through the 105 | [fwupd](https://github.com/fwupd/fwupd/) project, and are distributed using the 106 | related Linux Vendor Firmware Service. Settings are stored on EEPROM and are 107 | maintained through firmware updates. 108 | -------------------------------------------------------------------------------- /scripts/leds-heavy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | #################### 6 | ## CONFIG ## 7 | #################### 8 | 9 | # xy of top left led (from the launch PCB, not heavy) 10 | # Usually the first LED in the CSV 11 | min_x=31.0 12 | min_y=39.95 13 | 14 | # Distance between left edge of the launch PCB and the left edge of the heavy PCB 15 | heavy_offset=308.75 16 | 17 | # Led names in sequential order. (See kicad_sch) 18 | LEDS=( 19 | LM4 LL4 LK4 LJ4 LI4 LH4 LG4 LF4 LE4 LD4 20 | LC4 LB4 LA4 LA5 LB5 LC5 LD5 LE5 LG5 LH5 21 | LI5 LJ5 LK5 LL5 LM5 LO3 LM3 LL3 LK3 LJ3 22 | LI3 LH3 LG3 LF3 LE3 LD3 LC3 LB3 LA3 LA2 23 | LB2 LC2 LD2 LE2 LF2 LG2 LH2 LI2 LJ2 LK2 24 | LL2 LM2 LN2 LO2 LO1 LN1 LM1 LL1 LK1 LJ1 25 | LI1 LH1 LG1 LF1 LE1 LD1 LC1 LB1 LA1 LA0 26 | LB0 LC0 LD0 LE0 LF0 LG0 LH0 LI0 LJ0 LK0 27 | LL0 LM0 LN0 LO0 28 | ) 29 | 30 | HEAVY_LEDS=( 31 | LD4 LC5 LA5 LA4 LB4 LC4 LC3 LB3 LA3 LA2 32 | LB2 LC2 LD2 LD1 LC1 LB1 LA1 LA0 LB0 LC0 33 | LD0 34 | ) 35 | 36 | #################### 37 | ## End Config ## 38 | #################### 39 | 40 | if [ ! -e pcb/gerber/launch-top-pos.csv ]; then 41 | echo "File 'pcb/gerber/launch-top-pos.csv' does not exist." 42 | echo "create it by opening pcb/launch-kicad_pro in Kicad." 43 | echo "Then open launch.kicad_pcb:" 44 | echo " File -> Fabrication Outputs -> Component Placement (.pos)" 45 | echo " Then change the export type to '.csv' and click 'Generate Position File'" 46 | exit 1 47 | fi 48 | 49 | if [ ! -e pcb-heavy/gerber/launch-heavy-top-pos.csv ]; then 50 | echo "File 'pcb/gerber/launch-heavy-top-pos.csv' does not exist." 51 | echo "create it by opening pcb/launch-heavy-kicad_pro in Kicad." 52 | echo "Then open launch-heavy.kicad_pcb:" 53 | echo " File -> Fabrication Outputs -> Component Placement (.pos)" 54 | echo " Then change the export type to '.csv' and click 'Generate Position File'" 55 | exit 1 56 | fi 57 | 58 | #heavy_offset=$(echo "$heavy_offset - $min_x" | bc -lq) 59 | heavy_offset=$(echo "$heavy_offset" | bc -lq) 60 | 61 | # create hash map of led name to [x,y] positions 62 | declare -A matrix_x 63 | declare -A matrix_y 64 | for led in "${LEDS[@]}"; do 65 | pos=($(grep "^\"${led}\"" pcb/gerber/launch-top-pos.csv | cut -d ',' -f4,5 | sed 's/,/ /g')) 66 | matrix_x["$led"]=$(echo "${pos[0]} + $min_x" | bc -lq) 67 | matrix_y["$led"]=$(echo "${pos[1]} * -1 - $min_y" | bc -lq) 68 | done 69 | 70 | for led in "${HEAVY_LEDS[@]}"; do 71 | pos=($(grep "^\"${led}\"" pcb-heavy/gerber/launch-heavy-top-pos.csv | cut -d ',' -f4,5 | sed 's/,/ /g')) 72 | matrix_x["$led-heavy"]=$(echo "${pos[0]} + $heavy_offset + $min_x" | bc -lq) 73 | matrix_y["$led-heavy"]=$(echo "${pos[1]} * -1 - $min_y" | bc -lq) 74 | done 75 | 76 | # led names are reused on both PCBs, this is to avoid that conflict, 77 | # It's the same reason why we have `["$led-heavy"]` above 78 | for ((i=0; i<${#HEAVY_LEDS[@]}; i++)); do 79 | HEAVY_LEDS[$i]="${HEAVY_LEDS[$i]}-heavy" 80 | done 81 | 82 | 83 | # get max x coordinate 84 | first_led=${LEDS[0]} 85 | max_x=${matrix_x[$first_led]} 86 | for led in "${!matrix_x[@]}"; do 87 | x=${matrix_x[$led]} 88 | if [[ 1 == $(echo "$x > $max_x" | bc -lq) ]]; then 89 | max_x=$x 90 | fi 91 | done 92 | 93 | # get max y coordinate 94 | max_y=${matrix_y[$first_led]} 95 | for led in "${!matrix_y[@]}"; do 96 | y=${matrix_y[$led]} 97 | if [[ 1 == $(echo "$y > $max_y" | bc -lq) ]]; then 98 | max_y=$y 99 | fi 100 | done 101 | 102 | # We need to scale the kicad dimensions to the maximum values QMK accepts 103 | # 224 for width, 64 for height 104 | shrink_x=$(echo "224 / $max_x" | bc -lq) 105 | shrink_y=$(echo "64 / $max_y" | bc -lq) 106 | 107 | # multiply each value by scale value and print as a table 108 | row=00 109 | current=0 110 | last=$((${#LEDS[@]}+${#HEAVY_LEDS[@]})) 111 | printf "The following LED index to physical position matrix can be placed in:\nhttps://github.com/system76/qmk_firmware/blob/master/keyboards/system76/launch_heavy_1/launch_heavy_1.c\n" 112 | for led in "${LEDS[@]}" "${HEAVY_LEDS[@]}"; do 113 | if [ $(( $current % 10 )) -eq 0 ]; then 114 | if [ $row -ge 100 ]; then 115 | printf "\n/* $row */ " 116 | else 117 | printf "\n/* 0$row */ " 118 | fi 119 | row=$(($row+10)) 120 | fi 121 | current=$(($current+1)) 122 | 123 | x=$(echo "${matrix_x[$led]} * $shrink_x" | bc -lq) 124 | y=$(echo "${matrix_y[$led]} * $shrink_x" | bc -lq) 125 | 126 | if [ $current -eq $last ]; then 127 | printf "{%.00f, %.00f}\n" $x $y 128 | else 129 | printf "{%.00f, %.00f}, " $x $y 130 | fi 131 | done 132 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/QFN-20-1EP_2.5x4.5mm_P0.5mm_EP1x3mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module QFN-20-1EP_2.5x4.5mm_P0.5mm_EP1x3mm (layer F.Cu) (tedit 5F505E8D) 2 | (descr "QFN, 20 Pin (CBTL02043), generated with kicad-footprint-generator ipc_dfn_qfn_generator.py, edited") 3 | (tags "QFN DFN_QFN") 4 | (solder_paste_margin -0.025) 5 | (attr smd) 6 | (fp_text reference REF** (at 0 -3.33) (layer F.SilkS) 7 | (effects (font (size 1 1) (thickness 0.15))) 8 | ) 9 | (fp_text value QFN-20-1EP_2.5x4.5mm_P0.5mm_EP1x3mm (at 0 3.33) (layer F.Fab) 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | ) 12 | (fp_line (start 1.63 -2.63) (end -1.63 -2.63) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start 1.63 2.63) (end 1.63 -2.63) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start -1.63 2.63) (end 1.63 2.63) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start -1.63 -2.63) (end -1.63 2.63) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -1.25 -1.625) (end -0.625 -2.25) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1.25 2.25) (end -1.25 -1.625) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 1.25 2.25) (end -1.25 2.25) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 1.25 -2.25) (end 1.25 2.25) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -0.625 -2.25) (end 1.25 -2.25) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -0.635 -2.36) (end -1.36 -2.36) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 1.36 2.36) (end 1.36 2.135) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start 0.635 2.36) (end 1.36 2.36) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -1.36 2.36) (end -1.36 2.135) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start -0.635 2.36) (end -1.36 2.36) (layer F.SilkS) (width 0.12)) 26 | (fp_line (start 1.36 -2.36) (end 1.36 -2.135) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 0.635 -2.36) (end 1.36 -2.36) (layer F.SilkS) (width 0.12)) 28 | (fp_text user %R (at 0 0) (layer F.Fab) 29 | (effects (font (size 0.62 0.62) (thickness 0.09))) 30 | ) 31 | (pad 21 smd roundrect (at 0 0) (size 0.9 2.9) (layers F.Cu F.Mask) (roundrect_rratio 0.25)) 32 | (pad "" smd roundrect (at 0 0.525) (size 0.4 0.65) (layers F.Paste) (roundrect_rratio 0.25)) 33 | (pad 2 smd roundrect (at -1.25 -1.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 34 | (pad 3 smd roundrect (at -1.25 -1.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 35 | (pad 4 smd roundrect (at -1.25 -0.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 36 | (pad 5 smd roundrect (at -1.25 -0.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 37 | (pad 6 smd roundrect (at -1.25 0.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 38 | (pad 7 smd roundrect (at -1.25 0.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 39 | (pad 8 smd roundrect (at -1.25 1.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 40 | (pad 9 smd roundrect (at -1.25 1.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 41 | (pad 10 smd roundrect (at -0.25 2.15) (size 0.29 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 42 | (pad 11 smd roundrect (at 0.25 2.15) (size 0.29 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 43 | (pad 12 smd roundrect (at 1.25 1.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 44 | (pad 13 smd roundrect (at 1.25 1.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 45 | (pad 14 smd roundrect (at 1.25 0.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 46 | (pad 15 smd roundrect (at 1.25 0.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 47 | (pad 16 smd roundrect (at 1.25 -0.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 48 | (pad 17 smd roundrect (at 1.25 -0.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 49 | (pad 18 smd roundrect (at 1.25 -1.25) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 50 | (pad 19 smd roundrect (at 1.25 -1.75) (size 0.8 0.29) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 51 | (pad 20 smd roundrect (at 0.25 -2.15) (size 0.29 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 52 | (pad 1 smd roundrect (at -0.25 -2.15) (size 0.29 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 53 | (pad "" smd roundrect (at 0 -0.525) (size 0.4 0.65) (layers F.Paste) (roundrect_rratio 0.25)) 54 | (model ${KIPRJMOD}/models/SOT764-1.step 55 | (offset (xyz 2.6 -1.3 2.1)) 56 | (scale (xyz 1 1 1)) 57 | (rotate (xyz 90 0 -90)) 58 | ) 59 | ) 60 | -------------------------------------------------------------------------------- /scripts/lvfs-dfu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | if [ -z "$1" ] 6 | then 7 | echo "$0 [model] [description]" >&2 8 | exit 1 9 | fi 10 | MODEL="$1" 11 | 12 | if [ -z "$2" ] 13 | then 14 | echo "$0 [model] [description]" >&2 15 | exit 1 16 | fi 17 | DESCRIPTION="$2" 18 | 19 | BOOTLOADER_VID="03EB" # Atmel 20 | RUNTIME_VID="3384" # System76 21 | case "${MODEL}" in 22 | "launch_1") 23 | BOOTLOADER_PID="2FF4" # ATMEGA32U4 24 | RUNTIME_PID="0001" 25 | RUNTIME_REV="0001" 26 | ;; 27 | "launch_2") 28 | BOOTLOADER_PID="2FF9" # AT90USB646 29 | RUNTIME_PID="0006" 30 | RUNTIME_REV="0001" 31 | ;; 32 | "launch_heavy_1") 33 | BOOTLOADER_PID="2FF9" # AT90USB646 34 | RUNTIME_PID="0007" 35 | RUNTIME_REV="0001" 36 | ;; 37 | "launch_lite_1") 38 | BOOTLOADER_PID="2FF9" # AT90USB646 39 | RUNTIME_PID="0005" 40 | RUNTIME_REV="0001" 41 | ;; 42 | *) 43 | echo "$0: unknown model '${MODEL}'" >&2 44 | exit 1 45 | ;; 46 | esac 47 | 48 | echo "MODEL: ${MODEL}" 49 | echo "DESCRIPTION: ${DESCRIPTION}" 50 | 51 | BOOTLOADER_ID="USB\\VID_${BOOTLOADER_VID}&PID_${BOOTLOADER_PID}" 52 | echo "BOOTLOADER_ID: ${BOOTLOADER_ID}" 53 | 54 | BOOTLOADER_UUID="$(appstream-util generate-guid "${BOOTLOADER_ID}")" 55 | echo "BOOTLOADER_UUID: ${BOOTLOADER_UUID}" 56 | 57 | RUNTIME_ID="USB\\VID_${RUNTIME_VID}&PID_${RUNTIME_PID}&REV_${RUNTIME_REV}" 58 | echo "RUNTIME_ID: ${RUNTIME_ID}" 59 | 60 | RUNTIME_UUID="$(appstream-util generate-guid "${RUNTIME_ID}")" 61 | echo "RUNTIME_UUID: ${RUNTIME_UUID}" 62 | 63 | make -C firmware distclean 64 | make -C firmware "system76/${MODEL}:default" 65 | 66 | #TODO: Should --dirty be used? 67 | REVISION="$(grep QMK_VERSION firmware/quantum/version.h | cut -d '"' -f2)" 68 | echo "REVISION: ${REVISION}" 69 | 70 | DATE="$(grep QMK_BUILDDATE firmware/quantum/version.h | cut -d '"' -f2 | cut -d '-' -f1,2,3)" 71 | echo "DATE: ${DATE}" 72 | 73 | NAME="${MODEL}_${REVISION}" 74 | echo "NAME: ${NAME}" 75 | 76 | SOURCE="https://github.com/system76/launch" 77 | echo "SOURCE: ${SOURCE}" 78 | 79 | BUILD="build/lvfs/${NAME}" 80 | echo "BUILD: ${BUILD}" 81 | 82 | rm -rf "${BUILD}" 83 | mkdir -pv "${BUILD}" 84 | 85 | cp "firmware/.build/system76_${MODEL}_default.hex" "${BUILD}/firmware.hex" 86 | avr-objcopy -I ihex -O binary "${BUILD}/firmware.hex" "${BUILD}/firmware.bin" 87 | ./scripts/add_dfu_header.py \ 88 | --bin "${BUILD}/firmware.bin" \ 89 | --dfu "${BUILD}/firmware.dfu" \ 90 | --vid "${RUNTIME_VID}" \ 91 | --pid "${RUNTIME_PID}" \ 92 | --rev "${RUNTIME_REV}" 93 | 94 | rm "${BUILD}/firmware.hex" "${BUILD}/firmware.bin" 95 | 96 | echo "writing '${BUILD}/firmware.metainfo.xml'" 97 | cat > "${BUILD}/firmware.metainfo.xml" < 99 | 100 | 101 | com.system76.${MODEL}.firmware 102 | Launch Configurable Keyboard 103 | System76 Launch Configurable Keyboard Firmware 104 | 105 |

106 | The System76 Launch Configurable Keyboard firmware is based on QMK and 107 | provides a USB HID keyboard implementation with keyboard remapping and 108 | RGB LED functionality 109 |

110 |
111 | 112 | 113 | ${RUNTIME_UUID} 114 | 115 | https://github.com/system76/launch 116 | CC0-1.0 117 | GPL-2.0+ 118 | System76 119 | 120 | 121 | 122 | ${SOURCE} 123 | 124 |

${DESCRIPTION}

125 |
126 |
127 |
128 | 129 | org.freedesktop.fwupd 130 | 131 | 132 | X-Device 133 | 134 | 135 | dfu 136 | 137 | 138 | org.usb.dfu 139 | plain 140 | 141 |
142 | EOF 143 | 144 | gcab \ 145 | --verbose \ 146 | --create \ 147 | --nopath \ 148 | "${BUILD}.cab" \ 149 | "${BUILD}/"* 150 | 151 | echo "created '${BUILD}.cab'" 152 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/USB_C_Receptacle_Amphenol_12401610E4-2A.kicad_mod: -------------------------------------------------------------------------------- 1 | (module USB_C_Receptacle_Amphenol_12401610E4-2A (layer F.Cu) (tedit 5FAC312D) 2 | (descr "USB TYPE C, RA RCPT PCB, SMT, https://www.amphenolcanada.com/StockAvailabilityPrice.aspx?From=&PartNum=12401610E4%7e2A") 3 | (tags "USB C Type-C Receptacle SMD") 4 | (attr smd) 5 | (fp_text reference REF** (at 0 -6.36) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value USB_C_Receptacle_Amphenol_12401610E4-2A (at 0 6.14) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -4.6 5.23) (end -4.6 -5.22) (layer F.Fab) (width 0.1)) 12 | (fp_line (start -4.6 -5.22) (end 4.6 -5.22) (layer F.Fab) (width 0.1)) 13 | (fp_line (start -4.75 -5.37) (end -3.25 -5.37) (layer F.SilkS) (width 0.12)) 14 | (fp_line (start -4.75 -5.37) (end -4.75 1.89) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start 4.75 -5.37) (end 4.75 1.89) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 3.25 -5.37) (end 4.75 -5.37) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start -4.6 5.23) (end 4.6 5.23) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 4.6 5.23) (end 4.6 -5.22) (layer F.Fab) (width 0.1)) 19 | (fp_line (start -5.39 -5.87) (end 5.39 -5.87) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start 5.39 -5.87) (end 5.39 5.73) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start 5.39 5.73) (end -5.39 5.73) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start -5.39 5.73) (end -5.39 -5.87) (layer F.CrtYd) (width 0.05)) 23 | (fp_text user %R (at 0 0) (layer F.Fab) 24 | (effects (font (size 1 1) (thickness 0.1))) 25 | ) 26 | (pad B12 smd rect (at -3 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 27 | (pad B11 smd rect (at -2.5 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 28 | (pad B10 smd rect (at -2 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 29 | (pad B9 smd rect (at -1.5 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 30 | (pad B8 smd rect (at -1 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 31 | (pad B7 smd rect (at -0.5 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 32 | (pad B6 smd rect (at 0 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 33 | (pad B5 smd rect (at 0.5 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 34 | (pad B4 smd rect (at 1 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 35 | (pad B3 smd rect (at 1.5 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 36 | (pad B2 smd rect (at 2 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 37 | (pad "" np_thru_hole circle (at -3.6 -4.36) (size 0.65 0.65) (drill 0.65) (layers *.Cu *.Mask)) 38 | (pad "" np_thru_hole oval (at 3.6 -4.36) (size 0.95 0.65) (drill oval 0.95 0.65) (layers *.Cu *.Mask)) 39 | (pad S1 thru_hole oval (at -4.49 2.84) (size 0.8 1.4) (drill oval 0.5 1.1) (layers *.Cu *.Mask F.Paste)) 40 | (pad S1 thru_hole oval (at 4.49 2.84) (size 0.8 1.4) (drill oval 0.5 1.1) (layers *.Cu *.Mask F.Paste)) 41 | (pad S1 thru_hole oval (at 4.13 -3.11) (size 0.8 1.4) (drill oval 0.5 1.1) (layers *.Cu *.Mask F.Paste)) 42 | (pad B1 smd rect (at 2.5 -3.32) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 43 | (pad A11 smd rect (at 2.25 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 44 | (pad A8 smd rect (at 0.75 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 45 | (pad A9 smd rect (at 1.25 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 46 | (pad A10 smd rect (at 1.75 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 47 | (pad A12 smd rect (at 2.75 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 48 | (pad A7 smd rect (at 0.25 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 49 | (pad A6 smd rect (at -0.25 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 50 | (pad A5 smd rect (at -0.75 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 51 | (pad A4 smd rect (at -1.25 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 52 | (pad A3 smd rect (at -1.75 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 53 | (pad A2 smd rect (at -2.25 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 54 | (pad A1 smd rect (at -2.75 -5.02) (size 0.3 0.7) (layers F.Cu F.Paste F.Mask)) 55 | (pad S1 thru_hole oval (at -4.13 -3.11) (size 0.8 1.4) (drill oval 0.5 1.1) (layers *.Cu *.Mask F.Paste)) 56 | (pad S1 smd roundrect (at -4.8 -3.1) (size 1 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 57 | (pad S1 smd roundrect (at 4.8 -3.1) (size 1 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 58 | (pad S1 smd roundrect (at 5 2.85) (size 1 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 59 | (pad S1 smd roundrect (at -5 2.85) (size 1 1.4) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 60 | (pad S1 smd roundrect (at -3.75 -3.11) (size 1.5 1.4) (layers B.Cu B.Mask) (roundrect_rratio 0.25)) 61 | (pad S1 smd roundrect (at 3.75 -3.11) (size 1.5 1.4) (layers B.Cu B.Mask) (roundrect_rratio 0.25)) 62 | (pad S1 smd roundrect (at 4.49 2.84) (size 1.5 1.5) (layers B.Cu B.Mask) (roundrect_rratio 0.25)) 63 | (pad S1 smd roundrect (at -4.49 2.84) (size 1.5 1.5) (layers B.Cu B.Mask) (roundrect_rratio 0.25)) 64 | (model ${KIPRJMOD}/models/M-12401610E42A-REVT2.stp 65 | (offset (xyz 0 -5.2 1.5)) 66 | (scale (xyz 1 1 1)) 67 | (rotate (xyz 0 0 90)) 68 | ) 69 | ) 70 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/AFC07-S20FCC-00.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "AFC07-S20FCC-00" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 5D24667B) 4 | (descr "Hirose FH12, FFC/FPC connector, FH12-20S-0.5SH, 20 Pins per row (https://www.hirose.com/product/en/products/FH12/FH12-24S-0.5SH(55)/), generated with kicad-footprint-generator") 5 | (tags "connector Hirose FH12 horizontal") 6 | (property "Sheetfile" "launch-tenkey.kicad_sch") 7 | (property "Sheetname" "") 8 | (attr smd) 9 | (fp_text reference "J?" (at 0 -3.7) (layer "F.SilkS") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp 882049ed-1e5c-44d4-a625-8fad72af315d) 12 | ) 13 | (fp_text value "AFC07-S20FCC-00" (at 0 5.6) (layer "F.Fab") 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | (tstamp 612d9012-26ad-4dcc-a840-1d2984cdbe5e) 16 | ) 17 | (fp_text user "${REFERENCE}" (at 0 3.7) (layer "F.Fab") 18 | (effects (font (size 1 1) (thickness 0.15))) 19 | (tstamp 08478be9-b3bd-428c-a9d2-f0cf1eedf67f) 20 | ) 21 | (fp_line (start 5.16 -1.3) (end 7.4 -1.3) (layer "F.SilkS") (width 0.12) (tstamp 45d9d21e-3258-41b8-a428-19bc4df8d139)) 22 | (fp_line (start 7.8 3.4) (end 7.8 2.2) (layer "F.SilkS") (width 0.12) (tstamp 52e1c4b7-3064-44ac-857a-a8b47ad5eee4)) 23 | (fp_line (start -5.16 -1.3) (end -5.16 -2.5) (layer "F.SilkS") (width 0.12) (tstamp 73ad657b-3d31-4f77-bcaa-3c818f41eef0)) 24 | (fp_line (start -7.8 2.3) (end -7.8 3.4) (layer "F.SilkS") (width 0.12) (tstamp bcda4ee5-34a2-4882-8793-db53f457a0bf)) 25 | (fp_line (start -7.8 3.4) (end 7.8 3.4) (layer "F.SilkS") (width 0.12) (tstamp d879677d-c607-4334-91a8-ae62442adf31)) 26 | (fp_line (start -5.16 -1.3) (end -7.4 -1.3) (layer "F.SilkS") (width 0.12) (tstamp de518b3e-4d1b-4684-add0-a8f66cbc360b)) 27 | (fp_line (start 8.05 4.9) (end 8.05 -3) (layer "F.CrtYd") (width 0.05) (tstamp 36a8f0c7-d0b0-4d86-b464-6920dd96a974)) 28 | (fp_line (start -8.05 4.9) (end 8.05 4.9) (layer "F.CrtYd") (width 0.05) (tstamp 3878c2b0-194b-4000-81d6-a70db5733702)) 29 | (fp_line (start -8.05 -3) (end -8.05 4.9) (layer "F.CrtYd") (width 0.05) (tstamp de46b85a-d4bb-4cc2-90b2-65e19c307326)) 30 | (fp_line (start 8.05 -3) (end -8.05 -3) (layer "F.CrtYd") (width 0.05) (tstamp ed9e4b90-9bd4-4ee6-9ec2-24f262ebd8e8)) 31 | (fp_line (start -6.55 -1.2) (end -6.55 3.2) (layer "F.Fab") (width 0.1) (tstamp 119073fd-c30c-46c4-8fbf-d847b40d2ffc)) 32 | (fp_line (start 0 -1.2) (end -6.55 -1.2) (layer "F.Fab") (width 0.1) (tstamp 183b5bf4-b336-4bed-88d8-f9530cc77e63)) 33 | (fp_line (start -5.25 -1.2) (end -4.75 -0.492893) (layer "F.Fab") (width 0.1) (tstamp 23cdbe2a-e0cf-46c0-85ea-582bb3538e37)) 34 | (fp_line (start -4.75 -0.492893) (end -4.25 -1.2) (layer "F.Fab") (width 0.1) (tstamp 94d73f59-742c-4eb2-8422-3fe8cd63e5c8)) 35 | (fp_line (start 6.55 -1.2) (end 6.55 3.2) (layer "F.Fab") (width 0.1) (tstamp b013caed-dc1a-4254-bcdd-0d9381eadd16)) 36 | (fp_line (start 0 -1.2) (end 6.55 -1.2) (layer "F.Fab") (width 0.1) (tstamp e39e1e81-d588-4c0d-9e08-66ea96e53041)) 37 | (fp_line (start 6.55 3.2) (end -6.55 3.2) (layer "F.Fab") (width 0.1) (tstamp ef7fe7be-de31-42a8-bdd0-93c1b13a71bd)) 38 | (pad "1" smd rect (at -4.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp fc893e4e-5137-46cc-b92d-04970416d2b8)) 39 | (pad "2" smd rect (at -4.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 30dc3f35-a036-4594-98a2-226897f1f38f)) 40 | (pad "3" smd rect (at -3.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp df202aee-3a81-46d5-a876-118d12170001)) 41 | (pad "4" smd rect (at -3.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 738c41e0-87c5-4667-adf0-ec8dde9dcdf0)) 42 | (pad "5" smd rect (at -2.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 85a8a2fa-f21c-42d8-b407-5295443b70da)) 43 | (pad "6" smd rect (at -2.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp dd056bba-6511-43cb-b01a-c5b85e5dc9c1)) 44 | (pad "7" smd rect (at -1.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 858b8efa-5cb2-4dbb-a71d-ff35cbaf4896)) 45 | (pad "8" smd rect (at -1.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp d97f964e-976e-46be-a198-5be89b0d38f9)) 46 | (pad "9" smd rect (at -0.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 838db599-62e2-4c60-98cd-5b0023d1d72d)) 47 | (pad "10" smd rect (at -0.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 0b55fef0-ccf4-4a8d-8f1e-8ede0f046a47)) 48 | (pad "11" smd rect (at 0.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 7927e5fa-d383-41dd-b53f-be0785b04bb8)) 49 | (pad "12" smd rect (at 0.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp db0fd53a-789d-4727-a9ce-10ae88f17375)) 50 | (pad "13" smd rect (at 1.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 53fcb6e5-e5b1-4fcd-98a2-2d63e70a2954)) 51 | (pad "14" smd rect (at 1.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 40a569ab-37bb-45b5-bb53-087fdb4c1e1a)) 52 | (pad "15" smd rect (at 2.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp fe1703a8-a49c-4f2d-9821-9194233c0d1a)) 53 | (pad "16" smd rect (at 2.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 01ebe846-5a13-4d80-a792-2b9f55eba3fc)) 54 | (pad "17" smd rect (at 3.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 7be307a2-befe-4dc1-b0f6-55d85061a58d)) 55 | (pad "18" smd rect (at 3.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp d5c6f0aa-3636-4a6b-aceb-d6117e99a3fa)) 56 | (pad "19" smd rect (at 4.25 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b607cc62-5e7d-40f3-a30a-dda80be417ab)) 57 | (pad "20" smd rect (at 4.75 -1.85) (size 0.3 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 263bd64b-64cb-402b-add6-736ad78a68db)) 58 | (pad "MP" smd rect (at 6.4 0.4) (size 2 3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 1010045a-248a-44dd-8b29-6f3a533df8fc)) 59 | (pad "MP" smd rect (at -6.4 0.5) (size 2 3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 89a0bd3f-58a9-4604-ac4e-3e90ec169787)) 60 | (model "/home/dlharmon/repos/launch/pcb/models/AFC07-S20FCC-00.step" 61 | (offset (xyz 0 0 0)) 62 | (scale (xyz 1 1 1)) 63 | (rotate (xyz 0 0 0)) 64 | ) 65 | ) 66 | -------------------------------------------------------------------------------- /pcb-common/Kailh.pretty/Kailh_socket_MX.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "Kailh_socket_MX" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 61B139D4) 4 | (descr "MX-style keyswitch with Kailh socket mount") 5 | (tags "MX,cherry,gateron,kailh,pg1511,socket") 6 | (clearance 0.5) 7 | (attr smd) 8 | (fp_text reference "SWL4" (at 0 8.255 180) (layer "F.SilkS") 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | (tstamp e48b57be-2004-412d-9e40-4910493cf427) 11 | ) 12 | (fp_text value "SW_Push" (at 0 -8.255 180) (layer "B.Fab") hide 13 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 14 | (tstamp 4ca7bf5e-0fb5-4f7f-a656-f6abf97882dc) 15 | ) 16 | (fp_text user "${VALUE}" (at -0.635 -0.635 180) (layer "F.Fab") hide 17 | (effects (font (size 1 1) (thickness 0.15))) 18 | (tstamp 4a2b3c1a-ba81-4d75-a4b2-37acc9d4f718) 19 | ) 20 | (fp_text user "${REFERENCE}" (at -0.635 4.445 180) (layer "F.Fab") 21 | (effects (font (size 1 1) (thickness 0.15))) 22 | (tstamp d7433cfa-c3a6-4df0-9108-169a02692da5) 23 | ) 24 | (fp_line (start 6 -7) (end 7 -7) (layer "B.SilkS") (width 0.15) (tstamp 335d3462-618e-47ea-ba5f-d5b315259b39)) 25 | (fp_line (start -7 6) (end -7 7) (layer "B.SilkS") (width 0.15) (tstamp 40dda6f5-75b3-4788-97ef-07154c1d9afc)) 26 | (fp_line (start 7 7) (end 6 7) (layer "B.SilkS") (width 0.15) (tstamp 6a52de59-6533-44ee-816c-df97a907d073)) 27 | (fp_line (start -7 -7) (end -6 -7) (layer "B.SilkS") (width 0.15) (tstamp 7384ba69-ecc4-4f30-a9b7-1293e0b9848f)) 28 | (fp_line (start -7 -7) (end -7 -6) (layer "B.SilkS") (width 0.15) (tstamp 7e98edda-5b96-4b08-8102-3b00fd63775b)) 29 | (fp_line (start -6 7) (end -7 7) (layer "B.SilkS") (width 0.15) (tstamp 9bdc8f69-946c-4646-b328-d38fa3d8853a)) 30 | (fp_line (start 7 -6) (end 7 -7) (layer "B.SilkS") (width 0.15) (tstamp a5c835c3-252f-40d5-8053-67520a608899)) 31 | (fp_line (start 7 7) (end 7 6) (layer "B.SilkS") (width 0.15) (tstamp d0423c71-d3f8-4e13-a244-63a469a5f00f)) 32 | (fp_line (start 5.08 3.556) (end 5.08 2.54) (layer "F.SilkS") (width 0.15) (tstamp 0e4c4d31-c283-4211-8e1e-30971a2d98a2)) 33 | (fp_line (start 5.08 6.985) (end 5.08 6.604) (layer "F.SilkS") (width 0.15) (tstamp 29892d3f-d174-4ee6-8a71-81e0d53a931a)) 34 | (fp_line (start -2.464162 0.635) (end -4.191 0.635) (layer "F.SilkS") (width 0.15) (tstamp 4fdfc5cd-6bb1-46b6-8cc5-2825415ae233)) 35 | (fp_line (start -3.81 6.985) (end 5.08 6.985) (layer "F.SilkS") (width 0.15) (tstamp 546dfbde-cf5e-4861-9b80-4ab9c2cc52cb)) 36 | (fp_line (start -5.969 0.635) (end -6.35 0.635) (layer "F.SilkS") (width 0.15) (tstamp 670b519d-5654-4554-ba68-6a54afb1eb64)) 37 | (fp_line (start -6.35 1.016) (end -6.35 0.635) (layer "F.SilkS") (width 0.15) (tstamp 883d5b35-74ae-4626-88f8-107b7df774f3)) 38 | (fp_line (start -6.35 4.445) (end -6.35 4.064) (layer "F.SilkS") (width 0.15) (tstamp a10cca44-a917-4efa-92ad-f4ee798396a4)) 39 | (fp_line (start 5.08 2.54) (end 0 2.54) (layer "F.SilkS") (width 0.15) (tstamp a90ffc1f-4912-490c-93b7-dbe9b90184a0)) 40 | (fp_arc (start 0 2.54) (mid -1.563147 2.002042) (end -2.464162 0.61604) (layer "F.SilkS") (width 0.15) (tstamp e2dc257e-d0f4-4d21-ade5-b06b994ec994)) 41 | (fp_arc (start -3.81 6.985) (mid -5.606051 6.241051) (end -6.35 4.445) (layer "F.SilkS") (width 0.15) (tstamp efc54e6b-edc4-4285-ac5a-5117e1b6303e)) 42 | (fp_line (start -6.9 -6.9) (end 6.9 -6.9) (layer "Eco2.User") (width 0.15) (tstamp 327285e1-b945-47a5-beb5-ca69d6f70d42)) 43 | (fp_line (start 6.9 6.9) (end 6.9 -6.9) (layer "Eco2.User") (width 0.15) (tstamp 4043b0c3-de41-4b2f-94fa-65fec5d251ad)) 44 | (fp_line (start 6.9 6.9) (end -6.9 6.9) (layer "Eco2.User") (width 0.15) (tstamp 545b2bc9-67f5-4f50-94a5-1dc70081ff78)) 45 | (fp_line (start -6.9 -6.9) (end -6.9 6.9) (layer "Eco2.User") (width 0.15) (tstamp d5732363-7998-445b-80d3-56ffbc12243c)) 46 | (fp_line (start -7.5 -7.5) (end -7.5 7.5) (layer "B.Fab") (width 0.15) (tstamp 0b8aaf8e-37d9-4569-8e84-dbe523f949ff)) 47 | (fp_line (start 7.5 -7.5) (end -7.5 -7.5) (layer "B.Fab") (width 0.15) (tstamp 12811b79-68f8-45ef-8f4e-dbcae8af4381)) 48 | (fp_line (start 7.5 7.5) (end 7.5 -7.5) (layer "B.Fab") (width 0.15) (tstamp 8298dd2f-4fb8-46ed-832b-97acb5201bce)) 49 | (fp_line (start -7.5 7.5) (end 7.5 7.5) (layer "B.Fab") (width 0.15) (tstamp a96b2769-cfb5-497b-b8e9-bdde55ca4174)) 50 | (fp_line (start 5.08 2.54) (end 0 2.54) (layer "F.Fab") (width 0.12) (tstamp 19e49497-9db8-442c-bfaa-49b4e81eff48)) 51 | (fp_line (start -6.35 0.635) (end -6.35 4.445) (layer "F.Fab") (width 0.12) (tstamp 1fcca494-bd1a-4bdb-88b4-8406d6e78956)) 52 | (fp_line (start 7.62 6.35) (end 7.62 3.81) (layer "F.Fab") (width 0.12) (tstamp 206b5aa8-328a-4a84-8eac-2f6f992e1cd4)) 53 | (fp_line (start -6.35 1.27) (end -8.89 1.27) (layer "F.Fab") (width 0.12) (tstamp 31ecdadd-a778-40fe-8d5e-bf7e6e6bc53d)) 54 | (fp_line (start 5.08 6.985) (end 5.08 2.54) (layer "F.Fab") (width 0.12) (tstamp 4ef856c3-efdc-423b-ab0e-07d85302ca39)) 55 | (fp_line (start -8.89 1.27) (end -8.89 3.81) (layer "F.Fab") (width 0.12) (tstamp 665258db-8d2e-41de-a48f-07aea6cdcc94)) 56 | (fp_line (start 5.08 6.35) (end 7.62 6.35) (layer "F.Fab") (width 0.12) (tstamp 97f44add-5a0e-4549-95eb-c9ff4ec1fdba)) 57 | (fp_line (start 7.62 3.81) (end 5.08 3.81) (layer "F.Fab") (width 0.12) (tstamp 9a3a5d2f-dce6-4fb5-b136-ac84d9e5f9af)) 58 | (fp_line (start -8.89 3.81) (end -6.35 3.81) (layer "F.Fab") (width 0.12) (tstamp bc6e0af7-78c1-4408-8cc5-a1c2eb3d3187)) 59 | (fp_line (start -6.35 0.635) (end -2.54 0.635) (layer "F.Fab") (width 0.12) (tstamp ddc716a2-c2ce-49fd-9a49-b8e51166208d)) 60 | (fp_line (start -3.81 6.985) (end 5.08 6.985) (layer "F.Fab") (width 0.12) (tstamp f0db5d6f-c20d-4d89-8bdb-8dbf273165f6)) 61 | (fp_arc (start -3.81 6.985) (mid -5.606051 6.241051) (end -6.35 4.445) (layer "F.Fab") (width 0.12) (tstamp 6fcab9bc-ff0b-4481-9d57-e10d8f80f732)) 62 | (fp_arc (start 0 2.54) (mid -1.563147 2.002042) (end -2.464162 0.61604) (layer "F.Fab") (width 0.12) (tstamp 796875ba-4a57-40b6-8c0c-445d18de3ed7)) 63 | (pad "" np_thru_hole circle (at 0 0) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask) (tstamp 06165453-cbe1-4d6c-91c1-69f15d2e2f05)) 64 | (pad "" np_thru_hole circle (at -5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask) (tstamp 18a29fb8-d143-488f-9d86-1ce1f86a745f)) 65 | (pad "" np_thru_hole circle (at -3.81 2.54) (size 3 3) (drill 3) (layers *.Cu *.Mask) (tstamp 47b01410-ff3e-4853-bff2-6a243ed4e66b)) 66 | (pad "" np_thru_hole circle (at 2.54 5.08) (size 3 3) (drill 3) (layers *.Cu *.Mask) (tstamp 78030e25-1840-4823-b476-e285b7ee902b)) 67 | (pad "" np_thru_hole circle (at 5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask) (tstamp c92b3801-f11f-4108-8971-35b85615021e)) 68 | (pad "1" smd roundrect (at 6.29 5.08) (size 2.55 2.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) 69 | (clearance 0.25) (tstamp 1f207c55-67aa-4a8e-a844-3ddd31a0dac0)) 70 | (pad "2" smd roundrect (at -7.56 2.54) (size 2.55 2.5) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) 71 | (clearance 0.25) (tstamp c3fe8e98-c741-42b2-bffd-809b9acb0d42)) 72 | (model "${KIPRJMOD}/../pcb/models/CPG151101S11.stp" 73 | (offset (xyz -6.1 -6.75 1.2)) 74 | (scale (xyz 1 1 1)) 75 | (rotate (xyz -90 -90 0)) 76 | ) 77 | (model "${KIPRJMOD}/../pcb/models/CPG1511F01S11.stp" 78 | (offset (xyz 0 0 -2.2)) 79 | (scale (xyz 1 1 1)) 80 | (rotate (xyz 90 0 90)) 81 | ) 82 | ) 83 | -------------------------------------------------------------------------------- /pcb-heavy/launch-heavy.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.049999999999999996, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.09999999999999999, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.0, 37 | "height": 2.5, 38 | "width": 2.55 39 | }, 40 | "silk_line_width": 0.12, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.5 49 | } 50 | }, 51 | "diff_pair_dimensions": [ 52 | { 53 | "gap": 0.0, 54 | "via_gap": 0.0, 55 | "width": 0.0 56 | } 57 | ], 58 | "drc_exclusions": [], 59 | "meta": { 60 | "filename": "board_design_settings.json", 61 | "version": 2 62 | }, 63 | "rule_severities": { 64 | "annular_width": "error", 65 | "clearance": "error", 66 | "copper_edge_clearance": "error", 67 | "courtyards_overlap": "error", 68 | "diff_pair_gap_out_of_range": "error", 69 | "diff_pair_uncoupled_length_too_long": "error", 70 | "drill_out_of_range": "error", 71 | "duplicate_footprints": "warning", 72 | "extra_footprint": "warning", 73 | "footprint_type_mismatch": "error", 74 | "hole_clearance": "error", 75 | "hole_near_hole": "error", 76 | "invalid_outline": "error", 77 | "item_on_disabled_layer": "error", 78 | "items_not_allowed": "error", 79 | "length_out_of_range": "error", 80 | "malformed_courtyard": "error", 81 | "microvia_drill_out_of_range": "error", 82 | "missing_courtyard": "ignore", 83 | "missing_footprint": "warning", 84 | "net_conflict": "warning", 85 | "npth_inside_courtyard": "ignore", 86 | "padstack": "error", 87 | "pth_inside_courtyard": "ignore", 88 | "shorting_items": "error", 89 | "silk_over_copper": "ignore", 90 | "silk_overlap": "warning", 91 | "skew_out_of_range": "error", 92 | "through_hole_pad_without_hole": "error", 93 | "too_many_vias": "error", 94 | "track_dangling": "warning", 95 | "track_width": "error", 96 | "tracks_crossing": "error", 97 | "unconnected_items": "error", 98 | "unresolved_variable": "error", 99 | "via_dangling": "warning", 100 | "zone_has_empty_net": "error", 101 | "zones_intersect": "error" 102 | }, 103 | "rule_severitieslegacy_courtyards_overlap": true, 104 | "rule_severitieslegacy_no_courtyard_defined": false, 105 | "rules": { 106 | "allow_blind_buried_vias": false, 107 | "allow_microvias": false, 108 | "max_error": 0.005, 109 | "min_clearance": 0.15239999999999998, 110 | "min_copper_edge_clearance": 0.19999999999999998, 111 | "min_hole_clearance": 0.25, 112 | "min_hole_to_hole": 0.25, 113 | "min_microvia_diameter": 0.19999999999999998, 114 | "min_microvia_drill": 0.09999999999999999, 115 | "min_silk_clearance": 0.0, 116 | "min_through_hole_diameter": 0.19999999999999998, 117 | "min_track_width": 0.15239999999999998, 118 | "min_via_annular_width": 0.049999999999999996, 119 | "min_via_diameter": 0.5, 120 | "use_height_for_length_calcs": true 121 | }, 122 | "track_widths": [ 123 | 0.0, 124 | 0.131, 125 | 0.15, 126 | 0.180086, 127 | 0.2, 128 | 0.25, 129 | 0.3, 130 | 0.5 131 | ], 132 | "via_dimensions": [ 133 | { 134 | "diameter": 0.0, 135 | "drill": 0.0 136 | }, 137 | { 138 | "diameter": 0.6, 139 | "drill": 0.3 140 | } 141 | ], 142 | "zones_allow_external_fillets": false, 143 | "zones_use_no_outline": true 144 | }, 145 | "layer_presets": [] 146 | }, 147 | "boards": [], 148 | "cvpcb": { 149 | "equivalence_files": [] 150 | }, 151 | "erc": { 152 | "erc_exclusions": [], 153 | "meta": { 154 | "version": 0 155 | }, 156 | "pin_map": [ 157 | [ 158 | 0, 159 | 0, 160 | 0, 161 | 0, 162 | 0, 163 | 0, 164 | 1, 165 | 0, 166 | 0, 167 | 0, 168 | 0, 169 | 2 170 | ], 171 | [ 172 | 0, 173 | 2, 174 | 0, 175 | 1, 176 | 0, 177 | 0, 178 | 1, 179 | 0, 180 | 2, 181 | 2, 182 | 2, 183 | 2 184 | ], 185 | [ 186 | 0, 187 | 0, 188 | 0, 189 | 0, 190 | 0, 191 | 0, 192 | 1, 193 | 0, 194 | 1, 195 | 0, 196 | 1, 197 | 2 198 | ], 199 | [ 200 | 0, 201 | 1, 202 | 0, 203 | 0, 204 | 0, 205 | 0, 206 | 1, 207 | 1, 208 | 2, 209 | 1, 210 | 1, 211 | 2 212 | ], 213 | [ 214 | 0, 215 | 0, 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 1, 221 | 0, 222 | 0, 223 | 0, 224 | 0, 225 | 2 226 | ], 227 | [ 228 | 0, 229 | 0, 230 | 0, 231 | 0, 232 | 0, 233 | 0, 234 | 0, 235 | 0, 236 | 0, 237 | 0, 238 | 0, 239 | 2 240 | ], 241 | [ 242 | 1, 243 | 1, 244 | 1, 245 | 1, 246 | 1, 247 | 0, 248 | 1, 249 | 1, 250 | 1, 251 | 1, 252 | 1, 253 | 2 254 | ], 255 | [ 256 | 0, 257 | 0, 258 | 0, 259 | 1, 260 | 0, 261 | 0, 262 | 1, 263 | 0, 264 | 0, 265 | 0, 266 | 0, 267 | 2 268 | ], 269 | [ 270 | 0, 271 | 2, 272 | 1, 273 | 2, 274 | 0, 275 | 0, 276 | 1, 277 | 0, 278 | 2, 279 | 2, 280 | 2, 281 | 2 282 | ], 283 | [ 284 | 0, 285 | 2, 286 | 0, 287 | 1, 288 | 0, 289 | 0, 290 | 1, 291 | 0, 292 | 2, 293 | 0, 294 | 0, 295 | 2 296 | ], 297 | [ 298 | 0, 299 | 2, 300 | 1, 301 | 1, 302 | 0, 303 | 0, 304 | 1, 305 | 0, 306 | 2, 307 | 0, 308 | 0, 309 | 2 310 | ], 311 | [ 312 | 2, 313 | 2, 314 | 2, 315 | 2, 316 | 2, 317 | 2, 318 | 2, 319 | 2, 320 | 2, 321 | 2, 322 | 2, 323 | 2 324 | ] 325 | ], 326 | "rule_severities": { 327 | "bus_definition_conflict": "error", 328 | "bus_entry_needed": "error", 329 | "bus_label_syntax": "error", 330 | "bus_to_bus_conflict": "error", 331 | "bus_to_net_conflict": "error", 332 | "different_unit_footprint": "error", 333 | "different_unit_net": "error", 334 | "duplicate_reference": "error", 335 | "duplicate_sheet_names": "error", 336 | "extra_units": "error", 337 | "global_label_dangling": "warning", 338 | "hier_label_mismatch": "error", 339 | "label_dangling": "error", 340 | "lib_symbol_issues": "warning", 341 | "multiple_net_names": "warning", 342 | "net_not_bus_member": "warning", 343 | "no_connect_connected": "warning", 344 | "no_connect_dangling": "warning", 345 | "pin_not_connected": "error", 346 | "pin_not_driven": "error", 347 | "pin_to_pin": "warning", 348 | "power_pin_not_driven": "error", 349 | "similar_labels": "warning", 350 | "unannotated": "error", 351 | "unit_value_mismatch": "error", 352 | "unresolved_variable": "error", 353 | "wire_dangling": "error" 354 | } 355 | }, 356 | "libraries": { 357 | "pinned_footprint_libs": [], 358 | "pinned_symbol_libs": [] 359 | }, 360 | "meta": { 361 | "filename": "launch-heavy.kicad_pro", 362 | "version": 1 363 | }, 364 | "net_settings": { 365 | "classes": [ 366 | { 367 | "bus_width": 12.0, 368 | "clearance": 0.16, 369 | "diff_pair_gap": 0.121, 370 | "diff_pair_via_gap": 0.25, 371 | "diff_pair_width": 0.137, 372 | "line_style": 0, 373 | "microvia_diameter": 0.3, 374 | "microvia_drill": 0.1, 375 | "name": "Default", 376 | "pcb_color": "rgba(0, 0, 0, 0.000)", 377 | "schematic_color": "rgba(0, 0, 0, 0.000)", 378 | "track_width": 0.25, 379 | "via_diameter": 0.6, 380 | "via_drill": 0.3, 381 | "wire_width": 6.0 382 | } 383 | ], 384 | "meta": { 385 | "version": 2 386 | }, 387 | "net_colors": null 388 | }, 389 | "pcbnew": { 390 | "last_paths": { 391 | "gencad": "", 392 | "idf": "", 393 | "netlist": "", 394 | "specctra_dsn": "", 395 | "step": "launch-heavy.step", 396 | "vrml": "" 397 | }, 398 | "page_layout_descr_file": "" 399 | }, 400 | "schematic": { 401 | "annotate_start_num": 0, 402 | "drawing": { 403 | "default_line_thickness": 6.0, 404 | "default_text_size": 50.0, 405 | "field_names": [], 406 | "intersheets_ref_own_page": false, 407 | "intersheets_ref_prefix": "", 408 | "intersheets_ref_short": false, 409 | "intersheets_ref_show": false, 410 | "intersheets_ref_suffix": "", 411 | "junction_size_choice": 3, 412 | "label_size_ratio": 0.25, 413 | "pin_symbol_size": 25.0, 414 | "text_offset_ratio": 0.08 415 | }, 416 | "legacy_lib_dir": "", 417 | "legacy_lib_list": [], 418 | "meta": { 419 | "version": 1 420 | }, 421 | "net_format_name": "", 422 | "ngspice": { 423 | "fix_include_paths": true, 424 | "fix_passive_vals": false, 425 | "meta": { 426 | "version": 0 427 | }, 428 | "model_mode": 0, 429 | "workbook_filename": "" 430 | }, 431 | "page_layout_descr_file": "", 432 | "plot_directory": "", 433 | "spice_adjust_passive_values": false, 434 | "spice_external_command": "spice \"%I\"", 435 | "subpart_first_id": 65, 436 | "subpart_id_separator": 0 437 | }, 438 | "sheets": [ 439 | [ 440 | "80c969df-cd39-4c4a-8336-5a366308cfd3", 441 | "" 442 | ] 443 | ], 444 | "text_variables": {} 445 | } 446 | -------------------------------------------------------------------------------- /pcb-lite/launch-lite.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.049999999999999996, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.09999999999999999, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.0, 37 | "height": 2.5, 38 | "width": 2.55 39 | }, 40 | "silk_line_width": 0.12, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.5 49 | } 50 | }, 51 | "diff_pair_dimensions": [ 52 | { 53 | "gap": 0.0, 54 | "via_gap": 0.0, 55 | "width": 0.0 56 | } 57 | ], 58 | "drc_exclusions": [], 59 | "meta": { 60 | "filename": "board_design_settings.json", 61 | "version": 2 62 | }, 63 | "rule_severities": { 64 | "annular_width": "error", 65 | "clearance": "error", 66 | "copper_edge_clearance": "error", 67 | "courtyards_overlap": "error", 68 | "diff_pair_gap_out_of_range": "error", 69 | "diff_pair_uncoupled_length_too_long": "error", 70 | "drill_out_of_range": "error", 71 | "duplicate_footprints": "warning", 72 | "extra_footprint": "warning", 73 | "footprint_type_mismatch": "error", 74 | "hole_clearance": "error", 75 | "hole_near_hole": "error", 76 | "invalid_outline": "error", 77 | "item_on_disabled_layer": "error", 78 | "items_not_allowed": "error", 79 | "length_out_of_range": "error", 80 | "malformed_courtyard": "error", 81 | "microvia_drill_out_of_range": "error", 82 | "missing_courtyard": "ignore", 83 | "missing_footprint": "warning", 84 | "net_conflict": "warning", 85 | "npth_inside_courtyard": "ignore", 86 | "padstack": "error", 87 | "pth_inside_courtyard": "ignore", 88 | "shorting_items": "error", 89 | "silk_over_copper": "ignore", 90 | "silk_overlap": "ignore", 91 | "skew_out_of_range": "error", 92 | "through_hole_pad_without_hole": "error", 93 | "too_many_vias": "error", 94 | "track_dangling": "warning", 95 | "track_width": "error", 96 | "tracks_crossing": "error", 97 | "unconnected_items": "error", 98 | "unresolved_variable": "error", 99 | "via_dangling": "warning", 100 | "zone_has_empty_net": "error", 101 | "zones_intersect": "error" 102 | }, 103 | "rule_severitieslegacy_courtyards_overlap": true, 104 | "rule_severitieslegacy_no_courtyard_defined": false, 105 | "rules": { 106 | "allow_blind_buried_vias": false, 107 | "allow_microvias": false, 108 | "max_error": 0.005, 109 | "min_clearance": 0.127, 110 | "min_copper_edge_clearance": 0.38, 111 | "min_hole_clearance": 0.0, 112 | "min_hole_to_hole": 0.25, 113 | "min_microvia_diameter": 0.19999999999999998, 114 | "min_microvia_drill": 0.09999999999999999, 115 | "min_silk_clearance": 0.0, 116 | "min_through_hole_diameter": 0.25, 117 | "min_track_width": 0.127, 118 | "min_via_annular_width": 0.049999999999999996, 119 | "min_via_diameter": 0.5, 120 | "use_height_for_length_calcs": true 121 | }, 122 | "track_widths": [ 123 | 0.0, 124 | 0.131, 125 | 0.15, 126 | 0.180086, 127 | 0.2, 128 | 0.25, 129 | 0.3, 130 | 0.5 131 | ], 132 | "via_dimensions": [ 133 | { 134 | "diameter": 0.0, 135 | "drill": 0.0 136 | }, 137 | { 138 | "diameter": 0.5, 139 | "drill": 0.25 140 | } 141 | ], 142 | "zones_allow_external_fillets": false, 143 | "zones_use_no_outline": true 144 | }, 145 | "layer_presets": [] 146 | }, 147 | "boards": [], 148 | "cvpcb": { 149 | "equivalence_files": [] 150 | }, 151 | "erc": { 152 | "erc_exclusions": [], 153 | "meta": { 154 | "version": 0 155 | }, 156 | "pin_map": [ 157 | [ 158 | 0, 159 | 0, 160 | 0, 161 | 0, 162 | 0, 163 | 0, 164 | 1, 165 | 0, 166 | 0, 167 | 0, 168 | 0, 169 | 2 170 | ], 171 | [ 172 | 0, 173 | 2, 174 | 0, 175 | 1, 176 | 0, 177 | 0, 178 | 1, 179 | 0, 180 | 2, 181 | 2, 182 | 2, 183 | 2 184 | ], 185 | [ 186 | 0, 187 | 0, 188 | 0, 189 | 0, 190 | 0, 191 | 0, 192 | 1, 193 | 0, 194 | 1, 195 | 0, 196 | 1, 197 | 2 198 | ], 199 | [ 200 | 0, 201 | 1, 202 | 0, 203 | 0, 204 | 0, 205 | 0, 206 | 1, 207 | 1, 208 | 2, 209 | 1, 210 | 1, 211 | 2 212 | ], 213 | [ 214 | 0, 215 | 0, 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 1, 221 | 0, 222 | 0, 223 | 0, 224 | 0, 225 | 2 226 | ], 227 | [ 228 | 0, 229 | 0, 230 | 0, 231 | 0, 232 | 0, 233 | 0, 234 | 0, 235 | 0, 236 | 0, 237 | 0, 238 | 0, 239 | 2 240 | ], 241 | [ 242 | 1, 243 | 1, 244 | 1, 245 | 1, 246 | 1, 247 | 0, 248 | 1, 249 | 1, 250 | 1, 251 | 1, 252 | 1, 253 | 2 254 | ], 255 | [ 256 | 0, 257 | 0, 258 | 0, 259 | 1, 260 | 0, 261 | 0, 262 | 1, 263 | 0, 264 | 0, 265 | 0, 266 | 0, 267 | 2 268 | ], 269 | [ 270 | 0, 271 | 2, 272 | 1, 273 | 2, 274 | 0, 275 | 0, 276 | 1, 277 | 0, 278 | 2, 279 | 2, 280 | 2, 281 | 2 282 | ], 283 | [ 284 | 0, 285 | 2, 286 | 0, 287 | 1, 288 | 0, 289 | 0, 290 | 1, 291 | 0, 292 | 2, 293 | 0, 294 | 0, 295 | 2 296 | ], 297 | [ 298 | 0, 299 | 2, 300 | 1, 301 | 1, 302 | 0, 303 | 0, 304 | 1, 305 | 0, 306 | 2, 307 | 0, 308 | 0, 309 | 2 310 | ], 311 | [ 312 | 2, 313 | 2, 314 | 2, 315 | 2, 316 | 2, 317 | 2, 318 | 2, 319 | 2, 320 | 2, 321 | 2, 322 | 2, 323 | 2 324 | ] 325 | ], 326 | "rule_severities": { 327 | "bus_definition_conflict": "error", 328 | "bus_entry_needed": "error", 329 | "bus_label_syntax": "error", 330 | "bus_to_bus_conflict": "error", 331 | "bus_to_net_conflict": "error", 332 | "different_unit_footprint": "error", 333 | "different_unit_net": "error", 334 | "duplicate_reference": "error", 335 | "duplicate_sheet_names": "error", 336 | "extra_units": "error", 337 | "global_label_dangling": "warning", 338 | "hier_label_mismatch": "error", 339 | "label_dangling": "error", 340 | "lib_symbol_issues": "warning", 341 | "multiple_net_names": "warning", 342 | "net_not_bus_member": "warning", 343 | "no_connect_connected": "warning", 344 | "no_connect_dangling": "warning", 345 | "pin_not_connected": "error", 346 | "pin_not_driven": "error", 347 | "pin_to_pin": "warning", 348 | "power_pin_not_driven": "error", 349 | "similar_labels": "warning", 350 | "unannotated": "error", 351 | "unit_value_mismatch": "error", 352 | "unresolved_variable": "error", 353 | "wire_dangling": "error" 354 | } 355 | }, 356 | "libraries": { 357 | "pinned_footprint_libs": [], 358 | "pinned_symbol_libs": [] 359 | }, 360 | "meta": { 361 | "filename": "launch-lite.kicad_pro", 362 | "version": 1 363 | }, 364 | "net_settings": { 365 | "classes": [ 366 | { 367 | "bus_width": 12.0, 368 | "clearance": 0.127, 369 | "diff_pair_gap": 0.127, 370 | "diff_pair_via_gap": 0.25, 371 | "diff_pair_width": 0.131318, 372 | "line_style": 0, 373 | "microvia_diameter": 0.3, 374 | "microvia_drill": 0.1, 375 | "name": "Default", 376 | "pcb_color": "rgba(0, 0, 0, 0.000)", 377 | "schematic_color": "rgba(0, 0, 0, 0.000)", 378 | "track_width": 0.25, 379 | "via_diameter": 0.5, 380 | "via_drill": 0.25, 381 | "wire_width": 6.0 382 | } 383 | ], 384 | "meta": { 385 | "version": 2 386 | }, 387 | "net_colors": null 388 | }, 389 | "pcbnew": { 390 | "last_paths": { 391 | "gencad": "", 392 | "idf": "", 393 | "netlist": "", 394 | "specctra_dsn": "", 395 | "step": "launch-lite.step", 396 | "vrml": "" 397 | }, 398 | "page_layout_descr_file": "" 399 | }, 400 | "schematic": { 401 | "annotate_start_num": 0, 402 | "drawing": { 403 | "default_line_thickness": 6.0, 404 | "default_text_size": 50.0, 405 | "field_names": [], 406 | "intersheets_ref_own_page": false, 407 | "intersheets_ref_prefix": "", 408 | "intersheets_ref_short": false, 409 | "intersheets_ref_show": false, 410 | "intersheets_ref_suffix": "", 411 | "junction_size_choice": 3, 412 | "label_size_ratio": 0.25, 413 | "pin_symbol_size": 25.0, 414 | "text_offset_ratio": 0.08 415 | }, 416 | "legacy_lib_dir": "", 417 | "legacy_lib_list": [], 418 | "meta": { 419 | "version": 1 420 | }, 421 | "net_format_name": "", 422 | "ngspice": { 423 | "fix_include_paths": true, 424 | "fix_passive_vals": false, 425 | "meta": { 426 | "version": 0 427 | }, 428 | "model_mode": 0, 429 | "workbook_filename": "" 430 | }, 431 | "page_layout_descr_file": "", 432 | "plot_directory": "", 433 | "spice_adjust_passive_values": false, 434 | "spice_external_command": "spice \"%I\"", 435 | "subpart_first_id": 65, 436 | "subpart_id_separator": 0 437 | }, 438 | "sheets": [ 439 | [ 440 | "80c969df-cd39-4c4a-8336-5a366308cfd3", 441 | "" 442 | ], 443 | [ 444 | "00000000-0000-0000-0000-00005f8e2a01", 445 | "power" 446 | ] 447 | ], 448 | "text_variables": {} 449 | } 450 | -------------------------------------------------------------------------------- /pcb-lite-iso/launch-lite-iso.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.049999999999999996, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.09999999999999999, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.0, 37 | "height": 2.5, 38 | "width": 2.55 39 | }, 40 | "silk_line_width": 0.12, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.5 49 | } 50 | }, 51 | "diff_pair_dimensions": [ 52 | { 53 | "gap": 0.0, 54 | "via_gap": 0.0, 55 | "width": 0.0 56 | } 57 | ], 58 | "drc_exclusions": [], 59 | "meta": { 60 | "filename": "board_design_settings.json", 61 | "version": 2 62 | }, 63 | "rule_severities": { 64 | "annular_width": "error", 65 | "clearance": "error", 66 | "copper_edge_clearance": "error", 67 | "courtyards_overlap": "error", 68 | "diff_pair_gap_out_of_range": "error", 69 | "diff_pair_uncoupled_length_too_long": "error", 70 | "drill_out_of_range": "error", 71 | "duplicate_footprints": "warning", 72 | "extra_footprint": "warning", 73 | "footprint_type_mismatch": "error", 74 | "hole_clearance": "error", 75 | "hole_near_hole": "error", 76 | "invalid_outline": "error", 77 | "item_on_disabled_layer": "error", 78 | "items_not_allowed": "error", 79 | "length_out_of_range": "error", 80 | "malformed_courtyard": "error", 81 | "microvia_drill_out_of_range": "error", 82 | "missing_courtyard": "ignore", 83 | "missing_footprint": "warning", 84 | "net_conflict": "warning", 85 | "npth_inside_courtyard": "ignore", 86 | "padstack": "error", 87 | "pth_inside_courtyard": "ignore", 88 | "shorting_items": "error", 89 | "silk_over_copper": "ignore", 90 | "silk_overlap": "ignore", 91 | "skew_out_of_range": "error", 92 | "through_hole_pad_without_hole": "error", 93 | "too_many_vias": "error", 94 | "track_dangling": "warning", 95 | "track_width": "error", 96 | "tracks_crossing": "error", 97 | "unconnected_items": "error", 98 | "unresolved_variable": "error", 99 | "via_dangling": "warning", 100 | "zone_has_empty_net": "error", 101 | "zones_intersect": "error" 102 | }, 103 | "rule_severitieslegacy_courtyards_overlap": true, 104 | "rule_severitieslegacy_no_courtyard_defined": false, 105 | "rules": { 106 | "allow_blind_buried_vias": false, 107 | "allow_microvias": false, 108 | "max_error": 0.005, 109 | "min_clearance": 0.127, 110 | "min_copper_edge_clearance": 0.38, 111 | "min_hole_clearance": 0.0, 112 | "min_hole_to_hole": 0.25, 113 | "min_microvia_diameter": 0.19999999999999998, 114 | "min_microvia_drill": 0.09999999999999999, 115 | "min_silk_clearance": 0.0, 116 | "min_through_hole_diameter": 0.25, 117 | "min_track_width": 0.127, 118 | "min_via_annular_width": 0.049999999999999996, 119 | "min_via_diameter": 0.5, 120 | "use_height_for_length_calcs": true 121 | }, 122 | "track_widths": [ 123 | 0.0, 124 | 0.131, 125 | 0.15, 126 | 0.180086, 127 | 0.2, 128 | 0.25, 129 | 0.3, 130 | 0.5 131 | ], 132 | "via_dimensions": [ 133 | { 134 | "diameter": 0.0, 135 | "drill": 0.0 136 | }, 137 | { 138 | "diameter": 0.5, 139 | "drill": 0.25 140 | } 141 | ], 142 | "zones_allow_external_fillets": false, 143 | "zones_use_no_outline": true 144 | }, 145 | "layer_presets": [] 146 | }, 147 | "boards": [], 148 | "cvpcb": { 149 | "equivalence_files": [] 150 | }, 151 | "erc": { 152 | "erc_exclusions": [], 153 | "meta": { 154 | "version": 0 155 | }, 156 | "pin_map": [ 157 | [ 158 | 0, 159 | 0, 160 | 0, 161 | 0, 162 | 0, 163 | 0, 164 | 1, 165 | 0, 166 | 0, 167 | 0, 168 | 0, 169 | 2 170 | ], 171 | [ 172 | 0, 173 | 2, 174 | 0, 175 | 1, 176 | 0, 177 | 0, 178 | 1, 179 | 0, 180 | 2, 181 | 2, 182 | 2, 183 | 2 184 | ], 185 | [ 186 | 0, 187 | 0, 188 | 0, 189 | 0, 190 | 0, 191 | 0, 192 | 1, 193 | 0, 194 | 1, 195 | 0, 196 | 1, 197 | 2 198 | ], 199 | [ 200 | 0, 201 | 1, 202 | 0, 203 | 0, 204 | 0, 205 | 0, 206 | 1, 207 | 1, 208 | 2, 209 | 1, 210 | 1, 211 | 2 212 | ], 213 | [ 214 | 0, 215 | 0, 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 1, 221 | 0, 222 | 0, 223 | 0, 224 | 0, 225 | 2 226 | ], 227 | [ 228 | 0, 229 | 0, 230 | 0, 231 | 0, 232 | 0, 233 | 0, 234 | 0, 235 | 0, 236 | 0, 237 | 0, 238 | 0, 239 | 2 240 | ], 241 | [ 242 | 1, 243 | 1, 244 | 1, 245 | 1, 246 | 1, 247 | 0, 248 | 1, 249 | 1, 250 | 1, 251 | 1, 252 | 1, 253 | 2 254 | ], 255 | [ 256 | 0, 257 | 0, 258 | 0, 259 | 1, 260 | 0, 261 | 0, 262 | 1, 263 | 0, 264 | 0, 265 | 0, 266 | 0, 267 | 2 268 | ], 269 | [ 270 | 0, 271 | 2, 272 | 1, 273 | 2, 274 | 0, 275 | 0, 276 | 1, 277 | 0, 278 | 2, 279 | 2, 280 | 2, 281 | 2 282 | ], 283 | [ 284 | 0, 285 | 2, 286 | 0, 287 | 1, 288 | 0, 289 | 0, 290 | 1, 291 | 0, 292 | 2, 293 | 0, 294 | 0, 295 | 2 296 | ], 297 | [ 298 | 0, 299 | 2, 300 | 1, 301 | 1, 302 | 0, 303 | 0, 304 | 1, 305 | 0, 306 | 2, 307 | 0, 308 | 0, 309 | 2 310 | ], 311 | [ 312 | 2, 313 | 2, 314 | 2, 315 | 2, 316 | 2, 317 | 2, 318 | 2, 319 | 2, 320 | 2, 321 | 2, 322 | 2, 323 | 2 324 | ] 325 | ], 326 | "rule_severities": { 327 | "bus_definition_conflict": "error", 328 | "bus_entry_needed": "error", 329 | "bus_label_syntax": "error", 330 | "bus_to_bus_conflict": "error", 331 | "bus_to_net_conflict": "error", 332 | "different_unit_footprint": "error", 333 | "different_unit_net": "error", 334 | "duplicate_reference": "error", 335 | "duplicate_sheet_names": "error", 336 | "extra_units": "error", 337 | "global_label_dangling": "warning", 338 | "hier_label_mismatch": "error", 339 | "label_dangling": "error", 340 | "lib_symbol_issues": "warning", 341 | "multiple_net_names": "warning", 342 | "net_not_bus_member": "warning", 343 | "no_connect_connected": "warning", 344 | "no_connect_dangling": "warning", 345 | "pin_not_connected": "error", 346 | "pin_not_driven": "error", 347 | "pin_to_pin": "error", 348 | "power_pin_not_driven": "error", 349 | "similar_labels": "warning", 350 | "unannotated": "error", 351 | "unit_value_mismatch": "error", 352 | "unresolved_variable": "error", 353 | "wire_dangling": "error" 354 | } 355 | }, 356 | "libraries": { 357 | "pinned_footprint_libs": [], 358 | "pinned_symbol_libs": [] 359 | }, 360 | "meta": { 361 | "filename": "launch-lite-iso.kicad_pro", 362 | "version": 1 363 | }, 364 | "net_settings": { 365 | "classes": [ 366 | { 367 | "bus_width": 12.0, 368 | "clearance": 0.127, 369 | "diff_pair_gap": 0.127, 370 | "diff_pair_via_gap": 0.25, 371 | "diff_pair_width": 0.131318, 372 | "line_style": 0, 373 | "microvia_diameter": 0.3, 374 | "microvia_drill": 0.1, 375 | "name": "Default", 376 | "pcb_color": "rgba(0, 0, 0, 0.000)", 377 | "schematic_color": "rgba(0, 0, 0, 0.000)", 378 | "track_width": 0.25, 379 | "via_diameter": 0.5, 380 | "via_drill": 0.25, 381 | "wire_width": 6.0 382 | } 383 | ], 384 | "meta": { 385 | "version": 2 386 | }, 387 | "net_colors": null 388 | }, 389 | "pcbnew": { 390 | "last_paths": { 391 | "gencad": "", 392 | "idf": "", 393 | "netlist": "", 394 | "specctra_dsn": "", 395 | "step": "launch-lite-iso.step", 396 | "vrml": "" 397 | }, 398 | "page_layout_descr_file": "" 399 | }, 400 | "schematic": { 401 | "annotate_start_num": 0, 402 | "drawing": { 403 | "default_line_thickness": 6.0, 404 | "default_text_size": 50.0, 405 | "field_names": [], 406 | "intersheets_ref_own_page": false, 407 | "intersheets_ref_prefix": "", 408 | "intersheets_ref_short": false, 409 | "intersheets_ref_show": false, 410 | "intersheets_ref_suffix": "", 411 | "junction_size_choice": 3, 412 | "label_size_ratio": 0.25, 413 | "pin_symbol_size": 25.0, 414 | "text_offset_ratio": 0.08 415 | }, 416 | "legacy_lib_dir": "", 417 | "legacy_lib_list": [], 418 | "meta": { 419 | "version": 1 420 | }, 421 | "net_format_name": "", 422 | "ngspice": { 423 | "fix_include_paths": true, 424 | "fix_passive_vals": false, 425 | "meta": { 426 | "version": 0 427 | }, 428 | "model_mode": 0, 429 | "workbook_filename": "" 430 | }, 431 | "page_layout_descr_file": "", 432 | "plot_directory": "", 433 | "spice_adjust_passive_values": false, 434 | "spice_external_command": "spice \"%I\"", 435 | "subpart_first_id": 65, 436 | "subpart_id_separator": 0 437 | }, 438 | "sheets": [ 439 | [ 440 | "80c969df-cd39-4c4a-8336-5a366308cfd3", 441 | "" 442 | ], 443 | [ 444 | "00000000-0000-0000-0000-00005f8e2a01", 445 | "power" 446 | ] 447 | ], 448 | "text_variables": {} 449 | } 450 | -------------------------------------------------------------------------------- /pcb-iso/launch-iso.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.049999999999999996, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.09999999999999999, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.0, 37 | "height": 1.6, 38 | "width": 0.9 39 | }, 40 | "silk_line_width": 0.12, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.5 49 | } 50 | }, 51 | "diff_pair_dimensions": [ 52 | { 53 | "gap": 0.0, 54 | "via_gap": 0.0, 55 | "width": 0.0 56 | } 57 | ], 58 | "drc_exclusions": [], 59 | "meta": { 60 | "filename": "board_design_settings.json", 61 | "version": 2 62 | }, 63 | "rule_severities": { 64 | "annular_width": "error", 65 | "clearance": "error", 66 | "copper_edge_clearance": "error", 67 | "courtyards_overlap": "error", 68 | "diff_pair_gap_out_of_range": "error", 69 | "diff_pair_uncoupled_length_too_long": "error", 70 | "drill_out_of_range": "error", 71 | "duplicate_footprints": "warning", 72 | "extra_footprint": "warning", 73 | "footprint_type_mismatch": "error", 74 | "hole_clearance": "error", 75 | "hole_near_hole": "error", 76 | "invalid_outline": "error", 77 | "item_on_disabled_layer": "error", 78 | "items_not_allowed": "error", 79 | "length_out_of_range": "error", 80 | "malformed_courtyard": "error", 81 | "microvia_drill_out_of_range": "error", 82 | "missing_courtyard": "ignore", 83 | "missing_footprint": "warning", 84 | "net_conflict": "warning", 85 | "npth_inside_courtyard": "ignore", 86 | "padstack": "error", 87 | "pth_inside_courtyard": "ignore", 88 | "shorting_items": "error", 89 | "silk_over_copper": "ignore", 90 | "silk_overlap": "ignore", 91 | "skew_out_of_range": "error", 92 | "through_hole_pad_without_hole": "error", 93 | "too_many_vias": "error", 94 | "track_dangling": "warning", 95 | "track_width": "error", 96 | "tracks_crossing": "error", 97 | "unconnected_items": "error", 98 | "unresolved_variable": "error", 99 | "via_dangling": "warning", 100 | "zone_has_empty_net": "error", 101 | "zones_intersect": "error" 102 | }, 103 | "rule_severitieslegacy_courtyards_overlap": true, 104 | "rule_severitieslegacy_no_courtyard_defined": false, 105 | "rules": { 106 | "allow_blind_buried_vias": false, 107 | "allow_microvias": false, 108 | "max_error": 0.005, 109 | "min_clearance": 0.0, 110 | "min_copper_edge_clearance": 0.19999999999999998, 111 | "min_hole_clearance": 0.0, 112 | "min_hole_to_hole": 0.25, 113 | "min_microvia_diameter": 0.19999999999999998, 114 | "min_microvia_drill": 0.09999999999999999, 115 | "min_silk_clearance": 0.0, 116 | "min_through_hole_diameter": 0.19999999999999998, 117 | "min_track_width": 0.12, 118 | "min_via_annular_width": 0.049999999999999996, 119 | "min_via_diameter": 0.39999999999999997, 120 | "use_height_for_length_calcs": true 121 | }, 122 | "track_widths": [ 123 | 0.0, 124 | 0.131, 125 | 0.15, 126 | 0.180086, 127 | 0.2, 128 | 0.25, 129 | 0.3, 130 | 0.5 131 | ], 132 | "via_dimensions": [ 133 | { 134 | "diameter": 0.0, 135 | "drill": 0.0 136 | }, 137 | { 138 | "diameter": 0.5, 139 | "drill": 0.25 140 | } 141 | ], 142 | "zones_allow_external_fillets": false, 143 | "zones_use_no_outline": true 144 | }, 145 | "layer_presets": [] 146 | }, 147 | "boards": [], 148 | "cvpcb": { 149 | "equivalence_files": [] 150 | }, 151 | "erc": { 152 | "erc_exclusions": [], 153 | "meta": { 154 | "version": 0 155 | }, 156 | "pin_map": [ 157 | [ 158 | 0, 159 | 0, 160 | 0, 161 | 0, 162 | 0, 163 | 0, 164 | 1, 165 | 0, 166 | 0, 167 | 0, 168 | 0, 169 | 2 170 | ], 171 | [ 172 | 0, 173 | 2, 174 | 0, 175 | 1, 176 | 0, 177 | 0, 178 | 1, 179 | 0, 180 | 2, 181 | 2, 182 | 2, 183 | 2 184 | ], 185 | [ 186 | 0, 187 | 0, 188 | 0, 189 | 0, 190 | 0, 191 | 0, 192 | 1, 193 | 0, 194 | 1, 195 | 0, 196 | 1, 197 | 2 198 | ], 199 | [ 200 | 0, 201 | 1, 202 | 0, 203 | 0, 204 | 0, 205 | 0, 206 | 1, 207 | 1, 208 | 2, 209 | 1, 210 | 1, 211 | 2 212 | ], 213 | [ 214 | 0, 215 | 0, 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 1, 221 | 0, 222 | 0, 223 | 0, 224 | 0, 225 | 2 226 | ], 227 | [ 228 | 0, 229 | 0, 230 | 0, 231 | 0, 232 | 0, 233 | 0, 234 | 0, 235 | 0, 236 | 0, 237 | 0, 238 | 0, 239 | 2 240 | ], 241 | [ 242 | 1, 243 | 1, 244 | 1, 245 | 1, 246 | 1, 247 | 0, 248 | 1, 249 | 1, 250 | 1, 251 | 1, 252 | 1, 253 | 2 254 | ], 255 | [ 256 | 0, 257 | 0, 258 | 0, 259 | 1, 260 | 0, 261 | 0, 262 | 1, 263 | 0, 264 | 0, 265 | 0, 266 | 0, 267 | 2 268 | ], 269 | [ 270 | 0, 271 | 2, 272 | 1, 273 | 2, 274 | 0, 275 | 0, 276 | 1, 277 | 0, 278 | 2, 279 | 2, 280 | 2, 281 | 2 282 | ], 283 | [ 284 | 0, 285 | 2, 286 | 0, 287 | 1, 288 | 0, 289 | 0, 290 | 1, 291 | 0, 292 | 2, 293 | 0, 294 | 0, 295 | 2 296 | ], 297 | [ 298 | 0, 299 | 2, 300 | 1, 301 | 1, 302 | 0, 303 | 0, 304 | 1, 305 | 0, 306 | 2, 307 | 0, 308 | 0, 309 | 2 310 | ], 311 | [ 312 | 2, 313 | 2, 314 | 2, 315 | 2, 316 | 2, 317 | 2, 318 | 2, 319 | 2, 320 | 2, 321 | 2, 322 | 2, 323 | 2 324 | ] 325 | ], 326 | "rule_severities": { 327 | "bus_definition_conflict": "error", 328 | "bus_entry_needed": "error", 329 | "bus_label_syntax": "error", 330 | "bus_to_bus_conflict": "error", 331 | "bus_to_net_conflict": "error", 332 | "different_unit_footprint": "error", 333 | "different_unit_net": "error", 334 | "duplicate_reference": "error", 335 | "duplicate_sheet_names": "error", 336 | "extra_units": "error", 337 | "global_label_dangling": "warning", 338 | "hier_label_mismatch": "error", 339 | "label_dangling": "error", 340 | "lib_symbol_issues": "warning", 341 | "multiple_net_names": "warning", 342 | "net_not_bus_member": "warning", 343 | "no_connect_connected": "warning", 344 | "no_connect_dangling": "warning", 345 | "pin_not_connected": "error", 346 | "pin_not_driven": "error", 347 | "pin_to_pin": "error", 348 | "power_pin_not_driven": "error", 349 | "similar_labels": "warning", 350 | "unannotated": "error", 351 | "unit_value_mismatch": "error", 352 | "unresolved_variable": "error", 353 | "wire_dangling": "error" 354 | } 355 | }, 356 | "libraries": { 357 | "pinned_footprint_libs": [], 358 | "pinned_symbol_libs": [] 359 | }, 360 | "meta": { 361 | "filename": "launch-iso.kicad_pro", 362 | "version": 1 363 | }, 364 | "net_settings": { 365 | "classes": [ 366 | { 367 | "bus_width": 12.0, 368 | "clearance": 0.12, 369 | "diff_pair_gap": 0.121, 370 | "diff_pair_via_gap": 0.25, 371 | "diff_pair_width": 0.137, 372 | "line_style": 0, 373 | "microvia_diameter": 0.3, 374 | "microvia_drill": 0.1, 375 | "name": "Default", 376 | "pcb_color": "rgba(0, 0, 0, 0.000)", 377 | "schematic_color": "rgba(0, 0, 0, 0.000)", 378 | "track_width": 0.25, 379 | "via_diameter": 0.4, 380 | "via_drill": 0.2, 381 | "wire_width": 6.0 382 | } 383 | ], 384 | "meta": { 385 | "version": 2 386 | }, 387 | "net_colors": null 388 | }, 389 | "pcbnew": { 390 | "last_paths": { 391 | "gencad": "", 392 | "idf": "", 393 | "netlist": "", 394 | "specctra_dsn": "", 395 | "step": "launch-iso.step", 396 | "vrml": "" 397 | }, 398 | "page_layout_descr_file": "" 399 | }, 400 | "schematic": { 401 | "annotate_start_num": 0, 402 | "drawing": { 403 | "default_line_thickness": 6.0, 404 | "default_text_size": 50.0, 405 | "field_names": [], 406 | "intersheets_ref_own_page": false, 407 | "intersheets_ref_prefix": "", 408 | "intersheets_ref_short": false, 409 | "intersheets_ref_show": false, 410 | "intersheets_ref_suffix": "", 411 | "junction_size_choice": 3, 412 | "label_size_ratio": 0.25, 413 | "pin_symbol_size": 25.0, 414 | "text_offset_ratio": 0.08 415 | }, 416 | "legacy_lib_dir": "", 417 | "legacy_lib_list": [], 418 | "meta": { 419 | "version": 1 420 | }, 421 | "net_format_name": "", 422 | "ngspice": { 423 | "fix_include_paths": true, 424 | "fix_passive_vals": false, 425 | "meta": { 426 | "version": 0 427 | }, 428 | "model_mode": 0, 429 | "workbook_filename": "" 430 | }, 431 | "page_layout_descr_file": "", 432 | "plot_directory": "", 433 | "spice_adjust_passive_values": false, 434 | "spice_external_command": "spice \"%I\"", 435 | "subpart_first_id": 65, 436 | "subpart_id_separator": 0 437 | }, 438 | "sheets": [ 439 | [ 440 | "80c969df-cd39-4c4a-8336-5a366308cfd3", 441 | "" 442 | ], 443 | [ 444 | "00000000-0000-0000-0000-00005f58df7c", 445 | "USB" 446 | ], 447 | [ 448 | "00000000-0000-0000-0000-00005f8e2a01", 449 | "power" 450 | ] 451 | ], 452 | "text_variables": {} 453 | } 454 | -------------------------------------------------------------------------------- /pcb/launch.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "3dviewports": [], 4 | "design_settings": { 5 | "defaults": { 6 | "board_outline_line_width": 0.049999999999999996, 7 | "copper_line_width": 0.19999999999999998, 8 | "copper_text_italic": false, 9 | "copper_text_size_h": 1.5, 10 | "copper_text_size_v": 1.5, 11 | "copper_text_thickness": 0.3, 12 | "copper_text_upright": false, 13 | "courtyard_line_width": 0.049999999999999996, 14 | "dimension_precision": 4, 15 | "dimension_units": 3, 16 | "dimensions": { 17 | "arrow_length": 1270000, 18 | "extension_offset": 500000, 19 | "keep_text_aligned": true, 20 | "suppress_zeroes": false, 21 | "text_position": 0, 22 | "units_format": 1 23 | }, 24 | "fab_line_width": 0.09999999999999999, 25 | "fab_text_italic": false, 26 | "fab_text_size_h": 1.0, 27 | "fab_text_size_v": 1.0, 28 | "fab_text_thickness": 0.15, 29 | "fab_text_upright": false, 30 | "other_line_width": 0.09999999999999999, 31 | "other_text_italic": false, 32 | "other_text_size_h": 1.0, 33 | "other_text_size_v": 1.0, 34 | "other_text_thickness": 0.15, 35 | "other_text_upright": false, 36 | "pads": { 37 | "drill": 0.65, 38 | "height": 0.65, 39 | "width": 0.65 40 | }, 41 | "silk_line_width": 0.12, 42 | "silk_text_italic": false, 43 | "silk_text_size_h": 1.0, 44 | "silk_text_size_v": 1.0, 45 | "silk_text_thickness": 0.15, 46 | "silk_text_upright": false, 47 | "zones": { 48 | "45_degree_only": false, 49 | "min_clearance": 0.5 50 | } 51 | }, 52 | "diff_pair_dimensions": [ 53 | { 54 | "gap": 0.0, 55 | "via_gap": 0.0, 56 | "width": 0.0 57 | } 58 | ], 59 | "drc_exclusions": [], 60 | "meta": { 61 | "filename": "board_design_settings.json", 62 | "version": 2 63 | }, 64 | "rule_severities": { 65 | "annular_width": "error", 66 | "clearance": "error", 67 | "connection_width": "warning", 68 | "copper_edge_clearance": "error", 69 | "copper_sliver": "warning", 70 | "courtyards_overlap": "error", 71 | "diff_pair_gap_out_of_range": "error", 72 | "diff_pair_uncoupled_length_too_long": "error", 73 | "drill_out_of_range": "error", 74 | "duplicate_footprints": "warning", 75 | "extra_footprint": "warning", 76 | "footprint": "error", 77 | "footprint_type_mismatch": "error", 78 | "hole_clearance": "error", 79 | "hole_near_hole": "error", 80 | "invalid_outline": "error", 81 | "isolated_copper": "warning", 82 | "item_on_disabled_layer": "error", 83 | "items_not_allowed": "error", 84 | "length_out_of_range": "error", 85 | "lib_footprint_issues": "warning", 86 | "lib_footprint_mismatch": "ignore", 87 | "malformed_courtyard": "error", 88 | "microvia_drill_out_of_range": "error", 89 | "missing_courtyard": "ignore", 90 | "missing_footprint": "warning", 91 | "net_conflict": "warning", 92 | "npth_inside_courtyard": "ignore", 93 | "padstack": "error", 94 | "pth_inside_courtyard": "ignore", 95 | "shorting_items": "error", 96 | "silk_edge_clearance": "warning", 97 | "silk_over_copper": "ignore", 98 | "silk_overlap": "ignore", 99 | "skew_out_of_range": "error", 100 | "solder_mask_bridge": "ignore", 101 | "starved_thermal": "error", 102 | "text_height": "warning", 103 | "text_thickness": "warning", 104 | "through_hole_pad_without_hole": "error", 105 | "too_many_vias": "error", 106 | "track_dangling": "warning", 107 | "track_width": "error", 108 | "tracks_crossing": "error", 109 | "unconnected_items": "error", 110 | "unresolved_variable": "error", 111 | "via_dangling": "warning", 112 | "zones_intersect": "error" 113 | }, 114 | "rule_severitieslegacy_courtyards_overlap": true, 115 | "rule_severitieslegacy_no_courtyard_defined": false, 116 | "rules": { 117 | "allow_blind_buried_vias": false, 118 | "allow_microvias": false, 119 | "max_error": 0.005, 120 | "min_clearance": 0.0, 121 | "min_connection": 0.0, 122 | "min_copper_edge_clearance": 0.39999999999999997, 123 | "min_hole_clearance": 0.18, 124 | "min_hole_to_hole": 0.25, 125 | "min_microvia_diameter": 0.19999999999999998, 126 | "min_microvia_drill": 0.09999999999999999, 127 | "min_resolved_spokes": 2, 128 | "min_silk_clearance": 0.0, 129 | "min_text_height": 0.7999999999999999, 130 | "min_text_thickness": 0.12, 131 | "min_through_hole_diameter": 0.19999999999999998, 132 | "min_track_width": 0.12, 133 | "min_via_annular_width": 0.049999999999999996, 134 | "min_via_diameter": 0.39999999999999997, 135 | "solder_mask_to_copper_clearance": 0.0, 136 | "use_height_for_length_calcs": true 137 | }, 138 | "teardrop_options": [ 139 | { 140 | "td_allow_use_two_tracks": true, 141 | "td_curve_segcount": 5, 142 | "td_on_pad_in_zone": false, 143 | "td_onpadsmd": true, 144 | "td_onroundshapesonly": false, 145 | "td_ontrackend": false, 146 | "td_onviapad": true 147 | } 148 | ], 149 | "teardrop_parameters": [ 150 | { 151 | "td_curve_segcount": 0, 152 | "td_height_ratio": 1.0, 153 | "td_length_ratio": 0.5, 154 | "td_maxheight": 2.0, 155 | "td_maxlen": 1.0, 156 | "td_target_name": "td_round_shape", 157 | "td_width_to_size_filter_ratio": 0.9 158 | }, 159 | { 160 | "td_curve_segcount": 0, 161 | "td_height_ratio": 1.0, 162 | "td_length_ratio": 0.5, 163 | "td_maxheight": 2.0, 164 | "td_maxlen": 1.0, 165 | "td_target_name": "td_rect_shape", 166 | "td_width_to_size_filter_ratio": 0.9 167 | }, 168 | { 169 | "td_curve_segcount": 0, 170 | "td_height_ratio": 1.0, 171 | "td_length_ratio": 0.5, 172 | "td_maxheight": 2.0, 173 | "td_maxlen": 1.0, 174 | "td_target_name": "td_track_end", 175 | "td_width_to_size_filter_ratio": 0.9 176 | } 177 | ], 178 | "track_widths": [ 179 | 0.0, 180 | 0.131, 181 | 0.15, 182 | 0.180086, 183 | 0.2, 184 | 0.25, 185 | 0.3, 186 | 0.5 187 | ], 188 | "via_dimensions": [ 189 | { 190 | "diameter": 0.0, 191 | "drill": 0.0 192 | }, 193 | { 194 | "diameter": 0.5, 195 | "drill": 0.25 196 | } 197 | ], 198 | "zones_allow_external_fillets": false, 199 | "zones_use_no_outline": true 200 | }, 201 | "layer_presets": [], 202 | "viewports": [] 203 | }, 204 | "boards": [], 205 | "cvpcb": { 206 | "equivalence_files": [] 207 | }, 208 | "erc": { 209 | "erc_exclusions": [ 210 | "pin_to_pin|2311400|1473200|b17df62d-158a-447e-86e2-25f481927ab6|2304a214-36b2-415d-b27f-33aa5be67c13|/80c969df-cd39-4c4a-8336-5a366308cfd3/00000000-0000-0000-0000-00005f58df7c|/80c969df-cd39-4c4a-8336-5a366308cfd3/00000000-0000-0000-0000-00005f58df7c|/80c969df-cd39-4c4a-8336-5a366308cfd3/00000000-0000-0000-0000-00005f8e2a01", 211 | "pin_to_pin|2311400|1498600|cca767b9-8eeb-42c1-88cf-9762d2bab3fc|2304a214-36b2-415d-b27f-33aa5be67c13|/80c969df-cd39-4c4a-8336-5a366308cfd3/00000000-0000-0000-0000-00005f58df7c|/80c969df-cd39-4c4a-8336-5a366308cfd3/00000000-0000-0000-0000-00005f58df7c|/80c969df-cd39-4c4a-8336-5a366308cfd3/00000000-0000-0000-0000-00005f8e2a01" 212 | ], 213 | "meta": { 214 | "version": 0 215 | }, 216 | "pin_map": [ 217 | [ 218 | 0, 219 | 0, 220 | 0, 221 | 0, 222 | 0, 223 | 0, 224 | 1, 225 | 0, 226 | 0, 227 | 0, 228 | 0, 229 | 2 230 | ], 231 | [ 232 | 0, 233 | 2, 234 | 0, 235 | 1, 236 | 0, 237 | 0, 238 | 1, 239 | 0, 240 | 2, 241 | 2, 242 | 2, 243 | 2 244 | ], 245 | [ 246 | 0, 247 | 0, 248 | 0, 249 | 0, 250 | 0, 251 | 0, 252 | 1, 253 | 0, 254 | 1, 255 | 0, 256 | 1, 257 | 2 258 | ], 259 | [ 260 | 0, 261 | 1, 262 | 0, 263 | 0, 264 | 0, 265 | 0, 266 | 1, 267 | 1, 268 | 2, 269 | 1, 270 | 1, 271 | 2 272 | ], 273 | [ 274 | 0, 275 | 0, 276 | 0, 277 | 0, 278 | 0, 279 | 0, 280 | 1, 281 | 0, 282 | 0, 283 | 0, 284 | 0, 285 | 2 286 | ], 287 | [ 288 | 0, 289 | 0, 290 | 0, 291 | 0, 292 | 0, 293 | 0, 294 | 0, 295 | 0, 296 | 0, 297 | 0, 298 | 0, 299 | 2 300 | ], 301 | [ 302 | 1, 303 | 1, 304 | 1, 305 | 1, 306 | 1, 307 | 0, 308 | 1, 309 | 1, 310 | 1, 311 | 1, 312 | 1, 313 | 2 314 | ], 315 | [ 316 | 0, 317 | 0, 318 | 0, 319 | 1, 320 | 0, 321 | 0, 322 | 1, 323 | 0, 324 | 0, 325 | 0, 326 | 0, 327 | 2 328 | ], 329 | [ 330 | 0, 331 | 2, 332 | 1, 333 | 2, 334 | 0, 335 | 0, 336 | 1, 337 | 0, 338 | 2, 339 | 2, 340 | 2, 341 | 2 342 | ], 343 | [ 344 | 0, 345 | 2, 346 | 0, 347 | 1, 348 | 0, 349 | 0, 350 | 1, 351 | 0, 352 | 2, 353 | 0, 354 | 0, 355 | 2 356 | ], 357 | [ 358 | 0, 359 | 2, 360 | 1, 361 | 1, 362 | 0, 363 | 0, 364 | 1, 365 | 0, 366 | 2, 367 | 0, 368 | 0, 369 | 2 370 | ], 371 | [ 372 | 2, 373 | 2, 374 | 2, 375 | 2, 376 | 2, 377 | 2, 378 | 2, 379 | 2, 380 | 2, 381 | 2, 382 | 2, 383 | 2 384 | ] 385 | ], 386 | "rule_severities": { 387 | "bus_definition_conflict": "error", 388 | "bus_entry_needed": "error", 389 | "bus_to_bus_conflict": "error", 390 | "bus_to_net_conflict": "error", 391 | "conflicting_netclasses": "error", 392 | "different_unit_footprint": "error", 393 | "different_unit_net": "error", 394 | "duplicate_reference": "error", 395 | "duplicate_sheet_names": "error", 396 | "endpoint_off_grid": "warning", 397 | "extra_units": "error", 398 | "global_label_dangling": "warning", 399 | "hier_label_mismatch": "error", 400 | "label_dangling": "error", 401 | "lib_symbol_issues": "ignore", 402 | "missing_bidi_pin": "warning", 403 | "missing_input_pin": "warning", 404 | "missing_power_pin": "error", 405 | "missing_unit": "warning", 406 | "multiple_net_names": "warning", 407 | "net_not_bus_member": "warning", 408 | "no_connect_connected": "warning", 409 | "no_connect_dangling": "warning", 410 | "pin_not_connected": "error", 411 | "pin_not_driven": "error", 412 | "pin_to_pin": "error", 413 | "power_pin_not_driven": "error", 414 | "similar_labels": "warning", 415 | "simulation_model_issue": "error", 416 | "unannotated": "error", 417 | "unit_value_mismatch": "error", 418 | "unresolved_variable": "error", 419 | "wire_dangling": "error" 420 | } 421 | }, 422 | "libraries": { 423 | "pinned_footprint_libs": [], 424 | "pinned_symbol_libs": [] 425 | }, 426 | "meta": { 427 | "filename": "launch.kicad_pro", 428 | "version": 1 429 | }, 430 | "net_settings": { 431 | "classes": [ 432 | { 433 | "bus_width": 12, 434 | "clearance": 0.12, 435 | "diff_pair_gap": 0.121, 436 | "diff_pair_via_gap": 0.25, 437 | "diff_pair_width": 0.137, 438 | "line_style": 0, 439 | "microvia_diameter": 0.3, 440 | "microvia_drill": 0.1, 441 | "name": "Default", 442 | "pcb_color": "rgba(0, 0, 0, 0.000)", 443 | "schematic_color": "rgba(0, 0, 0, 0.000)", 444 | "track_width": 0.25, 445 | "via_diameter": 0.4, 446 | "via_drill": 0.2, 447 | "wire_width": 6 448 | } 449 | ], 450 | "meta": { 451 | "version": 3 452 | }, 453 | "net_colors": null, 454 | "netclass_assignments": null, 455 | "netclass_patterns": [] 456 | }, 457 | "pcbnew": { 458 | "last_paths": { 459 | "gencad": "", 460 | "idf": "", 461 | "netlist": "", 462 | "specctra_dsn": "", 463 | "step": "launch.step", 464 | "vrml": "" 465 | }, 466 | "page_layout_descr_file": "" 467 | }, 468 | "schematic": { 469 | "annotate_start_num": 0, 470 | "drawing": { 471 | "dashed_lines_dash_length_ratio": 12.0, 472 | "dashed_lines_gap_length_ratio": 3.0, 473 | "default_line_thickness": 6.0, 474 | "default_text_size": 50.0, 475 | "field_names": [], 476 | "intersheets_ref_own_page": false, 477 | "intersheets_ref_prefix": "", 478 | "intersheets_ref_short": false, 479 | "intersheets_ref_show": false, 480 | "intersheets_ref_suffix": "", 481 | "junction_size_choice": 3, 482 | "label_size_ratio": 0.25, 483 | "pin_symbol_size": 25.0, 484 | "text_offset_ratio": 0.08 485 | }, 486 | "legacy_lib_dir": "", 487 | "legacy_lib_list": [], 488 | "meta": { 489 | "version": 1 490 | }, 491 | "net_format_name": "", 492 | "ngspice": { 493 | "fix_include_paths": true, 494 | "fix_passive_vals": false, 495 | "meta": { 496 | "version": 0 497 | }, 498 | "model_mode": 0, 499 | "workbook_filename": "" 500 | }, 501 | "page_layout_descr_file": "", 502 | "plot_directory": "", 503 | "spice_adjust_passive_values": false, 504 | "spice_current_sheet_as_root": false, 505 | "spice_external_command": "spice \"%I\"", 506 | "spice_model_current_sheet_as_root": true, 507 | "spice_save_all_currents": false, 508 | "spice_save_all_voltages": false, 509 | "subpart_first_id": 65, 510 | "subpart_id_separator": 0 511 | }, 512 | "sheets": [ 513 | [ 514 | "80c969df-cd39-4c4a-8336-5a366308cfd3", 515 | "" 516 | ], 517 | [ 518 | "00000000-0000-0000-0000-00005f58df7c", 519 | "USB" 520 | ], 521 | [ 522 | "00000000-0000-0000-0000-00005f8e2a01", 523 | "power" 524 | ] 525 | ], 526 | "text_variables": {} 527 | } 528 | -------------------------------------------------------------------------------- /pcb-common/launch.pretty/QFN-100-1EP_12x12mm_P0.4mm_EP8x8mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module QFN-100-1EP_12x12mm_P0.4mm_EP8x8mm (layer F.Cu) (tedit 5F4FDA33) 2 | (descr "QFN, 100 Pin (http://ww1.microchip.com/downloads/en/DeviceDoc/00002875B.pdf), generated with kicad-footprint-generator ipc_dfn_qfn_generator.py") 3 | (tags "QFN DFN_QFN") 4 | (solder_paste_margin -0.025) 5 | (attr smd) 6 | (fp_text reference REF** (at 0 -7.05) (layer F.SilkS) 7 | (effects (font (size 1 1) (thickness 0.15))) 8 | ) 9 | (fp_text value QFN-100-1EP_12x12mm_P0.4mm_EP8x8mm (at 0 7.05) (layer F.Fab) 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | ) 12 | (fp_line (start 6.35 -6.35) (end -6.35 -6.35) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start 6.35 6.35) (end 6.35 -6.35) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start -6.35 6.35) (end 6.35 6.35) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start -6.35 -6.35) (end -6.35 6.35) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -6 -5) (end -5 -6) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -6 6) (end -6 -5) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 6 6) (end -6 6) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 6 -6) (end 6 6) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -5 -6) (end 6 -6) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -5.16 -6.11) (end -6.11 -6.11) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 6.11 6.11) (end 6.11 5.16) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start 5.16 6.11) (end 6.11 6.11) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -6.11 6.11) (end -6.11 5.16) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start -5.16 6.11) (end -6.11 6.11) (layer F.SilkS) (width 0.12)) 26 | (fp_line (start 6.11 -6.11) (end 6.11 -5.16) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 5.16 -6.11) (end 6.11 -6.11) (layer F.SilkS) (width 0.12)) 28 | (fp_text user %R (at 0 0) (layer F.Fab) 29 | (effects (font (size 1 1) (thickness 0.15))) 30 | ) 31 | (pad 101 smd roundrect (at 0 0) (size 8 8) (layers F.Cu F.Mask) (roundrect_rratio 0.03125)) 32 | (pad "" smd roundrect (at -3.2 -3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 33 | (pad "" smd roundrect (at -3.2 -1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 34 | (pad "" smd roundrect (at -3.2 0) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 35 | (pad "" smd roundrect (at -3.2 1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 36 | (pad "" smd roundrect (at -3.2 3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 37 | (pad "" smd roundrect (at -1.6 -3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 38 | (pad "" smd roundrect (at -1.6 -1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 39 | (pad "" smd roundrect (at -1.6 0) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 40 | (pad "" smd roundrect (at -1.6 1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 41 | (pad "" smd roundrect (at -1.6 3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 42 | (pad "" smd roundrect (at 0 -3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 43 | (pad "" smd roundrect (at 0 -1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 44 | (pad "" smd roundrect (at 0 0) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 45 | (pad "" smd roundrect (at 0 1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 46 | (pad "" smd roundrect (at 0 3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 47 | (pad "" smd roundrect (at 1.6 -3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 48 | (pad "" smd roundrect (at 1.6 -1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 49 | (pad "" smd roundrect (at 1.6 0) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 50 | (pad "" smd roundrect (at 1.6 1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 51 | (pad "" smd roundrect (at 1.6 3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 52 | (pad "" smd roundrect (at 3.2 -3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 53 | (pad "" smd roundrect (at 3.2 -1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 54 | (pad "" smd roundrect (at 3.2 0) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 55 | (pad "" smd roundrect (at 3.2 1.6) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 56 | (pad "" smd roundrect (at 3.2 3.2) (size 1.29 1.29) (layers F.Paste) (roundrect_rratio 0.193798)) 57 | (pad 1 smd roundrect (at -5.7875 -4.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 58 | (pad 2 smd roundrect (at -5.7875 -4.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 59 | (pad 3 smd roundrect (at -5.7875 -4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 60 | (pad 4 smd roundrect (at -5.7875 -3.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 61 | (pad 5 smd roundrect (at -5.7875 -3.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 62 | (pad 6 smd roundrect (at -5.7875 -2.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 63 | (pad 7 smd roundrect (at -5.7875 -2.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 64 | (pad 8 smd roundrect (at -5.7875 -2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 65 | (pad 9 smd roundrect (at -5.7875 -1.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 66 | (pad 10 smd roundrect (at -5.7875 -1.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 67 | (pad 11 smd roundrect (at -5.7875 -0.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 68 | (pad 12 smd roundrect (at -5.7875 -0.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 69 | (pad 13 smd roundrect (at -5.7875 0) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 70 | (pad 14 smd roundrect (at -5.7875 0.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 71 | (pad 15 smd roundrect (at -5.7875 0.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 72 | (pad 16 smd roundrect (at -5.7875 1.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 73 | (pad 17 smd roundrect (at -5.7875 1.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 74 | (pad 18 smd roundrect (at -5.7875 2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 75 | (pad 19 smd roundrect (at -5.7875 2.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 76 | (pad 20 smd roundrect (at -5.7875 2.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 77 | (pad 21 smd roundrect (at -5.7875 3.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 78 | (pad 22 smd roundrect (at -5.7875 3.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 79 | (pad 23 smd roundrect (at -5.7875 4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 80 | (pad 24 smd roundrect (at -5.7875 4.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 81 | (pad 25 smd roundrect (at -5.7875 4.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 82 | (pad 26 smd roundrect (at -4.8 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 83 | (pad 27 smd roundrect (at -4.4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 84 | (pad 28 smd roundrect (at -4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 85 | (pad 29 smd roundrect (at -3.6 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 86 | (pad 30 smd roundrect (at -3.2 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 87 | (pad 31 smd roundrect (at -2.8 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 88 | (pad 32 smd roundrect (at -2.4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 89 | (pad 33 smd roundrect (at -2 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 90 | (pad 34 smd roundrect (at -1.6 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 91 | (pad 35 smd roundrect (at -1.2 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 92 | (pad 36 smd roundrect (at -0.8 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 93 | (pad 37 smd roundrect (at -0.4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 94 | (pad 38 smd roundrect (at 0 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 95 | (pad 39 smd roundrect (at 0.4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 96 | (pad 40 smd roundrect (at 0.8 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 97 | (pad 41 smd roundrect (at 1.2 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 98 | (pad 42 smd roundrect (at 1.6 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 99 | (pad 43 smd roundrect (at 2 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 100 | (pad 44 smd roundrect (at 2.4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 101 | (pad 45 smd roundrect (at 2.8 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 102 | (pad 46 smd roundrect (at 3.2 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 103 | (pad 47 smd roundrect (at 3.6 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 104 | (pad 48 smd roundrect (at 4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 105 | (pad 49 smd roundrect (at 4.4 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 106 | (pad 50 smd roundrect (at 4.8 5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 107 | (pad 51 smd roundrect (at 5.7875 4.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 108 | (pad 52 smd roundrect (at 5.7875 4.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 109 | (pad 53 smd roundrect (at 5.7875 4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 110 | (pad 54 smd roundrect (at 5.7875 3.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 111 | (pad 55 smd roundrect (at 5.7875 3.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 112 | (pad 56 smd roundrect (at 5.7875 2.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 113 | (pad 57 smd roundrect (at 5.7875 2.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 114 | (pad 58 smd roundrect (at 5.7875 2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 115 | (pad 59 smd roundrect (at 5.7875 1.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 116 | (pad 60 smd roundrect (at 5.7875 1.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 117 | (pad 61 smd roundrect (at 5.7875 0.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 118 | (pad 62 smd roundrect (at 5.7875 0.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 119 | (pad 63 smd roundrect (at 5.7875 0) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 120 | (pad 64 smd roundrect (at 5.7875 -0.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 121 | (pad 65 smd roundrect (at 5.7875 -0.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 122 | (pad 66 smd roundrect (at 5.7875 -1.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 123 | (pad 67 smd roundrect (at 5.7875 -1.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 124 | (pad 68 smd roundrect (at 5.7875 -2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 125 | (pad 69 smd roundrect (at 5.7875 -2.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 126 | (pad 70 smd roundrect (at 5.7875 -2.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 127 | (pad 71 smd roundrect (at 5.7875 -3.2) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 128 | (pad 72 smd roundrect (at 5.7875 -3.6) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 129 | (pad 73 smd roundrect (at 5.7875 -4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 130 | (pad 74 smd roundrect (at 5.7875 -4.4) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 131 | (pad 75 smd roundrect (at 5.7875 -4.8) (size 0.925 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 132 | (pad 76 smd roundrect (at 4.8 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 133 | (pad 77 smd roundrect (at 4.4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 134 | (pad 78 smd roundrect (at 4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 135 | (pad 79 smd roundrect (at 3.6 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 136 | (pad 80 smd roundrect (at 3.2 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 137 | (pad 81 smd roundrect (at 2.8 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 138 | (pad 82 smd roundrect (at 2.4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 139 | (pad 83 smd roundrect (at 2 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 140 | (pad 84 smd roundrect (at 1.6 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 141 | (pad 85 smd roundrect (at 1.2 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 142 | (pad 86 smd roundrect (at 0.8 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 143 | (pad 87 smd roundrect (at 0.4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 144 | (pad 88 smd roundrect (at 0 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 145 | (pad 89 smd roundrect (at -0.4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 146 | (pad 90 smd roundrect (at -0.8 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 147 | (pad 91 smd roundrect (at -1.2 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 148 | (pad 92 smd roundrect (at -1.6 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 149 | (pad 93 smd roundrect (at -2 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 150 | (pad 94 smd roundrect (at -2.4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 151 | (pad 95 smd roundrect (at -2.8 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 152 | (pad 96 smd roundrect (at -3.2 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 153 | (pad 97 smd roundrect (at -3.6 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 154 | (pad 98 smd roundrect (at -4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 155 | (pad 99 smd roundrect (at -4.4 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 156 | (pad 100 smd roundrect (at -4.8 -5.7875) (size 0.2 0.925) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)) 157 | (model ${KISYS3DMOD}/Package_DFN_QFN.3dshapes/QFN-100-1EP_12x12mm_P0.4mm_EP8x8mm.wrl 158 | (at (xyz 0 0 0)) 159 | (scale (xyz 1 1 1)) 160 | (rotate (xyz 0 0 0)) 161 | ) 162 | ) 163 | --------------------------------------------------------------------------------