diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/README.md b/README.md index 1fcc063..a5af749 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,25 @@ can hat design for raspberry pis The canonical repo for this is hosted on tangled over at [`dunkirk.sh/can-hat`](https://tangled.org/dunkirk.sh/can-hat) +## BOM + +| Component | LCSC # | Qty | Placement | +|---|---|---|---| +| MCP2518FDT-H/SL | C626759 | 3 | Hand solder | +| MCP2562FDT-E/SN | C511335 | 3 | Hand solder | +| OVETGLJANF-40MHZ | C295515 | 3 | Hand solder | +| AT24C32D-SSHM-T | search LCSC | 1 | Hand solder | +| 100nF 0603 X7R | basic | ~10 | PCBA | +| 10µF 0805 | basic | 2 | PCBA | +| 120Ω 0603 | basic | 3 | PCBA | +| 10kΩ 0603 | basic | 6 | PCBA | +| 3.9kΩ 0603 | basic | 2 | PCBA | +| 15EDGVC-3.5-02P (header) | search Degson | 3 | Hand solder | +| 15EDGKNM-3.5-02P (plug) | search Degson | 3 | Wire side | +| 2×20 stacking header | — | 1 | Hand solder | + +The AT24C32D write-protect pin should have a jumper pad or test point so it can be pulled low to flash, then left pulled high permanently after. +

diff --git a/hardware/.gitignore b/hardware/.gitignore new file mode 100644 index 0000000..9d5df93 --- /dev/null +++ b/hardware/.gitignore @@ -0,0 +1,40 @@ +# 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 +*-cache* +*-bak +*-bak* +*~ +~* +_autosave-* +\#auto_saved_files\# +*.tmp +*-save.pro +*-save.kicad_pcb +fp-info-cache +~*.lck +\#auto_saved_files# + +# Netlist files (exported from Eeschema) +*.net + +# Autorouter files (exported from Pcbnew) +*.dsn +*.ses + +# Exported BOM files +*.xml +*.csv + +# Archived Backups (KiCad 6.0) +**/*-backups/*.zip + +# Local project settings +*.kicad_prl diff --git a/hardware/can-hat.kicad_pcb b/hardware/can-hat.kicad_pcb new file mode 100644 index 0000000..17d5483 --- /dev/null +++ b/hardware/can-hat.kicad_pcb @@ -0,0 +1,2 @@ +(kicad_pcb (version 20241229) (generator "pcbnew") (generator_version "9.0") +) diff --git a/hardware/can-hat.kicad_pro b/hardware/can-hat.kicad_pro new file mode 100644 index 0000000..bc354da --- /dev/null +++ b/hardware/can-hat.kicad_pro @@ -0,0 +1,219 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": {}, + "diff_pair_dimensions": [], + "drc_exclusions": [], + "rules": {}, + "track_widths": [], + "via_dimensions": [] + }, + "ipc2581": { + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "" + }, + "layer_pairs": [], + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [0,0,0,0,0,0,1,0,0,0,0,2], + [0,2,0,1,0,0,1,0,2,2,2,2], + [0,0,0,0,0,0,1,0,1,0,1,2], + [0,1,0,0,0,0,1,1,2,1,1,2], + [0,0,0,0,0,0,1,0,0,0,0,2], + [0,0,0,0,0,0,0,0,0,0,0,2], + [1,1,1,1,1,0,1,1,1,1,1,2], + [0,0,0,1,0,0,1,0,0,0,0,2], + [0,2,1,2,0,0,1,0,2,2,2,2], + [0,2,0,1,0,0,1,0,2,0,0,2], + [0,2,1,1,0,0,1,0,2,0,0,2], + [2,2,2,2,2,2,2,2,2,2,2,2] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "footprint_filter": "ignore", + "footprint_link_issues": "warning", + "four_way_junction": "ignore", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "label_multiple_wires": "warning", + "lib_symbol_issues": "warning", + "lib_symbol_mismatch": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "same_local_global_label": "warning", + "similar_label_and_power": "warning", + "similar_labels": "warning", + "similar_power": "warning", + "simulation_model_issue": "ignore", + "single_global_label": "ignore", + "unannotated": "error", + "unconnected_wire_endpoint": "warning", + "undefined_netclass": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "can-hat.kicad_pro", + "version": 3 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "priority": 2147483647, + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.2, + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 4 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "plot": "", + "pos_files": "", + "specctra_dsn": "", + "step": "", + "svg": "", + "vrml": "" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "bom_export_filename": "${PROJECTNAME}.csv", + "bom_fmt_presets": [], + "bom_fmt_settings": { + "field_delimiter": ",", + "keep_line_breaks": false, + "keep_tabs": false, + "name": "CSV", + "ref_delimiter": ",", + "ref_range_delimiter": "", + "string_delimiter": "\"" + }, + "bom_presets": [], + "bom_settings": { + "exclude_dnp": false, + "fields_ordered": [ + {"group_by": false, "label": "Reference", "name": "Reference", "show": true}, + {"group_by": false, "label": "Qty", "name": "${QUANTITY}", "show": true}, + {"group_by": true, "label": "Value", "name": "Value", "show": true}, + {"group_by": true, "label": "DNP", "name": "${DNP}", "show": true}, + {"group_by": true, "label": "Exclude from BOM", "name": "${EXCLUDE_FROM_BOM}", "show": true}, + {"group_by": true, "label": "Exclude from Board", "name": "${EXCLUDE_FROM_BOARD}", "show": true}, + {"group_by": true, "label": "Footprint", "name": "Footprint", "show": true}, + {"group_by": false, "label": "Datasheet", "name": "Datasheet", "show": true} + ], + "filter_string": "", + "group_symbols": true, + "include_excluded_from_bom": true, + "name": "Default Editing", + "sort_asc": true, + "sort_field": "Reference" + }, + "connection_grid_size": 50.0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "operating_point_overlay_i_precision": 3, + "operating_point_overlay_i_range": "~A", + "operating_point_overlay_v_precision": 3, + "operating_point_overlay_v_range": "~V", + "overbar_offset_ratio": 1.23, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "page_layout_descr_file": "", + "plot_directory": "", + "space_save_all_events": true, + "spice_current_sheet_as_root": false, + "spice_external_command": "spice \"%I\"", + "spice_model_current_sheet_as_root": true, + "spice_save_all_currents": false, + "spice_save_all_dissipations": false, + "spice_save_all_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + ["bfdea6a0-b5c8-4489-9fa0-a972c3ff35f2", "Root"] + ], + "text_variables": {} +} diff --git a/hardware/can-hat.kicad_sch b/hardware/can-hat.kicad_sch new file mode 100644 index 0000000..888a48e --- /dev/null +++ b/hardware/can-hat.kicad_sch @@ -0,0 +1,14 @@ +(kicad_sch + (version 20250114) + (generator "eeschema") + (generator_version "9.0") + (uuid "bfdea6a0-b5c8-4489-9fa0-a972c3ff35f2") + (paper "A4") + (lib_symbols + ) + (sheet_instances + (path "/" + (page "1") + ) + ) +) diff --git a/hardware/fp-lib-table b/hardware/fp-lib-table new file mode 100644 index 0000000..9328200 --- /dev/null +++ b/hardware/fp-lib-table @@ -0,0 +1,4 @@ +(fp_lib_table + (version 7) + (lib (name "Project_Parts")(type "KiCad")(uri "${KIPRJMOD}/footprints")(options "")(descr "")) +) diff --git a/hardware/sym-lib-table b/hardware/sym-lib-table new file mode 100644 index 0000000..993ca18 --- /dev/null +++ b/hardware/sym-lib-table @@ -0,0 +1,3 @@ +(sym_lib_table + (version 7) +)