├── .gitattributes ├── .gitconfig ├── .github └── workflows │ └── release-torn.yml ├── .gitignore ├── LICENSE ├── README.md ├── case ├── 3D Printed Case │ ├── readme.md │ ├── torn - 1.jpeg │ └── torn-case-v2.stl ├── HiPro Case │ ├── img │ │ ├── IMG_9068.jpg │ │ ├── IMG_9069.jpg │ │ ├── IMG_9070.jpg │ │ ├── IMG_9071.jpg │ │ ├── IMG_9072.jpg │ │ ├── IMG_9073.jpg │ │ ├── IMG_9074.jpg │ │ ├── IMG_9075.jpg │ │ ├── IMG_9076.jpg │ │ ├── IMG_9077.jpg │ │ ├── IMG_9078.jpg │ │ ├── IMG_9079.jpg │ │ ├── IMG_9080.jpg │ │ ├── IMG_9081.jpg │ │ ├── IMG_9082.jpg │ │ ├── IMG_9083.jpg │ │ ├── IMG_9084.jpg │ │ ├── IMG_9085.jpg │ │ ├── IMG_9087.jpg │ │ ├── IMG_9088.jpg │ │ ├── IMG_9089.jpg │ │ ├── IMG_9090.jpg │ │ ├── PXL_20210714_175756116.jpg │ │ ├── PXL_20210715_151525511.jpg │ │ └── PXL_20210716_130633293.PORTRAIT.jpg │ ├── readme.md │ └── stl │ │ ├── EC11 Knob.stl │ │ ├── Left Choc top.3mf │ │ ├── Left Choc top.stl │ │ ├── Left MX Spacer.3mf │ │ ├── Left MX Spacer.stl │ │ ├── Left MX top.3mf │ │ ├── Left MX top.stl │ │ ├── Left base.3mf │ │ ├── Left base.stl │ │ ├── Right Choc top.3mf │ │ ├── Right Choc top.stl │ │ ├── Right MX Spacer.3mf │ │ ├── Right MX Spacer.stl │ │ ├── Right MX top.3mf │ │ ├── Right MX top.stl │ │ ├── Right base.3mf │ │ └── Right base.stl ├── PCB Case │ ├── base │ │ ├── fp-lib-table │ │ ├── release │ │ │ └── kiplot_errors.filter │ │ ├── torn_base.kicad_pcb │ │ ├── torn_base.pro │ │ └── torn_base.sch │ └── plate │ │ ├── fp-lib-table │ │ ├── release │ │ └── kiplot_errors.filter │ │ ├── torn_plate.kicad_pcb │ │ ├── torn_plate.pro │ │ └── torn_plate.sch ├── Travel Case │ ├── img │ │ ├── PXL_20210606_104742862.jpg │ │ ├── PXL_20210807_075255868.jpg │ │ ├── PXL_20210807_080643402.jpg │ │ ├── PXL_20210807_081152775.jpg │ │ ├── PXL_20210807_081328508.jpg │ │ ├── PXL_20210807_082136344.jpg │ │ ├── PXL_20210807_083302831.jpg │ │ ├── PXL_20210807_083358444.jpg │ │ ├── PXL_20210807_083731876.jpg │ │ ├── PXL_20210807_083744705.jpg │ │ ├── PXL_20210807_084351302.jpg │ │ ├── PXL_20210807_084517389.jpg │ │ ├── PXL_20210807_084550654.jpg │ │ ├── PXL_20210807_084604375.jpg │ │ ├── PXL_20210807_090410899.jpg │ │ ├── PXL_20210807_114926046.jpg │ │ ├── PXL_20210807_115049295.jpg │ │ ├── PXL_20210807_120448581.jpg │ │ ├── PXL_20210807_121445468.jpg │ │ ├── PXL_20210807_121707725.jpg │ │ ├── PXL_20210807_121720069.jpg │ │ └── PXL_20210807_135115425.jpg │ ├── readme.md │ └── stl │ │ ├── Base basic.stl │ │ ├── Base macbook.3mf │ │ ├── Base macbook.stl │ │ ├── Left basic.stl │ │ ├── Left macbook.3mf │ │ ├── Left macbook.stl │ │ ├── Right basic.stl │ │ ├── Right macbook.3mf │ │ └── Right macbook.stl ├── cover.dxf └── wedge │ ├── img │ ├── IMG_9030.jpg │ ├── IMG_9034.jpg │ ├── IMG_9035.jpg │ ├── IMG_9036.jpg │ ├── IMG_9037.jpg │ ├── IMG_9038.jpg │ ├── IMG_9039.jpg │ ├── IMG_9040.jpg │ ├── IMG_9041.jpg │ ├── IMG_9042.jpg │ ├── IMG_9043.jpg │ ├── IMG_9044.jpg │ ├── IMG_9060.jpg │ ├── IMG_9067.jpg │ ├── PXL_20210508_125158827.PORTRAIT.jpg │ ├── PXL_20210606_092259319.jpg │ ├── PXL_20210606_093257183.jpg │ └── PXL_20210606_093623977.jpg │ └── wedge.md ├── doc ├── bom.md ├── bootloader.md ├── build.md ├── build │ ├── atmega238p.png │ ├── image1.jpg │ ├── image10.jpg │ ├── image11.jpg │ ├── image12.jpg │ ├── image13.jpg │ ├── image14.jpg │ ├── image15.jpg │ ├── image16.png │ ├── image17.jpg │ ├── image18.jpg │ ├── image19.jpg │ ├── image2.jpg │ ├── image20.jpg │ ├── image21.jpg │ ├── image22.jpg │ ├── image23.jpg │ ├── image24.jpg │ ├── image25.jpg │ ├── image26.jpg │ ├── image27.jpg │ ├── image28.jpg │ ├── image28_note.jpg │ ├── image29.jpg │ ├── image3.jpg │ ├── image30.jpg │ ├── image31.jpg │ ├── image32.jpg │ ├── image33.jpg │ ├── image34.jpg │ ├── image35.jpg │ ├── image36.jpg │ ├── image37.jpg │ ├── image38.jpg │ ├── image39.jpg │ ├── image4.jpg │ ├── image40.jpg │ ├── image41.jpg │ ├── image42.jpg │ ├── image43.jpg │ ├── image44.jpg │ ├── image45.jpg │ ├── image46.jpg │ ├── image47.jpg │ ├── image48.png │ ├── image49.png │ ├── image5.jpg │ ├── image50.png │ ├── image51.png │ ├── image52.png │ ├── image6.jpg │ ├── image7.jpg │ ├── image8.jpg │ ├── image9.jpg │ ├── isp.png │ ├── mcp23017.png │ ├── stackup_choc.svg │ └── stackup_mx.svg ├── build_choc.md ├── build_mx.md ├── img │ ├── 20210213_123553.jpeg │ ├── discord1.jpg │ ├── img1.jpg │ ├── img2.jpg │ ├── img3.jpg │ ├── img4.jpg │ ├── img5.jpg │ └── torn.jpg ├── pcb.md ├── release │ ├── torn_base-bottom.svg │ ├── torn_base-ibom.html │ ├── torn_base-schematic.pdf │ ├── torn_base-top.svg │ ├── torn_left-bottom.svg │ ├── torn_left-ibom.html │ ├── torn_left-schematic.pdf │ ├── torn_left-top.svg │ ├── torn_plate-bottom.svg │ ├── torn_plate-ibom.html │ ├── torn_plate-schematic.pdf │ ├── torn_plate-top.svg │ ├── torn_right-bottom.svg │ ├── torn_right-ibom.html │ ├── torn_right-schematic.pdf │ └── torn_right-top.svg └── troubleshoot.md ├── footprints.pretty ├── AVR_ICSP_3x2.kicad_mod ├── CP_Radial_D4.0mm_P1.50mm.kicad_mod ├── CUI_SJ-43514.kicad_mod ├── C_Disc_D3.0mm_W1.6mm_P2.50mm.kicad_mod ├── C_Disc_D4.3mm_W1.9mm_P5.00mm.kicad_mod ├── Crystal_HC49-4H_Vertical.kicad_mod ├── DIP-28_W7.62mm_Socket.kicad_mod ├── D_DO-35_SOD27_P5.08mm_Horizontal.kicad_mod ├── Kailh_socket_MX_PG1350_EC11_optional.kicad_mod ├── Kailh_socket_MX_PG1350_optional.kicad_mod ├── Kailh_socket_MX_optional.kicad_mod ├── Kailh_socket_MX_optional_EC11E.kicad_mod ├── LED_D3.0mm.kicad_mod ├── MountingHole_2.2mm_M2_Pad.kicad_mod ├── OLED_1side.kicad_mod ├── R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal.kicad_mod ├── RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm.kicad_mod ├── SW_PUSH_6mm.kicad_mod ├── Tenting_Puck.kicad_mod ├── USB_C_GCT_USB4085.kicad_mod ├── polyfuse_5.1mm.kicad_mod └── torn_qr_code.kicad_mod ├── keyboard-layout-editor.json ├── scripts ├── kiplot.yml └── release.sh ├── torn_left ├── fp-lib-table ├── release │ ├── drc_result.rpt │ ├── kiplot_errors.filter │ └── torn_left.erc ├── sym-lib-table ├── torn_left-cache.lib ├── torn_left-rescue.dcm ├── torn_left-rescue.lib ├── torn_left.kicad_pcb ├── torn_left.net ├── torn_left.pro └── torn_left.sch └── torn_right ├── fp-lib-table ├── release ├── drc_result.rpt ├── kiplot_errors.filter └── torn_right.erc ├── sym-lib-table ├── torn_right-cache.lib ├── torn_right-rescue.dcm ├── torn_right-rescue.lib ├── torn_right.kicad_pcb ├── torn_right.net ├── torn_right.pro └── torn_right.sch /.gitattributes: -------------------------------------------------------------------------------- 1 | *.csv filter=bom_csv 2 | *.html filter=bom_html 3 | *.gbr filter=gerber 4 | *.gbrjob filter=gbrjob 5 | *.xml filter=xml 6 | *.kicad_pcb filter=kicad_pcb_f 7 | *.net filter=net_filter 8 | -------------------------------------------------------------------------------- /.gitconfig: -------------------------------------------------------------------------------- 1 | [filter "bom_csv"] 2 | clean = sed -E 's/^BoM Date:.*$/BoM Date:Date/' 3 | smudge = sed -E \"s/BoM Date:Date/BoM Date:,`date +\\\"%a %d %b %Y %X %:::z\\\"`/\" 4 | [filter "bom_html"] 5 | clean = sed -E 's/^BoM Date<\\/td>.*$/BoM Date<\\/td>Date<\\/td><\\/tr>/' 6 | smudge = sed -E \"s/BoM Date<\\/td>Date<\\/td><\\/tr>/BoM Date<\\/td>`date +\\\"%a %d %b %Y %X %:::z\\\"`<\\/td><\\/tr>/\" 7 | [filter "gerber"] 8 | clean = sed -E -e 's/^%TF.CreationDate,.*$/%TF.CreationDate,Date%/' -e 's/^G04 Created by KiCad.*$/G04 Created by KiCad*/' 9 | smudge = sed -E \"s/%TF.CreationDate,Date%/%TF.CreationDate,`date +%Y-%m-%dT%H:%M:%S%:z`/\" 10 | [filter "gbrjob"] 11 | clean = sed -E 's/\"CreationDate\":.*/\"CreationDate\": \"Date\"/' 12 | smudge = sed -E \"s/\\\"CreationDate\\\": \\\"Date\\\"/\\\"CreationDate\\\": \\\"`date +%Y-%m-%dT%H:%M:%S%:z`\\\"/\" 13 | [filter "xml"] 14 | clean = sed -E -e 's/^ .*<\\/date>/ Date2<\\/date>/' -e 's/^ .*<\\/date>/ Date1<\\/date>/' 15 | smudge = sed -E -e \"s/Date1<\\/date>/`date +\\\"%a %d %b %Y %X %:::z\\\"`<\\/date>/\" -e \"s/Date2<\\/date>/`date +\\\"%Y-%m-%d\\\"`<\\/date>/\" 16 | [filter "kicad_pcb_f"] 17 | clean = sed -E 's/\\(host pcbnew ([[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+).*/\\(host pcbnew \\1\\)/' 18 | [filter "net_filter"] 19 | clean = sed -E -e 's/\\(date \\\".*\\\"\\)/\\(date \\\"Date\\\"\\)/' 20 | smudge = sed -E -e \"s/\\(date \\\"Date\\\"\\)/\\(date \\\"`date +\\\"%a %d %b %Y %X %:::z\\\"`\\\"\\)/\" 21 | -------------------------------------------------------------------------------- /.github/workflows/release-torn.yml: -------------------------------------------------------------------------------- 1 | name: Release Torn 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'torn-v[0-9]+.[0-9]+*' 7 | 8 | jobs: 9 | release-gerber-files: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | 14 | - name: Export torn left gerber 15 | uses: nerdyscout/kicad-exports@v2.0 16 | with: 17 | config: scripts/kiplot.yml 18 | dir: torn_left/release 19 | board: torn_left/torn_left.kicad_pcb 20 | schema: torn_left/torn_left.sch 21 | - name: Export torn right gerber 22 | uses: nerdyscout/kicad-exports@v2.0 23 | with: 24 | config: scripts/kiplot.yml 25 | dir: torn_right/release 26 | board: torn_right/torn_right.kicad_pcb 27 | schema: torn_right/torn_right.sch 28 | - name: Export base gerber 29 | uses: nerdyscout/kicad-exports@v2.0 30 | with: 31 | config: scripts/kiplot.yml 32 | dir: case/PCB\ Case/base/release 33 | board: case/PCB\ Case/base/torn_base.kicad_pcb 34 | schema: case/PCB\ Case/base/torn_base.sch 35 | - name: Export plate gerber 36 | uses: nerdyscout/kicad-exports@v2.0 37 | with: 38 | config: scripts/kiplot.yml 39 | dir: case/PCB\ Case/plate/release 40 | board: case/PCB\ Case/plate/torn_plate.kicad_pcb 41 | schema: case/PCB\ Case/plate/torn_plate.sch 42 | 43 | - name: Zip Gerber files 44 | run: | 45 | zip -r --junk-paths torn_left-gerber.zip torn_left/release 46 | zip -r --junk-paths torn_right-gerber.zip torn_right/release 47 | zip -r --junk-paths torn_plate-gerber.zip case/PCB\ Case/plate/release 48 | zip -r --junk-paths torn_base-gerber.zip case/PCB\ Case/base/release 49 | 50 | - name: Release to GiHub 51 | uses: softprops/action-gh-release@v1 52 | with: 53 | files: "*.zip" 54 | draft: true 55 | env: 56 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 57 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # export files for BOM 2 | *.csv 3 | *.tsv 4 | *.xml 5 | # backup files 6 | *bak 7 | # other files 8 | **/gerber/ 9 | **/gerber.zip 10 | .DS_Store 11 | fp-info-cache 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Torn 2 | =============== 3 | 4 | The split keyboard kit made with through hole components. The design has been inspired by the [Corne](https://github.com/foostan/crkbd), [Plaid](https://github.com/hsgw/plaid) and [Discipline](https://github.com/coseyfannitutti/discipline) keyboards. 5 | 6 | ![torn](./doc/img/torn.jpg) 7 | 8 | Torn uses an Atmega328P cpu, running QMK with VUSB: 9 | - [QMK firmware](https://github.com/qmk/qmk_firmware/blob/master/keyboards/torn/readme.md). 10 | - [Bootloader](https://github.com/rtitmuss/USBaspLoader). 11 | - Compatible with [VIA](https://caniusevia.com/) 12 | 13 | ## Building your own Torn keyboard 14 | 15 | Later this year you will be able to buy a Torn keyboard kit from [splitkb.com](https://blog.splitkb.com/blog/january-2021). 16 | Alternatively you can also buy [all the parts](./doc/bom.md) needed youself. 17 | 18 | Instructions are in the [Build guide](./doc/build.md) and [Troubleshooting guide](./doc/troubleshoot.md). 19 | You can ask questions and get help on the [Torn Discord channel](https://discord.gg/mamAqNccju). 20 | 21 | There is also a detailed [build log](https://github.com/rafaeldelboni/buildlogs/blob/main/torn-v3.md) 22 | and [video](https://www.youtube.com/watch?v=7WUTQ30Datw). Thanks [rafaeldelboni](https://github.com/rafaeldelboni)! 23 | 24 | 25 | ## Thanks 26 | 27 | It would not have been possible for me to design Torn without the information and designs published by the mechanical keyboard community. So thanks go to ... 28 | 29 | ### Guides 30 | 31 | * [Corne Keyboard build log](https://thomasbaart.nl/2018/11/26/corne-keyboard-helidox-build-log/) was my first step into this rabbit hole ... 32 | * [Keyboard PCB Guide](https://github.com/ruiqimao/keyboard-pcb-guide) a beginners guide to designing a keyboard PCB in KiCad 33 | * [Guide: Keyboard Construction Explained](https://brianlee.blog/2018/11/23/guide-keyboard-construction-explained/) 34 | * [Cheat sheet: Custom keyboard mounting styles](https://thomasbaart.nl/2019/04/07/cheat-sheet-custom-keyboard-mounting-styles/) 35 | 36 | ### PCB Design 37 | 38 | * [KiCad](https://kicad.org/) for PCB design 39 | * [Split keyboard comparison site](https://jhelvy.shinyapps.io/splitkbcompare/) to iterate on key layout 40 | * [Keyboard layout editor](http://www.keyboard-layout-editor.com/##@_name=Torn%20https%2F:%2F%2F%2F%2Fgithub.com%2F%2Frtitmuss%2F%2Ftorn&author=Richard%20Titmuss%3B&@_x:3%3B&=E&_x:7%3B&=I%3B&@_y:-0.875&x:2%3B&=W&_x:1%3B&=R&_x:5%3B&=U&_x:1%3B&=O%3B&@_y:-0.875&x:5%3B&=T&_x:3%3B&=Y%3B&@_y:-0.875%3B&=Esc&=Q&_x:11%3B&=P&_a:7%3B&=%3B&@_y:-0.375&x:3&a:4%3B&=D&_x:7%3B&=K%3B&@_y:-0.875&x:2%3B&=S&_x:1%3B&=F&_x:5%3B&=J&_x:1%3B&=L%3B&@_y:-0.875&x:5%3B&=G&_x:3%3B&=H%3B&@_y:-0.875&a:7%3B&=&_a:4%3B&=A&_x:11&a:7%3B&=&=%3B&@_y:-0.375&x:3&a:4%3B&=C&_x:7%3B&=,%3B&@_y:-0.875&x:2%3B&=X&_x:1%3B&=V&_x:5%3B&=M&_x:1%3B&=.%3B&@_y:-0.875&x:5%3B&=B&_x:3%3B&=N%3B&@_y:-0.875&a:7%3B&=&_a:4%3B&=Z&_x:11&a:7%3B&=&=%3B&@_y:-0.2749999999999999&x:3%3B&=&_x:7%3B&=%3B&@_r:13&rx:3.5&ry:8.5&y:-5.4&x:-0.5%3B&=%3B&@_r:26&y:-1&x:-0.5%3B&=%3B&@_r:39&y:-1&x:-0.5%3B&=%3B&@_r:-39&rx:11.5&y:-5.4&x:-0.5%3B&=%3B&@_r:-26&y:-1&x:-0.5%3B&=%3B&@_r:-13&y:-1&x:-0.5%3B&=) for your layout 41 | * [Plate & Case Builder](http://builder.swillkb.com/) Generate CAD files from KLE files 42 | * [keyswitches.pretty](https://github.com/daprice/keyswitches.pretty) KiCad library of mechanical keyboard switch footprints 43 | 44 | ### QMK Firmware 45 | 46 | * [QMK](https://docs.qmk.fm/#/) Quantum Mechanical Keyboard firmware 47 | * [REMAP](https://remap-keys.app/) to easily configure your keyboard online 48 | * [VIA](https://caniusevia.com/) to configure your keyboard 49 | 50 | ### 3d Design 51 | 52 | The following are great resources to get started with keyboard case design: 53 | 54 | * [Fusion 360](https://www.autodesk.com/products/fusion-360/personal) 55 | * [65% Keyboard Case Design](https://youtu.be/4P0zfLLblOw) 56 | * [Hinged Box for 3D Printing](https://youtu.be/iSBsBTMsGTk) 57 | * [Snap Fit Cases](https://www.youtube.com/watch?v=E0NVC8xhf3I) 58 | * [Knurling for 3D Printing](https://www.youtube.com/watch?v=jKPbye0XtMk) 59 | 60 | ### Other Keyboards 61 | 62 | I took inspiration from other keyboards I'd used or liked: 63 | 64 | * [Kinesis Advantage](https://kinesis-ergo.com/shop/advantage2/) my daily driver and endgame for almost 20 years! Opps! 65 | * [Corne](https://github.com/foostan/crkbd) 66 | * [Discipline](https://github.com/coseyfannitutti/discipline) (used with permission from [coseyfannitutti](https://github.com/coseyfannitutti/)) 67 | * [Plaid](https://github.com/hsgw/plaid) 68 | * [Lily](https://docs-gitbook.keeb.io/docs/iris-rev3-build-guide) 69 | * [Dactyl](https://raw.githubusercontent.com/adereth/dactyl-keyboard/master/guide/circuit-diagram.png) 70 | 71 | ## License 72 | 73 | ![Creative Commons License](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) 74 | 75 | The Torn Keyboard is licensed under [Creative Commons Attribution-NonCommercial 4.0 International License](https://creativecommons.org/licenses/by-nc/4.0). 76 | 77 | This PCB design may be freely reproduced, modified, and manufactured for personal use only. If you would like to use this design commercially please contact me at richard.titmuss@gmail.com to request permission. 78 | 79 | ## Gallery 80 | 81 | ![Build Photo](./doc/img/img3.jpg) 82 | 83 | ![Torn Keyboard](./doc/img/img4.jpg) 84 | 85 | ![Wedge Case](./case/wedge/img/PXL_20210508_125158827.PORTRAIT.jpg) 86 | 87 | ![Choc Switches](./doc/img/img5.jpg) 88 | 89 | ![HiPro Case](./case/HiPro%20Case/img/PXL_20210714_175756116.jpg) 90 | 91 | ![3d Case](./case/3D%20Printed%20Case/torn%20-%201.jpeg) 92 | 93 | ![Torn Keyboard](./doc/img/img2.jpg) 94 | 95 | ![Torn Keyboard](./doc/img/discord1.jpg) 96 | 97 | ![Torn Keyboard](./doc/img/img1.jpg) 98 | 99 | ![Torn Keyboard](./doc/img/20210213_123553.jpeg) 100 | -------------------------------------------------------------------------------- /case/3D Printed Case/readme.md: -------------------------------------------------------------------------------- 1 | Uploaded this case designed by u/bomtarnes / keyboard-magpie using the pcb files for v2.1 torn pcb. 2 | 3 | ![torn](https://github.com/keyboard-magpie/torn/blob/master/case/torn%20-%201.jpeg) 4 | 5 | Case design falls under same licensing as the main torn project. 6 | -------------------------------------------------------------------------------- /case/3D Printed Case/torn - 1.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/3D Printed Case/torn - 1.jpeg -------------------------------------------------------------------------------- /case/3D Printed Case/torn-case-v2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/3D Printed Case/torn-case-v2.stl -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9068.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9068.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9069.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9069.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9070.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9070.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9071.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9071.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9072.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9072.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9073.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9073.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9074.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9074.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9075.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9075.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9076.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9076.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9077.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9077.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9078.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9078.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9079.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9079.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9080.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9080.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9081.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9081.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9082.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9082.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9083.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9083.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9084.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9084.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9085.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9085.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9087.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9087.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9088.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9088.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9089.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/IMG_9090.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/IMG_9090.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/PXL_20210714_175756116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/PXL_20210714_175756116.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/PXL_20210715_151525511.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/PXL_20210715_151525511.jpg -------------------------------------------------------------------------------- /case/HiPro Case/img/PXL_20210716_130633293.PORTRAIT.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/img/PXL_20210716_130633293.PORTRAIT.jpg -------------------------------------------------------------------------------- /case/HiPro Case/readme.md: -------------------------------------------------------------------------------- 1 | # Weighted HiPro Case 2 | 3 | This 3d printed Weighted HiPro Case is designed for MX or Kailh Choc switches. This case is designed 4 | with a snap fit assembly, and to include 200g weight in each half. 5 | 6 | You can print your own case using the files below or buy one from me! The cases are printed on demand 7 | and can be made in a color of your choice, it is even possible to try and match the color to your keycaps. 8 | Prices start from €60 plus shipping from Europe. If your interested please contact me at 9 | richard.titmuss@gmail.com or on [Discord](https://discordapp.com/users/745293992044003348/) for more 10 | information. 11 | 12 | **MX Case** 13 | 14 | ![](./img/PXL_20210714_175756116.jpg) 15 | 16 | **Choc Case** 17 | 18 | ![](./img/IMG_9089.jpg) 19 | 20 | ![](./img/PXL_20210715_151525511.jpg) 21 | 22 | ## Parts 23 | 24 | To complete the Weighted HiPro Case you need: 25 | 26 | - Assembled Torn PCBs with MX or Kailh Choc switches 27 | - 3d printed parts using the STLs below 28 | - 2 x Torn acrylic covers 29 | - 6 x m2 nuts 30 | - 6 x m2 x 20mm cheese head screws (MX switches) 31 | - 6 x m2 x 16mm cheese head screws (Choc switches) 32 | - Car wheel balance weights. 10g: 23mm x 19mm. 5g: 12mm x 19mm. height 4mm (including adhesive padding). 33 | For example: 34 | [US](https://www.amazon.com/Pit-Posse-Balancing-Weights-Adhesive/dp/B00OQWS98S/ref=sr_1_13?dchild=1&keywords=balancing+weight&qid=1620718949&sr=8-13), 35 | [UK](https://www.amazon.co.uk/FIERCE-CYCLE-Balance-Weights-Motorcycle/dp/B07QQ539GV/ref=sr_1_7?crid=7JSFKDWAYNL7&dchild=1&keywords=balancing+weights&qid=1620718843&sprefix=balancing+wei%2Caps%2C164&sr=8-7), 36 | [SE](https://www.amazon.se/gp/product/B01GHKG18G/ref=ppx_yo_dt_b_asin_image_o00_s00?ie=UTF8&psc=1). 37 | 38 | 39 | ## STLs 40 | 41 | This case has been tested with a Prusa i3 Mk3S+ using PTEG. The parts are designed to be a tight fit 42 | so tolerances may vary with other printers or plastics. The parts are available in STL or 3MF. You 43 | can use the 3MF files in [PrusaSlicer](https://www.prusa3d.com/prusaslicer/) and they contain the 44 | recommended print settings. 45 | 46 | You need to 3d print the following parts: 47 | 48 | ### Base (MX and Choc switches) 49 | 50 | - Left Base [STL](./stl/Left%20base.stl) [3MF](./stl/Left%20base.3mf) 51 | - Right Base [STL](./stl/Right%20base.stl) [3MF](./stl/Right%20base.3mf) 52 | 53 | Print Settings: **No supports. 15% infill. 135 degree bridging angle.** 54 | 55 | The 3MF files include a color change for the Torn logo on the base. First load the color for the logo, 56 | and then change to the case color after the letters have printed 57 | ([using this technique](https://forum.prusaprinters.org/forum/prusaslicer/manual-multicolor/)). 58 | The STL files use bridging for a debossing effect. 59 | 60 | ### Top (MX switches) 61 | 62 | - MX Left Top [STL](./stl/Left%20MX%20top.stl) [3MF](./stl/Left%20MX%20top.3mf) 63 | - MX Right Top [STL](./stl/Right%20MX%20top.stl) [3MF](./stl/Right%20MX%20top.3mf) 64 | 65 | This part prints upside down (the STL is oriented for printing). Supports are needed on the rim 66 | where the acrylic cover fits. 67 | 68 | Print Settings: **Supports on build pate only. 15% infill.** 69 | 70 | - MX Left Spacer [STL](./stl/Left%20MX%20Spacer.stl) [3MF](./stl/Left%20MX%20Spacer.3mf) 71 | - MX Right Spacer [STL](./stl/Right%20MX%20Spacer.stl) [3MF](./stl/Right%20MX%20Spacer.3mf) 72 | 73 | Print Settings: **No supports. 15% infill.** 74 | 75 | ### Top (Choc switches) 76 | 77 | - Choc Left Top [STL](./stl/Left%20Choc%20top.stl) [3MF](./stl/Left%20Choc%20top.3mf) 78 | - Choc Right Top [STL](./stl/Right%20Choc%20top.stl) [3MF](./stl/Right%20Choc%20top.3mf) 79 | 80 | ### Encoder Knob (optional) 81 | 82 | You can use this encoder knob to color match with your case. 83 | 84 | - EC11 Knob [STL](./stl/EC11%20Knob.stl) 85 | 86 | Print Settings: **No supports. 15% infill.** 87 | 88 | ### License 89 | 90 | ![Creative Commons License](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) 91 | 92 | The Torn Weighted HiPro Case is licensed under [Creative Commons Attribution-NonCommercial 4.0 International License](https://creativecommons.org/licenses/by-nc/4.0). 93 | 94 | ## Build guide 95 | 96 | Before assembling the Weighted HiPro Case you need to have assembled the [Torn PCBs](../../doc/pcb.md). 97 | 98 | **Choc Switches: Do not use the IC sockets (steps 13 and 22 in the main instructions). The ATMega328P and MCP23017 99 | must be directly soldered to the PCB. This is needed to reduce the height.** 100 | 101 | ![](../../doc/build/image3.jpg) 102 | 103 | Repeat steps 1-9 for the left and right sides of the keyboard. 104 | 105 | ### Step 1 106 | 107 | Carefully remove *all* the support material from the case top. Test that the acrylic cover fits 108 | flush with the edge of the case. 109 | 110 | ![](./img/IMG_9088.jpg) 111 | 112 | ![](./img/IMG_9068.jpg) 113 | 114 | ![](./img/IMG_9069.jpg) 115 | 116 | ### Step 2 117 | 118 | Insert three m2 nuts in the base of the case. Use a m2 screw to pull the nuts securely into the 119 | base. Remove the screw afterwards. 120 | 121 | ![](./img/IMG_9070.jpg) 122 | 123 | ![](./img/IMG_9071.jpg) 124 | 125 | ![](./img/IMG_9072.jpg) 126 | 127 | ### Step 3 128 | 129 | Cut the car wheel balance weights to fit the case. Secure then with the self-adhesive padding. Be 130 | neat, there is not any spare room! 131 | 132 | ![](./img/IMG_9073.jpg) 133 | 134 | ![](./img/IMG_9074.jpg) 135 | 136 | ### Step 4 (MX switches only) 137 | 138 | Assemble the spacer and plate. 139 | 140 | ![](./img/IMG_9075.jpg) 141 | 142 | ![](./img/IMG_9076.jpg) 143 | 144 | ### Step 5 145 | 146 | Insert a few switches in the plate, and assemble with the PCB. Make sure everything fits correctly, 147 | and then add the remaining switches. Solder the switches (if you are not using Kailh MX sockets). 148 | 149 | **Test that all the switches work before continuing.** You can take apart the case but this is not 150 | easy with the snap fit assembly. 151 | 152 | ![](./img/IMG_9077.jpg) 153 | 154 | ![](./img/IMG_9078.jpg) 155 | 156 | ![](./img/IMG_9079.jpg) 157 | 158 | ### Step 6 159 | 160 | Insert the PCB into the top of the case. Start fitting the back edge as shown below. Make sure the 161 | TRRS socket is in the correct place. Then carefully work around the edge of the case pressing the PCB 162 | in place, ending by the thumb keys. You'll need to gently 'stretch' the top to get the PCB to fit. 163 | 164 | ![](./img/IMG_9080.jpg) 165 | 166 | ![](./img/IMG_9081.jpg) 167 | 168 | ### Step 7 169 | 170 | Now insert the base into the top of the case. This is similar to the previous step, start with the 171 | back edge as shown below. Then carefully work around the edge of the case pressing the PCB 172 | in place, ending by the thumb keys. You'll need to gently 'stretch' the top to get the base to fit. 173 | 174 | The case should feel secure once it is snapped together. 175 | 176 | ![](./img/IMG_9082.jpg) 177 | 178 | ![](./img/IMG_9083.jpg) 179 | 180 | ### Step 8 181 | 182 | Add the acrylic cover. Secure with three m2 screws. 183 | 184 | ![](./img/IMG_9084.jpg) 185 | 186 | ### Step 9 187 | 188 | Finally add the keycaps. 189 | 190 | ![](./img/IMG_9085.jpg) 191 | -------------------------------------------------------------------------------- /case/HiPro Case/stl/EC11 Knob.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/EC11 Knob.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left Choc top.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left Choc top.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left Choc top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left Choc top.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left MX Spacer.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left MX Spacer.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left MX Spacer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left MX Spacer.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left MX top.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left MX top.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left MX top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left MX top.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left base.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left base.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Left base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Left base.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right Choc top.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right Choc top.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right Choc top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right Choc top.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right MX Spacer.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right MX Spacer.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right MX Spacer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right MX Spacer.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right MX top.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right MX top.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right MX top.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right MX top.stl -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right base.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right base.3mf -------------------------------------------------------------------------------- /case/HiPro Case/stl/Right base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/HiPro Case/stl/Right base.stl -------------------------------------------------------------------------------- /case/PCB Case/base/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name footprints)(type KiCad)(uri /Users/richardt/keyboard/torn/footprints.pretty)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /case/PCB Case/base/release/kiplot_errors.filter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/PCB Case/base/release/kiplot_errors.filter -------------------------------------------------------------------------------- /case/PCB Case/base/torn_base.pro: -------------------------------------------------------------------------------- 1 | update=22/05/2015 07:44:53 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [pcbnew] 9 | version=1 10 | LastNetListRead= 11 | UseCmpFile=1 12 | PadDrill=0.600000000000 13 | PadDrillOvalY=0.600000000000 14 | PadSizeH=1.500000000000 15 | PadSizeV=1.500000000000 16 | PcbTextSizeV=1.500000000000 17 | PcbTextSizeH=1.500000000000 18 | PcbTextThickness=0.300000000000 19 | ModuleTextSizeV=1.000000000000 20 | ModuleTextSizeH=1.000000000000 21 | ModuleTextSizeThickness=0.150000000000 22 | SolderMaskClearance=0.000000000000 23 | SolderMaskMinWidth=0.000000000000 24 | DrawSegmentWidth=0.200000000000 25 | BoardOutlineThickness=0.100000000000 26 | ModuleOutlineThickness=0.150000000000 27 | [cvpcb] 28 | version=1 29 | NetIExt=net 30 | [eeschema] 31 | version=1 32 | LibDir= 33 | [eeschema/libraries] 34 | -------------------------------------------------------------------------------- /case/PCB Case/base/torn_base.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 2 2 | EELAYER 25 0 3 | EELAYER END 4 | $EndSCHEMATC 5 | -------------------------------------------------------------------------------- /case/PCB Case/plate/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name footprints)(type KiCad)(uri /Users/richardt/keyboard/torn/footprints.pretty)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /case/PCB Case/plate/release/kiplot_errors.filter: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/PCB Case/plate/release/kiplot_errors.filter -------------------------------------------------------------------------------- /case/PCB Case/plate/torn_plate.pro: -------------------------------------------------------------------------------- 1 | update=22/05/2015 07:44:53 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [pcbnew] 9 | version=1 10 | LastNetListRead= 11 | UseCmpFile=1 12 | PadDrill=0.600000000000 13 | PadDrillOvalY=0.600000000000 14 | PadSizeH=1.500000000000 15 | PadSizeV=1.500000000000 16 | PcbTextSizeV=1.500000000000 17 | PcbTextSizeH=1.500000000000 18 | PcbTextThickness=0.300000000000 19 | ModuleTextSizeV=1.000000000000 20 | ModuleTextSizeH=1.000000000000 21 | ModuleTextSizeThickness=0.150000000000 22 | SolderMaskClearance=0.000000000000 23 | SolderMaskMinWidth=0.000000000000 24 | DrawSegmentWidth=0.200000000000 25 | BoardOutlineThickness=0.100000000000 26 | ModuleOutlineThickness=0.150000000000 27 | [cvpcb] 28 | version=1 29 | NetIExt=net 30 | [eeschema] 31 | version=1 32 | LibDir= 33 | [eeschema/libraries] 34 | -------------------------------------------------------------------------------- /case/PCB Case/plate/torn_plate.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 2 2 | EELAYER 25 0 3 | EELAYER END 4 | $EndSCHEMATC 5 | -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210606_104742862.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210606_104742862.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_075255868.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_075255868.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_080643402.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_080643402.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_081152775.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_081152775.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_081328508.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_081328508.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_082136344.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_082136344.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_083302831.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_083302831.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_083358444.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_083358444.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_083731876.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_083731876.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_083744705.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_083744705.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_084351302.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_084351302.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_084517389.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_084517389.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_084550654.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_084550654.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_084604375.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_084604375.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_090410899.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_090410899.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_114926046.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_114926046.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_115049295.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_115049295.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_120448581.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_120448581.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_121445468.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_121445468.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_121707725.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_121707725.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_121720069.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_121720069.jpg -------------------------------------------------------------------------------- /case/Travel Case/img/PXL_20210807_135115425.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/img/PXL_20210807_135115425.jpg -------------------------------------------------------------------------------- /case/Travel Case/readme.md: -------------------------------------------------------------------------------- 1 | # Torn Travel Case 2 | 3 | This 3D printed travel case is designed for Kailh Choc switches, featuring a print in place hinge 4 | with internal wiring. 5 | 6 | ![](./img/PXL_20210807_135115425.jpg) 7 | 8 | There are two versions of this case. The version designed to be used with a 15 inch 2017 Macbook Pro 9 | and features integrated cable routing and a guide to position the case over the Macbook keyboard. 10 | 11 | ![](./img/PXL_20210807_121707725.jpg) 12 | 13 | ![](./img/PXL_20210807_121720069.jpg) 14 | 15 | The basic version is a folding travel case without the cable routing and key guides. 16 | 17 | ![](./img/PXL_20210606_104742862.jpg) 18 | 19 | ## Parts 20 | 21 | To complete the Travel Case you need: 22 | 23 | - Assembled Torn PCBs with Kailh Choc switches (but see notes below) 24 | - 3d printed parts using the STLs below 25 | - 4 wires 26 | - 2 x acrylic covers 27 | - 6 x m2 nuts 28 | - 6 x m2 x 12mm cheese head screws 29 | - UGREEN USB C to USB C Cable _Right Angle 90 Degree_ (optional, for Macbook case) 30 | 31 | ## STLs 32 | 33 | This case has been tested with a Prusa i3 Mk3S+ using PTEG. The parts are designed to be a tight fit 34 | so tolerances may vary with other printers or plastics. The parts are available in STL or 3MF. You 35 | can use the 3MF files in [PrusaSlicer](https://www.prusa3d.com/prusaslicer/) and they contain the 36 | recommended print settings. 37 | 38 | You need to 3d print the following parts for the basic travel case: 39 | 40 | - Base [STL](./stl/Base%20basic.stl) 41 | - Left Top [STL](./stl/Left%20basic.stl) 42 | - Right Top [STL](./stl/Right%20basic.stl) 43 | 44 | The 15 inch 2017 Macbook Pro version needs: 45 | 46 | - Macbook Pro Base [STL](./stl/Base%20macbook.stl) [3MF](./stl/Base%20macbook.3mf) 47 | - Macbook Pro Left Top [STL](./stl/Left%20macbook.stl) [3MF](./stl/Left%20macbook.3mf) 48 | - Macbook Pro Right Top [STL](./stl/Right%20macbook.stl) [3MF](./stl/Right%20macbook.3mf) 49 | 50 | _You do not need to change the orientation of the files on the print bed. Do not use supports for 51 | the base_. The base prints vertically as shown in the picture below. To improve the print quality 52 | make sure the seams are not near the hinged joints. After the base is printed you need to carefully 53 | open the hinges. Do not use too much force or the hinges may break. Once free open and close the 54 | hinges a few times until they move smoothly. 55 | 56 | The left and right tops need printing with supports. Carefully remove all the support material from 57 | the case tops. Test that the acrylic cover fits flush with the edge of the case. 58 | 59 | ![](./img/PXL_20210807_075255868.jpg) 60 | 61 | ## Build guide 62 | 63 | Before assembling the Choc Case you need to have assembled the [Torn PCBs](../../doc/pcb.md). 64 | 65 | **Do not use the IC sockets (steps 13 and 22 in the main instructions). The ATMega328P and MCP23017 66 | must be directly soldered to the PCB. This is needed to reduce the height. You also don't need to 67 | install the TRRS sockets (steps 12 and 21 in the main instructions) as the case includes internal 68 | wiring.** 69 | 70 | ## Step 1 71 | 72 | Place the pcb plate on the main pcb, and insert a few Choc switches. Make sure everything fits 73 | correctly. Then add the remaining switches. 74 | 75 | ## Step 2 76 | 77 | Check that the switches are all inserted correctly, then solder the switches. Complete Step 1 and 78 | Step 2 for both the left and right sides before proceeding. 79 | 80 | ![](./img/PXL_20210807_080643402.jpg) 81 | 82 | ## Step 3 83 | 84 | Insert six m2 nuts in the base of the case. Tighten an m2 screw to pull the nuts securely into the 85 | base. Remove the screw afterwards. 86 | 87 | ![](./img/PXL_20210807_081152775.jpg) 88 | 89 | ![](./img/PXL_20210807_081328508.jpg) 90 | 91 | ![](./img/PXL_20210807_082136344.jpg) 92 | 93 | ## Step 4 94 | 95 | Solder four wires to the TRRS pins on the left pcb. The wires should be on the underside of the 96 | pcb. There is little clearance in the case for the wires, so it is important to arrange them as 97 | shown in the pciture below. 98 | 99 | ![](./img/PXL_20210807_083302831.jpg) 100 | 101 | ![](./img/PXL_20210807_083358444.jpg) 102 | 103 | ## Step 5 104 | 105 | Insert the completed left pcb in the top left of the case. 106 | 107 | ![](./img/PXL_20210807_083731876.jpg) 108 | 109 | ![](./img/PXL_20210807_083744705.jpg) 110 | 111 | 112 | ## Step 6 113 | 114 | Carefully feed the wires through the hinge. Remember there is little clearance in the case underneath 115 | the pcb so _the wires must not cross_. Use the pictures below for reference. 116 | 117 | ![](./img/PXL_20210807_084351302.jpg) 118 | 119 | ![](./img/PXL_20210807_084517389.jpg) 120 | 121 | ## Step 7 122 | 123 | Assemble the left side the case. This is a snap fit, so work around the edges until the case is 124 | completely closed. Check that the wires are not trapped, and that the hinge works smoothly. 125 | 126 | ![](./img/PXL_20210807_084550654.jpg) 127 | 128 | ![](./img/PXL_20210807_084604375.jpg) 129 | 130 | ## Step 8 131 | 132 | The wires need to be cut to the correct length. You can do this be bending the wires as shown below 133 | and cutting inline with the top edge of the case. Strip the ends of the wires and tin them. 134 | 135 | ![](./img/PXL_20210807_090410899.jpg) 136 | 137 | ## Step 9 138 | 139 | This step is fiddly, take your time. Solder the four wires to the right pcb as follows and shown in 140 | the photo below. Take care with the wire routing, remember there is little clearance and the wires 141 | must not cross. 142 | 143 | - Top wire is GND, connect this to the TRRS port pin 1 (marked with a dot on the top silk screen). 144 | 145 | - 2nd wire is I2C_SCL, connect this to the 2nd OLED pin (counting from the pcb edge). 146 | 147 | - 3rd wire is VCC, connect this to the 3rd OLED pin. 148 | 149 | - Bottom wire is I2C_SCK, connect this to the 1st OLED pin. 150 | 151 | You can solder the wires from the top of the PCB. 152 | 153 | 154 | ![](./img/PXL_20210807_114926046.jpg) 155 | 156 | ## Step 10 157 | 158 | Insert the right pcb in the top right of the case and assemble the case. This is a snap fit, so work 159 | around the edges until the case is completely closed. Check that the wires are not trapped, and that 160 | the hinge works smoothly. 161 | 162 | ![](./img/PXL_20202807_120448581.jpg) 163 | 164 | ## Step 11 165 | 166 | Double check the TRRS wiring. You can do this with a multimeter set to test the continuity. 167 | 168 | | ATmega328P | MCP23017 | Signal | 169 | | ---------- | -------- | ------ | 170 | | Pin 7 | Pin 9 | VCC | 171 | | Pin 8 | Pin 10 | GND | 172 | | Pin 28 | Pin 12 | I2C_SCL | 173 | | Pin 27 | Pin 13 | I2C_SDA | 174 | 175 | You can refer to the [troubleshooting guide](../../doc/troubleshoot.md) to see the pinouts. 176 | 177 | ## Step 12 178 | 179 | Add the acrylic covers and secure with six 12mm m2 screws. Fit the keycaps and USB cable. Enjoy! 180 | 181 | ![](./img/PXL_20210807_121445468.jpg) 182 | -------------------------------------------------------------------------------- /case/Travel Case/stl/Base basic.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Base basic.stl -------------------------------------------------------------------------------- /case/Travel Case/stl/Base macbook.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Base macbook.3mf -------------------------------------------------------------------------------- /case/Travel Case/stl/Base macbook.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Base macbook.stl -------------------------------------------------------------------------------- /case/Travel Case/stl/Left basic.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Left basic.stl -------------------------------------------------------------------------------- /case/Travel Case/stl/Left macbook.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Left macbook.3mf -------------------------------------------------------------------------------- /case/Travel Case/stl/Left macbook.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Left macbook.stl -------------------------------------------------------------------------------- /case/Travel Case/stl/Right basic.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Right basic.stl -------------------------------------------------------------------------------- /case/Travel Case/stl/Right macbook.3mf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Right macbook.3mf -------------------------------------------------------------------------------- /case/Travel Case/stl/Right macbook.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/Travel Case/stl/Right macbook.stl -------------------------------------------------------------------------------- /case/cover.dxf: -------------------------------------------------------------------------------- 1 | 0 2 | SECTION 3 | 2 4 | HEADER 5 | 9 6 | $INSUNITS 7 | 70 8 | 4 9 | 9 10 | $ACADVER 11 | 1 12 | AC1014 13 | 9 14 | $HANDSEED 15 | 5 16 | FFFF 17 | 0 18 | ENDSEC 19 | 0 20 | SECTION 21 | 2 22 | TABLES 23 | 0 24 | TABLE 25 | 2 26 | VPORT 27 | 5 28 | 8 29 | 100 30 | AcDbSymbolTable 31 | 0 32 | ENDTAB 33 | 0 34 | TABLE 35 | 2 36 | LTYPE 37 | 5 38 | 5 39 | 100 40 | AcDbSymbolTable 41 | 0 42 | LTYPE 43 | 5 44 | 14 45 | 100 46 | AcDbSymbolTableRecord 47 | 100 48 | AcDbLinetypeTableRecord 49 | 2 50 | BYBLOCK 51 | 70 52 | 0 53 | 0 54 | LTYPE 55 | 5 56 | 15 57 | 100 58 | AcDbSymbolTableRecord 59 | 100 60 | AcDbLinetypeTableRecord 61 | 2 62 | BYLAYER 63 | 70 64 | 0 65 | 0 66 | ENDTAB 67 | 0 68 | TABLE 69 | 2 70 | LAYER 71 | 5 72 | 2 73 | 100 74 | AcDbSymbolTable 75 | 70 76 | 2 77 | 0 78 | LAYER 79 | 5 80 | 50 81 | 100 82 | AcDbSymbolTableRecord 83 | 100 84 | AcDbLayerTableRecord 85 | 2 86 | 0 87 | 70 88 | 0 89 | 6 90 | CONTINUOUS 91 | 0 92 | ENDTAB 93 | 0 94 | TABLE 95 | 2 96 | STYLE 97 | 5 98 | 3 99 | 100 100 | AcDbSymbolTable 101 | 70 102 | 1 103 | 0 104 | STYLE 105 | 5 106 | 11 107 | 100 108 | AcDbSymbolTableRecord 109 | 100 110 | AcDbTextStyleTableRecord 111 | 2 112 | STANDARD 113 | 70 114 | 0 115 | 0 116 | ENDTAB 117 | 0 118 | TABLE 119 | 2 120 | VIEW 121 | 5 122 | 6 123 | 100 124 | AcDbSymbolTable 125 | 70 126 | 0 127 | 0 128 | ENDTAB 129 | 0 130 | TABLE 131 | 2 132 | UCS 133 | 5 134 | 7 135 | 100 136 | AcDbSymbolTable 137 | 70 138 | 0 139 | 0 140 | ENDTAB 141 | 0 142 | TABLE 143 | 2 144 | APPID 145 | 5 146 | 9 147 | 100 148 | AcDbSymbolTable 149 | 70 150 | 2 151 | 0 152 | APPID 153 | 5 154 | 12 155 | 100 156 | AcDbSymbolTableRecord 157 | 100 158 | AcDbRegAppTableRecord 159 | 2 160 | ACAD 161 | 70 162 | 0 163 | 0 164 | ENDTAB 165 | 0 166 | TABLE 167 | 2 168 | DIMSTYLE 169 | 5 170 | A 171 | 100 172 | AcDbSymbolTable 173 | 70 174 | 1 175 | 0 176 | ENDTAB 177 | 0 178 | TABLE 179 | 2 180 | BLOCK_RECORD 181 | 5 182 | 1 183 | 100 184 | AcDbSymbolTable 185 | 70 186 | 1 187 | 0 188 | BLOCK_RECORD 189 | 5 190 | 1F 191 | 100 192 | AcDbSymbolTableRecord 193 | 100 194 | AcDbBlockTableRecord 195 | 2 196 | *MODEL_SPACE 197 | 0 198 | BLOCK_RECORD 199 | 5 200 | 1B 201 | 100 202 | AcDbSymbolTableRecord 203 | 100 204 | AcDbBlockTableRecord 205 | 2 206 | *PAPER_SPACE 207 | 0 208 | ENDTAB 209 | 0 210 | ENDSEC 211 | 0 212 | SECTION 213 | 2 214 | BLOCKS 215 | 0 216 | BLOCK 217 | 5 218 | 20 219 | 100 220 | AcDbEntity 221 | 100 222 | AcDbBlockBegin 223 | 2 224 | *MODEL_SPACE 225 | 0 226 | ENDBLK 227 | 5 228 | 21 229 | 100 230 | AcDbEntity 231 | 100 232 | AcDbBlockEnd 233 | 0 234 | BLOCK 235 | 5 236 | 1C 237 | 100 238 | AcDbEntity 239 | 100 240 | AcDbBlockBegin 241 | 2 242 | *PAPER_SPACE 243 | 0 244 | ENDBLK 245 | 5 246 | 1D 247 | 100 248 | AcDbEntity 249 | 100 250 | AcDbBlockEnd 251 | 0 252 | ENDSEC 253 | 0 254 | SECTION 255 | 2 256 | ENTITIES 257 | 0 258 | CIRCLE 259 | 5 260 | 100 261 | 100 262 | AcDbEntity 263 | 8 264 | 0 265 | 100 266 | AcDbCircle 267 | 10 268 | -54.250001028180108 269 | 20 270 | 54.150001341104506 271 | 30 272 | 0 273 | 40 274 | 1.0999999999999943 275 | 210 276 | 0 277 | 220 278 | -0 279 | 230 280 | 1 281 | 0 282 | CIRCLE 283 | 5 284 | 101 285 | 100 286 | AcDbEntity 287 | 8 288 | 0 289 | 100 290 | AcDbCircle 291 | 10 292 | -186.75000102818012 293 | 20 294 | 143.85000134110453 295 | 30 296 | 0 297 | 40 298 | 1.0999999999999943 299 | 210 300 | 0 301 | 220 302 | -0 303 | 230 304 | 1 305 | 0 306 | CIRCLE 307 | 5 308 | 102 309 | 100 310 | AcDbEntity 311 | 8 312 | 0 313 | 100 314 | AcDbCircle 315 | 10 316 | -186.75000102818012 317 | 20 318 | 54.150001341104506 319 | 30 320 | 0 321 | 40 322 | 1.0999999999999943 323 | 210 324 | 0 325 | 220 326 | -0 327 | 230 328 | 1 329 | 0 330 | LWPOLYLINE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbPolyline 339 | 90 340 | 29 341 | 70 342 | 1 343 | 43 344 | 0.0 345 | 10 346 | -127.15000099837781 347 | 20 348 | 64.740001095235371 349 | 10 350 | -127.15000099837781 351 | 20 352 | 64.360001095235347 353 | 42 354 | 0.41421356237307944 355 | 10 356 | -126.15000099837783 357 | 20 358 | 63.360001095235354 359 | 10 360 | -108.15000078976153 361 | 20 362 | 63.360001095235347 363 | 42 364 | 0.41421356237309509 365 | 10 366 | -107.15000078976153 367 | 20 368 | 64.360001095235347 369 | 10 370 | -107.15000078976153 371 | 20 372 | 64.740001095235343 373 | 42 374 | -0.41421356237309509 375 | 10 376 | -106.15000078976153 377 | 20 378 | 65.740001095235343 379 | 10 380 | -89.000001311302185 381 | 20 382 | 65.740001095235343 383 | 42 384 | 0.41421356237309509 385 | 10 386 | -88.000001311302185 387 | 20 388 | 66.740001095235343 389 | 10 390 | -88.000001311302185 391 | 20 392 | 69.500001095235348 393 | 42 394 | -0.41421356237309509 395 | 10 396 | -87.000001311302185 397 | 20 398 | 70.500001095235348 399 | 10 400 | -53.00000074505806 401 | 20 402 | 70.500001095235348 403 | 42 404 | -0.41421356237309936 405 | 10 406 | -50.00000074505806 407 | 20 408 | 67.500001095235348 409 | 10 410 | -50.00000074505806 411 | 20 412 | 53.00000074505806 413 | 42 414 | -0.41421356237309936 415 | 10 416 | -53.000000745058045 417 | 20 418 | 50.00000074505806 419 | 10 420 | -187.69999573752284 421 | 20 422 | 50.000000745058067 423 | 42 424 | -0.4142135623730942 425 | 10 426 | -190.69999573752284 427 | 20 428 | 53.000000745058067 429 | 10 430 | -190.69999573752281 431 | 20 432 | 148.9565548697652 433 | 42 434 | -0.16894333630922054 435 | 10 436 | -190.05248132528291 437 | 20 438 | 150.8182238949631 439 | 10 440 | -189.6585493670959 441 | 20 442 | 151.31601337400036 443 | 10 444 | -165.62944465664521 445 | 20 446 | 132.30027947304282 447 | 42 448 | -0.22922909038612926 449 | 10 450 | -165.25000099837783 451 | 20 452 | 131.51611761045612 453 | 10 454 | -165.25000099837783 455 | 20 456 | 69.120001095235352 457 | 42 458 | 0.41421356237308726 459 | 10 460 | -164.2500009983778 461 | 20 462 | 68.120001095235367 463 | 10 464 | -147.20000099837782 465 | 20 466 | 68.120001095235352 467 | 42 468 | -0.41421356237309509 469 | 10 470 | -146.20000099837782 471 | 20 472 | 67.120001095235352 473 | 10 474 | -146.20000099837782 475 | 20 476 | 66.740001095235357 477 | 42 478 | 0.41421356237309509 479 | 10 480 | -145.20000099837782 481 | 20 482 | 65.740001095235357 483 | 10 484 | -128.15000099837783 485 | 20 486 | 65.740001095235357 487 | 42 488 | -0.41421356237308726 489 | 0 490 | ENDSEC 491 | 0 492 | SECTION 493 | 2 494 | OBJECTS 495 | 0 496 | DICTIONARY 497 | 5 498 | C 499 | 100 500 | AcDbDictionary 501 | 3 502 | ACAD_GROUP 503 | 350 504 | D 505 | 3 506 | ACAD_MLINESTYLE 507 | 350 508 | 17 509 | 0 510 | DICTIONARY 511 | 5 512 | D 513 | 100 514 | AcDbDictionary 515 | 0 516 | DICTIONARY 517 | 5 518 | 1A 519 | 330 520 | C 521 | 100 522 | AcDbDictionary 523 | 0 524 | DICTIONARY 525 | 5 526 | 17 527 | 100 528 | AcDbDictionary 529 | 0 530 | ENDSEC 531 | 0 532 | EOF 533 | -------------------------------------------------------------------------------- /case/wedge/img/IMG_9030.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9030.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9034.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9034.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9035.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9035.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9036.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9036.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9037.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9037.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9038.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9038.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9039.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9040.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9040.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9041.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9042.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9042.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9043.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9043.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9044.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9060.jpg -------------------------------------------------------------------------------- /case/wedge/img/IMG_9067.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/IMG_9067.jpg -------------------------------------------------------------------------------- /case/wedge/img/PXL_20210508_125158827.PORTRAIT.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/PXL_20210508_125158827.PORTRAIT.jpg -------------------------------------------------------------------------------- /case/wedge/img/PXL_20210606_092259319.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/PXL_20210606_092259319.jpg -------------------------------------------------------------------------------- /case/wedge/img/PXL_20210606_093257183.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/PXL_20210606_093257183.jpg -------------------------------------------------------------------------------- /case/wedge/img/PXL_20210606_093623977.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/case/wedge/img/PXL_20210606_093623977.jpg -------------------------------------------------------------------------------- /case/wedge/wedge.md: -------------------------------------------------------------------------------- 1 | # Torn Wedge Case 2 | 3 | The Wedge Case has been designed for the Torn keyboard. It has been designed as a premium case option, 4 | with an angled 3D printed case and a steel plate. 5 | 6 | The case is manufactured for your individual requirements. You can choose a tenting angle between 7 7 | degrees to 30 degrees. The cases are printed on demand and can be made in a color of your choice, it 8 | is even possible to try and match the color to your keycaps. Prices start from €150 plus shipping from Europe. 9 | If your interested please contact me at richard.titmuss@gmail.com or on 10 | [Discord](https://discordapp.com/users/745293992044003348/) for more information. 11 | 12 | ![alt_text](img/PXL_20210508_125158827.PORTRAIT.jpg) 13 | 14 | ## What's included 15 | 16 | The following parts are included in the Torn Wedge Case kit: 17 | 18 | ![alt_text](img/IMG_9030.jpg) 19 | 20 | * 2 x base (3D printed) 21 | * 2 x insert (3D printed) 22 | * 2 x trim (3D printed) 23 | * 2 x steel plate 24 | * 2 x acrylic cover 25 | * 8 x bumper feet 26 | * 12 * M3 screws 27 | * cali cat 28 | 29 | You need a 2mm allen key (not included) for assembly. 30 | 31 | ## Finish 32 | 33 | Care is taken during the manufacturing of the Wedge Case to produce the best possible finish, but 34 | the Wedge Case is 3D printed which means that fine layer lines will be visible in the surface finish. 35 | These close up photos are intended to show the imperfections! 36 | 37 | ![alt_text](img/IMG_9035.jpg) 38 | 39 | A [cali cat](https://www.thingiverse.com/thing:1545913) is included with the kit in case you want to 40 | experiment with a smoother finish. The case is printed using PETG plastic, you can read about 41 | different options for [getting the perfect finish](https://all3dp.com/2/petg-smoothing/). 42 | 43 | ![alt_text](img/IMG_9034.jpg) 44 | 45 | Threaded brass inserts are used for a secure and wear resistant assembly. 46 | 47 | ![alt_text](img/IMG_9036.jpg) 48 | 49 | The case has room for the TRRS and USB C connectors to attach to the PCB. 50 | 51 | ![alt_text](img/IMG_9067.jpg) 52 | 53 | 54 | ## Build Guide 55 | 56 | Before assembling the Wedge Case you need to have assembled the [Torn PCBs](../../doc/pcb.md). Complete 57 | the following steps for the left and right sides of your keyboard. 58 | 59 | ### Step 1 60 | 61 | The assembled Wedge weights about 500g. If you want to add some weight for a quality feel and to 62 | make sure it won't more around your desk you can add some extra weight at the bottom of the case. 63 | 64 | ![alt_text](img/IMG_9037.jpg) 65 | 66 | A cost effective was to add weight is to use adhesive balance weights for car wheels. Below eight 60g 67 | strips are used to add approx 500g additional weight. These are easy to buy from Amazon, for example 68 | [US](https://www.amazon.com/Pit-Posse-Balancing-Weights-Adhesive/dp/B00OQWS98S/ref=sr_1_13?dchild=1&keywords=balancing+weight&qid=1620718949&sr=8-13), 69 | [UK](https://www.amazon.co.uk/FIERCE-CYCLE-Balance-Weights-Motorcycle/dp/B07QQ539GV/ref=sr_1_7?crid=7JSFKDWAYNL7&dchild=1&keywords=balancing+weights&qid=1620718843&sprefix=balancing+wei%2Caps%2C164&sr=8-7), 70 | [SE](https://www.amazon.se/gp/product/B01GHKG18G/ref=ppx_yo_dt_b_asin_image_o00_s00?ie=UTF8&psc=1). 71 | 72 | ![alt_text](img/PXL_20210606_093257183.jpg) 73 | 74 | ## Step 2 75 | 76 | Press the insert firmly into the base. This is designed to be a tight fit, and it is important that 77 | the insert is correctly seated. 78 | 79 | Be careful if you need to remove the insert; you can use a small screwdriver to pry the insert up 80 | by the connector gap. 81 | 82 | ![alt_text](img/IMG_9038.jpg) 83 | 84 | ## Step 3 85 | 86 | Remove the steel plate from the protective wrapper. 87 | 88 | ![alt_text](img/IMG_9039.jpg) 89 | 90 | ## Step 4 91 | 92 | Insert some MX switches in the steel plate and attach the completed PCB. Be careful not to bend the 93 | switch pins. 94 | 95 | ![alt_text](img/IMG_9040.jpg) 96 | 97 | ## Step 5 98 | 99 | Add the rest of the MX switch. Be careful not to bend the switch pins. 100 | 101 | If you are not using Kailh sockets, you need to solder the switches to the PCB. You might want to 102 | test all the switches are working before proceeding. 103 | 104 | ![alt_text](img/IMG_9041.jpg) 105 | 106 | ## Step 6 107 | 108 | Put the steel plate and PCB assembly on the Wedge. 109 | 110 | ![alt_text](img/IMG_9042.jpg) 111 | 112 | ## Step 7 113 | 114 | Put the trim over the steel plate. Remove the protective sheet on the acrylic cover and place it 115 | over the trim. Use three M3 screws to secure the acrylic cover. 116 | 117 | ![alt_text](img/IMG_9043.jpg) 118 | 119 | ## Step 8 120 | 121 | Turn the case over and using three M3 screws to secure the trim. Add four bumper feet. 122 | 123 | ![alt_text](img/IMG_9044.jpg) 124 | 125 | ## Step 9 126 | 127 | Add the keycaps and enjoy your new keyboard! 128 | 129 | ![alt_text](img/IMG_9060.jpg) 130 | 131 | The completed keyboard weights about 500g for each half. 132 | 133 | ![alt_text](img/PXL_20210606_092259319.jpg) 134 | 135 | When using additional weights it is easy to increase this to 900g+ for each half. 136 | 137 | ![alt_text](img/PXL_20210606_093623977.jpg) 138 | 139 | -------------------------------------------------------------------------------- /doc/bom.md: -------------------------------------------------------------------------------- 1 | # Parts list 2 | 3 | The easy option is to wait until later this year when a Torn keyboard kit will be available at [splitkb.com](https://blog.splitkb.com/blog/january-2021). 4 | 5 | You can also source and buy the following parts. 6 | 7 | Torn is licensed under licensed under the [Creative Commons Attribution-NonCommercial 4.0 International License](https://creativecommons.org/licenses/by-nc/4.0). 8 | This PCB design may be freely reproduced, modified, and manufactured for personal use only. It is not permitted to sell spare PCBs without permission. 9 | 10 | 11 | ### PCBs 12 | 13 | There are several PCB manufactures that can produce small production runs, for example [jlcpcb](https://jlcpcb.com/), [PCBway](https://www.pcbway.com/) and [Elecrow](https://www.elecrow.com/pcb-manufacturing.html). 14 | You will need upload the gerber files for the left and right PCBs. The latest version is published on [github](https://github.com/rtitmuss/torn/releases/latest) or you can generate your own gerbers using [KiCad](https://kicad.org/). 15 | 16 | At the same time you can also manufacture the optional PCB plate and base, also available on [github](https://github.com/rtitmuss/torn/releases/latest). 17 | 18 | ### Components 19 | 20 | You will also need to buy the components listed in the [bill of materials](https://octopart.com/bom-tool/5oG983n7). Most of the parts are easily available, with the exception of the USB C connector which is currently only stocked at Digi-Key in low volumes. 21 | 22 | If you want the optional OLED display look for a 128X32 OLED Screen. This is the same OLED display used on the Corne and Lily58 keyboards, and available at many mechanical keyboard stores or [Aliexpress](https://www.aliexpress.com/i/32798439084.html). 23 | 24 | Also optional are the Kailh MX Hotswap sockets, search for part number CPG151101S11. 25 | 26 | ### Cover 27 | 28 | You will need to get an arcylic cover cut. 29 | 30 | ### Screws and standoffs 31 | 32 | If you use PCB plate and base you will need M2 screws and standoffs. For example for the MX plate case: 33 | - [M2 screws](https://www.aliexpress.com/item/32948706855.html) (3mm 26 pcs, 5mm 6 pcs) 34 | - [M2 standoffs](https://www.aliexpress.com/item/32968830934.html) (3mm 10 pcs, 8mm 6 pcs) 35 | - [M2 standoffs](https://www.aliexpress.com/item/32970235195.html) (3mm+3mm 16 pcs) 36 | 37 | The Kailh Choc plate case requires: 38 | - [M2 screws](https://www.aliexpress.com/item/32948706855.html) (3mm 16 pcs, 5mm 6 pcs) 39 | - [M2 standoffs](https://www.aliexpress.com/item/32968830934.html) (5mm or 8mm 6 pcs) 40 | 41 | You also want 8 rubber dome feet. 42 | -------------------------------------------------------------------------------- /doc/bootloader.md: -------------------------------------------------------------------------------- 1 | # Flashing the bootloader 2 | 3 | If you bought the Torn Keyboard kit the ATmega328P has already been programmed, otherwise if you purchased your own components you need to follow this section of the guide. 4 | 5 | This guide shows you how to use an [Arduino Uno](#Arduino-Uno-as-ISP) or an USBasp (on [Linux](#USBasp-as-ISP-on-Linux) / [Windows](#USBasp-as-ISP-on-Windows)) to program the keyboard. You can use other ISP programmers that are supported by avrdude. 6 | 7 | You can check the [troubleshooting guide](troubleshoot.md#flashing-atmega328p) if you have problems programming the bootloader. 8 | 9 | ## Downloading the bootloader 10 | 11 | Download the USBaspLoader source code from [https://github.com/rtitmuss/USBaspLoader/tree/torn](https://github.com/rtitmuss/USBaspLoader/tree/torn) by clicking on the green `Code` button and then on `Download ZIP`. Unzipp the files. 12 | 13 | You may need to modify the `PROGRAMMER` setting in `Makefile.inc` if you are using a different ISP programmer or OS. The next sections will skim over what to edit in case you are using an Arduino or a USBasp. 14 | 15 | ## Arduino Uno as ISP 16 | 17 | First you need to program the Arduino Uno as an ISP, as described in Load the Sketch at [https://www.arduino.cc/en/Tutorial/ArduinoISP#toc5](https://www.arduino.cc/en/Tutorial/ArduinoISP#toc5). 18 | 19 | 20 | ### Wiring the programmer 21 | 22 | You can use an Arduino Uno to program the AMegta328P with the ISP header on the right PCB. You need to connect the following pins: 23 | 24 | 25 | Arduino Uno | Torn Keyboard 26 | ----------- | ------------- 27 | ICSP Pin 1 - MISO | ICP Pin 1 - COL4 28 | ICSP Pin 2 - +Vcc | ICP Pin 2 - +5V 29 | ICSP Pin 3 - SCK | ICP Pin 3 - COL3 30 | ICSP Pin 4 - MOSI | ICP Pin 4 - COL5 31 | ICSP Pin 5 - Reset | - 32 | ICSP Pin 6 - Gnd | ICP Pin 6 - GND 33 | Digital Pin 10 | ICP Pin 5 - Reset 34 | 35 | The Arduino Uno board needs a 10µF electrolytic capacitor connected to RESET and GND with the positive (long leg) connected to RESET. The capacitor has to be placed after the programmer board has been loaded with the ISP sketch. 36 | 37 | 38 | ![alt_text](build/image18.jpg) 39 | 40 | 41 | ### Flashing 42 | 43 | You may need to change the path to your Arduino in the `Makefile.inc`. Replace the path in line 41 `/dev/cu.usbmodem*` with your own. 44 | ``` 45 | 41: PROGRAMMER = -c avrisp -P /dev/cu.usbmodem* -b19200 46 | ``` 47 | Make sure to save your changes before continuing. 48 | 49 | Navigate to your unzipped `USBaspLoader-torn` folder and open a terminal window at that location. You can now flash the bootloader using: 50 | 51 | ``` 52 | make 53 | make flash 54 | make fuse 55 | ``` 56 | 57 | Once the bootloader has been flashed to the board, disconnect the Arduino Uno. 58 | 59 | 60 | ## USBasp as ISP on Linux 61 | 62 | > This section has been tested on Ubuntu Desktop version 20.10. If you don't have Ubuntu installed, you can run it from a [bootable USB stick](https://ubuntu.com/tutorials/create-a-usb-stick-on-windows#1-overview) without touching your current OS. 63 | 64 | 65 | ### Installing the required packages 66 | 67 | 1. Open a new Terminal window 68 | 2. run `sudo add-apt-repository universe`, press Enter when prompted. 69 | 3. run `sudo apt-get update` 70 | 3. run `sudo apt-get install avr-libc binutils-avr gcc-avr avrdude make`, press Y when prompted 71 | 72 | ### Testing your USBasp 73 | 74 | Plug the USBasp into your computer. Connect the ribbon cable between your USBasp and the ISCP header on your keyboard. Make sure that the ribbon cable notch faces the right way. 75 | 76 | Run `avrdude -c usbasp -p atmega328p` in your Terminal. 77 | 78 | If everything is working you should get a message similar to this one: 79 | 80 | ``` 81 | avrdude: AVR device initialized and ready to accept instructions 82 | 83 | Reading | ################################################## | 100% 0.00s 84 | 85 | avrdude: Device signature = 0x1e950f (probably m328p) 86 | 87 | avrdude: safemode: Fuses OK (E:FC, H:D0, L:D7) 88 | 89 | avrdude done. Thank you. 90 | ``` 91 | 92 | 93 | ![alt_text](build/image47.jpg) 94 | 95 | 96 | ### Flashing 97 | 98 | Go into your previously downloaded and unzipped `USBaspLoader-torn` folder and edit `Makefile.inc`. Uncomment Line 40. Comment out Line 41. 99 | 100 | ``` 101 | 39: # PROGRAMMER = -c pony-stk200 102 | 40: PROGRAMMER = -c usbasp 103 | 41: # PROGRAMMER = -c avrisp -P /dev/cu.usbmodem* -b19200 104 | ``` 105 | Make sure to save your changes before continuing. 106 | 107 | Navigate to your unzipped `USBaspLoader-torn` folder and open a terminal window at that location. You can now flash the bootloader using: 108 | 109 | ``` 110 | make 111 | make flash 112 | make fuse 113 | ``` 114 | 115 | Once the bootloader has been flashed to the board, disconnect the USBasp. 116 | 117 | 118 | ## USBasp as ISP on Windows 119 | 120 | > This section has been tested on Windows 10 version 20H2. 121 | 122 | 123 | ### Installing the required programs 124 | 125 | If you don't have `QMK MSYS` already installed on your computer, go [HERE](https://msys.qmk.fm/) and install the latest version. Follow the `Get Started` section and come back here when you are done. You will also need `QMK MSYS` later if you want to create your own keymap. 126 | 1. Make sure `QMK MSYS` is installed. 127 | 2. Download [Zadig](https://zadig.akeo.ie/). You will need this program to install the correct driver for your USBasp on Windows. 128 | 3. Plug your USBasp into your computer. 129 | 4. Start Zadig and select `List all Devices` under `Options`. 130 | 5. You should now be able to select `USBasp`in the drop down menu. 131 | 6. Make sure `WinUSB`is selected as replacement driver. 132 | 7. Click on `Replace Driver` to start the progress and wait until it's done. 133 | 8. Close Zadiq. Unplug your USBasp. 134 | 135 | 136 | ![alt_text](build/image48.png) 137 | ![alt_text](build/image49.png) 138 | ![alt_text](build/image50.png) 139 | 140 | 141 | 142 | ### Testing your USBasp 143 | 144 | Plug the USBasp into your computer. Connect the ribbon cable between your USBasp and the ISCP header on your keyboard. Make sure that the ribbon cable notch faces the right way. 145 | 146 | Open `QMK MSYS` and run `avrdude -c usbasp -p atmega328p`. 147 | 148 | If everything is working you should get a message similar to this one: 149 | 150 | 151 | ![alt_text](build/image51.png) 152 | 153 | 154 | ### Flashing 155 | 156 | Go into your previously downloaded and unzipped `USBaspLoader-torn` folder and edit `Makefile.inc`. Uncomment Line 40. Comment out Line 41. 157 | 158 | ``` 159 | 39: # PROGRAMMER = -c pony-stk200 160 | 40: PROGRAMMER = -c usbasp 161 | 41: # PROGRAMMER = -c avrisp -P /dev/cu.usbmodem* -b19200 162 | ``` 163 | Make sure to save your changes before continuing. 164 | 165 | Navigate to your unzipped `USBaspLoader-torn` folder by typing `cd C:/Users/YOURUSERNAME/Downloads/USBaspLoader-torn` in `QMK MSYS`. Change the path according to your own and press Enter. 166 | 167 | 168 | ![alt_text](build/image52.png) 169 | 170 | 171 | You can now flash the bootloader using: 172 | 173 | ``` 174 | make 175 | make flash 176 | make fuse 177 | ``` 178 | 179 | Once the bootloader has been flashed to the board, disconnect the USBasp. 180 | 181 | 182 | -------------------------------------------------------------------------------- /doc/build.md: -------------------------------------------------------------------------------- 1 | # Torn Keyboard Build 2 | 3 | Welcome to the Torn keyboard build instructions. 4 | 5 | ## You Need 6 | 7 | You need the following components (not included in the Torn Keyboard kit). 8 | 9 | Cherry MX compatible build: 10 | 11 | * USB C cable 12 | * TRRS cable 13 | * 42-44 x MX Cherry MX compatible switches \ 14 | 42-44 x Kailh PCB Socket CPG151101S11 **(optional)** 15 | * Keycaps for MX switches 16 | * 2 x EC11 Encoders and knobs **(optional)** 17 | 18 | Kailh low profile (choc) build: 19 | 20 | * USB C cable 21 | * TRRS cable 22 | * 42-44 x Kailh low profile switch PG1350 23 | * Keycaps for Kailh low profile switches 24 | * 2 x EC11 Encoders and knobs **(optional)** 25 | 26 | Note: the cable must be a **TRRS cable** with 4 contacts and NOT a TRS cable with 3 contacts. 27 | 28 | ## Torn PCB Assembly 29 | 30 | Follow the [PCB assembly instructions](pcb.md) to solder the components on the left and right sides 31 | of the keyboard. Test the keyboard is working before installing it in a case. 32 | 33 | ![alt_text](build/image46.jpg) 34 | 35 | ![alt_text](build/image39.jpg) 36 | 37 | 38 | ## Torn Keyboard Cases 39 | 40 | The completed PCBs can be installed in a keyboard case. There are several options available, or you could 41 | design your own! 42 | 43 | ### Torn Wedge Case 44 | 45 | The Wedge Case has been designed for the Torn keyboard. It has been designed as a premium case option, 46 | for MX Switches, weighing approx 500g with an angled 3D printed case and a steel plate. Follow the 47 | [Wedge Case instructions](../case/wedge/wedge.md) for more information or to assemble the wedge case. 48 | 49 | ![alt_text](../case/wedge/img/PXL_20210508_125158827.PORTRAIT.jpg) 50 | 51 | ### Weighted HiPro Case 52 | 53 | This [3d printed Weighted HiPro Case](../case/HiPro%20Case/readme.md) is designed for MX or Kailh Choc switches. This case is designed 54 | with a snap fit assembly, and to include 200g weight in each half. 55 | 56 | ![torn](../case/HiPro%20Case/img/PXL_20210716_130633293.PORTRAIT.jpg) 57 | 58 | ### Travel Case 59 | 60 | You can 3d print a folding [travel case](../case/Travel%20Case/readme.md) designed for Kailh Choc 61 | switches and a 15 inch Macbook Pro. 62 | 63 | ![torn](../case/Travel%20Case/img/PXL_20210807_121445468.jpg) 64 | 65 | ### PCB Plate with MX Switches 66 | 67 | You can use a PCB Plate case with MX Swtiches, see the [PCB Plate instructions](./build_mx.md) 68 | for more information. 69 | 70 | ![torn](./img/img2.jpg) 71 | 72 | ### PCB case with Kailh Choc Switches 73 | 74 | If you prefer a low profile keyboard you can use Kailh Choc Switches, see the [ Choc Switches instructions](build_choc.md) 75 | for more information. 76 | 77 | ![alt_text](build/image26.jpg) 78 | 79 | ### 3d printed case 80 | 81 | You can [3d print](../case/3D%20Printed%20Case/readme.md) a case that can be used with either MX Switches or Kailh Choc Switches. 82 | 83 | ![torn](../case/3D%20Printed%20Case/torn%20-%201.jpeg) 84 | 85 | ## Configuring Torn Keyboard 86 | 87 | If you bought the Torn Keyboard kit the ATmega328P has already been programmed, and you can use VIA or flash QMK as decribed below. Otherwise if you purchased your own components you will need to first [flash the bootloader](bootloader.md). 88 | 89 | ### VIA 90 | 91 | You can use VIA to configure the Torn Keyboard. Download and install Via from [https://caniusevia.com/](https://caniusevia.com/). VIA will allow you to dynamically remap the keys when you plug the keyboard in. 92 | 93 | To erase the configuration and return to the default settings, press the top left button on the keyboard when plugging in the USB C connector. 94 | 95 | If you want to change the rotary encoder settings, or customize the OLED display you must download the QMK firmware and follow the instructions for Programming QMK. 96 | 97 | 98 | ### QMK 99 | 100 | You can fully customize your Torn Keyboard by updating QMK. 101 | 102 | Download the QMK source code from [https://github.com/qmk/qmk_firmware](https://github.com/qmk/qmk_firmware). You can then edit the source code, for example [creating our own keymap](https://docs.qmk.fm/#/custom_quantum_functions). 103 | 104 | Enter bootloader mode by: 105 | 106 | 1. Plug in the TRRS cable to connect the left and right sides for the keyboard 107 | 2. Plug in USB C cable between the keyboard and your PC 108 | 3. Push and hold RESET SW 109 | 4. Push and hold BOOT SW 110 | 5. Release RESET SW 111 | 6. Release BOOT SW 112 | 113 | You can then program QMK using: 114 | 115 | ``` 116 | make torn:via:flash 117 | ``` 118 | 119 | For additional help flashing QMK please see [https://docs.qmk.fm/#/newbs_flashing](https://docs.qmk.fm/#/newbs_flashing). 120 | 121 | ## Enjoy! 122 | 123 | Congratulations on completing your Torn keyboard! It was fun designing and sharing this keyboard and 124 | I enjoy seeing pictures of the finished build. So take a photo (tips for your 125 | [phone](https://switchandclick.com/how-to-take-better-photos-of-your-keyboard-among-other-things/) 126 | or [dslr](https://golem.hu/article/keyboard-photography/)) and share in 127 | [Discord](https://discord.gg/mamAqNccju) or on [Reddit](https://www.reddit.com/r/ErgoMechKeyboards/). -------------------------------------------------------------------------------- /doc/build/atmega238p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/atmega238p.png -------------------------------------------------------------------------------- /doc/build/image1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image1.jpg -------------------------------------------------------------------------------- /doc/build/image10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image10.jpg -------------------------------------------------------------------------------- /doc/build/image11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image11.jpg -------------------------------------------------------------------------------- /doc/build/image12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image12.jpg -------------------------------------------------------------------------------- /doc/build/image13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image13.jpg -------------------------------------------------------------------------------- /doc/build/image14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image14.jpg -------------------------------------------------------------------------------- /doc/build/image15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image15.jpg -------------------------------------------------------------------------------- /doc/build/image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image16.png -------------------------------------------------------------------------------- /doc/build/image17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image17.jpg -------------------------------------------------------------------------------- /doc/build/image18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image18.jpg -------------------------------------------------------------------------------- /doc/build/image19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image19.jpg -------------------------------------------------------------------------------- /doc/build/image2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image2.jpg -------------------------------------------------------------------------------- /doc/build/image20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image20.jpg -------------------------------------------------------------------------------- /doc/build/image21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image21.jpg -------------------------------------------------------------------------------- /doc/build/image22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image22.jpg -------------------------------------------------------------------------------- /doc/build/image23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image23.jpg -------------------------------------------------------------------------------- /doc/build/image24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image24.jpg -------------------------------------------------------------------------------- /doc/build/image25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image25.jpg -------------------------------------------------------------------------------- /doc/build/image26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image26.jpg -------------------------------------------------------------------------------- /doc/build/image27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image27.jpg -------------------------------------------------------------------------------- /doc/build/image28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image28.jpg -------------------------------------------------------------------------------- /doc/build/image28_note.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image28_note.jpg -------------------------------------------------------------------------------- /doc/build/image29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image29.jpg -------------------------------------------------------------------------------- /doc/build/image3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image3.jpg -------------------------------------------------------------------------------- /doc/build/image30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image30.jpg -------------------------------------------------------------------------------- /doc/build/image31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image31.jpg -------------------------------------------------------------------------------- /doc/build/image32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image32.jpg -------------------------------------------------------------------------------- /doc/build/image33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image33.jpg -------------------------------------------------------------------------------- /doc/build/image34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image34.jpg -------------------------------------------------------------------------------- /doc/build/image35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image35.jpg -------------------------------------------------------------------------------- /doc/build/image36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image36.jpg -------------------------------------------------------------------------------- /doc/build/image37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image37.jpg -------------------------------------------------------------------------------- /doc/build/image38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image38.jpg -------------------------------------------------------------------------------- /doc/build/image39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image39.jpg -------------------------------------------------------------------------------- /doc/build/image4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image4.jpg -------------------------------------------------------------------------------- /doc/build/image40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image40.jpg -------------------------------------------------------------------------------- /doc/build/image41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image41.jpg -------------------------------------------------------------------------------- /doc/build/image42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image42.jpg -------------------------------------------------------------------------------- /doc/build/image43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image43.jpg -------------------------------------------------------------------------------- /doc/build/image44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image44.jpg -------------------------------------------------------------------------------- /doc/build/image45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image45.jpg -------------------------------------------------------------------------------- /doc/build/image46.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image46.jpg -------------------------------------------------------------------------------- /doc/build/image47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image47.jpg -------------------------------------------------------------------------------- /doc/build/image48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image48.png -------------------------------------------------------------------------------- /doc/build/image49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image49.png -------------------------------------------------------------------------------- /doc/build/image5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image5.jpg -------------------------------------------------------------------------------- /doc/build/image50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image50.png -------------------------------------------------------------------------------- /doc/build/image51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image51.png -------------------------------------------------------------------------------- /doc/build/image52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image52.png -------------------------------------------------------------------------------- /doc/build/image6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image6.jpg -------------------------------------------------------------------------------- /doc/build/image7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image7.jpg -------------------------------------------------------------------------------- /doc/build/image8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image8.jpg -------------------------------------------------------------------------------- /doc/build/image9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/image9.jpg -------------------------------------------------------------------------------- /doc/build/isp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/isp.png -------------------------------------------------------------------------------- /doc/build/mcp23017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/build/mcp23017.png -------------------------------------------------------------------------------- /doc/build_choc.md: -------------------------------------------------------------------------------- 1 | # Kailh Choc Switches 2 | 3 | The following instructions are for Choc switches. You need to do all steps on both the left and right boards. You can also use the optional EC11 encoders and OLED display with Choc switches, but I choose to leave them both off for this build. 4 | 5 | When using Choc switches it looks better if you lower the acrylic cover, to do this don’t use the IC sockets (steps 13 and 22 in the main instructions) and solder the ATMega328P and MCP23017 directly to the PCB. 6 | 7 | ![alt_text](build/image3.jpg) 8 | 9 | The mechanical assembly will follow this diagram: 10 | 11 | ![alt_text](build/stackup_choc.svg) 12 | 13 | 14 | **Step 1** 15 | 16 | Place the pcb plate on the main pcb, and insert a few Choc switches. Make sure everything fits correctly. Then add the remaining switches. 17 | 18 | ![alt_text](build/image8.jpg) 19 | 20 | ![alt_text](build/image41.jpg) 21 | 22 | 23 | **Step 2** 24 | 25 | Check that the switches are all inserted correctly, then solder the switches. 26 | 27 | ![alt_text](build/image1.jpg) 28 | 29 | 30 | **Step 3** 31 | 32 | Attach the 5mm standoffs or the acrylic cover using 3mm screws. If you used IC sockets, use 8mm standoffs. 33 | 34 | ![alt_text](build/image34.jpg) 35 | 36 | 37 | **Step 4** 38 | 39 | Attach the acrylic covers using 5mm screws, and fit the keycaps. 40 | 41 | ![alt_text](build/image26.jpg) 42 | -------------------------------------------------------------------------------- /doc/build_mx.md: -------------------------------------------------------------------------------- 1 | # MX Switches with Kailh sockets 2 | 3 | The following instructions are for MX Switches with Kailh sockets. You need to do all steps on both the left and right boards. 4 | 5 | The mechanical assembly will follow this diagram: 6 | 7 | ![alt_text](build/stackup_mx.svg) 8 | 9 | 10 | **Step 1** 11 | 12 | **42-44 x Kailh Sockets** 13 | 14 | Solder the Kailh Sockets on the reverse of the board. Do not add a socket where you will be using the optional EC11 encoders (for example sw22 in the diagram below). 15 | 16 | ![alt_text](build/image5.jpg) 17 | 18 | ![alt_text](build/image23.jpg) 19 | 20 | 21 | **Step 2** 22 | 23 | **2 x EC11 encoder (optional)** 24 | 25 | You can optionally use EC11 encoders, in one of three positions marked on the board with the square. To fit the encoder you must first clip the two larger mounting pins on the sides of the encoder (adding the fixing holes on the pcb would have interfered with the key switch positions). 26 | 27 | Solder one of the encoder legs and then check that the encoder is mounted squarely. Solder the remaining encoder legs to the pcb. 28 | 29 | ![alt_text](build/image46.jpg) 30 | 31 | ![alt_text](build/image39.jpg) 32 | 33 | Apply a small piece of electrical tape to the encoder, this will prevent the encoder legs shorting on the pcb plate. 34 | 35 | ![alt_text](build/image17.jpg) 36 | 37 | 38 | **Step 3** 39 | 40 | The metal plating on some of the holes in the pcb plate is not perfect, so check the fit of the switches before the next step. I have found that occasionally Gazzew Boba U4 switches would stick in some of the thumb positions, and this might happen with other types of switches too. If you find a switch is sticking, use a small metal file to smooth the inside edges of the plate. 41 | 42 | ![alt_text](build/image33.jpg) 43 | 44 | 45 | **Step 4** 46 | 47 | Attach the 3+3mm standoffs with 3mm screws in the mounting holes of the pcb plate, and then put the plate on the main pcb. 48 | 49 | ![alt_text](build/image42.jpg) 50 | 51 | ![alt_text](build/image36.jpg) 52 | 53 | 54 | **Step 5** 55 | 56 | Insert the switches through the pcb plate into the Kailh sockets. Keep the main pcb on a flat surface while installing the switches so that the sockets are supported. 57 | 58 | ![alt_text](build/image31.jpg) 59 | 60 | 61 | **Step 6** 62 | 63 | Secure the plate using 3mm standoffs. 64 | 65 | ![alt_text](build/image12.jpg) 66 | 67 | 68 | **Step 7** 69 | 70 | Attach the 8mm and 3+3mm standoffs for the acrylic cover. 71 | 72 | ![alt_text](build/image40.jpg) 73 | 74 | 75 | **Step 8** 76 | 77 | Use 3mm screws to attach the base. Attach the feet where shown. 78 | 79 | ![alt_text](build/image43.jpg) 80 | 81 | 82 | **Step 9** 83 | 84 | Attach the acrylic covers using 5mm screws. 85 | 86 | ![alt_text](build/image24.jpg) 87 | 88 | 89 | **Step 10** 90 | 91 | Finally add the keycaps and knobs. You're finished! 92 | 93 | ![alt_text](build/image6.jpg) 94 | -------------------------------------------------------------------------------- /doc/img/20210213_123553.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/20210213_123553.jpeg -------------------------------------------------------------------------------- /doc/img/discord1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/discord1.jpg -------------------------------------------------------------------------------- /doc/img/img1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/img1.jpg -------------------------------------------------------------------------------- /doc/img/img2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/img2.jpg -------------------------------------------------------------------------------- /doc/img/img3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/img3.jpg -------------------------------------------------------------------------------- /doc/img/img4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/img4.jpg -------------------------------------------------------------------------------- /doc/img/img5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/img5.jpg -------------------------------------------------------------------------------- /doc/img/torn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/img/torn.jpg -------------------------------------------------------------------------------- /doc/release/torn_base-schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/release/torn_base-schematic.pdf -------------------------------------------------------------------------------- /doc/release/torn_left-schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/release/torn_left-schematic.pdf -------------------------------------------------------------------------------- /doc/release/torn_plate-schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/release/torn_plate-schematic.pdf -------------------------------------------------------------------------------- /doc/release/torn_right-schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rtitmuss/torn/792336b2ae7b4a04c52391f7fc98bb688039218f/doc/release/torn_right-schematic.pdf -------------------------------------------------------------------------------- /doc/troubleshoot.md: -------------------------------------------------------------------------------- 1 | # Troubleshooting 2 | 3 | If your Torn keyboard does not work you can look for answers here. 4 | You can also ask questions and get help on the [Torn Discord channel](https://discord.gg/mamAqNccju). 5 | 6 | ## Primary (left) side 7 | 8 | The primary side of the keyboard is on the left. This side include the ATmega328P CPU. The pinout is shown below: 9 | 10 | ![alt_text](build/atmega238p.png) 11 | 12 | You can use the primary side of the keyboard on it's own, so unplug the TRRS cable to test. 13 | 14 | If the keyboard does not work you should visually check the soldering and look for any shorts between the pins. 15 | Pay special attention to the USB C connector and the 4.7uF Capacitor (C3). 16 | 17 | Make sure the you have inserted the ATmega328P on the right side, and that the notch is pointing up. 18 | 19 | #### Flashing ATmega328P 20 | 21 | If you have trouble flashing the ATmega328P you can check that that programmer is connected correctly. 22 | The ISP header has the following pinout: 23 | 24 | ![alt_text](build/isp.png) 25 | 26 | You can use a multimeter to check the continuity between the ISP header and the ATmega328P. If necessary re-solder the connection. 27 | 28 | - pin 1 (MISO) on the isp header should connect to pin 18 on ATmega328P 29 | - pin 2 (Vcc) on the isp header should connect to pins 20 and 7 on ATmega328P 30 | - pin 3 (SCK) on the isp header should connect to pin 19 on ATmega328P 31 | - pin 4 (MOSI) on the isp header should connect to pin 17 on ATmega328P 32 | - pin 5 (Reset) on the isp header should connect to pin 1 on ATmega328P 33 | - pin 6 (Gnd) on the isp header should connect to pins 22 and 8 on ATmega328P 34 | 35 | When the programmer is connected check you have 5v between pin 20 and pin 22 on the ATmega328P. 36 | 37 | If you are still having problems you can also carefully remove the ATmega328P and try to [program it directly](https://www.hackster.io/techmirtz/arduino-without-external-clock-crystal-on-atmega328-d4fcc4). 38 | If this fails you may need to replace the ATmega328P. 39 | 40 | ## Secondary (right) side 41 | 42 | The secondary side of the keyboard is on the right. This side includes the MCP23017 I/O expander. The pinout is shown below: 43 | 44 | ![alt_text](build/mcp23017.png) 45 | 46 | You have to connect the two halfs of the keyboard together with a TRRS cable. 47 | Make sure you unplug the USB C before disconnecting the TRRS cable - otherwise the connector might short and destroy the chips. 48 | 49 | #### I2C 50 | 51 | The primary and secondary side communicate over I2C, a serial bus protocol. I2C is used for both the I/O expander and the OLED display. 52 | If nothing works on the secondary side there is a prbolem with the I2C bus. 53 | 54 | Check you are using a TRRS cable with four contacts on the plug. The cable supplies Vcc, Gnd, I2C_SCL and I2C_SDA. Note the keyboard will _not_ work with a TRS cable that has only three contacts. 55 | 56 | You should also check that the I2C pull-up resistors R7 and R8 are soldered correctly. 57 | 58 | With the TRRS cable connected you can check for connectivity between the two halves. If necessary re-solder the connection. 59 | 60 | - pin 7 (Vcc) on ATmega328P should connect to pin 9 and 18 on MCP23017 61 | - pin 8 (Gnd) on ATmega328P should connect to pin 10, 15, 16 and 17 on MCP23017 62 | - pin 28 (I2C_SCL) on ATmega328P should connect to pin 12 on MCP23017 63 | - pin 27 (I2C_SDA) on ATmega328P should connect to pin 13 on MCP23017 64 | 65 | #### OLED display 66 | 67 | The default QMK firmware enables the OLED display. If not does not work you can check for connectivity between the OLED display and MCP23017. If necessary re-solder the connection. 68 | 69 | - pin 9 (Vcc) on the MCP23017 should connect to VCC on the OLED display 70 | - pin 10 (Gnd) on the MCP23017 should connect to GND on the OLED display 71 | - pin 12 (I2C_SCL) on the MCP23017 should connect to SCK/SCL on the OLED display 72 | - pin 13 (I2C_SDA) on the MCP23017 should connect to SDA on the OLED display 73 | 74 | When the keyboard is powered check you have 5v between VCC and GND on the OLED display. 75 | 76 | You can also visually check the display for damage, especially the surface mounted components under the display. 77 | 78 | If the connectivity is good you may need to replace the OLED display. 79 | -------------------------------------------------------------------------------- /footprints.pretty/AVR_ICSP_3x2.kicad_mod: -------------------------------------------------------------------------------- 1 | (module AVR_ICSP_3x2 (layer F.Cu) (tedit 5F2EB5CD) 2 | (descr "Double rangee de contacts 2 x 4 pins") 3 | (tags CONN) 4 | (fp_text reference J2 (at 4.195 3.596 -180) (layer F.SilkS) hide 5 | (effects (font (size 1.016 1.016) (thickness 0.2032))) 6 | ) 7 | (fp_text value AVR_ISP_6 (at 0.120486 0 -180) (layer F.SilkS) hide 8 | (effects (font (size 1.016 1.016) (thickness 0.2032))) 9 | ) 10 | (fp_line (start -3.81 2.54) (end -3.81 -2.54) (layer F.SilkS) (width 0.2032)) 11 | (fp_line (start 3.81 -2.54) (end 3.81 2.54) (layer F.SilkS) (width 0.2032)) 12 | (fp_line (start -3.81 -2.54) (end 3.81 -2.54) (layer F.SilkS) (width 0.2032)) 13 | (fp_line (start 3.81 2.54) (end -3.81 2.54) (layer F.SilkS) (width 0.2032)) 14 | (fp_line (start 1.3 3.35) (end 1.3 2.55) (layer F.SilkS) (width 0.2)) 15 | (fp_line (start -1.25 3.35) (end 1.3 3.35) (layer F.SilkS) (width 0.2)) 16 | (fp_line (start -1.25 2.55) (end -1.25 3.35) (layer F.SilkS) (width 0.2)) 17 | (fp_text user 1 (at -5.08 1.27) (layer F.SilkS) 18 | (effects (font (size 1 1) (thickness 0.15))) 19 | ) 20 | (pad 1 thru_hole rect (at -2.54 1.27) (size 1.7 1.7) (drill 1.016) (layers *.Cu *.Mask)) 21 | (pad 2 thru_hole circle (at -2.54 -1.27) (size 1.7 1.7) (drill 1.016) (layers *.Cu *.Mask)) 22 | (pad 3 thru_hole circle (at 0 1.27) (size 1.7 1.7) (drill 1.016) (layers *.Cu *.Mask)) 23 | (pad 4 thru_hole circle (at 0 -1.27) (size 1.7 1.7) (drill 1.016) (layers *.Cu *.Mask)) 24 | (pad 5 thru_hole circle (at 2.54 1.27) (size 1.7 1.7) (drill 1.016) (layers *.Cu *.Mask)) 25 | (pad 6 thru_hole circle (at 2.54 -1.27) (size 1.7 1.7) (drill 1.016) (layers *.Cu *.Mask)) 26 | (model pin_array/pins_array_3x2.wrl 27 | (at (xyz 0 0 0)) 28 | (scale (xyz 1 1 1)) 29 | (rotate (xyz 0 0 0)) 30 | ) 31 | (model ${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x03_P2.54mm_Vertical.step 32 | (offset (xyz 2.5 1.25 0)) 33 | (scale (xyz 1 1 1)) 34 | (rotate (xyz 0 0 90)) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /footprints.pretty/CP_Radial_D4.0mm_P1.50mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module CP_Radial_D4.0mm_P1.50mm (layer F.Cu) (tedit 5F2EDA20) 2 | (descr "CP, Radial series, Radial, pin pitch=1.50mm, , diameter=4mm, Electrolytic Capacitor") 3 | (tags "CP Radial series Radial pin pitch 1.50mm diameter 4mm Electrolytic Capacitor") 4 | (fp_text reference C3 (at 0.762 8.128 -180) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value 4.7u (at 0.75 5.207 -180) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 3.302 13.589) (end -1.651 13.589) (layer F.Fab) (width 0.12)) 11 | (fp_line (start 3.302 -1.27) (end 3.302 13.589) (layer F.Fab) (width 0.12)) 12 | (fp_line (start -1.651 -1.27) (end 3.302 -1.27) (layer F.Fab) (width 0.12)) 13 | (fp_line (start -1.651 13.589) (end -1.651 -1.27) (layer F.Fab) (width 0.12)) 14 | (fp_line (start -1.905 13.97) (end -1.905 -1.524) (layer F.CrtYd) (width 0.12)) 15 | (fp_line (start 3.556 13.97) (end -1.905 13.97) (layer F.CrtYd) (width 0.12)) 16 | (fp_line (start 3.556 -1.524) (end 3.556 13.97) (layer F.CrtYd) (width 0.12)) 17 | (fp_line (start -1.905 -1.524) (end 3.556 -1.524) (layer F.CrtYd) (width 0.12)) 18 | (fp_line (start 3.302 13.589) (end -1.651 13.589) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start 3.302 2.667) (end 3.302 13.589) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start -1.651 2.667) (end 3.302 2.667) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start -1.651 2.667) (end -1.651 13.589) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start -0.952554 0.1485) (end -0.552554 0.1485) (layer F.Fab) (width 0.1)) 23 | (fp_line (start -0.752554 -0.0515) (end -0.752554 0.3485) (layer F.Fab) (width 0.1)) 24 | (fp_line (start -1.519801 -0.179) (end -1.119801 -0.179) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start -1.319801 -0.379) (end -1.319801 0.021) (layer F.SilkS) (width 0.12)) 26 | (fp_text user %R (at 0.75 0 -180) (layer F.Fab) 27 | (effects (font (size 0.8 0.8) (thickness 0.12))) 28 | ) 29 | (pad 1 thru_hole rect (at 0 0) (size 1.2 1.2) (drill 0.6) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole circle (at 1.5 0) (size 1.2 1.2) (drill 0.6) (layers *.Cu *.Mask)) 31 | (model ${KISYS3DMOD}/Capacitor_THT.3dshapes/CP_Radial_D4.0mm_P1.50mm.wrl 32 | (at (xyz 0 0 0)) 33 | (scale (xyz 1 1 1)) 34 | (rotate (xyz 0 0 0)) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /footprints.pretty/CUI_SJ-43514.kicad_mod: -------------------------------------------------------------------------------- 1 | (module SJ-43514:CUI_SJ-43514 locked (layer F.Cu) (tedit 5F0C0413) 2 | (fp_text reference J1 (at -2.979703 -6.81327 -180) (layer F.SilkS) 3 | (effects (font (size 0.480598 0.480598) (thickness 0.015))) 4 | ) 5 | (fp_text value SJ-43514 (at -1.094318 6.206094 -180) (layer F.Fab) 6 | (effects (font (size 0.480844 0.480844) (thickness 0.015))) 7 | ) 8 | (fp_text user PCB~EDGE (at -5.75332 8.5049 -180) (layer F.Fab) 9 | (effects (font (size 0.480277 0.480277) (thickness 0.015))) 10 | ) 11 | (fp_circle (center -4 -5.5) (end -3.8 -5.5) (layer F.SilkS) (width 0.4)) 12 | (fp_line (start -8.75 3.25) (end -8.75 -3.25) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start -5.75 3.25) (end -8.75 3.25) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start -5.75 4.5) (end -5.75 3.25) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start -3.75 4.5) (end -5.75 4.5) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start -3.75 5.55) (end -3.75 4.5) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start -1.5 5.55) (end -3.75 5.55) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start -1.5 4.75) (end -1.5 5.55) (layer F.CrtYd) (width 0.05)) 19 | (fp_line (start 5.75 4.75) (end -1.5 4.75) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start 5.75 -0.5) (end 5.75 4.75) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start 6.5 -0.5) (end 5.75 -0.5) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start 6.5 -2.5) (end 6.5 -0.5) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 5.75 -2.5) (end 6.5 -2.5) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start 5.75 -5) (end 5.75 -2.5) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start -1.5 -5) (end 5.75 -5) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start -1.5 -5.85) (end -1.5 -5) (layer F.CrtYd) (width 0.05)) 27 | (fp_line (start -3.65 -5.85) (end -1.5 -5.85) (layer F.CrtYd) (width 0.05)) 28 | (fp_line (start -3.65 -5) (end -3.65 -5.85) (layer F.CrtYd) (width 0.05)) 29 | (fp_line (start -5.75 -5) (end -3.65 -5) (layer F.CrtYd) (width 0.05)) 30 | (fp_line (start -5.75 -3.25) (end -5.75 -5) (layer F.CrtYd) (width 0.05)) 31 | (fp_line (start -8.75 -3.25) (end -5.75 -3.25) (layer F.CrtYd) (width 0.05)) 32 | (fp_line (start -5.5 2.25) (end -5.5 8.85) (layer Edge.Cuts) (width 0.0001)) 33 | (fp_line (start -4.2 2.25) (end -5.5 2.25) (layer Edge.Cuts) (width 0.0001)) 34 | (fp_line (start -4.2 -2.25) (end -4.2 2.25) (layer Edge.Cuts) (width 0.0001)) 35 | (fp_line (start -5.5 -2.25) (end -4.2 -2.25) (layer Edge.Cuts) (width 0.0001)) 36 | (fp_line (start -5.5 -8.35) (end -5.5 -2.25) (layer Edge.Cuts) (width 0.0001)) 37 | (fp_line (start 1.5 4.3) (end -1.55 4.3) (layer F.SilkS) (width 0.127)) 38 | (fp_line (start 5.5 4.3) (end 3.4 4.3) (layer F.SilkS) (width 0.127)) 39 | (fp_line (start 5.5 -0.35) (end 5.5 4.3) (layer F.SilkS) (width 0.127)) 40 | (fp_line (start 5.5 -4.7) (end 5.5 -2.7) (layer F.SilkS) (width 0.127)) 41 | (fp_line (start -1.4 -4.7) (end 5.5 -4.7) (layer F.SilkS) (width 0.127)) 42 | (fp_line (start -8.5 -3) (end -5.5 -3) (layer F.SilkS) (width 0.127)) 43 | (fp_line (start -8.5 3) (end -8.5 -3) (layer F.SilkS) (width 0.127)) 44 | (fp_line (start -5.5 3) (end -8.5 3) (layer F.SilkS) (width 0.127)) 45 | (fp_line (start -5.5 4.3) (end -3.75 4.3) (layer F.SilkS) (width 0.127)) 46 | (fp_line (start -5.5 3) (end -5.5 4.3) (layer F.SilkS) (width 0.127)) 47 | (fp_line (start -5.5 2.25) (end -5.5 3) (layer F.SilkS) (width 0.127)) 48 | (fp_line (start -4.2 2.25) (end -5.5 2.25) (layer F.SilkS) (width 0.127)) 49 | (fp_line (start -4.2 -2.25) (end -4.2 2.25) (layer F.SilkS) (width 0.127)) 50 | (fp_line (start -5.5 -2.25) (end -4.2 -2.25) (layer F.SilkS) (width 0.127)) 51 | (fp_line (start -5.5 -3) (end -5.5 -2.25) (layer F.SilkS) (width 0.127)) 52 | (fp_line (start -5.5 -4.7) (end -5.5 -3) (layer F.SilkS) (width 0.127)) 53 | (fp_line (start -3.8 -4.7) (end -5.5 -4.7) (layer F.SilkS) (width 0.127)) 54 | (fp_line (start -8.5 3) (end -5.5 3) (layer F.Fab) (width 0.127)) 55 | (fp_line (start -8.5 -3) (end -8.5 3) (layer F.Fab) (width 0.127)) 56 | (fp_line (start -5.5 -3) (end -8.5 -3) (layer F.Fab) (width 0.127)) 57 | (fp_line (start -5.5 4.3) (end 5.5 4.3) (layer F.Fab) (width 0.127)) 58 | (fp_line (start -5.5 3) (end -5.5 4.3) (layer F.Fab) (width 0.127)) 59 | (fp_line (start -5.5 2.25) (end -5.5 3) (layer F.Fab) (width 0.127)) 60 | (fp_line (start -4.2 2.25) (end -5.5 2.25) (layer F.Fab) (width 0.127)) 61 | (fp_line (start -4.2 -2.25) (end -4.2 2.25) (layer F.Fab) (width 0.127)) 62 | (fp_line (start -5.5 -2.25) (end -4.2 -2.25) (layer F.Fab) (width 0.127)) 63 | (fp_line (start -5.5 -3) (end -5.5 -2.25) (layer F.Fab) (width 0.127)) 64 | (fp_line (start -5.5 -4.7) (end -5.5 -3) (layer F.Fab) (width 0.127)) 65 | (fp_line (start 5.5 -4.7) (end 5.5 4.3) (layer F.Fab) (width 0.127)) 66 | (fp_line (start -5.5 -4.7) (end 5.5 -4.7) (layer F.Fab) (width 0.127)) 67 | (pad None np_thru_hole circle (at 2.4 0) (size 1.1 1.1) (drill 1.1) (layers *.Cu *.Mask)) 68 | (pad None np_thru_hole circle (at -2.6 0) (size 1.1 1.1) (drill 1.1) (layers *.Cu *.Mask)) 69 | (pad 4 thru_hole circle (at -2.6 4.5) (size 1.65 1.65) (drill 1.1) (layers *.Cu *.Mask)) 70 | (pad 3 thru_hole circle (at 5.5 -1.6) (size 1.65 1.65) (drill 1.1) (layers *.Cu *.Mask)) 71 | (pad 2 thru_hole circle (at 2.4 3.6) (size 1.65 1.65) (drill 1.1) (layers *.Cu *.Mask)) 72 | (pad 1 thru_hole rect (at -2.6 -4.8) (size 1.65 1.65) (drill 1.1) (layers *.Cu *.Mask)) 73 | ) 74 | -------------------------------------------------------------------------------- /footprints.pretty/C_Disc_D3.0mm_W1.6mm_P2.50mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module C_Disc_D3.0mm_W1.6mm_P2.50mm (layer F.Cu) (tedit 5F2EC01A) 2 | (descr "C, Disc series, Radial, pin pitch=2.50mm, , diameter*width=3.0*1.6mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf") 3 | (tags "C Disc series Radial pin pitch 2.50mm diameter 3.0mm width 1.6mm Capacitor") 4 | (fp_text reference REF** (at -1.778 0 270) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value VAL** (at 1.397 1.651 180) (layer F.Fab) 8 | (effects (font (size 0.8 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 3.55 -1.05) (end -1.05 -1.05) (layer F.CrtYd) (width 0.05)) 11 | (fp_line (start 3.55 1.05) (end 3.55 -1.05) (layer F.CrtYd) (width 0.05)) 12 | (fp_line (start -1.05 1.05) (end 3.55 1.05) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start -1.05 -1.05) (end -1.05 1.05) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start 0.621 0.92) (end 1.879 0.92) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start 0.621 -0.92) (end 1.879 -0.92) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 2.75 -0.8) (end -0.25 -0.8) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 2.75 0.8) (end 2.75 -0.8) (layer F.Fab) (width 0.1)) 18 | (fp_line (start -0.25 0.8) (end 2.75 0.8) (layer F.Fab) (width 0.1)) 19 | (fp_line (start -0.25 -0.8) (end -0.25 0.8) (layer F.Fab) (width 0.1)) 20 | (fp_text user %R (at 1.25 0) (layer F.Fab) 21 | (effects (font (size 0.6 0.6) (thickness 0.09))) 22 | ) 23 | (pad 2 thru_hole circle (at 2.5 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 24 | (pad 1 thru_hole circle (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 25 | (model ${KISYS3DMOD}/Capacitor_THT.3dshapes/C_Disc_D3.0mm_W1.6mm_P2.50mm.wrl 26 | (at (xyz 0 0 0)) 27 | (scale (xyz 1 1 1)) 28 | (rotate (xyz 0 0 0)) 29 | ) 30 | ) 31 | -------------------------------------------------------------------------------- /footprints.pretty/C_Disc_D4.3mm_W1.9mm_P5.00mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module C_Disc_D4.3mm_W1.9mm_P5.00mm (layer F.Cu) (tedit 5F2EBFE5) 2 | (descr "C, Disc series, Radial, pin pitch=5.00mm, , diameter*width=4.3*1.9mm^2, Capacitor, http://www.vishay.com/docs/45233/krseries.pdf") 3 | (tags "C Disc series Radial pin pitch 5.00mm diameter 4.3mm width 1.9mm Capacitor") 4 | (fp_text reference C5 (at 2.54 -1.905) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value 100n (at 2.54 0) (layer F.SilkS) 8 | (effects (font (size 0.8 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 6.05 -1.2) (end -1.05 -1.2) (layer F.CrtYd) (width 0.05)) 11 | (fp_line (start 6.05 1.2) (end 6.05 -1.2) (layer F.CrtYd) (width 0.05)) 12 | (fp_line (start -1.05 1.2) (end 6.05 1.2) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start -1.05 -1.2) (end -1.05 1.2) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start 4.77 1.055) (end 4.77 1.07) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start 4.77 -1.07) (end 4.77 -1.055) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 0.23 1.055) (end 0.23 1.07) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start 0.23 -1.07) (end 0.23 -1.055) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start 0.23 1.07) (end 4.77 1.07) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start 0.23 -1.07) (end 4.77 -1.07) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start 4.65 -0.95) (end 0.35 -0.95) (layer F.Fab) (width 0.1)) 21 | (fp_line (start 4.65 0.95) (end 4.65 -0.95) (layer F.Fab) (width 0.1)) 22 | (fp_line (start 0.35 0.95) (end 4.65 0.95) (layer F.Fab) (width 0.1)) 23 | (fp_line (start 0.35 -0.95) (end 0.35 0.95) (layer F.Fab) (width 0.1)) 24 | (fp_text user %R (at 2.5 0) (layer F.Fab) 25 | (effects (font (size 0.86 0.86) (thickness 0.129))) 26 | ) 27 | (pad 1 thru_hole circle (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 28 | (pad 2 thru_hole circle (at 5 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 29 | (model ${KISYS3DMOD}/Capacitor_THT.3dshapes/C_Disc_D4.3mm_W1.9mm_P5.00mm.wrl 30 | (at (xyz 0 0 0)) 31 | (scale (xyz 1 1 1)) 32 | (rotate (xyz 0 0 0)) 33 | ) 34 | ) 35 | -------------------------------------------------------------------------------- /footprints.pretty/Crystal_HC49-4H_Vertical.kicad_mod: -------------------------------------------------------------------------------- 1 | (module cftkb:Crystal_HC49-4H_Vertical (layer F.Cu) (tedit 5A1AD3B7) 2 | (descr "Crystal THT HC-49-4H http://5hertz.com/pdfs/04404_D.pdf") 3 | (tags "THT crystalHC-49-4H") 4 | (fp_text reference Y1 (at 2.44 0.018936 -180) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value 16MHz (at 2.44 3.525 -180) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 2.44 0 -180) (layer F.Fab) 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_arc (start -0.76 0) (end -0.76 -2.325) (angle -180) (layer F.Fab) (width 0.1)) 14 | (fp_arc (start 5.64 0) (end 5.64 -2.325) (angle 180) (layer F.Fab) (width 0.1)) 15 | (fp_arc (start -0.56 0) (end -0.56 -2) (angle -180) (layer F.Fab) (width 0.1)) 16 | (fp_arc (start 5.44 0) (end 5.44 -2) (angle 180) (layer F.Fab) (width 0.1)) 17 | (fp_arc (start -0.76 0) (end -0.76 -2.525) (angle -180) (layer F.SilkS) (width 0.12)) 18 | (fp_arc (start 5.64 0) (end 5.64 -2.525) (angle 180) (layer F.SilkS) (width 0.12)) 19 | (fp_line (start -0.76 -2.325) (end 5.64 -2.325) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -0.76 2.325) (end 5.64 2.325) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -0.56 -2) (end 5.44 -2) (layer F.Fab) (width 0.1)) 22 | (fp_line (start -0.56 2) (end 5.44 2) (layer F.Fab) (width 0.1)) 23 | (fp_line (start -0.76 -2.525) (end 5.64 -2.525) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -0.76 2.525) (end 5.64 2.525) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start -3.6 -2.8) (end -3.6 2.8) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start -3.6 2.8) (end 8.5 2.8) (layer F.CrtYd) (width 0.05)) 27 | (fp_line (start 8.5 2.8) (end 8.5 -2.8) (layer F.CrtYd) (width 0.05)) 28 | (fp_line (start 8.5 -2.8) (end -3.6 -2.8) (layer F.CrtYd) (width 0.05)) 29 | (pad 1 thru_hole circle (at 0 0) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole circle (at 4.88 0) (size 1.5 1.5) (drill 0.8) (layers *.Cu *.Mask)) 31 | (model ${KISYS3DMOD}/Crystal.3dshapes/Crystal_HC49-4H_Vertical.wrl 32 | (at (xyz 0 0 0)) 33 | (scale (xyz 1 1 1)) 34 | (rotate (xyz 0 0 0)) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /footprints.pretty/DIP-28_W7.62mm_Socket.kicad_mod: -------------------------------------------------------------------------------- 1 | (module DIP-28_W7.62mm_Socket locked (layer F.Cu) (tedit 5F2EC1A8) 2 | (descr "28-lead though-hole mounted DIP package, row spacing 7.62 mm (300 mils), Socket") 3 | (tags "THT DIP DIL PDIP 2.54mm 7.62mm 300mil Socket") 4 | (fp_text reference U1 (at 3.81 6.604) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value ATMEGA328-PU (at 3.81 16.637 90) (layer F.SilkS) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 1.635 -1.27) (end 6.985 -1.27) (layer F.Fab) (width 0.1)) 11 | (fp_line (start 6.985 -1.27) (end 6.985 34.29) (layer F.Fab) (width 0.1)) 12 | (fp_line (start 6.985 34.29) (end 0.635 34.29) (layer F.Fab) (width 0.1)) 13 | (fp_line (start 0.635 34.29) (end 0.635 -0.27) (layer F.Fab) (width 0.1)) 14 | (fp_line (start 0.635 -0.27) (end 1.635 -1.27) (layer F.Fab) (width 0.1)) 15 | (fp_line (start -1.27 -1.33) (end -1.27 34.35) (layer F.Fab) (width 0.1)) 16 | (fp_line (start -1.27 34.35) (end 8.89 34.35) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 8.89 34.35) (end 8.89 -1.33) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 8.89 -1.33) (end -1.27 -1.33) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 2.81 -1.33) (end 1.16 -1.33) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start 1.16 -1.33) (end 1.16 34.35) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 1.16 34.35) (end 6.46 34.35) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 6.46 34.35) (end 6.46 -1.33) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start 6.46 -1.33) (end 4.81 -1.33) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -1.33 -1.39) (end -1.33 34.41) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start -1.33 34.41) (end 8.95 34.41) (layer F.SilkS) (width 0.12)) 26 | (fp_line (start 8.95 34.41) (end 8.95 -1.39) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 8.95 -1.39) (end -1.33 -1.39) (layer F.SilkS) (width 0.12)) 28 | (fp_line (start -1.55 -1.6) (end -1.55 34.65) (layer F.CrtYd) (width 0.05)) 29 | (fp_line (start -1.55 34.65) (end 9.15 34.65) (layer F.CrtYd) (width 0.05)) 30 | (fp_line (start 9.15 34.65) (end 9.15 -1.6) (layer F.CrtYd) (width 0.05)) 31 | (fp_line (start 9.15 -1.6) (end -1.55 -1.6) (layer F.CrtYd) (width 0.05)) 32 | (fp_text user %R (at 3.81 16.51) (layer F.Fab) 33 | (effects (font (size 1 1) (thickness 0.15))) 34 | ) 35 | (fp_arc (start 3.81 -1.33) (end 2.81 -1.33) (angle -180) (layer F.SilkS) (width 0.12)) 36 | (pad 28 thru_hole oval (at 7.62 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 37 | (pad 14 thru_hole oval (at 0 33.02) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 38 | (pad 27 thru_hole oval (at 7.62 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 39 | (pad 13 thru_hole oval (at 0 30.48) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 40 | (pad 26 thru_hole oval (at 7.62 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 41 | (pad 12 thru_hole oval (at 0 27.94) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 42 | (pad 25 thru_hole oval (at 7.62 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 43 | (pad 11 thru_hole oval (at 0 25.4) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 44 | (pad 24 thru_hole oval (at 7.62 10.16) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 45 | (pad 10 thru_hole oval (at 0 22.86) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 46 | (pad 23 thru_hole oval (at 7.62 12.7) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 47 | (pad 9 thru_hole oval (at 0 20.32) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 48 | (pad 22 thru_hole oval (at 7.62 15.24) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 49 | (pad 8 thru_hole oval (at 0 17.78) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 50 | (pad 21 thru_hole oval (at 7.62 17.78) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 51 | (pad 7 thru_hole oval (at 0 15.24) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 52 | (pad 20 thru_hole oval (at 7.62 20.32) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 53 | (pad 6 thru_hole oval (at 0 12.7) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 54 | (pad 19 thru_hole oval (at 7.62 22.86) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 55 | (pad 5 thru_hole oval (at 0 10.16) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 56 | (pad 18 thru_hole oval (at 7.62 25.4) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 57 | (pad 4 thru_hole oval (at 0 7.62) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 58 | (pad 17 thru_hole oval (at 7.62 27.94) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 59 | (pad 3 thru_hole oval (at 0 5.08) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 60 | (pad 16 thru_hole oval (at 7.62 30.48) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 61 | (pad 2 thru_hole oval (at 0 2.54) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 62 | (pad 15 thru_hole oval (at 7.62 33.02) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 63 | (pad 1 thru_hole rect (at 0 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 64 | (model ${KISYS3DMOD}/Package_DIP.3dshapes/DIP-28_W7.62mm_Socket.wrl 65 | (at (xyz 0 0 0)) 66 | (scale (xyz 1 1 1)) 67 | (rotate (xyz 0 0 0)) 68 | ) 69 | ) 70 | -------------------------------------------------------------------------------- /footprints.pretty/D_DO-35_SOD27_P5.08mm_Horizontal.kicad_mod: -------------------------------------------------------------------------------- 1 | (module cftkb:D_DO-35_SOD27_P5.08mm_Horizontal (layer F.Cu) (tedit 5F00421F) 2 | (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") 3 | (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") 4 | (fp_text reference D41 (at 3.81 2.032 -180) (layer F.SilkS) 5 | (effects (font (size 0.8 0.8) (thickness 0.15))) 6 | ) 7 | (fp_text value 3.6V (at 3.81 2.12 -180) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user K (at 0 -1.8 -180) (layer Cmts.User) 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_text user K (at 0 -1.8 -180) (layer F.Fab) 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | ) 16 | (fp_text user %R (at 4.11 0 -180) (layer F.Fab) 17 | (effects (font (size 0.8 0.8) (thickness 0.12))) 18 | ) 19 | (fp_line (start 2.34 1) (end 5.31 1) (layer F.SilkS) (width 0.12)) 20 | (fp_line (start 2.33 -1) (end 5.32 -0.99) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start 5.32 1) (end 5.32 -0.99) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 7.4 -1.25) (end 0.22 -1.25) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start 7.4 1.25) (end 7.4 -1.25) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start 0.22 1.25) (end 7.4 1.25) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start 0.22 -1.25) (end 0.22 1.25) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 5.53 -0.01) (end 4.41 -0.01) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 2.07 -0.01) (end 3.35 -0.01) (layer F.SilkS) (width 0.12)) 28 | (fp_line (start 2.33 1) (end 2.33 -1) (layer F.SilkS) (width 0.12)) 29 | (fp_line (start 2.31 -1) (end 2.31 1) (layer F.Fab) (width 0.1)) 30 | (fp_line (start 2.51 -1) (end 2.51 1) (layer F.Fab) (width 0.1)) 31 | (fp_line (start 2.41 -1) (end 2.41 1) (layer F.Fab) (width 0.1)) 32 | (fp_line (start 7.37 0) (end 5.81 0) (layer F.Fab) (width 0.1)) 33 | (fp_line (start 0.25 0) (end 1.81 0) (layer F.Fab) (width 0.1)) 34 | (fp_line (start 5.81 -1) (end 1.81 -1) (layer F.Fab) (width 0.1)) 35 | (fp_line (start 5.81 1) (end 5.81 -1) (layer F.Fab) (width 0.1)) 36 | (fp_line (start 1.81 1) (end 5.81 1) (layer F.Fab) (width 0.1)) 37 | (fp_line (start 1.81 -1) (end 1.81 1) (layer F.Fab) (width 0.1)) 38 | (fp_line (start 3.46 -0.01) (end 4.41 -0.55) (layer F.SilkS) (width 0.12)) 39 | (fp_line (start 3.47 0) (end 4.38 0.53) (layer F.SilkS) (width 0.12)) 40 | (fp_line (start 4.41 0.53) (end 4.41 -0.55) (layer F.SilkS) (width 0.12)) 41 | (fp_line (start 3.36 0.53) (end 3.36 -0.55) (layer F.SilkS) (width 0.12)) 42 | (pad 2 thru_hole oval (at 6.35 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 43 | (pad 1 thru_hole rect (at 1.27 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)) 44 | (model ${KISYS3DMOD}/Diode_THT.3dshapes/D_DO-35_SOD27_P5.08mm_Horizontal.step 45 | (offset (xyz 1.3 0 0)) 46 | (scale (xyz 1 1 1)) 47 | (rotate (xyz 0 0 0)) 48 | ) 49 | ) 50 | -------------------------------------------------------------------------------- /footprints.pretty/Kailh_socket_MX_PG1350_EC11_optional.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Kailh_socket_MX_PG1350_EC11_optional locked (layer F.Cu) (tedit 5F6C4EBE) 2 | (descr "MX-style keyswitch with support for optional Kailh socket") 3 | (tags MX,cherry,gateron,kailh,pg1511,socket) 4 | (fp_text reference ENC1 (at -3.4417 -4.8133 180) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value Val** (at 0 0) (layer F.SilkS) hide 8 | (effects (font (size 1.27 1.27) (thickness 0.15))) 9 | ) 10 | (fp_line (start -7 -6) (end -7 -7) (layer F.SilkS) (width 0.15)) 11 | (fp_line (start -7 7) (end -6 7) (layer F.SilkS) (width 0.15)) 12 | (fp_line (start -6 -7) (end -7 -7) (layer F.SilkS) (width 0.15)) 13 | (fp_line (start -7 7) (end -7 6) (layer F.SilkS) (width 0.15)) 14 | (fp_line (start 7 6) (end 7 7) (layer F.SilkS) (width 0.15)) 15 | (fp_line (start 7 -7) (end 6 -7) (layer F.SilkS) (width 0.15)) 16 | (fp_line (start 6 7) (end 7 7) (layer F.SilkS) (width 0.15)) 17 | (fp_line (start 7 -7) (end 7 -6) (layer F.SilkS) (width 0.15)) 18 | (fp_line (start -6.9 6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 19 | (fp_line (start 6.9 -6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 20 | (fp_line (start 6.9 -6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 21 | (fp_line (start -6.9 6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 22 | (fp_line (start -7.5 -7.5) (end 7.5 -7.5) (layer F.Fab) (width 0.15)) 23 | (fp_line (start 7.5 -7.5) (end 7.5 7.5) (layer F.Fab) (width 0.15)) 24 | (fp_line (start 7.5 7.5) (end -7.5 7.5) (layer F.Fab) (width 0.15)) 25 | (fp_line (start -7.5 7.5) (end -7.5 -7.5) (layer F.Fab) (width 0.15)) 26 | (fp_line (start 6.35 4.445) (end 6.35 4.064) (layer B.SilkS) (width 0.15)) 27 | (fp_line (start 6.35 1.016) (end 6.35 0.635) (layer B.SilkS) (width 0.15)) 28 | (fp_line (start 6.35 0.635) (end 5.969 0.635) (layer B.SilkS) (width 0.15)) 29 | (fp_line (start 4.191 0.635) (end 2.54 0.635) (layer B.SilkS) (width 0.15)) 30 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.SilkS) (width 0.15)) 31 | (fp_line (start -5.08 2.54) (end -5.08 3.556) (layer B.SilkS) (width 0.15)) 32 | (fp_line (start -5.08 6.604) (end -5.08 6.985) (layer B.SilkS) (width 0.15)) 33 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.SilkS) (width 0.15)) 34 | (fp_line (start 6.35 4.445) (end 6.35 0.635) (layer B.Fab) (width 0.12)) 35 | (fp_line (start 6.35 0.635) (end 2.54 0.635) (layer B.Fab) (width 0.12)) 36 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.Fab) (width 0.12)) 37 | (fp_line (start -5.08 2.54) (end -5.08 6.985) (layer B.Fab) (width 0.12)) 38 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.Fab) (width 0.12)) 39 | (fp_line (start 6.35 3.81) (end 8.89 3.81) (layer B.Fab) (width 0.12)) 40 | (fp_line (start 8.89 3.81) (end 8.89 1.27) (layer B.Fab) (width 0.12)) 41 | (fp_line (start 8.89 1.27) (end 6.35 1.27) (layer B.Fab) (width 0.12)) 42 | (fp_line (start -5.08 3.81) (end -7.62 3.81) (layer B.Fab) (width 0.12)) 43 | (fp_line (start -7.62 3.81) (end -7.62 6.35) (layer B.Fab) (width 0.12)) 44 | (fp_line (start -7.62 6.35) (end -5.08 6.35) (layer B.Fab) (width 0.12)) 45 | (fp_line (start 3.5235 -6.0943) (end 5.9235 -6.0943) (layer F.SilkS) (width 0.12)) 46 | (fp_line (start -1.2765 -6.0943) (end 1.3235 -6.0943) (layer F.SilkS) (width 0.12)) 47 | (fp_line (start -5.8765 -6.0943) (end -3.4765 -6.0943) (layer F.SilkS) (width 0.12)) 48 | (fp_line (start 0.0235 3.0057) (end 0.0235 -2.9943) (layer F.Fab) (width 0.12)) 49 | (fp_line (start -2.9765 0.0057) (end 3.0235 0.0057) (layer F.Fab) (width 0.12)) 50 | (fp_line (start -4.0765 7.2057) (end -3.7765 7.5057) (layer F.SilkS) (width 0.12)) 51 | (fp_line (start -4.0765 7.8057) (end -4.0765 7.2057) (layer F.SilkS) (width 0.12)) 52 | (fp_line (start -3.7765 7.5057) (end -4.0765 7.8057) (layer F.SilkS) (width 0.12)) 53 | (fp_line (start -5.8765 6.1057) (end 5.9235 6.1057) (layer F.SilkS) (width 0.12)) 54 | (fp_line (start -5.8765 2.0057) (end -5.8765 6.1057) (layer F.SilkS) (width 0.12)) 55 | (fp_line (start 5.9235 2.0057) (end 5.9235 6.1057) (layer F.SilkS) (width 0.12)) 56 | (fp_line (start 5.9235 -6.0943) (end 5.9235 -1.9943) (layer F.SilkS) (width 0.12)) 57 | (fp_line (start -5.8765 -1.9943) (end -5.8765 -6.0943) (layer F.SilkS) (width 0.12)) 58 | (fp_line (start -4.6765 6.0057) (end -5.7765 5.0057) (layer F.Fab) (width 0.12)) 59 | (fp_line (start 5.8235 6.0057) (end -4.6765 6.0057) (layer F.Fab) (width 0.12)) 60 | (fp_line (start 5.8235 -5.9943) (end 5.8235 6.0057) (layer F.Fab) (width 0.12)) 61 | (fp_line (start -5.7765 -5.9943) (end 5.8235 -5.9943) (layer F.Fab) (width 0.12)) 62 | (fp_line (start -5.7765 5.0057) (end -5.7765 -5.9943) (layer F.Fab) (width 0.12)) 63 | (fp_line (start -7.0765 9.0057) (end -7.0765 -8.4943) (layer F.CrtYd) (width 0.05)) 64 | (fp_line (start -7.0765 9.0057) (end 7.1235 9.0057) (layer F.CrtYd) (width 0.05)) 65 | (fp_line (start 7.1235 -8.4943) (end -7.0765 -8.4943) (layer F.CrtYd) (width 0.05)) 66 | (fp_line (start 7.1235 -8.4943) (end 7.1235 9.0057) (layer F.CrtYd) (width 0.05)) 67 | (fp_circle (center 0.0235 0.0057) (end 0.0235 -2.9943) (layer F.SilkS) (width 0.12)) 68 | (fp_circle (center 0.0235 0.0057) (end 0.0235 -2.9943) (layer F.Fab) (width 0.12)) 69 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.Fab) (width 0.12)) 70 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.Fab) (width 0.12)) 71 | (fp_text user %R (at 7.2517 8.3058) (layer B.SilkS) 72 | (effects (font (size 1 1) (thickness 0.15)) (justify left mirror)) 73 | ) 74 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.SilkS) (width 0.15)) 75 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.SilkS) (width 0.15)) 76 | (pad S1 smd rect (at 7.56 2.54) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 77 | (pad S2 thru_hole circle (at -3.81 -2.54) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 78 | (pad "" np_thru_hole circle (at 0 0) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask)) 79 | (pad S1 thru_hole circle (at 2.54 -5.08) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 80 | (pad "" np_thru_hole circle (at 3.81 2.54) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 81 | (pad "" np_thru_hole circle (at -2.54 5.08) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 82 | (pad S2 smd rect (at -6.29 5.08) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 83 | (pad S1 thru_hole circle (at 5 -3.8 180) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask)) 84 | (pad S2 thru_hole circle (at 0 -5.9 180) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask)) 85 | (pad "" np_thru_hole oval (at -5.2959 0 180) (size 2.15 1.7018) (drill oval 2.15 1.7018) (layers *.Cu *.Mask)) 86 | (pad "" np_thru_hole oval (at 5.2832 0 180) (size 2.15 1.7018) (drill oval 2.15 1.7018) (layers *.Cu *.Mask)) 87 | (pad A thru_hole rect (at -2.4765 7.5057 90) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 88 | (pad C thru_hole circle (at 0.0235 7.5057 90) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 89 | (pad B thru_hole circle (at 2.5235 7.5057 90) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 90 | (pad S2 thru_hole circle (at -2.4765 -6.9943 90) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 91 | (pad S1 thru_hole circle (at 2.5235 -6.9943 90) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 92 | (model ${KISYS3DMOD}/Rotary_Encoder.3dshapes/RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm.wrl 93 | (at (xyz 0 0 0)) 94 | (scale (xyz 1 1 1)) 95 | (rotate (xyz 0 0 0)) 96 | ) 97 | ) 98 | -------------------------------------------------------------------------------- /footprints.pretty/Kailh_socket_MX_PG1350_optional.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Kailh_socket_MX_PG1350_optional locked (layer F.Cu) (tedit 5F6C4DEB) 2 | (descr "MX-style keyswitch with support for optional Kailh socket") 3 | (tags MX,cherry,gateron,kailh,pg1511,socket) 4 | (fp_text reference SW33 (at -4.4704 -5.7277) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value SW_Push (at 0 8.255) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -7.62 6.35) (end -5.08 6.35) (layer B.Fab) (width 0.12)) 11 | (fp_line (start -7.62 3.81) (end -7.62 6.35) (layer B.Fab) (width 0.12)) 12 | (fp_line (start -5.08 3.81) (end -7.62 3.81) (layer B.Fab) (width 0.12)) 13 | (fp_line (start 8.89 1.27) (end 6.35 1.27) (layer B.Fab) (width 0.12)) 14 | (fp_line (start 8.89 3.81) (end 8.89 1.27) (layer B.Fab) (width 0.12)) 15 | (fp_line (start 6.35 3.81) (end 8.89 3.81) (layer B.Fab) (width 0.12)) 16 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.Fab) (width 0.12)) 17 | (fp_line (start -5.08 2.54) (end -5.08 6.985) (layer B.Fab) (width 0.12)) 18 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.Fab) (width 0.12)) 19 | (fp_line (start 6.35 0.635) (end 2.54 0.635) (layer B.Fab) (width 0.12)) 20 | (fp_line (start 6.35 4.445) (end 6.35 0.635) (layer B.Fab) (width 0.12)) 21 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.SilkS) (width 0.15)) 22 | (fp_line (start -5.08 6.604) (end -5.08 6.985) (layer B.SilkS) (width 0.15)) 23 | (fp_line (start -5.08 2.54) (end -5.08 3.556) (layer B.SilkS) (width 0.15)) 24 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.SilkS) (width 0.15)) 25 | (fp_line (start 4.191 0.635) (end 2.54 0.635) (layer B.SilkS) (width 0.15)) 26 | (fp_line (start 6.35 0.635) (end 5.969 0.635) (layer B.SilkS) (width 0.15)) 27 | (fp_line (start 6.35 1.016) (end 6.35 0.635) (layer B.SilkS) (width 0.15)) 28 | (fp_line (start 6.35 4.445) (end 6.35 4.064) (layer B.SilkS) (width 0.15)) 29 | (fp_line (start -7.5 7.5) (end -7.5 -7.5) (layer F.Fab) (width 0.15)) 30 | (fp_line (start 7.5 7.5) (end -7.5 7.5) (layer F.Fab) (width 0.15)) 31 | (fp_line (start 7.5 -7.5) (end 7.5 7.5) (layer F.Fab) (width 0.15)) 32 | (fp_line (start -7.5 -7.5) (end 7.5 -7.5) (layer F.Fab) (width 0.15)) 33 | (fp_line (start -6.9 6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 34 | (fp_line (start 6.9 -6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 35 | (fp_line (start 6.9 -6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 36 | (fp_line (start -6.9 6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 37 | (fp_line (start 7 -7) (end 7 -6) (layer F.SilkS) (width 0.15)) 38 | (fp_line (start 6 7) (end 7 7) (layer F.SilkS) (width 0.15)) 39 | (fp_line (start 7 -7) (end 6 -7) (layer F.SilkS) (width 0.15)) 40 | (fp_line (start 7 6) (end 7 7) (layer F.SilkS) (width 0.15)) 41 | (fp_line (start -7 7) (end -7 6) (layer F.SilkS) (width 0.15)) 42 | (fp_line (start -6 -7) (end -7 -7) (layer F.SilkS) (width 0.15)) 43 | (fp_line (start -7 7) (end -6 7) (layer F.SilkS) (width 0.15)) 44 | (fp_line (start -7 -6) (end -7 -7) (layer F.SilkS) (width 0.15)) 45 | (fp_text user %V (at 0 8.255) (layer B.Fab) 46 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 47 | ) 48 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.Fab) (width 0.12)) 49 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.Fab) (width 0.12)) 50 | (fp_text user %R (at 1.905 5.08) (layer B.Fab) 51 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 52 | ) 53 | (fp_text user %R (at 3.81 8.255) (layer B.SilkS) 54 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 55 | ) 56 | (fp_text user %R (at 0 0) (layer F.Fab) 57 | (effects (font (size 1 1) (thickness 0.15))) 58 | ) 59 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.SilkS) (width 0.15)) 60 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.SilkS) (width 0.15)) 61 | (pad 1 smd rect (at 7.56 2.54) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 62 | (pad 2 thru_hole circle (at -3.81 -2.54) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 63 | (pad "" np_thru_hole circle (at 0 0) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask)) 64 | (pad 1 thru_hole circle (at 2.54 -5.08) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 65 | (pad "" np_thru_hole circle (at 3.81 2.54) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 66 | (pad "" np_thru_hole circle (at -2.54 5.08) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 67 | (pad 2 smd rect (at -6.29 5.08) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 68 | (pad 1 thru_hole circle (at 5 -3.8 180) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask)) 69 | (pad 2 thru_hole circle (at 0 -5.9 180) (size 2.032 2.032) (drill 1.27) (layers *.Cu *.Mask)) 70 | (pad "" np_thru_hole oval (at -5.2959 0 180) (size 2.15 1.7018) (drill oval 2.15 1.7018) (layers *.Cu *.Mask)) 71 | (pad "" np_thru_hole oval (at 5.2832 0 180) (size 2.15 1.7018) (drill oval 2.15 1.7018) (layers *.Cu *.Mask)) 72 | ) 73 | -------------------------------------------------------------------------------- /footprints.pretty/Kailh_socket_MX_optional.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Kailh_socket_MX_optional locked (layer F.Cu) (tedit 5F300294) 2 | (descr "MX-style keyswitch with support for optional Kailh socket") 3 | (tags MX,cherry,gateron,kailh,pg1511,socket) 4 | (fp_text reference SW33 (at -5.073 -8.168) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value SW_Push (at 0 8.255) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -7 -6) (end -7 -7) (layer F.SilkS) (width 0.15)) 11 | (fp_line (start -7 7) (end -6 7) (layer F.SilkS) (width 0.15)) 12 | (fp_line (start -6 -7) (end -7 -7) (layer F.SilkS) (width 0.15)) 13 | (fp_line (start -7 7) (end -7 6) (layer F.SilkS) (width 0.15)) 14 | (fp_line (start 7 6) (end 7 7) (layer F.SilkS) (width 0.15)) 15 | (fp_line (start 7 -7) (end 6 -7) (layer F.SilkS) (width 0.15)) 16 | (fp_line (start 6 7) (end 7 7) (layer F.SilkS) (width 0.15)) 17 | (fp_line (start 7 -7) (end 7 -6) (layer F.SilkS) (width 0.15)) 18 | (fp_line (start -6.9 6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 19 | (fp_line (start 6.9 -6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 20 | (fp_line (start 6.9 -6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 21 | (fp_line (start -6.9 6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 22 | (fp_line (start -7.5 -7.5) (end 7.5 -7.5) (layer F.Fab) (width 0.15)) 23 | (fp_line (start 7.5 -7.5) (end 7.5 7.5) (layer F.Fab) (width 0.15)) 24 | (fp_line (start 7.5 7.5) (end -7.5 7.5) (layer F.Fab) (width 0.15)) 25 | (fp_line (start -7.5 7.5) (end -7.5 -7.5) (layer F.Fab) (width 0.15)) 26 | (fp_line (start 6.35 4.445) (end 6.35 4.064) (layer B.SilkS) (width 0.15)) 27 | (fp_line (start 6.35 1.016) (end 6.35 0.635) (layer B.SilkS) (width 0.15)) 28 | (fp_line (start 6.35 0.635) (end 5.969 0.635) (layer B.SilkS) (width 0.15)) 29 | (fp_line (start 4.191 0.635) (end 2.54 0.635) (layer B.SilkS) (width 0.15)) 30 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.SilkS) (width 0.15)) 31 | (fp_line (start -5.08 2.54) (end -5.08 3.556) (layer B.SilkS) (width 0.15)) 32 | (fp_line (start -5.08 6.604) (end -5.08 6.985) (layer B.SilkS) (width 0.15)) 33 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.SilkS) (width 0.15)) 34 | (fp_line (start 6.35 4.445) (end 6.35 0.635) (layer B.Fab) (width 0.12)) 35 | (fp_line (start 6.35 0.635) (end 2.54 0.635) (layer B.Fab) (width 0.12)) 36 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.Fab) (width 0.12)) 37 | (fp_line (start -5.08 2.54) (end -5.08 6.985) (layer B.Fab) (width 0.12)) 38 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.Fab) (width 0.12)) 39 | (fp_line (start 6.35 3.81) (end 8.89 3.81) (layer B.Fab) (width 0.12)) 40 | (fp_line (start 8.89 3.81) (end 8.89 1.27) (layer B.Fab) (width 0.12)) 41 | (fp_line (start 8.89 1.27) (end 6.35 1.27) (layer B.Fab) (width 0.12)) 42 | (fp_line (start -5.08 3.81) (end -7.62 3.81) (layer B.Fab) (width 0.12)) 43 | (fp_line (start -7.62 3.81) (end -7.62 6.35) (layer B.Fab) (width 0.12)) 44 | (fp_line (start -7.62 6.35) (end -5.08 6.35) (layer B.Fab) (width 0.12)) 45 | (fp_text user %V (at 0 8.255) (layer B.Fab) 46 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 47 | ) 48 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.Fab) (width 0.12)) 49 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.Fab) (width 0.12)) 50 | (fp_text user %R (at 1.905 5.08) (layer B.Fab) 51 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 52 | ) 53 | (fp_text user %R (at 3.81 8.255) (layer B.SilkS) 54 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 55 | ) 56 | (fp_text user %R (at 0 0) (layer F.Fab) 57 | (effects (font (size 1 1) (thickness 0.15))) 58 | ) 59 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.SilkS) (width 0.15)) 60 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.SilkS) (width 0.15)) 61 | (pad 2 smd rect (at 7.56 2.54) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 62 | (pad "" np_thru_hole circle (at -5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) 63 | (pad "" np_thru_hole circle (at 5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) 64 | (pad 2 thru_hole circle (at -3.81 -2.54) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 65 | (pad "" np_thru_hole circle (at 0 0) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask)) 66 | (pad 1 thru_hole circle (at 2.54 -5.08) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 67 | (pad "" np_thru_hole circle (at 3.81 2.54) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 68 | (pad "" np_thru_hole circle (at -2.54 5.08) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 69 | (pad 1 smd rect (at -6.29 5.08) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 70 | ) 71 | -------------------------------------------------------------------------------- /footprints.pretty/Kailh_socket_MX_optional_EC11E.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Kailh_socket_MX_optional_EC11E locked (layer F.Cu) (tedit 5F300241) 2 | (descr "MX-style keyswitch with support for optional Kailh socket") 3 | (tags MX,cherry,gateron,kailh,pg1511,socket) 4 | (fp_text reference SW33 (at -5.2 -8.255) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value SW_Push (at 0 8.255) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start -7.62 6.35) (end -5.08 6.35) (layer B.Fab) (width 0.12)) 11 | (fp_line (start -7.62 3.81) (end -7.62 6.35) (layer B.Fab) (width 0.12)) 12 | (fp_line (start -5.08 3.81) (end -7.62 3.81) (layer B.Fab) (width 0.12)) 13 | (fp_line (start 8.89 1.27) (end 6.35 1.27) (layer B.Fab) (width 0.12)) 14 | (fp_line (start 8.89 3.81) (end 8.89 1.27) (layer B.Fab) (width 0.12)) 15 | (fp_line (start 6.35 3.81) (end 8.89 3.81) (layer B.Fab) (width 0.12)) 16 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.Fab) (width 0.12)) 17 | (fp_line (start -5.08 2.54) (end -5.08 6.985) (layer B.Fab) (width 0.12)) 18 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.Fab) (width 0.12)) 19 | (fp_line (start 6.35 0.635) (end 2.54 0.635) (layer B.Fab) (width 0.12)) 20 | (fp_line (start 6.35 4.445) (end 6.35 0.635) (layer B.Fab) (width 0.12)) 21 | (fp_line (start -5.08 6.985) (end 3.81 6.985) (layer B.SilkS) (width 0.15)) 22 | (fp_line (start -5.08 6.604) (end -5.08 6.985) (layer B.SilkS) (width 0.15)) 23 | (fp_line (start -5.08 2.54) (end -5.08 3.556) (layer B.SilkS) (width 0.15)) 24 | (fp_line (start 0 2.54) (end -5.08 2.54) (layer B.SilkS) (width 0.15)) 25 | (fp_line (start 4.191 0.635) (end 2.54 0.635) (layer B.SilkS) (width 0.15)) 26 | (fp_line (start 6.35 0.635) (end 5.969 0.635) (layer B.SilkS) (width 0.15)) 27 | (fp_line (start 6.35 1.016) (end 6.35 0.635) (layer B.SilkS) (width 0.15)) 28 | (fp_line (start 6.35 4.445) (end 6.35 4.064) (layer B.SilkS) (width 0.15)) 29 | (fp_line (start -7.5 7.5) (end -7.5 -7.5) (layer F.Fab) (width 0.15)) 30 | (fp_line (start 7.5 7.5) (end -7.5 7.5) (layer F.Fab) (width 0.15)) 31 | (fp_line (start 7.5 -7.5) (end 7.5 7.5) (layer F.Fab) (width 0.15)) 32 | (fp_line (start -7.5 -7.5) (end 7.5 -7.5) (layer F.Fab) (width 0.15)) 33 | (fp_line (start -6.9 6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 34 | (fp_line (start 6.9 -6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 35 | (fp_line (start 6.9 -6.9) (end -6.9 -6.9) (layer Eco2.User) (width 0.15)) 36 | (fp_line (start -6.9 6.9) (end 6.9 6.9) (layer Eco2.User) (width 0.15)) 37 | (fp_line (start 7 -7) (end 7 -6) (layer F.SilkS) (width 0.15)) 38 | (fp_line (start 6 7) (end 7 7) (layer F.SilkS) (width 0.15)) 39 | (fp_line (start 7 -7) (end 6 -7) (layer F.SilkS) (width 0.15)) 40 | (fp_line (start 7 6) (end 7 7) (layer F.SilkS) (width 0.15)) 41 | (fp_line (start -7 7) (end -7 6) (layer F.SilkS) (width 0.15)) 42 | (fp_line (start -6 -7) (end -7 -7) (layer F.SilkS) (width 0.15)) 43 | (fp_line (start -7 7) (end -6 7) (layer F.SilkS) (width 0.15)) 44 | (fp_line (start -7 -6) (end -7 -7) (layer F.SilkS) (width 0.15)) 45 | (fp_line (start 0.107 0.46) (end -0.093 -0.54) (layer F.SilkS) (width 0.12)) 46 | (fp_line (start -0.493 0.06) (end 0.507 -0.14) (layer F.SilkS) (width 0.12)) 47 | (fp_line (start 1.607 -6.94) (end 3.907 -7.64) (layer F.SilkS) (width 0.12)) 48 | (fp_line (start -2.993 -5.54) (end -0.493 -6.24) (layer F.SilkS) (width 0.12)) 49 | (fp_line (start -7.393 -4.14) (end -5.093 -4.84) (layer F.SilkS) (width 0.12)) 50 | (fp_line (start 0.907 2.86) (end -0.893 -2.94) (layer F.Fab) (width 0.12)) 51 | (fp_line (start -2.893 0.86) (end 2.907 -0.94) (layer F.Fab) (width 0.12)) 52 | (fp_line (start -1.793 8.06) (end -1.393 8.26) (layer F.SilkS) (width 0.12)) 53 | (fp_line (start -1.593 8.66) (end -1.793 8.06) (layer F.SilkS) (width 0.12)) 54 | (fp_line (start -1.393 8.26) (end -1.593 8.66) (layer F.SilkS) (width 0.12)) 55 | (fp_line (start -3.893 7.56) (end 7.407 4.06) (layer F.SilkS) (width 0.12)) 56 | (fp_line (start -5.093 3.56) (end -3.893 7.56) (layer F.SilkS) (width 0.12)) 57 | (fp_line (start 6.207 0.16) (end 7.407 4.06) (layer F.SilkS) (width 0.12)) 58 | (fp_line (start 3.907 -7.64) (end 5.107 -3.64) (layer F.SilkS) (width 0.12)) 59 | (fp_line (start -6.193 -0.24) (end -7.393 -4.14) (layer F.SilkS) (width 0.12)) 60 | (fp_line (start -2.693 7.06) (end -4.093 6.46) (layer F.Fab) (width 0.12)) 61 | (fp_line (start 7.307 3.96) (end -2.693 7.06) (layer F.Fab) (width 0.12)) 62 | (fp_line (start 3.807 -7.44) (end 7.307 3.96) (layer F.Fab) (width 0.12)) 63 | (fp_line (start -7.293 -4.04) (end 3.807 -7.44) (layer F.Fab) (width 0.12)) 64 | (fp_line (start -4.093 6.46) (end -7.293 -4.04) (layer F.Fab) (width 0.12)) 65 | (fp_line (start -4.193 10.66) (end -9.293 -6.14) (layer F.CrtYd) (width 0.05)) 66 | (fp_line (start -4.193 10.66) (end 9.407 6.46) (layer F.CrtYd) (width 0.05)) 67 | (fp_line (start 4.307 -10.24) (end -9.293 -6.14) (layer F.CrtYd) (width 0.05)) 68 | (fp_line (start 4.307 -10.24) (end 9.407 6.46) (layer F.CrtYd) (width 0.05)) 69 | (fp_circle (center 0.007 -0.04) (end -0.893 -2.94) (layer F.SilkS) (width 0.12)) 70 | (fp_circle (center 0.007 -0.04) (end -0.893 -2.94) (layer F.Fab) (width 0.12)) 71 | (fp_text user %V (at 0 8.255) (layer B.Fab) 72 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 73 | ) 74 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.Fab) (width 0.12)) 75 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.Fab) (width 0.12)) 76 | (fp_text user %R (at 1.905 5.08) (layer B.Fab) 77 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 78 | ) 79 | (fp_text user %R (at 3.81 8.255) (layer B.SilkS) 80 | (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) 81 | ) 82 | (fp_text user %R (at 0 0) (layer F.Fab) 83 | (effects (font (size 1 1) (thickness 0.15))) 84 | ) 85 | (fp_arc (start 0 0) (end 0 2.54) (angle -75.96375653) (layer B.SilkS) (width 0.15)) 86 | (fp_arc (start 3.81 4.445) (end 3.81 6.985) (angle -90) (layer B.SilkS) (width 0.15)) 87 | (pad S2 smd rect (at 7.56 2.54) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 88 | (pad "" np_thru_hole circle (at -5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) 89 | (pad "" np_thru_hole circle (at 5.08 0) (size 1.7018 1.7018) (drill 1.7018) (layers *.Cu *.Mask)) 90 | (pad S2 thru_hole circle (at -3.81 -2.54) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 91 | (pad "" np_thru_hole circle (at 0 0) (size 3.9878 3.9878) (drill 3.9878) (layers *.Cu *.Mask)) 92 | (pad S1 thru_hole circle (at 2.54 -5.08) (size 2.286 2.286) (drill 1.4986) (layers *.Cu *.Mask)) 93 | (pad "" np_thru_hole circle (at 3.81 2.54) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 94 | (pad "" np_thru_hole circle (at -2.54 5.08) (size 3 3) (drill 3) (layers *.Cu *.Mask)) 95 | (pad S1 smd rect (at -6.29 5.08) (size 2.55 2.5) (layers B.Cu B.Paste B.Mask)) 96 | (pad A thru_hole rect (at -0.193 7.86 17) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 97 | (pad C thru_hole circle (at 2.207 7.16) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 98 | (pad B thru_hole circle (at 4.607 6.36) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 99 | (pad "" np_thru_hole rect (at -5.393 1.56 107) (size 3.2 2) (drill oval 2.8 1.5) (layers *.Cu *.Mask)) 100 | (pad "" np_thru_hole rect (at 5.407 -1.64 107) (size 3.2 2) (drill oval 2.8 1.5) (layers *.Cu *.Mask)) 101 | (pad S2 thru_hole circle (at -4.393 -6.04) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 102 | (pad S1 thru_hole circle (at 0.307 -7.44) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 103 | ) 104 | -------------------------------------------------------------------------------- /footprints.pretty/LED_D3.0mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module LED_D3.0mm (layer F.Cu) (tedit 5F2EC1E7) 2 | (descr "LED, diameter 3.0mm, 2 pins") 3 | (tags "LED diameter 3.0mm 2 pins") 4 | (fp_text reference L50 (at 1.397 3.048) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value LED (at 1.27 2.96) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_circle (center 1.27 0) (end 2.77 0) (layer F.Fab) (width 0.1)) 11 | (fp_line (start -0.23 -1.16619) (end -0.23 1.16619) (layer F.Fab) (width 0.1)) 12 | (fp_line (start -0.29 -1.236) (end -0.29 -1.08) (layer F.SilkS) (width 0.12)) 13 | (fp_line (start -0.29 1.08) (end -0.29 1.236) (layer F.SilkS) (width 0.12)) 14 | (fp_line (start -1.15 -2.25) (end -1.15 2.25) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start -1.15 2.25) (end 3.7 2.25) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start 3.7 2.25) (end 3.7 -2.25) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start 3.7 -2.25) (end -1.15 -2.25) (layer F.CrtYd) (width 0.05)) 18 | (fp_arc (start 1.27 0) (end 0.229039 1.08) (angle -87.9) (layer F.SilkS) (width 0.12)) 19 | (fp_arc (start 1.27 0) (end 0.229039 -1.08) (angle 87.9) (layer F.SilkS) (width 0.12)) 20 | (fp_arc (start 1.27 0) (end -0.29 1.235516) (angle -108.8) (layer F.SilkS) (width 0.12)) 21 | (fp_arc (start 1.27 0) (end -0.29 -1.235516) (angle 108.8) (layer F.SilkS) (width 0.12)) 22 | (fp_arc (start 1.27 0) (end -0.23 -1.16619) (angle 284.3) (layer F.Fab) (width 0.1)) 23 | (pad 2 thru_hole circle (at 2.54 0) (size 1.8 1.8) (drill 0.9) (layers *.Cu *.Mask)) 24 | (pad 1 thru_hole rect (at 0 0) (size 1.8 1.8) (drill 0.9) (layers *.Cu *.Mask)) 25 | (model ${KISYS3DMOD}/LED_THT.3dshapes/LED_D3.0mm.wrl 26 | (at (xyz 0 0 0)) 27 | (scale (xyz 1 1 1)) 28 | (rotate (xyz 0 0 0)) 29 | ) 30 | ) 31 | -------------------------------------------------------------------------------- /footprints.pretty/MountingHole_2.2mm_M2_Pad.kicad_mod: -------------------------------------------------------------------------------- 1 | (module cftkb:MountingHole_2.2mm_M2_Pad (layer F.Cu) (tedit 5CFB748D) 2 | (descr "Mounting Hole 2.2mm, M2") 3 | (tags "mounting hole 2.2mm m2") 4 | (attr virtual) 5 | (fp_text reference H10 (at 0 -3.2 180) (layer Cmts.User) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value M2 (at 0 3.2 180) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_text user %R (at 0.3 0 180) (layer F.Fab) 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | ) 14 | (fp_circle (center 0 0) (end 2.45 0) (layer F.CrtYd) (width 0.05)) 15 | (fp_circle (center 0 0) (end 2.2 0) (layer Cmts.User) (width 0.15)) 16 | (pad 1 thru_hole circle (at 0 0) (size 4.4 4.4) (drill 2.2) (layers *.Cu *.Mask)) 17 | ) 18 | -------------------------------------------------------------------------------- /footprints.pretty/OLED_1side.kicad_mod: -------------------------------------------------------------------------------- 1 | (module kbd:OLED_1side (layer F.Cu) (tedit 5F0037E1) 2 | (descr "Connecteur 6 pins") 3 | (tags "CONN DEV") 4 | (fp_text reference J51 (at 8.018 -3.234 180) (layer F.Fab) 5 | (effects (font (size 0.8128 0.8128) (thickness 0.15))) 6 | ) 7 | (fp_text value Conn_01x04 (at 7.918 -2.034) (layer F.SilkS) hide 8 | (effects (font (size 0.8128 0.8128) (thickness 0.15))) 9 | ) 10 | (fp_text user SDA (at 7.62 3.048 -90) (layer F.Fab) 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_text user SCL (at 5.08 3.048 -90) (layer F.Fab) 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | ) 16 | (fp_text user VCC (at 2.54 3.048 -90) (layer F.Fab) 17 | (effects (font (size 1 1) (thickness 0.15))) 18 | ) 19 | (fp_text user GND (at 0 3.048 -90) (layer F.Fab) 20 | (effects (font (size 1 1) (thickness 0.15))) 21 | ) 22 | (fp_text user OLED (at 3.8 -2.1) (layer F.SilkS) 23 | (effects (font (size 1 1) (thickness 0.15))) 24 | ) 25 | (fp_line (start -2.286 36.83) (end -2.286 -1.27) (layer F.Fab) (width 0.12)) 26 | (fp_line (start -2.286 36.83) (end 9.906 36.83) (layer F.Fab) (width 0.12)) 27 | (fp_line (start 9.906 -1.27) (end 9.906 36.83) (layer F.Fab) (width 0.12)) 28 | (fp_line (start -2.286 -1.27) (end 9.906 -1.27) (layer F.Fab) (width 0.12)) 29 | (fp_line (start -1.27 1.27) (end 8.89 1.27) (layer F.SilkS) (width 0.15)) 30 | (fp_line (start -1.27 -1.27) (end 8.89 -1.27) (layer F.SilkS) (width 0.15)) 31 | (fp_line (start 8.89 -1.27) (end 8.89 1.27) (layer F.SilkS) (width 0.15)) 32 | (fp_line (start -1.27 1.27) (end -1.27 -1.27) (layer F.SilkS) (width 0.15)) 33 | (pad 4 thru_hole circle (at 7.62 0) (size 1.397 1.397) (drill 0.8128) (layers *.Cu F.SilkS B.Mask)) 34 | (pad 3 thru_hole circle (at 5.08 0) (size 1.397 1.397) (drill 0.8128) (layers *.Cu F.SilkS B.Mask)) 35 | (pad 2 thru_hole circle (at 2.54 0) (size 1.397 1.397) (drill 0.8128) (layers *.Cu F.SilkS B.Mask)) 36 | (pad 1 thru_hole circle (at 0 0) (size 1.397 1.397) (drill 0.8128) (layers *.Cu F.SilkS B.Mask)) 37 | ) 38 | -------------------------------------------------------------------------------- /footprints.pretty/R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal.kicad_mod: -------------------------------------------------------------------------------- 1 | (module R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal (layer F.Cu) (tedit 5F2EC3F3) 2 | (descr "Resistor, Axial_DIN0204 series, Axial, Horizontal, pin pitch=5.08mm, 0.167W, length*diameter=3.6*1.6mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf") 3 | (tags "Resistor Axial_DIN0204 series Axial Horizontal pin pitch 5.08mm 0.167W length 3.6mm diameter 1.6mm") 4 | (fp_text reference R8 (at 2.54 -1.92) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value I2C (at 2.54 0) (layer F.SilkS) 8 | (effects (font (size 0.8 1) (thickness 0.15))) 9 | ) 10 | (fp_line (start 6.03 -1.05) (end -0.95 -1.05) (layer F.CrtYd) (width 0.05)) 11 | (fp_line (start 6.03 1.05) (end 6.03 -1.05) (layer F.CrtYd) (width 0.05)) 12 | (fp_line (start -0.95 1.05) (end 6.03 1.05) (layer F.CrtYd) (width 0.05)) 13 | (fp_line (start -0.95 -1.05) (end -0.95 1.05) (layer F.CrtYd) (width 0.05)) 14 | (fp_line (start 0.62 0.92) (end 4.46 0.92) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start 0.62 -0.92) (end 4.46 -0.92) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 5.08 0) (end 4.34 0) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0 0) (end 0.74 0) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 4.34 -0.8) (end 0.74 -0.8) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 4.34 0.8) (end 4.34 -0.8) (layer F.Fab) (width 0.1)) 20 | (fp_line (start 0.74 0.8) (end 4.34 0.8) (layer F.Fab) (width 0.1)) 21 | (fp_line (start 0.74 -0.8) (end 0.74 0.8) (layer F.Fab) (width 0.1)) 22 | (fp_text user %R (at 2.54 0) (layer F.Fab) 23 | (effects (font (size 0.72 0.72) (thickness 0.108))) 24 | ) 25 | (pad 2 thru_hole oval (at 5.08 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask)) 26 | (pad 1 thru_hole circle (at 0 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask)) 27 | (model ${KISYS3DMOD}/Resistor_THT.3dshapes/R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal.wrl 28 | (at (xyz 0 0 0)) 29 | (scale (xyz 1 1 1)) 30 | (rotate (xyz 0 0 0)) 31 | ) 32 | ) 33 | -------------------------------------------------------------------------------- /footprints.pretty/RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm locked (layer F.Cu) (tedit 5A74C8CB) 2 | (descr "Alps rotary encoder, EC12E... with switch, vertical shaft, http://www.alps.com/prod/info/E/HTML/Encoder/Incremental/EC11/EC11E15204A3.html") 3 | (tags "rotary encoder") 4 | (fp_text reference ENC1 (at 2.8 -4.7) (layer F.SilkS) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value Rotary_Encoder_Switch (at 7.5 10.4) (layer F.Fab) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 11.1 6.3) (layer F.Fab) 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_line (start 7 2.5) (end 8 2.5) (layer F.SilkS) (width 0.12)) 14 | (fp_line (start 7.5 2) (end 7.5 3) (layer F.SilkS) (width 0.12)) 15 | (fp_line (start 13.6 6) (end 13.6 8.4) (layer F.SilkS) (width 0.12)) 16 | (fp_line (start 13.6 1.2) (end 13.6 3.8) (layer F.SilkS) (width 0.12)) 17 | (fp_line (start 13.6 -3.4) (end 13.6 -1) (layer F.SilkS) (width 0.12)) 18 | (fp_line (start 4.5 2.5) (end 10.5 2.5) (layer F.Fab) (width 0.12)) 19 | (fp_line (start 7.5 -0.5) (end 7.5 5.5) (layer F.Fab) (width 0.12)) 20 | (fp_line (start 0.3 -1.6) (end 0 -1.3) (layer F.SilkS) (width 0.12)) 21 | (fp_line (start -0.3 -1.6) (end 0.3 -1.6) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start 0 -1.3) (end -0.3 -1.6) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start 1.4 -3.4) (end 1.4 8.4) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start 5.5 -3.4) (end 1.4 -3.4) (layer F.SilkS) (width 0.12)) 25 | (fp_line (start 5.5 8.4) (end 1.4 8.4) (layer F.SilkS) (width 0.12)) 26 | (fp_line (start 13.6 8.4) (end 9.5 8.4) (layer F.SilkS) (width 0.12)) 27 | (fp_line (start 9.5 -3.4) (end 13.6 -3.4) (layer F.SilkS) (width 0.12)) 28 | (fp_line (start 1.5 -2.2) (end 2.5 -3.3) (layer F.Fab) (width 0.12)) 29 | (fp_line (start 1.5 8.3) (end 1.5 -2.2) (layer F.Fab) (width 0.12)) 30 | (fp_line (start 13.5 8.3) (end 1.5 8.3) (layer F.Fab) (width 0.12)) 31 | (fp_line (start 13.5 -3.3) (end 13.5 8.3) (layer F.Fab) (width 0.12)) 32 | (fp_line (start 2.5 -3.3) (end 13.5 -3.3) (layer F.Fab) (width 0.12)) 33 | (fp_line (start -1.5 -4.6) (end 16 -4.6) (layer F.CrtYd) (width 0.05)) 34 | (fp_line (start -1.5 -4.6) (end -1.5 9.6) (layer F.CrtYd) (width 0.05)) 35 | (fp_line (start 16 9.6) (end 16 -4.6) (layer F.CrtYd) (width 0.05)) 36 | (fp_line (start 16 9.6) (end -1.5 9.6) (layer F.CrtYd) (width 0.05)) 37 | (fp_circle (center 7.5 2.5) (end 10.5 2.5) (layer F.SilkS) (width 0.12)) 38 | (fp_circle (center 7.5 2.5) (end 10.5 2.5) (layer F.Fab) (width 0.12)) 39 | (pad A thru_hole rect (at 0 0) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 40 | (pad C thru_hole circle (at 0 2.5) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 41 | (pad B thru_hole circle (at 0 5) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 42 | (pad MP thru_hole rect (at 7.5 -3.1) (size 3.2 2) (drill oval 2.8 1.5) (layers *.Cu *.Mask)) 43 | (pad MP thru_hole rect (at 7.5 8.1) (size 3.2 2) (drill oval 2.8 1.5) (layers *.Cu *.Mask)) 44 | (pad S2 thru_hole circle (at 14.5 0) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 45 | (pad S1 thru_hole circle (at 14.5 5) (size 2 2) (drill 1) (layers *.Cu *.Mask)) 46 | (model ${KISYS3DMOD}/Rotary_Encoder.3dshapes/RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm.wrl 47 | (at (xyz 0 0 0)) 48 | (scale (xyz 1 1 1)) 49 | (rotate (xyz 0 0 0)) 50 | ) 51 | ) 52 | -------------------------------------------------------------------------------- /footprints.pretty/SW_PUSH_6mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module cftkb:SW_PUSH_6mm (layer F.Cu) (tedit 5F004615) 2 | (descr https://www.omron.com/ecb/products/pdf/en-b3f.pdf) 3 | (tags "tact sw push 6mm") 4 | (fp_text reference SW41 (at 3.272126 2.292238) (layer Cmts.User) 5 | (effects (font (size 1 1) (thickness 0.15))) 6 | ) 7 | (fp_text value BOOT (at 3.75 6.7) (layer F.SilkS) 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | ) 10 | (fp_text user %R (at 3.25 2.25) (layer F.Fab) 11 | (effects (font (size 1 1) (thickness 0.15))) 12 | ) 13 | (fp_line (start 3.25 -0.75) (end 6.25 -0.75) (layer F.Fab) (width 0.1)) 14 | (fp_line (start 6.25 -0.75) (end 6.25 5.25) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 6.25 5.25) (end 0.25 5.25) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 0.25 5.25) (end 0.25 -0.75) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 0.25 -0.75) (end 3.25 -0.75) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 7.75 6) (end 8 6) (layer F.CrtYd) (width 0.05)) 19 | (fp_line (start 8 6) (end 8 5.75) (layer F.CrtYd) (width 0.05)) 20 | (fp_line (start 7.75 -1.5) (end 8 -1.5) (layer F.CrtYd) (width 0.05)) 21 | (fp_line (start 8 -1.5) (end 8 -1.25) (layer F.CrtYd) (width 0.05)) 22 | (fp_line (start -1.5 -1.25) (end -1.5 -1.5) (layer F.CrtYd) (width 0.05)) 23 | (fp_line (start -1.5 -1.5) (end -1.25 -1.5) (layer F.CrtYd) (width 0.05)) 24 | (fp_line (start -1.5 5.75) (end -1.5 6) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start -1.5 6) (end -1.25 6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start -1.25 -1.5) (end 7.75 -1.5) (layer F.CrtYd) (width 0.05)) 27 | (fp_line (start -1.5 5.75) (end -1.5 -1.25) (layer F.CrtYd) (width 0.05)) 28 | (fp_line (start 7.75 6) (end -1.25 6) (layer F.CrtYd) (width 0.05)) 29 | (fp_line (start 8 -1.25) (end 8 5.75) (layer F.CrtYd) (width 0.05)) 30 | (fp_line (start 1 5.5) (end 5.5 5.5) (layer F.SilkS) (width 0.12)) 31 | (fp_line (start -0.25 1.5) (end -0.25 3) (layer F.SilkS) (width 0.12)) 32 | (fp_line (start 5.5 -1) (end 1 -1) (layer F.SilkS) (width 0.12)) 33 | (fp_line (start 6.75 3) (end 6.75 1.5) (layer F.SilkS) (width 0.12)) 34 | (fp_circle (center 3.25 2.25) (end 1.25 2.5) (layer F.Fab) (width 0.1)) 35 | (pad 1 thru_hole circle (at 6.5 0 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 36 | (pad 2 thru_hole circle (at 6.5 4.5 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 37 | (pad 1 thru_hole circle (at 0 0 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 38 | (pad 2 thru_hole circle (at 0 4.5 90) (size 2 2) (drill 1.1) (layers *.Cu *.Mask)) 39 | (model ${KISYS3DMOD}/Button_Switch_THT.3dshapes/SW_PUSH_6mm.wrl 40 | (at (xyz 0 0 0)) 41 | (scale (xyz 1 1 1)) 42 | (rotate (xyz 0 0 0)) 43 | ) 44 | ) 45 | -------------------------------------------------------------------------------- /footprints.pretty/USB_C_GCT_USB4085.kicad_mod: -------------------------------------------------------------------------------- 1 | (module cftkb:USB_C_GCT_USB4085 locked (layer F.Cu) (tedit 5D1C2D80) 2 | (fp_text reference USB1 (at -0.017498 1.13737 -180) (layer F.SilkS) 3 | (effects (font (size 1 1) (thickness 0.15))) 4 | ) 5 | (fp_text value USB_C_GCT_USB4085-Type-C (at 0 0.85 -180) (layer F.Fab) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_line (start -4.625 0) (end 4.625 0) (layer F.SilkS) (width 0.15)) 9 | (fp_line (start -4.475 -6.66) (end 4.475 -6.66) (layer F.SilkS) (width 0.15)) 10 | (fp_line (start 4.48 1.75) (end 4.475 2.51) (layer F.SilkS) (width 0.15)) 11 | (fp_line (start -4.475 2.51) (end 4.475 2.51) (layer F.SilkS) (width 0.15)) 12 | (fp_line (start -4.475 2.51) (end -4.48 1.75) (layer F.SilkS) (width 0.15)) 13 | (fp_line (start 0 0) (end 0 -1.27) (layer F.SilkS) (width 0.15)) 14 | (pad A5 thru_hole oval (at -1.275 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 15 | (pad A1 thru_hole oval (at -2.975 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 16 | (pad A4 thru_hole oval (at -2.125 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 17 | (pad A6 thru_hole oval (at -0.425 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 18 | (pad A7 thru_hole oval (at 0.425 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 19 | (pad A8 thru_hole oval (at 1.275 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 20 | (pad A9 thru_hole oval (at 2.125 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 21 | (pad A12 thru_hole oval (at 2.975 -6.1) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 22 | (pad B12 thru_hole oval (at -2.975 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 23 | (pad B9 thru_hole oval (at -2.12 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 24 | (pad B8 thru_hole oval (at -1.27 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 25 | (pad B7 thru_hole oval (at -0.42 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 26 | (pad B6 thru_hole oval (at 0.43 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 27 | (pad B5 thru_hole oval (at 1.28 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 28 | (pad B4 thru_hole oval (at 2.13 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 29 | (pad B1 thru_hole oval (at 2.98 -4.775) (size 0.65 1) (drill 0.4) (layers *.Cu *.Mask)) 30 | (pad S1 thru_hole oval (at -4.325 -5.12) (size 0.9 2.4) (drill oval 0.6 2.1) (layers *.Cu *.Mask)) 31 | (pad S1 thru_hole oval (at 4.325 -5.12) (size 0.9 2.4) (drill oval 0.6 2.1) (layers *.Cu *.Mask)) 32 | (pad S1 thru_hole oval (at -4.325 -1.74) (size 0.9 1.7) (drill oval 0.6 1.4) (layers *.Cu *.Mask)) 33 | (pad S1 thru_hole oval (at 4.325 -1.74) (size 0.9 1.7) (drill oval 0.6 1.4) (layers *.Cu *.Mask)) 34 | (model "C:/Users/bryan/Downloads/kicad projects/github repositories/Type-C.pretty/gct-usb4085.step" 35 | (offset (xyz 0 -2 -0.2)) 36 | (scale (xyz 1 1 1)) 37 | (rotate (xyz -90 0 0)) 38 | ) 39 | (model "C:/Users/bryan/OneDrive/kicad projects/libraries/Type-C.pretty/USB_C_GCT_USB4085.step" 40 | (offset (xyz 0 -2 -0.2)) 41 | (scale (xyz 1 1 1)) 42 | (rotate (xyz -90 0 0)) 43 | ) 44 | ) 45 | -------------------------------------------------------------------------------- /footprints.pretty/polyfuse_5.1mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (module polyfuse_5.1mm (layer F.Cu) (tedit 5F6C4F64) 2 | (fp_text reference F1 (at 0.08749 0.034996 -180) (layer F.Fab) 3 | (effects (font (size 1 1) (thickness 0.15))) 4 | ) 5 | (fp_text value 100mA (at 0 1.651 -180) (layer F.Fab) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_line (start 3.556 -1.27) (end -3.556 -1.27) (layer F.Fab) (width 0.12)) 9 | (fp_line (start 3.556 12.319) (end 3.556 -1.27) (layer F.Fab) (width 0.12)) 10 | (fp_line (start -3.556 12.319) (end 3.556 12.319) (layer F.Fab) (width 0.12)) 11 | (fp_line (start -3.556 -1.27) (end -3.556 12.319) (layer F.Fab) (width 0.12)) 12 | (fp_line (start -3.8 12.573) (end -3.8 -1.5) (layer F.CrtYd) (width 0.1)) 13 | (fp_line (start 3.8 12.573) (end -3.8 12.573) (layer F.CrtYd) (width 0.1)) 14 | (fp_line (start 3.8 -1.5) (end 3.8 12.573) (layer F.CrtYd) (width 0.1)) 15 | (fp_line (start -3.8 -1.5) (end 3.8 -1.5) (layer F.CrtYd) (width 0.1)) 16 | (fp_text user FUSE (at 0 8.9535 -180) (layer F.SilkS) 17 | (effects (font (size 1 1) (thickness 0.15))) 18 | ) 19 | (pad 2 thru_hole circle (at 2.55 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask)) 20 | (pad 1 thru_hole circle (at -2.55 0) (size 1.4 1.4) (drill 0.7) (layers *.Cu *.Mask)) 21 | (model ${KISYS3DMOD}/SMKJP.3dshapes/PTC_5.1mm_bend.step 22 | (offset (xyz 0 0 1.5)) 23 | (scale (xyz 1 1 1)) 24 | (rotate (xyz 0 0 180)) 25 | ) 26 | ) 27 | -------------------------------------------------------------------------------- /keyboard-layout-editor.json: -------------------------------------------------------------------------------- 1 | [{x:3},"E",{x:7},"I"], 2 | [{y:-0.875,x:2},"W",{x:1},"R",{x:5},"U",{x:1},"O"], 3 | [{y:-0.875,x:5},"T",{x:3},"Y"], 4 | [{y:-0.875},"Esc","Q",{x:11},"P",{a:7},""], 5 | [{y:-0.375,x:3,a:4},"D",{x:7},"K"], 6 | [{y:-0.875,x:2},"S",{x:1},"F",{x:5},"J",{x:1},"L"], 7 | [{y:-0.875,x:5},"G",{x:3},"H"], 8 | [{y:-0.875,a:7},"",{a:4},"A",{x:11,a:7},"",""], 9 | [{y:-0.375,x:3,a:4},"C",{x:7},","], 10 | [{y:-0.875,x:2},"X",{x:1},"V",{x:5},"M",{x:1},"."], 11 | [{y:-0.875,x:5},"B",{x:3},"N"], 12 | [{y:-0.875,a:7},"",{a:4},"Z",{x:11,a:7},"",""], 13 | [{y:-0.275,x:3},"",{x:7},""], 14 | [{r:13,rx:3.5,ry:8.5,y:-5.4,x:-0.5},""], 15 | [{r:26,y:-1,x:-0.5},""], 16 | [{r:39,y:-1,x:-0.5},""], 17 | [{r:-39,rx:11.5,y:-5.4,x:-0.5},""], 18 | [{r:-26,y:-1,x:-0.5},""], 19 | [{r:-13,y:-1,x:-0.5},""] 20 | 21 | -------------------------------------------------------------------------------- /scripts/kiplot.yml: -------------------------------------------------------------------------------- 1 | kiplot: 2 | version: 1 3 | 4 | preflight: 5 | update_xml: false 6 | run_erc: true 7 | run_drc: true 8 | check_zone_fills: true 9 | ignore_unconnected: false 10 | filters: 11 | - filter: 'Ignore pad too close to pad for USB1' 12 | number: 19 13 | regex: 'USB1' 14 | - filter: 'Ignore pad too close to pad for Encoders' 15 | number: 19 16 | regex: 'Pad of SW\d+ on All copper layers' 17 | - filter: 'Puck' 18 | number: 47 19 | regex: 'Footprint PUCK1 on F.Cu' 20 | - filter: 'Enc' 21 | number: 45 22 | regex: 'Footprint H10 on F.Cu' 23 | 24 | outputs: 25 | - name: "Gerber files" 26 | comment: "Plot gerber files" 27 | type: gerber 28 | dir: gerber 29 | options: 30 | # generic layer options 31 | exclude_edge_layer: true 32 | exclude_pads_from_silkscreen: true 33 | use_aux_axis_as_origin: false 34 | plot_sheet_reference: false 35 | plot_footprint_refs: true 36 | plot_footprint_values: true 37 | force_plot_invisible_refs_vals: false 38 | tent_vias: true 39 | 40 | # gerber options 41 | line_width: 0.1 42 | subtract_mask_from_silk: false 43 | use_protel_extensions: true 44 | gerber_precision: 4.6 45 | create_gerber_job_file: true 46 | use_gerber_x2_attributes: true 47 | use_gerber_net_attributes: true 48 | 49 | layers: 50 | - layer: F.Cu 51 | - layer: B.Cu 52 | - layer: F.SilkS 53 | - layer: B.SilkS 54 | - layer: F.Mask 55 | - layer: B.Mask 56 | - layer: Edge.Cuts 57 | 58 | - name: "Drill files" 59 | comment: "Plot drill files" 60 | type: excellon 61 | dir: gerber 62 | options: 63 | metric_units: true 64 | pth_and_npth_single_file: false 65 | use_aux_axis_as_origin: false 66 | minimal_header: false 67 | mirror_y_axis: false 68 | map: 69 | type: 'ps' 70 | 71 | - name: "schema" 72 | comment: "Print schematic (PDF)" 73 | type: pdf_sch_print 74 | dir: doc 75 | options: 76 | output: '%f-schematic.%x' 77 | 78 | - name: "ibom" 79 | comment: "Iteractive bom" 80 | type: ibom 81 | dir: doc 82 | 83 | - name: "pcbdraw" 84 | comment: "2D render top" 85 | type: pcbdraw 86 | dir: doc 87 | options: 88 | style: '/opt/pcbdraw/pcbdraw/styles/jlcpcb-green-hasl.json' 89 | style: 90 | board: '#000000' 91 | copper: '#474543' 92 | 93 | - name: "pcbdraw" 94 | comment: "2D render bottom" 95 | type: pcbdraw 96 | dir: doc 97 | options: 98 | bottom: true 99 | style: '/opt/pcbdraw/pcbdraw/styles/jlcpcb-green-hasl.json' 100 | style: 101 | board: '#000000' 102 | copper: '#474543' 103 | 104 | -------------------------------------------------------------------------------- /scripts/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p release 4 | mkdir -p doc/release 5 | 6 | for DIR in torn_left torn_right case/PCB\ Case/plate case/PCB\ Case/base ; do 7 | mkdir -p $DIR/release 8 | 9 | if [[ $DIR == case/PCB\ Case/plate ]]; then 10 | OPTS='-s all' 11 | fi 12 | 13 | ~/.local/bin/kicad-exports -c scripts/kiplot.yml -e $DIR/*.sch -d $DIR/release $OPTS 14 | 15 | mv $DIR/release/doc/* doc/release 16 | done 17 | 18 | zip -r --junk-paths release/torn_left-gerber.zip torn_left/release/gerber 19 | zip -r --junk-paths release/torn_right-gerber.zip torn_right/release/gerber 20 | zip -r --junk-paths release/torn_plate-gerber.zip case/PCB\ Case/plate/release/gerber 21 | zip -r --junk-paths release/torn_base-gerber.zip case/PCB\ Case/base/release/gerber 22 | -------------------------------------------------------------------------------- /torn_left/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name footprints)(type KiCad)(uri ${KIPRJMOD}/../footprints.pretty)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /torn_left/release/drc_result.rpt: -------------------------------------------------------------------------------- 1 | ** Drc report for /mnt/torn_left/torn_left.kicad_pcb ** 2 | ** Created on 2020-09-21 19:47:14 ** 3 | 4 | ** Found 7 DRC errors ** 5 | ErrType(19): Pad too close to pad 6 | @(114.554 mm, 137.284 mm): Pad of SW22 on All copper layers 7 | @(114.618 mm, 139.709 mm): Pad A of SW22 on All copper layers 8 | ErrType(19): Pad too close to pad 9 | @(159.707 mm, 57.480 mm): Pad B1 of USB1 on All copper layers 10 | @(160.557 mm, 57.480 mm): Pad B4 of USB1 on All copper layers 11 | ErrType(19): Pad too close to pad 12 | @(159.712 mm, 58.805 mm): Pad A12 of USB1 on All copper layers 13 | @(160.562 mm, 58.805 mm): Pad A9 of USB1 on All copper layers 14 | ErrType(19): Pad too close to pad 15 | @(164.807 mm, 57.480 mm): Pad B9 of USB1 on All copper layers 16 | @(165.662 mm, 57.480 mm): Pad B12 of USB1 on All copper layers 17 | ErrType(19): Pad too close to pad 18 | @(164.812 mm, 58.805 mm): Pad A4 of USB1 on All copper layers 19 | @(165.662 mm, 58.805 mm): Pad A1 of USB1 on All copper layers 20 | ErrType(19): Pad too close to pad 21 | @(169.120 mm, 157.183 mm): Pad A of SW19 on All copper layers 22 | @(170.597 mm, 155.257 mm): Pad of SW19 on All copper layers 23 | ErrType(47): Footprint has incorrect courtyard (not a closed shape) 24 | @(126.619 mm, 104.394 mm): Footprint PUCK1 on F.Cu 25 | 26 | ** Found 0 unconnected pads ** 27 | 28 | ** End of Report ** 29 | -------------------------------------------------------------------------------- /torn_left/release/kiplot_errors.filter: -------------------------------------------------------------------------------- 1 | # Ignore pad too close to pad for USB1 2 | 19,USB1 3 | # Ignore pad too close to pad for Encoders 4 | 19,Pad of SW\d\d on All copper layers 5 | # Puck 6 | 47,Footprint PUCK1 on F.Cu 7 | -------------------------------------------------------------------------------- /torn_left/release/torn_left.erc: -------------------------------------------------------------------------------- 1 | ERC report (Mon Sep 21 19:47:09 2020, Encoding UTF8 ) 2 | 3 | ***** Sheet / 4 | ErrType(3): Pin connected to other pins, but not driven by any pin 5 | @(72.39 mm, 82.55 mm): Pin 1 (Power input) of component #PWR07 is not driven (Net 30). 6 | ErrType(3): Pin connected to other pins, but not driven by any pin 7 | @(132.08 mm, 74.93 mm): Pin 1 (Power input) of component #PWR011 is not driven (Net 31). 8 | 9 | ** ERC messages: 2 Errors 0 Warnings 2 10 | -------------------------------------------------------------------------------- /torn_left/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name torn_left-rescue)(type Legacy)(uri ${KIPRJMOD}/torn_left-rescue.lib)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /torn_left/torn_left-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # Connector_Generic_Conn_02x03_Odd_Even 5 | # 6 | DEF Connector_Generic_Conn_02x03_Odd_Even J 0 40 Y N 1 F N 7 | F0 "J" 50 200 50 H V C CNN 8 | F1 "Connector_Generic_Conn_02x03_Odd_Even" 50 -200 50 H V C CNN 9 | F2 "" 0 0 50 H I C CNN 10 | F3 "" 0 0 50 H I C CNN 11 | $FPLIST 12 | Connector*:*_2x??_* 13 | $ENDFPLIST 14 | DRAW 15 | S -50 -95 0 -105 1 1 6 N 16 | S -50 5 0 -5 1 1 6 N 17 | S -50 105 0 95 1 1 6 N 18 | S -50 150 150 -150 1 1 10 f 19 | S 150 -95 100 -105 1 1 6 N 20 | S 150 5 100 -5 1 1 6 N 21 | S 150 105 100 95 1 1 6 N 22 | X Pin_1 1 -200 100 150 R 50 50 1 1 P 23 | X Pin_2 2 300 100 150 L 50 50 1 1 P 24 | X Pin_3 3 -200 0 150 R 50 50 1 1 P 25 | X Pin_4 4 300 0 150 L 50 50 1 1 P 26 | X Pin_5 5 -200 -100 150 R 50 50 1 1 P 27 | X Pin_6 6 300 -100 150 L 50 50 1 1 P 28 | ENDDRAW 29 | ENDDEF 30 | # 31 | # Device_CP1_Small 32 | # 33 | DEF Device_CP1_Small C 0 10 N N 1 F N 34 | F0 "C" 10 70 50 H V L CNN 35 | F1 "Device_CP1_Small" 10 -80 50 H V L CNN 36 | F2 "" 0 0 50 H I C CNN 37 | F3 "" 0 0 50 H I C CNN 38 | $FPLIST 39 | CP_* 40 | $ENDFPLIST 41 | DRAW 42 | A 0 -140 125 1186 614 0 1 12 N -60 -30 60 -30 43 | P 2 0 1 12 -60 20 60 20 N 44 | P 2 0 1 0 -50 60 -30 60 N 45 | P 2 0 1 0 -40 50 -40 70 N 46 | X ~ 1 0 100 80 D 50 50 1 1 P 47 | X ~ 2 0 -100 80 U 50 50 1 1 P 48 | ENDDRAW 49 | ENDDEF 50 | # 51 | # Device_C_Small 52 | # 53 | DEF Device_C_Small C 0 10 N N 1 F N 54 | F0 "C" 10 70 50 H V L CNN 55 | F1 "Device_C_Small" 10 -80 50 H V L CNN 56 | F2 "" 0 0 50 H I C CNN 57 | F3 "" 0 0 50 H I C CNN 58 | $FPLIST 59 | C_* 60 | $ENDFPLIST 61 | DRAW 62 | P 2 0 1 13 -60 -20 60 -20 N 63 | P 2 0 1 12 -60 20 60 20 N 64 | X ~ 1 0 100 80 D 50 50 1 1 P 65 | X ~ 2 0 -100 80 U 50 50 1 1 P 66 | ENDDRAW 67 | ENDDEF 68 | # 69 | # Device_Crystal_Small 70 | # 71 | DEF Device_Crystal_Small Y 0 40 N N 1 F N 72 | F0 "Y" 0 100 50 H V C CNN 73 | F1 "Device_Crystal_Small" 0 -100 50 H V C CNN 74 | F2 "" 0 0 50 H I C CNN 75 | F3 "" 0 0 50 H I C CNN 76 | $FPLIST 77 | Crystal* 78 | $ENDFPLIST 79 | DRAW 80 | S -30 -60 30 60 0 1 0 N 81 | P 2 0 1 15 -50 -30 -50 30 N 82 | P 2 0 1 15 50 -30 50 30 N 83 | X 1 1 -100 0 50 R 50 50 1 1 P 84 | X 2 2 100 0 50 L 50 50 1 1 P 85 | ENDDRAW 86 | ENDDEF 87 | # 88 | # Device_D_Schottky_Small_ALT 89 | # 90 | DEF Device_D_Schottky_Small_ALT D 0 10 N N 1 F N 91 | F0 "D" -50 80 50 H V L CNN 92 | F1 "Device_D_Schottky_Small_ALT" -280 -80 50 H V L CNN 93 | F2 "" 0 0 50 V I C CNN 94 | F3 "" 0 0 50 V I C CNN 95 | $FPLIST 96 | TO-???* 97 | *_Diode_* 98 | *SingleDiode* 99 | D_* 100 | $ENDFPLIST 101 | DRAW 102 | P 2 0 1 0 -30 0 30 0 N 103 | P 4 0 1 10 30 -40 -30 0 30 40 30 -40 F 104 | P 6 0 1 10 -50 30 -50 40 -30 40 -30 -40 -10 -40 -10 -30 N 105 | X K 1 -100 0 70 R 50 50 1 1 P 106 | X A 2 100 0 70 L 50 50 1 1 P 107 | ENDDRAW 108 | ENDDEF 109 | # 110 | # Device_D_Small_ALT 111 | # 112 | DEF Device_D_Small_ALT D 0 10 N N 1 F N 113 | F0 "D" -50 80 50 H V L CNN 114 | F1 "Device_D_Small_ALT" -150 -80 50 H V L CNN 115 | F2 "" 0 0 50 V I C CNN 116 | F3 "" 0 0 50 V I C CNN 117 | $FPLIST 118 | TO-???* 119 | *_Diode_* 120 | *SingleDiode* 121 | D_* 122 | $ENDFPLIST 123 | DRAW 124 | P 2 0 1 10 -30 -40 -30 40 N 125 | P 2 0 1 0 -30 0 30 0 N 126 | P 4 0 1 10 30 -40 -30 0 30 40 30 -40 F 127 | X K 1 -100 0 70 R 50 50 1 1 P 128 | X A 2 100 0 70 L 50 50 1 1 P 129 | ENDDRAW 130 | ENDDEF 131 | # 132 | # Device_Polyfuse_Small 133 | # 134 | DEF Device_Polyfuse_Small F 0 0 N Y 1 F N 135 | F0 "F" -75 0 50 V V C CNN 136 | F1 "Device_Polyfuse_Small" 75 0 50 V V C CNN 137 | F2 "" 50 -200 50 H I L CNN 138 | F3 "" 0 0 50 H I C CNN 139 | $FPLIST 140 | *polyfuse* 141 | *PTC* 142 | $ENDFPLIST 143 | DRAW 144 | S -20 50 20 -50 0 1 0 N 145 | P 2 0 1 0 0 100 0 -100 N 146 | P 4 0 1 0 -40 50 -40 30 40 -30 40 -50 N 147 | X ~ 1 0 100 25 D 50 50 1 1 P 148 | X ~ 2 0 -100 25 U 50 50 1 1 P 149 | ENDDRAW 150 | ENDDEF 151 | # 152 | # Device_R_Small 153 | # 154 | DEF Device_R_Small R 0 10 N N 1 F N 155 | F0 "R" 30 20 50 H V L CNN 156 | F1 "Device_R_Small" 30 -40 50 H V L CNN 157 | F2 "" 0 0 50 H I C CNN 158 | F3 "" 0 0 50 H I C CNN 159 | $FPLIST 160 | R_* 161 | $ENDFPLIST 162 | DRAW 163 | S -30 70 30 -70 0 1 8 N 164 | X ~ 1 0 100 30 D 50 50 1 1 P 165 | X ~ 2 0 -100 30 U 50 50 1 1 P 166 | ENDDRAW 167 | ENDDEF 168 | # 169 | # Device_Rotary_Encoder_Switch 170 | # 171 | DEF Device_Rotary_Encoder_Switch SW 0 10 Y N 1 F N 172 | F0 "SW" 0 260 50 H V C CNN 173 | F1 "Device_Rotary_Encoder_Switch" 0 -260 50 H V C CNN 174 | F2 "" -150 160 50 H I C CNN 175 | F3 "" 0 260 50 H I C CNN 176 | $FPLIST 177 | RotaryEncoder*Switch* 178 | $ENDFPLIST 179 | DRAW 180 | A -15 -2 108 -899 899 0 1 10 N -15 -110 -15 105 181 | C -150 0 10 0 1 0 F 182 | C -15 0 75 0 1 10 N 183 | C 170 -40 5 0 1 10 N 184 | C 170 40 5 0 1 10 N 185 | S -200 200 200 -200 0 1 10 f 186 | P 2 0 1 10 -25 -70 -25 70 N 187 | P 2 0 1 10 -15 -70 -15 70 N 188 | P 2 0 1 10 -5 70 -5 -70 N 189 | P 2 0 1 10 150 0 135 0 N 190 | P 2 0 1 10 150 40 150 -40 N 191 | P 3 0 1 0 -200 -100 -150 -100 -150 -80 N 192 | P 3 0 1 0 -200 100 -150 100 -150 80 N 193 | P 3 0 1 10 10 -120 -20 -110 5 -95 N 194 | P 3 0 1 10 10 115 -20 105 5 90 N 195 | P 3 0 1 10 200 -100 170 -100 170 -40 N 196 | P 3 0 1 10 200 100 170 100 170 40 N 197 | P 4 0 1 0 -200 0 -150 0 -150 -40 -130 -80 N 198 | P 4 0 1 0 -170 0 -150 0 -150 40 -130 80 N 199 | X A A -300 100 100 R 50 50 1 1 P 200 | X B B -300 -100 100 R 50 50 1 1 P 201 | X C C -300 0 100 R 50 50 1 1 P 202 | X S1 S1 300 100 100 L 50 50 1 1 P 203 | X S2 S2 300 -100 100 L 50 50 1 1 P 204 | ENDDRAW 205 | ENDDEF 206 | # 207 | # Graphic_SYM_Arrow45_Small 208 | # 209 | DEF Graphic_SYM_Arrow45_Small #SYM 0 40 Y Y 1 F N 210 | F0 "#SYM" 170 40 50 H I C CNN 211 | F1 "Graphic_SYM_Arrow45_Small" 0 -90 50 H I C CNN 212 | F2 "" 0 0 50 H I C CNN 213 | F3 "" 0 0 50 H I C CNN 214 | DRAW 215 | P 2 0 1 10 50 -50 -60 60 N 216 | P 4 0 1 0 60 -60 10 -40 40 -10 60 -60 F 217 | ENDDRAW 218 | ENDDEF 219 | # 220 | # MCU_Microchip_ATmega_ATmega328P-PU 221 | # 222 | DEF MCU_Microchip_ATmega_ATmega328P-PU U 0 20 Y Y 1 F N 223 | F0 "U" -500 1450 50 H V L BNN 224 | F1 "MCU_Microchip_ATmega_ATmega328P-PU" 100 -1450 50 H V L TNN 225 | F2 "Package_DIP:DIP-28_W7.62mm" 0 0 50 H I C CIN 226 | F3 "" 0 0 50 H I C CNN 227 | ALIAS ATmega48P-20PU ATmega48A-PU ATmega48PA-PU ATmega88PV-10PU ATmega88P-20PU ATmega88A-PU ATmega88PA-PU ATmega168PV-10PU ATmega168P-20PU ATmega168A-PU ATmega168PA-PU ATmega328-PU ATmega328P-PU 228 | $FPLIST 229 | DIP*W7.62mm* 230 | $ENDFPLIST 231 | DRAW 232 | S -500 -1400 500 1400 0 1 10 f 233 | X ~RESET~/PC6 1 600 -300 100 L 50 50 1 1 B 234 | X XTAL2/PB7 10 600 500 100 L 50 50 1 1 B 235 | X PD5 11 600 -1000 100 L 50 50 1 1 B 236 | X PD6 12 600 -1100 100 L 50 50 1 1 B 237 | X PD7 13 600 -1200 100 L 50 50 1 1 B 238 | X PB0 14 600 1200 100 L 50 50 1 1 B 239 | X PB1 15 600 1100 100 L 50 50 1 1 B 240 | X PB2 16 600 1000 100 L 50 50 1 1 B 241 | X PB3 17 600 900 100 L 50 50 1 1 B 242 | X PB4 18 600 800 100 L 50 50 1 1 B 243 | X PB5 19 600 700 100 L 50 50 1 1 B 244 | X PD0 2 600 -500 100 L 50 50 1 1 B 245 | X AVCC 20 100 1500 100 D 50 50 1 1 W 246 | X AREF 21 -600 1200 100 R 50 50 1 1 P 247 | X GND 22 0 -1500 100 U 50 50 1 1 P N 248 | X PC0 23 600 300 100 L 50 50 1 1 B 249 | X PC1 24 600 200 100 L 50 50 1 1 B 250 | X PC2 25 600 100 100 L 50 50 1 1 B 251 | X PC3 26 600 0 100 L 50 50 1 1 B 252 | X PC4 27 600 -100 100 L 50 50 1 1 B 253 | X PC5 28 600 -200 100 L 50 50 1 1 B 254 | X PD1 3 600 -600 100 L 50 50 1 1 B 255 | X PD2 4 600 -700 100 L 50 50 1 1 B 256 | X PD3 5 600 -800 100 L 50 50 1 1 B 257 | X PD4 6 600 -900 100 L 50 50 1 1 B 258 | X VCC 7 0 1500 100 D 50 50 1 1 W 259 | X GND 8 0 -1500 100 U 50 50 1 1 W 260 | X XTAL1/PB6 9 600 600 100 L 50 50 1 1 B 261 | ENDDRAW 262 | ENDDEF 263 | # 264 | # Mechanical_MountingHole 265 | # 266 | DEF Mechanical_MountingHole H 0 40 Y Y 1 F N 267 | F0 "H" 0 200 50 H V C CNN 268 | F1 "Mechanical_MountingHole" 0 125 50 H V C CNN 269 | F2 "" 0 0 50 H I C CNN 270 | F3 "" 0 0 50 H I C CNN 271 | $FPLIST 272 | MountingHole* 273 | $ENDFPLIST 274 | DRAW 275 | C 0 0 50 0 1 50 N 276 | ENDDRAW 277 | ENDDEF 278 | # 279 | # SJ-43514_SJ-43514 280 | # 281 | DEF SJ-43514_SJ-43514 J 0 40 Y N 1 L N 282 | F0 "J" -300 330 50 H V L BNN 283 | F1 "SJ-43514_SJ-43514" -300 -400 50 H V L BNN 284 | F2 "CUI_SJ-43514" 0 0 50 H I L BNN 285 | F3 "1.04" 0 0 50 H I L BNN 286 | F4 "MANUFACTURER RECOMMENDATIONS" 0 0 50 H I L BNN 287 | F5 "CUI INC" 0 0 50 H I L BNN 288 | DRAW 289 | P 2 0 0 10 -300 -300 -300 300 N 290 | P 2 0 0 10 -300 300 300 300 N 291 | P 2 0 0 10 -240 -95 -160 -95 N 292 | P 2 0 0 10 -240 85 -240 -95 N 293 | P 2 0 0 10 -200 -200 300 -200 N 294 | P 2 0 0 10 -200 -100 -200 -200 N 295 | P 2 0 0 10 -160 -95 -160 85 N 296 | P 2 0 0 10 -160 85 -240 85 N 297 | P 2 0 0 10 -90 200 -40 130 N 298 | P 2 0 0 10 -40 130 10 200 N 299 | P 2 0 0 10 -15 -100 35 -30 N 300 | P 2 0 0 10 15 200 300 200 N 301 | P 2 0 0 10 35 -30 85 -100 N 302 | P 2 0 0 10 85 -100 300 -100 N 303 | P 2 0 0 10 95 100 145 40 N 304 | P 2 0 0 10 145 40 195 100 N 305 | P 2 0 0 10 195 100 300 100 N 306 | P 2 0 0 10 300 -300 -300 -300 N 307 | P 2 0 0 10 300 -200 300 -300 N 308 | P 2 0 0 10 300 -100 300 -200 N 309 | P 2 0 0 10 300 100 300 -100 N 310 | P 2 0 0 10 300 200 300 100 N 311 | P 2 0 0 10 300 300 300 200 N 312 | X ~ 1 400 -200 100 L 40 40 0 0 P 313 | X ~ 2 400 100 100 L 40 40 0 0 P 314 | X ~ 3 400 -100 100 L 40 40 0 0 P 315 | X ~ 4 400 200 100 L 40 40 0 0 P 316 | ENDDRAW 317 | ENDDEF 318 | # 319 | # Switch_SW_Push 320 | # 321 | DEF Switch_SW_Push SW 0 40 N N 1 F N 322 | F0 "SW" 50 100 50 H V L CNN 323 | F1 "Switch_SW_Push" 0 -60 50 H V C CNN 324 | F2 "" 0 200 50 H I C CNN 325 | F3 "" 0 200 50 H I C CNN 326 | DRAW 327 | C -80 0 20 0 1 0 N 328 | C 80 0 20 0 1 0 N 329 | P 2 0 1 0 0 50 0 120 N 330 | P 2 0 1 0 100 50 -100 50 N 331 | X 1 1 -200 0 100 R 50 50 0 1 P 332 | X 2 2 200 0 100 L 50 50 0 1 P 333 | ENDDRAW 334 | ENDDEF 335 | # 336 | # power_+5V 337 | # 338 | DEF power_+5V #PWR 0 0 Y Y 1 F P 339 | F0 "#PWR" 0 -150 50 H I C CNN 340 | F1 "power_+5V" 0 140 50 H V C CNN 341 | F2 "" 0 0 50 H I C CNN 342 | F3 "" 0 0 50 H I C CNN 343 | DRAW 344 | P 2 0 1 0 -30 50 0 100 N 345 | P 2 0 1 0 0 0 0 100 N 346 | P 2 0 1 0 0 100 30 50 N 347 | X +5V 1 0 0 0 U 50 50 1 1 W N 348 | ENDDRAW 349 | ENDDEF 350 | # 351 | # power_GND 352 | # 353 | DEF power_GND #PWR 0 0 Y Y 1 F P 354 | F0 "#PWR" 0 -250 50 H I C CNN 355 | F1 "power_GND" 0 -150 50 H V C CNN 356 | F2 "" 0 0 50 H I C CNN 357 | F3 "" 0 0 50 H I C CNN 358 | DRAW 359 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N 360 | X GND 1 0 0 0 D 50 50 1 1 W N 361 | ENDDRAW 362 | ENDDEF 363 | # 364 | # usb_c_gct_usb4085-type-c_USB_C_GCT_USB4085-Type-C 365 | # 366 | DEF usb_c_gct_usb4085-type-c_USB_C_GCT_USB4085-Type-C USB 0 40 Y Y 1 F N 367 | F0 "USB" -200 900 60 H V C CNN 368 | F1 "usb_c_gct_usb4085-type-c_USB_C_GCT_USB4085-Type-C" -400 -50 60 V V C CNN 369 | F2 "" 0 0 60 H I C CNN 370 | F3 "" 0 0 60 H I C CNN 371 | DRAW 372 | S -450 850 -350 -1000 0 1 0 f 373 | S 0 -1000 -350 850 0 1 0 f 374 | X GND A1 100 750 100 L 50 50 1 1 I 375 | X GND A12 100 -650 100 L 50 50 1 1 I 376 | X VBUS A4 100 550 100 L 50 50 1 1 I 377 | X CC1 A5 100 250 100 L 50 50 1 1 I 378 | X DP1 A6 100 50 100 L 50 50 1 1 I 379 | X DN1 A7 100 -50 100 L 50 50 1 1 I 380 | X SBU1 A8 100 -250 100 L 50 50 1 1 I 381 | X VBUS A9 100 -450 100 L 50 50 1 1 I 382 | X GND B1 100 -750 100 L 50 50 1 1 I 383 | X GND B12 100 650 100 L 50 50 1 1 I 384 | X VBUS B4 100 -550 100 L 50 50 1 1 I 385 | X CC2 B5 100 -350 100 L 50 50 1 1 I 386 | X DP2 B6 100 -150 100 L 50 50 1 1 I 387 | X DN2 B7 100 150 100 L 50 50 1 1 I 388 | X SBU2 B8 100 350 100 L 50 50 1 1 I 389 | X VBUS B9 100 450 100 L 50 50 1 1 I 390 | X SHIELD S1 100 -850 100 L 50 50 1 1 I 391 | ENDDRAW 392 | ENDDEF 393 | # 394 | #End Library 395 | -------------------------------------------------------------------------------- /torn_left/torn_left-rescue.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /torn_left/torn_left-rescue.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # SJ-43514-SJ-43514 5 | # 6 | DEF SJ-43514-SJ-43514 J 0 40 Y N 1 L N 7 | F0 "J" -300 330 50 H V L BNN 8 | F1 "SJ-43514-SJ-43514" -300 -400 50 H V L BNN 9 | F2 "CUI_SJ-43514" 0 0 50 H I L BNN 10 | F3 "1.04" 0 0 50 H I L BNN 11 | F4 "MANUFACTURER RECOMMENDATIONS" 0 0 50 H I L BNN 12 | F5 "CUI INC" 0 0 50 H I L BNN 13 | DRAW 14 | P 2 0 0 10 -300 -300 -300 300 N 15 | P 2 0 0 10 -300 300 300 300 N 16 | P 2 0 0 10 -240 -95 -160 -95 N 17 | P 2 0 0 10 -240 85 -240 -95 N 18 | P 2 0 0 10 -200 -200 300 -200 N 19 | P 2 0 0 10 -200 -100 -200 -200 N 20 | P 2 0 0 10 -160 -95 -160 85 N 21 | P 2 0 0 10 -160 85 -240 85 N 22 | P 2 0 0 10 -90 200 -40 130 N 23 | P 2 0 0 10 -40 130 10 200 N 24 | P 2 0 0 10 -15 -100 35 -30 N 25 | P 2 0 0 10 15 200 300 200 N 26 | P 2 0 0 10 35 -30 85 -100 N 27 | P 2 0 0 10 85 -100 300 -100 N 28 | P 2 0 0 10 95 100 145 40 N 29 | P 2 0 0 10 145 40 195 100 N 30 | P 2 0 0 10 195 100 300 100 N 31 | P 2 0 0 10 300 -300 -300 -300 N 32 | P 2 0 0 10 300 -200 300 -300 N 33 | P 2 0 0 10 300 -100 300 -200 N 34 | P 2 0 0 10 300 100 300 -100 N 35 | P 2 0 0 10 300 200 300 100 N 36 | P 2 0 0 10 300 300 300 200 N 37 | X ~ 1 400 -200 100 L 40 40 0 0 P 38 | X ~ 2 400 100 100 L 40 40 0 0 P 39 | X ~ 3 400 -100 100 L 40 40 0 0 P 40 | X ~ 4 400 200 100 L 40 40 0 0 P 41 | ENDDRAW 42 | ENDDEF 43 | # 44 | #End Library 45 | -------------------------------------------------------------------------------- /torn_left/torn_left.pro: -------------------------------------------------------------------------------- 1 | update=2020 August 06, Thursday 14:03:46 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [cvpcb] 9 | version=1 10 | NetIExt=net 11 | [eeschema] 12 | version=1 13 | LibDir= 14 | [eeschema/libraries] 15 | [schematic_editor] 16 | version=1 17 | PageLayoutDescrFile= 18 | PlotDirectoryName= 19 | SubpartIdSeparator=0 20 | SubpartFirstId=65 21 | NetFmtName=Pcbnew 22 | SpiceAjustPassiveValues=0 23 | LabSize=50 24 | ERC_TestSimilarLabels=1 25 | [pcbnew] 26 | version=1 27 | PageLayoutDescrFile= 28 | LastNetListRead=torn_left.net 29 | CopperLayerCount=2 30 | BoardThickness=1.6 31 | AllowMicroVias=0 32 | AllowBlindVias=0 33 | RequireCourtyardDefinitions=0 34 | ProhibitOverlappingCourtyards=1 35 | MinTrackWidth=0.15 36 | MinViaDiameter=0.4 37 | MinViaDrill=0.3 38 | MinMicroViaDiameter=0.2 39 | MinMicroViaDrill=0.09999999999999999 40 | MinHoleToHole=0.25 41 | TrackWidth1=0.3 42 | TrackWidth2=0.25 43 | TrackWidth3=0.3 44 | TrackWidth4=0.4 45 | TrackWidth5=0.6 46 | ViaDiameter1=1 47 | ViaDrill1=0.6 48 | ViaDiameter2=1.7 49 | ViaDrill2=1 50 | dPairWidth1=0.2 51 | dPairGap1=0.25 52 | dPairViaGap1=0.25 53 | SilkLineWidth=0.15 54 | SilkTextSizeV=1 55 | SilkTextSizeH=1 56 | SilkTextSizeThickness=0.15 57 | SilkTextItalic=0 58 | SilkTextUpright=1 59 | CopperLineWidth=0.2 60 | CopperTextSizeV=1 61 | CopperTextSizeH=1 62 | CopperTextThickness=0.2 63 | CopperTextItalic=0 64 | CopperTextUpright=1 65 | EdgeCutLineWidth=0.15 66 | CourtyardLineWidth=0.05 67 | OthersLineWidth=0.15 68 | OthersTextSizeV=1 69 | OthersTextSizeH=1 70 | OthersTextSizeThickness=0.15 71 | OthersTextItalic=0 72 | OthersTextUpright=1 73 | SolderMaskClearance=0.2 74 | SolderMaskMinWidth=0.2 75 | SolderPasteClearance=0 76 | SolderPasteRatio=-0 77 | [pcbnew/Layer.F.Cu] 78 | Name=F.Cu 79 | Type=0 80 | Enabled=1 81 | [pcbnew/Layer.In1.Cu] 82 | Name=In1.Cu 83 | Type=0 84 | Enabled=0 85 | [pcbnew/Layer.In2.Cu] 86 | Name=In2.Cu 87 | Type=0 88 | Enabled=0 89 | [pcbnew/Layer.In3.Cu] 90 | Name=In3.Cu 91 | Type=0 92 | Enabled=0 93 | [pcbnew/Layer.In4.Cu] 94 | Name=In4.Cu 95 | Type=0 96 | Enabled=0 97 | [pcbnew/Layer.In5.Cu] 98 | Name=In5.Cu 99 | Type=0 100 | Enabled=0 101 | [pcbnew/Layer.In6.Cu] 102 | Name=In6.Cu 103 | Type=0 104 | Enabled=0 105 | [pcbnew/Layer.In7.Cu] 106 | Name=In7.Cu 107 | Type=0 108 | Enabled=0 109 | [pcbnew/Layer.In8.Cu] 110 | Name=In8.Cu 111 | Type=0 112 | Enabled=0 113 | [pcbnew/Layer.In9.Cu] 114 | Name=In9.Cu 115 | Type=0 116 | Enabled=0 117 | [pcbnew/Layer.In10.Cu] 118 | Name=In10.Cu 119 | Type=0 120 | Enabled=0 121 | [pcbnew/Layer.In11.Cu] 122 | Name=In11.Cu 123 | Type=0 124 | Enabled=0 125 | [pcbnew/Layer.In12.Cu] 126 | Name=In12.Cu 127 | Type=0 128 | Enabled=0 129 | [pcbnew/Layer.In13.Cu] 130 | Name=In13.Cu 131 | Type=0 132 | Enabled=0 133 | [pcbnew/Layer.In14.Cu] 134 | Name=In14.Cu 135 | Type=0 136 | Enabled=0 137 | [pcbnew/Layer.In15.Cu] 138 | Name=In15.Cu 139 | Type=0 140 | Enabled=0 141 | [pcbnew/Layer.In16.Cu] 142 | Name=In16.Cu 143 | Type=0 144 | Enabled=0 145 | [pcbnew/Layer.In17.Cu] 146 | Name=In17.Cu 147 | Type=0 148 | Enabled=0 149 | [pcbnew/Layer.In18.Cu] 150 | Name=In18.Cu 151 | Type=0 152 | Enabled=0 153 | [pcbnew/Layer.In19.Cu] 154 | Name=In19.Cu 155 | Type=0 156 | Enabled=0 157 | [pcbnew/Layer.In20.Cu] 158 | Name=In20.Cu 159 | Type=0 160 | Enabled=0 161 | [pcbnew/Layer.In21.Cu] 162 | Name=In21.Cu 163 | Type=0 164 | Enabled=0 165 | [pcbnew/Layer.In22.Cu] 166 | Name=In22.Cu 167 | Type=0 168 | Enabled=0 169 | [pcbnew/Layer.In23.Cu] 170 | Name=In23.Cu 171 | Type=0 172 | Enabled=0 173 | [pcbnew/Layer.In24.Cu] 174 | Name=In24.Cu 175 | Type=0 176 | Enabled=0 177 | [pcbnew/Layer.In25.Cu] 178 | Name=In25.Cu 179 | Type=0 180 | Enabled=0 181 | [pcbnew/Layer.In26.Cu] 182 | Name=In26.Cu 183 | Type=0 184 | Enabled=0 185 | [pcbnew/Layer.In27.Cu] 186 | Name=In27.Cu 187 | Type=0 188 | Enabled=0 189 | [pcbnew/Layer.In28.Cu] 190 | Name=In28.Cu 191 | Type=0 192 | Enabled=0 193 | [pcbnew/Layer.In29.Cu] 194 | Name=In29.Cu 195 | Type=0 196 | Enabled=0 197 | [pcbnew/Layer.In30.Cu] 198 | Name=In30.Cu 199 | Type=0 200 | Enabled=0 201 | [pcbnew/Layer.B.Cu] 202 | Name=B.Cu 203 | Type=0 204 | Enabled=1 205 | [pcbnew/Layer.B.Adhes] 206 | Enabled=1 207 | [pcbnew/Layer.F.Adhes] 208 | Enabled=1 209 | [pcbnew/Layer.B.Paste] 210 | Enabled=1 211 | [pcbnew/Layer.F.Paste] 212 | Enabled=1 213 | [pcbnew/Layer.B.SilkS] 214 | Enabled=1 215 | [pcbnew/Layer.F.SilkS] 216 | Enabled=1 217 | [pcbnew/Layer.B.Mask] 218 | Enabled=1 219 | [pcbnew/Layer.F.Mask] 220 | Enabled=1 221 | [pcbnew/Layer.Dwgs.User] 222 | Enabled=1 223 | [pcbnew/Layer.Cmts.User] 224 | Enabled=1 225 | [pcbnew/Layer.Eco1.User] 226 | Enabled=1 227 | [pcbnew/Layer.Eco2.User] 228 | Enabled=1 229 | [pcbnew/Layer.Edge.Cuts] 230 | Enabled=1 231 | [pcbnew/Layer.Margin] 232 | Enabled=1 233 | [pcbnew/Layer.B.CrtYd] 234 | Enabled=1 235 | [pcbnew/Layer.F.CrtYd] 236 | Enabled=1 237 | [pcbnew/Layer.B.Fab] 238 | Enabled=1 239 | [pcbnew/Layer.F.Fab] 240 | Enabled=1 241 | [pcbnew/Layer.Rescue] 242 | Enabled=0 243 | [pcbnew/Netclasses] 244 | [pcbnew/Netclasses/Default] 245 | Name=Default 246 | Clearance=0.2 247 | TrackWidth=0.3 248 | ViaDiameter=1 249 | ViaDrill=0.6 250 | uViaDiameter=0.3 251 | uViaDrill=0.1 252 | dPairWidth=0.2 253 | dPairGap=0.25 254 | dPairViaGap=0.25 255 | [pcbnew/Netclasses/1] 256 | Name=Power 257 | Clearance=0.3 258 | TrackWidth=0.6 259 | ViaDiameter=1.2 260 | ViaDrill=0.8 261 | uViaDiameter=0.3 262 | uViaDrill=0.1 263 | dPairWidth=0.2 264 | dPairGap=0.25 265 | dPairViaGap=0.25 266 | -------------------------------------------------------------------------------- /torn_right/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name footprints)(type KiCad)(uri ${KIPRJMOD}/../footprints.pretty)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /torn_right/release/drc_result.rpt: -------------------------------------------------------------------------------- 1 | ** Drc report for /mnt/torn_right/torn_right.kicad_pcb ** 2 | ** Created on 2020-09-19 05:57:41 ** 3 | 4 | ** Found 2 DRC errors ** 5 | ErrType(19): Pad too close to pad 6 | @(66.374 mm, 158.454 mm): Pad of SW41 on All copper layers 7 | @(67.950 mm, 160.300 mm): Pad A of SW41 on All copper layers 8 | ErrType(19): Pad too close to pad 9 | @(121.285 mm, 137.160 mm): Pad of SW44 on All copper layers 10 | @(121.349 mm, 139.586 mm): Pad A of SW44 on All copper layers 11 | 12 | ** Found 0 unconnected pads ** 13 | 14 | ** End of Report ** 15 | -------------------------------------------------------------------------------- /torn_right/release/kiplot_errors.filter: -------------------------------------------------------------------------------- 1 | # Ignore pad too close to pad for USB1 2 | 19,USB1 3 | # Ignore pad too close to pad for Encoders 4 | 19,Pad of SW\d\d on All copper layers 5 | -------------------------------------------------------------------------------- /torn_right/release/torn_right.erc: -------------------------------------------------------------------------------- 1 | ERC report (Sat Sep 19 07:34:58 2020, Encoding UTF8 ) 2 | 3 | ***** Sheet / 4 | ErrType(3): Pin connected to other pins, but not driven by any pin 5 | @(144.78 mm, 62.23 mm): Pin 1 (Power input) of component #PWR0108 is not driven (Net 19). 6 | ErrType(3): Pin connected to other pins, but not driven by any pin 7 | @(59.69 mm, 27.94 mm): Pin 1 (Power input) of component #PWR03 is not driven (Net 20). 8 | 9 | ** ERC messages: 2 Errors 0 Warnings 2 10 | -------------------------------------------------------------------------------- /torn_right/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name torn_right-rescue)(type Legacy)(uri ${KIPRJMOD}/torn_right-rescue.lib)(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /torn_right/torn_right-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # Connector_Generic_Conn_01x04 5 | # 6 | DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N 7 | F0 "J" 0 200 50 H V C CNN 8 | F1 "Connector_Generic_Conn_01x04" 0 -300 50 H V C CNN 9 | F2 "" 0 0 50 H I C CNN 10 | F3 "" 0 0 50 H I C CNN 11 | $FPLIST 12 | Connector*:*_1x??_* 13 | $ENDFPLIST 14 | DRAW 15 | S -50 -195 0 -205 1 1 6 N 16 | S -50 -95 0 -105 1 1 6 N 17 | S -50 5 0 -5 1 1 6 N 18 | S -50 105 0 95 1 1 6 N 19 | S -50 150 50 -250 1 1 10 f 20 | X Pin_1 1 -200 100 150 R 50 50 1 1 P 21 | X Pin_2 2 -200 0 150 R 50 50 1 1 P 22 | X Pin_3 3 -200 -100 150 R 50 50 1 1 P 23 | X Pin_4 4 -200 -200 150 R 50 50 1 1 P 24 | ENDDRAW 25 | ENDDEF 26 | # 27 | # Device_C 28 | # 29 | DEF Device_C C 0 10 N Y 1 F N 30 | F0 "C" 25 100 50 H V L CNN 31 | F1 "Device_C" 25 -100 50 H V L CNN 32 | F2 "" 38 -150 50 H I C CNN 33 | F3 "" 0 0 50 H I C CNN 34 | $FPLIST 35 | C_* 36 | $ENDFPLIST 37 | DRAW 38 | P 2 0 1 20 -80 -30 80 -30 N 39 | P 2 0 1 20 -80 30 80 30 N 40 | X ~ 1 0 150 110 D 50 50 1 1 P 41 | X ~ 2 0 -150 110 U 50 50 1 1 P 42 | ENDDRAW 43 | ENDDEF 44 | # 45 | # Device_D_Small_ALT 46 | # 47 | DEF Device_D_Small_ALT D 0 10 N N 1 F N 48 | F0 "D" -50 80 50 H V L CNN 49 | F1 "Device_D_Small_ALT" -150 -80 50 H V L CNN 50 | F2 "" 0 0 50 V I C CNN 51 | F3 "" 0 0 50 V I C CNN 52 | $FPLIST 53 | TO-???* 54 | *_Diode_* 55 | *SingleDiode* 56 | D_* 57 | $ENDFPLIST 58 | DRAW 59 | P 2 0 1 10 -30 -40 -30 40 N 60 | P 2 0 1 0 -30 0 30 0 N 61 | P 4 0 1 10 30 -40 -30 0 30 40 30 -40 F 62 | X K 1 -100 0 70 R 50 50 1 1 P 63 | X A 2 100 0 70 L 50 50 1 1 P 64 | ENDDRAW 65 | ENDDEF 66 | # 67 | # Device_LED 68 | # 69 | DEF Device_LED D 0 40 N N 1 F N 70 | F0 "D" 0 100 50 H V C CNN 71 | F1 "Device_LED" 0 -100 50 H V C CNN 72 | F2 "" 0 0 50 H I C CNN 73 | F3 "" 0 0 50 H I C CNN 74 | $FPLIST 75 | LED* 76 | LED_SMD:* 77 | LED_THT:* 78 | $ENDFPLIST 79 | DRAW 80 | P 2 0 1 10 -50 -50 -50 50 N 81 | P 2 0 1 0 -50 0 50 0 N 82 | P 4 0 1 10 50 -50 50 50 -50 0 50 -50 N 83 | P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N 84 | P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N 85 | X K 1 -150 0 100 R 50 50 1 1 P 86 | X A 2 150 0 100 L 50 50 1 1 P 87 | ENDDRAW 88 | ENDDEF 89 | # 90 | # Device_R 91 | # 92 | DEF Device_R R 0 0 N Y 1 F N 93 | F0 "R" 80 0 50 V V C CNN 94 | F1 "Device_R" 0 0 50 V V C CNN 95 | F2 "" -70 0 50 V I C CNN 96 | F3 "" 0 0 50 H I C CNN 97 | $FPLIST 98 | R_* 99 | $ENDFPLIST 100 | DRAW 101 | S -40 -100 40 100 0 1 10 N 102 | X ~ 1 0 150 50 D 50 50 1 1 P 103 | X ~ 2 0 -150 50 U 50 50 1 1 P 104 | ENDDRAW 105 | ENDDEF 106 | # 107 | # Device_Rotary_Encoder_Switch 108 | # 109 | DEF Device_Rotary_Encoder_Switch SW 0 10 Y N 1 F N 110 | F0 "SW" 0 260 50 H V C CNN 111 | F1 "Device_Rotary_Encoder_Switch" 0 -260 50 H V C CNN 112 | F2 "" -150 160 50 H I C CNN 113 | F3 "" 0 260 50 H I C CNN 114 | $FPLIST 115 | RotaryEncoder*Switch* 116 | $ENDFPLIST 117 | DRAW 118 | A -15 -2 108 -899 899 0 1 10 N -15 -110 -15 105 119 | C -150 0 10 0 1 0 F 120 | C -15 0 75 0 1 10 N 121 | C 170 -40 5 0 1 10 N 122 | C 170 40 5 0 1 10 N 123 | S -200 200 200 -200 0 1 10 f 124 | P 2 0 1 10 -25 -70 -25 70 N 125 | P 2 0 1 10 -15 -70 -15 70 N 126 | P 2 0 1 10 -5 70 -5 -70 N 127 | P 2 0 1 10 150 0 135 0 N 128 | P 2 0 1 10 150 40 150 -40 N 129 | P 3 0 1 0 -200 -100 -150 -100 -150 -80 N 130 | P 3 0 1 0 -200 100 -150 100 -150 80 N 131 | P 3 0 1 10 10 -120 -20 -110 5 -95 N 132 | P 3 0 1 10 10 115 -20 105 5 90 N 133 | P 3 0 1 10 200 -100 170 -100 170 -40 N 134 | P 3 0 1 10 200 100 170 100 170 40 N 135 | P 4 0 1 0 -200 0 -150 0 -150 -40 -130 -80 N 136 | P 4 0 1 0 -170 0 -150 0 -150 40 -130 80 N 137 | X A A -300 100 100 R 50 50 1 1 P 138 | X B B -300 -100 100 R 50 50 1 1 P 139 | X C C -300 0 100 R 50 50 1 1 P 140 | X S1 S1 300 100 100 L 50 50 1 1 P 141 | X S2 S2 300 -100 100 L 50 50 1 1 P 142 | ENDDRAW 143 | ENDDEF 144 | # 145 | # Graphic_SYM_Arrow45_Small 146 | # 147 | DEF Graphic_SYM_Arrow45_Small #SYM 0 40 Y Y 1 F N 148 | F0 "#SYM" 170 40 50 H I C CNN 149 | F1 "Graphic_SYM_Arrow45_Small" 0 -90 50 H I C CNN 150 | F2 "" 0 0 50 H I C CNN 151 | F3 "" 0 0 50 H I C CNN 152 | DRAW 153 | P 2 0 1 10 50 -50 -60 60 N 154 | P 4 0 1 0 60 -60 10 -40 40 -10 60 -60 F 155 | ENDDRAW 156 | ENDDEF 157 | # 158 | # Interface_Expansion_MCP23017_SP 159 | # 160 | DEF Interface_Expansion_MCP23017_SP U 0 40 Y Y 1 F N 161 | F0 "U" -450 950 50 H V C CNN 162 | F1 "Interface_Expansion_MCP23017_SP" 0 0 50 H V C CNN 163 | F2 "Package_DIP:DIP-28_W7.62mm" 200 -1000 50 H I L CNN 164 | F3 "" 200 -1100 50 H I L CNN 165 | $FPLIST 166 | DIP*W7.62mm* 167 | $ENDFPLIST 168 | DRAW 169 | S -500 900 500 -900 0 1 10 f 170 | X GPB0 1 700 800 200 L 50 50 1 1 B 171 | X VSS 10 0 -1100 200 U 50 50 1 1 W 172 | X NC 11 -500 600 200 R 50 50 1 1 N N 173 | X SCK 12 -700 700 200 R 50 50 1 1 I 174 | X SDA 13 -700 800 200 R 50 50 1 1 B 175 | X NC 14 -500 500 200 R 50 50 1 1 N N 176 | X A0 15 -700 -800 200 R 50 50 1 1 I 177 | X A1 16 -700 -700 200 R 50 50 1 1 I 178 | X A2 17 -700 -600 200 R 50 50 1 1 I 179 | X ~RESET~ 18 -700 -100 200 R 50 50 1 1 I 180 | X INTB 19 -700 200 200 R 50 50 1 1 T 181 | X GPB1 2 700 700 200 L 50 50 1 1 B 182 | X INTA 20 -700 100 200 R 50 50 1 1 T 183 | X GPA0 21 700 -100 200 L 50 50 1 1 B 184 | X GPA1 22 700 -200 200 L 50 50 1 1 B 185 | X GPA2 23 700 -300 200 L 50 50 1 1 B 186 | X GPA3 24 700 -400 200 L 50 50 1 1 B 187 | X GPA4 25 700 -500 200 L 50 50 1 1 B 188 | X GPA5 26 700 -600 200 L 50 50 1 1 B 189 | X GPA6 27 700 -700 200 L 50 50 1 1 B 190 | X GPA7 28 700 -800 200 L 50 50 1 1 B 191 | X GPB2 3 700 600 200 L 50 50 1 1 B 192 | X GPB3 4 700 500 200 L 50 50 1 1 B 193 | X GPB4 5 700 400 200 L 50 50 1 1 B 194 | X GPB5 6 700 300 200 L 50 50 1 1 B 195 | X GPB6 7 700 200 200 L 50 50 1 1 B 196 | X GPB7 8 700 100 200 L 50 50 1 1 B 197 | X VDD 9 0 1100 200 D 50 50 1 1 W 198 | ENDDRAW 199 | ENDDEF 200 | # 201 | # Mechanical_MountingHole 202 | # 203 | DEF Mechanical_MountingHole H 0 40 Y Y 1 F N 204 | F0 "H" 0 200 50 H V C CNN 205 | F1 "Mechanical_MountingHole" 0 125 50 H V C CNN 206 | F2 "" 0 0 50 H I C CNN 207 | F3 "" 0 0 50 H I C CNN 208 | $FPLIST 209 | MountingHole* 210 | $ENDFPLIST 211 | DRAW 212 | C 0 0 50 0 1 50 N 213 | ENDDRAW 214 | ENDDEF 215 | # 216 | # SJ-43514_SJ-43514 217 | # 218 | DEF SJ-43514_SJ-43514 J 0 40 Y N 1 L N 219 | F0 "J" -300 330 50 H V L BNN 220 | F1 "SJ-43514_SJ-43514" -300 -400 50 H V L BNN 221 | F2 "CUI_SJ-43514" 0 0 50 H I L BNN 222 | F3 "1.04" 0 0 50 H I L BNN 223 | F4 "MANUFACTURER RECOMMENDATIONS" 0 0 50 H I L BNN 224 | F5 "CUI INC" 0 0 50 H I L BNN 225 | DRAW 226 | P 2 0 0 10 -300 -300 -300 300 N 227 | P 2 0 0 10 -300 300 300 300 N 228 | P 2 0 0 10 -240 -95 -160 -95 N 229 | P 2 0 0 10 -240 85 -240 -95 N 230 | P 2 0 0 10 -200 -200 300 -200 N 231 | P 2 0 0 10 -200 -100 -200 -200 N 232 | P 2 0 0 10 -160 -95 -160 85 N 233 | P 2 0 0 10 -160 85 -240 85 N 234 | P 2 0 0 10 -90 200 -40 130 N 235 | P 2 0 0 10 -40 130 10 200 N 236 | P 2 0 0 10 -15 -100 35 -30 N 237 | P 2 0 0 10 15 200 300 200 N 238 | P 2 0 0 10 35 -30 85 -100 N 239 | P 2 0 0 10 85 -100 300 -100 N 240 | P 2 0 0 10 95 100 145 40 N 241 | P 2 0 0 10 145 40 195 100 N 242 | P 2 0 0 10 195 100 300 100 N 243 | P 2 0 0 10 300 -300 -300 -300 N 244 | P 2 0 0 10 300 -200 300 -300 N 245 | P 2 0 0 10 300 -100 300 -200 N 246 | P 2 0 0 10 300 100 300 -100 N 247 | P 2 0 0 10 300 200 300 100 N 248 | P 2 0 0 10 300 300 300 200 N 249 | X ~ 1 400 -200 100 L 40 40 0 0 P 250 | X ~ 2 400 100 100 L 40 40 0 0 P 251 | X ~ 3 400 -100 100 L 40 40 0 0 P 252 | X ~ 4 400 200 100 L 40 40 0 0 P 253 | ENDDRAW 254 | ENDDEF 255 | # 256 | # Switch_SW_Push 257 | # 258 | DEF Switch_SW_Push SW 0 40 N N 1 F N 259 | F0 "SW" 50 100 50 H V L CNN 260 | F1 "Switch_SW_Push" 0 -60 50 H V C CNN 261 | F2 "" 0 200 50 H I C CNN 262 | F3 "" 0 200 50 H I C CNN 263 | DRAW 264 | C -80 0 20 0 1 0 N 265 | C 80 0 20 0 1 0 N 266 | P 2 0 1 0 0 50 0 120 N 267 | P 2 0 1 0 100 50 -100 50 N 268 | X 1 1 -200 0 100 R 50 50 0 1 P 269 | X 2 2 200 0 100 L 50 50 0 1 P 270 | ENDDRAW 271 | ENDDEF 272 | # 273 | # power_+5V 274 | # 275 | DEF power_+5V #PWR 0 0 Y Y 1 F P 276 | F0 "#PWR" 0 -150 50 H I C CNN 277 | F1 "power_+5V" 0 140 50 H V C CNN 278 | F2 "" 0 0 50 H I C CNN 279 | F3 "" 0 0 50 H I C CNN 280 | DRAW 281 | P 2 0 1 0 -30 50 0 100 N 282 | P 2 0 1 0 0 0 0 100 N 283 | P 2 0 1 0 0 100 30 50 N 284 | X +5V 1 0 0 0 U 50 50 1 1 W N 285 | ENDDRAW 286 | ENDDEF 287 | # 288 | # power_GND 289 | # 290 | DEF power_GND #PWR 0 0 Y Y 1 F P 291 | F0 "#PWR" 0 -250 50 H I C CNN 292 | F1 "power_GND" 0 -150 50 H V C CNN 293 | F2 "" 0 0 50 H I C CNN 294 | F3 "" 0 0 50 H I C CNN 295 | DRAW 296 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N 297 | X GND 1 0 0 0 D 50 50 1 1 W N 298 | ENDDRAW 299 | ENDDEF 300 | # 301 | #End Library 302 | -------------------------------------------------------------------------------- /torn_right/torn_right-rescue.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /torn_right/torn_right-rescue.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # SJ-43514-SJ-43514 5 | # 6 | DEF SJ-43514-SJ-43514 J 0 40 Y N 1 L N 7 | F0 "J" -300 330 50 H V L BNN 8 | F1 "SJ-43514-SJ-43514" -300 -400 50 H V L BNN 9 | F2 "CUI_SJ-43514" 0 0 50 H I L BNN 10 | F3 "1.04" 0 0 50 H I L BNN 11 | F4 "MANUFACTURER RECOMMENDATIONS" 0 0 50 H I L BNN 12 | F5 "CUI INC" 0 0 50 H I L BNN 13 | DRAW 14 | P 2 0 0 10 -300 -300 -300 300 N 15 | P 2 0 0 10 -300 300 300 300 N 16 | P 2 0 0 10 -240 -95 -160 -95 N 17 | P 2 0 0 10 -240 85 -240 -95 N 18 | P 2 0 0 10 -200 -200 300 -200 N 19 | P 2 0 0 10 -200 -100 -200 -200 N 20 | P 2 0 0 10 -160 -95 -160 85 N 21 | P 2 0 0 10 -160 85 -240 85 N 22 | P 2 0 0 10 -90 200 -40 130 N 23 | P 2 0 0 10 -40 130 10 200 N 24 | P 2 0 0 10 -15 -100 35 -30 N 25 | P 2 0 0 10 15 200 300 200 N 26 | P 2 0 0 10 35 -30 85 -100 N 27 | P 2 0 0 10 85 -100 300 -100 N 28 | P 2 0 0 10 95 100 145 40 N 29 | P 2 0 0 10 145 40 195 100 N 30 | P 2 0 0 10 195 100 300 100 N 31 | P 2 0 0 10 300 -300 -300 -300 N 32 | P 2 0 0 10 300 -200 300 -300 N 33 | P 2 0 0 10 300 -100 300 -200 N 34 | P 2 0 0 10 300 100 300 -100 N 35 | P 2 0 0 10 300 200 300 100 N 36 | P 2 0 0 10 300 300 300 200 N 37 | X ~ 1 400 -200 100 L 40 40 0 0 P 38 | X ~ 2 400 100 100 L 40 40 0 0 P 39 | X ~ 3 400 -100 100 L 40 40 0 0 P 40 | X ~ 4 400 200 100 L 40 40 0 0 P 41 | ENDDRAW 42 | ENDDEF 43 | # 44 | # USB_C_GCT_USB4085-Type-C-cftkb 45 | # 46 | DEF USB_C_GCT_USB4085-Type-C-cftkb USB 0 40 Y Y 1 F N 47 | F0 "USB" -200 900 60 H V C CNN 48 | F1 "USB_C_GCT_USB4085-Type-C-cftkb" -400 -50 60 V V C CNN 49 | F2 "" 0 0 60 H I C CNN 50 | F3 "" 0 0 60 H I C CNN 51 | DRAW 52 | S -450 850 -350 -1000 0 1 0 f 53 | S 0 -1000 -350 850 0 1 0 f 54 | X GND A1 100 750 100 L 50 50 1 1 I 55 | X GND A12 100 -650 100 L 50 50 1 1 I 56 | X VBUS A4 100 550 100 L 50 50 1 1 I 57 | X CC1 A5 100 250 100 L 50 50 1 1 I 58 | X DP1 A6 100 50 100 L 50 50 1 1 I 59 | X DN1 A7 100 -50 100 L 50 50 1 1 I 60 | X SBU1 A8 100 -250 100 L 50 50 1 1 I 61 | X VBUS A9 100 -450 100 L 50 50 1 1 I 62 | X GND B1 100 -750 100 L 50 50 1 1 I 63 | X GND B12 100 650 100 L 50 50 1 1 I 64 | X VBUS B4 100 -550 100 L 50 50 1 1 I 65 | X CC2 B5 100 -350 100 L 50 50 1 1 I 66 | X DP2 B6 100 -150 100 L 50 50 1 1 I 67 | X DN2 B7 100 150 100 L 50 50 1 1 I 68 | X SBU2 B8 100 350 100 L 50 50 1 1 I 69 | X VBUS B9 100 450 100 L 50 50 1 1 I 70 | X SHIELD S1 100 -850 100 L 50 50 1 1 I 71 | ENDDRAW 72 | ENDDEF 73 | # 74 | #End Library 75 | -------------------------------------------------------------------------------- /torn_right/torn_right.pro: -------------------------------------------------------------------------------- 1 | update=2020 August 06, Thursday 22:42:44 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [cvpcb] 9 | version=1 10 | NetIExt=net 11 | [eeschema] 12 | version=1 13 | LibDir= 14 | [eeschema/libraries] 15 | [schematic_editor] 16 | version=1 17 | PageLayoutDescrFile= 18 | PlotDirectoryName= 19 | SubpartIdSeparator=0 20 | SubpartFirstId=65 21 | NetFmtName=Pcbnew 22 | SpiceAjustPassiveValues=0 23 | LabSize=50 24 | ERC_TestSimilarLabels=1 25 | [pcbnew] 26 | version=1 27 | PageLayoutDescrFile= 28 | LastNetListRead=torn_right.net 29 | CopperLayerCount=2 30 | BoardThickness=1.6 31 | AllowMicroVias=0 32 | AllowBlindVias=0 33 | RequireCourtyardDefinitions=0 34 | ProhibitOverlappingCourtyards=1 35 | MinTrackWidth=0.15 36 | MinViaDiameter=0.4 37 | MinViaDrill=0.3 38 | MinMicroViaDiameter=0.2 39 | MinMicroViaDrill=0.09999999999999999 40 | MinHoleToHole=0.25 41 | TrackWidth1=0.3 42 | TrackWidth2=0.25 43 | TrackWidth3=0.6 44 | ViaDiameter1=1 45 | ViaDrill1=0.6 46 | ViaDiameter2=1.7 47 | ViaDrill2=1 48 | dPairWidth1=0.2 49 | dPairGap1=0.25 50 | dPairViaGap1=0.25 51 | SilkLineWidth=0.15 52 | SilkTextSizeV=1 53 | SilkTextSizeH=1 54 | SilkTextSizeThickness=0.15 55 | SilkTextItalic=0 56 | SilkTextUpright=1 57 | CopperLineWidth=0.2 58 | CopperTextSizeV=1 59 | CopperTextSizeH=1 60 | CopperTextThickness=0.2 61 | CopperTextItalic=0 62 | CopperTextUpright=1 63 | EdgeCutLineWidth=0.15 64 | CourtyardLineWidth=0.05 65 | OthersLineWidth=0.15 66 | OthersTextSizeV=1 67 | OthersTextSizeH=1 68 | OthersTextSizeThickness=0.15 69 | OthersTextItalic=0 70 | OthersTextUpright=1 71 | SolderMaskClearance=0.2 72 | SolderMaskMinWidth=0.2 73 | SolderPasteClearance=0 74 | SolderPasteRatio=-0 75 | [pcbnew/Layer.F.Cu] 76 | Name=F.Cu 77 | Type=0 78 | Enabled=1 79 | [pcbnew/Layer.In1.Cu] 80 | Name=In1.Cu 81 | Type=0 82 | Enabled=0 83 | [pcbnew/Layer.In2.Cu] 84 | Name=In2.Cu 85 | Type=0 86 | Enabled=0 87 | [pcbnew/Layer.In3.Cu] 88 | Name=In3.Cu 89 | Type=0 90 | Enabled=0 91 | [pcbnew/Layer.In4.Cu] 92 | Name=In4.Cu 93 | Type=0 94 | Enabled=0 95 | [pcbnew/Layer.In5.Cu] 96 | Name=In5.Cu 97 | Type=0 98 | Enabled=0 99 | [pcbnew/Layer.In6.Cu] 100 | Name=In6.Cu 101 | Type=0 102 | Enabled=0 103 | [pcbnew/Layer.In7.Cu] 104 | Name=In7.Cu 105 | Type=0 106 | Enabled=0 107 | [pcbnew/Layer.In8.Cu] 108 | Name=In8.Cu 109 | Type=0 110 | Enabled=0 111 | [pcbnew/Layer.In9.Cu] 112 | Name=In9.Cu 113 | Type=0 114 | Enabled=0 115 | [pcbnew/Layer.In10.Cu] 116 | Name=In10.Cu 117 | Type=0 118 | Enabled=0 119 | [pcbnew/Layer.In11.Cu] 120 | Name=In11.Cu 121 | Type=0 122 | Enabled=0 123 | [pcbnew/Layer.In12.Cu] 124 | Name=In12.Cu 125 | Type=0 126 | Enabled=0 127 | [pcbnew/Layer.In13.Cu] 128 | Name=In13.Cu 129 | Type=0 130 | Enabled=0 131 | [pcbnew/Layer.In14.Cu] 132 | Name=In14.Cu 133 | Type=0 134 | Enabled=0 135 | [pcbnew/Layer.In15.Cu] 136 | Name=In15.Cu 137 | Type=0 138 | Enabled=0 139 | [pcbnew/Layer.In16.Cu] 140 | Name=In16.Cu 141 | Type=0 142 | Enabled=0 143 | [pcbnew/Layer.In17.Cu] 144 | Name=In17.Cu 145 | Type=0 146 | Enabled=0 147 | [pcbnew/Layer.In18.Cu] 148 | Name=In18.Cu 149 | Type=0 150 | Enabled=0 151 | [pcbnew/Layer.In19.Cu] 152 | Name=In19.Cu 153 | Type=0 154 | Enabled=0 155 | [pcbnew/Layer.In20.Cu] 156 | Name=In20.Cu 157 | Type=0 158 | Enabled=0 159 | [pcbnew/Layer.In21.Cu] 160 | Name=In21.Cu 161 | Type=0 162 | Enabled=0 163 | [pcbnew/Layer.In22.Cu] 164 | Name=In22.Cu 165 | Type=0 166 | Enabled=0 167 | [pcbnew/Layer.In23.Cu] 168 | Name=In23.Cu 169 | Type=0 170 | Enabled=0 171 | [pcbnew/Layer.In24.Cu] 172 | Name=In24.Cu 173 | Type=0 174 | Enabled=0 175 | [pcbnew/Layer.In25.Cu] 176 | Name=In25.Cu 177 | Type=0 178 | Enabled=0 179 | [pcbnew/Layer.In26.Cu] 180 | Name=In26.Cu 181 | Type=0 182 | Enabled=0 183 | [pcbnew/Layer.In27.Cu] 184 | Name=In27.Cu 185 | Type=0 186 | Enabled=0 187 | [pcbnew/Layer.In28.Cu] 188 | Name=In28.Cu 189 | Type=0 190 | Enabled=0 191 | [pcbnew/Layer.In29.Cu] 192 | Name=In29.Cu 193 | Type=0 194 | Enabled=0 195 | [pcbnew/Layer.In30.Cu] 196 | Name=In30.Cu 197 | Type=0 198 | Enabled=0 199 | [pcbnew/Layer.B.Cu] 200 | Name=B.Cu 201 | Type=0 202 | Enabled=1 203 | [pcbnew/Layer.B.Adhes] 204 | Enabled=1 205 | [pcbnew/Layer.F.Adhes] 206 | Enabled=1 207 | [pcbnew/Layer.B.Paste] 208 | Enabled=1 209 | [pcbnew/Layer.F.Paste] 210 | Enabled=1 211 | [pcbnew/Layer.B.SilkS] 212 | Enabled=1 213 | [pcbnew/Layer.F.SilkS] 214 | Enabled=1 215 | [pcbnew/Layer.B.Mask] 216 | Enabled=1 217 | [pcbnew/Layer.F.Mask] 218 | Enabled=1 219 | [pcbnew/Layer.Dwgs.User] 220 | Enabled=1 221 | [pcbnew/Layer.Cmts.User] 222 | Enabled=1 223 | [pcbnew/Layer.Eco1.User] 224 | Enabled=1 225 | [pcbnew/Layer.Eco2.User] 226 | Enabled=1 227 | [pcbnew/Layer.Edge.Cuts] 228 | Enabled=1 229 | [pcbnew/Layer.Margin] 230 | Enabled=1 231 | [pcbnew/Layer.B.CrtYd] 232 | Enabled=1 233 | [pcbnew/Layer.F.CrtYd] 234 | Enabled=1 235 | [pcbnew/Layer.B.Fab] 236 | Enabled=1 237 | [pcbnew/Layer.F.Fab] 238 | Enabled=1 239 | [pcbnew/Layer.Rescue] 240 | Enabled=0 241 | [pcbnew/Netclasses] 242 | [pcbnew/Netclasses/Default] 243 | Name=Default 244 | Clearance=0.2 245 | TrackWidth=0.3 246 | ViaDiameter=1 247 | ViaDrill=0.6 248 | uViaDiameter=0.3 249 | uViaDrill=0.1 250 | dPairWidth=0.2 251 | dPairGap=0.25 252 | dPairViaGap=0.25 253 | [pcbnew/Netclasses/1] 254 | Name=Power 255 | Clearance=0.3 256 | TrackWidth=0.6 257 | ViaDiameter=1.2 258 | ViaDrill=0.8 259 | uViaDiameter=0.3 260 | uViaDrill=0.1 261 | dPairWidth=0.2 262 | dPairGap=0.25 263 | dPairViaGap=0.25 264 | --------------------------------------------------------------------------------