├── .gitignore ├── .gitmodules ├── LICENSE ├── Makefile ├── README.md ├── docs ├── entropy-kle.jpg ├── entropy.jpeg ├── photos │ ├── entropy-battery-close.JPG │ ├── entropy-battery-cover.JPG │ ├── entropy-bottom.JPG │ ├── entropy-front.JPG │ ├── entropy-iso.JPG │ ├── entropy-pcb.JPG │ ├── entropy-side.JPG │ └── entropy-top.JPG └── release-process.md ├── firmware ├── entropy.json └── entropy │ ├── config.h │ ├── entropy.c │ ├── entropy.h │ ├── info.json │ ├── keymaps │ ├── default │ │ ├── config.h │ │ └── keymap.c │ ├── josh │ │ ├── config.h │ │ ├── keymap.c │ │ └── rules.mk │ ├── template │ │ ├── config.h │ │ └── keymap.c │ └── via │ │ ├── config.h │ │ ├── keymap.c │ │ └── rules.mk │ ├── readme.md │ └── rules.mk ├── graphics ├── back_silk_v0.kicad_mod ├── design.svg ├── entropy_py.png ├── pcb_export.png ├── random_gen.py └── random_gen.pyc ├── hardware ├── 0.1 │ ├── .gitignore │ ├── bom │ │ └── assembly.html │ ├── fp-lib-table │ ├── keyboard-cache.lib │ ├── keyboard.kicad_pcb │ ├── keyboard.pro │ ├── keyboard.sch │ └── sym-lib-table ├── 0.2 │ ├── .gitignore │ ├── fp-lib-table │ ├── keyboard-cache.lib │ ├── keyboard-rescue.dcm │ ├── keyboard-rescue.lib │ ├── keyboard.kicad_pcb │ ├── keyboard.kicad_prl │ ├── keyboard.kicad_pro │ ├── keyboard.pro │ ├── keyboard.sch │ └── sym-lib-table ├── 0.3-w │ ├── .gitignore │ ├── fp-lib-table │ ├── keyboard-cache.lib │ ├── keyboard.kicad_pcb │ ├── keyboard.kicad_prl │ ├── keyboard.kicad_pro │ ├── keyboard.kicad_sch │ ├── outputs │ │ └── assembly.html │ └── sym-lib-table ├── 0.4-w │ ├── fp-lib-table │ ├── gerbers │ │ ├── drill_report.txt │ │ └── keyboard.gbp │ ├── keyboard-bottom-pos.csv │ ├── keyboard-cache.lib │ ├── keyboard.csv │ ├── keyboard.kicad_pcb │ ├── keyboard.kicad_prl │ ├── keyboard.kicad_pro │ ├── keyboard.kicad_sch │ ├── keyboard.pdf │ ├── keyboard.pro │ ├── keyboard.xml │ └── sym-lib-table └── 0.5-w │ ├── fp-lib-table │ ├── keyboard-cache.lib │ ├── keyboard.kicad_pcb │ ├── keyboard.kicad_prl │ ├── keyboard.kicad_pro │ ├── keyboard.kicad_sch │ ├── keyboard.pdf │ └── sym-lib-table ├── mechanicals ├── entropy-case-0.1 │ ├── assembly.f3d │ ├── back_diffuser.stl │ ├── encoder_spacer.stl │ ├── front_diffuser.stl │ ├── incline_spacer.stl │ ├── left_diffuser.stl │ ├── right_diffuser.stl │ └── status_diffuser.stl ├── entropy-case-0.3 │ ├── base-1.dxf │ ├── base-2.dxf │ ├── base-3.dxf │ ├── base-4.dxf │ ├── base.dxf │ ├── plate+1.dxf │ ├── plate+2.dxf │ ├── plate-1.dxf │ ├── plate-2.dxf │ ├── plate-3.dxf │ └── plate.dxf └── entropy-plate-0.4 │ ├── plate.dxf │ └── plate │ ├── gerbers │ ├── drill_report.txt │ └── plate.gbp │ ├── plate.kicad_pcb │ ├── plate.kicad_prl │ ├── plate.kicad_pro │ └── plate.kicad_sch └── scripts ├── josh_bom.py ├── kicadutil.jar ├── panel.py └── plot_gerbers.py /.gitignore: -------------------------------------------------------------------------------- 1 | # For PCBs designed using KiCad: http://www.kicad-pcb.org/ 2 | # Format documentation: http://kicad-pcb.org/help/file-formats/ 3 | 4 | # Temporary files 5 | *.000 6 | *.bak 7 | *.bck 8 | *.kicad_pcb-bak 9 | *.sch-bak 10 | *~ 11 | _autosave-* 12 | *.tmp 13 | *-save.pro 14 | *-save.kicad_pcb 15 | fp-info-cache 16 | 17 | # Netlist files (exported from Eeschema) 18 | *.net 19 | 20 | # Autorouter files (exported from Pcbnew) 21 | *.dsn 22 | *.ses 23 | 24 | # Gerbers 25 | *.drl 26 | *.grb 27 | *.gbl 28 | *.gbo 29 | *.gpb 30 | *.gbs 31 | *.gml 32 | *.gtl 33 | *.gto 34 | *.gtp 35 | *.gts 36 | *.gbr 37 | 38 | # 3D Models 39 | *.step 40 | 41 | *.zip -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "josh-kicad-lib"] 2 | path = josh-kicad-lib 3 | url = git@github.com:joshajohnson/josh-kicad-lib.git 4 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | VERSION?=0.1 2 | NAME?= 3 | DESIGNER?=Josh Johnson 4 | 5 | prod-files: 6 | make gerb 7 | make pnp 8 | make bom 9 | 10 | new: 11 | git submodule update --init --recursive --progress 12 | cd josh-kicad-lib && git checkout master && git pull 13 | cd josh-kicad-lib && bash setup.sh "$(VERSION)" "$(NAME)" "$(DESIGNER)" 14 | 15 | gerb: 16 | python3 scripts/plot_gerbers.py hardware/$(VERSION)/*.kicad_pcb 17 | 18 | bom: 19 | cd hardware/$(VERSION) && python3 ../../scripts/josh_bom.py *.xml bom/BOM.csv 20 | 21 | pnp: 22 | cd hardware/$(VERSION) && python3 "$(HOME)/.kicad_plugins/InteractiveHtmlBom/InteractiveHtmlBom/generate_interactive_bom.py" *.kicad_pcb 23 | 24 | panel: 25 | python3 scripts/panel.py hardware/$(VERSION)/panel/*.kicad_pcb 26 | 27 | panel-gerb: 28 | python3 scripts/plot_gerbers.py hardware/$(VERSION)/panel/output.* 29 | 30 | init: 31 | rm -rf .git 32 | git init 33 | git submodule add git@github.com:joshajohnson/josh-kicad-lib.git 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Entropy 2 | 3 | ## A 96% Southpaw keyboard, with split space and encoder support. 4 | 5 | Entropy started as a STM32 powered keyboard running QMK and enclosed in a FR4 and PLA case, but at the time of writing runs on a nRF52 and ZMK, tucked inside a stacked acrylic case. 6 | 7 | ZMK enables wireless functionality, and you'll get upwards of 6 months battery life thanks to the 200uA sleep current. 8 | 9 | It also supports up to 4 rotary incoders in 5 different positions, along with a myriad of layout options. 10 | 11 | ## Photos 12 | ![Top View](docs/photos/entropy-top.JPG) 13 | ![Side View](docs/photos/entropy-iso.JPG) 14 | ![Battery and Power Circuit](docs/photos/entropy-pcb.JPG) 15 | 16 | ## Layout 17 | Supports Encoders in (0,0)...(0,3) and (0,19) 18 | 19 | ZMK versions only allow 4 encoders to be populated (hiting interrupt limit with 5 encoders) 20 | ![KLE](docs/entropy-kle.jpg) 21 | 22 | ## Revision History 23 | 24 | R0.1: 25 | - Original STM32 design, no bugs that can't be worked around. 26 | - Tested and working. 27 | 28 | R0.2: 29 | - Removed overengineering, modified to suit JLCSMT. 30 | - Fixed plate 2U tight fit. 31 | - **Has known issues with powering the LEDs, do not use** 32 | 33 | ### Image of R0.1 and R0.2 Design 34 | ![R0.1 and R0.2 Assembled Keyboard](docs/entropy.jpeg) 35 | 36 | R0.3: 37 | 38 | - Moved to nRF52840 and ZMK due to supply issues with the STM32F303 used in R0.1 and R0.2. 39 | - Case design changed to plate mount in stacked acrylic case. 40 | - Design moved to KiCad V6. 41 | 42 | R0.4: 43 | - Battery life and design improvements over R0.3. 44 | - Few issues requiring rework but suitable for use. 45 | 46 | R0.5: 47 | - Resolved issues found in R0.4, however untested. 48 | - **Use at your own risk.** -------------------------------------------------------------------------------- /docs/entropy-kle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/entropy-kle.jpg -------------------------------------------------------------------------------- /docs/entropy.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/entropy.jpeg -------------------------------------------------------------------------------- /docs/photos/entropy-battery-close.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-battery-close.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-battery-cover.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-battery-cover.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-bottom.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-bottom.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-front.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-front.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-iso.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-iso.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-pcb.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-pcb.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-side.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-side.JPG -------------------------------------------------------------------------------- /docs/photos/entropy-top.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/docs/photos/entropy-top.JPG -------------------------------------------------------------------------------- /docs/release-process.md: -------------------------------------------------------------------------------- 1 | # Board Release Process 2 | 3 | * [ ] Ensure [Schematic Review](#schematic-review) is complete 4 | * [ ] Ensure [Layout Review](#layout-review) is complete 5 | * [ ] Component MPN / Supplier PN information added for all components 6 | * [ ] PDF Schematic is exported from EESchema 7 | * [ ] Rerun DRC and zone fills before exporting CAM files to ensure proper results 8 | * [ ] Inspect layout in 3D viewer one last time 9 | * [ ] Export gerber/drill, BOM, and PnP files by calling `make` 10 | * [ ] Visually verify final CAM files to ensure no obvious misalignments, issues with paste and mask size / location 11 | 12 | ## Schematic Review 13 | ### General 14 | 15 | * [ ] CAD ERC 100% clean. If some errors are invalid due to toolchain quirks, each exception must be inspected and signed 16 | off as invalid 17 | * [ ] Verify pin numbers of all schematic symbols against datasheet or external interface specification document (if not yet board proven) 18 | * [ ] Schematic symbol matches chosen component package 19 | 20 | #### Passive components 21 | * [ ] Power/voltage/tolerance ratings specified as required 22 | * [ ] Ceramic capacitors appropriately de-rated for C/V curve 23 | * [ ] Polarized components specified in schematic if using electrolytic caps etc 24 | 25 | ### Power supply 26 | 27 | * [ ] Fusing and/or reverse voltage protection at system power inlet 28 | 29 | #### Regulators 30 | 31 | * [ ] Verify estimated power usage per rail against regulator rating 32 | * [ ] Linear regulators are stable with selected output cap ESR 33 | * [ ] Confirm power rail sequencing against device datasheets 34 | 35 | #### Decoupling 36 | * [ ] Decoupling present for all ICs 37 | * [ ] Decoupling meets/exceeds vendor recommendations if specified 38 | * [ ] Bulk decoupling present at PSU 39 | 40 | #### General 41 | * [ ] All power inputs fed by correct voltage 42 | * [ ] Check high-power discrete semiconductors and passives to confirm they can handle expected load 43 | * [ ] Analog rails filtered/isolated from digital circuitry as needed 44 | 45 | ### Signals 46 | 47 | #### Digital 48 | 49 | * [ ] Signals are correct logic level for input pin 50 | * [ ] Pullups on all open-drain outputs 51 | * [ ] Termination on all high-speed signals 52 | * [ ] TX/RX paired correctly for UART, SPI, MGT, etc 53 | * [ ] Differential pair polarity / pairing correct 54 | * [ ] Active high/low enable signal polarity correct 55 | 56 | #### Clocks 57 | 58 | * [ ] Correct load caps provided for discrete crystals 59 | * [ ] Crystals only used if IC has an integrated crystal driver 60 | 61 | #### Strap/init pins 62 | * [ ] Pullup/pulldowns on all signals that need defined state at boot 63 | * [ ] Strap pins connected to correct rail for desired state 64 | * [ ] JTAG/ICSP connector provided for all programmable devices 65 | * [ ] Reference resistors correct value and reference rail 66 | 67 | #### External interface protection 68 | 69 | * [ ] Power outputs (USB etc) current limited 70 | * [ ] ESD protection on data lines going off board 71 | 72 | #### Debugging / reworkability 73 | 74 | * [ ] Use 0-ohm resistors vs direct hard-wiring for strap pins when possible 75 | * [ ] Provide multiple ground clips/points for scope probes 76 | * [ ] Dedicated ground in close proximity to analog test points 77 | * [ ] Test points on all power rails 78 | * [ ] Test points on interesting signals which may need probing for bringup/debug 79 | 80 | ### Thermal 81 | 82 | * [ ] Power estimates for all large / high power ICs 83 | * [ ] Thermal calculations for all large / high power ICs 84 | * [ ] Specify heatsinks as needed 85 | 86 | 87 | ## Layout Review 88 | 89 | ### General 90 | 91 | * [ ] [Schematic review](#schematic-review) complete and signed off, including pin swaps done during layout 92 | * [ ] Layout DRC 100% clean 93 | 94 | ### Decoupling 95 | 96 | * [ ] Decoupling caps as close to power pins as possible 97 | * [ ] Low inductance mounting used for decoupling (prefer ViP if available, otherwise "[]8" shaped side vias 98 | 99 | ### DFM / yield enhancement 100 | 101 | * [ ] All design rules within manufacturer's capability 102 | * [ ] Minimize use of vias/traces that push fab limits 103 | * [ ] Layer number markers specified to ensure correct assembly 104 | * [ ] Fiducials present (on both sides of board) if targeting automated assembly 105 | * [ ] Fiducial pattern asymmetric to detect rotated or flipped boards 106 | * [ ] Soldermask/copper clearance on fiducials respected 107 | * [ ] Panelization completed if required 108 | * [ ] Teardrops added to PTH components / vias 109 | 110 | ### Footprints 111 | 112 | * [ ] Confirm components are available in the selected package 113 | * [ ] Verify schematic symbol matches the selected package 114 | * [ ] Confirm pinout diagram is from top vs bottom of package 115 | * [ ] PCB printed 1:1 on paper and checked against physical parts OR 116 | * [ ] 3D models obtained (if available) and checked against footprints 117 | * [ ] Soldermask apertures on all SMT lands and PTH pads 118 | 119 | ### Differential pairs 120 | * [ ] Routed differentially 121 | * [ ] Skew matched if required 122 | * [ ] Correct clearance to non-coupled nets 123 | 124 | ### High-speed signals 125 | 126 | * [ ] Sufficient clearance to potential aggressors 127 | * [ ] Length matched if required 128 | * [ ] Minimize crossing reference plane splits/slots or changing layers, use caps/stitching vias if unavoidable 129 | * [ ] Double-check pad width on connectors and add plane cutouts if needed to minimize impedance discontinuities 130 | 131 | ### Power 132 | * [ ] Minimal slots in planes from via antipads 133 | * [ ] Sufficient width for planes/traces for required current 134 | 135 | ### Mechanical 136 | * [ ] Confirm all connectors to other systems comply with the appropriate mechanical standard (connector orientation, key position, etc) 137 | * [ ] LEDs, buttons, and other UI elements on outward-facing side of board 138 | * [ ] Keep-outs around PCB perimeter, card guides, panelization mouse-bites, etc respected 139 | * [ ] Stress-sensitive components (MLCC) sufficiently clear from V-score or mouse bite locations, and oriented to reduce bending stress 140 | * [ ] Clearance around large ICs for heatsinks/fans if required 141 | * [ ] Clearance around pluggable connectors for mating cable/connector 142 | * [ ] Clearance around mounting holes for screws 143 | * [ ] Plane keepouts and clearance provided for shielded connectors, magnetics, etc 144 | * [ ] Confirm PCB dimensions and mounting hole size/placement against enclosure or card rack design 145 | * [ ] Verify mounting hole connection/isolation 146 | * [ ] Components not physically overlapping/colliding 147 | * [ ] STEP file exported and mechanical fit confirmed with mechanical CAD model 148 | 149 | ### Thermal 150 | 151 | * [ ] Thermal reliefs used for plane connections (unless via is used for heatsinking) 152 | * [ ] Solid connections used to planes if heatsinking 153 | * [ ] Ensure thermal balance on SMT chip components to minimize risk of tombstoning 154 | 155 | ### Solder paste 156 | 157 | * [ ] No uncapped vias in pads (except low-power QFNs where some voiding is acceptable) 158 | * [ ] QFN paste prints segmented 159 | * [ ] Small pads 100% size, larger pads reduced to avoid excessive solder volume 160 | 161 | ### Solder mask 162 | 163 | * [ ] Adequate clearance around pads 164 | * [ ] NOTE: Default in KiCad is far too large, decrease to between 0 and 50um 165 | 166 | ### Silkscreen 167 | 168 | * [ ] Text size within fab limits 169 | * [ ] Text not overlapping drills or component pads 170 | * [ ] Text removed entirely in, or moved outside of, high component/via density areas 171 | * [ ] Designer details / OSHW logo / project name / graphical assets on board 172 | * [ ] Traceability markings (rev, date, name, etc) provided 173 | * [ ] PCB Fab marking location denoted (if required) 174 | * [ ] Silkscreen box provided for writing/sticking serial number 175 | * [ ] Text mirrored properly on bottom layer 176 | 177 | Huge thanks to [Andrew Zonenberg](https://github.com/azonenberg/pcb-checklist) whose PCB checklist was modified for use in this document. -------------------------------------------------------------------------------- /firmware/entropy.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "entropy", 3 | "vendorId": "0x6A6A", 4 | "productId": "0x1010", 5 | "lighting": "qmk_rgblight", 6 | "matrix": { 7 | "rows": 6, 8 | "cols": 20 9 | }, 10 | "layouts": { 11 | "labels": [ 12 | "Split Plus", 13 | "Split Enter", 14 | "Split Zero", 15 | "Split Space", 16 | "1U Mods", 17 | "Split Backspace" 18 | ], 19 | "keymap": [ 20 | [ 21 | { 22 | "x": 1.5, 23 | "c": "#aaaaaa" 24 | }, 25 | "0,0", 26 | "0,1", 27 | "0,2", 28 | "0,3", 29 | { 30 | "c": "#777777" 31 | }, 32 | "0,4", 33 | { 34 | "c": "#cccccc" 35 | }, 36 | "0,5", 37 | "0,6", 38 | "0,7", 39 | "0,8", 40 | { 41 | "c": "#aaaaaa" 42 | }, 43 | "0,9", 44 | "0,10", 45 | "0,11", 46 | "0,12", 47 | { 48 | "c": "#cccccc" 49 | }, 50 | "0,13", 51 | "0,14", 52 | "0,15", 53 | "0,16", 54 | "0,17", 55 | "0,18", 56 | { 57 | "c": "#aaaaaa" 58 | }, 59 | "0,19" 60 | ], 61 | [ 62 | { 63 | "x": 1.5, 64 | "c": "#cccccc" 65 | }, 66 | "1,0", 67 | "1,1", 68 | "1,2", 69 | "1,3", 70 | "1,4", 71 | "1,5", 72 | "1,6", 73 | "1,7", 74 | "1,8", 75 | "1,9", 76 | "1,10", 77 | "1,11", 78 | "1,12", 79 | "1,13", 80 | "1,14", 81 | "1,15", 82 | "1,16", 83 | { 84 | "c": "#aaaaaa", 85 | "w": 2 86 | }, 87 | "1,18\n\n\n5,0", 88 | "1,19", 89 | { 90 | "x": 0.25 91 | }, 92 | "1,17\n\n\n5,1", 93 | "1,18\n\n\n5,1" 94 | ], 95 | [ 96 | { 97 | "x": 0.25, 98 | "c": "#cccccc" 99 | }, 100 | "2,0\n\n\n0,1", 101 | { 102 | "x": 0.25, 103 | "c": "#aaaaaa", 104 | "h": 2 105 | }, 106 | "3,0\n\n\n0,0", 107 | { 108 | "c": "#cccccc" 109 | }, 110 | "2,1", 111 | "2,2", 112 | "2,3", 113 | { 114 | "c": "#aaaaaa", 115 | "w": 1.5 116 | }, 117 | "2,4", 118 | { 119 | "c": "#cccccc" 120 | }, 121 | "2,6", 122 | "2,7", 123 | "2,8", 124 | "2,9", 125 | "2,10", 126 | "2,11", 127 | "2,12", 128 | "2,13", 129 | "2,14", 130 | "2,15", 131 | "2,16", 132 | "2,17", 133 | { 134 | "w": 1.5 135 | }, 136 | "2,18", 137 | { 138 | "c": "#aaaaaa" 139 | }, 140 | "2,19" 141 | ], 142 | [ 143 | { 144 | "x": 0.25, 145 | "c": "#cccccc" 146 | }, 147 | "3,0\n\n\n0,1", 148 | { 149 | "x": 1.25 150 | }, 151 | "3,1", 152 | "3,2", 153 | "3,3", 154 | { 155 | "c": "#aaaaaa", 156 | "w": 1.75 157 | }, 158 | "3,4", 159 | { 160 | "c": "#cccccc" 161 | }, 162 | "3,6", 163 | "3,7", 164 | "3,8", 165 | "3,9", 166 | "3,10", 167 | "3,11", 168 | "3,12", 169 | "3,13", 170 | "3,14", 171 | "3,15", 172 | "3,16", 173 | { 174 | "c": "#777777", 175 | "w": 2.25 176 | }, 177 | "3,17", 178 | { 179 | "c": "#aaaaaa" 180 | }, 181 | "3,19" 182 | ], 183 | [ 184 | { 185 | "x": 0.25, 186 | "c": "#cccccc" 187 | }, 188 | "4,0\n\n\n1,1", 189 | { 190 | "x": 0.25, 191 | "c": "#aaaaaa", 192 | "h": 2 193 | }, 194 | "5,0\n\n\n1,0", 195 | { 196 | "c": "#cccccc" 197 | }, 198 | "4,1", 199 | "4,2", 200 | "4,3", 201 | { 202 | "c": "#aaaaaa", 203 | "w": 2.25 204 | }, 205 | "4,5", 206 | { 207 | "c": "#cccccc" 208 | }, 209 | "4,6", 210 | "4,7", 211 | "4,8", 212 | "4,9", 213 | "4,10", 214 | "4,11", 215 | "4,12", 216 | "4,13", 217 | "4,14", 218 | "4,15", 219 | { 220 | "c": "#aaaaaa", 221 | "w": 1.75 222 | }, 223 | "4,17", 224 | "4,18", 225 | "4,19" 226 | ], 227 | [ 228 | { 229 | "x": 0.25, 230 | "c": "#cccccc" 231 | }, 232 | "5,0\n\n\n1,1", 233 | { 234 | "x": 1.25 235 | }, 236 | "5,1", 237 | { 238 | "c": "#aaaaaa", 239 | "w": 2 240 | }, 241 | "5,3\n\n\n2,0", 242 | { 243 | "w": 1.25 244 | }, 245 | "5,4", 246 | { 247 | "w": 1.25 248 | }, 249 | "5,5", 250 | { 251 | "w": 1.25 252 | }, 253 | "5,7", 254 | { 255 | "w": 6.25 256 | }, 257 | "5,10\n\n\n3,0", 258 | { 259 | "w": 1.5 260 | }, 261 | "5,14\n\n\n4,0", 262 | { 263 | "w": 1.5 264 | }, 265 | "5,15\n\n\n4,0", 266 | "5,17", 267 | "5,18", 268 | "5,19" 269 | ], 270 | [ 271 | { 272 | "x": 3.5, 273 | "c": "#cccccc" 274 | }, 275 | "5,2\n\n\n2,1", 276 | "5,3\n\n\n2,1", 277 | { 278 | "x": 3.75, 279 | "c": "#aaaaaa", 280 | "w": 2.75 281 | }, 282 | "5,9\n\n\n3,1", 283 | { 284 | "w": 1.25 285 | }, 286 | "5,10\n\n\n3,1", 287 | { 288 | "w": 2.25 289 | }, 290 | "5,12\n\n\n3,1", 291 | "5,14\n\n\n4,1", 292 | "5,15\n\n\n4,1", 293 | "5,16\n\n\n4,1" 294 | ] 295 | ] 296 | } 297 | } 298 | -------------------------------------------------------------------------------- /firmware/entropy/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 joshajohnson 3 | 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License as published by 6 | the Free Software Foundation, either version 2 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public License 15 | along with this program. If not, see . 16 | */ 17 | 18 | #pragma once 19 | 20 | #include "config_common.h" 21 | 22 | /* USB Device descriptor parameter */ 23 | #define VENDOR_ID 0x6A6A // JJ 24 | #define PRODUCT_ID 0x1010 // Entropy? 25 | #define DEVICE_VER 0x0001 26 | #define MANUFACTURER joshajohnson 27 | #define PRODUCT entropy 28 | #define DESCRIPTION entropy keyboard 29 | 30 | /* key matrix */ 31 | #define MATRIX_ROWS 6 32 | #define MATRIX_COLS 20 33 | 34 | #define MATRIX_ROW_PINS { C10, C11, C12, B1, B0, C5 } 35 | #define MATRIX_COL_PINS { B12, B11, B10, B2, B9, B8, C3, C2, C1, C0, C13, C14, C15, A3, A6, A7, C4, B3, B4, B5 } 36 | #define UNUSED_PINS 37 | 38 | #define DIODE_DIRECTION COL2ROW 39 | 40 | /* Rotary Encoder Things */ 41 | // #define ENCODER_DIRECTION_FLIP 42 | #define ENCODERS_PAD_A { B13, C7, C9, A10, B6 } 43 | #define ENCODERS_PAD_B { B14, C8, A8, A9, B7 } 44 | 45 | /* Lighting things */ 46 | #define RGBLIGHT_LAYERS 47 | #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF 48 | 49 | #define RGB_DI_PIN B15 50 | #ifdef RGB_DI_PIN 51 | #define RGBLED_NUM 20 52 | #define RGBLIGHT_HUE_STEP 8 53 | #define RGBLIGHT_SAT_STEP 8 54 | #define RGBLIGHT_VAL_STEP 8 55 | #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ 56 | #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ 57 | /*== all animations enable ==*/ 58 | #define RGBLIGHT_ANIMATIONS 59 | /*== or choose animations ==*/ 60 | // #define RGBLIGHT_EFFECT_BREATHING 61 | #define RGBLIGHT_EFFECT_RAINBOW_MOOD 62 | #define RGBLIGHT_EFFECT_RAINBOW_SWIRL 63 | // #define RGBLIGHT_EFFECT_SNAKE 64 | // #define RGBLIGHT_EFFECT_KNIGHT 65 | // #define RGBLIGHT_EFFECT_CHRISTMAS 66 | // #define RGBLIGHT_EFFECT_STATIC_GRADIENT 67 | // #define RGBLIGHT_EFFECT_RGB_TEST 68 | // #define RGBLIGHT_EFFECT_ALTERNATING 69 | /*== customize breathing effect ==*/ 70 | /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ 71 | #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 72 | /*==== use exp() and sin() ====*/ 73 | #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 74 | #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 75 | #endif 76 | 77 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 78 | #define DEBOUNCE 5 79 | 80 | /* Tap delay for tap vs hold */ 81 | #define TAPPING_TERM 200 82 | 83 | /* Slow down key press speed to ensure computer picks it up */ 84 | #define TAP_CODE_DELAY 20 85 | 86 | /* Audio Things */ 87 | #define AUDIO_CLICKY 88 | 89 | /* Mouse Things */ 90 | #define MOUSEKEY_INTERVAL 20 91 | #define MOUSEKEY_DELAY 300 92 | #define MOUSEKEY_TIME_TO_MAX 100 93 | #define MOUSEKEY_MAX_SPEED 3 94 | 95 | /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 96 | #define LOCKING_SUPPORT_ENABLE 97 | /* Locking resynchronize hack */ 98 | #define LOCKING_RESYNC_ENABLE 99 | 100 | /* disable these deprecated features by default */ 101 | #ifndef LINK_TIME_OPTIMIZATION_ENABLE 102 | #define NO_ACTION_MACRO 103 | #define NO_ACTION_FUNCTION 104 | #endif 105 | 106 | // Status LED positions 107 | #define LED0 16 108 | #define LED1 17 109 | #define LED2 18 110 | #define LED3 19 111 | -------------------------------------------------------------------------------- /firmware/entropy/entropy.c: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | #include "entropy.h" 18 | 19 | // Optional override functions below. 20 | // You can leave any or all of these undefined. 21 | // These are only required if you want to perform custom actions. 22 | 23 | /* 24 | void matrix_init_kb(void) { 25 | // put your keyboard start-up code here 26 | // runs once when the firmware starts up 27 | 28 | matrix_init_user(); 29 | } 30 | 31 | void matrix_scan_kb(void) { 32 | // put your looping keyboard code here 33 | // runs every cycle (a lot) 34 | 35 | matrix_scan_user(); 36 | } 37 | 38 | bool process_record_kb(uint16_t keycode, keyrecord_t *record) { 39 | // put your per-action keyboard code here 40 | // runs for every action, just before processing by the firmware 41 | 42 | return process_record_user(keycode, record); 43 | } 44 | 45 | bool led_update_kb(led_t led_state) { 46 | // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here 47 | 48 | return led_update_user(led_state); 49 | } 50 | */ 51 | -------------------------------------------------------------------------------- /firmware/entropy/entropy.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | #pragma once 18 | 19 | #include "quantum.h" 20 | 21 | #define ___ KC_NO 22 | 23 | /* This is a shortcut to help you visually see your layout. 24 | * 25 | * The first section contains all of the arguments representing the physical 26 | * layout of the board and position of the keys. 27 | * 28 | * The second converts the arguments into a two-dimensional array which 29 | * represents the switch matrix. 30 | */ 31 | 32 | // 2U keys on numpad, plus 1.5U on RHS of split space bar 33 | #define LAYOUT_2U_SS( \ 34 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ 35 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K116, K118, K119, \ 36 | K21, K22, K23, K24, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, \ 37 | K30, K31, K32, K33, K34, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, K319, \ 38 | K41, K42, K43, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, K417, K418, K419, \ 39 | K50, K51, K53, K54, K55, K57, K59, K510, K512, K514, K516, K517, K518, K519 \ 40 | ) \ 41 | { \ 42 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ 43 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K116, ___, K118, K119 }, \ 44 | { ___, K21, K22, K23, K24, ___, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219 }, \ 45 | { K30, K31, K32, K33, K34, ___, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, ___, K319 }, \ 46 | { ___, K41, K42, K43, ___, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, ___, K417, K418, K419 }, \ 47 | { K50, K51, ___, K53, K54, K55, ___, K57, ___, K59, K510, ___, K512, ___, K514, ___, K516, K517, K518, K519 } \ 48 | } 49 | 50 | // 2U keys on numpad, plus 1.5U on RHS of single space bar 51 | #define LAYOUT_2U( \ 52 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ 53 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K116, K118, K119, \ 54 | K21, K22, K23, K24, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, \ 55 | K30, K31, K32, K33, K34, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, K319, \ 56 | K41, K42, K43, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, K417, K418, K419, \ 57 | K50, K51, K53, K54, K55, K57, K510, K514, K516, K517, K518, K519 \ 58 | ) \ 59 | { \ 60 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ 61 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K116, ___, K118, K119 }, \ 62 | { ___, K21, K22, K23, K24, ___, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219 }, \ 63 | { K30, K31, K32, K33, K34, ___, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, ___, K319 }, \ 64 | { ___, K41, K42, K43, ___, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, ___, K417, K418, K419 }, \ 65 | { K50, K51, ___, K53, K54, K55, ___, K57, ___, ___, K510, ___, ___, ___, K514, ___, K516, K517, K518, K519 } \ 66 | } 67 | 68 | // 1U keys wherever possible, single space bar, single backspace 69 | #define LAYOUT_1U( \ 70 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ 71 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K116, K118, K119, \ 72 | K20, K21, K22, K23, K24, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, \ 73 | K30, K31, K32, K33, K34, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, K319, \ 74 | K40, K41, K42, K43, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, K417, K418, K419, \ 75 | K50, K51, K52, K53, K54, K55, K57, K510, K514, K515, K516, K517, K518, K519 \ 76 | ) \ 77 | { \ 78 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ 79 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K116, ___, K118, K119 }, \ 80 | { K20, K21, K22, K23, K24, ___, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219 }, \ 81 | { K30, K31, K32, K33, K34, ___, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, ___, K319 }, \ 82 | { K40, K41, K42, K43, ___, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, ___, K417, K418, K419 }, \ 83 | { K50, K51, K52, K53, K54, K55, ___, K57, ___, ___, K510, ___, ___, ___, K514, K515, K516, K517, K518, K519 } \ 84 | } 85 | 86 | // 1U keys wherever possible, split space, split backspace 87 | #define LAYOUT_1U_SS( \ 88 | K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \ 89 | K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K170, K171, K178, K119, \ 90 | K20, K21, K22, K23, K24, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219, \ 91 | K30, K31, K32, K33, K34, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, K319, \ 92 | K40, K41, K42, K43, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, K417, K418, K419, \ 93 | K50, K51, K52, K53, K54, K55, K57, K59, K510, K512, K514, K515, K516, K517, K518, K519 \ 94 | ) \ 95 | { \ 96 | { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \ 97 | { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, K114, K115, K170, K171, K178, K119 }, \ 98 | { K20, K21, K22, K23, K24, ___, K26, K27, K28, K29, K210, K211, K212, K213, K214, K215, K216, K217, K218, K219 }, \ 99 | { K30, K31, K32, K33, K34, ___, K36, K37, K38, K39, K310, K311, K312, K313, K314, K315, K316, K317, ___, K319 }, \ 100 | { K40, K41, K42, K43, ___, K45, K46, K47, K48, K49, K410, K411, K412, K413, K414, K415, ___, K417, K418, K419 }, \ 101 | { K50, K51, K52, K53, K54, K55, ___, K57, ___, K59, K510, ___, K512, ___, K514, K515, K516, K517, K518, K519 } \ 102 | } 103 | -------------------------------------------------------------------------------- /firmware/entropy/info.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/firmware/entropy/info.json -------------------------------------------------------------------------------- /firmware/entropy/keymaps/default/config.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | #pragma once 18 | 19 | // place overrides here 20 | -------------------------------------------------------------------------------- /firmware/entropy/keymaps/default/keymap.c: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | #include QMK_KEYBOARD_H 17 | 18 | #define ___ KC_NO 19 | 20 | // Defines names for use in layer keycodes and the keymap 21 | enum layer_names { 22 | _BASE, 23 | _FN 24 | }; 25 | 26 | // LED control 27 | uint8_t status_en = 1; 28 | 29 | // Custom Keycodes 30 | enum custom_codes{ 31 | STAT_EN = SAFE_RANGE, 32 | UNDER_EN 33 | }; 34 | 35 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 36 | [_BASE] = LAYOUT_2U( 37 | _______, _______, _______, _______, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_HOME, \ 38 | KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP, \ 39 | KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, \ 40 | KC_PPLS, KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_END, \ 41 | KC_P1, KC_P2, KC_P3, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(_FN), \ 42 | KC_PENT, KC_PDOT, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT 43 | ), 44 | 45 | [_FN] = LAYOUT_2U( 46 | _______, _______, RGB_TOG, STAT_EN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, \ 47 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 48 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 49 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 50 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 51 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 52 | ) 53 | 54 | }; 55 | 56 | /* 57 | Per Key Actions 58 | */ 59 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { 60 | switch (keycode) { 61 | 62 | case RESET: 63 | if (record->event.pressed) { 64 | rgblight_setrgb(255, 0, 0); // RED underglow when in reset 65 | rgblight_setrgb_range(0, 0, 0, LED0, LED3+1); // Disable Status LEDs when going into reset 66 | } else { 67 | } 68 | break; 69 | 70 | case STAT_EN: 71 | if (record->event.pressed) { 72 | status_en ^=1; // Toggle status enable LEDs 73 | } else { 74 | } 75 | break; 76 | 77 | case RGB_TOG: 78 | if (record->event.pressed) { 79 | rgblight_setrgb_range(0, 0, 0, LED0, LED3+1); // Disable Status LEDs when disabling RGB 80 | return true; 81 | } else { 82 | } 83 | break; 84 | } 85 | return true; 86 | } 87 | 88 | 89 | /* 90 | Encoder control 91 | 92 | Default: 93 | Enc 0: Disabled 94 | Enc 1: Disabled 95 | Enc 2: Volume up / down / mute 96 | Enc 3: Media next / prev / play-pause 97 | 98 | When on _FN 99 | Enc 0: Hue 100 | Enc 1: Saturation 101 | Enc 2: Brightness 102 | Enc 3: LED Mode / enable 103 | */ 104 | void encoder_update_user(uint8_t index, bool clockwise) { 105 | if (IS_LAYER_ON(_FN)){ 106 | if (index == 0) { 107 | if (clockwise) { 108 | rgblight_increase_hue_noeeprom(); 109 | } else { 110 | rgblight_decrease_hue_noeeprom(); 111 | } 112 | } else if (index == 1) { 113 | if (clockwise) { 114 | rgblight_increase_sat_noeeprom(); 115 | } else { 116 | rgblight_decrease_sat_noeeprom(); 117 | } 118 | } else if (index == 2) { 119 | if (clockwise) { 120 | rgblight_increase_val_noeeprom(); 121 | } else { 122 | rgblight_decrease_val_noeeprom(); 123 | } 124 | } else if (index == 3) { 125 | if (clockwise) { 126 | rgblight_step(); 127 | } else { 128 | rgblight_step_reverse(); 129 | } 130 | } else if (index == 4) { 131 | // if (clockwise) { 132 | // tap_code(KC_MNXT); 133 | // } else { 134 | // tap_code(KC_MPRV); 135 | // } 136 | } 137 | } else { 138 | if (index == 0) { 139 | // if (clockwise) { 140 | // tap_code(KC_WH_D); 141 | // } else { 142 | // tap_code(KC_WH_U); 143 | // } 144 | } else if (index == 1) { 145 | if (clockwise) { 146 | // Normal scroll is too slow, so 2x? 147 | tap_code(KC_WH_D); 148 | tap_code(KC_WH_D); 149 | } else { 150 | tap_code(KC_WH_U); 151 | tap_code(KC_WH_U); 152 | } 153 | } else if (index == 2) { 154 | if (clockwise) { 155 | tap_code(KC_VOLU); 156 | } else { 157 | tap_code(KC_VOLD); 158 | } 159 | } else if (index == 3) { 160 | if (clockwise) { 161 | tap_code(KC_MNXT); 162 | } else { 163 | tap_code(KC_MPRV); 164 | } 165 | } else if (index == 4) { 166 | // if (clockwise) { 167 | // tap_code(KC_MNXT); 168 | // } else { 169 | // tap_code(KC_MPRV); 170 | // } 171 | } 172 | } 173 | } 174 | 175 | /* 176 | LED CONTROL 177 | 178 | LEDs shows caps / num / scroll lock 179 | OFF: Default 180 | RED: CAPS LOCK 181 | GREEN: NUM LOCK 182 | BLUE: SCROLL LOCK 183 | */ 184 | 185 | void matrix_init_user(void) { 186 | rgblight_set_effect_range(0, 16); // Only use the first 16 LEDs for underglow 187 | } 188 | 189 | // Caps / Num / Scroll lock indicator 190 | bool led_update_kb(led_t led_state) { 191 | // Force caps to on by default 192 | // Numlock LED will flash for a short time on first boot, disregard it please! 193 | static bool once = 1; 194 | if (once && !led_state.num_lock){ 195 | register_code(KC_NUMLOCK); 196 | unregister_code(KC_NUMLOCK); 197 | led_state.num_lock = true; 198 | } 199 | once = 0; 200 | 201 | if (status_en){ 202 | 203 | uint8_t caps = led_state.caps_lock ? 255 : 0; 204 | uint8_t num = led_state.num_lock ? 0 : 128; // Inverted as Numlock should be on by default 205 | uint8_t scroll = led_state.scroll_lock ? 128 : 0; 206 | 207 | // Set Last LED 208 | rgblight_setrgb_range(caps, num, scroll, LED0, LED3+1); 209 | } else { 210 | rgblight_setrgb_range(0, 0, 0, LED0, LED3+1); 211 | } 212 | return true; 213 | } 214 | -------------------------------------------------------------------------------- /firmware/entropy/keymaps/josh/config.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | #pragma once 18 | 19 | // place overrides here 20 | -------------------------------------------------------------------------------- /firmware/entropy/keymaps/josh/rules.mk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/firmware/entropy/keymaps/josh/rules.mk -------------------------------------------------------------------------------- /firmware/entropy/keymaps/template/config.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | #pragma once 18 | 19 | // place overrides here 20 | -------------------------------------------------------------------------------- /firmware/entropy/keymaps/template/keymap.c: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | #include QMK_KEYBOARD_H 17 | 18 | #define ___ KC_NO 19 | 20 | // // Defines names for use in layer keycodes and the keymap 21 | // enum layer_names { 22 | // _BASE, 23 | // _FN 24 | // }; 25 | 26 | // // Defines the keycodes used by our macros in process_record_user 27 | // enum custom_keycodes { 28 | // QMKBEST = SAFE_RANGE, 29 | // QMKURL 30 | // }; 31 | 32 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 33 | /* 34 | LAYOUT_ALL_SS( 35 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 36 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 37 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 38 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 39 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 40 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 41 | ) 42 | */ 43 | 44 | /* 45 | LAYOUT_ALL( 46 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 47 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 48 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 49 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 50 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 51 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 52 | ) 53 | */ 54 | 55 | /* 56 | LAYOUT_2U( 57 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 58 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 59 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 60 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 61 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 62 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 63 | ) 64 | */ 65 | 66 | /* 67 | LAYOUT_2U_SS( 68 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 69 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 70 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 71 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 72 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ 73 | _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 74 | ) 75 | */ 76 | 77 | }; 78 | 79 | // bool process_record_user(uint16_t keycode, keyrecord_t *record) { 80 | // switch (keycode) { 81 | // case QMKBEST: 82 | // if (record->event.pressed) { 83 | // // when keycode QMKBEST is pressed 84 | // SEND_STRING("QMK is the best thing ever!"); 85 | // } else { 86 | // // when keycode QMKBEST is released 87 | // } 88 | // break; 89 | // case QMKURL: 90 | // if (record->event.pressed) { 91 | // // when keycode QMKURL is pressed 92 | // SEND_STRING("https://qmk.fm/\n"); 93 | // } else { 94 | // // when keycode QMKURL is released 95 | // } 96 | // break; 97 | // } 98 | // return true; 99 | // } 100 | 101 | /* 102 | void matrix_init_user(void) { 103 | 104 | } 105 | 106 | void matrix_scan_user(void) { 107 | 108 | } 109 | 110 | bool led_update_user(led_t led_state) { 111 | return true; 112 | } 113 | */ 114 | -------------------------------------------------------------------------------- /firmware/entropy/keymaps/via/config.h: -------------------------------------------------------------------------------- 1 | /* Copyright 2020 joshajohnson 2 | * 3 | * This program is free software: you can redistribute it and/or modify 4 | * it under the terms of the GNU General Public License as published by 5 | * the Free Software Foundation, either version 2 of the License, or 6 | * (at your option) any later version. 7 | * 8 | * This program is distributed in the hope that it will be useful, 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | * GNU General Public License for more details. 12 | * 13 | * You should have received a copy of the GNU General Public License 14 | * along with this program. If not, see . 15 | */ 16 | 17 | #pragma once 18 | 19 | // place overrides here 20 | 21 | // more keys = more room for VIA 22 | #define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 23 | -------------------------------------------------------------------------------- /firmware/entropy/keymaps/via/rules.mk: -------------------------------------------------------------------------------- 1 | VIA_ENABLE = yes 2 | LTO = yes 3 | -------------------------------------------------------------------------------- /firmware/entropy/readme.md: -------------------------------------------------------------------------------- 1 | # entropy 2 | 3 | ![entropy](imgur.com image replace me!) 4 | 5 | A short description of the keyboard/project 6 | 7 | * Keyboard Maintainer: [joshajohnson](https://github.com/joshajohnson) 8 | * Hardware Supported: Entropy v0.1 PCB 9 | * Hardware Availability: Contact Josh 10 | 11 | Make example for this keyboard (after setting up your build environment): 12 | 13 | qmk compile -kb entropy -km default 14 | 15 | See the [build environment setup](https://docs.qmk.fm/#/newbs_getting_started) and the [make instructions](https://docs.qmk.fm/#/newbs_building_firmware) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). 16 | -------------------------------------------------------------------------------- /firmware/entropy/rules.mk: -------------------------------------------------------------------------------- 1 | # MCU name 2 | MCU = STM32F303 3 | 4 | # Build Options 5 | # change yes to no to disable 6 | # 7 | BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration 8 | MOUSEKEY_ENABLE = yes # Mouse keys 9 | EXTRAKEY_ENABLE = yes # Audio control and System control 10 | CONSOLE_ENABLE = no # Console for debug 11 | COMMAND_ENABLE = no # Commands for debug and configuration 12 | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 13 | SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 14 | # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 15 | NKRO_ENABLE = no # USB Nkey Rollover 16 | BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality 17 | RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow 18 | MIDI_ENABLE = no # MIDI support 19 | BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID 20 | AUDIO_ENABLE = yes # Audio output 21 | FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches 22 | HD44780_ENABLE = no # Enable support for HD44780 based LCDs 23 | ENCODER_ENABLE = yes # Rotary Encoder support 24 | -------------------------------------------------------------------------------- /graphics/entropy_py.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/graphics/entropy_py.png -------------------------------------------------------------------------------- /graphics/pcb_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/graphics/pcb_export.png -------------------------------------------------------------------------------- /graphics/random_gen.py: -------------------------------------------------------------------------------- 1 | import random 2 | from matplotlib import pyplot as plt 3 | from matplotlib import colors 4 | 5 | # 2mm per voxel 6 | rows = 12 * 5 7 | cols = 39 * 5 8 | 9 | array = [[0 for x in range(cols)] for y in range(rows)] 10 | 11 | for row in range(rows): 12 | for col in range(cols): 13 | array[row][col] = random.randint(0,1) 14 | 15 | for i in range(rows): 16 | print(array[i]) 17 | 18 | cmap = colors.ListedColormap(['Black','White']) 19 | plt.figure(figsize=(cols,rows)) 20 | plt.axis("off") 21 | plt.pcolor(array[::-1],cmap=cmap,edgecolors='', linewidths=1) 22 | plt.savefig('entropy_py.png') 23 | plt.show() -------------------------------------------------------------------------------- /graphics/random_gen.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/graphics/random_gen.pyc -------------------------------------------------------------------------------- /hardware/0.1/.gitignore: -------------------------------------------------------------------------------- 1 | # For PCBs designed using KiCad: http://www.kicad-pcb.org/ 2 | # Format documentation: http://kicad-pcb.org/help/file-formats/ 3 | 4 | # Temporary files 5 | *.000 6 | *.bak 7 | *.bck 8 | *.kicad_pcb-bak 9 | *.sch-bak 10 | *~ 11 | _autosave-* 12 | *.tmp 13 | *-save.pro 14 | *-save.kicad_pcb 15 | fp-info-cache 16 | 17 | # Netlist files (exported from Eeschema) 18 | *.net 19 | 20 | # Autorouter files (exported from Pcbnew) 21 | *.dsn 22 | *.ses 23 | 24 | # Exported BOM files 25 | *.xml 26 | *.csv 27 | 28 | # Gerbers 29 | *.zip 30 | gerbers/* 31 | -------------------------------------------------------------------------------- /hardware/0.1/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name josh-buttons-switches)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-buttons-switches.pretty)(options "")(descr "")) 3 | (lib (name josh-connectors)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-connectors.pretty)(options "")(descr "")) 4 | (lib (name josh-dfn-qfn)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-dfn-qfn.pretty)(options "")(descr "")) 5 | (lib (name josh-led)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-led.pretty)(options "")(descr "")) 6 | (lib (name josh-logos)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-logos.pretty)(options "")(descr "")) 7 | (lib (name josh-mechanical)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-mechanical.pretty)(options "")(descr "")) 8 | (lib (name josh-oscillators)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-oscillators.pretty)(options "")(descr "")) 9 | (lib (name josh-passives-smt)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-passives-smt.pretty)(options "")(descr "")) 10 | (lib (name josh-rf)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-rf.pretty)(options "")(descr "")) 11 | (lib (name josh-soic-sot-etc)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-soic-sot-etc.pretty)(options "")(descr "")) 12 | (lib (name josh-test-point)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-test-point.pretty)(options "")(descr "")) 13 | (lib (name josh-display)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-display.pretty)(options "")(descr "")) 14 | (lib (name josh-keyboard)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.pretty)(options "")(descr "")) 15 | (lib (name graphics)(type KiCad)(uri ${KIPRJMOD}/../../graphics)(options "")(descr "")) 16 | ) 17 | -------------------------------------------------------------------------------- /hardware/0.1/keyboard.pro: -------------------------------------------------------------------------------- 1 | update=Mon 08 Jun 2020 16:44:06 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= 29 | CopperLayerCount=2 30 | BoardThickness=1.6 31 | AllowMicroVias=0 32 | AllowBlindVias=0 33 | RequireCourtyardDefinitions=0 34 | ProhibitOverlappingCourtyards=1 35 | MinTrackWidth=0.2 36 | MinViaDiameter=0.4 37 | MinViaDrill=0.3 38 | MinMicroViaDiameter=0.2 39 | MinMicroViaDrill=0.09999999999999999 40 | MinHoleToHole=0.25 41 | TrackWidth1=0.25 42 | TrackWidth2=0.25 43 | TrackWidth3=0.3 44 | TrackWidth4=0.4 45 | TrackWidth5=0.5 46 | ViaDiameter1=0.6 47 | ViaDrill1=0.3 48 | ViaDiameter2=0.8 49 | ViaDrill2=0.4 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.5 61 | CopperTextSizeH=1.5 62 | CopperTextThickness=0.3 63 | CopperTextItalic=0 64 | CopperTextUpright=1 65 | EdgeCutLineWidth=0.09999999999999999 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 74 | SolderMaskMinWidth=0 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.25 248 | ViaDiameter=0.6 249 | ViaDrill=0.3 250 | uViaDiameter=0.3 251 | uViaDrill=0.1 252 | dPairWidth=0.2 253 | dPairGap=0.25 254 | dPairViaGap=0.25 255 | -------------------------------------------------------------------------------- /hardware/0.1/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name josh-ic)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-ic.lib)(options "")(descr "")) 3 | (lib (name josh-led)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-led.lib)(options "")(descr "")) 4 | (lib (name josh-logic)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-logic.lib)(options "")(descr "")) 5 | (lib (name josh-mechnanical)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-mechnanical.lib)(options "")(descr "")) 6 | (lib (name josh-memory)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-memory.lib)(options "")(descr "")) 7 | (lib (name josh-oscillator)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-oscillator.lib)(options "")(descr "")) 8 | (lib (name josh-passive)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-passive.lib)(options "")(descr "")) 9 | (lib (name josh-power)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-power.lib)(options "")(descr "")) 10 | (lib (name josh-rf)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-rf.lib)(options "")(descr "")) 11 | (lib (name josh-connector)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-connector.lib)(options "")(descr "")) 12 | (lib (name josh-display)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-display.lib)(options "")(descr "")) 13 | (lib (name josh-keyboard)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.lib)(options "")(descr "")) 14 | ) 15 | -------------------------------------------------------------------------------- /hardware/0.2/.gitignore: -------------------------------------------------------------------------------- 1 | # For PCBs designed using KiCad: http://www.kicad-pcb.org/ 2 | # Format documentation: http://kicad-pcb.org/help/file-formats/ 3 | 4 | # Temporary files 5 | *.000 6 | *.bak 7 | *.bck 8 | *.kicad_pcb-bak 9 | *.sch-bak 10 | *~ 11 | _autosave-* 12 | *.tmp 13 | *-save.pro 14 | *-save.kicad_pcb 15 | fp-info-cache 16 | 17 | # Netlist files (exported from Eeschema) 18 | *.net 19 | 20 | # Autorouter files (exported from Pcbnew) 21 | *.dsn 22 | *.ses 23 | 24 | # Exported BOM files 25 | *.xml 26 | *.csv 27 | 28 | # Gerbers 29 | *.zip 30 | gerbers/* 31 | -------------------------------------------------------------------------------- /hardware/0.2/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name josh-buttons-switches)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-buttons-switches.pretty)(options "")(descr "")) 3 | (lib (name josh-connectors)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-connectors.pretty)(options "")(descr "")) 4 | (lib (name josh-dfn-qfn)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-dfn-qfn.pretty)(options "")(descr "")) 5 | (lib (name josh-led)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-led.pretty)(options "")(descr "")) 6 | (lib (name josh-logos)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-logos.pretty)(options "")(descr "")) 7 | (lib (name josh-mechanical)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-mechanical.pretty)(options "")(descr "")) 8 | (lib (name josh-oscillators)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-oscillators.pretty)(options "")(descr "")) 9 | (lib (name josh-passives-smt)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-passives-smt.pretty)(options "")(descr "")) 10 | (lib (name josh-rf)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-rf.pretty)(options "")(descr "")) 11 | (lib (name josh-soic-sot-etc)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-soic-sot-etc.pretty)(options "")(descr "")) 12 | (lib (name josh-test-point)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-test-point.pretty)(options "")(descr "")) 13 | (lib (name josh-display)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-display.pretty)(options "")(descr "")) 14 | (lib (name josh-keyboard)(type KiCad)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.pretty)(options "")(descr "")) 15 | (lib (name graphics)(type KiCad)(uri ${KIPRJMOD}/../../graphics)(options "")(descr "")) 16 | ) 17 | -------------------------------------------------------------------------------- /hardware/0.2/keyboard-rescue.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | #End Doc Library 4 | -------------------------------------------------------------------------------- /hardware/0.2/keyboard-rescue.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # MX-NoLED-josh-keyboard 5 | # 6 | DEF MX-NoLED-josh-keyboard MX 0 40 Y Y 1 F N 7 | F0 "MX" -25 150 60 H V C CNN 8 | F1 "MX-NoLED-josh-keyboard" -25 50 20 H V C CNN 9 | F2 "" -625 -25 60 H I C CNN 10 | F3 "" -625 -25 60 H I C CNN 11 | DRAW 12 | T 0 125 0 30 0 0 0 COL Normal 0 C C 13 | T 900 0 -75 30 0 0 0 ROW Normal 0 R C 14 | S -100 100 50 -50 0 0 0 N 15 | P 2 0 0 5 -50 -50 -50 50 N 16 | P 3 0 0 5 50 50 0 50 -50 75 N 17 | X COL 1 150 50 100 L 0 0 1 1 P 18 | X ROW 2 -50 -150 100 U 0 0 1 1 P 19 | ENDDRAW 20 | ENDDEF 21 | # 22 | # SK6812-MINI-E-josh-led 23 | # 24 | DEF SK6812-MINI-E-josh-led D 0 10 Y Y 1 F N 25 | F0 "D" 200 225 50 H V R BNN 26 | F1 "SK6812-MINI-E-josh-led" 50 -225 50 H V L TNN 27 | F2 "josh-led:SK8612-MINI-E" 50 -300 50 H I L TNN 28 | F3 "" 100 -375 50 H I L TNN 29 | $FPLIST 30 | LED*WS2812*PLCC*5.0x5.0mm*P3.2mm* 31 | $ENDFPLIST 32 | DRAW 33 | T 0 90 -165 30 0 0 0 RGB Normal 0 C C 34 | S 200 200 -200 -200 0 1 10 f 35 | P 2 0 1 0 50 -140 70 -140 N 36 | P 2 0 1 0 50 -100 70 -100 N 37 | P 2 0 1 0 185 -140 105 -140 N 38 | P 3 0 1 0 90 -100 50 -140 50 -120 N 39 | P 3 0 1 0 90 -60 50 -100 50 -80 N 40 | P 3 0 1 0 145 -40 145 -140 145 -160 N 41 | P 4 0 1 0 185 -60 105 -60 145 -140 185 -60 N 42 | X VDD 1 0 300 100 D 50 50 1 1 W 43 | X DOUT 2 300 0 100 L 50 50 1 1 O 44 | X GND 3 0 -300 100 U 50 50 1 1 W 45 | X DIN 4 -300 0 100 R 50 50 1 1 I 46 | ENDDRAW 47 | ENDDEF 48 | # 49 | # USBLC6-2SC6-josh-ic 50 | # 51 | DEF USBLC6-2SC6-josh-ic U 0 0 Y Y 1 F N 52 | F0 "U" -300 350 50 H V C CNN 53 | F1 "USBLC6-2SC6-josh-ic" 300 300 50 H V C CNN 54 | F2 "Package_TO_SOT_SMD:SOT-23-6" -750 400 50 H I C CNN 55 | F3 "" 200 350 50 H I C CNN 56 | $FPLIST 57 | SOT?23* 58 | $ENDFPLIST 59 | DRAW 60 | S -200 -250 200 250 0 1 10 f 61 | P 2 0 1 0 -200 -100 200 -100 N 62 | P 2 0 1 0 200 100 -200 100 N 63 | P 2 1 1 0 0 190 0 300 N 64 | P 3 1 1 0 -130 -190 -50 -190 -50 -190 N 65 | P 3 1 1 0 -130 -130 -130 -100 -130 -100 N 66 | P 3 1 1 0 -130 10 -130 70 -130 40 N 67 | P 3 1 1 0 -130 10 -50 10 -50 10 N 68 | P 3 1 1 0 -130 70 -130 100 -130 100 N 69 | P 3 1 1 0 -70 -130 -50 -130 -30 -130 N 70 | P 3 1 1 0 -70 -40 -50 -40 -30 -40 N 71 | P 3 1 1 0 -70 70 -50 70 -30 70 N 72 | P 3 1 1 0 -70 160 -50 160 -30 160 N 73 | P 3 1 1 0 -50 -190 -50 -130 -50 -160 N 74 | P 3 1 1 0 -50 -190 130 -190 130 -190 N 75 | P 3 1 1 0 -50 -40 -50 -20 -50 -20 N 76 | P 3 1 1 0 -50 -20 130 -20 130 -20 N 77 | P 3 1 1 0 -50 10 -50 70 -50 40 N 78 | P 3 1 1 0 -50 10 130 10 130 10 N 79 | P 3 1 1 0 0 -250 0 -190 0 -190 N 80 | P 3 1 1 0 110 -130 130 -130 150 -130 N 81 | P 3 1 1 0 110 -40 130 -40 150 -40 N 82 | P 3 1 1 0 110 70 130 70 150 70 N 83 | P 3 1 1 0 110 160 130 160 150 160 N 84 | P 3 1 1 0 130 -40 130 -20 130 -20 N 85 | P 4 1 1 0 -130 -190 -130 -130 -130 -160 -130 -160 N 86 | P 4 1 1 0 130 -190 130 -130 130 -160 130 -160 N 87 | P 4 1 1 0 130 10 130 70 130 40 130 40 N 88 | P 5 1 1 0 -130 -130 -150 -160 -110 -160 -130 -130 -130 -130 N 89 | P 5 1 1 0 -130 70 -150 40 -110 40 -130 70 -130 70 N 90 | P 5 1 1 0 -110 -120 -110 -130 -150 -130 -150 -140 -150 -140 N 91 | P 5 1 1 0 -110 80 -110 70 -150 70 -150 60 -150 60 N 92 | P 5 1 1 0 -50 -130 -70 -160 -30 -160 -50 -130 -50 -130 N 93 | P 5 1 1 0 -50 -130 -50 -40 -50 -70 -50 -70 -50 -70 N 94 | P 5 1 1 0 -50 -40 -70 -70 -30 -70 -50 -40 -50 -40 N 95 | P 5 1 1 0 -50 70 -70 40 -30 40 -50 70 -50 70 N 96 | P 5 1 1 0 -50 70 -50 160 -50 130 -50 130 -50 130 N 97 | P 5 1 1 0 -50 160 -70 130 -30 130 -50 160 -50 160 N 98 | P 5 1 1 0 -50 160 -50 190 130 190 130 160 130 160 N 99 | P 5 1 1 0 130 -130 110 -160 150 -160 130 -130 130 -130 N 100 | P 5 1 1 0 130 -130 130 -40 130 -70 130 -70 130 -70 N 101 | P 5 1 1 0 130 -40 110 -70 150 -70 130 -40 130 -40 N 102 | P 5 1 1 0 130 70 110 40 150 40 130 70 130 70 N 103 | P 5 1 1 0 130 70 130 160 130 130 130 130 130 130 N 104 | P 5 1 1 0 130 160 110 130 150 130 130 160 130 160 N 105 | X IO1 1 -400 100 200 R 50 50 1 1 P 106 | X GND 2 0 -450 200 U 50 50 1 1 P 107 | X IO2 3 -400 -100 200 R 50 50 1 1 P 108 | X IO2 4 400 -100 200 L 50 50 1 1 P 109 | X VBUS 5 0 500 200 D 50 50 1 1 P 110 | X IO1 6 400 100 200 L 50 50 1 1 P 111 | ENDDRAW 112 | ENDDEF 113 | # 114 | #End Library 115 | -------------------------------------------------------------------------------- /hardware/0.2/keyboard.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 8, 37 | 9, 38 | 10, 39 | 11, 40 | 12, 41 | 13, 42 | 14, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36 64 | ], 65 | "visible_layers": "000ffdf_80000001", 66 | "zone_display_mode": 1 67 | }, 68 | "meta": { 69 | "filename": "keyboard.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /hardware/0.2/keyboard.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.09999999999999999, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.09999999999999999, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.6, 37 | "height": 1.5, 38 | "width": 1.5 39 | }, 40 | "silk_line_width": 0.15, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.254 49 | } 50 | }, 51 | "diff_pair_dimensions": [], 52 | "drc_exclusions": [], 53 | "meta": { 54 | "filename": "board_design_settings.json", 55 | "version": 2 56 | }, 57 | "rule_severities": { 58 | "annular_width": "error", 59 | "clearance": "error", 60 | "copper_edge_clearance": "error", 61 | "courtyards_overlap": "error", 62 | "diff_pair_gap_out_of_range": "error", 63 | "diff_pair_uncoupled_length_too_long": "error", 64 | "drill_out_of_range": "error", 65 | "duplicate_footprints": "warning", 66 | "extra_footprint": "warning", 67 | "footprint_type_mismatch": "error", 68 | "hole_clearance": "error", 69 | "hole_near_hole": "error", 70 | "invalid_outline": "error", 71 | "item_on_disabled_layer": "error", 72 | "items_not_allowed": "error", 73 | "length_out_of_range": "error", 74 | "malformed_courtyard": "error", 75 | "microvia_drill_out_of_range": "error", 76 | "missing_courtyard": "ignore", 77 | "missing_footprint": "warning", 78 | "net_conflict": "warning", 79 | "npth_inside_courtyard": "ignore", 80 | "padstack": "error", 81 | "pth_inside_courtyard": "ignore", 82 | "shorting_items": "error", 83 | "silk_over_copper": "warning", 84 | "silk_overlap": "warning", 85 | "skew_out_of_range": "error", 86 | "through_hole_pad_without_hole": "error", 87 | "too_many_vias": "error", 88 | "track_dangling": "warning", 89 | "track_width": "error", 90 | "tracks_crossing": "error", 91 | "unconnected_items": "error", 92 | "unresolved_variable": "error", 93 | "via_dangling": "warning", 94 | "zone_has_empty_net": "error", 95 | "zones_intersect": "error" 96 | }, 97 | "rule_severitieslegacy_courtyards_overlap": true, 98 | "rule_severitieslegacy_no_courtyard_defined": false, 99 | "rules": { 100 | "allow_blind_buried_vias": false, 101 | "allow_microvias": false, 102 | "max_error": 0.005, 103 | "min_clearance": 0.0, 104 | "min_copper_edge_clearance": 0.09999999999999999, 105 | "min_hole_clearance": 0.0, 106 | "min_hole_to_hole": 0.25, 107 | "min_microvia_diameter": 0.19999999999999998, 108 | "min_microvia_drill": 0.09999999999999999, 109 | "min_silk_clearance": 0.0, 110 | "min_through_hole_diameter": 0.3, 111 | "min_track_width": 0.19999999999999998, 112 | "min_via_annular_width": 0.049999999999999996, 113 | "min_via_diameter": 0.39999999999999997, 114 | "use_height_for_length_calcs": true 115 | }, 116 | "track_widths": [ 117 | 0.0, 118 | 0.25, 119 | 0.3, 120 | 0.4, 121 | 0.5 122 | ], 123 | "via_dimensions": [ 124 | { 125 | "diameter": 0.0, 126 | "drill": 0.0 127 | }, 128 | { 129 | "diameter": 0.8, 130 | "drill": 0.4 131 | } 132 | ], 133 | "zones_allow_external_fillets": false, 134 | "zones_use_no_outline": true 135 | }, 136 | "layer_presets": [] 137 | }, 138 | "boards": [], 139 | "cvpcb": { 140 | "equivalence_files": [] 141 | }, 142 | "libraries": { 143 | "pinned_footprint_libs": [], 144 | "pinned_symbol_libs": [] 145 | }, 146 | "meta": { 147 | "filename": "keyboard.kicad_pro", 148 | "version": 1 149 | }, 150 | "net_settings": { 151 | "classes": [ 152 | { 153 | "bus_width": 12.0, 154 | "clearance": 0.2, 155 | "diff_pair_gap": 0.25, 156 | "diff_pair_via_gap": 0.25, 157 | "diff_pair_width": 0.2, 158 | "line_style": 0, 159 | "microvia_diameter": 0.3, 160 | "microvia_drill": 0.1, 161 | "name": "Default", 162 | "pcb_color": "rgba(0, 0, 0, 0.000)", 163 | "schematic_color": "rgba(0, 0, 0, 0.000)", 164 | "track_width": 0.25, 165 | "via_diameter": 0.6, 166 | "via_drill": 0.3, 167 | "wire_width": 6.0 168 | } 169 | ], 170 | "meta": { 171 | "version": 2 172 | }, 173 | "net_colors": null 174 | }, 175 | "pcbnew": { 176 | "last_paths": { 177 | "gencad": "", 178 | "idf": "", 179 | "netlist": "", 180 | "specctra_dsn": "", 181 | "step": "", 182 | "vrml": "" 183 | }, 184 | "page_layout_descr_file": "" 185 | }, 186 | "schematic": { 187 | "drawing": { 188 | "default_text_size": 50, 189 | "label_size_ratio": 0.25, 190 | "text_offset_ratio": 0.08 191 | }, 192 | "legacy_lib_dir": "", 193 | "legacy_lib_list": [], 194 | "net_format_name": "Pcbnew", 195 | "page_layout_descr_file": "", 196 | "plot_directory": "", 197 | "spice_adjust_passive_values": false, 198 | "subpart_first_id": 65, 199 | "subpart_id_separator": 0 200 | }, 201 | "sheets": [], 202 | "text_variables": {} 203 | } 204 | -------------------------------------------------------------------------------- /hardware/0.2/keyboard.pro: -------------------------------------------------------------------------------- 1 | update=Fri 25 Dec 2020 15:47:12 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 | [pcbnew] 16 | version=1 17 | PageLayoutDescrFile= 18 | LastNetListRead= 19 | CopperLayerCount=2 20 | BoardThickness=1.6 21 | AllowMicroVias=0 22 | AllowBlindVias=0 23 | RequireCourtyardDefinitions=0 24 | ProhibitOverlappingCourtyards=1 25 | MinTrackWidth=0.2 26 | MinViaDiameter=0.4 27 | MinViaDrill=0.3 28 | MinMicroViaDiameter=0.2 29 | MinMicroViaDrill=0.09999999999999999 30 | MinHoleToHole=0.25 31 | TrackWidth1=0.25 32 | TrackWidth2=0.25 33 | TrackWidth3=0.3 34 | TrackWidth4=0.4 35 | TrackWidth5=0.5 36 | ViaDiameter1=0.6 37 | ViaDrill1=0.3 38 | ViaDiameter2=0.8 39 | ViaDrill2=0.4 40 | dPairWidth1=0.2 41 | dPairGap1=0.25 42 | dPairViaGap1=0.25 43 | SilkLineWidth=0.15 44 | SilkTextSizeV=1 45 | SilkTextSizeH=1 46 | SilkTextSizeThickness=0.15 47 | SilkTextItalic=0 48 | SilkTextUpright=1 49 | CopperLineWidth=0.2 50 | CopperTextSizeV=1.5 51 | CopperTextSizeH=1.5 52 | CopperTextThickness=0.3 53 | CopperTextItalic=0 54 | CopperTextUpright=1 55 | EdgeCutLineWidth=0.09999999999999999 56 | CourtyardLineWidth=0.05 57 | OthersLineWidth=0.15 58 | OthersTextSizeV=1 59 | OthersTextSizeH=1 60 | OthersTextSizeThickness=0.15 61 | OthersTextItalic=0 62 | OthersTextUpright=1 63 | SolderMaskClearance=0 64 | SolderMaskMinWidth=0 65 | SolderPasteClearance=0 66 | SolderPasteRatio=-0 67 | [pcbnew/Layer.F.Cu] 68 | Name=F.Cu 69 | Type=0 70 | Enabled=1 71 | [pcbnew/Layer.In1.Cu] 72 | Name=In1.Cu 73 | Type=0 74 | Enabled=0 75 | [pcbnew/Layer.In2.Cu] 76 | Name=In2.Cu 77 | Type=0 78 | Enabled=0 79 | [pcbnew/Layer.In3.Cu] 80 | Name=In3.Cu 81 | Type=0 82 | Enabled=0 83 | [pcbnew/Layer.In4.Cu] 84 | Name=In4.Cu 85 | Type=0 86 | Enabled=0 87 | [pcbnew/Layer.In5.Cu] 88 | Name=In5.Cu 89 | Type=0 90 | Enabled=0 91 | [pcbnew/Layer.In6.Cu] 92 | Name=In6.Cu 93 | Type=0 94 | Enabled=0 95 | [pcbnew/Layer.In7.Cu] 96 | Name=In7.Cu 97 | Type=0 98 | Enabled=0 99 | [pcbnew/Layer.In8.Cu] 100 | Name=In8.Cu 101 | Type=0 102 | Enabled=0 103 | [pcbnew/Layer.In9.Cu] 104 | Name=In9.Cu 105 | Type=0 106 | Enabled=0 107 | [pcbnew/Layer.In10.Cu] 108 | Name=In10.Cu 109 | Type=0 110 | Enabled=0 111 | [pcbnew/Layer.In11.Cu] 112 | Name=In11.Cu 113 | Type=0 114 | Enabled=0 115 | [pcbnew/Layer.In12.Cu] 116 | Name=In12.Cu 117 | Type=0 118 | Enabled=0 119 | [pcbnew/Layer.In13.Cu] 120 | Name=In13.Cu 121 | Type=0 122 | Enabled=0 123 | [pcbnew/Layer.In14.Cu] 124 | Name=In14.Cu 125 | Type=0 126 | Enabled=0 127 | [pcbnew/Layer.In15.Cu] 128 | Name=In15.Cu 129 | Type=0 130 | Enabled=0 131 | [pcbnew/Layer.In16.Cu] 132 | Name=In16.Cu 133 | Type=0 134 | Enabled=0 135 | [pcbnew/Layer.In17.Cu] 136 | Name=In17.Cu 137 | Type=0 138 | Enabled=0 139 | [pcbnew/Layer.In18.Cu] 140 | Name=In18.Cu 141 | Type=0 142 | Enabled=0 143 | [pcbnew/Layer.In19.Cu] 144 | Name=In19.Cu 145 | Type=0 146 | Enabled=0 147 | [pcbnew/Layer.In20.Cu] 148 | Name=In20.Cu 149 | Type=0 150 | Enabled=0 151 | [pcbnew/Layer.In21.Cu] 152 | Name=In21.Cu 153 | Type=0 154 | Enabled=0 155 | [pcbnew/Layer.In22.Cu] 156 | Name=In22.Cu 157 | Type=0 158 | Enabled=0 159 | [pcbnew/Layer.In23.Cu] 160 | Name=In23.Cu 161 | Type=0 162 | Enabled=0 163 | [pcbnew/Layer.In24.Cu] 164 | Name=In24.Cu 165 | Type=0 166 | Enabled=0 167 | [pcbnew/Layer.In25.Cu] 168 | Name=In25.Cu 169 | Type=0 170 | Enabled=0 171 | [pcbnew/Layer.In26.Cu] 172 | Name=In26.Cu 173 | Type=0 174 | Enabled=0 175 | [pcbnew/Layer.In27.Cu] 176 | Name=In27.Cu 177 | Type=0 178 | Enabled=0 179 | [pcbnew/Layer.In28.Cu] 180 | Name=In28.Cu 181 | Type=0 182 | Enabled=0 183 | [pcbnew/Layer.In29.Cu] 184 | Name=In29.Cu 185 | Type=0 186 | Enabled=0 187 | [pcbnew/Layer.In30.Cu] 188 | Name=In30.Cu 189 | Type=0 190 | Enabled=0 191 | [pcbnew/Layer.B.Cu] 192 | Name=B.Cu 193 | Type=0 194 | Enabled=1 195 | [pcbnew/Layer.B.Adhes] 196 | Enabled=1 197 | [pcbnew/Layer.F.Adhes] 198 | Enabled=1 199 | [pcbnew/Layer.B.Paste] 200 | Enabled=1 201 | [pcbnew/Layer.F.Paste] 202 | Enabled=1 203 | [pcbnew/Layer.B.SilkS] 204 | Enabled=1 205 | [pcbnew/Layer.F.SilkS] 206 | Enabled=1 207 | [pcbnew/Layer.B.Mask] 208 | Enabled=1 209 | [pcbnew/Layer.F.Mask] 210 | Enabled=1 211 | [pcbnew/Layer.Dwgs.User] 212 | Enabled=1 213 | [pcbnew/Layer.Cmts.User] 214 | Enabled=1 215 | [pcbnew/Layer.Eco1.User] 216 | Enabled=1 217 | [pcbnew/Layer.Eco2.User] 218 | Enabled=1 219 | [pcbnew/Layer.Edge.Cuts] 220 | Enabled=1 221 | [pcbnew/Layer.Margin] 222 | Enabled=1 223 | [pcbnew/Layer.B.CrtYd] 224 | Enabled=1 225 | [pcbnew/Layer.F.CrtYd] 226 | Enabled=1 227 | [pcbnew/Layer.B.Fab] 228 | Enabled=1 229 | [pcbnew/Layer.F.Fab] 230 | Enabled=1 231 | [pcbnew/Layer.Rescue] 232 | Enabled=0 233 | [pcbnew/Netclasses] 234 | [pcbnew/Netclasses/Default] 235 | Name=Default 236 | Clearance=0.2 237 | TrackWidth=0.25 238 | ViaDiameter=0.6 239 | ViaDrill=0.3 240 | uViaDiameter=0.3 241 | uViaDrill=0.1 242 | dPairWidth=0.2 243 | dPairGap=0.25 244 | dPairViaGap=0.25 245 | [schematic_editor] 246 | version=1 247 | PageLayoutDescrFile= 248 | PlotDirectoryName= 249 | SubpartIdSeparator=0 250 | SubpartFirstId=65 251 | NetFmtName=Pcbnew 252 | SpiceAjustPassiveValues=0 253 | LabSize=50 254 | ERC_TestSimilarLabels=1 255 | -------------------------------------------------------------------------------- /hardware/0.2/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name josh-ic)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-ic.lib)(options "")(descr "")) 3 | (lib (name josh-led)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-led.lib)(options "")(descr "")) 4 | (lib (name josh-logic)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-logic.lib)(options "")(descr "")) 5 | (lib (name josh-mechnanical)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-mechnanical.lib)(options "")(descr "")) 6 | (lib (name josh-memory)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-memory.lib)(options "")(descr "")) 7 | (lib (name josh-oscillator)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-oscillator.lib)(options "")(descr "")) 8 | (lib (name josh-passive)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-passive.lib)(options "")(descr "")) 9 | (lib (name josh-power)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-power.lib)(options "")(descr "")) 10 | (lib (name josh-rf)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-rf.lib)(options "")(descr "")) 11 | (lib (name josh-connector)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-connector.lib)(options "")(descr "")) 12 | (lib (name josh-display)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-display.lib)(options "")(descr "")) 13 | (lib (name josh-keyboard)(type Legacy)(uri ${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.lib)(options "")(descr "")) 14 | (lib (name keyboard-rescue)(type Legacy)(uri ${KIPRJMOD}/keyboard-rescue.lib)(options "")(descr "")) 15 | ) 16 | -------------------------------------------------------------------------------- /hardware/0.3-w/.gitignore: -------------------------------------------------------------------------------- 1 | # For PCBs designed using KiCad: http://www.kicad-pcb.org/ 2 | # Format documentation: http://kicad-pcb.org/help/file-formats/ 3 | 4 | # Temporary files 5 | *.000 6 | *.bak 7 | *.bck 8 | *.kicad_pcb-bak 9 | *.sch-bak 10 | *~ 11 | _autosave-* 12 | *.tmp 13 | *-save.pro 14 | *-save.kicad_pcb 15 | fp-info-cache 16 | 17 | # Netlist files (exported from Eeschema) 18 | *.net 19 | 20 | # Autorouter files (exported from Pcbnew) 21 | *.dsn 22 | *.ses 23 | 24 | # Exported BOM files 25 | *.xml 26 | *.csv 27 | 28 | # Gerbers 29 | *.zip 30 | gerbers/* 31 | -------------------------------------------------------------------------------- /hardware/0.3-w/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "josh-buttons-switches")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-buttons-switches.pretty")(options "")(descr "")) 3 | (lib (name "josh-connectors")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-connectors.pretty")(options "")(descr "")) 4 | (lib (name "josh-dfn-qfn")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-dfn-qfn.pretty")(options "")(descr "")) 5 | (lib (name "josh-led")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-led.pretty")(options "")(descr "")) 6 | (lib (name "josh-logos")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-logos.pretty")(options "")(descr "")) 7 | (lib (name "josh-mechanical")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-mechanical.pretty")(options "")(descr "")) 8 | (lib (name "josh-oscillators")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-oscillators.pretty")(options "")(descr "")) 9 | (lib (name "josh-passives-smt")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-passives-smt.pretty")(options "")(descr "")) 10 | (lib (name "josh-rf")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-rf.pretty")(options "")(descr "")) 11 | (lib (name "josh-soic-sot-etc")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-soic-sot-etc.pretty")(options "")(descr "")) 12 | (lib (name "josh-test-point")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-test-point.pretty")(options "")(descr "")) 13 | (lib (name "josh-display")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-display.pretty")(options "")(descr "")) 14 | (lib (name "josh-bga")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-bga.pretty")(options "")(descr "")) 15 | (lib (name "josh-power")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-power.pretty")(options "")(descr "")) 16 | (lib (name "josh-module")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-module.pretty")(options "")(descr "")) 17 | (lib (name "josh-keyboard")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.pretty")(options "")(descr "")) 18 | ) 19 | -------------------------------------------------------------------------------- /hardware/0.3-w/keyboard.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "000ffff_80000001", 67 | "zone_display_mode": 1 68 | }, 69 | "meta": { 70 | "filename": "keyboard.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /hardware/0.3-w/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "josh-led")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-led.kicad_sym")(options "")(descr "")) 3 | (lib (name "josh-logic")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-logic.kicad_sym")(options "")(descr "")) 4 | (lib (name "josh-mechnanical")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-mechnanical.kicad_sym")(options "")(descr "")) 5 | (lib (name "josh-memory")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-memory.kicad_sym")(options "")(descr "")) 6 | (lib (name "josh-oscillator")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-oscillator.kicad_sym")(options "")(descr "")) 7 | (lib (name "josh-passive")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-passive.kicad_sym")(options "")(descr "")) 8 | (lib (name "josh-power")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-power.kicad_sym")(options "")(descr "")) 9 | (lib (name "josh-rf")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-rf.kicad_sym")(options "")(descr "")) 10 | (lib (name "josh-display")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-display.kicad_sym")(options "")(descr "")) 11 | (lib (name "josh-keyboard")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.kicad_sym")(options "")(descr "")) 12 | (lib (name "josh-connector")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-connector.kicad_sym")(options "")(descr "")) 13 | (lib (name "josh-ic")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-ic.kicad_sym")(options "")(descr "")) 14 | (lib (name "josh-module")(type "KiCad")(uri "/mnt/530683E96DD773A1/Dropbox/Projects/entropy/josh-kicad-lib/josh-module.kicad_sym")(options "")(descr "")) 15 | ) 16 | -------------------------------------------------------------------------------- /hardware/0.4-w/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "josh-buttons-switches")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-buttons-switches.pretty")(options "")(descr "")) 3 | (lib (name "josh-connectors")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-connectors.pretty")(options "")(descr "")) 4 | (lib (name "josh-dfn-qfn")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-dfn-qfn.pretty")(options "")(descr "")) 5 | (lib (name "josh-led")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-led.pretty")(options "")(descr "")) 6 | (lib (name "josh-logos")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-logos.pretty")(options "")(descr "")) 7 | (lib (name "josh-mechanical")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-mechanical.pretty")(options "")(descr "")) 8 | (lib (name "josh-oscillators")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-oscillators.pretty")(options "")(descr "")) 9 | (lib (name "josh-passives-smt")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-passives-smt.pretty")(options "")(descr "")) 10 | (lib (name "josh-rf")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-rf.pretty")(options "")(descr "")) 11 | (lib (name "josh-soic-sot-etc")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-soic-sot-etc.pretty")(options "")(descr "")) 12 | (lib (name "josh-test-point")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-test-point.pretty")(options "")(descr "")) 13 | (lib (name "josh-display")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-display.pretty")(options "")(descr "")) 14 | (lib (name "josh-bga")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-bga.pretty")(options "")(descr "")) 15 | (lib (name "josh-power")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-power.pretty")(options "")(descr "")) 16 | (lib (name "josh-module")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-module.pretty")(options "")(descr "")) 17 | (lib (name "josh-keyboard")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.pretty")(options "")(descr "")) 18 | ) 19 | -------------------------------------------------------------------------------- /hardware/0.4-w/gerbers/drill_report.txt: -------------------------------------------------------------------------------- 1 | Drill report for keyboard.kicad_pcb 2 | Created on Sun Aug 29 18:12:00 2021 3 | 4 | Copper Layer Stackup: 5 | ============================================================= 6 | L1 : F.Cu front 7 | L2 : B.Cu back 8 | 9 | 10 | Drill file 'keyboard.drl' contains 11 | plated through holes: 12 | ============================================================= 13 | T1 0.300mm 0.0118" (581 holes) 14 | T2 0.400mm 0.0157" (81 holes) 15 | T3 0.600mm 0.0236" (4 holes) (with 4 slots) 16 | T4 1.000mm 0.0394" (34 holes) 17 | T5 1.470mm 0.0579" (230 holes) 18 | T6 1.500mm 0.0591" (10 holes) 19 | 20 | Total plated holes count 940 21 | 22 | 23 | Not plated through holes are merged with plated holes 24 | unplated through holes: 25 | ============================================================= 26 | T7 0.650mm 0.0256" (2 holes) 27 | T8 1.700mm 0.0669" (10 holes) 28 | T9 1.750mm 0.0689" (222 holes) 29 | T10 3.048mm 0.1200" (18 holes) 30 | T11 3.988mm 0.1570" (133 holes) 31 | T12 4.000mm 0.1575" (5 holes) 32 | 33 | Total unplated holes count 390 34 | -------------------------------------------------------------------------------- /hardware/0.4-w/keyboard-bottom-pos.csv: -------------------------------------------------------------------------------- 1 | Designator,Val,Package,Mid X,Mid Y,Rotation,Side 2 | C1,100n,C_0603_1608Metric,-466.1,-107.3,90,bottom 3 | C2,100n,C_0603_1608Metric,-462.7875,-151.8,0,bottom 4 | C3,100n,C_0603_1608Metric,-457.8,-183.8,-90,bottom 5 | C4,100n,C_0603_1608Metric,-412.2,-107.3125,90,bottom 6 | C5,100n,C_0603_1608Metric,-400.6,-183.8,-90,bottom 7 | C6,100n,C_0603_1608Metric,-365.3,-200.9,90,bottom 8 | C7,100n,C_0603_1608Metric,-358.2,-107.3,90,bottom 9 | C8,100n,C_0603_1608Metric,-343.4,-183.8,-90,bottom 10 | C9,100n,C_0603_1608Metric,-326.8,-200.9,90,bottom 11 | C10,100n,C_0603_1608Metric,-304.3,-107.3,90,bottom 12 | C11,100n,C_0603_1608Metric,-290.8,-200.9,90,bottom 13 | C12,100n,C_0603_1608Metric,-286.3,-183.8125,-90,bottom 14 | C13,100n,C_0603_1608Metric,-251.3,-200.9,90,bottom 15 | C14,100n,C_0603_1608Metric,-250.3,-107.3125,90,bottom 16 | C15,100n,C_0603_1608Metric,-229.1,-183.8875,-90,bottom 17 | C16,100n,C_0603_1608Metric,-196.4,-107.3,90,bottom 18 | C17,100n,C_0603_1608Metric,-171.9,-183.8,-90,bottom 19 | C18,100n,C_0603_1608Metric,-142.4,-107.9,90,bottom 20 | C19,100n,C_0603_1608Metric,-131.3,-144.3,-90,bottom 21 | C20,100n,C_0603_1608Metric,-128.3,-142.1,0,bottom 22 | C21,1u,C_0603_1608Metric,-122.4,-115.4,-90,bottom 23 | C22,10u,C_0603_1608Metric,-119.7,-112.8,0,bottom 24 | C23,100n,C_0603_1608Metric,-118.3125,-143.3,180,bottom 25 | C24,10u,C_0603_1608Metric,-115.6,-89.685786,0,bottom 26 | C25,10u,C_0603_1608Metric,-115.5125,-106.00625,180,bottom 27 | C26,1u,C_0603_1608Metric,-115.525,-107.50625,180,bottom 28 | C27,100n,C_0603_1608Metric,-114.8,-183.8125,-90,bottom 29 | D5,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-462,-147.6,90,bottom 30 | D6,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-462,-183,0,bottom 31 | D7,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-461.9,-108.1,180,bottom 32 | D8,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-407.941665,-108.1,180,bottom 33 | D9,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-404.83333,-183,0,bottom 34 | D10,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-353.983332,-108.1,180,bottom 35 | D11,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-347.666664,-183,0,bottom 36 | D12,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-300.024999,-108.1,180,bottom 37 | D13,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-290.499998,-183,0,bottom 38 | D14,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-246.066666,-108.1,180,bottom 39 | D15,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-233.333332,-183,0,bottom 40 | D16,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-192.108333,-108.1,180,bottom 41 | D17,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-176.166666,-183,0,bottom 42 | D18,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-138.15,-108.1,180,bottom 43 | D19,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-119.1,-147.6,-90,bottom 44 | D20,WS2812C,LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm,-119,-183,0,bottom 45 | D21,B5817WL,D_SOD-123FL,-114.7,-110.9,180,bottom 46 | D22,BLU,LED_0603_1608Metric,-101.5,-101.5,180,bottom 47 | D23,GRN,LED_0603_1608Metric,-101.5,-103.15,180,bottom 48 | D24,ORG,LED_0603_1608Metric,-101.5,-104.8,180,bottom 49 | D_1,1N4148,D_SOD-123,-463.3375,-101,90,bottom 50 | D_2,1N4148,D_SOD-123,-463.2875,-120.1,90,bottom 51 | D_3,1N4148,D_SOD-123,-463.3375,-139.1,90,bottom 52 | D_4,1N4148,D_SOD-123,-463.3375,-158.5,90,bottom 53 | D_5,1N4148,D_SOD-123,-463.3375,-196.3,90,bottom 54 | D_6,1N4148,D_SOD-123,-463.2375,-177.5,90,bottom 55 | D_7,1N4148,D_SOD-123,-460.8875,-120.1,90,bottom 56 | D_8,1N4148,D_SOD-123,-460.8,-101,90,bottom 57 | D_9,1N4148,D_SOD-123,-460.8,-196.3,90,bottom 58 | D_10,1N4148,D_SOD-123,-460.7,-177.5,90,bottom 59 | D_11,1N4148,D_SOD-123,-456.3375,-139.1,90,bottom 60 | D_12,1N4148,D_SOD-123,-449.8375,-158.5,90,bottom 61 | D_13,1N4148,D_SOD-123,-441.75,-101,90,bottom 62 | D_14,1N4148,D_SOD-123,-441.75,-196.3,90,bottom 63 | D_15,1N4148,D_SOD-123,-435.2375,-177.5,90,bottom 64 | D_16,1N4148,D_SOD-123,-432.225,-139.1,90,bottom 65 | D_17,1N4148,D_SOD-123,-425,-120.1,90,bottom 66 | D_18,1N4148,D_SOD-123,-422.7,-101,90,bottom 67 | D_19,1N4148,D_SOD-123,-422.7,-196.3,90,bottom 68 | D_20,1N4148,D_SOD-123,-422.65,-120.1,90,bottom 69 | D_21,1N4148,D_SOD-123,-417.9375,-158.5,90,bottom 70 | D_22,1N4148,D_SOD-123,-413.175,-139.1,90,bottom 71 | D_23,1N4148,D_SOD-123,-408.3125,-177.5,90,bottom 72 | D_24,1N4148,D_SOD-123,-403.65,-101,90,bottom 73 | D_25,1N4148,D_SOD-123,-403.6,-120.1,90,bottom 74 | D_26,1N4148,D_SOD-123,-402.4,-196.3,90,bottom 75 | D_27,1N4148,D_SOD-123,-398.8875,-158.5,90,bottom 76 | D_28,1N4148,D_SOD-123,-394.125,-139.1,90,bottom 77 | D_29,1N4148,D_SOD-123,-389.2625,-177.5,90,bottom 78 | D_30,1N4148,D_SOD-123,-388.2,-196.3,90,bottom 79 | D_31,1N4148,D_SOD-123,-384.6,-101,90,bottom 80 | D_32,1N4148,D_SOD-123,-384.55,-120.1,90,bottom 81 | D_33,1N4148,D_SOD-123,-379.8375,-158.5,90,bottom 82 | D_34,1N4148,D_SOD-123,-375.075,-139.1,90,bottom 83 | D_35,1N4148,D_SOD-123,-370.2125,-177.5,90,bottom 84 | D_36,1N4148,D_SOD-123,-365.55,-101,90,bottom 85 | D_37,1N4148,D_SOD-123,-365.5,-120.1,90,bottom 86 | D_38,1N4148,D_SOD-123,-360.7875,-158.5,90,bottom 87 | D_39,1N4148,D_SOD-123,-356.025,-139.1,90,bottom 88 | D_40,1N4148,D_SOD-123,-354.0375,-196.3,90,bottom 89 | D_41,1N4148,D_SOD-123,-351.1625,-177.5,90,bottom 90 | D_42,1N4148,D_SOD-123,-346.5,-101,90,bottom 91 | D_43,1N4148,D_SOD-123,-346.45,-120.1,90,bottom 92 | D_44,1N4148,D_SOD-123,-341.7375,-158.5,90,bottom 93 | D_45,1N4148,D_SOD-123,-336.975,-139.1,90,bottom 94 | D_46,1N4148,D_SOD-123,-332.1125,-177.5,90,bottom 95 | D_47,1N4148,D_SOD-123,-327.45,-101,90,bottom 96 | D_48,1N4148,D_SOD-123,-327.4,-120.1,90,bottom 97 | D_49,1N4148,D_SOD-123,-322.6875,-158.5,90,bottom 98 | D_50,1N4148,D_SOD-123,-298.85,-196.75,90,bottom 99 | D_51,1N4148,D_SOD-123,-317.925,-139.1,90,bottom 100 | D_52,1N4148,D_SOD-123,-313.0625,-177.5,90,bottom 101 | D_53,1N4148,D_SOD-123,-308.4,-101,90,bottom 102 | D_54,1N4148,D_SOD-123,-308.35,-120.1,90,bottom 103 | D_55,1N4148,D_SOD-123,-303.6375,-158.5,90,bottom 104 | D_56,1N4148,D_SOD-123,-298.875,-139.1,90,bottom 105 | D_57,1N4148,D_SOD-123,-294.0125,-177.5,90,bottom 106 | D_58,1N4148,D_SOD-123,-289.35,-101,90,bottom 107 | D_59,1N4148,D_SOD-123,-289.3,-120.1,90,bottom 108 | D_60,1N4148,D_SOD-123,-284.5875,-158.5,90,bottom 109 | D_61,1N4148,D_SOD-123,-282.6375,-196.3,90,bottom 110 | D_62,1N4148,D_SOD-123,-279.825,-139.1,90,bottom 111 | D_63,1N4148,D_SOD-123,-274.9625,-177.5,90,bottom 112 | D_64,1N4148,D_SOD-123,-270.3,-101,90,bottom 113 | D_65,1N4148,D_SOD-123,-270.25,-120.1,90,bottom 114 | D_66,1N4148,D_SOD-123,-265.5375,-158.5,90,bottom 115 | D_67,1N4148,D_SOD-123,-260.775,-139.1,90,bottom 116 | D_68,1N4148,D_SOD-123,-255.9125,-177.5,90,bottom 117 | D_69,1N4148,D_SOD-123,-251.25,-101,90,bottom 118 | D_70,1N4148,D_SOD-123,-251.2,-120.1,90,bottom 119 | D_71,1N4148,D_SOD-123,-246.4875,-158.5,90,bottom 120 | D_72,1N4148,D_SOD-123,-246.4875,-196.3,90,bottom 121 | D_73,1N4148,D_SOD-123,-241.725,-139.1,90,bottom 122 | D_74,1N4148,D_SOD-123,-236.8625,-177.5,90,bottom 123 | D_75,1N4148,D_SOD-123,-232.2,-101,90,bottom 124 | D_76,1N4148,D_SOD-123,-232.15,-120.1,90,bottom 125 | D_77,1N4148,D_SOD-123,-227.4375,-158.5,90,bottom 126 | D_78,1N4148,D_SOD-123,-222.675,-139.1,90,bottom 127 | D_79,1N4148,D_SOD-123,-222.675,-196.3,90,bottom 128 | D_80,1N4148,D_SOD-123,-213.15,-101,90,bottom 129 | D_81,1N4148,D_SOD-123,-213.1,-120.1,90,bottom 130 | D_82,1N4148,D_SOD-123,-206.7375,-177.5,90,bottom 131 | D_83,1N4148,D_SOD-123,-201.3,-158.5,90,bottom 132 | D_84,1N4148,D_SOD-123,-199.8375,-139.1,90,bottom 133 | D_85,1N4148,D_SOD-123,-198.8625,-196.3,90,bottom 134 | D_86,1N4148,D_SOD-123,-194.1,-101,90,bottom 135 | D_87,1N4148,D_SOD-123,-194.05,-120.1,90,bottom 136 | D_88,1N4148,D_SOD-123,-175,-120.1,90,bottom 137 | D_89,1N4148,D_SOD-123,-175.05,-196.3,90,bottom 138 | D_90,1N4148,D_SOD-123,-174.95,-177.5,90,bottom 139 | D_91,1N4148,D_SOD-123,-158.3375,-139.1,90,bottom 140 | D_92,1N4148,D_SOD-123,-158.3375,-158.5,90,bottom 141 | D_93,1N4148,D_SOD-123,-158.2,-101,90,bottom 142 | D_94,1N4148,D_SOD-123,-156,-139.1,90,bottom 143 | D_95,1N4148,D_SOD-123,-156,-158.5,90,bottom 144 | D_96,1N4148,D_SOD-123,-155.95,-120.1,90,bottom 145 | D_97,1N4148,D_SOD-123,-155.9,-177.5,90,bottom 146 | D_98,1N4148,D_SOD-123,-151.3,-199.8,90,bottom 147 | D_99,1N4148,D_SOD-123,-140.5,-101,90,bottom 148 | D_100,1N4148,D_SOD-123,-139.3125,-139.1,90,bottom 149 | D_101,1N4148,D_SOD-123,-139.2,-158.5,90,bottom 150 | D_102,1N4148,D_SOD-123,-139,-177.5,90,bottom 151 | D_103,1N4148,D_SOD-123,-138.2,-101,90,bottom 152 | D_104,1N4148,D_SOD-123,-136.9,-120.1,90,bottom 153 | D_105,1N4148,D_SOD-123,-136.9,-139.1,90,bottom 154 | D_106,1N4148,D_SOD-123,-136.9,-158.5,90,bottom 155 | D_107,1N4148,D_SOD-123,-136.8375,-196.3,90,bottom 156 | D_108,1N4148,D_SOD-123,-136.6375,-177.5,90,bottom 157 | D_109,1N4148,D_SOD-123,-135.9,-101,90,bottom 158 | D_110,1N4148,D_SOD-123,-117.9,-120.1,90,bottom 159 | D_111,1N4148,D_SOD-123,-117.8,-190.2,90,bottom 160 | F1,500mA,Fuse_0805_2012Metric,-115.4,-91.385786,0,bottom 161 | J2,USB_C_Receptacle_USB2.0,USB_C_Receptacle_HRO_TYPE-C-31-M-12,-119,-83.676155,0,bottom 162 | J3,JST_PH2,JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_Horizontal,-106.7,-126.8,-90,bottom 163 | LOGO1,Josh-Details,josh-details,-179.2334,-231.389801,180,bottom 164 | LOGO2,Josh-Logo,josh-johnson-logo-17x3,-110.6666,-201.610199,180,bottom 165 | LOGO3,OSHW Logo,OSHW_Logo_3.6x3.6_F.Mask,-100.4,-203.3,180,bottom 166 | Q1,2N7002,SOT-23,-123.5,-140.9,90,bottom 167 | Q2,AO3401A,SOT-23,-118.4,-139.8,180,bottom 168 | Q3,AO3401A,SOT-23,-116.4,-113.8,-90,bottom 169 | R1,806K,R_0603_1608Metric,-123.6875,-110.3,0,bottom 170 | R2,2M,R_0603_1608Metric,-123.6875,-111.8,180,bottom 171 | R3,5K1,R_0603_1608Metric,-123.5,-143.4,180,bottom 172 | R4,5K1,R_0603_1608Metric,-122.8,-94.785786,90,bottom 173 | R5,5K1,R_0603_1608Metric,-121.4125,-109.6,90,bottom 174 | R6,5K1,R_0603_1608Metric,-120.9,-139.8,-90,bottom 175 | R7,5K1,R_0603_1608Metric,-121.3,-94.785786,-90,bottom 176 | R8,2K,R_0603_1608Metric,-119.9125,-105.8,-90,bottom 177 | R9,5K1,R_0603_1608Metric,-118.4125,-105.8,90,bottom 178 | R10,806K,R_0603_1608Metric,-115.5,-109,180,bottom 179 | R11,2K,R_0603_1608Metric,-101.5,-100,180,bottom 180 | SW1,RESET,SW_Push_KMR2,-101.6,-108.5,-90,bottom 181 | U1,nRF52840_holyiot_18010,nRF52840_holyiot_18010,-178.95,-148.1,0,bottom 182 | U2,SN74LVC1T45DBV,SOT-363_SC-70-6,-128.5,-144.5,180,bottom 183 | U3,XC6206P332MR,SOT-23,-119.9,-115.3,180,bottom 184 | U4,SRV05-4,SOT-23-6,-119,-91.335786,180,bottom 185 | U5,TP4057,SOT-23-6,-118.8125,-109.3,90,bottom 186 | -------------------------------------------------------------------------------- /hardware/0.4-w/keyboard.csv: -------------------------------------------------------------------------------- 1 | Comment,Designator,Footprint,LCSC 2 | "100n","C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C23,C27","Capacitor_SMD:C_0603_1608Metric","C14663" 3 | "1u","C21,C26","Capacitor_SMD:C_0603_1608Metric","C15849" 4 | "10u","C22,C24,C25","Capacitor_SMD:C_0603_1608Metric","C19702" 5 | "SK6812-MINI-E","D1,D2,D3,D4","josh-led:SK8612-MINI-E","" 6 | "B5817WL","D21","josh-passives-smt:D_SOD-123FL","C122853" 7 | "BLU","D22","LED_SMD:LED_0603_1608Metric","C72041" 8 | "GRN","D23","LED_SMD:LED_0603_1608Metric","C72043" 9 | "ORG","D24","LED_SMD:LED_0603_1608Metric","C2286" 10 | "WS2812C","D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20","josh-led:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm","C114587" 11 | "1N4148","D_1,D_2,D_3,D_4,D_5,D_6,D_7,D_8,D_9,D_10,D_11,D_12,D_13,D_14,D_15,D_16,D_17,D_18,D_19,D_20,D_21,D_22,D_23,D_24,D_25,D_26,D_27,D_28,D_29,D_30,D_31,D_32,D_33,D_34,D_35,D_36,D_37,D_38,D_39,D_40,D_41,D_42,D_43,D_44,D_45,D_46,D_47,D_48,D_49,D_50,D_51,D_52,D_53,D_54,D_55,D_56,D_57,D_58,D_59,D_60,D_61,D_62,D_63,D_64,D_65,D_66,D_67,D_68,D_69,D_70,D_71,D_72,D_73,D_74,D_75,D_76,D_77,D_78,D_79,D_80,D_81,D_82,D_83,D_84,D_85,D_86,D_87,D_88,D_89,D_90,D_91,D_92,D_93,D_94,D_95,D_96,D_97,D_98,D_99,D_100,D_101,D_102,D_103,D_104,D_105,D_106,D_107,D_108,D_109,D_110,D_111","Diode_SMD:D_SOD-123","C81598" 12 | "500mA","F1","josh-passives-smt:Fuse_0805_2012Metric","C66452" 13 | "SWD","J1","josh-connectors:5_PIN_THT_Staggered","" 14 | "USB_C_Receptacle_USB2.0","J2","josh-connectors:USB_C_Receptacle_HRO_TYPE-C-31-M-12"," C165948" 15 | "JST_PH2","J3","josh-connectors:JST_PH_S2B-PH-SM4-TB_1x02-1MP_P2.00mm_Horizontal","C47647" 16 | "Spare IO","J4","josh-connectors:4_PIN_THT_Staggered","" 17 | "JMP","JP1,JP2","Jumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mm","" 18 | "Encoder_MX","K_1,K_9,K_15,K_22,K_113","josh-keyboard:MX_KEYSWITCH_ENCODER","" 19 | "KEYSW","K_102","josh-keyboard:MXOnly-1.75U-NoLED","" 20 | "KEYSW","K_2,K_3,K_5,K_6,K_8,K_10,K_11,K_12,K_13,K_14,K_16,K_17,K_18,K_19,K_20,K_23,K_26,K_27,K_28,K_29,K_34,K_35,K_37,K_38,K_39,K_40,K_41,K_42,K_44,K_45,K_46,K_47,K_48,K_49,K_50,K_51,K_52,K_53,K_55,K_56,K_57,K_58,K_59,K_60,K_61,K_62,K_63,K_65,K_67,K_68,K_69,K_70,K_71,K_72,K_73,K_74,K_75,K_77,K_78,K_79,K_80,K_81,K_82,K_83,K_84,K_85,K_86,K_87,K_89,K_90,K_91,K_92,K_93,K_94,K_95,K_96,K_98,K_99,K_100,K_101,K_103,K_104,K_105,K_109,K_110,K_111,K_112,K_114,K_115,K_116,K_117,K_118,K_121","josh-keyboard:MXOnly-1U-NoLED","" 21 | "KEYSW","K_24,K_25","josh-keyboard:MXOnly-1U-NoLED-3PIN","" 22 | "KEYSW","K_30,K_36,K_43,K_66","josh-keyboard:MXOnly-1.25U-NoLED","" 23 | "KEYSW","K_31","josh-keyboard:MXOnly-1.5U-NoLED-3PIN","" 24 | "KEYSW","K_32","josh-keyboard:MXOnly-1.75U-NoLED-3PIN","" 25 | "KEYSW","K_33,K_76,K_106","josh-keyboard:MXOnly-2.25U-NoLED","" 26 | "KEYSW","K_4,K_7,K_21,K_107","josh-keyboard:MXOnly-2U-NoLED","" 27 | "KEYSW","K_54","josh-keyboard:MXOnly-2.75U-NoLED","" 28 | "KEYSW","K_64","josh-keyboard:MXOnly-6.25U-NoLED","" 29 | "KEYSW","K_88,K_97,K_108,K_120","josh-keyboard:MXOnly-1.5U-NoLED","" 30 | "Josh-Details","LOGO1","josh-logos:josh-details","" 31 | "Josh-Logo","LOGO2","josh-logos:josh-johnson-logo-17x3","" 32 | "OSHW Logo","LOGO3","josh-logos:OSHW_Logo_3.6x3.6_F.Mask","" 33 | "2N7002","Q1","Package_TO_SOT_SMD:SOT-23","C8545" 34 | "AO3401A","Q2,Q3","Package_TO_SOT_SMD:SOT-23","C15127" 35 | "806K","R1,R10","Resistor_SMD:R_0603_1608Metric","C23250" 36 | "2M","R2","Resistor_SMD:R_0603_1608Metric","C22976" 37 | "5K1","R3,R4,R5,R6,R7,R9","Resistor_SMD:R_0603_1608Metric","C23186" 38 | "2K","R8,R11","Resistor_SMD:R_0603_1608Metric","" 39 | "RESET","SW1","josh-buttons-switches:SW_Push_KMR2","C99271" 40 | "nRF52840_holyiot_18010","U1","josh-module:nRF52840_holyiot_18010","" 41 | "SN74LVC1T45DBV","U2","Package_TO_SOT_SMD:SOT-363_SC-70-6","C7843" 42 | "XC6206P332MR","U3","Package_TO_SOT_SMD:SOT-23","C5446" 43 | "SRV05-4","U4","Package_TO_SOT_SMD:SOT-23-6","C85364" 44 | "TP4057","U5","Package_TO_SOT_SMD:SOT-23-6","C12044" -------------------------------------------------------------------------------- /hardware/0.4-w/keyboard.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "000feff_80000001", 67 | "zone_display_mode": 1 68 | }, 69 | "meta": { 70 | "filename": "keyboard.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /hardware/0.4-w/keyboard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/hardware/0.4-w/keyboard.pdf -------------------------------------------------------------------------------- /hardware/0.4-w/keyboard.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 | -------------------------------------------------------------------------------- /hardware/0.4-w/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "josh-led")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-led.kicad_sym")(options "")(descr "")) 3 | (lib (name "josh-logic")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-logic.kicad_sym")(options "")(descr "")) 4 | (lib (name "josh-mechnanical")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-mechnanical.kicad_sym")(options "")(descr "")) 5 | (lib (name "josh-memory")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-memory.kicad_sym")(options "")(descr "")) 6 | (lib (name "josh-oscillator")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-oscillator.kicad_sym")(options "")(descr "")) 7 | (lib (name "josh-passive")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-passive.kicad_sym")(options "")(descr "")) 8 | (lib (name "josh-power")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-power.kicad_sym")(options "")(descr "")) 9 | (lib (name "josh-rf")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-rf.kicad_sym")(options "")(descr "")) 10 | (lib (name "josh-display")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-display.kicad_sym")(options "")(descr "")) 11 | (lib (name "josh-keyboard")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.kicad_sym")(options "")(descr "")) 12 | (lib (name "josh-connector")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-connector.kicad_sym")(options "")(descr "")) 13 | (lib (name "josh-ic")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-ic.kicad_sym")(options "")(descr "")) 14 | (lib (name "josh-module")(type "KiCad")(uri "/mnt/530683E96DD773A1/Dropbox/Projects/entropy/josh-kicad-lib/josh-module.kicad_sym")(options "")(descr "")) 15 | ) 16 | -------------------------------------------------------------------------------- /hardware/0.5-w/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "josh-buttons-switches")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-buttons-switches.pretty")(options "")(descr "")) 3 | (lib (name "josh-connectors")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-connectors.pretty")(options "")(descr "")) 4 | (lib (name "josh-dfn-qfn")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-dfn-qfn.pretty")(options "")(descr "")) 5 | (lib (name "josh-led")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-led.pretty")(options "")(descr "")) 6 | (lib (name "josh-logos")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-logos.pretty")(options "")(descr "")) 7 | (lib (name "josh-mechanical")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-mechanical.pretty")(options "")(descr "")) 8 | (lib (name "josh-oscillators")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-oscillators.pretty")(options "")(descr "")) 9 | (lib (name "josh-passives-smt")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-passives-smt.pretty")(options "")(descr "")) 10 | (lib (name "josh-rf")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-rf.pretty")(options "")(descr "")) 11 | (lib (name "josh-soic-sot-etc")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-soic-sot-etc.pretty")(options "")(descr "")) 12 | (lib (name "josh-test-point")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-test-point.pretty")(options "")(descr "")) 13 | (lib (name "josh-display")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-display.pretty")(options "")(descr "")) 14 | (lib (name "josh-bga")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-bga.pretty")(options "")(descr "")) 15 | (lib (name "josh-power")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-power.pretty")(options "")(descr "")) 16 | (lib (name "josh-module")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-module.pretty")(options "")(descr "")) 17 | (lib (name "josh-keyboard")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.pretty")(options "")(descr "")) 18 | ) 19 | -------------------------------------------------------------------------------- /hardware/0.5-w/keyboard.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "000feff_80000001", 67 | "zone_display_mode": 1 68 | }, 69 | "meta": { 70 | "filename": "keyboard.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /hardware/0.5-w/keyboard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/hardware/0.5-w/keyboard.pdf -------------------------------------------------------------------------------- /hardware/0.5-w/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "josh-led")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-led.kicad_sym")(options "")(descr "")) 3 | (lib (name "josh-logic")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-logic.kicad_sym")(options "")(descr "")) 4 | (lib (name "josh-mechnanical")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-mechnanical.kicad_sym")(options "")(descr "")) 5 | (lib (name "josh-memory")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-memory.kicad_sym")(options "")(descr "")) 6 | (lib (name "josh-oscillator")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-oscillator.kicad_sym")(options "")(descr "")) 7 | (lib (name "josh-passive")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-passive.kicad_sym")(options "")(descr "")) 8 | (lib (name "josh-power")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-power.kicad_sym")(options "")(descr "")) 9 | (lib (name "josh-rf")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-rf.kicad_sym")(options "")(descr "")) 10 | (lib (name "josh-display")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-display.kicad_sym")(options "")(descr "")) 11 | (lib (name "josh-keyboard")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-keyboard.kicad_sym")(options "")(descr "")) 12 | (lib (name "josh-connector")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-connector.kicad_sym")(options "")(descr "")) 13 | (lib (name "josh-ic")(type "KiCad")(uri "${KIPRJMOD}/../../josh-kicad-lib/josh-ic.kicad_sym")(options "")(descr "")) 14 | (lib (name "josh-module")(type "KiCad")(uri "/mnt/530683E96DD773A1/Dropbox/Projects/entropy/josh-kicad-lib/josh-module.kicad_sym")(options "")(descr "")) 15 | ) 16 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/assembly.f3d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/assembly.f3d -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/back_diffuser.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/back_diffuser.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/encoder_spacer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/encoder_spacer.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/front_diffuser.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/front_diffuser.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/incline_spacer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/incline_spacer.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/left_diffuser.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/left_diffuser.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/right_diffuser.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/right_diffuser.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.1/status_diffuser.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/mechanicals/entropy-case-0.1/status_diffuser.stl -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/base-1.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 | -489.48097821353417 269 | 20 270 | 81.985785751164343 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626921 293 | 20 294 | 81.985785751164215 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -356.81431154686749 317 | 20 318 | 81.985785751164286 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.547481249602569 341 | 20 342 | 81.985785751164144 343 | 30 344 | 0 345 | 40 346 | 1.7500000000000071 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | LWPOLYLINE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbPolyline 363 | 90 364 | 8 365 | 70 366 | 1 367 | 43 368 | 0.0 369 | 10 370 | -476.48097821353417 371 | 20 372 | 91.985785751164357 373 | 42 374 | -0.41421356237308293 375 | 10 376 | -479.48097821353417 377 | 20 378 | 94.985785751164343 379 | 10 380 | -479.48097821353417 381 | 20 382 | 133.98578575116429 383 | 42 384 | -0.41421356237310375 385 | 10 386 | -476.48097821353412 387 | 20 388 | 136.98578575116429 389 | 10 390 | -104.54748124960261 391 | 20 392 | 136.98578575116434 393 | 42 394 | -0.41421356237309503 395 | 10 396 | -101.54748124960257 397 | 20 398 | 133.98578575116429 399 | 10 400 | -101.54748124960257 401 | 20 402 | 94.985785751164144 403 | 42 404 | -0.41421356237309503 405 | 10 406 | -104.54748124960261 407 | 20 408 | 91.985785751164144 409 | 0 410 | LWPOLYLINE 411 | 5 412 | 105 413 | 100 414 | AcDbEntity 415 | 8 416 | 0 417 | 100 418 | AcDbPolyline 419 | 90 420 | 8 421 | 70 422 | 1 423 | 43 424 | 0.0 425 | 10 426 | -493.4809782135344 427 | 20 428 | 143.98578575116406 429 | 42 430 | -0.41421356237310375 431 | 10 432 | -490.48097821353429 433 | 20 434 | 146.98578575116412 435 | 10 436 | -90.547481249602058 437 | 20 438 | 146.98578575116412 439 | 42 440 | -0.41421356237309503 441 | 10 442 | -87.547481249602015 443 | 20 444 | 143.98578575116406 445 | 10 446 | -87.547481249602015 447 | 20 448 | 80.985785751164201 449 | 42 450 | -0.41421356237310719 451 | 10 452 | -90.547481249602058 453 | 20 454 | 77.985785751164116 455 | 10 456 | -490.4809782135344 457 | 20 458 | 77.985785751164485 459 | 42 460 | -0.41421356237308293 461 | 10 462 | -493.48097821353434 463 | 20 464 | 80.985785751164471 465 | 0 466 | ENDSEC 467 | 0 468 | SECTION 469 | 2 470 | OBJECTS 471 | 0 472 | DICTIONARY 473 | 5 474 | C 475 | 100 476 | AcDbDictionary 477 | 3 478 | ACAD_GROUP 479 | 350 480 | D 481 | 3 482 | ACAD_MLINESTYLE 483 | 350 484 | 17 485 | 0 486 | DICTIONARY 487 | 5 488 | D 489 | 100 490 | AcDbDictionary 491 | 0 492 | DICTIONARY 493 | 5 494 | 1A 495 | 330 496 | C 497 | 100 498 | AcDbDictionary 499 | 0 500 | DICTIONARY 501 | 5 502 | 17 503 | 100 504 | AcDbDictionary 505 | 0 506 | ENDSEC 507 | 0 508 | EOF 509 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/base-2.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 | -489.48097821353417 269 | 20 270 | 81.985785751164343 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626921 293 | 20 294 | 81.985785751164215 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -356.81431154686749 317 | 20 318 | 81.985785751164286 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.547481249602569 341 | 20 342 | 81.985785751164144 343 | 30 344 | 0 345 | 40 346 | 1.7500000000000071 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | LWPOLYLINE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbPolyline 363 | 90 364 | 8 365 | 70 366 | 1 367 | 43 368 | 0.0 369 | 10 370 | -90.547481249602058 371 | 20 372 | 141.98578575116412 373 | 42 374 | -0.41421356237309503 375 | 10 376 | -87.547481249602015 377 | 20 378 | 138.98578575116406 379 | 10 380 | -87.547481249602015 381 | 20 382 | 80.985785751164201 383 | 42 384 | -0.41421356237310719 385 | 10 386 | -90.547481249602058 387 | 20 388 | 77.985785751164116 389 | 10 390 | -490.4809782135344 391 | 20 392 | 77.985785751164514 393 | 42 394 | -0.41421356237309331 395 | 10 396 | -493.48097821353434 397 | 20 398 | 80.985785751164471 399 | 10 400 | -493.48097821353434 401 | 20 402 | 138.98578575116414 403 | 42 404 | -0.41421356237308293 405 | 10 406 | -490.4809782135344 407 | 20 408 | 141.98578575116412 409 | 0 410 | ENDSEC 411 | 0 412 | SECTION 413 | 2 414 | OBJECTS 415 | 0 416 | DICTIONARY 417 | 5 418 | C 419 | 100 420 | AcDbDictionary 421 | 3 422 | ACAD_GROUP 423 | 350 424 | D 425 | 3 426 | ACAD_MLINESTYLE 427 | 350 428 | 17 429 | 0 430 | DICTIONARY 431 | 5 432 | D 433 | 100 434 | AcDbDictionary 435 | 0 436 | DICTIONARY 437 | 5 438 | 1A 439 | 330 440 | C 441 | 100 442 | AcDbDictionary 443 | 0 444 | DICTIONARY 445 | 5 446 | 17 447 | 100 448 | AcDbDictionary 449 | 0 450 | ENDSEC 451 | 0 452 | EOF 453 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/base-3.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 | -489.48097821353417 269 | 20 270 | 81.985785751164343 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626921 293 | 20 294 | 81.985785751164215 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -356.81431154686749 317 | 20 318 | 81.985785751164286 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.547481249602569 341 | 20 342 | 81.985785751164144 343 | 30 344 | 0 345 | 40 346 | 1.7500000000000071 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | LWPOLYLINE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbPolyline 363 | 90 364 | 8 365 | 70 366 | 1 367 | 43 368 | 0.0 369 | 10 370 | -493.48097821353451 371 | 20 372 | 94.98578575116413 373 | 42 374 | -0.4142135623730846 375 | 10 376 | -490.48097821353451 377 | 20 378 | 97.985785751164101 379 | 10 380 | -90.547481249602058 381 | 20 382 | 97.985785751164101 383 | 42 384 | -0.41421356237309503 385 | 10 386 | -87.547481249602015 387 | 20 388 | 94.985785751164059 389 | 10 390 | -87.547481249602015 391 | 20 392 | 80.985785751164201 393 | 42 394 | -0.41421356237310719 395 | 10 396 | -90.547481249602058 397 | 20 398 | 77.985785751164116 399 | 10 400 | -490.4809782135344 401 | 20 402 | 77.985785751164372 403 | 42 404 | -0.41421356237309331 405 | 10 406 | -493.48097821353451 407 | 20 408 | 80.985785751164471 409 | 0 410 | ENDSEC 411 | 0 412 | SECTION 413 | 2 414 | OBJECTS 415 | 0 416 | DICTIONARY 417 | 5 418 | C 419 | 100 420 | AcDbDictionary 421 | 3 422 | ACAD_GROUP 423 | 350 424 | D 425 | 3 426 | ACAD_MLINESTYLE 427 | 350 428 | 17 429 | 0 430 | DICTIONARY 431 | 5 432 | D 433 | 100 434 | AcDbDictionary 435 | 0 436 | DICTIONARY 437 | 5 438 | 1A 439 | 330 440 | C 441 | 100 442 | AcDbDictionary 443 | 0 444 | DICTIONARY 445 | 5 446 | 17 447 | 100 448 | AcDbDictionary 449 | 0 450 | ENDSEC 451 | 0 452 | EOF 453 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/base-4.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 | -91.547481249602569 269 | 20 270 | 81.985785751164144 271 | 30 272 | 0 273 | 40 274 | 1.25 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 | -356.81431154686749 293 | 20 294 | 81.985785751164286 295 | 30 296 | 0 297 | 40 298 | 1.25 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 | -224.21414791626921 317 | 20 318 | 81.985785751164215 319 | 30 320 | 0 321 | 40 322 | 1.25 323 | 210 324 | 0 325 | 220 326 | -0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -489.48097821353417 341 | 20 342 | 81.985785751164343 343 | 30 344 | 0 345 | 40 346 | 1.25 347 | 210 348 | 0 349 | 220 350 | -0 351 | 230 352 | 1 353 | 0 354 | LWPOLYLINE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbPolyline 363 | 90 364 | 8 365 | 70 366 | 1 367 | 43 368 | 0.0 369 | 10 370 | -90.547481249602058 371 | 20 372 | 92.985785751164116 373 | 42 374 | -0.41421356237309503 375 | 10 376 | -87.547481249602015 377 | 20 378 | 89.985785751164116 379 | 10 380 | -87.547481249602015 381 | 20 382 | 80.985785751164201 383 | 42 384 | -0.41421356237310719 385 | 10 386 | -90.547481249602058 387 | 20 388 | 77.985785751164116 389 | 10 390 | -490.4809782135344 391 | 20 392 | 77.985785751164229 393 | 42 394 | -0.41421356237309331 395 | 10 396 | -493.48097821353463 397 | 20 398 | 80.985785751164471 399 | 10 400 | -493.48097821353463 401 | 20 402 | 89.985785751164116 403 | 42 404 | -0.41421356237308637 405 | 10 406 | -490.48097821353463 407 | 20 408 | 92.985785751164101 409 | 0 410 | ENDSEC 411 | 0 412 | SECTION 413 | 2 414 | OBJECTS 415 | 0 416 | DICTIONARY 417 | 5 418 | C 419 | 100 420 | AcDbDictionary 421 | 3 422 | ACAD_GROUP 423 | 350 424 | D 425 | 3 426 | ACAD_MLINESTYLE 427 | 350 428 | 17 429 | 0 430 | DICTIONARY 431 | 5 432 | D 433 | 100 434 | AcDbDictionary 435 | 0 436 | DICTIONARY 437 | 5 438 | 1A 439 | 330 440 | C 441 | 100 442 | AcDbDictionary 443 | 0 444 | DICTIONARY 445 | 5 446 | 17 447 | 100 448 | AcDbDictionary 449 | 0 450 | ENDSEC 451 | 0 452 | EOF 453 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/base.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 | -489.48097821353417 269 | 20 270 | 81.985785751164343 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626921 293 | 20 294 | 81.985785751164215 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -356.81431154686749 317 | 20 318 | 81.985785751164286 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.547481249602569 341 | 20 342 | 81.985785751164144 343 | 30 344 | 0 345 | 40 346 | 1.7500000000000071 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | CIRCLE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbCircle 363 | 10 364 | -356.81431154686754 365 | 20 366 | 213.20254981041325 367 | 30 368 | 0 369 | 40 370 | 1.25 371 | 210 372 | 0 373 | 220 374 | 0 375 | 230 376 | 1 377 | 0 378 | CIRCLE 379 | 5 380 | 105 381 | 100 382 | AcDbEntity 383 | 8 384 | 0 385 | 100 386 | AcDbCircle 387 | 10 388 | -224.21414791626958 389 | 20 390 | 213.20254981041296 391 | 30 392 | 0 393 | 40 394 | 1.25 395 | 210 396 | 0 397 | 220 398 | 0 399 | 230 400 | 1 401 | 0 402 | CIRCLE 403 | 5 404 | 106 405 | 100 406 | AcDbEntity 407 | 8 408 | 0 409 | 100 410 | AcDbCircle 411 | 10 412 | -489.48097821353423 413 | 20 414 | 213.20254981041353 415 | 30 416 | 0 417 | 40 418 | 1.25 419 | 210 420 | 0 421 | 220 422 | 0 423 | 230 424 | 1 425 | 0 426 | CIRCLE 427 | 5 428 | 107 429 | 100 430 | AcDbEntity 431 | 8 432 | 0 433 | 100 434 | AcDbCircle 435 | 10 436 | -91.54748124960291 437 | 20 438 | 213.20254981041268 439 | 30 440 | 0 441 | 40 442 | 1.25 443 | 210 444 | 0 445 | 220 446 | 0 447 | 230 448 | 1 449 | 0 450 | LWPOLYLINE 451 | 5 452 | 108 453 | 100 454 | AcDbEntity 455 | 8 456 | 0 457 | 100 458 | AcDbPolyline 459 | 90 460 | 8 461 | 70 462 | 1 463 | 43 464 | 0.0 465 | 10 466 | -479.48097821353417 467 | 20 468 | 133.98578575116429 469 | 10 470 | -479.48097821353417 471 | 20 472 | 94.985785751164343 473 | 42 474 | 0.41421356237308293 475 | 10 476 | -476.48097821353417 477 | 20 478 | 91.985785751164343 479 | 10 480 | -104.54748124960261 481 | 20 482 | 91.985785751164144 483 | 42 484 | 0.41421356237309503 485 | 10 486 | -101.54748124960257 487 | 20 488 | 94.985785751164144 489 | 10 490 | -101.54748124960257 491 | 20 492 | 133.98578575116429 493 | 42 494 | 0.41421356237309503 495 | 10 496 | -104.54748124960261 497 | 20 498 | 136.98578575116434 499 | 10 500 | -476.48097821353412 501 | 20 502 | 136.98578575116434 503 | 42 504 | 0.41421356237310375 505 | 0 506 | LWPOLYLINE 507 | 5 508 | 109 509 | 100 510 | AcDbEntity 511 | 8 512 | 0 513 | 100 514 | AcDbPolyline 515 | 90 516 | 17 517 | 70 518 | 1 519 | 43 520 | 0.0 521 | 10 522 | -128.40000395402316 523 | 20 524 | 78.985785751164173 525 | 42 526 | -0.41421356237309503 527 | 10 528 | -129.40000395402313 529 | 20 530 | 77.985785751164173 531 | 10 532 | -490.4809782135344 533 | 20 534 | 77.985785751164443 535 | 42 536 | -0.4142135623730846 537 | 10 538 | -493.48097821353434 539 | 20 540 | 80.985785751164457 541 | 10 542 | -493.48097821353406 543 | 20 544 | 214.25950919054225 545 | 42 546 | -0.41421356237310542 547 | 10 548 | -490.48097821353406 549 | 20 550 | 217.25950919054227 551 | 10 552 | -90.547481249603109 553 | 20 554 | 217.25950919054227 555 | 42 556 | -0.41421356237309681 557 | 10 558 | -87.547481249603038 559 | 20 560 | 214.2595091905423 561 | 10 562 | -87.547481249602043 563 | 20 564 | 80.985785751164201 565 | 42 566 | -0.41421356237310719 567 | 10 568 | -90.547481249602058 569 | 20 570 | 77.985785751164144 571 | 10 572 | -108.60000421633603 573 | 20 574 | 77.985785751164173 575 | 42 576 | -0.41421356803152509 577 | 10 578 | -109.60000421633603 579 | 20 580 | 78.985785770483247 581 | 10 582 | -109.60000410147593 583 | 20 584 | 84.931207314485064 585 | 42 586 | 0.41466050823716122 587 | 10 588 | -112.6045812241303 589 | 20 590 | 87.931203880765011 591 | 10 592 | -125.40458107617357 593 | 20 594 | 87.911674801602331 595 | 42 596 | 0.41376673108635559 597 | 10 598 | -128.40000395351919 599 | 20 600 | 84.91167862408588 601 | 10 602 | -128.40000395402316 603 | 20 604 | 84.907108252815163 605 | 0 606 | ENDSEC 607 | 0 608 | SECTION 609 | 2 610 | OBJECTS 611 | 0 612 | DICTIONARY 613 | 5 614 | C 615 | 100 616 | AcDbDictionary 617 | 3 618 | ACAD_GROUP 619 | 350 620 | D 621 | 3 622 | ACAD_MLINESTYLE 623 | 350 624 | 17 625 | 0 626 | DICTIONARY 627 | 5 628 | D 629 | 100 630 | AcDbDictionary 631 | 0 632 | DICTIONARY 633 | 5 634 | 1A 635 | 330 636 | C 637 | 100 638 | AcDbDictionary 639 | 0 640 | DICTIONARY 641 | 5 642 | 17 643 | 100 644 | AcDbDictionary 645 | 0 646 | ENDSEC 647 | 0 648 | EOF 649 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/plate+1.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 | -356.81431154686754 269 | 20 270 | 213.20254981041325 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626958 293 | 20 294 | 213.20254981041296 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -489.48097821353423 317 | 20 318 | 213.20254981041353 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.54748124960291 341 | 20 342 | 213.20254981041268 343 | 30 344 | 0 345 | 40 346 | 1.7499999999999893 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | CIRCLE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbCircle 363 | 10 364 | -489.48097821353417 365 | 20 366 | 81.985785751164343 367 | 30 368 | 0 369 | 40 370 | 1.7499999999999716 371 | 210 372 | 0 373 | 220 374 | 0 375 | 230 376 | 1 377 | 0 378 | CIRCLE 379 | 5 380 | 105 381 | 100 382 | AcDbEntity 383 | 8 384 | 0 385 | 100 386 | AcDbCircle 387 | 10 388 | -224.21414791626921 389 | 20 390 | 81.985785751164215 391 | 30 392 | 0 393 | 40 394 | 1.7500000000000071 395 | 210 396 | 0 397 | 220 398 | 0 399 | 230 400 | 1 401 | 0 402 | CIRCLE 403 | 5 404 | 106 405 | 100 406 | AcDbEntity 407 | 8 408 | 0 409 | 100 410 | AcDbCircle 411 | 10 412 | -356.81431154686749 413 | 20 414 | 81.985785751164286 415 | 30 416 | 0 417 | 40 418 | 1.7499999999999716 419 | 210 420 | 0 421 | 220 422 | 0 423 | 230 424 | 1 425 | 0 426 | CIRCLE 427 | 5 428 | 107 429 | 100 430 | AcDbEntity 431 | 8 432 | 0 433 | 100 434 | AcDbCircle 435 | 10 436 | -91.547481249602569 437 | 20 438 | 81.985785751164144 439 | 30 440 | 0 441 | 40 442 | 1.7500000000000071 443 | 210 444 | 0 445 | 220 446 | 0 447 | 230 448 | 1 449 | 0 450 | LWPOLYLINE 451 | 5 452 | 108 453 | 100 454 | AcDbEntity 455 | 8 456 | 0 457 | 100 458 | AcDbPolyline 459 | 90 460 | 8 461 | 70 462 | 1 463 | 43 464 | 0.0 465 | 10 466 | -98.514233933694527 467 | 20 468 | 90.011757903975237 469 | 10 470 | -98.514233933694527 471 | 20 472 | 205.26265006611396 473 | 42 474 | 0.41421356237310542 475 | 10 476 | -99.514233933694527 477 | 20 478 | 206.26265006611396 479 | 10 480 | -481.48971615350496 481 | 20 482 | 206.26265006611396 483 | 42 484 | 0.41421356237313667 485 | 10 486 | -482.48971615350501 487 | 20 488 | 205.26265006611396 489 | 10 490 | -482.48971615350507 491 | 20 492 | 90.011757903975237 493 | 42 494 | 0.41421356237312101 495 | 10 496 | -481.48971615350501 497 | 20 498 | 89.011757903975223 499 | 10 500 | -99.514233933694527 501 | 20 502 | 89.011757903975237 503 | 42 504 | 0.41421356237309503 505 | 0 506 | LWPOLYLINE 507 | 5 508 | 109 509 | 100 510 | AcDbEntity 511 | 8 512 | 0 513 | 100 514 | AcDbPolyline 515 | 90 516 | 8 517 | 70 518 | 1 519 | 43 520 | 0.0 521 | 10 522 | -90.547481249602129 523 | 20 524 | 77.985785751164158 525 | 10 526 | -490.4809782135344 527 | 20 528 | 77.985785751164443 529 | 42 530 | -0.4142135623730846 531 | 10 532 | -493.48097821353434 533 | 20 534 | 80.985785751164457 535 | 10 536 | -493.48097821353406 537 | 20 538 | 214.25950919054219 539 | 42 540 | -0.41421356237310897 541 | 10 542 | -490.48097821353406 543 | 20 544 | 217.25950919054227 545 | 10 546 | -90.547481249603095 547 | 20 548 | 217.2595091905423 549 | 42 550 | -0.41421356237309503 551 | 10 552 | -87.54748124960301 553 | 20 554 | 214.2595091905423 555 | 10 556 | -87.547481249602072 557 | 20 558 | 80.985785751164201 559 | 42 560 | -0.41421356237311413 561 | 0 562 | ENDSEC 563 | 0 564 | SECTION 565 | 2 566 | OBJECTS 567 | 0 568 | DICTIONARY 569 | 5 570 | C 571 | 100 572 | AcDbDictionary 573 | 3 574 | ACAD_GROUP 575 | 350 576 | D 577 | 3 578 | ACAD_MLINESTYLE 579 | 350 580 | 17 581 | 0 582 | DICTIONARY 583 | 5 584 | D 585 | 100 586 | AcDbDictionary 587 | 0 588 | DICTIONARY 589 | 5 590 | 1A 591 | 330 592 | C 593 | 100 594 | AcDbDictionary 595 | 0 596 | DICTIONARY 597 | 5 598 | 17 599 | 100 600 | AcDbDictionary 601 | 0 602 | ENDSEC 603 | 0 604 | EOF 605 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/plate+2.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 | LWPOLYLINE 259 | 5 260 | 100 261 | 100 262 | AcDbEntity 263 | 8 264 | 0 265 | 100 266 | AcDbPolyline 267 | 90 268 | 8 269 | 70 270 | 1 271 | 43 272 | 0.0 273 | 10 274 | -98.514233933694527 275 | 20 276 | 90.011757903975237 277 | 10 278 | -98.514233933694527 279 | 20 280 | 205.26265006611396 281 | 42 282 | 0.41421356237309503 283 | 10 284 | -99.514233933694527 285 | 20 286 | 206.26265006611396 287 | 10 288 | -481.48971615350496 289 | 20 290 | 206.26265006611396 291 | 42 292 | 0.41421356237309503 293 | 10 294 | -482.48971615350507 295 | 20 296 | 205.26265006611396 297 | 10 298 | -482.48971615350507 299 | 20 300 | 90.011757903975237 301 | 42 302 | 0.41421356237309503 303 | 10 304 | -481.48971615350501 305 | 20 306 | 89.011757903975194 307 | 10 308 | -99.514233933694527 309 | 20 310 | 89.011757903975237 311 | 42 312 | 0.41421356237309503 313 | 0 314 | LWPOLYLINE 315 | 5 316 | 101 317 | 100 318 | AcDbEntity 319 | 8 320 | 0 321 | 100 322 | AcDbPolyline 323 | 90 324 | 8 325 | 70 326 | 1 327 | 43 328 | 0.0 329 | 10 330 | -90.547481249602129 331 | 20 332 | 77.985785751164158 333 | 10 334 | -490.4809782135344 335 | 20 336 | 77.985785751164443 337 | 42 338 | -0.4142135623730846 339 | 10 340 | -493.48097821353434 341 | 20 342 | 80.985785751164457 343 | 10 344 | -493.48097821353406 345 | 20 346 | 214.25950919054219 347 | 42 348 | -0.41421356237310897 349 | 10 350 | -490.48097821353406 351 | 20 352 | 217.25950919054227 353 | 10 354 | -90.547481249603095 355 | 20 356 | 217.2595091905423 357 | 42 358 | -0.41421356237309503 359 | 10 360 | -87.54748124960301 361 | 20 362 | 214.2595091905423 363 | 10 364 | -87.547481249602072 365 | 20 366 | 80.985785751164201 367 | 42 368 | -0.41421356237311413 369 | 0 370 | CIRCLE 371 | 5 372 | 102 373 | 100 374 | AcDbEntity 375 | 8 376 | 0 377 | 100 378 | AcDbCircle 379 | 10 380 | -224.21414791626958 381 | 20 382 | 213.20254981041296 383 | 30 384 | 0 385 | 40 386 | 1.25 387 | 210 388 | 0 389 | 220 390 | 0 391 | 230 392 | 1 393 | 0 394 | CIRCLE 395 | 5 396 | 103 397 | 100 398 | AcDbEntity 399 | 8 400 | 0 401 | 100 402 | AcDbCircle 403 | 10 404 | -356.81431154686749 405 | 20 406 | 81.985785751164286 407 | 30 408 | 0 409 | 40 410 | 1.25 411 | 210 412 | 0 413 | 220 414 | 0 415 | 230 416 | 1 417 | 0 418 | CIRCLE 419 | 5 420 | 104 421 | 100 422 | AcDbEntity 423 | 8 424 | 0 425 | 100 426 | AcDbCircle 427 | 10 428 | -91.547481249602569 429 | 20 430 | 81.985785751164144 431 | 30 432 | 0 433 | 40 434 | 1.25 435 | 210 436 | 0 437 | 220 438 | 0 439 | 230 440 | 1 441 | 0 442 | CIRCLE 443 | 5 444 | 105 445 | 100 446 | AcDbEntity 447 | 8 448 | 0 449 | 100 450 | AcDbCircle 451 | 10 452 | -489.48097821353417 453 | 20 454 | 81.985785751164343 455 | 30 456 | 0 457 | 40 458 | 1.25 459 | 210 460 | 0 461 | 220 462 | 0 463 | 230 464 | 1 465 | 0 466 | CIRCLE 467 | 5 468 | 106 469 | 100 470 | AcDbEntity 471 | 8 472 | 0 473 | 100 474 | AcDbCircle 475 | 10 476 | -356.81431154686754 477 | 20 478 | 213.20254981041325 479 | 30 480 | 0 481 | 40 482 | 1.25 483 | 210 484 | 0 485 | 220 486 | 0 487 | 230 488 | 1 489 | 0 490 | CIRCLE 491 | 5 492 | 107 493 | 100 494 | AcDbEntity 495 | 8 496 | 0 497 | 100 498 | AcDbCircle 499 | 10 500 | -224.21414791626921 501 | 20 502 | 81.985785751164215 503 | 30 504 | 0 505 | 40 506 | 1.25 507 | 210 508 | 0 509 | 220 510 | 0 511 | 230 512 | 1 513 | 0 514 | CIRCLE 515 | 5 516 | 108 517 | 100 518 | AcDbEntity 519 | 8 520 | 0 521 | 100 522 | AcDbCircle 523 | 10 524 | -91.54748124960291 525 | 20 526 | 213.20254981041268 527 | 30 528 | 0 529 | 40 530 | 1.25 531 | 210 532 | 0 533 | 220 534 | 0 535 | 230 536 | 1 537 | 0 538 | CIRCLE 539 | 5 540 | 109 541 | 100 542 | AcDbEntity 543 | 8 544 | 0 545 | 100 546 | AcDbCircle 547 | 10 548 | -489.48097821353423 549 | 20 550 | 213.20254981041353 551 | 30 552 | 0 553 | 40 554 | 1.25 555 | 210 556 | 0 557 | 220 558 | 0 559 | 230 560 | 1 561 | 0 562 | ENDSEC 563 | 0 564 | SECTION 565 | 2 566 | OBJECTS 567 | 0 568 | DICTIONARY 569 | 5 570 | C 571 | 100 572 | AcDbDictionary 573 | 3 574 | ACAD_GROUP 575 | 350 576 | D 577 | 3 578 | ACAD_MLINESTYLE 579 | 350 580 | 17 581 | 0 582 | DICTIONARY 583 | 5 584 | D 585 | 100 586 | AcDbDictionary 587 | 0 588 | DICTIONARY 589 | 5 590 | 1A 591 | 330 592 | C 593 | 100 594 | AcDbDictionary 595 | 0 596 | DICTIONARY 597 | 5 598 | 17 599 | 100 600 | AcDbDictionary 601 | 0 602 | ENDSEC 603 | 0 604 | EOF 605 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/plate-1.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 | -356.81431154686754 269 | 20 270 | 213.20254981041325 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626958 293 | 20 294 | 213.20254981041296 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -489.48097821353423 317 | 20 318 | 213.20254981041353 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.54748124960291 341 | 20 342 | 213.20254981041268 343 | 30 344 | 0 345 | 40 346 | 1.7499999999999893 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | CIRCLE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbCircle 363 | 10 364 | -489.48097821353417 365 | 20 366 | 81.985785751164343 367 | 30 368 | 0 369 | 40 370 | 1.7499999999999716 371 | 210 372 | 0 373 | 220 374 | 0 375 | 230 376 | 1 377 | 0 378 | CIRCLE 379 | 5 380 | 105 381 | 100 382 | AcDbEntity 383 | 8 384 | 0 385 | 100 386 | AcDbCircle 387 | 10 388 | -224.21414791626921 389 | 20 390 | 81.985785751164215 391 | 30 392 | 0 393 | 40 394 | 1.7500000000000071 395 | 210 396 | 0 397 | 220 398 | 0 399 | 230 400 | 1 401 | 0 402 | CIRCLE 403 | 5 404 | 106 405 | 100 406 | AcDbEntity 407 | 8 408 | 0 409 | 100 410 | AcDbCircle 411 | 10 412 | -356.81431154686749 413 | 20 414 | 81.985785751164286 415 | 30 416 | 0 417 | 40 418 | 1.7499999999999716 419 | 210 420 | 0 421 | 220 422 | 0 423 | 230 424 | 1 425 | 0 426 | CIRCLE 427 | 5 428 | 107 429 | 100 430 | AcDbEntity 431 | 8 432 | 0 433 | 100 434 | AcDbCircle 435 | 10 436 | -91.547481249602569 437 | 20 438 | 81.985785751164144 439 | 30 440 | 0 441 | 40 442 | 1.7500000000000071 443 | 210 444 | 0 445 | 220 446 | 0 447 | 230 448 | 1 449 | 0 450 | LWPOLYLINE 451 | 5 452 | 108 453 | 100 454 | AcDbEntity 455 | 8 456 | 0 457 | 100 458 | AcDbPolyline 459 | 90 460 | 17 461 | 70 462 | 1 463 | 43 464 | 0.0 465 | 10 466 | -112.68027155819939 467 | 20 468 | 85.624876763126338 469 | 42 470 | -0.34739809346973505 471 | 10 472 | -109.76512023288747 473 | 20 474 | 87.9355360345848 475 | 10 476 | -109.60000404343018 477 | 20 478 | 87.935787953555788 479 | 10 480 | -101.00000423565515 481 | 20 482 | 87.935787953555788 483 | 42 484 | 0.41421356237309293 485 | 10 486 | -96.000004235655155 487 | 20 488 | 92.935787953555788 489 | 10 490 | -96.000004235655155 491 | 20 492 | 204.60710568795278 493 | 42 494 | 0.41421356237309609 495 | 10 496 | -101.00000423565518 497 | 20 498 | 209.60710568795278 499 | 10 500 | -480.00297817568696 501 | 20 502 | 209.5986746104515 503 | 42 504 | 0.41421356237201284 505 | 10 506 | -485.00297817614694 507 | 20 508 | 204.59867461092978 509 | 10 510 | -485.00297829521969 511 | 20 512 | 92.899604654525149 513 | 42 514 | 0.41421356221031203 515 | 10 516 | -480.00297830332869 517 | 20 518 | 87.899604649195084 519 | 10 520 | -131.40000395404351 521 | 20 522 | 87.907104988289461 523 | 10 524 | -128.40000362321734 525 | 20 526 | 87.907104657483686 527 | 10 528 | -128.23730817683708 529 | 20 530 | 87.90735288310934 531 | 42 532 | -0.34690011237309754 533 | 10 534 | -125.31636553017421 535 | 20 536 | 85.610785187388643 537 | 42 538 | 0.34647284161684494 539 | 10 540 | -122.40000000000002 541 | 20 542 | 83.314213999999993 543 | 10 544 | -115.60000000000001 545 | 20 546 | 83.314213999999993 547 | 42 548 | 0.34782560928713235 549 | 0 550 | LWPOLYLINE 551 | 5 552 | 109 553 | 100 554 | AcDbEntity 555 | 8 556 | 0 557 | 100 558 | AcDbPolyline 559 | 90 560 | 8 561 | 70 562 | 1 563 | 43 564 | 0.0 565 | 10 566 | -87.547481249602043 567 | 20 568 | 80.985785751164201 569 | 42 570 | -0.41421356237310719 571 | 10 572 | -90.547481249602058 573 | 20 574 | 77.985785751164144 575 | 10 576 | -490.4809782135344 577 | 20 578 | 77.985785751164443 579 | 42 580 | -0.4142135623730846 581 | 10 582 | -493.48097821353434 583 | 20 584 | 80.985785751164457 585 | 10 586 | -493.48097821353406 587 | 20 588 | 214.25950919054225 589 | 42 590 | -0.41421356237310542 591 | 10 592 | -490.48097821353406 593 | 20 594 | 217.25950919054227 595 | 10 596 | -90.547481249603109 597 | 20 598 | 217.25950919054227 599 | 42 600 | -0.41421356237309681 601 | 10 602 | -87.547481249603038 603 | 20 604 | 214.2595091905423 605 | 0 606 | ENDSEC 607 | 0 608 | SECTION 609 | 2 610 | OBJECTS 611 | 0 612 | DICTIONARY 613 | 5 614 | C 615 | 100 616 | AcDbDictionary 617 | 3 618 | ACAD_GROUP 619 | 350 620 | D 621 | 3 622 | ACAD_MLINESTYLE 623 | 350 624 | 17 625 | 0 626 | DICTIONARY 627 | 5 628 | D 629 | 100 630 | AcDbDictionary 631 | 0 632 | DICTIONARY 633 | 5 634 | 1A 635 | 330 636 | C 637 | 100 638 | AcDbDictionary 639 | 0 640 | DICTIONARY 641 | 5 642 | 17 643 | 100 644 | AcDbDictionary 645 | 0 646 | ENDSEC 647 | 0 648 | EOF 649 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/plate-2.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 | -356.81431154686754 269 | 20 270 | 213.20254981041325 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626958 293 | 20 294 | 213.20254981041296 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -489.48097821353423 317 | 20 318 | 213.20254981041353 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.54748124960291 341 | 20 342 | 213.20254981041268 343 | 30 344 | 0 345 | 40 346 | 1.7499999999999893 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | CIRCLE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbCircle 363 | 10 364 | -489.48097821353417 365 | 20 366 | 81.985785751164343 367 | 30 368 | 0 369 | 40 370 | 1.7499999999999716 371 | 210 372 | 0 373 | 220 374 | 0 375 | 230 376 | 1 377 | 0 378 | CIRCLE 379 | 5 380 | 105 381 | 100 382 | AcDbEntity 383 | 8 384 | 0 385 | 100 386 | AcDbCircle 387 | 10 388 | -224.21414791626921 389 | 20 390 | 81.985785751164215 391 | 30 392 | 0 393 | 40 394 | 1.7500000000000071 395 | 210 396 | 0 397 | 220 398 | 0 399 | 230 400 | 1 401 | 0 402 | CIRCLE 403 | 5 404 | 106 405 | 100 406 | AcDbEntity 407 | 8 408 | 0 409 | 100 410 | AcDbCircle 411 | 10 412 | -356.81431154686749 413 | 20 414 | 81.985785751164286 415 | 30 416 | 0 417 | 40 418 | 1.7499999999999716 419 | 210 420 | 0 421 | 220 422 | 0 423 | 230 424 | 1 425 | 0 426 | CIRCLE 427 | 5 428 | 107 429 | 100 430 | AcDbEntity 431 | 8 432 | 0 433 | 100 434 | AcDbCircle 435 | 10 436 | -91.547481249602569 437 | 20 438 | 81.985785751164144 439 | 30 440 | 0 441 | 40 442 | 1.7500000000000071 443 | 210 444 | 0 445 | 220 446 | 0 447 | 230 448 | 1 449 | 0 450 | LWPOLYLINE 451 | 5 452 | 108 453 | 100 454 | AcDbEntity 455 | 8 456 | 0 457 | 100 458 | AcDbPolyline 459 | 90 460 | 26 461 | 70 462 | 1 463 | 43 464 | 0.0 465 | 10 466 | -128.40000395402316 467 | 20 468 | 78.985785751164173 469 | 42 470 | -0.41421356237309764 471 | 10 472 | -129.40000395402313 473 | 20 474 | 77.985785751164173 475 | 10 476 | -490.4809782135344 477 | 20 478 | 77.985785751164443 479 | 42 480 | -0.4142135623730846 481 | 10 482 | -493.48097821353434 483 | 20 484 | 80.985785751164457 485 | 10 486 | -493.48097821353406 487 | 20 488 | 214.25950919054225 489 | 42 490 | -0.41421356237310542 491 | 10 492 | -490.48097821353406 493 | 20 494 | 217.25950919054227 495 | 10 496 | -90.547481249603109 497 | 20 498 | 217.25950919054227 499 | 42 500 | -0.41421356237309681 501 | 10 502 | -87.547481249603038 503 | 20 504 | 214.2595091905423 505 | 10 506 | -87.547481249602043 507 | 20 508 | 80.985785751164201 509 | 42 510 | -0.41421356237310719 511 | 10 512 | -90.547481249602058 513 | 20 514 | 77.985785751164144 515 | 10 516 | -108.60000421633603 517 | 20 518 | 77.985785751164144 519 | 42 520 | -0.41421356803152509 521 | 10 522 | -109.60000421633606 523 | 20 524 | 78.985785770483247 525 | 10 526 | -109.60000408206832 527 | 20 528 | 85.93578799219398 529 | 42 530 | -0.41421355671466764 531 | 10 532 | -107.60000408206835 533 | 20 534 | 87.935787953555788 535 | 10 536 | -101.00000423565515 537 | 20 538 | 87.935787953555788 539 | 42 540 | 0.41421356237309293 541 | 10 542 | -96.000004235655155 543 | 20 544 | 92.935787953555788 545 | 10 546 | -96.000004235655155 547 | 20 548 | 204.60710568795278 549 | 42 550 | 0.41421356237309609 551 | 10 552 | -101.00000423565518 553 | 20 554 | 209.60710568795278 555 | 10 556 | -480.00297817568696 557 | 20 558 | 209.5986746104515 559 | 42 560 | 0.41421356237201284 561 | 10 562 | -485.00297817614694 563 | 20 564 | 204.59867461092978 565 | 10 566 | -485.00297829521969 567 | 20 568 | 92.899604654525149 569 | 42 570 | 0.41421356221031203 571 | 10 572 | -480.00297830332869 573 | 20 574 | 87.899604649195084 575 | 10 576 | -131.40000395404351 577 | 20 578 | 87.907104988289461 579 | 10 580 | -130.40000362321766 581 | 20 582 | 87.90710487802086 583 | 42 584 | -0.41421356237314444 585 | 10 586 | -128.40000384375483 587 | 20 588 | 85.907104657483387 589 | 10 590 | -128.40000395402316 591 | 20 592 | 84.907108252815163 593 | 0 594 | ENDSEC 595 | 0 596 | SECTION 597 | 2 598 | OBJECTS 599 | 0 600 | DICTIONARY 601 | 5 602 | C 603 | 100 604 | AcDbDictionary 605 | 3 606 | ACAD_GROUP 607 | 350 608 | D 609 | 3 610 | ACAD_MLINESTYLE 611 | 350 612 | 17 613 | 0 614 | DICTIONARY 615 | 5 616 | D 617 | 100 618 | AcDbDictionary 619 | 0 620 | DICTIONARY 621 | 5 622 | 1A 623 | 330 624 | C 625 | 100 626 | AcDbDictionary 627 | 0 628 | DICTIONARY 629 | 5 630 | 17 631 | 100 632 | AcDbDictionary 633 | 0 634 | ENDSEC 635 | 0 636 | EOF 637 | -------------------------------------------------------------------------------- /mechanicals/entropy-case-0.3/plate-3.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 | -356.81431154686754 269 | 20 270 | 213.20254981041325 271 | 30 272 | 0 273 | 40 274 | 1.7499999999999716 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 | -224.21414791626958 293 | 20 294 | 213.20254981041296 295 | 30 296 | 0 297 | 40 298 | 1.7500000000000071 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 | -489.48097821353423 317 | 20 318 | 213.20254981041353 319 | 30 320 | 0 321 | 40 322 | 1.7499999999999716 323 | 210 324 | 0 325 | 220 326 | 0 327 | 230 328 | 1 329 | 0 330 | CIRCLE 331 | 5 332 | 103 333 | 100 334 | AcDbEntity 335 | 8 336 | 0 337 | 100 338 | AcDbCircle 339 | 10 340 | -91.54748124960291 341 | 20 342 | 213.20254981041268 343 | 30 344 | 0 345 | 40 346 | 1.7499999999999893 347 | 210 348 | 0 349 | 220 350 | 0 351 | 230 352 | 1 353 | 0 354 | CIRCLE 355 | 5 356 | 104 357 | 100 358 | AcDbEntity 359 | 8 360 | 0 361 | 100 362 | AcDbCircle 363 | 10 364 | -489.48097821353417 365 | 20 366 | 81.985785751164343 367 | 30 368 | 0 369 | 40 370 | 1.7499999999999716 371 | 210 372 | 0 373 | 220 374 | 0 375 | 230 376 | 1 377 | 0 378 | CIRCLE 379 | 5 380 | 105 381 | 100 382 | AcDbEntity 383 | 8 384 | 0 385 | 100 386 | AcDbCircle 387 | 10 388 | -224.21414791626921 389 | 20 390 | 81.985785751164215 391 | 30 392 | 0 393 | 40 394 | 1.7500000000000071 395 | 210 396 | 0 397 | 220 398 | 0 399 | 230 400 | 1 401 | 0 402 | CIRCLE 403 | 5 404 | 106 405 | 100 406 | AcDbEntity 407 | 8 408 | 0 409 | 100 410 | AcDbCircle 411 | 10 412 | -356.81431154686749 413 | 20 414 | 81.985785751164286 415 | 30 416 | 0 417 | 40 418 | 1.7499999999999716 419 | 210 420 | 0 421 | 220 422 | 0 423 | 230 424 | 1 425 | 0 426 | CIRCLE 427 | 5 428 | 107 429 | 100 430 | AcDbEntity 431 | 8 432 | 0 433 | 100 434 | AcDbCircle 435 | 10 436 | -91.547481249602569 437 | 20 438 | 81.985785751164144 439 | 30 440 | 0 441 | 40 442 | 1.7500000000000071 443 | 210 444 | 0 445 | 220 446 | 0 447 | 230 448 | 1 449 | 0 450 | LWPOLYLINE 451 | 5 452 | 108 453 | 100 454 | AcDbEntity 455 | 8 456 | 0 457 | 100 458 | AcDbPolyline 459 | 90 460 | 26 461 | 70 462 | 1 463 | 43 464 | 0.0 465 | 10 466 | -128.40000395402316 467 | 20 468 | 78.985785751164173 469 | 42 470 | -0.41421356237309764 471 | 10 472 | -129.40000395402313 473 | 20 474 | 77.985785751164173 475 | 10 476 | -490.4809782135344 477 | 20 478 | 77.985785751164443 479 | 42 480 | -0.4142135623730846 481 | 10 482 | -493.48097821353434 483 | 20 484 | 80.985785751164457 485 | 10 486 | -493.48097821353406 487 | 20 488 | 214.25950919054225 489 | 42 490 | -0.41421356237310542 491 | 10 492 | -490.48097821353406 493 | 20 494 | 217.25950919054227 495 | 10 496 | -90.547481249603109 497 | 20 498 | 217.25950919054227 499 | 42 500 | -0.41421356237309681 501 | 10 502 | -87.547481249603038 503 | 20 504 | 214.2595091905423 505 | 10 506 | -87.547481249602043 507 | 20 508 | 80.985785751164201 509 | 42 510 | -0.41421356237310719 511 | 10 512 | -90.547481249602058 513 | 20 514 | 77.985785751164144 515 | 10 516 | -108.60000421633603 517 | 20 518 | 77.985785751164144 519 | 42 520 | -0.41421356803152509 521 | 10 522 | -109.60000421633606 523 | 20 524 | 78.985785770483247 525 | 10 526 | -109.60000408206832 527 | 20 528 | 85.93578799219398 529 | 42 530 | -0.41421355671466764 531 | 10 532 | -107.60000408206835 533 | 20 534 | 87.935787953555788 535 | 10 536 | -101.00000423565515 537 | 20 538 | 87.935787953555788 539 | 42 540 | 0.41421356237309293 541 | 10 542 | -96.000004235655155 543 | 20 544 | 92.935787953555788 545 | 10 546 | -96.000004235655155 547 | 20 548 | 204.60710568795278 549 | 42 550 | 0.41421356237309609 551 | 10 552 | -101.00000423565518 553 | 20 554 | 209.60710568795278 555 | 10 556 | -480.00297817568696 557 | 20 558 | 209.5986746104515 559 | 42 560 | 0.41421356237201284 561 | 10 562 | -485.00297817614694 563 | 20 564 | 204.59867461092978 565 | 10 566 | -485.00297829521969 567 | 20 568 | 92.899604654525149 569 | 42 570 | 0.41421356221031203 571 | 10 572 | -480.00297830332869 573 | 20 574 | 87.899604649195084 575 | 10 576 | -131.40000395404351 577 | 20 578 | 87.907104988289461 579 | 10 580 | -130.40000362321766 581 | 20 582 | 87.90710487802086 583 | 42 584 | -0.41421356237314444 585 | 10 586 | -128.40000384375483 587 | 20 588 | 85.907104657483387 589 | 10 590 | -128.40000395402316 591 | 20 592 | 84.907108252815163 593 | 0 594 | ENDSEC 595 | 0 596 | SECTION 597 | 2 598 | OBJECTS 599 | 0 600 | DICTIONARY 601 | 5 602 | C 603 | 100 604 | AcDbDictionary 605 | 3 606 | ACAD_GROUP 607 | 350 608 | D 609 | 3 610 | ACAD_MLINESTYLE 611 | 350 612 | 17 613 | 0 614 | DICTIONARY 615 | 5 616 | D 617 | 100 618 | AcDbDictionary 619 | 0 620 | DICTIONARY 621 | 5 622 | 1A 623 | 330 624 | C 625 | 100 626 | AcDbDictionary 627 | 0 628 | DICTIONARY 629 | 5 630 | 17 631 | 100 632 | AcDbDictionary 633 | 0 634 | ENDSEC 635 | 0 636 | EOF 637 | -------------------------------------------------------------------------------- /mechanicals/entropy-plate-0.4/plate/gerbers/drill_report.txt: -------------------------------------------------------------------------------- 1 | Drill report for plate.kicad_pcb 2 | Created on Sun Aug 29 19:39:39 2021 3 | 4 | Copper Layer Stackup: 5 | ============================================================= 6 | L1 : F.Cu front 7 | L2 : B.Cu back 8 | 9 | 10 | Drill file 'plate.drl' contains 11 | plated through holes: 12 | ============================================================= 13 | 14 | Total plated holes count 0 15 | 16 | 17 | Not plated through holes are merged with plated holes 18 | unplated through holes: 19 | ============================================================= 20 | T1 3.500mm 0.1378" (8 holes) 21 | 22 | Total unplated holes count 8 23 | -------------------------------------------------------------------------------- /mechanicals/entropy-plate-0.4/plate/gerbers/plate.gbp: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,5.99.0-unknown-ff9612b6da~131~ubuntu20.04.1* 2 | G04 #@! TF.CreationDate,2021-08-29T19:39:39+10:00* 3 | G04 #@! TF.ProjectId,plate,706c6174-652e-46b6-9963-61645f706362,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW 5.99.0-unknown-ff9612b6da~131~ubuntu20.04.1) date 2021-08-29 19:39:39* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /mechanicals/entropy-plate-0.4/plate/plate.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "All Layers", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 8, 38 | 9, 39 | 10, 40 | 11, 41 | 12, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "fffffff_ffffffff", 67 | "zone_display_mode": 0 68 | }, 69 | "meta": { 70 | "filename": "plate.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /mechanicals/entropy-plate-0.4/plate/plate.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.09999999999999999, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.15, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.762, 37 | "height": 1.524, 38 | "width": 1.524 39 | }, 40 | "silk_line_width": 0.15, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.508 49 | } 50 | }, 51 | "diff_pair_dimensions": [], 52 | "drc_exclusions": [], 53 | "meta": { 54 | "version": 2 55 | }, 56 | "rule_severities": { 57 | "annular_width": "error", 58 | "clearance": "error", 59 | "copper_edge_clearance": "error", 60 | "courtyards_overlap": "error", 61 | "diff_pair_gap_out_of_range": "error", 62 | "diff_pair_uncoupled_length_too_long": "error", 63 | "drill_out_of_range": "error", 64 | "duplicate_footprints": "warning", 65 | "extra_footprint": "warning", 66 | "hole_clearance": "error", 67 | "hole_near_hole": "error", 68 | "invalid_outline": "error", 69 | "item_on_disabled_layer": "error", 70 | "items_not_allowed": "error", 71 | "length_out_of_range": "error", 72 | "malformed_courtyard": "error", 73 | "microvia_drill_out_of_range": "error", 74 | "missing_courtyard": "ignore", 75 | "missing_footprint": "warning", 76 | "net_conflict": "warning", 77 | "npth_inside_courtyard": "ignore", 78 | "padstack": "error", 79 | "pth_inside_courtyard": "ignore", 80 | "shorting_items": "error", 81 | "silk_over_copper": "warning", 82 | "silk_overlap": "warning", 83 | "skew_out_of_range": "error", 84 | "too_many_vias": "error", 85 | "track_dangling": "warning", 86 | "track_width": "error", 87 | "tracks_crossing": "error", 88 | "unconnected_items": "error", 89 | "unresolved_variable": "error", 90 | "via_dangling": "warning", 91 | "zone_has_empty_net": "error", 92 | "zones_intersect": "error" 93 | }, 94 | "rules": { 95 | "allow_blind_buried_vias": false, 96 | "allow_microvias": false, 97 | "max_error": 0.005, 98 | "min_clearance": 0.0, 99 | "min_copper_edge_clearance": 0.0, 100 | "min_hole_clearance": 0.0, 101 | "min_hole_to_hole": 0.25, 102 | "min_microvia_diameter": 0.19999999999999998, 103 | "min_microvia_drill": 0.09999999999999999, 104 | "min_silk_clearance": 0.0, 105 | "min_through_hole_diameter": 0.3, 106 | "min_track_width": 0.19999999999999998, 107 | "min_via_annular_width": 0.049999999999999996, 108 | "min_via_diameter": 0.39999999999999997, 109 | "solder_mask_clearance": 0.0, 110 | "solder_mask_min_width": 0.0, 111 | "use_height_for_length_calcs": true 112 | }, 113 | "track_widths": [], 114 | "via_dimensions": [], 115 | "zones_allow_external_fillets": false, 116 | "zones_use_no_outline": true 117 | }, 118 | "layer_presets": [] 119 | }, 120 | "boards": [], 121 | "cvpcb": { 122 | "equivalence_files": [] 123 | }, 124 | "libraries": { 125 | "pinned_footprint_libs": [], 126 | "pinned_symbol_libs": [] 127 | }, 128 | "meta": { 129 | "filename": "plate.kicad_pro", 130 | "version": 1 131 | }, 132 | "net_settings": { 133 | "classes": [ 134 | { 135 | "bus_width": 12.0, 136 | "clearance": 0.2, 137 | "diff_pair_gap": 0.25, 138 | "diff_pair_via_gap": 0.25, 139 | "diff_pair_width": 0.2, 140 | "line_style": 0, 141 | "microvia_diameter": 0.3, 142 | "microvia_drill": 0.1, 143 | "name": "Default", 144 | "pcb_color": "rgba(0, 0, 0, 0.000)", 145 | "schematic_color": "rgba(0, 0, 0, 0.000)", 146 | "track_width": 0.25, 147 | "via_diameter": 0.8, 148 | "via_drill": 0.4, 149 | "wire_width": 6.0 150 | } 151 | ], 152 | "meta": { 153 | "version": 1 154 | }, 155 | "net_colors": null 156 | }, 157 | "pcbnew": { 158 | "last_paths": { 159 | "gencad": "", 160 | "idf": "", 161 | "netlist": "", 162 | "specctra_dsn": "", 163 | "step": "", 164 | "vrml": "" 165 | }, 166 | "page_layout_descr_file": "" 167 | }, 168 | "schematic": { 169 | "legacy_lib_dir": "", 170 | "legacy_lib_list": [] 171 | }, 172 | "sheets": [], 173 | "text_variables": {} 174 | } 175 | -------------------------------------------------------------------------------- /mechanicals/entropy-plate-0.4/plate/plate.kicad_sch: -------------------------------------------------------------------------------- 1 | (kicad_sch (version 20210621) (generator eeschema) 2 | (paper "A4") 3 | (lib_symbols) 4 | (symbol_instances) 5 | ) 6 | -------------------------------------------------------------------------------- /scripts/josh_bom.py: -------------------------------------------------------------------------------- 1 | # Python script to generate a BOM from a KiCad generic netlist 2 | # 3 | # Example: Sorted and Grouped CSV BOM 4 | 5 | from __future__ import print_function 6 | 7 | # Import the KiCad python helper module and the csv formatter 8 | import kicad_netlist_reader 9 | import csv 10 | import sys 11 | 12 | def myEqu(self, other): 13 | """myEqu is a more advanced equivalence function for components which is 14 | used by component grouping. Normal operation is to group components based 15 | on their value and footprint. 16 | 17 | In this example of a custom equivalency operator we compare the 18 | value, the part name and the footprint. 19 | """ 20 | result = True 21 | if self.getValue() != other.getValue(): 22 | result = False 23 | elif self.getPartName() != other.getPartName(): 24 | result = False 25 | elif self.getFootprint() != other.getFootprint(): 26 | result = False 27 | 28 | return result 29 | 30 | # Override the component equivalence operator - it is important to do this 31 | # before loading the netlist, otherwise all components will have the original 32 | # equivalency operator. 33 | kicad_netlist_reader.comp.__eq__ = myEqu 34 | 35 | if len(sys.argv) != 3: 36 | print("Usage ", __file__, " ", file=sys.stderr) 37 | sys.exit(1) 38 | 39 | 40 | # Generate an instance of a generic netlist, and load the netlist tree from 41 | # the command line option. If the file doesn't exist, execution will stop 42 | net = kicad_netlist_reader.netlist(sys.argv[1]) 43 | 44 | # Open a file to write to, if the file cannot be opened output to stdout 45 | # instead 46 | try: 47 | f = open(sys.argv[2], 'w') 48 | except IOError: 49 | e = "Can't open output file for writing: " + sys.argv[2] 50 | print( __file__, ":", e, sys.stderr ) 51 | f = sys.stdout 52 | 53 | # subset the components to those wanted in the BOM, controlled 54 | # by block in kicad_netlist_reader.py 55 | components = net.getInterestingComponents() 56 | 57 | compfields = net.gatherComponentFieldUnion(components) 58 | partfields = net.gatherLibPartFieldUnion() 59 | 60 | # remove Reference, Value, Datasheet, and Footprint, they will come from 'columns' below 61 | partfields -= set( ['Reference', 'Value', 'Footprint'] ) 62 | 63 | columnset = compfields | partfields # union 64 | 65 | # prepend an initial 'hard coded' list and put the enchillada into list 'columns' 66 | columns = ['Qty', 'Reference(s)', 'Value', 'Footprint', 'MPN', 'DigiKey', 'LCSC', 'Manufacturer', 'DNP', 'JLCSMT', 'Notes'] 67 | 68 | # Create a new csv writer object to use as the output formatter 69 | out = csv.writer( f, lineterminator='\n', delimiter=',', quotechar='\"', quoting=csv.QUOTE_ALL ) 70 | 71 | # override csv.writer's writerow() to support encoding conversion (initial encoding is utf8): 72 | def writerow( acsvwriter, columns ): 73 | utf8row = [] 74 | for col in columns: 75 | utf8row.append( str(col) ) # currently, no change 76 | acsvwriter.writerow( utf8row ) 77 | 78 | # Print column headings as outlined above 79 | row = [] 80 | writerow( out, columns ) # reuse same columns 81 | 82 | # Get all of the components in groups of matching parts + values 83 | # (see kicad_netlist_reader.py) 84 | grouped = net.groupComponents(components) 85 | 86 | # Output component information organized by group, aka as collated: 87 | item = 0 88 | for group in grouped: 89 | del row[:] 90 | refs = "" 91 | 92 | # Add the reference of every component in the group and keep a reference 93 | # to the component so that the other data can be filled in once per group 94 | for component in group: 95 | if len(refs) > 0: 96 | refs += ", " 97 | refs += component.getRef() 98 | c = component 99 | 100 | # Fill in the component groups common data 101 | # columns = ['Qty', 'Reference(s)', 'Value', 'Footprint', 'MPN', 'DigiKey', 'LCSC', 'Manufacturer', 'DNP', 'JLCSMT', Notes'] 102 | item += 1 103 | row.append( len(group) ) 104 | row.append( refs ); 105 | row.append( c.getValue() ) 106 | row.append( net.getGroupFootprint(group) ) 107 | 108 | # for remaining columns, use the fieldnames to grab the data 109 | for field in columns[4:]: 110 | row.append( net.getGroupField(group, field) ); 111 | 112 | writerow( out, row ) 113 | 114 | f.close() 115 | -------------------------------------------------------------------------------- /scripts/kicadutil.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshajohnson/entropy/dd40c23d07794c3680f157d4463c22514b7e1c83/scripts/kicadutil.jar -------------------------------------------------------------------------------- /scripts/panel.py: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | 3 | import os 4 | import sys 5 | 6 | # Get pcb file path/file-name 7 | path_to_file=sys.argv[1] 8 | project_path = os.path.abspath(os.path.split(path_to_file)[0]) 9 | 10 | # Determine version number 11 | version = os.path.split(path_to_file)[-2] 12 | version = version.split("/")[-2] 13 | 14 | # Determine *.kicad_pcb file name 15 | file_name = path_to_file.split("/")[-1] 16 | 17 | 18 | # Mouse bite specifications 19 | filletRadius = 1.2 20 | holeDia = 0.3 21 | holeInset = -holeDia / 2.0 22 | holeInsetWord = "flush" 23 | pitch = 1 24 | tabWidth = 2.5 25 | 26 | while(True): 27 | usrFilletRadius = input("Fillet Radius, currently {}mm: ".format(filletRadius)) 28 | usrHoleDia = input("Hole Diameter, currently {}mm: ".format(holeDia)) 29 | usrHoleInset = input("Hole Inset, currently {}. Enter inset, flush, or a custom number: ".format(holeInsetWord)) 30 | usrHolePitch = input("Hole Pitch, currently {}mm: ".format(pitch)) 31 | usrTabWidth = input("Tab Width, currently {}mm: ".format(tabWidth)) 32 | 33 | if usrFilletRadius: 34 | filletRadius = float(usrFilletRadius) 35 | 36 | if usrHoleDia: 37 | holeDia = float(usrHoleDia) 38 | 39 | if usrHoleInset: 40 | holeInsetWord = usrHoleInset 41 | if usrHoleInset == "inset" or usrHoleInset == "i": 42 | holeInset = float(holeDia) / 2.0 + 0.05 43 | elif usrHoleInset == "flush" or usrHoleInset == 'f': 44 | holeInset = -float(holeDia) / 2.0 45 | else: 46 | holeInset = usrHoleInset 47 | else: 48 | holeInset = -float(holeDia) / 2.0 49 | 50 | if usrHolePitch: 51 | pitch = float(usrHolePitch) 52 | 53 | if usrTabWidth: 54 | tabWidth = float(usrTabWidth) 55 | 56 | # compose the command line string, may need to change dir for kicadutil.jar 57 | cmd = "java -jar scripts/kicadutil.jar pcb --file={} panel --fillet={} --hole={} --inset={} --pitch={} --width={}".format(path_to_file,filletRadius,holeDia,holeInset,pitch,tabWidth) 58 | 59 | # run the command 60 | os.system(cmd) 61 | os.system("pcbnew hardware/{}/panel/output.{}".format(version, file_name)) 62 | 63 | print("\nLets do it again!\n") 64 | 65 | -------------------------------------------------------------------------------- /scripts/plot_gerbers.py: -------------------------------------------------------------------------------- 1 | #!/bin/python3 2 | 3 | ''' 4 | A python script example to create various plot files from a board: 5 | Fab files 6 | Doc files 7 | Gerber files 8 | 9 | Stolen from Greg Davill and modified for my use. 10 | https://github.com/gregdavill/kicadScripts 11 | 12 | Important note: 13 | this python script does not plot frame references. 14 | the reason is it is not yet possible from a python script because plotting 15 | plot frame references needs loading the corresponding page layout file 16 | (.wks file) or the default template. 17 | 18 | This info (the page layout template) is not stored in the board, and therefore 19 | not available. 20 | 21 | Do not try to change SetPlotFrameRef(False) to SetPlotFrameRef(true) 22 | the result is the pcbnew lib will crash if you try to plot 23 | the unknown frame references template. 24 | ''' 25 | 26 | import sys 27 | import os 28 | import pcbnew 29 | import time 30 | 31 | import logging 32 | import zipfile 33 | import shutil 34 | 35 | 36 | from pcbnew import * 37 | from datetime import datetime 38 | from shutil import copy 39 | 40 | 41 | filename=sys.argv[1] 42 | project_name = os.path.splitext(os.path.split(filename)[1])[0] 43 | project_path = os.path.abspath(os.path.split(filename)[0]) 44 | 45 | output_directory = os.path.join(project_path,'gerbers') 46 | 47 | today = datetime.now().strftime('%Y%m%d_%H%M%S') 48 | 49 | board = LoadBoard(filename) 50 | 51 | pctl = PLOT_CONTROLLER(board) 52 | 53 | popt = pctl.GetPlotOptions() 54 | 55 | popt.SetOutputDirectory(output_directory) 56 | 57 | # Set some important plot options: 58 | popt.SetPlotFrameRef(False) 59 | popt.SetLineWidth(FromMM(0.35)) 60 | 61 | popt.SetAutoScale(False) 62 | popt.SetScale(1) 63 | popt.SetMirror(False) 64 | popt.SetUseGerberAttributes(False) 65 | popt.SetExcludeEdgeLayer(True); 66 | popt.SetScale(1) 67 | popt.SetUseAuxOrigin(True) 68 | popt.SetNegative(False) 69 | popt.SetPlotReference(True) 70 | popt.SetPlotValue(True) 71 | popt.SetPlotInvisibleText(False) 72 | 73 | # This by gerbers only (also the name is truly horrid!) 74 | popt.SetSubtractMaskFromSilk(True) #remove solder mask from silk to be sure there is no silk on pads 75 | 76 | 77 | plot_plan = [ 78 | ( "CuTop", F_Cu, "Top layer", ".gtl"), 79 | ( "CuBottom", B_Cu, "Bottom layer", ".gbl"), 80 | ( "MaskBottom", B_Mask, "Mask Bottom", ".gbs"), 81 | ( "MaskTop", F_Mask, "Mask top", ".gts"), 82 | ( "PasteBottom", B_Paste, "Paste Bottom", ".gbp"), 83 | ( "PasteTop", F_Paste, "Paste Top", ".gtp"), 84 | ( "SilkTop", F_SilkS, "Silk Top", ".gto"), 85 | ( "SilkBottom", B_SilkS, "Silk Bottom", ".gbo"), 86 | ( "EdgeCuts", Edge_Cuts, "Edges", ".gml") 87 | ] 88 | 89 | popt.SetMirror(False) 90 | popt.SetDrillMarksType(PCB_PLOT_PARAMS.NO_DRILL_SHAPE) 91 | print ("Plotting Gerber Layers:") 92 | 93 | fab_files = [] 94 | 95 | # Functional Gerber Plots 96 | for layer_info in plot_plan: 97 | pctl.SetLayer(layer_info[1]) 98 | pctl.OpenPlotfile(layer_info[0], PLOT_FORMAT_GERBER, layer_info[2]) 99 | pctl.PlotLayer() 100 | time.sleep(0.01) 101 | pctl.ClosePlot() 102 | # Create a copy with same filename and Protel extensions. 103 | srcPlot = pctl.GetPlotFileName() 104 | dstPlot = os.path.join(output_directory,project_name + layer_info[3]) 105 | shutil.move(srcPlot, dstPlot) 106 | print (layer_info[0] + " => " + dstPlot) 107 | fab_files.append(dstPlot) 108 | 109 | 110 | #generate internal copper layers, if any 111 | lyrcnt = board.GetCopperLayerCount(); 112 | 113 | for innerlyr in range ( 1, lyrcnt-1 ): 114 | pctl.SetLayer(innerlyr) 115 | lyrname = 'inner%s' % innerlyr 116 | pctl.OpenPlotfile(lyrname, PLOT_FORMAT_GERBER, "inner") 117 | pctl.PlotLayer() 118 | time.sleep(0.01) 119 | pctl.ClosePlot() 120 | # Create a copy with same filename and Protel extensions. 121 | srcPlot = pctl.GetPlotFileName() 122 | dstPlot = os.path.join(output_directory,project_name + '.g' + str(innerlyr + 1)) 123 | shutil.move(srcPlot, dstPlot) 124 | print (lyrname + " => " + dstPlot) 125 | fab_files.append(dstPlot) 126 | 127 | 128 | # Fabricators need drill files. 129 | # sometimes a drill map file is asked (for verification purpose) 130 | drlwriter = EXCELLON_WRITER( board ) 131 | drlwriter.SetMapFileFormat( PLOT_FORMAT_PDF ) 132 | 133 | mirror = False 134 | minimalHeader = False 135 | #offset = wxPoint(0,0) 136 | offset = board.GetAuxOrigin() 137 | mergeNPTH = True 138 | drlwriter.SetOptions( mirror, minimalHeader, offset, mergeNPTH ) 139 | 140 | metricFmt = True 141 | drlwriter.SetFormat( metricFmt ) 142 | 143 | genDrl = True 144 | genMap = False 145 | drlwriter.CreateDrillandMapFilesSet( output_directory, genDrl, genMap ); 146 | 147 | srcPlot = os.path.join(output_directory,project_name + '.drl') 148 | # dstPlot = os.path.join(output_directory,project_name + '.txt') 149 | # shutil.move(srcPlot, dstPlot) 150 | # print (srcPlot + " => " + dstPlot) 151 | fab_files.append(srcPlot) 152 | 153 | # One can create a text file to report drill statistics 154 | rptfn = output_directory + '/drill_report.txt' 155 | drlwriter.GenDrillReportFile( rptfn ); 156 | 157 | #zip up all files 158 | zf = zipfile.ZipFile(os.path.join(output_directory,project_name + '_' + today + '.zip'), "w", zipfile.ZIP_DEFLATED) 159 | abs_src = os.path.abspath(output_directory) 160 | for filename in fab_files: 161 | absname = os.path.abspath(filename) 162 | arcname = absname[len(abs_src) + 1:] 163 | print ('zipping %s as %s' % (filename, 164 | arcname)) 165 | zf.write(absname, arcname) 166 | zf.close() 167 | 168 | print("Did you remember to follow the release process???") 169 | 170 | # We have just generated your plotfiles with a single script 171 | --------------------------------------------------------------------------------