├── .gitmodules ├── LICENSE ├── README.md ├── attic └── esp32s2-nixietube │ ├── esp32s2-nixietube.kicad_pcb │ ├── esp32s2-nixietube.kicad_prl │ ├── esp32s2-nixietube.kicad_pro │ └── esp32s2-nixietube.kicad_sch ├── esp32s2-nixiehost ├── esp32s2-nixiehost-rev-.zip ├── esp32s2-nixiehost.kicad_pcb ├── esp32s2-nixiehost.kicad_prl ├── esp32s2-nixiehost.kicad_pro └── esp32s2-nixiehost.kicad_sch ├── firmware └── nixitest1 │ ├── Makefile │ ├── nixitest1.c │ ├── optionbytes │ ├── Makefile │ └── optionbytes.c │ └── testnix │ ├── Makefile │ ├── rawdraw_sf.h │ ├── testnix.c │ └── winbuild.bat ├── nixitest1 ├── nixitest1-revA.zip ├── nixitest1-revB.zip ├── nixitest1.kicad_pcb ├── nixitest1.kicad_prl ├── nixitest1.kicad_pro ├── nixitest1.kicad_sch └── nixitest1.pdf └── parts ├── AP0803QD_DualNFet.kicad_sym ├── AP4580-FULLBRIDGEFET.bak ├── AP4580-FULLBRIDGEFET.kicad_sym ├── EPC2014C.kicad_sym ├── EPC2014C.pretty └── EPC2014C.kicad_mod ├── Flyback-ATB3225.kicad_sym ├── Flyback-ATB3225.pretty └── Flyback-ATB3225.kicad_mod ├── IN12-NIXIE.pretty └── IN12-NIXIE.kicad_mod ├── IN12-NIXIETUBE.kicad_sym ├── NCP81166.kicad_sym ├── RY9320AT6_Buck.kicad_sym ├── TVS-USB.kicad_sym ├── TouchPadTest.pretty ├── TouchExposed6.kicad_mod └── TouchPadTest.kicad_mod ├── WS2816-2121.kicad_mod ├── WS2816C-2121.kicad_sym ├── ap4580.pretty └── ap4580.kicad_mod ├── esp32s2.kicad_sym ├── localparts.pretty └── ESP32S2.kicad_mod ├── minifet.bak ├── minifet.kicad_sym ├── ncp81166.pretty └── ncp81166.kicad_mod ├── neonglow.pretty └── neonglow.kicad_mod ├── nixiehostslot.pretty └── nixiehostslot.kicad_mod ├── pmpack3_dualfet.pretty └── pmpack3_dualfet.kicad_mod ├── rawpad22.pretty └── rawpad22.kicad_mod └── xdfn_reg.pretty ├── OnSemi_XDFN4-1EP_1.0x1.0mm_EP0.52x0.52mm.kicad_mod └── xdfn-reg.kicad_mod /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "firmware/ch32v003fun"] 2 | path = firmware/ch32v003fun 3 | url = https://github.com/cnlohr/ch32v003fun 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 CNLohr 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cnixxi 2 | 3 | My experiment with nixie tubes. 4 | 5 | [![Powering Nixies off USB with a 10¢ Micro](https://img.youtube.com/vi/-4d3PgEXhdY/0.jpg)](https://www.youtube.com/watch?v=-4d3PgEXhdY) 6 | -------------------------------------------------------------------------------- /attic/esp32s2-nixietube/esp32s2-nixietube.kicad_pcb: -------------------------------------------------------------------------------- 1 | (kicad_pcb (version 20211014) (generator pcbnew) 2 | 3 | (general 4 | (thickness 1.6) 5 | ) 6 | 7 | (paper "A4") 8 | (layers 9 | (0 "F.Cu" signal) 10 | (31 "B.Cu" signal) 11 | (32 "B.Adhes" user "B.Adhesive") 12 | (33 "F.Adhes" user "F.Adhesive") 13 | (34 "B.Paste" user) 14 | (35 "F.Paste" user) 15 | (36 "B.SilkS" user "B.Silkscreen") 16 | (37 "F.SilkS" user "F.Silkscreen") 17 | (38 "B.Mask" user) 18 | (39 "F.Mask" user) 19 | (40 "Dwgs.User" user "User.Drawings") 20 | (41 "Cmts.User" user "User.Comments") 21 | (42 "Eco1.User" user "User.Eco1") 22 | (43 "Eco2.User" user "User.Eco2") 23 | (44 "Edge.Cuts" user) 24 | (45 "Margin" user) 25 | (46 "B.CrtYd" user "B.Courtyard") 26 | (47 "F.CrtYd" user "F.Courtyard") 27 | (48 "B.Fab" user) 28 | (49 "F.Fab" user) 29 | (50 "User.1" user) 30 | (51 "User.2" user) 31 | (52 "User.3" user) 32 | (53 "User.4" user) 33 | (54 "User.5" user) 34 | (55 "User.6" user) 35 | (56 "User.7" user) 36 | (57 "User.8" user) 37 | (58 "User.9" user) 38 | ) 39 | 40 | (setup 41 | (pad_to_mask_clearance 0) 42 | (pcbplotparams 43 | (layerselection 0x00010fc_ffffffff) 44 | (disableapertmacros false) 45 | (usegerberextensions false) 46 | (usegerberattributes true) 47 | (usegerberadvancedattributes true) 48 | (creategerberjobfile true) 49 | (svguseinch false) 50 | (svgprecision 6) 51 | (excludeedgelayer true) 52 | (plotframeref false) 53 | (viasonmask false) 54 | (mode 1) 55 | (useauxorigin false) 56 | (hpglpennumber 1) 57 | (hpglpenspeed 20) 58 | (hpglpendiameter 15.000000) 59 | (dxfpolygonmode true) 60 | (dxfimperialunits true) 61 | (dxfusepcbnewfont true) 62 | (psnegative false) 63 | (psa4output false) 64 | (plotreference true) 65 | (plotvalue true) 66 | (plotinvisibletext false) 67 | (sketchpadsonfab false) 68 | (subtractmaskfromsilk false) 69 | (outputformat 1) 70 | (mirror false) 71 | (drillshape 1) 72 | (scaleselection 1) 73 | (outputdirectory "") 74 | ) 75 | ) 76 | 77 | (net 0 "") 78 | 79 | ) 80 | -------------------------------------------------------------------------------- /attic/esp32s2-nixietube/esp32s2-nixietube.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 | 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": "fffffff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "esp32s2-nixietube.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /attic/esp32s2-nixietube/esp32s2-nixietube.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 | "footprint_type_mismatch": "error", 67 | "hole_clearance": "error", 68 | "hole_near_hole": "error", 69 | "invalid_outline": "error", 70 | "item_on_disabled_layer": "error", 71 | "items_not_allowed": "error", 72 | "length_out_of_range": "error", 73 | "malformed_courtyard": "error", 74 | "microvia_drill_out_of_range": "error", 75 | "missing_courtyard": "ignore", 76 | "missing_footprint": "warning", 77 | "net_conflict": "warning", 78 | "npth_inside_courtyard": "ignore", 79 | "padstack": "error", 80 | "pth_inside_courtyard": "ignore", 81 | "shorting_items": "error", 82 | "silk_over_copper": "warning", 83 | "silk_overlap": "warning", 84 | "skew_out_of_range": "error", 85 | "through_hole_pad_without_hole": "error", 86 | "too_many_vias": "error", 87 | "track_dangling": "warning", 88 | "track_width": "error", 89 | "tracks_crossing": "error", 90 | "unconnected_items": "error", 91 | "unresolved_variable": "error", 92 | "via_dangling": "warning", 93 | "zone_has_empty_net": "error", 94 | "zones_intersect": "error" 95 | }, 96 | "rules": { 97 | "allow_blind_buried_vias": false, 98 | "allow_microvias": false, 99 | "max_error": 0.005, 100 | "min_clearance": 0.0, 101 | "min_copper_edge_clearance": 0.0, 102 | "min_hole_clearance": 0.25, 103 | "min_hole_to_hole": 0.25, 104 | "min_microvia_diameter": 0.19999999999999998, 105 | "min_microvia_drill": 0.09999999999999999, 106 | "min_silk_clearance": 0.0, 107 | "min_through_hole_diameter": 0.3, 108 | "min_track_width": 0.19999999999999998, 109 | "min_via_annular_width": 0.049999999999999996, 110 | "min_via_diameter": 0.39999999999999997, 111 | "solder_mask_clearance": 0.0, 112 | "solder_mask_min_width": 0.0, 113 | "use_height_for_length_calcs": true 114 | }, 115 | "track_widths": [], 116 | "via_dimensions": [], 117 | "zones_allow_external_fillets": false, 118 | "zones_use_no_outline": true 119 | }, 120 | "layer_presets": [] 121 | }, 122 | "boards": [], 123 | "cvpcb": { 124 | "equivalence_files": [] 125 | }, 126 | "erc": { 127 | "erc_exclusions": [], 128 | "meta": { 129 | "version": 0 130 | }, 131 | "pin_map": [ 132 | [ 133 | 0, 134 | 0, 135 | 0, 136 | 0, 137 | 0, 138 | 0, 139 | 1, 140 | 0, 141 | 0, 142 | 0, 143 | 0, 144 | 2 145 | ], 146 | [ 147 | 0, 148 | 2, 149 | 0, 150 | 1, 151 | 0, 152 | 0, 153 | 1, 154 | 0, 155 | 2, 156 | 2, 157 | 2, 158 | 2 159 | ], 160 | [ 161 | 0, 162 | 0, 163 | 0, 164 | 0, 165 | 0, 166 | 0, 167 | 1, 168 | 0, 169 | 1, 170 | 0, 171 | 1, 172 | 2 173 | ], 174 | [ 175 | 0, 176 | 1, 177 | 0, 178 | 0, 179 | 0, 180 | 0, 181 | 1, 182 | 1, 183 | 2, 184 | 1, 185 | 1, 186 | 2 187 | ], 188 | [ 189 | 0, 190 | 0, 191 | 0, 192 | 0, 193 | 0, 194 | 0, 195 | 1, 196 | 0, 197 | 0, 198 | 0, 199 | 0, 200 | 2 201 | ], 202 | [ 203 | 0, 204 | 0, 205 | 0, 206 | 0, 207 | 0, 208 | 0, 209 | 0, 210 | 0, 211 | 0, 212 | 0, 213 | 0, 214 | 2 215 | ], 216 | [ 217 | 1, 218 | 1, 219 | 1, 220 | 1, 221 | 1, 222 | 0, 223 | 1, 224 | 1, 225 | 1, 226 | 1, 227 | 1, 228 | 2 229 | ], 230 | [ 231 | 0, 232 | 0, 233 | 0, 234 | 1, 235 | 0, 236 | 0, 237 | 1, 238 | 0, 239 | 0, 240 | 0, 241 | 0, 242 | 2 243 | ], 244 | [ 245 | 0, 246 | 2, 247 | 1, 248 | 2, 249 | 0, 250 | 0, 251 | 1, 252 | 0, 253 | 2, 254 | 2, 255 | 2, 256 | 2 257 | ], 258 | [ 259 | 0, 260 | 2, 261 | 0, 262 | 1, 263 | 0, 264 | 0, 265 | 1, 266 | 0, 267 | 2, 268 | 0, 269 | 0, 270 | 2 271 | ], 272 | [ 273 | 0, 274 | 2, 275 | 1, 276 | 1, 277 | 0, 278 | 0, 279 | 1, 280 | 0, 281 | 2, 282 | 0, 283 | 0, 284 | 2 285 | ], 286 | [ 287 | 2, 288 | 2, 289 | 2, 290 | 2, 291 | 2, 292 | 2, 293 | 2, 294 | 2, 295 | 2, 296 | 2, 297 | 2, 298 | 2 299 | ] 300 | ], 301 | "rule_severities": { 302 | "bus_definition_conflict": "error", 303 | "bus_entry_needed": "error", 304 | "bus_label_syntax": "error", 305 | "bus_to_bus_conflict": "error", 306 | "bus_to_net_conflict": "error", 307 | "different_unit_footprint": "error", 308 | "different_unit_net": "error", 309 | "duplicate_reference": "error", 310 | "duplicate_sheet_names": "error", 311 | "extra_units": "error", 312 | "global_label_dangling": "warning", 313 | "hier_label_mismatch": "error", 314 | "label_dangling": "error", 315 | "lib_symbol_issues": "warning", 316 | "multiple_net_names": "warning", 317 | "net_not_bus_member": "warning", 318 | "no_connect_connected": "warning", 319 | "no_connect_dangling": "warning", 320 | "pin_not_connected": "error", 321 | "pin_not_driven": "error", 322 | "pin_to_pin": "warning", 323 | "power_pin_not_driven": "error", 324 | "similar_labels": "warning", 325 | "unannotated": "error", 326 | "unit_value_mismatch": "error", 327 | "unresolved_variable": "error", 328 | "wire_dangling": "error" 329 | } 330 | }, 331 | "libraries": { 332 | "pinned_footprint_libs": [], 333 | "pinned_symbol_libs": [] 334 | }, 335 | "meta": { 336 | "filename": "esp32s2-nixietube.kicad_pro", 337 | "version": 1 338 | }, 339 | "net_settings": { 340 | "classes": [ 341 | { 342 | "bus_width": 12.0, 343 | "clearance": 0.2, 344 | "diff_pair_gap": 0.25, 345 | "diff_pair_via_gap": 0.25, 346 | "diff_pair_width": 0.2, 347 | "line_style": 0, 348 | "microvia_diameter": 0.3, 349 | "microvia_drill": 0.1, 350 | "name": "Default", 351 | "pcb_color": "rgba(0, 0, 0, 0.000)", 352 | "schematic_color": "rgba(0, 0, 0, 0.000)", 353 | "track_width": 0.25, 354 | "via_diameter": 0.8, 355 | "via_drill": 0.4, 356 | "wire_width": 6.0 357 | } 358 | ], 359 | "meta": { 360 | "version": 2 361 | }, 362 | "net_colors": null 363 | }, 364 | "pcbnew": { 365 | "last_paths": { 366 | "gencad": "", 367 | "idf": "", 368 | "netlist": "", 369 | "specctra_dsn": "", 370 | "step": "", 371 | "vrml": "" 372 | }, 373 | "page_layout_descr_file": "" 374 | }, 375 | "schematic": { 376 | "annotate_start_num": 0, 377 | "drawing": { 378 | "default_line_thickness": 6.0, 379 | "default_text_size": 50.0, 380 | "field_names": [], 381 | "intersheets_ref_own_page": false, 382 | "intersheets_ref_prefix": "", 383 | "intersheets_ref_short": false, 384 | "intersheets_ref_show": false, 385 | "intersheets_ref_suffix": "", 386 | "junction_size_choice": 3, 387 | "label_size_ratio": 0.375, 388 | "pin_symbol_size": 25.0, 389 | "text_offset_ratio": 0.15 390 | }, 391 | "legacy_lib_dir": "", 392 | "legacy_lib_list": [], 393 | "meta": { 394 | "version": 1 395 | }, 396 | "net_format_name": "", 397 | "ngspice": { 398 | "fix_include_paths": true, 399 | "fix_passive_vals": false, 400 | "meta": { 401 | "version": 0 402 | }, 403 | "model_mode": 0, 404 | "workbook_filename": "" 405 | }, 406 | "page_layout_descr_file": "", 407 | "plot_directory": "", 408 | "spice_adjust_passive_values": false, 409 | "spice_external_command": "spice \"%I\"", 410 | "subpart_first_id": 65, 411 | "subpart_id_separator": 0 412 | }, 413 | "sheets": [ 414 | [ 415 | "c7dd8d54-ae52-4b52-a05e-d94d8496245e", 416 | "" 417 | ] 418 | ], 419 | "text_variables": {} 420 | } 421 | -------------------------------------------------------------------------------- /esp32s2-nixiehost/esp32s2-nixiehost-rev-.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnlohr/cnixxi/0eb3829d752086c7935824d2ac40175e9630bbce/esp32s2-nixiehost/esp32s2-nixiehost-rev-.zip -------------------------------------------------------------------------------- /esp32s2-nixiehost/esp32s2-nixiehost.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 | 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": "ffdffff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "esp32s2-nixiehost.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /esp32s2-nixiehost/esp32s2-nixiehost.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": 0.7999999999999999, 43 | "silk_text_size_v": 0.7999999999999999, 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 | { 53 | "gap": 0.0, 54 | "via_gap": 0.0, 55 | "width": 0.0 56 | } 57 | ], 58 | "drc_exclusions": [], 59 | "meta": { 60 | "version": 2 61 | }, 62 | "rule_severities": { 63 | "annular_width": "error", 64 | "clearance": "error", 65 | "copper_edge_clearance": "error", 66 | "courtyards_overlap": "error", 67 | "diff_pair_gap_out_of_range": "error", 68 | "diff_pair_uncoupled_length_too_long": "error", 69 | "drill_out_of_range": "error", 70 | "duplicate_footprints": "warning", 71 | "extra_footprint": "warning", 72 | "footprint_type_mismatch": "error", 73 | "hole_clearance": "error", 74 | "hole_near_hole": "error", 75 | "invalid_outline": "error", 76 | "item_on_disabled_layer": "error", 77 | "items_not_allowed": "error", 78 | "length_out_of_range": "error", 79 | "malformed_courtyard": "error", 80 | "microvia_drill_out_of_range": "error", 81 | "missing_courtyard": "ignore", 82 | "missing_footprint": "warning", 83 | "net_conflict": "warning", 84 | "npth_inside_courtyard": "ignore", 85 | "padstack": "error", 86 | "pth_inside_courtyard": "ignore", 87 | "shorting_items": "error", 88 | "silk_over_copper": "warning", 89 | "silk_overlap": "warning", 90 | "skew_out_of_range": "error", 91 | "through_hole_pad_without_hole": "error", 92 | "too_many_vias": "error", 93 | "track_dangling": "warning", 94 | "track_width": "error", 95 | "tracks_crossing": "error", 96 | "unconnected_items": "error", 97 | "unresolved_variable": "error", 98 | "via_dangling": "warning", 99 | "zone_has_empty_net": "error", 100 | "zones_intersect": "error" 101 | }, 102 | "rules": { 103 | "allow_blind_buried_vias": false, 104 | "allow_microvias": false, 105 | "max_error": 0.005, 106 | "min_clearance": 0.0, 107 | "min_copper_edge_clearance": 0.0, 108 | "min_hole_clearance": 0.25, 109 | "min_hole_to_hole": 0.25, 110 | "min_microvia_diameter": 0.19999999999999998, 111 | "min_microvia_drill": 0.09999999999999999, 112 | "min_silk_clearance": 0.0, 113 | "min_through_hole_diameter": 0.3, 114 | "min_track_width": 0.19999999999999998, 115 | "min_via_annular_width": 0.049999999999999996, 116 | "min_via_diameter": 0.39999999999999997, 117 | "solder_mask_clearance": 0.0, 118 | "solder_mask_min_width": 0.0, 119 | "use_height_for_length_calcs": true 120 | }, 121 | "track_widths": [ 122 | 0.0 123 | ], 124 | "via_dimensions": [ 125 | { 126 | "diameter": 0.0, 127 | "drill": 0.0 128 | } 129 | ], 130 | "zones_allow_external_fillets": false, 131 | "zones_use_no_outline": true 132 | }, 133 | "layer_presets": [] 134 | }, 135 | "boards": [], 136 | "cvpcb": { 137 | "equivalence_files": [] 138 | }, 139 | "erc": { 140 | "erc_exclusions": [], 141 | "meta": { 142 | "version": 0 143 | }, 144 | "pin_map": [ 145 | [ 146 | 0, 147 | 0, 148 | 0, 149 | 0, 150 | 0, 151 | 0, 152 | 1, 153 | 0, 154 | 0, 155 | 0, 156 | 0, 157 | 2 158 | ], 159 | [ 160 | 0, 161 | 2, 162 | 0, 163 | 1, 164 | 0, 165 | 0, 166 | 1, 167 | 0, 168 | 2, 169 | 2, 170 | 2, 171 | 2 172 | ], 173 | [ 174 | 0, 175 | 0, 176 | 0, 177 | 0, 178 | 0, 179 | 0, 180 | 1, 181 | 0, 182 | 1, 183 | 0, 184 | 1, 185 | 2 186 | ], 187 | [ 188 | 0, 189 | 1, 190 | 0, 191 | 0, 192 | 0, 193 | 0, 194 | 1, 195 | 1, 196 | 2, 197 | 1, 198 | 1, 199 | 2 200 | ], 201 | [ 202 | 0, 203 | 0, 204 | 0, 205 | 0, 206 | 0, 207 | 0, 208 | 1, 209 | 0, 210 | 0, 211 | 0, 212 | 0, 213 | 2 214 | ], 215 | [ 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 0, 221 | 0, 222 | 0, 223 | 0, 224 | 0, 225 | 0, 226 | 0, 227 | 2 228 | ], 229 | [ 230 | 1, 231 | 1, 232 | 1, 233 | 1, 234 | 1, 235 | 0, 236 | 1, 237 | 1, 238 | 1, 239 | 1, 240 | 1, 241 | 2 242 | ], 243 | [ 244 | 0, 245 | 0, 246 | 0, 247 | 1, 248 | 0, 249 | 0, 250 | 1, 251 | 0, 252 | 0, 253 | 0, 254 | 0, 255 | 2 256 | ], 257 | [ 258 | 0, 259 | 2, 260 | 1, 261 | 2, 262 | 0, 263 | 0, 264 | 1, 265 | 0, 266 | 2, 267 | 2, 268 | 2, 269 | 2 270 | ], 271 | [ 272 | 0, 273 | 2, 274 | 0, 275 | 1, 276 | 0, 277 | 0, 278 | 1, 279 | 0, 280 | 2, 281 | 0, 282 | 0, 283 | 2 284 | ], 285 | [ 286 | 0, 287 | 2, 288 | 1, 289 | 1, 290 | 0, 291 | 0, 292 | 1, 293 | 0, 294 | 2, 295 | 0, 296 | 0, 297 | 2 298 | ], 299 | [ 300 | 2, 301 | 2, 302 | 2, 303 | 2, 304 | 2, 305 | 2, 306 | 2, 307 | 2, 308 | 2, 309 | 2, 310 | 2, 311 | 2 312 | ] 313 | ], 314 | "rule_severities": { 315 | "bus_definition_conflict": "error", 316 | "bus_entry_needed": "error", 317 | "bus_label_syntax": "error", 318 | "bus_to_bus_conflict": "error", 319 | "bus_to_net_conflict": "error", 320 | "different_unit_footprint": "error", 321 | "different_unit_net": "error", 322 | "duplicate_reference": "error", 323 | "duplicate_sheet_names": "error", 324 | "extra_units": "error", 325 | "global_label_dangling": "warning", 326 | "hier_label_mismatch": "error", 327 | "label_dangling": "error", 328 | "lib_symbol_issues": "warning", 329 | "multiple_net_names": "warning", 330 | "net_not_bus_member": "warning", 331 | "no_connect_connected": "warning", 332 | "no_connect_dangling": "warning", 333 | "pin_not_connected": "error", 334 | "pin_not_driven": "error", 335 | "pin_to_pin": "warning", 336 | "power_pin_not_driven": "error", 337 | "similar_labels": "warning", 338 | "unannotated": "error", 339 | "unit_value_mismatch": "error", 340 | "unresolved_variable": "error", 341 | "wire_dangling": "error" 342 | } 343 | }, 344 | "libraries": { 345 | "pinned_footprint_libs": [], 346 | "pinned_symbol_libs": [] 347 | }, 348 | "meta": { 349 | "filename": "esp32s2-nixiehost.kicad_pro", 350 | "version": 1 351 | }, 352 | "net_settings": { 353 | "classes": [ 354 | { 355 | "bus_width": 12.0, 356 | "clearance": 0.18, 357 | "diff_pair_gap": 0.25, 358 | "diff_pair_via_gap": 0.25, 359 | "diff_pair_width": 0.2, 360 | "line_style": 0, 361 | "microvia_diameter": 0.3, 362 | "microvia_drill": 0.1, 363 | "name": "Default", 364 | "pcb_color": "rgba(0, 0, 0, 0.000)", 365 | "schematic_color": "rgba(0, 0, 0, 0.000)", 366 | "track_width": 0.2, 367 | "via_diameter": 0.5, 368 | "via_drill": 0.3, 369 | "wire_width": 6.0 370 | } 371 | ], 372 | "meta": { 373 | "version": 2 374 | }, 375 | "net_colors": null 376 | }, 377 | "pcbnew": { 378 | "last_paths": { 379 | "gencad": "", 380 | "idf": "", 381 | "netlist": "", 382 | "specctra_dsn": "", 383 | "step": "", 384 | "vrml": "" 385 | }, 386 | "page_layout_descr_file": "" 387 | }, 388 | "schematic": { 389 | "annotate_start_num": 0, 390 | "drawing": { 391 | "default_line_thickness": 6.0, 392 | "default_text_size": 50.0, 393 | "field_names": [], 394 | "intersheets_ref_own_page": false, 395 | "intersheets_ref_prefix": "", 396 | "intersheets_ref_short": false, 397 | "intersheets_ref_show": false, 398 | "intersheets_ref_suffix": "", 399 | "junction_size_choice": 3, 400 | "label_size_ratio": 0.375, 401 | "pin_symbol_size": 25.0, 402 | "text_offset_ratio": 0.15 403 | }, 404 | "legacy_lib_dir": "", 405 | "legacy_lib_list": [], 406 | "meta": { 407 | "version": 1 408 | }, 409 | "net_format_name": "", 410 | "ngspice": { 411 | "fix_include_paths": true, 412 | "fix_passive_vals": false, 413 | "meta": { 414 | "version": 0 415 | }, 416 | "model_mode": 0, 417 | "workbook_filename": "" 418 | }, 419 | "page_layout_descr_file": "", 420 | "plot_directory": "", 421 | "spice_adjust_passive_values": false, 422 | "spice_external_command": "spice \"%I\"", 423 | "subpart_first_id": 65, 424 | "subpart_id_separator": 0 425 | }, 426 | "sheets": [ 427 | [ 428 | "f5630865-f9f8-43da-b867-37fbf5bbf1a3", 429 | "" 430 | ] 431 | ], 432 | "text_variables": {} 433 | } 434 | -------------------------------------------------------------------------------- /firmware/nixitest1/Makefile: -------------------------------------------------------------------------------- 1 | all : flash 2 | 3 | TARGET:=nixitest1 4 | 5 | CH32V003FUN:=../ch32v003fun/ch32v003fun 6 | MINICHLINK:=../ch32v003fun/minichlink 7 | include ../ch32v003fun/ch32v003fun/ch32v003fun.mk 8 | 9 | flash : cv_flash 10 | clean : cv_clean 11 | 12 | 13 | -------------------------------------------------------------------------------- /firmware/nixitest1/nixitest1.c: -------------------------------------------------------------------------------- 1 | // 2 | // cnixi - ch32v003 base driver for IN-15 nixie tubes. 3 | // 4 | // Fully integrated PI flyback PSU controller + Nixie Tube output 5 | // control with up to 2 channel simultaneous dimming. 6 | // 7 | // Copyright 2023 <>< Charles Lohr, under the MIT-X11 license or NewBSD 8 | // license, you choose. 9 | // 10 | // Note: Before running this, you should run the optionbytes folder script 11 | // in order configure RESET as a GPIO so you can use the AUX input as well 12 | // as forcing the watchdog on by default. 13 | // 14 | 15 | #define SYSTEM_CORE_CLOCK 48000000 16 | 17 | #include "ch32v003fun.h" 18 | #include 19 | 20 | static uint16_t GenOnMask( int segmenton ); 21 | static void ApplyOnMask( uint16_t onmask ); 22 | static inline void WatchdogPet(); 23 | 24 | // Limits the "ADC Set Value" in volts. 25 | // This prevents us from exceeding 190 volts target. 26 | #define ABSOLUTE_MAX_ADC_SET 190 27 | 28 | // Do not mess with PWM_ values unless you know what you are willing to go down 29 | // a very deep rabbit hole. I experimentally determined 140 for this particular 30 | // system was on the more efficient side of things and gave good dynamic range. 31 | // 140 means it's 48MHz / 140 = 342 kHz for the main flyback frequency. 32 | // 33 | // You can explore values by doing ENABLE_TUNING in here and in testnix.c 34 | // #define ENABLE_TUNING 35 | #ifndef ENABLE_TUNING 36 | #define PWM_PERIOD 140 37 | #else 38 | int PWM_PERIOD = 140; 39 | #endif 40 | int pwm_max_duty = 48; //This is changed based on vdd. 41 | 42 | 43 | // Flyback PID loop Tuning Parameters 44 | // 45 | // This is a PID loop (you should read about this separately). But these terms 46 | // are actually on the order of 2^term. So we are only able to get the tuning 47 | // to a rough ballpark. Thankfully, PID loops are forgiving. 48 | // 49 | // Honestly, this is MUCH more sophisticated than it needs to be! I was using 50 | // a P-only loop for quite some time without any issues. 51 | #define ERROR_P_TERM 2 // Actually 2^2 52 | #define ERROR_D_TERM -1 // Actually 2^0 53 | #define I_SAT_MAX (4096+2048) // SAT * 2^(-ADC_IIR+ERROR_I_TERM) = Max impact to PWM 54 | #define I_SAT_MIN (-4096) 55 | #define ERROR_I_TERM -5 // Actually 2^-6 56 | 57 | // We filter our ADC inputs because they are kind of noisy. 58 | // 59 | // We can use Binary-shift IIR filters to filter the incoming ADC signals. 60 | // See later in the code, but, it maps to only about 4 assembly instructions! 61 | // (plus a read-back of the previous value we will be mixing). 62 | #define ADC_IIR 2 63 | #define VDD_IIR 2 64 | 65 | // Target feedback, set by the user. 66 | int target_feedback = 0; 67 | 68 | // Feedback based on what the user set and the part's VDD. 69 | int feedback_vdd = 0; 70 | 71 | // Filtered ADC and VDD values. 72 | int lastadc = 0; 73 | int lastrefvdd = 0; 74 | 75 | // Code for handling numeric fading, between 2 numbers or alone. 76 | 77 | uint16_t fade_time0, fade_time1; 78 | uint16_t fade_disp0, fade_disp1; 79 | 80 | static uint32_t HandleFade( uint8_t fadepos ) __attribute__((section(".srodata"))); 81 | static uint32_t HandleFade( uint8_t fadepos ) 82 | { 83 | // Digit fade. Use fade_timeX and fade_dispX to handle fade logic. 84 | if( fadepos < fade_time0 ) 85 | return fade_disp0; 86 | else if( fadepos < fade_time1 ) 87 | return fade_disp1; 88 | else 89 | return 0; 90 | } 91 | 92 | static inline uint32_t FastMultiply( uint32_t big_num, uint32_t small_num ); 93 | static inline uint32_t FastMultiply( uint32_t big_num, uint32_t small_num ) 94 | { 95 | // The CH32V003 is an EC core, so no hardware multiply. GCC's way multiply 96 | // is slow, so I wrote this. 97 | // 98 | // This basically does this: 99 | // return small_num * big_num; 100 | // 101 | // Note: This does NOT check for zero to begin with, though this still 102 | // produces the correct results, it is a little weird that even if 103 | // small_num is zero it executes once. 104 | // 105 | // Additionally note, instead of the if( m&1 ) you can do the following: 106 | // ret += multiplciant & neg(multiplicand & 1). 107 | // 108 | // BUT! Shockingly! That is slower than an extra branch! The CH32V003 109 | // can branch unbelievably fast. 110 | // 111 | // This is functionally equivelent and much faster. 112 | // 113 | // Perf numbers, with small_num set to 180V. 114 | // No multiply: 21.3% CPU Usage 115 | // Assembly below: 42.4% CPU Usage (1608 bytes for whole program) 116 | // C version: 41.4% CPU Usage (1600 bytes for whole program) 117 | // Using GCC (__mulsi3) 65.4% CPU Usage (1652 bytes for whole program) 118 | // 119 | // The multiply can be done manually: 120 | uint32_t ret = 0; 121 | uint32_t multiplicand = small_num; 122 | uint32_t mutliplicant = big_num; 123 | do 124 | { 125 | if( multiplicand & 1 ) 126 | ret += mutliplicant; 127 | mutliplicant<<=1; 128 | multiplicand>>=1; 129 | } while( multiplicand ); 130 | return ret; 131 | 132 | // Which is equivelent to the following assembly (If you were curious) 133 | /* 134 | uint32_t ret = 0; 135 | asm volatile( "\n\ 136 | .option rvc;\n\ 137 | 1: andi t0, %[small], 1\n\ 138 | beqz t0, 2f\n\ 139 | add %[ret], %[ret], %[big]\n\ 140 | 2: srli %[small], %[small], 1\n\ 141 | slli %[big], %[big], 1\n\ 142 | bnez %[small], 1b\n\ 143 | " : 144 | [ret]"=&r"(ret), [big]"+&r"(big_num), [small]"+&r"(small_num) : : 145 | "t0" ); 146 | return ret; 147 | */ 148 | } 149 | 150 | // FYI You can use functions in ram to make them work faster. The .srodata 151 | // attribute. This means this function gets placed into RAM. Normally this 152 | // function takes approximately 2.5-3us to execute from flash, but only 2-2.5us 153 | // to execute from RAM. 154 | 155 | // This is an interrupt called by an ADC conversion. 156 | void ADC1_IRQHandler(void) 157 | __attribute__((interrupt)) 158 | __attribute__((section(".srodata"))); 159 | 160 | void ADC1_IRQHandler(void) 161 | { 162 | // If you want to see how long this functon takes to run, you can use a 163 | // scope and then monitor pin D6 if you uncomment this and the bottom copy. 164 | GPIOD->BSHR = 1<<6; 165 | 166 | // Acknowledge pending interrupts. 167 | // This will always be ADC_JEOC, so we don't need to check. 168 | ADC1->STATR = 0; 169 | 170 | // Acknowledge the interrupt. 171 | 172 | // It is crucial that our ADC sample is ALWAYS ALIGNED to the PWM, that way 173 | // any ripple and craziness that happens from the chopping of the flyback 174 | // is completely filtered out because of where we are sampling. 175 | 176 | // This performs a low-pass filter on our data, ADC1->RDATAR the sample 177 | // rate, always. As a side note, the value of the IIR (but now it's 178 | // 2^VDD_IIR bigger) 179 | 180 | int adcraw = ADC1->RDATAR; 181 | int newadc = adcraw + (lastadc - (lastadc>>ADC_IIR)); 182 | lastadc = newadc; 183 | 184 | int err = feedback_vdd - lastadc; 185 | 186 | static int integral; 187 | static int lasterr; 188 | int derivative = (err - lasterr); 189 | lasterr = err; 190 | integral += err; 191 | 192 | // We asymmetrically allow the integral to saturate, to help prevent long- 193 | // term oscillations. 194 | integral = ( integral > ((I_SAT_MAX)<> ( ADC_IIR - (ERROR_I_TERM) )) + 204 | (derivative >> ( (ADC_IIR) - (ERROR_D_TERM) ) ); 205 | plant = ( plant > pwm_max_duty ) ? pwm_max_duty : plant; 206 | plant = ( plant < 0 ) ? 0 : plant; 207 | TIM1->CH2CVR = plant; 208 | 209 | // Use injection channel data to read vref. This is needed because we 210 | // measure all values WRT to VDD and GND. So we need to measure the vref 211 | // a lot to make sure we know what value we are are targeting Ballparks 212 | // (for unfiltered numbers) (Just as a note) 213 | // 0xF0 / 240 for 5V input << lastrefvdd 214 | // 0x175 / 373 for 3.3v input << lastrefvdd 215 | 216 | // Do an IIR low-pass filter on VDD. See IIR discussion above. 217 | uint32_t vdd = lastrefvdd = ADC1->IDATAR1 + (lastrefvdd - (lastrefvdd>>VDD_IIR)); 218 | 219 | #ifndef ENABLE_TUNING 220 | 221 | // If we aren't enabling tuning, we can update max on time here. We want to 222 | // limit on-time based on DC voltage on the flyback so that we can get 223 | // close to (But not get into) saturation of the flyback transformer's core 224 | // 225 | // We can compute expected values, but experimenting is better. 226 | // Transformer inductance is ~6uH. 227 | // Our peak current is ~500mA 228 | // The average voltage is ~4V 229 | // 230 | // 4V / .000006H = 0.5A / 666666A/s = 750nS but turns out this was 231 | // pessemistic. 232 | // 233 | // Experimentation showed that the core of the transformer saturates in 234 | // about 1uS at 5V and 1.4uS at 3.3v. More specifically the relationhip 235 | // between our maximum on-time and vref-measured-by-vdd works out to about: 236 | // 237 | // max_on_time_slices = lastrefvdd / 4.44. 238 | // 239 | // There's a neat trick where you can divide by weird decimal divisors by 240 | // adding and subtracing terms. We perform this trick here and below 241 | // 242 | // 1÷(1÷4−1÷64−1÷128−1÷1024) is about equal to dividing by 4.43290 243 | // It can be simplified it for our purposes as: 1÷(1÷4−1÷64−1÷128) 244 | // 245 | // You can arbitrarily add and subtract terms to get as closed to your 246 | // desired target value as possbile. 247 | // 248 | // When we divide a value by powers-of-two, it becomes a bit shift. 249 | // 250 | // The bit shift and IIR adjustments can be made so that the compiler can 251 | // optimize out the addition there. 252 | // 253 | // The following code actually 254 | pwm_max_duty = 255 | (lastrefvdd>>(2+VDD_IIR)) 256 | - (lastrefvdd>>(6+VDD_IIR)) 257 | - (lastrefvdd>>(7+VDD_IIR)); 258 | #endif 259 | 260 | // target_feedback is in volts. 0..200 maps to the device voltage. 261 | // lastrefvdd = 0xF0 for 5V input. 262 | // lastrefvdd = 0x175 for 3.3v input. 263 | // 264 | // feedback_vdd = 408 for ~192V @ 5 265 | // feedback_vdd = 680 for ~192V @ 3.3 266 | // 267 | // 408 = 192 * 240 / x = (192*240)/408 = 112.941176471 268 | // 680 = 192 * 373 / x = (373*680)/192 = 105.317647059 269 | // 270 | // More tests showed this value across units is around 120. 271 | // 272 | // X This becomes our denominator. 273 | // feedback_vdd = (current vdd measurement * target voltage) / 120 274 | // 275 | // Further testing identified that the denominator is almost exactly 120. 276 | // We can perform a divison by 120 very quickly by 277 | // 278 | // feedback = numerator/128 + numerator/2048 279 | // 280 | // See note above about the constant division trick. 281 | // 282 | // Side-note: 283 | // 284 | // This is unintuitively slow becuase is because it uses a multiply. The 285 | // CH32V003 does not natively have a multiply instruction, If you use a * 286 | // it calls out to __mulsi3 in libgcc.a. 287 | 288 | // The following line of code is still *more* than fast enough but, to 289 | // write it out manually, we can get even faster! 290 | // 291 | // uint32_t numerator = (vdd * target_feedback); 292 | 293 | uint32_t numerator = FastMultiply( vdd, target_feedback ); 294 | 295 | feedback_vdd = 296 | (numerator>>(7+VDD_IIR-ADC_IIR)) + 297 | (numerator>>(11+VDD_IIR-ADC_IIR)); 298 | 299 | // Pet the watchdog. If we got here, things should be OK. 300 | WatchdogPet(); 301 | 302 | GPIOD->BSHR = (1<<(16+6)); 303 | } 304 | 305 | static void SetupTimer1() 306 | { 307 | // Enable Timer 1 308 | RCC->APB2PRSTR |= RCC_APB2Periph_TIM1; 309 | RCC->APB2PRSTR &= ~RCC_APB2Periph_TIM1; 310 | 311 | TIM1->PSC = 0x0000; // Prescalar to 0x0000 (so, 48MHz base clock) 312 | TIM1->ATRLR = PWM_PERIOD; 313 | TIM1->CCER = TIM_CC2E | TIM_CC2NP; // CH2 is control for FET. 314 | TIM1->CHCTLR1 = TIM_OC2M_2 | TIM_OC2M_1; 315 | 316 | TIM1->CH2CVR = 0; // Actual duty cycle (Off to begin with) 317 | 318 | // Setup TRGO for ADC. This makes is to the ADC will trigger on timer 319 | // reset, so we trigger at the same position every time relative to the 320 | // FET turning on. 321 | TIM1->CTLR2 = TIM_MMS_1; 322 | 323 | // Enable TIM1 outputs 324 | TIM1->BDTR = TIM_MOE; 325 | TIM1->CTLR1 = TIM_CEN; 326 | } 327 | 328 | static void SetupTimer2() 329 | { 330 | // Enable Timer 2 331 | RCC->APB1PRSTR |= RCC_APB1Periph_TIM2; 332 | RCC->APB1PRSTR &= ~RCC_APB1Periph_TIM2; 333 | 334 | // PD7 will be used as Timer 2, Channel 4 Configure timer 2 to enable this. 335 | //TIM2->SWEVGR = 0x0001; //TIM_PSCReloadMode_Immediate; 336 | 337 | TIM2->PSC = 0x0020; 338 | TIM2->ATRLR = 255; // 0..255 (So we can be 100% on) 339 | TIM2->CHCTLR2 = TIM_OC4M_2 | TIM_OC4M_1; 340 | TIM2->CCER = TIM_CC4E; 341 | TIM2->CH4CVR = 0; // Actual duty cycle (Off to begin with) 342 | 343 | // Enable TIM1 outputs 344 | TIM2->BDTR = TIM_MOE; 345 | TIM2->CTLR1 = TIM_CEN; 346 | } 347 | 348 | static void SetupADC() 349 | { 350 | // Configure ADC. 351 | // PD4 is analog input chl 7 352 | GPIOD->CFGLR &= ~(0xf<<(4*4)); // CNF = 00: Analog, MODE = 00: Input 353 | 354 | // Reset the ADC to init all regs 355 | RCC->APB2PRSTR |= RCC_APB2Periph_ADC1; 356 | RCC->APB2PRSTR &= ~RCC_APB2Periph_ADC1; 357 | 358 | // ADCCLK = 12 MHz => RCC_ADCPRE divide by 4 359 | RCC->CFGR0 &= ~RCC_ADCPRE; // Clear out the bis in case they were set 360 | RCC->CFGR0 |= RCC_ADCPRE_DIV4; // set it to 010xx for /4. 361 | 362 | // Set up single conversion on chl 7 363 | ADC1->RSQR1 = 0; 364 | ADC1->RSQR2 = 0; 365 | ADC1->RSQR3 = 7; // 0-9 for 8 ext inputs and two internals 366 | 367 | //Injection group is 8. NOTE: See note in 9.3.12 (ADC_ISQR) of TRM. The 368 | // group numbers is actually 4-group numbers. 369 | ADC1->ISQR = (8<<15) | (0<<20); 370 | 371 | // Sampling time for channels. Careful: This has PID tuning implications. 372 | // Note that with 3 and 3,the full loop (and injection) runs at 138kHz. 373 | ADC1->SAMPTR2 = (3<<(3*7)) | (3<<(3*8)); 374 | // 0:7 => 3/9/15/30/43/57/73/241 cycles 375 | // (4 == 43 cycles), (6 = 73 cycles) Note these are alrady /2, so 376 | // setting this to 73 cycles actually makes it wait 256 total cycles 377 | // @ 48MHz. 378 | 379 | // Turn on ADC and set rule group to sw trig 380 | // 0 = Use TRGO event for Timer 1 to fire ADC rule. 381 | ADC1->CTLR2 = ADC_ADON | ADC_JEXTTRIG | ADC_JEXTSEL | ADC_EXTTRIG; 382 | 383 | // Reset calibration 384 | ADC1->CTLR2 |= ADC_RSTCAL; 385 | while(ADC1->CTLR2 & ADC_RSTCAL); 386 | 387 | // Calibrate ADC 388 | ADC1->CTLR2 |= ADC_CAL; 389 | while(ADC1->CTLR2 & ADC_CAL); 390 | 391 | // enable the ADC Conversion Complete IRQ 392 | NVIC_EnableIRQ( ADC_IRQn ); 393 | 394 | // ADC_JEOCIE: Enable the End-of-conversion interrupt. 395 | // ADC_JDISCEN | ADC_JAUTO: Force injection after rule conversion. 396 | // ADC_SCAN: Allow scanning. 397 | ADC1->CTLR1 = ADC_JEOCIE | ADC_JDISCEN | ADC_SCAN | ADC_JAUTO; 398 | } 399 | 400 | // Apply a given output mask to the GPIO ports the nixie tubes are hooked into. 401 | static void ApplyOnMask( uint16_t onmask ) 402 | { 403 | GPIOD->OUTDR = (onmask >> 8) | 0x80; 404 | GPIOC->OUTDR = onmask & 0xff; 405 | } 406 | 407 | uint16_t GenOnMask( int segmenton ) 408 | { 409 | // Produce a bit mask with only one bit on. To indicate the IO to turn on 410 | // to light up a given segment. If segmenton == 0, then all IO are off. 411 | if( segmenton > 0 ) 412 | { 413 | segmenton--; 414 | if( segmenton < 8 ) 415 | return 1<> 16; 444 | if( feedback > ABSOLUTE_MAX_ADC_SET ) 445 | feedback = ABSOLUTE_MAX_ADC_SET; 446 | target_feedback = feedback; 447 | break; 448 | } 449 | case 2: 450 | { 451 | int segmenton = (dmdword>>16)&0x0f; 452 | 453 | fade_time0 = -1; 454 | fade_time1 = -1; 455 | fade_disp0 = GenOnMask(segmenton); 456 | fade_disp1 = 0; 457 | break; 458 | } 459 | case 3: 460 | { 461 | // Configure a fade. 462 | fade_disp0 = GenOnMask( ( dmdword >> 8 ) & 0xf ); 463 | fade_disp1 = GenOnMask( ( dmdword >> 12 ) & 0xf ); 464 | fade_time0 = ( dmdword >> 16 ) & 0xff; 465 | fade_time1 = ( dmdword >> 24 ) & 0xff; 466 | break; 467 | } 468 | case 4: 469 | { 470 | #ifdef ENABLE_TUNING 471 | // this is only for tuning. 472 | if( ( dmdword & 0xff00 ) == 0xaa00 ) 473 | { 474 | int period = (dmdword>>16)&0xff; 475 | if( period < 20 ) period = 20; 476 | PWM_PERIOD = period; 477 | TIM1->ATRLR = PWM_PERIOD; 478 | int max_duty = (dmdword>>24)&0xff; 479 | if( max_duty > period - 14 ) max_duty = period - 14; 480 | pwm_max_duty = max_duty; 481 | } 482 | #endif 483 | break; 484 | } 485 | case 5: 486 | { 487 | // Aux Neon Control 488 | TIM2->CH4CVR = dmdword>>16; 489 | } 490 | 491 | } 492 | 493 | // Write the status back to the host PC. Status is our VDD and our FB V 494 | *DMDATA0 = ((lastadc>>ADC_IIR) << 12) | ((lastrefvdd>>VDD_IIR) << 22); 495 | } 496 | 497 | static inline void WatchdogPet() 498 | { 499 | // Writing 0xaaaa into the ctlr prevents the watchdog from killing us. 500 | IWDG->CTLR = 0xAAAA; 501 | } 502 | 503 | static inline void WatchdogSetup() 504 | { 505 | // Setup watchdog. 506 | IWDG->CTLR = 0x5555; // Go into watchdog setup mode. 507 | while( IWDG->STATR & IWDG_PVU ); // Wait for PSCR to become recepitve. 508 | IWDG->PSCR = 1; // div LSI by 8 (4 seems unreliable) 509 | IWDG->RLDR = 0xFFF; // reload watchdog, not important don't need to check. 510 | IWDG->CTLR = 0xCCCC; // commit registers. 511 | WatchdogPet(); 512 | } 513 | 514 | static inline void AdvanceFadePlace() 515 | { 516 | static uint32_t lastmask = 0; 517 | 518 | // Causes us to cycle through all 256 sequence points every 1.5ms. 519 | uint32_t fadepos = (SysTick->CNT >> 5) & 0xff; 520 | 521 | // We want to glow the LEDs with a chopping period of less, so we 522 | // "rotate" the bits. This has the effect of making the primary 523 | // switching frequency for the tubes much higher, but, at the same time 524 | // also jittering the edges in time so you can get a full 8-bit fade. 525 | // You can rotate more or less to control the periodicity. 526 | 527 | // With this scramble, the period scramble is about 93us. 528 | fadepos = (fadepos << 4) | ( fadepos >> 4); 529 | 530 | uint32_t mask = HandleFade( fadepos ); 531 | if( mask != lastmask ) 532 | { 533 | if( lastmask ) 534 | { 535 | // Make sure we have a short gap with nothing on. 536 | ApplyOnMask( 0 ); 537 | Delay_Us( 3 ); 538 | } 539 | ApplyOnMask( mask ); 540 | lastmask = mask; 541 | } 542 | } 543 | 544 | int main() 545 | { 546 | // Configure a watchdog timer so if the chip goes crazy it will reset. 547 | WatchdogSetup(); 548 | 549 | // Use internall RC oscillator + 2xPLL to generate 48 MHz system clock. 550 | SystemInit48HSI(); 551 | 552 | // For the ability to printf() if we want. 553 | SetupDebugPrintf(); 554 | 555 | // Pet watchdog for the rest of startup. 556 | WatchdogPet(); 557 | 558 | // Enable Peripherals 559 | RCC->APB2PCENR |= RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOC | 560 | RCC_APB2Periph_GPIOA | RCC_APB2Periph_TIM1 | RCC_APB2Periph_ADC1 | 561 | RCC_APB2Periph_AFIO; 562 | 563 | RCC->APB1PCENR = RCC_APB1Periph_TIM2; 564 | 565 | // I'm paranoid - let's make sure all tube cathodes are high-Z. 566 | ApplyOnMask( 0 ); 567 | 568 | GPIOD->CFGLR = 569 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*6) | // GPIO D6 Debug 570 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP_AF)<<(4*7) | // DIG_AUX (TIM2CH4) 571 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*3) | // DIG_9 572 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*2) | // DIG_8 573 | (GPIO_Speed_10MHz | GPIO_CNF_IN_FLOATING)<<(4*1) | // PGM Floats. 574 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*0); // DIG_DOT 575 | 576 | GPIOC->CFGLR = 577 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*0) | // DIG_0 578 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*1) | // DIG_1 579 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*2) | // DIG_2 580 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*3) | // DIG_3 581 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*4) | // DIG_4 582 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*5) | // DIG_5 583 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*6) | // DIG_6 584 | (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*7); // DIG_7 585 | 586 | 587 | GPIOA->CFGLR = 588 | (GPIO_Speed_50MHz | GPIO_CNF_OUT_PP_AF)<<(4*1); //FLYBACK (T1CH2) 589 | 590 | SetupADC(); 591 | SetupTimer1(); 592 | SetupTimer2(); 593 | 594 | *DMDATA0 = 0; 595 | 596 | target_feedback = 0; 597 | 598 | // Cause system timer to run and reload when it hits CMP and HCLK/8. 599 | // Also, don't stop at comparison value. 600 | SysTick->CTLR = 1; 601 | 602 | while(1) 603 | { 604 | uint32_t dmdword = *DMDATA0; 605 | if( (dmdword & 0xf0) == 0x40 ) 606 | { 607 | // I think there is a compiler bug here. For some reason if I put 608 | // the code in this function right here, it doesn't work right. 609 | // so I encapsulated the code in a function. 610 | // 611 | // This function handles commands we get over the programming 612 | // interface. Like "set HV bus" or "set this digit on." 613 | HandleCommand( dmdword ); 614 | } 615 | 616 | AdvanceFadePlace(); 617 | 618 | } 619 | } 620 | 621 | -------------------------------------------------------------------------------- /firmware/nixitest1/optionbytes/Makefile: -------------------------------------------------------------------------------- 1 | all : flash monitor 2 | TARGET:=optionbytes 3 | 4 | CFLAGS+=-DTINYVECTOR 5 | 6 | CH32V003FUN:=../../ch32v003fun/ch32v003fun 7 | MINICHLINK:=../../ch32v003fun/minichlink 8 | 9 | include ../../ch32v003fun/ch32v003fun/ch32v003fun.mk 10 | 11 | flash : cv_flash 12 | clean : cv_clean 13 | 14 | -------------------------------------------------------------------------------- /firmware/nixitest1/optionbytes/optionbytes.c: -------------------------------------------------------------------------------- 1 | /* This shows how to use the option bytes. I.e. how do you disable NRST? 2 | WARNING Portions of this code are under the following copyright. 3 | */ 4 | /********************************** (C) COPYRIGHT ******************************* 5 | * File Name : ch32v00x_flash.c 6 | * Author : WCH 7 | * Version : V1.0.0 8 | * Date : 2022/08/08 9 | * Description : This file provides all the FLASH firmware functions. 10 | ********************************************************************************* 11 | * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. 12 | * Attention: This software (modified or not) and binary are used for 13 | * microcontroller manufactured by Nanjing Qinheng Microelectronics. 14 | *******************************************************************************/ 15 | 16 | // Could be defined here, or in the processor defines. 17 | #define SYSTEM_CORE_CLOCK 48000000 18 | 19 | 20 | 21 | #include "ch32v003fun.h" 22 | #include 23 | 24 | 25 | 26 | 27 | /* Notes from flash document: 28 | * @param OB_IWDG - Selects the IWDG mode 29 | * OB_IWDG_SW - Software IWDG selected 30 | * OB_IWDG_HW - Hardware IWDG selected 31 | * OB_STOP - Reset event when entering STOP mode. 32 | * OB_STOP_NoRST - No reset generated when entering in STOP 33 | * OB_STOP_RST - Reset generated when entering in STOP 34 | * OB_STDBY - Reset event when entering Standby mode. 35 | * OB_STDBY_NoRST - No reset generated when entering in STANDBY 36 | * OB_STDBY_RST - Reset generated when entering in STANDBY 37 | * OB_RST - Selects the reset IO mode and Ignore delay time 38 | * OB_RST_NoEN - Reset IO disable (PD7) 39 | * OB_RST_EN_DT12ms - Reset IO enable (PD7) and Ignore delay time 12ms 40 | * OB_RST_EN_DT1ms - Reset IO enable (PD7) and Ignore delay time 1ms 41 | * OB_RST_EN_DT128ms - Reset IO enable (PD7) and Ignore delay time 128ms 42 | */ 43 | uint16_t OB_STOP = OB_STOP_NoRST; 44 | uint16_t OB_IWDG = OB_IWDG_SW; 45 | uint16_t OB_STDBY = OB_STDBY_NoRST; 46 | uint16_t OB_RST = OB_RST_NoEN; 47 | 48 | 49 | 50 | 51 | uint32_t count; 52 | 53 | int FLASH_WaitForLastOperation(uint32_t Timeout); 54 | 55 | int main() 56 | { 57 | SystemInit48HSI(); 58 | SetupDebugPrintf(); 59 | 60 | FLASH->OBKEYR = FLASH_KEY1; 61 | FLASH->OBKEYR = FLASH_KEY2; 62 | FLASH->KEYR = FLASH_KEY1; 63 | FLASH->KEYR = FLASH_KEY2; 64 | FLASH->MODEKEYR = FLASH_KEY1; 65 | FLASH->MODEKEYR = FLASH_KEY2; 66 | 67 | printf( "Option bytes started as:%04x\n", OB->USER ); 68 | 69 | uint16_t rdptmp = RDP_Key; 70 | 71 | 72 | int status = FLASH_WaitForLastOperation(EraseTimeout); 73 | if(status == FLASH_COMPLETE) 74 | { 75 | FLASH->OBKEYR = FLASH_KEY1; 76 | FLASH->OBKEYR = FLASH_KEY2; 77 | 78 | FLASH->CTLR |= CR_OPTER_Set; 79 | FLASH->CTLR |= CR_STRT_Set; 80 | status = FLASH_WaitForLastOperation(EraseTimeout); 81 | 82 | if(status == FLASH_COMPLETE) 83 | { 84 | FLASH->CTLR &= CR_OPTER_Reset; 85 | FLASH->CTLR |= CR_OPTPG_Set; 86 | OB->RDPR = (uint16_t)rdptmp; 87 | status = FLASH_WaitForLastOperation(ProgramTimeout); 88 | 89 | if(status != FLASH_TIMEOUT) 90 | { 91 | FLASH->CTLR &= CR_OPTPG_Reset; 92 | } 93 | } 94 | else 95 | { 96 | if(status != FLASH_TIMEOUT) 97 | { 98 | FLASH->CTLR &= CR_OPTPG_Reset; 99 | } 100 | } 101 | } 102 | 103 | 104 | printf( "After Clear:%04x\n", OB->USER ); 105 | 106 | FLASH->OBKEYR = FLASH_KEY1; 107 | FLASH->OBKEYR = FLASH_KEY2; 108 | status = FLASH_WaitForLastOperation(10000); 109 | 110 | if(status == FLASH_COMPLETE) 111 | { 112 | FLASH->CTLR |= CR_OPTPG_Set; 113 | OB->USER = OB_IWDG | (uint16_t)(OB_STOP | (uint16_t)(OB_STDBY | (uint16_t)(OB_RST | (uint16_t)0xE0))); 114 | 115 | status = FLASH_WaitForLastOperation(10000); 116 | if(status != FLASH_TIMEOUT) 117 | { 118 | FLASH->CTLR &= CR_OPTPG_Reset; 119 | } 120 | } 121 | 122 | printf( "After Write:%04x\n", OB->USER ); 123 | printf( "Done\n" ); 124 | 125 | while(1); 126 | } 127 | 128 | 129 | int FLASH_GetBank1Status(void) 130 | { 131 | int flashstatus = FLASH_COMPLETE; 132 | 133 | if((FLASH->STATR & FLASH_FLAG_BANK1_BSY) == FLASH_FLAG_BSY) 134 | { 135 | flashstatus = FLASH_BUSY; 136 | } 137 | else 138 | { 139 | if((FLASH->STATR & FLASH_FLAG_BANK1_WRPRTERR) != 0) 140 | { 141 | flashstatus = FLASH_ERROR_WRP; 142 | } 143 | else 144 | { 145 | flashstatus = FLASH_COMPLETE; 146 | } 147 | } 148 | return flashstatus; 149 | } 150 | 151 | 152 | int FLASH_WaitForLastOperation(uint32_t Timeout) 153 | { 154 | int status = FLASH_COMPLETE; 155 | 156 | status = FLASH_GetBank1Status(); 157 | while((status == FLASH_BUSY) && (Timeout != 0x00)) 158 | { 159 | status = FLASH_GetBank1Status(); 160 | Timeout--; 161 | } 162 | if(Timeout == 0x00) 163 | { 164 | status = FLASH_TIMEOUT; 165 | } 166 | return status; 167 | } 168 | 169 | -------------------------------------------------------------------------------- /firmware/nixitest1/testnix/Makefile: -------------------------------------------------------------------------------- 1 | all : testnix 2 | 3 | testnix : testnix.c 4 | gcc -o $@ $^ ../../ch32v003fun/minichlink/minichlink.so -lX11 -DMINICHLINK_AS_LIBRARY 5 | 6 | clean : 7 | rm -rf testnix 8 | -------------------------------------------------------------------------------- /firmware/nixitest1/testnix/testnix.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define CNFG_IMPLEMENTATION 4 | #include "rawdraw_sf.h" 5 | 6 | #include "../../ch32v003fun/minichlink/minichlink.h" 7 | struct MiniChlinkFunctions * MCFO; 8 | 9 | //#define ENABLE_TUNING 10 | 11 | int targetnum = 0; 12 | int debugregs = 0; 13 | int lastsettarget = -1; 14 | #define VOLTAGE_SCALE 2.01 15 | 16 | const char * targdisp[] = { "D", "F", " ", "0", "9", "8", "7", "6", "5", "4", "3", "2", "1", ".", "N" }; 17 | void HandleKey( int keycode, int bDown ) 18 | { 19 | if( bDown ) 20 | { 21 | switch( keycode ) 22 | { 23 | case '~': case '`': case 192: targetnum = 0; break; 24 | case '1': targetnum = 10; break; 25 | case '2': targetnum = 9; break; 26 | case '3': targetnum = 8; break; 27 | case '4': targetnum = 7; break; 28 | case '5': targetnum = 6; break; 29 | case '6': targetnum = 5; break; 30 | case '7': targetnum = 4; break; 31 | case '8': targetnum = 3; break; 32 | case '9': targetnum = 2; break; 33 | case '0': targetnum = 1; break; 34 | case '-': case '_': case 189: targetnum = 11; break; 35 | case '=': case '+': targetnum = 12; break; 36 | case 'f': case 'F': targetnum = -1; break; 37 | case 'd': case 'D': targetnum = -2; break; 38 | case 'R': case 'r': debugregs = !debugregs; break; 39 | } 40 | } 41 | } 42 | 43 | int do_set = 0; 44 | int sety = 0, setx = 0; 45 | void HandleButton( int x, int y, int button, int bDown ) { if( bDown ) setx = x; } 46 | void HandleMotion( int x, int y, int mask ) { sety = y; do_set = mask; } 47 | void HandleDestroy() { } 48 | 49 | #define VOLTHISTSIZE 2048 50 | float volthist[VOLTHISTSIZE]; 51 | float volthistvdd[VOLTHISTSIZE]; 52 | int volthisthead = 0; 53 | 54 | int main() 55 | { 56 | char cts[128]; 57 | void * dev = MiniCHLinkInitAsDLL( &MCFO ); 58 | if( !dev ) 59 | { 60 | fprintf( stderr, "Error: Couldn't find programmer\n" ); 61 | return -9; 62 | } 63 | 64 | MCFO->SetupInterface( dev ); 65 | 66 | if( MCFO->HaltMode ) MCFO->HaltMode( dev, 0 ); 67 | if( MCFO->Control5v ) MCFO->Control5v( dev, 1 ); 68 | if( MCFO->Control3v3 ) MCFO->Control3v3( dev, 1 ); 69 | if( MCFO->HaltMode ) MCFO->HaltMode( dev, 2 ); 70 | 71 | MCFO->WriteReg32( dev, DMABSTRACTAUTO, 0 ); 72 | 73 | printf( "DEV: %p\n", dev ); 74 | CNFGSetup( "nixitest1 debug app", 640, 570 ); 75 | while(CNFGHandleInput()) 76 | { 77 | const uint32_t GLOW = 0xFFD010FF; 78 | const uint32_t GLOWDIM = 0x806008FF; 79 | const uint32_t BLUEGLOW = 0x2080d0ff; 80 | 81 | short w, h; 82 | int x, y; 83 | CNFGClearFrame(); 84 | CNFGGetDimensions( &w, &h ); 85 | 86 | static int set_period = 96; 87 | static int set_max_duty = 48; 88 | static int last_set_v = 0; 89 | static int aux_value = 0; 90 | { 91 | CNFGColor( 0x303030ff ); 92 | CNFGTackSegment( w-100, 45, w-100, h ); 93 | CNFGTackSegment( w-200, 45, w-200, h ); 94 | #ifdef ENABLE_TUNING 95 | CNFGTackSegment( w-300, 45, w-200, h ); 96 | CNFGTackSegment( w-400, 45, w-300, h ); 97 | #endif 98 | CNFGColor( 0xD0D0D0FF ); 99 | CNFGPenX = w-100+2; CNFGPenY = 47; sprintf( cts, "VTG %d", last_set_v ); CNFGDrawText( cts, 2 ); 100 | CNFGPenX = w-200+2; CNFGPenY = 47; sprintf( cts, "AUX %d", aux_value ); CNFGDrawText( cts, 2 ); 101 | #ifdef ENABLE_TUNING 102 | CNFGPenX = w-300+2; CNFGPenY = 47; sprintf( cts, "Per %d", set_period ); CNFGDrawText( cts, 2 ); 103 | CNFGPenX = w-400+2; CNFGPenY = 47; sprintf( cts, "Duty %d", set_max_duty ); CNFGDrawText( cts, 2 ); 104 | #endif 105 | } 106 | 107 | uint32_t rmask = 0; 108 | 109 | if( do_set ) 110 | { 111 | do_set = 0; 112 | float set_v = (450 - sety)/2; 113 | if( setx > w - 100 ) 114 | { 115 | if( set_v >= 0 && set_v < 220 ) 116 | { 117 | last_set_v = (uint32_t)(set_v); 118 | rmask = ( last_set_v << 16 ) | 0x41; 119 | } 120 | } 121 | else if( setx > w - 200 ) 122 | { 123 | if( set_v >= 0 ) 124 | { 125 | aux_value = set_v; 126 | rmask = (aux_value<<16) | 0xaa45; 127 | } 128 | } 129 | #ifdef ENABLE_TUNING 130 | else if( setx > w - 300 ) 131 | { 132 | set_period = set_v; 133 | rmask = (set_period<<16) | (set_max_duty<<24) | 0xaa44; 134 | } 135 | else if( setx > w - 400 ) 136 | { 137 | set_max_duty = set_v; 138 | rmask = (set_period<<16) | (set_max_duty<<24) | 0xaa44; 139 | } 140 | #endif 141 | } 142 | else if( targetnum == -1 ) 143 | { 144 | // Fade Demo 145 | static int fadeplace; 146 | fadeplace+=1; 147 | int fadegroup = (fadeplace)>>8; 148 | int timeinfade = fadeplace&0xff; 149 | int time0 = timeinfade; 150 | int time1 = 255; 151 | int disp0 = 10-((fadegroup+1)%11); 152 | int disp1 = 10-((fadegroup+0)%11); 153 | rmask = (time1<<24)|(time0<<16)|(disp1<<12)|(disp0<<8)|0x43; 154 | lastsettarget = targetnum; 155 | } 156 | else if( lastsettarget != targetnum ) 157 | { 158 | if( targetnum == -2 ) 159 | { 160 | static int fadeplace; 161 | fadeplace+=1; 162 | int fadegroup = (fadeplace)>>8; 163 | int timeinfade = fadeplace&0xff; 164 | int time0 = 60; 165 | int time1 = 120; 166 | int disp0 = 3; 167 | int disp1 = 4; 168 | rmask = (time1<<24)|(time0<<16)|(disp1<<12)|(disp0<<8)|0x43; 169 | lastsettarget = targetnum; 170 | } 171 | else if( targetnum == -1 ) 172 | { 173 | // Do nothing 174 | } 175 | else 176 | { 177 | rmask = 0x00000042 | (targetnum<<16); 178 | } 179 | lastsettarget = targetnum; 180 | } 181 | else 182 | { 183 | rmask = 0x00000040; 184 | MCFO->WriteReg32( dev, DMDATA0, 0x00000040 ); 185 | } 186 | 187 | MCFO->WriteReg32( dev, DMDATA0, rmask ); 188 | 189 | uint32_t status = 0xffffffff; 190 | int r; 191 | 192 | if( debugregs ) 193 | { 194 | #define MONREGS 20 195 | uint32_t monitor_regs[MONREGS] = { 196 | DMDATA0, DMDATA1, DMCONTROL, DMSTATUS, 197 | DMHARTINFO, DMABSTRACTCS, DMCOMMAND, DMABSTRACTAUTO, 198 | DMPROGBUF0, DMPROGBUF1, DMPROGBUF2, DMPROGBUF3, 199 | DMPROGBUF4, DMPROGBUF5, DMPROGBUF6, DMPROGBUF7, 200 | DMCPBR, DMCFGR, DMSHDWCFGR, 0x06 }; 201 | const char * monitor_names[MONREGS] = { 202 | "data0", "data1", "dmcontrol", "dmstatus", 203 | "hartinfo", "abstractcs", "command", "abstractauto", 204 | "progbuf0", "progbuf1", "progbuf2", "progbuf3", 205 | "progbuf4", "progbuf5", "progbuf6", "progbuf7", 206 | "cpbr", "cfgr", "shdwcfgr", "0x06" }; 207 | static uint32_t regv[MONREGS]; 208 | static uint32_t lastr[MONREGS]; 209 | static int lastreg; 210 | lastreg++; 211 | if( lastreg >= MONREGS ) lastreg = 0; 212 | 213 | lastr[lastreg] = MCFO->ReadReg32( dev, monitor_regs[lastreg], ®v[lastreg] ); 214 | int i; 215 | for( i = 0; i < MONREGS; i++ ) 216 | { 217 | CNFGColor( 0xc0c0c0ff ); 218 | CNFGPenX = 1 + (i%2) * 200; 219 | CNFGPenY = (460+(i/2)*10); 220 | sprintf( cts, "%12s: %08x%s", monitor_names[i], regv[i], lastr[i]?" ERROR":"" ); 221 | CNFGDrawText( cts, 2 ); 222 | } 223 | } 224 | else 225 | { 226 | CNFGColor( 0xc0c0c0ff ); 227 | CNFGPenX = 1; 228 | CNFGPenY = 460; 229 | CNFGDrawText( "Press R to enable reg debug.", 2 ); 230 | } 231 | 232 | int timeout; 233 | timeout = 0; 234 | const int maxtimeout = 30; 235 | retry: 236 | status = 0xffffffc0; 237 | r = MCFO->ReadReg32( dev, DMDATA0, &status ); 238 | 239 | if( ( ( status & 0xc0 ) == 0x40 || status == 0 || status == 0xffffffff ) && timeout++ < maxtimeout ) goto retry; 240 | if( r && timeout++ < maxtimeout ) { printf( "R: %d\n", r ); status = 0; goto retry; } 241 | 242 | if( timeout >= maxtimeout ) 243 | { 244 | CNFGColor( 0xc0c0c0ff ); 245 | CNFGPenX = 200; 246 | CNFGPenY = 199; 247 | CNFGDrawText( "Timeout on command.", 5 ); 248 | } 249 | 250 | if( status == 0xffffffff || status == 0x00000000 ) 251 | { 252 | MCFO->SetupInterface( dev ); 253 | if( MCFO->HaltMode ) MCFO->HaltMode( dev, 2 ); 254 | } 255 | else 256 | { 257 | CNFGColor( 0xc0c0c0ff ); 258 | CNFGPenX = 590; 259 | CNFGPenY = 1; 260 | sprintf( cts, "%08x", status ); 261 | CNFGDrawText( cts, 2 ); 262 | 263 | float voltvdd = 1.20/(((status>>22)&0x3ff)/1023.0f); // vref = 2.2v 264 | float voltage = ((((float)((status>>12)&0x3ff))/1023.0f)*101.0)*voltvdd; //101 because it's 10k + 1M 265 | // Measured @ 176 reported here, but 180 in reality if ref is 1.2. But 1.21 fixes it. 266 | volthist[volthisthead] = voltage; 267 | volthistvdd[volthisthead] = voltvdd; 268 | volthisthead = (volthisthead + 1) % VOLTHISTSIZE; 269 | CNFGColor( (voltage > 198)?0xff0000ff:GLOW ); 270 | CNFGPenX = 1; 271 | CNFGPenY = 1; 272 | sprintf( cts, "HV Line: %3.0f V\nRStatus: %d", voltage, r ); 273 | CNFGDrawText( cts, 4 ); 274 | 275 | for( y = 0; y < 2; y++ ) for( x = 0; x < 2; x++ ) 276 | { 277 | CNFGPenX = 200+x; 278 | CNFGPenY = 1+y; 279 | CNFGDrawText( targdisp[targetnum+2], 10 ); 280 | } 281 | 282 | CNFGColor( BLUEGLOW ); 283 | CNFGPenX = 300; 284 | CNFGPenY = 1; 285 | sprintf( cts, "VDD: %3.3f V\n", voltvdd ); 286 | CNFGDrawText( cts, 4 ); 287 | 288 | int i; 289 | 290 | CNFGColor( 0xff0000ff ); 291 | CNFGTackSegment( 0, 450-200*2-6, w, 450-200*2-6 ); 292 | CNFGPenX = w - 250; CNFGPenY = 450-200*2-10-6; 293 | CNFGDrawText( "WARNING: DO NOT EXCEED THIS LINE (200)", 2 ); 294 | 295 | for( i = 0; i < 10; i++ ) 296 | { 297 | CNFGColor( (i == 0 )?0xD0D0D0FF:0x303030ff ); 298 | CNFGPenX = 1; 299 | CNFGPenY = 450 - 10 - i * 40; 300 | sprintf( cts, "%d volts", i * 20 ); 301 | CNFGDrawText( cts, 2 ); 302 | CNFGTackSegment( 0,450 - i * 40, w, 450 - i * 40 ); 303 | } 304 | 305 | { 306 | CNFGColor( BLUEGLOW ); 307 | int vhp = (volthisthead - 1 + VOLTHISTSIZE*100)%VOLTHISTSIZE; 308 | float vl = voltvdd*10; 309 | for( i = 0; i < w*2; i++ ) 310 | { 311 | float v = volthistvdd[vhp]*10; 312 | CNFGTackSegment( i/2, 450 - vl*2, (i+1)/2, 450 - v*2 ); 313 | vhp = (vhp - 1 + VOLTHISTSIZE*100)%VOLTHISTSIZE; 314 | //printf( "%f\n", v ); 315 | vl = v; 316 | } 317 | } 318 | 319 | int vhp = (volthisthead - 1 + VOLTHISTSIZE*100)%VOLTHISTSIZE; 320 | float vl = voltage; 321 | CNFGColor( GLOW ); 322 | 323 | for( i = 0; i < w*2; i++ ) 324 | { 325 | float v = volthist[vhp]; 326 | CNFGTackSegment( i/2, 450 - vl*2, (i+1)/2, 450 - v*2 ); 327 | vhp = (vhp - 1 + VOLTHISTSIZE*100)%VOLTHISTSIZE; 328 | //printf( "%f\n", v ); 329 | vl = v; 330 | } 331 | } 332 | 333 | CNFGSwapBuffers(); 334 | } 335 | 336 | return 0; 337 | } 338 | 339 | -------------------------------------------------------------------------------- /firmware/nixitest1/testnix/winbuild.bat: -------------------------------------------------------------------------------- 1 | copy ..\..\ch32v003fun\minichlink\libusb-1.0.dll . 2 | tcc -I..\..\ch32v003fun\minichlink\ -lkernel32 -lgdi32 -luser32 testnix.c -DMINICHLINK_AS_LIBRARY ..\..\ch32v003fun\minichlink\minichlink.c ..\..\ch32v003fun\minichlink\pgm-esp32s2-ch32xx.c ..\..\ch32v003fun\minichlink\pgm-wch-linke.c ..\..\ch32v003fun\minichlink\nhc-link042.c -lsetupapi libusb-1.0.dll -------------------------------------------------------------------------------- /nixitest1/nixitest1-revA.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnlohr/cnixxi/0eb3829d752086c7935824d2ac40175e9630bbce/nixitest1/nixitest1-revA.zip -------------------------------------------------------------------------------- /nixitest1/nixitest1-revB.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnlohr/cnixxi/0eb3829d752086c7935824d2ac40175e9630bbce/nixitest1/nixitest1-revB.zip -------------------------------------------------------------------------------- /nixitest1/nixitest1.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 | 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": "ffffeff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "nixitest1.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /nixitest1/nixitest1.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.9, 37 | "height": 2.25, 38 | "width": 1.75 39 | }, 40 | "silk_line_width": 0.09999999999999999, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 0.7, 43 | "silk_text_size_v": 0.7, 44 | "silk_text_thickness": 0.09999999999999999, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.508 49 | } 50 | }, 51 | "diff_pair_dimensions": [ 52 | { 53 | "gap": 0.0, 54 | "via_gap": 0.0, 55 | "width": 0.0 56 | } 57 | ], 58 | "drc_exclusions": [], 59 | "meta": { 60 | "version": 2 61 | }, 62 | "rule_severities": { 63 | "annular_width": "error", 64 | "clearance": "error", 65 | "copper_edge_clearance": "error", 66 | "courtyards_overlap": "error", 67 | "diff_pair_gap_out_of_range": "error", 68 | "diff_pair_uncoupled_length_too_long": "error", 69 | "drill_out_of_range": "error", 70 | "duplicate_footprints": "warning", 71 | "extra_footprint": "warning", 72 | "footprint_type_mismatch": "error", 73 | "hole_clearance": "error", 74 | "hole_near_hole": "error", 75 | "invalid_outline": "error", 76 | "item_on_disabled_layer": "error", 77 | "items_not_allowed": "error", 78 | "length_out_of_range": "error", 79 | "malformed_courtyard": "error", 80 | "microvia_drill_out_of_range": "error", 81 | "missing_courtyard": "ignore", 82 | "missing_footprint": "warning", 83 | "net_conflict": "warning", 84 | "npth_inside_courtyard": "ignore", 85 | "padstack": "error", 86 | "pth_inside_courtyard": "ignore", 87 | "shorting_items": "error", 88 | "silk_over_copper": "warning", 89 | "silk_overlap": "warning", 90 | "skew_out_of_range": "error", 91 | "through_hole_pad_without_hole": "error", 92 | "too_many_vias": "error", 93 | "track_dangling": "warning", 94 | "track_width": "error", 95 | "tracks_crossing": "error", 96 | "unconnected_items": "error", 97 | "unresolved_variable": "error", 98 | "via_dangling": "warning", 99 | "zone_has_empty_net": "error", 100 | "zones_intersect": "error" 101 | }, 102 | "rules": { 103 | "allow_blind_buried_vias": false, 104 | "allow_microvias": false, 105 | "max_error": 0.005, 106 | "min_clearance": 0.0, 107 | "min_copper_edge_clearance": 0.0, 108 | "min_hole_clearance": 0.25, 109 | "min_hole_to_hole": 0.25, 110 | "min_microvia_diameter": 0.19999999999999998, 111 | "min_microvia_drill": 0.09999999999999999, 112 | "min_silk_clearance": 0.0, 113 | "min_through_hole_diameter": 0.19999999999999998, 114 | "min_track_width": 0.19999999999999998, 115 | "min_via_annular_width": 0.049999999999999996, 116 | "min_via_diameter": 0.39999999999999997, 117 | "solder_mask_clearance": 0.0, 118 | "solder_mask_min_width": 0.0, 119 | "use_height_for_length_calcs": true 120 | }, 121 | "track_widths": [ 122 | 0.0 123 | ], 124 | "via_dimensions": [ 125 | { 126 | "diameter": 0.0, 127 | "drill": 0.0 128 | } 129 | ], 130 | "zones_allow_external_fillets": false, 131 | "zones_use_no_outline": true 132 | }, 133 | "layer_presets": [] 134 | }, 135 | "boards": [], 136 | "cvpcb": { 137 | "equivalence_files": [] 138 | }, 139 | "erc": { 140 | "erc_exclusions": [], 141 | "meta": { 142 | "version": 0 143 | }, 144 | "pin_map": [ 145 | [ 146 | 0, 147 | 0, 148 | 0, 149 | 0, 150 | 0, 151 | 0, 152 | 1, 153 | 0, 154 | 0, 155 | 0, 156 | 0, 157 | 2 158 | ], 159 | [ 160 | 0, 161 | 2, 162 | 0, 163 | 1, 164 | 0, 165 | 0, 166 | 1, 167 | 0, 168 | 2, 169 | 2, 170 | 2, 171 | 2 172 | ], 173 | [ 174 | 0, 175 | 0, 176 | 0, 177 | 0, 178 | 0, 179 | 0, 180 | 1, 181 | 0, 182 | 1, 183 | 0, 184 | 1, 185 | 2 186 | ], 187 | [ 188 | 0, 189 | 1, 190 | 0, 191 | 0, 192 | 0, 193 | 0, 194 | 1, 195 | 1, 196 | 2, 197 | 1, 198 | 1, 199 | 2 200 | ], 201 | [ 202 | 0, 203 | 0, 204 | 0, 205 | 0, 206 | 0, 207 | 0, 208 | 1, 209 | 0, 210 | 0, 211 | 0, 212 | 0, 213 | 2 214 | ], 215 | [ 216 | 0, 217 | 0, 218 | 0, 219 | 0, 220 | 0, 221 | 0, 222 | 0, 223 | 0, 224 | 0, 225 | 0, 226 | 0, 227 | 2 228 | ], 229 | [ 230 | 1, 231 | 1, 232 | 1, 233 | 1, 234 | 1, 235 | 0, 236 | 1, 237 | 1, 238 | 1, 239 | 1, 240 | 1, 241 | 2 242 | ], 243 | [ 244 | 0, 245 | 0, 246 | 0, 247 | 1, 248 | 0, 249 | 0, 250 | 1, 251 | 0, 252 | 0, 253 | 0, 254 | 0, 255 | 2 256 | ], 257 | [ 258 | 0, 259 | 2, 260 | 1, 261 | 2, 262 | 0, 263 | 0, 264 | 1, 265 | 0, 266 | 2, 267 | 2, 268 | 2, 269 | 2 270 | ], 271 | [ 272 | 0, 273 | 2, 274 | 0, 275 | 1, 276 | 0, 277 | 0, 278 | 1, 279 | 0, 280 | 2, 281 | 0, 282 | 0, 283 | 2 284 | ], 285 | [ 286 | 0, 287 | 2, 288 | 1, 289 | 1, 290 | 0, 291 | 0, 292 | 1, 293 | 0, 294 | 2, 295 | 0, 296 | 0, 297 | 2 298 | ], 299 | [ 300 | 2, 301 | 2, 302 | 2, 303 | 2, 304 | 2, 305 | 2, 306 | 2, 307 | 2, 308 | 2, 309 | 2, 310 | 2, 311 | 2 312 | ] 313 | ], 314 | "rule_severities": { 315 | "bus_definition_conflict": "error", 316 | "bus_entry_needed": "error", 317 | "bus_label_syntax": "error", 318 | "bus_to_bus_conflict": "error", 319 | "bus_to_net_conflict": "error", 320 | "different_unit_footprint": "error", 321 | "different_unit_net": "error", 322 | "duplicate_reference": "error", 323 | "duplicate_sheet_names": "error", 324 | "extra_units": "error", 325 | "global_label_dangling": "warning", 326 | "hier_label_mismatch": "error", 327 | "label_dangling": "error", 328 | "lib_symbol_issues": "warning", 329 | "multiple_net_names": "warning", 330 | "net_not_bus_member": "warning", 331 | "no_connect_connected": "warning", 332 | "no_connect_dangling": "warning", 333 | "pin_not_connected": "error", 334 | "pin_not_driven": "error", 335 | "pin_to_pin": "warning", 336 | "power_pin_not_driven": "error", 337 | "similar_labels": "warning", 338 | "unannotated": "error", 339 | "unit_value_mismatch": "error", 340 | "unresolved_variable": "error", 341 | "wire_dangling": "error" 342 | } 343 | }, 344 | "libraries": { 345 | "pinned_footprint_libs": [], 346 | "pinned_symbol_libs": [] 347 | }, 348 | "meta": { 349 | "filename": "nixitest1.kicad_pro", 350 | "version": 1 351 | }, 352 | "net_settings": { 353 | "classes": [ 354 | { 355 | "bus_width": 12.0, 356 | "clearance": 0.15, 357 | "diff_pair_gap": 0.25, 358 | "diff_pair_via_gap": 0.25, 359 | "diff_pair_width": 0.2, 360 | "line_style": 0, 361 | "microvia_diameter": 0.2, 362 | "microvia_drill": 0.1, 363 | "name": "Default", 364 | "pcb_color": "rgba(0, 0, 0, 0.000)", 365 | "schematic_color": "rgba(0, 0, 0, 0.000)", 366 | "track_width": 0.2, 367 | "via_diameter": 0.5, 368 | "via_drill": 0.25, 369 | "wire_width": 6.0 370 | }, 371 | { 372 | "bus_width": 12.0, 373 | "clearance": 0.15, 374 | "diff_pair_gap": 0.25, 375 | "diff_pair_via_gap": 0.25, 376 | "diff_pair_width": 0.2, 377 | "line_style": 0, 378 | "microvia_diameter": 0.2, 379 | "microvia_drill": 0.1, 380 | "name": "Thicc", 381 | "nets": [ 382 | "+5V" 383 | ], 384 | "pcb_color": "rgba(0, 0, 0, 0.000)", 385 | "schematic_color": "rgba(0, 0, 0, 0.000)", 386 | "track_width": 0.3, 387 | "via_diameter": 0.5, 388 | "via_drill": 0.25, 389 | "wire_width": 6.0 390 | } 391 | ], 392 | "meta": { 393 | "version": 2 394 | }, 395 | "net_colors": null 396 | }, 397 | "pcbnew": { 398 | "last_paths": { 399 | "gencad": "", 400 | "idf": "", 401 | "netlist": "", 402 | "specctra_dsn": "", 403 | "step": "", 404 | "vrml": "" 405 | }, 406 | "page_layout_descr_file": "" 407 | }, 408 | "schematic": { 409 | "annotate_start_num": 0, 410 | "drawing": { 411 | "default_line_thickness": 6.0, 412 | "default_text_size": 50.0, 413 | "field_names": [], 414 | "intersheets_ref_own_page": false, 415 | "intersheets_ref_prefix": "", 416 | "intersheets_ref_short": false, 417 | "intersheets_ref_show": false, 418 | "intersheets_ref_suffix": "", 419 | "junction_size_choice": 3, 420 | "label_size_ratio": 0.375, 421 | "pin_symbol_size": 25.0, 422 | "text_offset_ratio": 0.15 423 | }, 424 | "legacy_lib_dir": "", 425 | "legacy_lib_list": [], 426 | "meta": { 427 | "version": 1 428 | }, 429 | "net_format_name": "", 430 | "ngspice": { 431 | "fix_include_paths": true, 432 | "fix_passive_vals": false, 433 | "meta": { 434 | "version": 0 435 | }, 436 | "model_mode": 0, 437 | "workbook_filename": "" 438 | }, 439 | "page_layout_descr_file": "", 440 | "plot_directory": "", 441 | "spice_adjust_passive_values": false, 442 | "spice_external_command": "spice \"%I\"", 443 | "subpart_first_id": 65, 444 | "subpart_id_separator": 0 445 | }, 446 | "sheets": [ 447 | [ 448 | "e63e39d7-6ac0-4ffd-8aa3-1841a4541b55", 449 | "" 450 | ] 451 | ], 452 | "text_variables": {} 453 | } 454 | -------------------------------------------------------------------------------- /nixitest1/nixitest1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnlohr/cnixxi/0eb3829d752086c7935824d2ac40175e9630bbce/nixitest1/nixitest1.pdf -------------------------------------------------------------------------------- /parts/AP0803QD_DualNFet.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "AP0803QD_DualNFet" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 6.35 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "AP0803QD_DualNFet" (id 1) (at 0 -6.35 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "pmpack3_dualfet:pmpack3_dualfet" (id 2) (at 0 0 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (property "LCSC" "C2828587" (id 4) (at 0 0 0) 16 | (effects (font (size 1.27 1.27)) hide) 17 | ) 18 | (symbol "AP0803QD_DualNFet_0_1" 19 | (rectangle (start -3.81 5.08) (end 3.81 -5.08) 20 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 21 | (fill (type background)) 22 | ) 23 | ) 24 | (symbol "AP0803QD_DualNFet_1_1" 25 | (pin bidirectional line (at -6.35 3.81 0) (length 2.54) 26 | (name "S1" (effects (font (size 1.27 1.27)))) 27 | (number "1" (effects (font (size 1.27 1.27)))) 28 | ) 29 | (pin bidirectional line (at -6.35 1.27 0) (length 2.54) 30 | (name "G1" (effects (font (size 1.27 1.27)))) 31 | (number "2" (effects (font (size 1.27 1.27)))) 32 | ) 33 | (pin bidirectional line (at -6.35 -1.27 0) (length 2.54) 34 | (name "S2" (effects (font (size 1.27 1.27)))) 35 | (number "3" (effects (font (size 1.27 1.27)))) 36 | ) 37 | (pin bidirectional line (at -6.35 -3.81 0) (length 2.54) 38 | (name "G2" (effects (font (size 1.27 1.27)))) 39 | (number "4" (effects (font (size 1.27 1.27)))) 40 | ) 41 | (pin bidirectional line (at 6.35 -3.81 180) (length 2.54) 42 | (name "D2" (effects (font (size 1.27 1.27)))) 43 | (number "5" (effects (font (size 1.27 1.27)))) 44 | ) 45 | (pin bidirectional line (at 6.35 1.27 180) (length 2.54) 46 | (name "D1" (effects (font (size 1.27 1.27)))) 47 | (number "7" (effects (font (size 1.27 1.27)))) 48 | ) 49 | ) 50 | ) 51 | ) 52 | -------------------------------------------------------------------------------- /parts/AP4580-FULLBRIDGEFET.bak: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | ) 3 | -------------------------------------------------------------------------------- /parts/AP4580-FULLBRIDGEFET.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "AP4580" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 -6.35 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "AP4580" (id 1) (at 0 6.35 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "Package_TO_SOT_SMD:SOT-23-8" (id 2) (at 0 -7.62 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (property "LCSC" "C2849569" (id 4) (at 0 -8.255 0) 16 | (effects (font (size 1.27 1.27)) hide) 17 | ) 18 | (symbol "AP4580_0_1" 19 | (rectangle (start -5.08 5.08) (end 5.08 -5.08) 20 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 21 | (fill (type background)) 22 | ) 23 | ) 24 | (symbol "AP4580_1_1" 25 | (pin bidirectional line (at -7.62 3.81 0) (length 2.54) 26 | (name "GN1" (effects (font (size 1.27 1.27)))) 27 | (number "1" (effects (font (size 1.27 1.27)))) 28 | ) 29 | (pin bidirectional line (at -7.62 1.27 0) (length 2.54) 30 | (name "GP1" (effects (font (size 1.27 1.27)))) 31 | (number "2" (effects (font (size 1.27 1.27)))) 32 | ) 33 | (pin bidirectional line (at -7.62 -1.27 0) (length 2.54) 34 | (name "SP" (effects (font (size 1.27 1.27)))) 35 | (number "3" (effects (font (size 1.27 1.27)))) 36 | ) 37 | (pin bidirectional line (at -7.62 -3.81 0) (length 2.54) 38 | (name "GP2" (effects (font (size 1.27 1.27)))) 39 | (number "4" (effects (font (size 1.27 1.27)))) 40 | ) 41 | (pin bidirectional line (at 7.62 -3.81 180) (length 2.54) 42 | (name "GN2" (effects (font (size 1.27 1.27)))) 43 | (number "5" (effects (font (size 1.27 1.27)))) 44 | ) 45 | (pin bidirectional line (at 7.62 -1.27 180) (length 2.54) 46 | (name "D2" (effects (font (size 1.27 1.27)))) 47 | (number "6" (effects (font (size 1.27 1.27)))) 48 | ) 49 | (pin bidirectional line (at 7.62 1.27 180) (length 2.54) 50 | (name "D1" (effects (font (size 1.27 1.27)))) 51 | (number "7" (effects (font (size 1.27 1.27)))) 52 | ) 53 | (pin bidirectional line (at 7.62 3.81 180) (length 2.54) 54 | (name "SN" (effects (font (size 1.27 1.27)))) 55 | (number "8" (effects (font (size 1.27 1.27)))) 56 | ) 57 | ) 58 | ) 59 | ) 60 | -------------------------------------------------------------------------------- /parts/EPC2014C.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "EPC2014C" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 0 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "EPC2014C" (id 1) (at 0 -5.08 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "" (id 2) (at 0 -2.54 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 -2.54 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (symbol "EPC2014C_0_1" 16 | (rectangle (start -3.81 3.81) (end 3.81 -3.81) 17 | (stroke (width 0) (type default) (color 0 0 0 0)) 18 | (fill (type background)) 19 | ) 20 | ) 21 | (symbol "EPC2014C_1_1" 22 | (pin bidirectional line (at -6.35 2.54 0) (length 2.54) 23 | (name "G" (effects (font (size 1.27 1.27)))) 24 | (number "1" (effects (font (size 1.27 1.27)))) 25 | ) 26 | (pin bidirectional line (at 6.35 2.54 180) (length 2.54) 27 | (name "SUB" (effects (font (size 1.27 1.27)))) 28 | (number "2" (effects (font (size 1.27 1.27)))) 29 | ) 30 | (pin bidirectional line (at 6.35 0 180) (length 2.54) 31 | (name "D" (effects (font (size 1.27 1.27)))) 32 | (number "3" (effects (font (size 1.27 1.27)))) 33 | ) 34 | (pin bidirectional line (at -6.35 -2.54 0) (length 2.54) 35 | (name "S" (effects (font (size 1.27 1.27)))) 36 | (number "4" (effects (font (size 1.27 1.27)))) 37 | ) 38 | (pin bidirectional line (at 6.35 -2.54 180) (length 2.54) 39 | (name "D" (effects (font (size 1.27 1.27)))) 40 | (number "5" (effects (font (size 1.27 1.27)))) 41 | ) 42 | ) 43 | ) 44 | ) 45 | -------------------------------------------------------------------------------- /parts/EPC2014C.pretty/EPC2014C.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "EPC2014C" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0.09 -1.44 unlocked) (layer "F.SilkS") 6 | (effects (font (size 0.6 0.6) (thickness 0.1))) 7 | (tstamp 2e307106-e0dc-484f-b2a2-e34360afc464) 8 | ) 9 | (fp_text value "EPC2014C" (at -0.07 1.52 unlocked) (layer "F.Fab") 10 | (effects (font (size 0.6 0.6) (thickness 0.1))) 11 | (tstamp 819b1acf-f7f2-44d8-818a-9cb4f6455dfc) 12 | ) 13 | (fp_text user "${REFERENCE}" (at -0.03 3.09 unlocked) (layer "F.Fab") 14 | (effects (font (size 0.6 0.6) (thickness 0.1))) 15 | (tstamp cd6e14d6-9f04-422b-82e8-54685c43d38c) 16 | ) 17 | (fp_line (start 1 0.7) (end -1 0.7) (layer "F.SilkS") (width 0.12) (tstamp 4f9d5f98-1570-4119-bd04-b7137d770944)) 18 | (fp_line (start 1 -0.7) (end 1 0.7) (layer "F.SilkS") (width 0.12) (tstamp aa539645-4bb4-4763-951d-e7a0ba3c92d7)) 19 | (fp_line (start -1 -0.7) (end 1 -0.7) (layer "F.SilkS") (width 0.12) (tstamp c402c3d8-92d2-446a-a18e-c878ab3df6b9)) 20 | (fp_line (start -1 0.7) (end -1 -0.7) (layer "F.SilkS") (width 0.12) (tstamp eaf46d3c-6103-4786-a46c-51ac11beb9e6)) 21 | (pad "1" smd oval (at -0.6 -0.259 180) (size 0.2 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2236d04e-be26-4523-9406-6dd4033fcf09)) 22 | (pad "2" smd oval (at -0.6 0.259 180) (size 0.2 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 04fc334c-ec76-4e35-8119-e2f32987c9ff)) 23 | (pad "3" smd oval (at -0.2 0 180) (size 0.2 0.82) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 2e082d25-6ea9-415f-b3a2-d17e9e7ced12)) 24 | (pad "4" smd oval (at 0.2 0 180) (size 0.2 0.82) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp df2ed8a9-48c6-4226-8b13-0d928209f4e6)) 25 | (pad "5" smd oval (at 0.6 0 180) (size 0.2 0.82) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 9e885648-2377-4850-9ef7-68cf6d68ec48)) 26 | ) 27 | -------------------------------------------------------------------------------- /parts/Flyback-ATB3225.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "Flyback-ATB3225" (in_bom yes) (on_board yes) 3 | (property "Reference" "T" (id 0) (at 0 4.445 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "Flyback-ATB3225" (id 1) (at 0 -7.62 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "Flyback-ATB3225:Flyback-ATB3225" (id 2) (at 0 0 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (property "LCSC" "C415291" (id 4) (at 0 0 0) 16 | (effects (font (size 1.27 1.27)) hide) 17 | ) 18 | (symbol "Flyback-ATB3225_0_1" 19 | (rectangle (start -4.445 3.81) (end 4.445 -3.81) 20 | (stroke (width 0) (type default) (color 0 0 0 0)) 21 | (fill (type background)) 22 | ) 23 | (arc (start -1.905 -2.54) (mid -1.27 -3.2097) (end -0.635 -2.54) 24 | (stroke (width 0) (type default) (color 0 0 0 0)) 25 | (fill (type none)) 26 | ) 27 | (arc (start -1.905 2.54) (mid -2.54 3.2007) (end -3.175 2.54) 28 | (stroke (width 0) (type default) (color 0 0 0 0)) 29 | (fill (type none)) 30 | ) 31 | (arc (start -0.635 -2.54) (mid 0 -3.292) (end 0.635 -2.54) 32 | (stroke (width 0) (type default) (color 0 0 0 0)) 33 | (fill (type none)) 34 | ) 35 | (arc (start -0.635 2.54) (mid -1.27 3.2007) (end -1.905 2.54) 36 | (stroke (width 0) (type default) (color 0 0 0 0)) 37 | (fill (type none)) 38 | ) 39 | (arc (start -0.635 2.54) (mid 0 1.9798) (end 0.635 2.54) 40 | (stroke (width 0) (type default) (color 0 0 0 0)) 41 | (fill (type none)) 42 | ) 43 | (polyline 44 | (pts 45 | (xy -3.81 -2.54) 46 | (xy -1.905 -2.54) 47 | ) 48 | (stroke (width 0) (type default) (color 0 0 0 0)) 49 | (fill (type none)) 50 | ) 51 | (polyline 52 | (pts 53 | (xy -3.81 2.54) 54 | (xy -3.175 2.54) 55 | ) 56 | (stroke (width 0) (type default) (color 0 0 0 0)) 57 | (fill (type none)) 58 | ) 59 | (polyline 60 | (pts 61 | (xy -1.905 -0.635) 62 | (xy 1.905 -0.635) 63 | ) 64 | (stroke (width 0) (type default) (color 0 0 0 0)) 65 | (fill (type none)) 66 | ) 67 | (polyline 68 | (pts 69 | (xy 1.905 0.635) 70 | (xy -1.905 0.635) 71 | ) 72 | (stroke (width 0) (type default) (color 0 0 0 0)) 73 | (fill (type none)) 74 | ) 75 | (polyline 76 | (pts 77 | (xy 3.81 -2.54) 78 | (xy 1.905 -2.54) 79 | ) 80 | (stroke (width 0) (type default) (color 0 0 0 0)) 81 | (fill (type none)) 82 | ) 83 | (polyline 84 | (pts 85 | (xy 3.81 2.54) 86 | (xy 3.175 2.54) 87 | ) 88 | (stroke (width 0) (type default) (color 0 0 0 0)) 89 | (fill (type none)) 90 | ) 91 | (arc (start 1.905 -2.54) (mid 1.27 -1.9498) (end 0.635 -2.54) 92 | (stroke (width 0) (type default) (color 0 0 0 0)) 93 | (fill (type none)) 94 | ) 95 | (arc (start 1.905 2.54) (mid 1.27 3.311) (end 0.635 2.54) 96 | (stroke (width 0) (type default) (color 0 0 0 0)) 97 | (fill (type none)) 98 | ) 99 | (arc (start 3.175 2.54) (mid 2.54 3.2007) (end 1.905 2.54) 100 | (stroke (width 0) (type default) (color 0 0 0 0)) 101 | (fill (type none)) 102 | ) 103 | ) 104 | (symbol "Flyback-ATB3225_1_1" 105 | (pin bidirectional line (at -6.35 -2.54 0) (length 2.54) 106 | (name "" (effects (font (size 1.27 1.27)))) 107 | (number "1" (effects (font (size 1.27 1.27)))) 108 | ) 109 | (pin bidirectional line (at -6.35 2.54 0) (length 2.54) 110 | (name "" (effects (font (size 1.27 1.27)))) 111 | (number "2" (effects (font (size 1.27 1.27)))) 112 | ) 113 | (pin bidirectional line (at 6.35 2.54 180) (length 2.54) 114 | (name "" (effects (font (size 1.27 1.27)))) 115 | (number "3" (effects (font (size 1.27 1.27)))) 116 | ) 117 | (pin bidirectional line (at 6.35 -2.54 180) (length 2.54) 118 | (name "" (effects (font (size 1.27 1.27)))) 119 | (number "4" (effects (font (size 1.27 1.27)))) 120 | ) 121 | ) 122 | ) 123 | ) 124 | -------------------------------------------------------------------------------- /parts/Flyback-ATB3225.pretty/Flyback-ATB3225.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "Flyback-ATB3225" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0.15 -3.55 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp 0ee602dd-9863-4488-b0df-cfe2d7718cb1) 8 | ) 9 | (fp_text value "Flyback-ATB3225" (at -0.35 4.05 unlocked) (layer "F.Fab") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp b732bd7d-c071-49bb-84e9-fba614e21b74) 12 | ) 13 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab") 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | (tstamp 4bb5d90b-9c7b-4e7d-b141-fd724ae7a3c2) 16 | ) 17 | (fp_line (start -1.6 -1.35) (end 1.6 -1.35) (layer "F.SilkS") (width 0.12) (tstamp 27c69e02-a03f-41e8-8c6f-2930393a83aa)) 18 | (fp_line (start -1.6 1.35) (end 1.6 1.35) (layer "F.SilkS") (width 0.12) (tstamp 83f3be8c-9581-4915-967c-491389066a99)) 19 | (fp_circle (center 0 1.5) (end 0.1 1.5) (layer "F.SilkS") (width 0.12) (fill none) (tstamp 8db81434-040e-4a55-b09e-10a26c30bc5f)) 20 | (pad "1" smd roundrect (at -1.5 0.885) (size 1 0.55) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1) (tstamp 4508523e-3cdf-4e59-8d84-ffd29cde83f2)) 21 | (pad "2" smd roundrect (at -1.5 -0.885) (size 1 0.55) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1) (tstamp 655f7503-c949-4089-ab7d-4d68bb374877)) 22 | (pad "3" smd roundrect (at 1.5 -0.885) (size 1 0.55) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1) (tstamp 1b0b6dcb-583f-4203-84bd-9d9a306a7b49)) 23 | (pad "4" smd roundrect (at 1.5 0.885) (size 1 0.55) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.1) (tstamp 41715d4c-6345-41d6-9b33-d4f189009bb4)) 24 | ) 25 | -------------------------------------------------------------------------------- /parts/IN12-NIXIE.pretty/IN12-NIXIE.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "IN12-NIXIE" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 644EDEF6) 4 | (property "LCSC" "") 5 | (property "Sheetfile" "nixitest1.kicad_sch") 6 | (property "Sheetname" "") 7 | (attr smd) 8 | (fp_text reference "U2" (at -0.525 -2.945 unlocked) (layer "F.SilkS") 9 | (effects (font (size 0.7 0.7) (thickness 0.1))) 10 | (tstamp c6d0e6be-376d-4beb-9794-508920a2265a) 11 | ) 12 | (fp_text value "IN12-NIXIETUBE" (at -0.01 9.31 unlocked) (layer "F.Fab") 13 | (effects (font (size 1 1) (thickness 0.15))) 14 | (tstamp 7d86ba37-b98f-40a5-b35f-96db8417b185) 15 | ) 16 | (pad "" np_thru_hole circle (at -0.15 0.02) (size 4 4) (drill 3.5) (layers F&B.Cu *.Mask) (tstamp 4a56ac62-5ec2-46fc-a86c-9adf2d8fead1)) 17 | (pad "" smd oval (at 0 0) (size 21 31) (property pad_prop_fiducial_loc) (layers "Dwgs.User") (tstamp e0660a46-ff2a-4b28-b311-cf71bc999b82)) 18 | (pad "1" thru_hole circle (at -4 -8) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 2b878984-ad62-40d5-87be-d30f465ae2b3)) 19 | (pad "2" thru_hole circle (at -5.75 -4.5) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp f5a54919-b960-48fc-8517-e9e32dce0bf0)) 20 | (pad "3" thru_hole circle (at -5.75 0 180) (size 2.28 2.28) (drill 0.99) (layers *.Cu *.Mask) (tstamp 773bdc81-beec-4a4b-9485-1c1dd15c6e5a)) 21 | (pad "3" thru_hole circle (at -5.75 0 180) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 7a25e2e8-d883-44ae-8207-1f946e50b1fa)) 22 | (pad "4" thru_hole circle (at -5.75 4.5) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 90671817-460f-456a-a6e3-6cfa468bea55)) 23 | (pad "5" thru_hole circle (at -4 8) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 6d401fdd-c1f6-4321-96c4-4843b6143be9)) 24 | (pad "6" thru_hole circle (at 0 9) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 4612f9f0-1343-4ba7-94dd-7d3e9fc08dad)) 25 | (pad "7" thru_hole circle (at 4 8) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 224e8890-cdee-45fd-bd2e-64fe49c2de75)) 26 | (pad "8" thru_hole circle (at 5.75 4.5) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 87bdd00e-f10c-4d37-9a6b-480b5e87ca33)) 27 | (pad "9" thru_hole circle (at 5.75 0) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 7b845862-cbd0-4fb3-909e-eb8579f14aa2)) 28 | (pad "10" thru_hole circle (at 5.75 -4.5) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 133bb99a-82f3-4f77-a20b-451874ac44f4)) 29 | (pad "11" thru_hole circle (at 4 -8) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp 807db03e-eb6e-4455-9049-0461408189fa)) 30 | (pad "12" thru_hole circle (at 0 -9) (size 2.28 2.28) (drill 0.98) (layers *.Cu *.Mask) (tstamp a8333ca2-6919-4fe3-9f28-bacc852923df)) 31 | ) 32 | -------------------------------------------------------------------------------- /parts/IN12-NIXIETUBE.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "IN12-NIXIETUBE" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 7.62 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "IN12-NIXIETUBE" (id 1) (at 0 -10.16 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "" (id 2) (at -1.27 1.27 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at -1.27 1.27 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (symbol "IN12-NIXIETUBE_0_1" 16 | (rectangle (start -3.81 6.35) (end 3.81 -8.89) 17 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 18 | (fill (type background)) 19 | ) 20 | ) 21 | (symbol "IN12-NIXIETUBE_1_1" 22 | (pin input line (at -6.35 5.08 0) (length 2.54) 23 | (name "A" (effects (font (size 1.27 1.27)))) 24 | (number "1" (effects (font (size 1.27 1.27)))) 25 | ) 26 | (pin input line (at 6.35 0 180) (length 2.54) 27 | (name "K2" (effects (font (size 1.27 1.27)))) 28 | (number "10" (effects (font (size 1.27 1.27)))) 29 | ) 30 | (pin input line (at 6.35 2.54 180) (length 2.54) 31 | (name "K1" (effects (font (size 1.27 1.27)))) 32 | (number "11" (effects (font (size 1.27 1.27)))) 33 | ) 34 | (pin input line (at 6.35 5.08 180) (length 2.54) 35 | (name "Kd" (effects (font (size 1.27 1.27)))) 36 | (number "12" (effects (font (size 1.27 1.27)))) 37 | ) 38 | (pin input line (at -6.35 2.54 0) (length 2.54) 39 | (name "K0" (effects (font (size 1.27 1.27)))) 40 | (number "2" (effects (font (size 1.27 1.27)))) 41 | ) 42 | (pin input line (at -6.35 0 0) (length 2.54) 43 | (name "K9" (effects (font (size 1.27 1.27)))) 44 | (number "3" (effects (font (size 1.27 1.27)))) 45 | ) 46 | (pin input line (at -6.35 -2.54 0) (length 2.54) 47 | (name "K8" (effects (font (size 1.27 1.27)))) 48 | (number "4" (effects (font (size 1.27 1.27)))) 49 | ) 50 | (pin input line (at -6.35 -5.08 0) (length 2.54) 51 | (name "K7" (effects (font (size 1.27 1.27)))) 52 | (number "5" (effects (font (size 1.27 1.27)))) 53 | ) 54 | (pin input line (at -6.35 -7.62 0) (length 2.54) 55 | (name "K6" (effects (font (size 1.27 1.27)))) 56 | (number "6" (effects (font (size 1.27 1.27)))) 57 | ) 58 | (pin input line (at 6.35 -7.62 180) (length 2.54) 59 | (name "K5" (effects (font (size 1.27 1.27)))) 60 | (number "7" (effects (font (size 1.27 1.27)))) 61 | ) 62 | (pin input line (at 6.35 -5.08 180) (length 2.54) 63 | (name "K4" (effects (font (size 1.27 1.27)))) 64 | (number "8" (effects (font (size 1.27 1.27)))) 65 | ) 66 | (pin input line (at 6.35 -2.54 180) (length 2.54) 67 | (name "K3" (effects (font (size 1.27 1.27)))) 68 | (number "9" (effects (font (size 1.27 1.27)))) 69 | ) 70 | ) 71 | ) 72 | ) 73 | -------------------------------------------------------------------------------- /parts/NCP81166.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "NCP81166" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at -2.54 -6.35 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "NCP81166" (id 1) (at 0 6.35 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "Package_DFN_QFN:DFN-8-1EP_2x2mm_P0.5mm_EP1.05x1.75mm" (id 2) (at 0 -8.89 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (property "LCSC" "C116731" (id 4) (at 0 7.62 0) 16 | (effects (font (size 1.27 1.27)) hide) 17 | ) 18 | (symbol "NCP81166_0_1" 19 | (rectangle (start -5.08 5.08) (end 5.08 -7.62) 20 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 21 | (fill (type background)) 22 | ) 23 | ) 24 | (symbol "NCP81166_1_1" 25 | (pin bidirectional line (at -7.62 3.81 0) (length 2.54) 26 | (name "PWM" (effects (font (size 1.27 1.27)))) 27 | (number "1" (effects (font (size 1.27 1.27)))) 28 | ) 29 | (pin bidirectional line (at -7.62 1.27 0) (length 2.54) 30 | (name "NC" (effects (font (size 1.27 1.27)))) 31 | (number "2" (effects (font (size 1.27 1.27)))) 32 | ) 33 | (pin bidirectional line (at -7.62 -1.27 0) (length 2.54) 34 | (name "EN" (effects (font (size 1.27 1.27)))) 35 | (number "3" (effects (font (size 1.27 1.27)))) 36 | ) 37 | (pin bidirectional line (at -7.62 -3.81 0) (length 2.54) 38 | (name "VCC" (effects (font (size 1.27 1.27)))) 39 | (number "4" (effects (font (size 1.27 1.27)))) 40 | ) 41 | (pin bidirectional line (at 7.62 -3.81 180) (length 2.54) 42 | (name "DRVL" (effects (font (size 1.27 1.27)))) 43 | (number "5" (effects (font (size 1.27 1.27)))) 44 | ) 45 | (pin bidirectional line (at 7.62 -1.27 180) (length 2.54) 46 | (name "SW" (effects (font (size 1.27 1.27)))) 47 | (number "6" (effects (font (size 1.27 1.27)))) 48 | ) 49 | (pin bidirectional line (at 7.62 1.27 180) (length 2.54) 50 | (name "DRVH" (effects (font (size 1.27 1.27)))) 51 | (number "7" (effects (font (size 1.27 1.27)))) 52 | ) 53 | (pin bidirectional line (at 7.62 3.81 180) (length 2.54) 54 | (name "BST" (effects (font (size 1.27 1.27)))) 55 | (number "8" (effects (font (size 1.27 1.27)))) 56 | ) 57 | (pin bidirectional line (at 7.62 -6.35 180) (length 2.54) 58 | (name "GND" (effects (font (size 1.27 1.27)))) 59 | (number "9" (effects (font (size 1.27 1.27)))) 60 | ) 61 | ) 62 | ) 63 | ) 64 | -------------------------------------------------------------------------------- /parts/RY9320AT6_Buck.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "RY9320AT6_Buck" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 -5.08 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "RY9320AT6_Buck" (id 1) (at 0 5.08 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "" (id 2) (at 0 0 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (symbol "RY9320AT6_Buck_0_1" 16 | (rectangle (start -3.81 3.81) (end 3.81 -3.81) 17 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 18 | (fill (type background)) 19 | ) 20 | ) 21 | (symbol "RY9320AT6_Buck_1_1" 22 | (pin bidirectional line (at -6.35 2.54 0) (length 2.54) 23 | (name "BS" (effects (font (size 1.27 1.27)))) 24 | (number "1" (effects (font (size 1.27 1.27)))) 25 | ) 26 | (pin bidirectional line (at -6.35 0 0) (length 2.54) 27 | (name "GND" (effects (font (size 1.27 1.27)))) 28 | (number "2" (effects (font (size 1.27 1.27)))) 29 | ) 30 | (pin bidirectional line (at -6.35 -2.54 0) (length 2.54) 31 | (name "FB" (effects (font (size 1.27 1.27)))) 32 | (number "3" (effects (font (size 1.27 1.27)))) 33 | ) 34 | (pin bidirectional line (at 6.35 -2.54 180) (length 2.54) 35 | (name "EN" (effects (font (size 1.27 1.27)))) 36 | (number "4" (effects (font (size 1.27 1.27)))) 37 | ) 38 | (pin bidirectional line (at 6.35 0 180) (length 2.54) 39 | (name "IN" (effects (font (size 1.27 1.27)))) 40 | (number "5" (effects (font (size 1.27 1.27)))) 41 | ) 42 | (pin bidirectional line (at 6.35 2.54 180) (length 2.54) 43 | (name "SW" (effects (font (size 1.27 1.27)))) 44 | (number "6" (effects (font (size 1.27 1.27)))) 45 | ) 46 | ) 47 | ) 48 | ) 49 | -------------------------------------------------------------------------------- /parts/TVS-USB.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "TVS-USB" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 -6.35 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "TVS-USB" (id 1) (at 0 6.35 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "Package_TO_SOT_SMD:SOT-23-6" (id 2) (at 0 0 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (property "LCSC" "C316033" (id 4) (at 0 0 0) 16 | (effects (font (size 1.27 1.27)) hide) 17 | ) 18 | (symbol "TVS-USB_0_1" 19 | (rectangle (start -3.81 3.81) (end 3.81 -3.81) 20 | (stroke (width 0) (type default) (color 0 0 0 0)) 21 | (fill (type background)) 22 | ) 23 | ) 24 | (symbol "TVS-USB_1_1" 25 | (pin bidirectional line (at -6.35 2.54 0) (length 2.54) 26 | (name "IO" (effects (font (size 1.27 1.27)))) 27 | (number "1" (effects (font (size 1.27 1.27)))) 28 | ) 29 | (pin bidirectional line (at -6.35 0 0) (length 2.54) 30 | (name "GND" (effects (font (size 1.27 1.27)))) 31 | (number "2" (effects (font (size 1.27 1.27)))) 32 | ) 33 | (pin bidirectional line (at -6.35 -2.54 0) (length 2.54) 34 | (name "IO" (effects (font (size 1.27 1.27)))) 35 | (number "3" (effects (font (size 1.27 1.27)))) 36 | ) 37 | (pin bidirectional line (at 6.35 -2.54 180) (length 2.54) 38 | (name "IO" (effects (font (size 1.27 1.27)))) 39 | (number "4" (effects (font (size 1.27 1.27)))) 40 | ) 41 | (pin bidirectional line (at 6.35 0 180) (length 2.54) 42 | (name "VC" (effects (font (size 1.27 1.27)))) 43 | (number "5" (effects (font (size 1.27 1.27)))) 44 | ) 45 | (pin bidirectional line (at 6.35 2.54 180) (length 2.54) 46 | (name "IO" (effects (font (size 1.27 1.27)))) 47 | (number "6" (effects (font (size 1.27 1.27)))) 48 | ) 49 | ) 50 | ) 51 | ) 52 | -------------------------------------------------------------------------------- /parts/TouchPadTest.pretty/TouchExposed6.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "TouchExposed6" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0 -3.6 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp 361051dc-4228-440a-9195-eb9d4aee13f1) 8 | ) 9 | (fp_text value "TouchExposed6" (at 0 1 unlocked) (layer "F.Fab") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp d6da6335-1b2d-4b41-9588-30e26ad57b0d) 12 | ) 13 | (pad "1" smd circle (at 0 0.1) (size 8 8) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 8d3b087d-962c-4c8c-a3ec-a7589c0d6086)) 14 | ) 15 | -------------------------------------------------------------------------------- /parts/TouchPadTest.pretty/TouchPadTest.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "TouchPadTest" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0 -3.7 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp 6114d069-ab8b-43e8-b8d7-71f34a370dc7) 8 | ) 9 | (fp_text value "TouchPadTest" (at 0 1 unlocked) (layer "F.Fab") hide 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp 382f4088-158b-4094-b222-000135da4e77) 12 | ) 13 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab") hide 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | (tstamp 739006da-9988-4569-af78-040f86363d59) 16 | ) 17 | (pad "1" smd circle (at 0 0) (size 6 6) (layers "F.Cu") (tstamp 3f186d75-57a8-4b2b-b07f-fd5586d3c7d7)) 18 | ) 19 | -------------------------------------------------------------------------------- /parts/WS2816-2121.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "WS2816-2121" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at -0.2 -2 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp 6e24dc95-0f93-4dfb-ba04-5454d12456a0) 8 | ) 9 | (fp_text value "WS2816-2121" (at 0 4 unlocked) (layer "F.Fab") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp 1cc91b6d-0d81-46cd-a67a-2381c43a07e2) 12 | ) 13 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab") 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | (tstamp 2863e791-1e1d-4d8d-8931-b547ac94531e) 16 | ) 17 | (fp_line (start -1 1.2) (end -1.2 1.2) (layer "F.SilkS") (width 0.12) (tstamp 0bf9cbec-ffd8-4141-a9c9-41558b1d67c8)) 18 | (fp_line (start -1.2 1.2) (end -1.2 1) (layer "F.SilkS") (width 0.12) (tstamp 1c5f9628-7cb0-474b-8a9c-00ede6beac15)) 19 | (fp_line (start -1.2 -1.2) (end -1 -1.2) (layer "F.SilkS") (width 0.12) (tstamp 26a3f21a-b628-462c-a948-aba1e5b10a93)) 20 | (fp_line (start -1.4 -1) (end -1.2 -1) (layer "F.SilkS") (width 0.12) (tstamp 2ea2b033-d5da-4e2c-8277-fc8b82ee4131)) 21 | (fp_line (start -1.4 -1.4) (end -1 -1.4) (layer "F.SilkS") (width 0.12) (tstamp 3089887b-1049-41d9-b50a-588bef0afb35)) 22 | (fp_line (start 1.2 1.2) (end 1 1.2) (layer "F.SilkS") (width 0.12) (tstamp 3262608d-403e-4a81-8b9e-87df39cf03a0)) 23 | (fp_line (start -1.4 -1.1) (end -1.4 -1.4) (layer "F.SilkS") (width 0.12) (tstamp 479261f0-63fe-406f-8dc8-0fcb1a2c510d)) 24 | (fp_line (start 1 -1.2) (end 1.2 -1.2) (layer "F.SilkS") (width 0.12) (tstamp 542791ff-f67d-40b6-bca2-2700a928419a)) 25 | (fp_line (start 1.2 1) (end 1.2 1.2) (layer "F.SilkS") (width 0.12) (tstamp 9e7a5fa6-ea50-4c5a-9cd9-168818d86684)) 26 | (fp_line (start -1.4 -1.1) (end -1.4 -1) (layer "F.SilkS") (width 0.12) (tstamp a4cea391-0549-4afb-88fa-14c4b58b7b18)) 27 | (fp_line (start -1 -1.4) (end -1 -1.2) (layer "F.SilkS") (width 0.12) (tstamp aba6846c-d4b0-4098-adbf-0eef5ab2d172)) 28 | (fp_line (start 1.2 -1.2) (end 1.2 -1) (layer "F.SilkS") (width 0.12) (tstamp b1d971a9-970d-48f3-a853-a66ef283ff29)) 29 | (fp_line (start -1.2 -1) (end -1.2 -1.2) (layer "F.SilkS") (width 0.12) (tstamp efb8dcaf-5434-4ec2-84b0-9ca4ba7aae59)) 30 | (pad "1" smd roundrect (at -0.945 -0.63 90) (size 0.32 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp b2f3c961-c548-42b3-8770-cb4770382d73)) 31 | (pad "2" smd roundrect (at -0.945 0 90) (size 0.32 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 8339aa98-c1e5-48b1-a3b6-e51c1c81a143)) 32 | (pad "3" smd roundrect (at -0.945 0.63 90) (size 0.32 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp aa037990-f116-4973-a09d-1cc3596c6336)) 33 | (pad "4" smd roundrect (at 0.945 0.63 90) (size 0.32 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 9708b320-a6f3-4b3c-ad32-03ac05475f8d)) 34 | (pad "5" smd roundrect (at 0.945 0 90) (size 0.32 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 0479f0b6-9466-41da-a459-0a007725fd5f)) 35 | (pad "6" smd roundrect (at 0.945 -0.63 90) (size 0.32 0.7) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e7fa976c-4bbc-419c-839e-2bf43d5d330b)) 36 | ) 37 | -------------------------------------------------------------------------------- /parts/WS2816C-2121.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "WS2816C-2121" (in_bom yes) (on_board yes) 3 | (property "Reference" "D" (id 0) (at 0 -5.08 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "WS2816C-2121" (id 1) (at 0 5.08 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "parts:WS2816-2121" (id 2) (at 0 0 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 0 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (property "LCSC" "C965561" (id 4) (at 0 0 0) 16 | (effects (font (size 1.27 1.27)) hide) 17 | ) 18 | (symbol "WS2816C-2121_0_1" 19 | (rectangle (start -2.54 3.81) (end 2.54 -3.81) 20 | (stroke (width 0) (type default) (color 0 0 0 0)) 21 | (fill (type background)) 22 | ) 23 | ) 24 | (symbol "WS2816C-2121_1_1" 25 | (pin input line (at -5.08 2.54 0) (length 2.54) 26 | (name "BI" (effects (font (size 1.27 1.27)))) 27 | (number "1" (effects (font (size 1.27 1.27)))) 28 | ) 29 | (pin input line (at -5.08 0 0) (length 2.54) 30 | (name "DI" (effects (font (size 1.27 1.27)))) 31 | (number "2" (effects (font (size 1.27 1.27)))) 32 | ) 33 | (pin power_in line (at -5.08 -2.54 0) (length 2.54) 34 | (name "V" (effects (font (size 1.27 1.27)))) 35 | (number "3" (effects (font (size 1.27 1.27)))) 36 | ) 37 | (pin output line (at 5.08 -2.54 180) (length 2.54) 38 | (name "DO" (effects (font (size 1.27 1.27)))) 39 | (number "4" (effects (font (size 1.27 1.27)))) 40 | ) 41 | (pin output line (at 5.08 0 180) (length 2.54) 42 | (name "BO" (effects (font (size 1.27 1.27)))) 43 | (number "5" (effects (font (size 1.27 1.27)))) 44 | ) 45 | (pin power_in line (at 5.08 2.54 180) (length 2.54) 46 | (name "G" (effects (font (size 1.27 1.27)))) 47 | (number "6" (effects (font (size 1.27 1.27)))) 48 | ) 49 | ) 50 | ) 51 | ) 52 | -------------------------------------------------------------------------------- /parts/ap4580.pretty/ap4580.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "ap4580" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 5F6F9B37) 4 | (descr "SOT, 8 Pin (https://www.jedec.org/sites/default/files/docs/Mo-178c.PDF variant BA), generated with kicad-footprint-generator ipc_gullwing_generator.py") 5 | (tags "SOT TO_SOT_SMD") 6 | (property "LCSC" "C2849569") 7 | (property "Sheetfile" "esp32s2audioamp.kicad_sch") 8 | (property "Sheetname" "") 9 | (attr smd) 10 | (fp_text reference "U3" (at 0 -2.4 unlocked) (layer "F.SilkS") 11 | (effects (font (size 0.6 0.6) (thickness 0.1))) 12 | (tstamp 615bc177-a58a-4d31-9d5d-5325cde3f94a) 13 | ) 14 | (fp_text value "AP4580" (at 0 2.4 unlocked) (layer "F.Fab") hide 15 | (effects (font (size 1 1) (thickness 0.15))) 16 | (tstamp 404b9bac-2821-4bdc-8601-4df921bc5d49) 17 | ) 18 | (fp_text user "${REFERENCE}" (at 0 0 unlocked) (layer "F.Fab") 19 | (effects (font (size 1 1) (thickness 0.15))) 20 | (tstamp a2769222-d3cb-407e-894f-0ed45f2bd90a) 21 | ) 22 | (fp_line (start 0 -1.56) (end 0.8 -1.56) (layer "F.SilkS") (width 0.1) (tstamp 11f2a5eb-332b-48ad-8ac3-e02f37304242)) 23 | (fp_line (start 0 1.56) (end -0.8 1.56) (layer "F.SilkS") (width 0.1) (tstamp 38c97fbe-8e1d-485c-97f8-83406784d677)) 24 | (fp_line (start 0 -1.56) (end -1.8 -1.56) (layer "F.SilkS") (width 0.1) (tstamp 5f94ff3a-79d5-48cd-9e6f-9d5236cd4aae)) 25 | (fp_line (start 0 1.56) (end 0.8 1.56) (layer "F.SilkS") (width 0.1) (tstamp 88f48556-b9d5-4c35-a935-a492325c50eb)) 26 | (fp_line (start -2.05 -1.7) (end -2.05 1.7) (layer "F.CrtYd") (width 0.05) (tstamp 37c84043-f1be-4810-909f-baae40c6d584)) 27 | (fp_line (start 2.05 1.7) (end 2.05 -1.7) (layer "F.CrtYd") (width 0.05) (tstamp 5682f215-8a3e-4543-8570-a57a71e92afa)) 28 | (fp_line (start 2.05 -1.7) (end -2.05 -1.7) (layer "F.CrtYd") (width 0.05) (tstamp 68874413-0206-4bb0-a158-9d72d5dcfa42)) 29 | (fp_line (start -2.05 1.7) (end 2.05 1.7) (layer "F.CrtYd") (width 0.05) (tstamp e5357e84-bd00-4a9a-848c-d679a694c2cb)) 30 | (fp_line (start -0.4 -1.45) (end 0.8 -1.45) (layer "F.Fab") (width 0.1) (tstamp 001411d9-c629-4c83-a1e1-e1f4b977c998)) 31 | (fp_line (start -0.8 -1.05) (end -0.4 -1.45) (layer "F.Fab") (width 0.1) (tstamp 931bf1da-473d-4b79-9e9a-32f72504485f)) 32 | (fp_line (start 0.8 1.45) (end -0.8 1.45) (layer "F.Fab") (width 0.1) (tstamp 9b643c07-cb6b-44d6-87df-28af5282dbe5)) 33 | (fp_line (start -0.8 1.45) (end -0.8 -1.05) (layer "F.Fab") (width 0.1) (tstamp a066f5d8-cce7-4081-b084-6d2edcd608b3)) 34 | (fp_line (start 0.8 -1.45) (end 0.8 1.45) (layer "F.Fab") (width 0.1) (tstamp e84855ce-16ee-47f6-810a-790fdf5273c1)) 35 | (pad "1" smd roundrect (at -1.1375 -0.975) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 0426f683-4c17-4d91-9dc6-ab7867dd6f1c)) 36 | (pad "2" smd roundrect (at -1.1375 -0.325) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 6c4d0b8d-aad1-4c6e-ab28-c515f1a691f9)) 37 | (pad "3" smd roundrect (at -1.1375 0.325) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 301370ae-870a-429f-b50e-1fe8cd13ab6f)) 38 | (pad "4" smd roundrect (at -1.1375 0.975) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 4769d31d-02ed-4688-b4bd-7fc3bcda5efd)) 39 | (pad "5" smd roundrect (at 1.1375 0.975) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp b4859ff5-d41a-4dc9-990d-ee9a25ce57ae)) 40 | (pad "6" smd roundrect (at 1.1375 0.325) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e8626534-4273-4c2a-8970-7cf9a7c31422)) 41 | (pad "7" smd roundrect (at 1.1375 -0.325) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 73c43351-1fa3-4843-a159-636426472fc2)) 42 | (pad "8" smd roundrect (at 1.1375 -0.975) (size 1 0.4) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 112dcef2-c478-4b2e-81c8-1f24552594b6)) 43 | (model "${KICAD6_3DMODEL_DIR}/Package_TO_SOT_SMD.3dshapes/SOT-23-8.wrl" 44 | (offset (xyz 0 0 0)) 45 | (scale (xyz 1 1 1)) 46 | (rotate (xyz 0 0 0)) 47 | ) 48 | ) 49 | -------------------------------------------------------------------------------- /parts/esp32s2.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "ESP32-S2" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 6.35 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "ESP32-S2" (id 1) (at 0 1.27 0) 7 | (effects (font (size 1.27 1.27))) 8 | ) 9 | (property "Footprint" "localparts:ESP32S2" (id 2) (at 0 -1.27 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at -7.62 1.27 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (symbol "ESP32-S2_0_1" 16 | (rectangle (start -24.13 24.13) (end 24.13 -24.13) 17 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 18 | (fill (type background)) 19 | ) 20 | ) 21 | (symbol "ESP32-S2_1_1" 22 | (pin bidirectional line (at -26.67 16.51 0) (length 2.54) 23 | (name "VDDA" (effects (font (size 1.27 1.27)))) 24 | (number "1" (effects (font (size 1.27 1.27)))) 25 | ) 26 | (pin bidirectional line (at -26.67 -6.35 0) (length 2.54) 27 | (name "GPIO5" (effects (font (size 1.27 1.27)))) 28 | (number "10" (effects (font (size 1.27 1.27)))) 29 | ) 30 | (pin bidirectional line (at -26.67 -8.89 0) (length 2.54) 31 | (name "GPIO6" (effects (font (size 1.27 1.27)))) 32 | (number "11" (effects (font (size 1.27 1.27)))) 33 | ) 34 | (pin bidirectional line (at -26.67 -11.43 0) (length 2.54) 35 | (name "GPIO7" (effects (font (size 1.27 1.27)))) 36 | (number "12" (effects (font (size 1.27 1.27)))) 37 | ) 38 | (pin bidirectional line (at -26.67 -13.97 0) (length 2.54) 39 | (name "GPIO8" (effects (font (size 1.27 1.27)))) 40 | (number "13" (effects (font (size 1.27 1.27)))) 41 | ) 42 | (pin bidirectional line (at -26.67 -16.51 0) (length 2.54) 43 | (name "GPIO9" (effects (font (size 1.27 1.27)))) 44 | (number "14" (effects (font (size 1.27 1.27)))) 45 | ) 46 | (pin bidirectional line (at -16.51 -26.67 90) (length 2.54) 47 | (name "GPIO10" (effects (font (size 1.27 1.27)))) 48 | (number "15" (effects (font (size 1.27 1.27)))) 49 | ) 50 | (pin bidirectional line (at -13.97 -26.67 90) (length 2.54) 51 | (name "GPIO11" (effects (font (size 1.27 1.27)))) 52 | (number "16" (effects (font (size 1.27 1.27)))) 53 | ) 54 | (pin bidirectional line (at -11.43 -26.67 90) (length 2.54) 55 | (name "GPIO12" (effects (font (size 1.27 1.27)))) 56 | (number "17" (effects (font (size 1.27 1.27)))) 57 | ) 58 | (pin bidirectional line (at -8.89 -26.67 90) (length 2.54) 59 | (name "GPIO13" (effects (font (size 1.27 1.27)))) 60 | (number "18" (effects (font (size 1.27 1.27)))) 61 | ) 62 | (pin bidirectional line (at -6.35 -26.67 90) (length 2.54) 63 | (name "GPIO14" (effects (font (size 1.27 1.27)))) 64 | (number "19" (effects (font (size 1.27 1.27)))) 65 | ) 66 | (pin bidirectional line (at -26.67 13.97 0) (length 2.54) 67 | (name "LNA_IN" (effects (font (size 1.27 1.27)))) 68 | (number "2" (effects (font (size 1.27 1.27)))) 69 | ) 70 | (pin bidirectional line (at -3.81 -26.67 90) (length 2.54) 71 | (name "V333P3_RTC" (effects (font (size 1.27 1.27)))) 72 | (number "20" (effects (font (size 1.27 1.27)))) 73 | ) 74 | (pin bidirectional line (at -1.27 -26.67 90) (length 2.54) 75 | (name "XTAL_32K_P" (effects (font (size 1.27 1.27)))) 76 | (number "21" (effects (font (size 1.27 1.27)))) 77 | ) 78 | (pin bidirectional line (at 1.27 -26.67 90) (length 2.54) 79 | (name "XTAL_32K_N" (effects (font (size 1.27 1.27)))) 80 | (number "22" (effects (font (size 1.27 1.27)))) 81 | ) 82 | (pin bidirectional line (at 3.81 -26.67 90) (length 2.54) 83 | (name "DAC1" (effects (font (size 1.27 1.27)))) 84 | (number "23" (effects (font (size 1.27 1.27)))) 85 | ) 86 | (pin bidirectional line (at 6.35 -26.67 90) (length 2.54) 87 | (name "DAC2" (effects (font (size 1.27 1.27)))) 88 | (number "24" (effects (font (size 1.27 1.27)))) 89 | ) 90 | (pin bidirectional line (at 8.89 -26.67 90) (length 2.54) 91 | (name "GPIO19" (effects (font (size 1.27 1.27)))) 92 | (number "25" (effects (font (size 1.27 1.27)))) 93 | ) 94 | (pin bidirectional line (at 11.43 -26.67 90) (length 2.54) 95 | (name "GPIO20" (effects (font (size 1.27 1.27)))) 96 | (number "26" (effects (font (size 1.27 1.27)))) 97 | ) 98 | (pin bidirectional line (at 13.97 -26.67 90) (length 2.54) 99 | (name "VDD3P3_RTC_IO" (effects (font (size 1.27 1.27)))) 100 | (number "27" (effects (font (size 1.27 1.27)))) 101 | ) 102 | (pin bidirectional line (at 16.51 -26.67 90) (length 2.54) 103 | (name "GPIO21" (effects (font (size 1.27 1.27)))) 104 | (number "28" (effects (font (size 1.27 1.27)))) 105 | ) 106 | (pin bidirectional line (at 26.67 -16.51 180) (length 2.54) 107 | (name "SPICS1" (effects (font (size 1.27 1.27)))) 108 | (number "29" (effects (font (size 1.27 1.27)))) 109 | ) 110 | (pin bidirectional line (at -26.67 11.43 0) (length 2.54) 111 | (name "VDD3P3" (effects (font (size 1.27 1.27)))) 112 | (number "3" (effects (font (size 1.27 1.27)))) 113 | ) 114 | (pin bidirectional line (at 26.67 -13.97 180) (length 2.54) 115 | (name "VDD_SPI" (effects (font (size 1.27 1.27)))) 116 | (number "30" (effects (font (size 1.27 1.27)))) 117 | ) 118 | (pin bidirectional line (at 26.67 -11.43 180) (length 2.54) 119 | (name "SPIHD" (effects (font (size 1.27 1.27)))) 120 | (number "31" (effects (font (size 1.27 1.27)))) 121 | ) 122 | (pin bidirectional line (at 26.67 -8.89 180) (length 2.54) 123 | (name "SPIWP" (effects (font (size 1.27 1.27)))) 124 | (number "32" (effects (font (size 1.27 1.27)))) 125 | ) 126 | (pin bidirectional line (at 26.67 -6.35 180) (length 2.54) 127 | (name "SPICS0" (effects (font (size 1.27 1.27)))) 128 | (number "33" (effects (font (size 1.27 1.27)))) 129 | ) 130 | (pin bidirectional line (at 26.67 -3.81 180) (length 2.54) 131 | (name "SPICLK" (effects (font (size 1.27 1.27)))) 132 | (number "34" (effects (font (size 1.27 1.27)))) 133 | ) 134 | (pin bidirectional line (at 26.67 -1.27 180) (length 2.54) 135 | (name "SPIQ" (effects (font (size 1.27 1.27)))) 136 | (number "35" (effects (font (size 1.27 1.27)))) 137 | ) 138 | (pin bidirectional line (at 26.67 1.27 180) (length 2.54) 139 | (name "SPID" (effects (font (size 1.27 1.27)))) 140 | (number "36" (effects (font (size 1.27 1.27)))) 141 | ) 142 | (pin bidirectional line (at 26.67 3.81 180) (length 2.54) 143 | (name "GPIO33" (effects (font (size 1.27 1.27)))) 144 | (number "37" (effects (font (size 1.27 1.27)))) 145 | ) 146 | (pin bidirectional line (at 26.67 6.35 180) (length 2.54) 147 | (name "GPIO34" (effects (font (size 1.27 1.27)))) 148 | (number "38" (effects (font (size 1.27 1.27)))) 149 | ) 150 | (pin bidirectional line (at 26.67 8.89 180) (length 2.54) 151 | (name "GPIO35" (effects (font (size 1.27 1.27)))) 152 | (number "39" (effects (font (size 1.27 1.27)))) 153 | ) 154 | (pin bidirectional line (at -26.67 8.89 0) (length 2.54) 155 | (name "VDD3P3" (effects (font (size 1.27 1.27)))) 156 | (number "4" (effects (font (size 1.27 1.27)))) 157 | ) 158 | (pin bidirectional line (at 26.67 11.43 180) (length 2.54) 159 | (name "GPIO36" (effects (font (size 1.27 1.27)))) 160 | (number "40" (effects (font (size 1.27 1.27)))) 161 | ) 162 | (pin bidirectional line (at 26.67 13.97 180) (length 2.54) 163 | (name "GPIO37" (effects (font (size 1.27 1.27)))) 164 | (number "41" (effects (font (size 1.27 1.27)))) 165 | ) 166 | (pin bidirectional line (at 26.67 16.51 180) (length 2.54) 167 | (name "GPIO38" (effects (font (size 1.27 1.27)))) 168 | (number "42" (effects (font (size 1.27 1.27)))) 169 | ) 170 | (pin bidirectional line (at 16.51 26.67 270) (length 2.54) 171 | (name "MTCK" (effects (font (size 1.27 1.27)))) 172 | (number "43" (effects (font (size 1.27 1.27)))) 173 | ) 174 | (pin bidirectional line (at 13.97 26.67 270) (length 2.54) 175 | (name "MTDO0" (effects (font (size 1.27 1.27)))) 176 | (number "44" (effects (font (size 1.27 1.27)))) 177 | ) 178 | (pin bidirectional line (at 11.43 26.67 270) (length 2.54) 179 | (name "VDD3P3_CPU" (effects (font (size 1.27 1.27)))) 180 | (number "45" (effects (font (size 1.27 1.27)))) 181 | ) 182 | (pin bidirectional line (at 8.89 26.67 270) (length 2.54) 183 | (name "MTDI" (effects (font (size 1.27 1.27)))) 184 | (number "46" (effects (font (size 1.27 1.27)))) 185 | ) 186 | (pin bidirectional line (at 6.35 26.67 270) (length 2.54) 187 | (name "MTMS" (effects (font (size 1.27 1.27)))) 188 | (number "47" (effects (font (size 1.27 1.27)))) 189 | ) 190 | (pin bidirectional line (at 3.81 26.67 270) (length 2.54) 191 | (name "U0TXD" (effects (font (size 1.27 1.27)))) 192 | (number "48" (effects (font (size 1.27 1.27)))) 193 | ) 194 | (pin bidirectional line (at 1.27 26.67 270) (length 2.54) 195 | (name "U0XD" (effects (font (size 1.27 1.27)))) 196 | (number "49" (effects (font (size 1.27 1.27)))) 197 | ) 198 | (pin bidirectional line (at -26.67 6.35 0) (length 2.54) 199 | (name "GPIO0" (effects (font (size 1.27 1.27)))) 200 | (number "5" (effects (font (size 1.27 1.27)))) 201 | ) 202 | (pin bidirectional line (at -1.27 26.67 270) (length 2.54) 203 | (name "GPIO45" (effects (font (size 1.27 1.27)))) 204 | (number "50" (effects (font (size 1.27 1.27)))) 205 | ) 206 | (pin bidirectional line (at -3.81 26.67 270) (length 2.54) 207 | (name "VDDA" (effects (font (size 1.27 1.27)))) 208 | (number "51" (effects (font (size 1.27 1.27)))) 209 | ) 210 | (pin bidirectional line (at -6.35 26.67 270) (length 2.54) 211 | (name "XTAL_N" (effects (font (size 1.27 1.27)))) 212 | (number "52" (effects (font (size 1.27 1.27)))) 213 | ) 214 | (pin bidirectional line (at -8.89 26.67 270) (length 2.54) 215 | (name "XTAL_P" (effects (font (size 1.27 1.27)))) 216 | (number "53" (effects (font (size 1.27 1.27)))) 217 | ) 218 | (pin bidirectional line (at -11.43 26.67 270) (length 2.54) 219 | (name "VDDA" (effects (font (size 1.27 1.27)))) 220 | (number "54" (effects (font (size 1.27 1.27)))) 221 | ) 222 | (pin bidirectional line (at -13.97 26.67 270) (length 2.54) 223 | (name "GPIO46" (effects (font (size 1.27 1.27)))) 224 | (number "55" (effects (font (size 1.27 1.27)))) 225 | ) 226 | (pin bidirectional line (at -16.51 26.67 270) (length 2.54) 227 | (name "CHIP_PU" (effects (font (size 1.27 1.27)))) 228 | (number "56" (effects (font (size 1.27 1.27)))) 229 | ) 230 | (pin bidirectional line (at -20.32 26.67 270) (length 2.54) 231 | (name "GND" (effects (font (size 1.27 1.27)))) 232 | (number "57" (effects (font (size 1.27 1.27)))) 233 | ) 234 | (pin bidirectional line (at -26.67 3.81 0) (length 2.54) 235 | (name "GPIO1" (effects (font (size 1.27 1.27)))) 236 | (number "6" (effects (font (size 1.27 1.27)))) 237 | ) 238 | (pin bidirectional line (at -26.67 1.27 0) (length 2.54) 239 | (name "GPIO2" (effects (font (size 1.27 1.27)))) 240 | (number "7" (effects (font (size 1.27 1.27)))) 241 | ) 242 | (pin bidirectional line (at -26.67 -1.27 0) (length 2.54) 243 | (name "GPIO3" (effects (font (size 1.27 1.27)))) 244 | (number "8" (effects (font (size 1.27 1.27)))) 245 | ) 246 | (pin bidirectional line (at -26.67 -3.81 0) (length 2.54) 247 | (name "GPIO4" (effects (font (size 1.27 1.27)))) 248 | (number "9" (effects (font (size 1.27 1.27)))) 249 | ) 250 | ) 251 | ) 252 | ) 253 | -------------------------------------------------------------------------------- /parts/localparts.pretty/ESP32S2.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "ESP32S2" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 5DC5F6A5) 4 | (descr "QFN, 56 Pin (http://www.cypress.com/file/416486/download#page=40), generated with kicad-footprint-generator ipc_noLead_generator.py") 5 | (tags "QFN NoLead") 6 | (attr smd) 7 | (fp_text reference "REF**" (at 0 -4.82) (layer "F.SilkS") 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | (tstamp 1cb41492-bb93-4790-ad58-0f20773d1f59) 10 | ) 11 | (fp_text value "ESP32S2" (at 0 4.82) (layer "F.Fab") 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | (tstamp b083abe2-0457-4996-a931-50814a9c1d4b) 14 | ) 15 | (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") 16 | (effects (font (size 1 1) (thickness 0.15))) 17 | (tstamp 7602d57d-0ec6-45eb-9694-c6ae1a760741) 18 | ) 19 | (fp_line (start 3.61 -3.61) (end 3.61 -2.96) (layer "F.SilkS") (width 0.12) (tstamp 143843d9-5b2b-4149-9a31-87496276e62e)) 20 | (fp_line (start 2.96 -3.61) (end 3.61 -3.61) (layer "F.SilkS") (width 0.12) (tstamp 1ce4caf8-c8bb-4fee-96d4-66c6c11818f1)) 21 | (fp_line (start -3.61 3.61) (end -3.61 2.96) (layer "F.SilkS") (width 0.12) (tstamp 28e3cecb-5b2d-440e-975c-84c54fd48764)) 22 | (fp_line (start -2.96 3.61) (end -3.61 3.61) (layer "F.SilkS") (width 0.12) (tstamp 33148282-40c9-4cda-b710-b4676c401c9e)) 23 | (fp_line (start -2.96 -3.61) (end -3.61 -3.61) (layer "F.SilkS") (width 0.12) (tstamp 63b300c0-d2bd-467a-a60a-7afd101321d8)) 24 | (fp_line (start 2.96 3.61) (end 3.61 3.61) (layer "F.SilkS") (width 0.12) (tstamp 75376d1a-b1cd-48ca-bb23-11e604649e2c)) 25 | (fp_line (start 3.61 3.61) (end 3.61 2.96) (layer "F.SilkS") (width 0.12) (tstamp ae450cc7-7def-4688-a990-071728b5d6c1)) 26 | (fp_line (start 4.12 4.12) (end 4.12 -4.12) (layer "F.CrtYd") (width 0.05) (tstamp 24d84152-bd16-42f0-b31c-da5c0075c0a9)) 27 | (fp_line (start -4.12 4.12) (end 4.12 4.12) (layer "F.CrtYd") (width 0.05) (tstamp 4a43d0e8-6681-4990-bf2a-d86962571c6c)) 28 | (fp_line (start 4.12 -4.12) (end -4.12 -4.12) (layer "F.CrtYd") (width 0.05) (tstamp cceb0992-d7b0-445b-8d5b-32d0d8fb8730)) 29 | (fp_line (start -4.12 -4.12) (end -4.12 4.12) (layer "F.CrtYd") (width 0.05) (tstamp f00de455-d6a3-446a-aed3-4d3f2a1d79a7)) 30 | (fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer "F.Fab") (width 0.1) (tstamp 6dd7f30c-e337-4ce2-8c91-e9492994a612)) 31 | (fp_line (start 3.5 3.5) (end -3.5 3.5) (layer "F.Fab") (width 0.1) (tstamp 9478caeb-b727-455b-93f6-4a7ba6bf88ff)) 32 | (fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer "F.Fab") (width 0.1) (tstamp 964fef0c-28c1-487d-979d-e51467c515ad)) 33 | (fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer "F.Fab") (width 0.1) (tstamp e31d6a06-a105-4ec5-90bf-40066b0d8ad4)) 34 | (fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer "F.Fab") (width 0.1) (tstamp fd3e7550-b460-4c66-9cde-67bd2357b67b)) 35 | (pad "" smd roundrect (at 1.39 -1.39) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp 007123eb-cc07-4198-b53c-eb2ffb48a955)) 36 | (pad "" smd roundrect (at 1.39 0.01) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp 14d0da6f-9850-487b-bd20-464b22ec06c3)) 37 | (pad "" smd roundrect (at -1.41 -1.39) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp 1bbad125-0d52-4c43-a244-9bb0e1bd9330)) 38 | (pad "" smd roundrect (at 1.39 1.41) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp 429b569e-2ded-491e-b5a3-5fd6415c5df9)) 39 | (pad "" smd roundrect (at -0.01 -1.39) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp 798d2107-a73f-4830-9556-4ff81144bbce)) 40 | (pad "" smd roundrect (at -0.01 1.41) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp 7d0b040a-02c1-46cc-86f8-9545b08e89b9)) 41 | (pad "" smd roundrect (at -1.41 1.41) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp d8d1d8af-f68f-475a-87c6-454c7c5474b5)) 42 | (pad "" smd roundrect (at -1.41 0.01) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp e016afbe-1040-4611-936d-0c20d48b8bd7)) 43 | (pad "" smd roundrect (at -0.01 0.01) (size 1.13 1.13) (layers "F.Paste") (roundrect_rratio 0.221239) (tstamp f7d7c5a0-f2af-4f33-92e7-dc77c486f00c)) 44 | (pad "1" smd roundrect (at -3.4375 -2.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp c7b2dfb2-c297-4775-bd8d-089f60c7f5c8)) 45 | (pad "2" smd roundrect (at -3.4375 -2.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 96efaa14-69c7-43f1-99ef-d01236e1a38c)) 46 | (pad "3" smd roundrect (at -3.4375 -1.8) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 887a9c86-b2af-497c-a44d-ba6d3b6eee34)) 47 | (pad "4" smd roundrect (at -3.4375 -1.4) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp a4c866ab-a81b-4914-a82c-4af5068226be)) 48 | (pad "5" smd roundrect (at -3.4375 -1) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 319c4bb4-77f6-475b-a1e8-482e167b57ca)) 49 | (pad "6" smd roundrect (at -3.4375 -0.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 44343f1b-3511-4672-8759-abd5eef10cae)) 50 | (pad "7" smd roundrect (at -3.4375 -0.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 67f19c8d-8979-4413-b403-af166a4bcc58)) 51 | (pad "8" smd roundrect (at -3.4375 0.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 8e4d7d65-0971-4417-a795-e7ff376ffc5d)) 52 | (pad "9" smd roundrect (at -3.4375 0.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 7e33e4ab-fed5-4093-8dc7-44ccc10980e1)) 53 | (pad "10" smd roundrect (at -3.4375 1) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 5e1c2358-e06a-4178-a65d-3bf67a4ad21c)) 54 | (pad "11" smd roundrect (at -3.4375 1.4) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 6804eff7-f37b-4022-9c54-d351dccc84eb)) 55 | (pad "12" smd roundrect (at -3.4375 1.8) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 5e8d90bc-2fe1-4989-a471-1cceb269bd73)) 56 | (pad "13" smd roundrect (at -3.4375 2.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 0da88f34-3793-44c0-8143-7f0dea1a4314)) 57 | (pad "14" smd roundrect (at -3.4375 2.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 09963381-f1a7-4c31-9958-ca5cb9dc7851)) 58 | (pad "15" smd roundrect (at -2.6 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp dba53c32-257a-4c9c-aea8-082fff066384)) 59 | (pad "16" smd roundrect (at -2.2 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp a3a33519-a8d7-4b84-be08-51a5335fe175)) 60 | (pad "17" smd roundrect (at -1.8 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp f17a8568-d5be-4c65-a695-e83f5cdf9445)) 61 | (pad "18" smd roundrect (at -1.4 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 5cdf8853-e1e4-4897-89a7-7b632a6efa32)) 62 | (pad "19" smd roundrect (at -1 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp d0d3c6ef-4125-4dc5-b5ad-5da5a2561954)) 63 | (pad "20" smd roundrect (at -0.6 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 16009885-a147-43ed-872a-45cc04729c13)) 64 | (pad "21" smd roundrect (at -0.2 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 3ad23e03-d2b3-45b0-96b4-e49fcc75a345)) 65 | (pad "22" smd roundrect (at 0.2 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp a990de91-5995-4cff-94bb-31570e219c84)) 66 | (pad "23" smd roundrect (at 0.6 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 254019b0-e277-429d-a55f-a9d08453afdf)) 67 | (pad "24" smd roundrect (at 1 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 15c23a20-506a-4d56-9a2a-d884b9d6198c)) 68 | (pad "25" smd roundrect (at 1.4 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 0be7c0f3-fc66-4a46-98fd-a6fddd642a97)) 69 | (pad "26" smd roundrect (at 1.8 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e55551c2-9727-4f82-8965-442f2de0297a)) 70 | (pad "27" smd roundrect (at 2.2 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 10390f88-05f9-4e11-a7da-0544f9016d20)) 71 | (pad "28" smd roundrect (at 2.6 3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp c0ab3a28-2ebf-44f5-9999-a96d24c577ef)) 72 | (pad "29" smd roundrect (at 3.4375 2.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 5549a141-bd37-4941-bf43-9377fe64f8b8)) 73 | (pad "30" smd roundrect (at 3.4375 2.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp ddce157f-e5cf-4d3a-9d41-9b248cb3ff94)) 74 | (pad "31" smd roundrect (at 3.4375 1.8) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 9c2ce4c2-4359-4c69-b300-98ae259e675f)) 75 | (pad "32" smd roundrect (at 3.4375 1.4) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp ebe8908f-cbd0-4002-aa82-aec841dec7a0)) 76 | (pad "33" smd roundrect (at 3.4375 1) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 807695a7-b8c4-48b1-895b-48a01f30d2ff)) 77 | (pad "34" smd roundrect (at 3.4375 0.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp d9d74ddf-dbf5-42e7-b795-43c2a39794c3)) 78 | (pad "35" smd roundrect (at 3.4375 0.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 25f7a118-ae51-4579-b07d-4055183275f0)) 79 | (pad "36" smd roundrect (at 3.4375 -0.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 28d5738d-b02a-45dc-b853-c32eacab6460)) 80 | (pad "37" smd roundrect (at 3.4375 -0.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp f945430f-d0c0-45b7-9474-d4928893c459)) 81 | (pad "38" smd roundrect (at 3.4375 -1) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 9343fc0a-33d3-4c32-83e4-d4375dedea11)) 82 | (pad "39" smd roundrect (at 3.4375 -1.4) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 1018c1f0-8364-4603-9eb7-871c47a0edd9)) 83 | (pad "40" smd roundrect (at 3.4375 -1.8) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 57d9ae23-160d-46fc-8542-0761f66cbb54)) 84 | (pad "41" smd roundrect (at 3.4375 -2.2) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e768590b-fd92-4808-8b5c-c538a5d71353)) 85 | (pad "42" smd roundrect (at 3.4375 -2.6) (size 0.875 0.2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 36330616-c7ee-47cb-a9a2-2c08f9379b75)) 86 | (pad "43" smd roundrect (at 2.6 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp f8d40dea-ce23-49a3-959a-4c9beb32562e)) 87 | (pad "44" smd roundrect (at 2.2 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 1a44131e-010d-4427-99b4-adce439b4f96)) 88 | (pad "45" smd roundrect (at 1.8 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 5d93abe2-4532-4ea6-9697-91c5148b5895)) 89 | (pad "46" smd roundrect (at 1.4 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp ccd0074a-1ef0-4248-9305-14c53f69babc)) 90 | (pad "47" smd roundrect (at 1 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 645e2e12-0daf-40c6-a7dd-ca600e9603e8)) 91 | (pad "48" smd roundrect (at 0.6 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 83e08de6-7ccd-4d47-9971-4da79778fa87)) 92 | (pad "49" smd roundrect (at 0.2 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e0b56605-8256-4030-b90e-875ee0e71a8d)) 93 | (pad "50" smd roundrect (at -0.2 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 08f03e47-fe87-40d7-900f-6d6289046a31)) 94 | (pad "51" smd roundrect (at -0.6 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 838fcb00-5128-4f30-9cee-70ba20819dc6)) 95 | (pad "52" smd roundrect (at -1 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 688210ff-9853-432c-a726-b0b425cde226)) 96 | (pad "53" smd roundrect (at -1.4 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 247657c3-72e1-4b9b-a4c3-eadc80c2ec1a)) 97 | (pad "54" smd roundrect (at -1.8 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp d2bb7984-ebbb-4e51-b516-a37fe7852441)) 98 | (pad "55" smd roundrect (at -2.2 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 0e4964e6-9cba-4f92-89e6-e4cbbd69b948)) 99 | (pad "56" smd roundrect (at -2.6 -3.4375) (size 0.2 0.875) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp ab8fa6cb-13a9-4f3f-b0ca-4d49ee4c0849)) 100 | (pad "57" smd rect (at 0 0) (size 4 4) (layers "F.Cu" "F.Mask") (tstamp e9c5dcde-1025-4724-ab6b-fa143326a9b2)) 101 | (model "${KICAD6_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mm.wrl" 102 | (offset (xyz 0 0 0)) 103 | (scale (xyz 1 1 1)) 104 | (rotate (xyz 0 0 0)) 105 | ) 106 | ) 107 | -------------------------------------------------------------------------------- /parts/minifet.bak: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "minifet-gsd" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 7.62 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "minifet-gsd" (id 1) (at 0 -5.08 0) 7 | (effects (font (size 1.27 1.27)) hide) 8 | ) 9 | (property "Footprint" "" (id 2) (at 0 -2.54 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 -2.54 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (symbol "minifet-gsd_0_1" 16 | (rectangle (start -1.27 3.81) (end 1.27 -3.81) 17 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 18 | (fill (type background)) 19 | ) 20 | ) 21 | (symbol "minifet-gsd_1_1" 22 | (pin input line (at -3.81 0 0) (length 2.54) 23 | (name "G" (effects (font (size 1.27 1.27)))) 24 | (number "1" (effects (font (size 1.27 1.27)))) 25 | ) 26 | (pin input line (at -3.81 -2.54 0) (length 2.54) 27 | (name "S" (effects (font (size 1.27 1.27)))) 28 | (number "2" (effects (font (size 1.27 1.27)))) 29 | ) 30 | (pin input line (at -3.81 2.54 0) (length 2.54) 31 | (name "D" (effects (font (size 1.27 1.27)))) 32 | (number "3" (effects (font (size 1.27 1.27)))) 33 | ) 34 | ) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /parts/minifet.kicad_sym: -------------------------------------------------------------------------------- 1 | (kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) 2 | (symbol "minifet-gsd" (in_bom yes) (on_board yes) 3 | (property "Reference" "U" (id 0) (at 0 7.62 0) 4 | (effects (font (size 1.27 1.27))) 5 | ) 6 | (property "Value" "minifet-gsd" (id 1) (at 0 -5.08 0) 7 | (effects (font (size 1.27 1.27)) hide) 8 | ) 9 | (property "Footprint" "" (id 2) (at 0 -2.54 0) 10 | (effects (font (size 1.27 1.27)) hide) 11 | ) 12 | (property "Datasheet" "" (id 3) (at 0 -2.54 0) 13 | (effects (font (size 1.27 1.27)) hide) 14 | ) 15 | (symbol "minifet-gsd_0_1" 16 | (rectangle (start -1.27 3.81) (end 1.27 -3.81) 17 | (stroke (width 0.1524) (type default) (color 0 0 0 0)) 18 | (fill (type background)) 19 | ) 20 | ) 21 | (symbol "minifet-gsd_1_1" 22 | (pin input line (at -3.81 0 0) (length 2.54) 23 | (name "G" (effects (font (size 1.27 1.27)))) 24 | (number "1" (effects (font (size 1.27 1.27)))) 25 | ) 26 | (pin input line (at -3.81 -2.54 0) (length 2.54) 27 | (name "S" (effects (font (size 1.27 1.27)))) 28 | (number "2" (effects (font (size 1.27 1.27)))) 29 | ) 30 | (pin input line (at -3.81 2.54 0) (length 2.54) 31 | (name "D" (effects (font (size 1.27 1.27)))) 32 | (number "3" (effects (font (size 1.27 1.27)))) 33 | ) 34 | ) 35 | ) 36 | ) 37 | -------------------------------------------------------------------------------- /parts/ncp81166.pretty/ncp81166.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "ncp81166" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 5EA4BCEE) 4 | (descr "DFN8 2x2, 0.5P; CASE 506CN (see ON Semiconductor 506CN.PDF)") 5 | (tags "DFN 0.5") 6 | (attr smd) 7 | (fp_text reference "REF**" (at 0 -2) (layer "F.SilkS") 8 | (effects (font (size 1 1) (thickness 0.15))) 9 | (tstamp c1578d0f-bf1a-4b68-9ef4-bb59993fd61e) 10 | ) 11 | (fp_text value "ncp81166" (at 0 2) (layer "F.Fab") 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | (tstamp d2224e5e-2104-4ac5-b101-1c2c6c7eddeb) 14 | ) 15 | (fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab") 16 | (effects (font (size 0.4 0.4) (thickness 0.06))) 17 | (tstamp 37d0e36e-c631-496b-bc8d-d41f89edc145) 18 | ) 19 | (fp_line (start 0 -1.1) (end 1 -1.1) (layer "F.SilkS") (width 0.12) (tstamp b62aa204-4116-42d4-826d-ab58a580dd60)) 20 | (fp_line (start -1 1.1) (end 1 1.1) (layer "F.SilkS") (width 0.12) (tstamp e5ee7c39-f9bd-47c3-82a5-8d3984367396)) 21 | (fp_line (start 1.4 -1.25) (end 1.4 1.25) (layer "F.CrtYd") (width 0.05) (tstamp 2d5a9a0e-c7ff-4000-a5c8-5bcf6f793840)) 22 | (fp_line (start -1.4 -1.25) (end -1.4 1.25) (layer "F.CrtYd") (width 0.05) (tstamp cb82433d-2d45-40c2-9f62-412cd513191d)) 23 | (fp_line (start -1.4 -1.25) (end 1.4 -1.25) (layer "F.CrtYd") (width 0.05) (tstamp e470d899-c96d-49bd-ae66-1aafb48cb806)) 24 | (fp_line (start -1.4 1.25) (end 1.4 1.25) (layer "F.CrtYd") (width 0.05) (tstamp f6526cc2-9c9d-461f-99c3-b8e016932e83)) 25 | (fp_line (start -1 -0.5) (end -0.5 -1) (layer "F.Fab") (width 0.1) (tstamp 02cf352b-8049-4b71-b207-d23d66ea6190)) 26 | (fp_line (start 1 1) (end -1 1) (layer "F.Fab") (width 0.1) (tstamp 3c777ce9-8d32-4d0c-bf00-af81d6ca26f3)) 27 | (fp_line (start -1 1) (end -1 -0.5) (layer "F.Fab") (width 0.1) (tstamp 6bfeda2a-2153-4bf1-bad3-618b2878c5ef)) 28 | (fp_line (start 1 -1) (end 1 1) (layer "F.Fab") (width 0.1) (tstamp 893dd265-ee84-40ac-988e-ec7198734ae8)) 29 | (fp_line (start -0.5 -1) (end 1 -1) (layer "F.Fab") (width 0.1) (tstamp d8c70a2d-1d65-4e8f-92b0-5c2aa7befd9b)) 30 | (pad "" smd rect (at 0 -0.4375) (size 0.85 0.65) (layers "F.Paste") (tstamp 13b3e83f-08a1-4f94-837d-45231570ed1b)) 31 | (pad "" smd rect (at 0 0.4375) (size 0.85 0.65) (layers "F.Paste") (tstamp 198ee4ab-70ea-4888-a040-261d9e4cd8ed)) 32 | (pad "1" smd rect (at -0.92 -0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp b0ec93a9-e40a-4ac1-941a-65daba69d34e)) 33 | (pad "2" smd rect (at -0.92 -0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 02020837-4d0f-4708-8b79-a9c0a8d7cb98)) 34 | (pad "3" smd rect (at -0.92 0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 91073940-9bdf-48d6-a736-9dc739f87bc0)) 35 | (pad "4" smd rect (at -0.92 0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c4e7bc1d-ccdd-4318-89bd-d210e4d640cf)) 36 | (pad "5" smd rect (at 0.92 0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 57570d14-91a8-4aa7-bca7-1022b7f77101)) 37 | (pad "6" smd rect (at 0.92 0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp e15d7e7d-b192-4300-ae5b-f6c3d6a63c1a)) 38 | (pad "7" smd rect (at 0.92 -0.25) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp f7a7540b-7756-42b9-9f67-2b98b18c8de5)) 39 | (pad "8" smd rect (at 0.92 -0.75) (size 0.5 0.3) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 68c8be29-46a7-47e8-b09e-138e72d8fa22)) 40 | (pad "9" smd rect (at 0 0) (size 0.98 1.68) (layers "F.Cu" "F.Mask") (tstamp ebdb7563-d301-41fe-84ef-6da4247afb39)) 41 | (model "${KICAD6_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/DFN-8-1EP_2x2mm_P0.5mm_EP1.05x1.75mm.wrl" 42 | (offset (xyz 0 0 0)) 43 | (scale (xyz 1 1 1)) 44 | (rotate (xyz 0 0 0)) 45 | ) 46 | ) 47 | -------------------------------------------------------------------------------- /parts/neonglow.pretty/neonglow.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "neonglow" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0.1 -1.55 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp e2ddb539-ced3-4760-9ce6-89b2c01fe280) 8 | ) 9 | (fp_text value "neonglow" (at 0 1 unlocked) (layer "F.Fab") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp 1b066296-d351-4b63-9889-59ea93d812e8) 12 | ) 13 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab") 14 | (effects (font (size 1 1) (thickness 0.15))) 15 | (tstamp af140343-18fd-4722-b8d2-d1cb5519ead8) 16 | ) 17 | (pad "1" thru_hole roundrect (at -1.1 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (roundrect_rratio 0.1) (tstamp 33d351ad-2c8b-491b-91d1-4a141dedc454)) 18 | (pad "2" thru_hole circle (at 1.15 0) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask) (tstamp 88482717-90ac-437d-a29e-71f236795325)) 19 | ) 20 | -------------------------------------------------------------------------------- /parts/nixiehostslot.pretty/nixiehostslot.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "nixiehostslot" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 6440D4A0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0 -4.55 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp fe911e6b-75be-41c9-98fc-7d54d84e88f1) 8 | ) 9 | (fp_text value "nixiehostslot" (at 0 5.2 unlocked) (layer "F.Fab") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp 18eb51f4-1da9-4012-9af3-36bb40103d4e) 12 | ) 13 | (fp_line (start 1 0.9) (end -1 0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 2920fdbe-4e2f-4c65-9022-b2f7bdfc4f4b)) 14 | (fp_line (start -1.3 0.6) (end -1.3 -0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 2a0223a9-8ca3-49a6-a274-51467add25b7)) 15 | (fp_line (start 8.3 -0.6) (end 8.3 0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 2f403fce-2e4d-463e-8506-69bb1017220f)) 16 | (fp_line (start 5.7 0.6) (end 5.7 -0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 31d4221e-2fa6-404d-88d0-0c27e0a2a891)) 17 | (fp_line (start -1 -0.9) (end 1 -0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 88e0d012-d128-42d1-8aa3-3970708258cb)) 18 | (fp_line (start -6 0.9) (end -8 0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 95ac9c6d-21df-4a7c-9f66-c91a90627710)) 19 | (fp_line (start -8 -0.9) (end -6 -0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 97086afc-f6e1-4c15-8741-809d2c8ff0e3)) 20 | (fp_line (start 1.3 -0.6) (end 1.3 0.6) (layer "Edge.Cuts") (width 0.12) (tstamp d50eb406-3acf-4c30-8c60-f4062057c4fb)) 21 | (fp_line (start -8.3 0.6) (end -8.3 -0.6) (layer "Edge.Cuts") (width 0.12) (tstamp d82660a8-cd65-456e-846b-e22bb69c623e)) 22 | (fp_line (start 6 -0.9) (end 8 -0.9) (layer "Edge.Cuts") (width 0.12) (tstamp de70a81f-6d5f-4f18-a808-519743b7efa1)) 23 | (fp_line (start -5.7 -0.6) (end -5.7 0.6) (layer "Edge.Cuts") (width 0.12) (tstamp e49cc221-f749-4614-ad87-2b15d8fbbbca)) 24 | (fp_line (start 8 0.9) (end 6 0.9) (layer "Edge.Cuts") (width 0.12) (tstamp e5e2c968-1121-4b2a-b4f4-b0a121b15ea0)) 25 | (fp_arc (start -1.3 -0.6) (mid -1.212132 -0.812132) (end -1 -0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 28723d53-77ec-4298-a49e-df4bc7bb8f04)) 26 | (fp_arc (start -1 0.9) (mid -1.212132 0.812132) (end -1.3 0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 2ac13a6e-9c31-4b46-a477-3a79de8e8d9a)) 27 | (fp_arc (start -8 0.9) (mid -8.212132 0.812132) (end -8.3 0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 461b1ff3-bbcd-4f33-a06b-94a70ac63112)) 28 | (fp_arc (start -6 -0.9) (mid -5.787868 -0.812132) (end -5.7 -0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 5c087b6f-2d3f-45fc-b629-2d7acd0f9b0a)) 29 | (fp_arc (start 8.3 0.6) (mid 8.212132 0.812132) (end 8 0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 6bb8b83e-22c9-4c53-8101-0b9fa765d0b1)) 30 | (fp_arc (start -5.7 0.6) (mid -5.787868 0.812132) (end -6 0.9) (layer "Edge.Cuts") (width 0.12) (tstamp 8308a15b-6ac9-49e7-a8f6-20d1687650ce)) 31 | (fp_arc (start 1 -0.9) (mid 1.212132 -0.812132) (end 1.3 -0.6) (layer "Edge.Cuts") (width 0.12) (tstamp 8ba36ca3-a451-4b3d-a359-9ed5964604da)) 32 | (fp_arc (start 5.7 -0.6) (mid 5.787868 -0.812132) (end 6 -0.9) (layer "Edge.Cuts") (width 0.12) (tstamp a696d7c1-06ef-4e92-b12c-2d0c9618e0e6)) 33 | (fp_arc (start -8.3 -0.6) (mid -8.212132 -0.812132) (end -8 -0.9) (layer "Edge.Cuts") (width 0.12) (tstamp adec9b46-4725-472c-b5c0-85b8b9669b5a)) 34 | (fp_arc (start 1.3 0.6) (mid 1.212132 0.812132) (end 1 0.9) (layer "Edge.Cuts") (width 0.12) (tstamp b52aa9d3-c48c-4689-acd8-3bf9b184e5a8)) 35 | (fp_arc (start 8 -0.9) (mid 8.212132 -0.812132) (end 8.3 -0.6) (layer "Edge.Cuts") (width 0.12) (tstamp bf3b7739-9727-42b2-afc3-e6062a4eac75)) 36 | (fp_arc (start 6 0.9) (mid 5.787868 0.812132) (end 5.7 0.6) (layer "Edge.Cuts") (width 0.12) (tstamp c04cdb91-53a8-43c8-9b81-8065d6b1a236)) 37 | (pad "1" thru_hole roundrect (at -7 0) (size 3.6 3) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (tstamp b09bfdd1-4769-464b-8514-23dcad4f7f4a)) 38 | (pad "2" thru_hole roundrect (at 0 0) (size 3.6 3) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (tstamp 2e69b0d1-4198-4bb1-a480-09dad95e98e8)) 39 | (pad "3" thru_hole roundrect (at 7 0) (size 3.6 3) (layers *.Cu *.Mask) (roundrect_rratio 0.25) (tstamp 4207e2dd-1007-41a9-a521-1437ef1419eb)) 40 | ) 41 | -------------------------------------------------------------------------------- /parts/pmpack3_dualfet.pretty/pmpack3_dualfet.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "pmpack3_dualfet" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (attr smd) 5 | (fp_text reference "REF**" (at 0 -4 unlocked) (layer "F.SilkS") 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | (tstamp 430283cc-822e-49c1-aa29-620b03fd8b4d) 8 | ) 9 | (fp_text value "pmpack3_dualfet" (at 0.44 5.46 unlocked) (layer "F.Fab") 10 | (effects (font (size 1 1) (thickness 0.15))) 11 | (tstamp 64b4c15c-81a7-45cd-82fc-2ed2538b60de) 12 | ) 13 | (fp_line (start -1.8 -1.3) (end -1.8 -1.8) (layer "F.SilkS") (width 0.12) (tstamp 2adc5a76-0eb9-4af3-bb25-cb2271d3c428)) 14 | (fp_line (start -1.9 -1.6) (end -1.9 -1.9) (layer "F.SilkS") (width 0.12) (tstamp 6303fcd1-3035-486e-9815-2cb655a585bc)) 15 | (fp_line (start -1.8 -1.8) (end 1.8 -1.8) (layer "F.SilkS") (width 0.12) (tstamp 644ef80f-a823-40e5-bfc3-2296d03ea5a2)) 16 | (fp_line (start 1.8 1.8) (end -1.8 1.8) (layer "F.SilkS") (width 0.12) (tstamp 740ff220-9357-4584-9c8e-d4f5815137ce)) 17 | (fp_line (start 1.8 -1.8) (end 1.8 -1.3) (layer "F.SilkS") (width 0.12) (tstamp 9210a120-58ee-4157-8445-529c690cdce0)) 18 | (fp_line (start -1.8 1.8) (end -1.8 1.3) (layer "F.SilkS") (width 0.12) (tstamp a6c8a09d-6866-4c5a-8310-501d5ec370b2)) 19 | (fp_line (start -1.9 -1.9) (end -1.6 -1.9) (layer "F.SilkS") (width 0.12) (tstamp aade6637-88b1-4ba5-8b5c-c3e8d405fb12)) 20 | (fp_line (start 1.8 1.3) (end 1.8 1.8) (layer "F.SilkS") (width 0.12) (tstamp fa009e91-f441-468f-837c-c68446c98053)) 21 | (pad "1" smd roundrect (at -1.5 -0.975) (size 0.5 0.35) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 2022783d-a9a8-42af-a9a3-b2e1edb42a2d)) 22 | (pad "2" smd roundrect (at -1.5 -0.325) (size 0.5 0.35) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 594cb8ce-7cc0-48dd-9d89-1df8c0a6841d)) 23 | (pad "3" smd roundrect (at -1.5 0.325) (size 0.5 0.35) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp e8453b3b-538f-4d02-b0ea-e0e46e39aaac)) 24 | (pad "4" smd roundrect (at -1.5 0.975) (size 0.5 0.35) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 95b4c62f-f66b-4751-a785-7ea64a616911)) 25 | (pad "5" smd roundrect (at 0 1.4) (size 0.4 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05) (tstamp 37da20d2-a563-4d1c-86d0-f8de703b36f3)) 26 | (pad "5" smd roundrect (at 0.65 0.7) (size 2.2 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05) (tstamp 5a8c1494-5ff0-431e-af34-c4bc9755ba42)) 27 | (pad "7" smd roundrect (at 0.65 -0.7) (size 2.2 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05) (tstamp 64b87888-5a6e-4013-97f7-323db7781294)) 28 | (pad "7" smd roundrect (at 0 -1.4) (size 0.4 1.1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.05) (tstamp efaa8376-ce7f-4cc0-8120-9fec4ccc5d17)) 29 | ) 30 | -------------------------------------------------------------------------------- /parts/rawpad22.pretty/rawpad22.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "rawpad22" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (property "Sheetfile" "nixitest1.kicad_sch") 5 | (property "Sheetname" "") 6 | (attr smd) 7 | (fp_text reference "J?" (at 0 -0.5 unlocked) (layer "F.SilkS") hide 8 | (effects (font (size 0.7 0.7) (thickness 0.1))) 9 | (tstamp 44e6f670-39fd-4f57-8f9d-d718f2720744) 10 | ) 11 | (fp_text value "~" (at 0 1 unlocked) (layer "F.Fab") hide 12 | (effects (font (size 1 1) (thickness 0.15))) 13 | (tstamp 59a3d188-f76a-421b-8f80-779f4c5b031e) 14 | ) 15 | (fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab") hide 16 | (effects (font (size 1 1) (thickness 0.15))) 17 | (tstamp 94dd9f53-badd-482d-b3a8-28ddfce252cb) 18 | ) 19 | (pad "1" thru_hole rect (at 0 0) (size 1.75 1.75) (drill 0.9) (layers *.Cu *.Mask) (tstamp f2c62621-a09b-4af7-8795-43f085490e24)) 20 | ) 21 | -------------------------------------------------------------------------------- /parts/xdfn_reg.pretty/OnSemi_XDFN4-1EP_1.0x1.0mm_EP0.52x0.52mm.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "OnSemi_XDFN4-1EP_1.0x1.0mm_EP0.52x0.52mm" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 5F73D1DA) 4 | (descr "XDFN4 footprint (as found on the https://www.onsemi.com/pub/Collateral/NCP115-D.PDF)") 5 | (tags "OnSemi XDFN4") 6 | (property "LCSC" "C697973") 7 | (property "Sheetfile" "File: esp32s2withqpd.kicad_sch") 8 | (property "Sheetname" "") 9 | (attr smd) 10 | (fp_text reference "U1" (at 0.04 2.38 unlocked) (layer "F.SilkS") 11 | (effects (font (size 0.6 0.6) (thickness 0.1))) 12 | (tstamp 37391981-f54c-4e94-b3e1-98811733ec20) 13 | ) 14 | (fp_text value "DFNREG" (at 0.11 -1.78 unlocked) (layer "F.Fab") 15 | (effects (font (size 1 1) (thickness 0.15))) 16 | (tstamp de60fab4-37d1-40f2-b380-2a6e1472f709) 17 | ) 18 | (fp_text user "${REFERENCE}" (at 0.01 1.26 unlocked) (layer "F.Fab") 19 | (effects (font (size 1 1) (thickness 0.15))) 20 | (tstamp a5392ce6-670b-424d-957f-8ab236089277) 21 | ) 22 | (fp_line (start -0.72 -0.3) (end -0.72 0.86) (layer "F.SilkS") (width 0.1) (tstamp 0775b0f8-d6c3-4cc8-878a-f5a29302c020)) 23 | (fp_line (start 0.72 0.86) (end 0.72 -0.86) (layer "F.SilkS") (width 0.1) (tstamp 0fad0f62-34fd-41e2-a692-582a021dc622)) 24 | (fp_line (start 0.72 -0.86) (end -0.3 -0.86) (layer "F.SilkS") (width 0.1) (tstamp 68ca49c9-3739-4ed5-bf2e-ebe23a98b382)) 25 | (fp_line (start -0.72 0.86) (end 0.72 0.86) (layer "F.SilkS") (width 0.1) (tstamp 87b3ba04-8abf-45ef-be23-283fea62b7ba)) 26 | (fp_line (start 0.73 -0.87) (end 0.73 0.85) (layer "F.CrtYd") (width 0.05) (tstamp 3717a0b3-4755-4afa-93dc-7015cec141eb)) 27 | (fp_line (start 0.73 0.85) (end -0.73 0.85) (layer "F.CrtYd") (width 0.05) (tstamp 615dcff8-9479-4371-8e6d-58743d3a0e62)) 28 | (fp_line (start -0.73 -0.87) (end 0.73 -0.87) (layer "F.CrtYd") (width 0.05) (tstamp 723c5398-8304-4dd6-87be-e05e58f12fbc)) 29 | (fp_line (start -0.73 0.85) (end -0.73 -0.87) (layer "F.CrtYd") (width 0.05) (tstamp 7424bf33-d8fe-4dce-bdcf-ac2926415e2c)) 30 | (fp_line (start -0.25 -0.5) (end 0.5 -0.5) (layer "F.Fab") (width 0.1) (tstamp 1b310c9e-1d16-48ec-b053-29eeb86415be)) 31 | (fp_line (start -0.5 0.5) (end -0.5 -0.25) (layer "F.Fab") (width 0.1) (tstamp 1b83b7c9-30bc-4477-a070-3487e57c3f9b)) 32 | (fp_line (start 0.5 0.5) (end -0.5 0.5) (layer "F.Fab") (width 0.1) (tstamp 8c446a11-db92-41cb-9f4e-6807f629aa19)) 33 | (fp_line (start 0.5 -0.5) (end 0.5 0.5) (layer "F.Fab") (width 0.1) (tstamp c3cdc6a1-b2b6-4482-a976-6ed3e3837367)) 34 | (fp_line (start -0.5 -0.25) (end -0.25 -0.5) (layer "F.Fab") (width 0.1) (tstamp f858d785-f0e7-4972-ae27-14ce7b321cdf)) 35 | (pad "1" smd custom (at -0.35 -0.5 180) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 36 | (zone_connect 0) 37 | (options (clearance outline) (anchor rect)) 38 | (primitives 39 | (gr_poly (pts 40 | (xy 0.13 -0.115) 41 | (xy -0.13 -0.115) 42 | (xy 0.02 -0.275) 43 | (xy 0.13 -0.275) 44 | ) (width 0) (fill yes)) 45 | ) (tstamp e964247e-3412-4deb-8693-a976098c7f20)) 46 | (pad "2" smd custom (at 0.35 -0.5 180) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 47 | (zone_connect 0) 48 | (options (clearance outline) (anchor rect)) 49 | (primitives 50 | (gr_poly (pts 51 | (xy 0.13 -0.115) 52 | (xy -0.13 -0.115) 53 | (xy -0.13 -0.275) 54 | (xy -0.02 -0.275) 55 | ) (width 0) (fill yes)) 56 | ) (tstamp afa83457-9f76-4dd8-855e-53d5acf3a238)) 57 | (pad "3" smd custom (at 0.35 0.5) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 58 | (zone_connect 0) 59 | (options (clearance outline) (anchor rect)) 60 | (primitives 61 | (gr_poly (pts 62 | (xy 0.13 -0.115) 63 | (xy -0.13 -0.115) 64 | (xy 0.02 -0.275) 65 | (xy 0.13 -0.275) 66 | ) (width 0) (fill yes)) 67 | ) (tstamp f48b482e-ac2a-4d76-be93-8800ba535c3f)) 68 | (pad "4" smd custom (at -0.35 0.5) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 69 | (zone_connect 0) 70 | (options (clearance outline) (anchor rect)) 71 | (primitives 72 | (gr_poly (pts 73 | (xy 0.13 -0.115) 74 | (xy -0.13 -0.115) 75 | (xy -0.13 -0.275) 76 | (xy -0.02 -0.275) 77 | ) (width 0) (fill yes)) 78 | ) (tstamp 2577ba28-4b11-4c73-b03b-8590944e5165)) 79 | (pad "5" smd rect (at 0 0 45) (size 0.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp 6574bb21-8aff-4d11-bb11-523557e7cccf)) 80 | (model "${KICAD6_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/OnSemi_XDFN4-1EP_1.0x1.0mm_EP0.52x0.52mm.wrl" 81 | (offset (xyz 0 0 0)) 82 | (scale (xyz 1 1 1)) 83 | (rotate (xyz 0 0 0)) 84 | ) 85 | ) 86 | -------------------------------------------------------------------------------- /parts/xdfn_reg.pretty/xdfn-reg.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "xdfn-reg" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 63CC57F0) 4 | (descr "XDFN4 footprint (as found on the https://www.onsemi.com/pub/Collateral/NCP115-D.PDF)") 5 | (tags "OnSemi XDFN4") 6 | (property "LCSC" "C697973") 7 | (property "Sheetfile" "File: esp32s2withqpd.kicad_sch") 8 | (property "Sheetname" "") 9 | (attr smd) 10 | (fp_text reference "U1" (at 0.04 2.38 unlocked) (layer "F.SilkS") 11 | (effects (font (size 0.6 0.6) (thickness 0.1))) 12 | (tstamp 6e87a0b3-09b5-436b-8a7b-2aa6521616a8) 13 | ) 14 | (fp_text value "DFNREG" (at -0.1 1.6 unlocked) (layer "F.Fab") 15 | (effects (font (size 1 1) (thickness 0.15))) 16 | (tstamp 9b95b16b-c711-4707-be39-9747cb6168c1) 17 | ) 18 | (fp_text user "${REFERENCE}" (at 0 -1.8 unlocked) (layer "F.Fab") 19 | (effects (font (size 1 1) (thickness 0.15))) 20 | (tstamp d0c490df-4034-4c78-a272-5197d1305e21) 21 | ) 22 | (fp_line (start 0.72 0.85) (end 0.72 -0.86) (layer "F.SilkS") (width 0.1) (tstamp 3e01b318-d2f2-47e6-b6d0-b9a3d453d572)) 23 | (fp_line (start -0.72 -0.86) (end -0.72 0.48) (layer "F.SilkS") (width 0.1) (tstamp aac48d42-6774-4125-8636-cb27f14cc814)) 24 | (fp_line (start 0.72 0.85) (end -0.31 0.85) (layer "F.SilkS") (width 0.1) (tstamp c83ee589-2a8a-4166-bee2-d2f600b8d91e)) 25 | (fp_line (start 0.72 -0.86) (end -0.72 -0.86) (layer "F.SilkS") (width 0.1) (tstamp cc6bdaf2-bba1-43f8-b585-01e5e0a4e933)) 26 | (fp_line (start -0.73 0.87) (end -0.73 -0.85) (layer "F.CrtYd") (width 0.05) (tstamp 47b21206-2bc6-4886-9441-f9c17eb603c9)) 27 | (fp_line (start 0.73 0.87) (end -0.73 0.87) (layer "F.CrtYd") (width 0.05) (tstamp 5d1c3488-80c1-43d6-9c24-3a797f3280d3)) 28 | (fp_line (start 0.73 -0.85) (end 0.73 0.87) (layer "F.CrtYd") (width 0.05) (tstamp 7c38325d-2a7b-4ef1-8731-bd2c006274aa)) 29 | (fp_line (start -0.73 -0.85) (end 0.73 -0.85) (layer "F.CrtYd") (width 0.05) (tstamp e789bfc8-178a-4eb7-b963-96fdac438263)) 30 | (fp_line (start -0.5 0.5) (end -0.5 -0.5) (layer "F.Fab") (width 0.1) (tstamp 263177b2-207f-4961-ba18-09ab0e13b454)) 31 | (fp_line (start -0.5 -0.5) (end 0.5 -0.5) (layer "F.Fab") (width 0.1) (tstamp 51aa5974-d929-46b3-8ee3-ebc17e786460)) 32 | (fp_line (start 0.5 -0.5) (end 0.5 0.25) (layer "F.Fab") (width 0.1) (tstamp a0bee9ac-fe94-4a92-b8f3-ed10569c9623)) 33 | (fp_line (start 0.25 0.5) (end -0.5 0.5) (layer "F.Fab") (width 0.1) (tstamp dfa8b041-6c60-42ec-a63c-59fb6e85d246)) 34 | (fp_line (start 0.5 0.25) (end 0.25 0.5) (layer "F.Fab") (width 0.1) (tstamp eb7c0949-0d69-4374-87e9-fda3d2dbe9b0)) 35 | (pad "1" smd custom (at -0.35 0.5) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 36 | (zone_connect 0) 37 | (options (clearance outline) (anchor rect)) 38 | (primitives 39 | (gr_poly (pts 40 | (xy 0.13 -0.115) 41 | (xy -0.13 -0.115) 42 | (xy -0.13 -0.275) 43 | (xy -0.02 -0.275) 44 | ) (width 0) (fill yes)) 45 | ) (tstamp 241bf15b-6a2a-41ca-a8a6-96d3bd3cf47f)) 46 | (pad "2" smd custom (at 0.35 0.5) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 47 | (zone_connect 0) 48 | (options (clearance outline) (anchor rect)) 49 | (primitives 50 | (gr_poly (pts 51 | (xy 0.13 -0.115) 52 | (xy -0.13 -0.115) 53 | (xy 0.02 -0.275) 54 | (xy 0.13 -0.275) 55 | ) (width 0) (fill yes)) 56 | ) (tstamp cc2872e0-955f-47d5-b995-c3e65ac02d21)) 57 | (pad "3" smd custom (at 0.35 -0.5 180) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 58 | (zone_connect 0) 59 | (options (clearance outline) (anchor rect)) 60 | (primitives 61 | (gr_poly (pts 62 | (xy 0.13 -0.115) 63 | (xy -0.13 -0.115) 64 | (xy -0.13 -0.275) 65 | (xy -0.02 -0.275) 66 | ) (width 0) (fill yes)) 67 | ) (tstamp 1d388b12-1450-402f-b9bf-17c6ec3e09c5)) 68 | (pad "4" smd custom (at -0.35 -0.5 180) (size 0.26 0.23) (layers "F.Cu" "F.Paste" "F.Mask") 69 | (zone_connect 0) 70 | (options (clearance outline) (anchor rect)) 71 | (primitives 72 | (gr_poly (pts 73 | (xy 0.13 -0.115) 74 | (xy -0.13 -0.115) 75 | (xy 0.02 -0.275) 76 | (xy 0.13 -0.275) 77 | ) (width 0) (fill yes)) 78 | ) (tstamp 8d6a9bf3-05e7-48ae-ae85-a2e7ab892b59)) 79 | (pad "5" smd rect (at 0 0 225) (size 0.5 0.5) (layers "F.Cu" "F.Paste" "F.Mask") (tstamp c962fb16-515e-4a2c-b8ba-fe3012156d59)) 80 | (model "${KICAD6_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/OnSemi_XDFN4-1EP_1.0x1.0mm_EP0.52x0.52mm.wrl" 81 | (offset (xyz 0 0 0)) 82 | (scale (xyz 1 1 1)) 83 | (rotate (xyz 0 0 0)) 84 | ) 85 | ) 86 | --------------------------------------------------------------------------------