From d4c12cce2522ce50fed43e1ea40f86e006ff7b83 Mon Sep 17 00:00:00 2001 From: Steins7 Date: Mon, 7 Mar 2022 15:04:25 +0000 Subject: [PATCH] Resolve "Re-write the schematic in Kicad" --- .gitignore | 39 + cad/BOM.ods | Bin 6915 -> 14348 bytes cad/fan_monitor/fan_monitor.kicad_pcb | 26085 ++++++++++++++++ cad/fan_monitor/fan_monitor.kicad_pro | 484 + cad/fan_monitor/fan_monitor.kicad_sch | 3574 +++ cad/fan_monitor/fan_monitor.kicad_sym | 638 + .../CR2032_Holder.kicad_mod | 29 + .../fan_monitor.pretty/HE10-16.kicad_mod | 42 + .../HF152FD_Form_A.kicad_mod | 25 + ...Alps_EC12E-Switch_Vertical_H20mm.kicad_mod | 58 + .../fan_monitor.pretty/blue_pill.kicad_mod | 65 + cad/fan_monitor/fp-lib-table | 3 + cad/fan_monitor/sym-lib-table | 3 + .../main_board_routing.json | 0 .../main_board_schematic.json | 0 15 files changed, 31045 insertions(+) create mode 100644 cad/fan_monitor/fan_monitor.kicad_pcb create mode 100644 cad/fan_monitor/fan_monitor.kicad_pro create mode 100644 cad/fan_monitor/fan_monitor.kicad_sch create mode 100644 cad/fan_monitor/fan_monitor.kicad_sym create mode 100644 cad/fan_monitor/fan_monitor.pretty/CR2032_Holder.kicad_mod create mode 100644 cad/fan_monitor/fan_monitor.pretty/HE10-16.kicad_mod create mode 100644 cad/fan_monitor/fan_monitor.pretty/HF152FD_Form_A.kicad_mod create mode 100644 cad/fan_monitor/fan_monitor.pretty/RotaryEncoder_Alps_EC12E-Switch_Vertical_H20mm.kicad_mod create mode 100644 cad/fan_monitor/fan_monitor.pretty/blue_pill.kicad_mod create mode 100644 cad/fan_monitor/fp-lib-table create mode 100644 cad/fan_monitor/sym-lib-table rename cad/{main_board => main_board.old}/main_board_routing.json (100%) rename cad/{main_board => main_board.old}/main_board_schematic.json (100%) diff --git a/.gitignore b/.gitignore index b9ea5b0..7967f31 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,45 @@ +#------------------------------------------------------------------------------- +# Rust + **/*.rs.bk .#* .gdb_history Cargo.lock target/ +#------------------------------------------------------------------------------- +# For PCBs designed using KiCad: https://www.kicad.org/ +# Format documentation: https://kicad.org/help/file-formats/ + +# Temporary files +*.000 +*.bak +*.bck +*.kicad_pcb-bak +*.kicad_sch-bak +*-backups +*.kicad_prl +*.sch-bak +*~ +_autosave-* +\#auto_saved_files\# +*.tmp +*-save.pro +*-save.kicad_pcb +fp-info-cache + +# Netlist files (exported from Eeschema) +*.net + +# Autorouter files (exported from Pcbnew) +*.dsn +*.ses + +# Exported BOM files +*.xml +*.csv + +#------------------------------------------------------------------------------- +# LibreOffice +*.~lock* + diff --git a/cad/BOM.ods b/cad/BOM.ods index c2590441747e2b4c014f6e1b4a1a69f881015f78..30eb3412117f31c825d8919ff5d5f2ef957b5811 100644 GIT binary patch delta 12538 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