Compare commits
No commits in common. "main" and "v2" have entirely different histories.
12 changed files with 995 additions and 38036 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 7,
|
||||
"active_layer": 2,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": false,
|
||||
"hidden_netclasses": [],
|
||||
|
|
|
|||
|
|
@ -440,7 +440,6 @@
|
|||
"single_global_label": "ignore",
|
||||
"unannotated": "error",
|
||||
"unconnected_wire_endpoint": "warning",
|
||||
"undefined_netclass": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,131 +0,0 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 7,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 1.0,
|
||||
"shapes": 1.0,
|
||||
"tracks": 1.0,
|
||||
"vias": 1.0,
|
||||
"zones": 0.6
|
||||
},
|
||||
"selection_filter": {
|
||||
"dimensions": true,
|
||||
"footprints": true,
|
||||
"graphics": true,
|
||||
"keepouts": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pads": true,
|
||||
"text": true,
|
||||
"tracks": true,
|
||||
"vias": true,
|
||||
"zones": true
|
||||
},
|
||||
"visible_items": [
|
||||
"vias",
|
||||
"footprint_text",
|
||||
"footprint_anchors",
|
||||
"ratsnest",
|
||||
"grid",
|
||||
"footprints_front",
|
||||
"footprints_back",
|
||||
"footprint_values",
|
||||
"footprint_references",
|
||||
"tracks",
|
||||
"drc_errors",
|
||||
"drawing_sheet",
|
||||
"bitmaps",
|
||||
"pads",
|
||||
"zones",
|
||||
"drc_warnings",
|
||||
"drc_exclusions",
|
||||
"locked_item_shadows",
|
||||
"conflict_shadows",
|
||||
"shapes"
|
||||
],
|
||||
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "48ish_soldered_cfx.kicad_prl",
|
||||
"version": 5
|
||||
},
|
||||
"net_inspector_panel": {
|
||||
"col_hidden": [
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"col_order": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9
|
||||
],
|
||||
"col_widths": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"custom_group_rules": [],
|
||||
"expanded_rows": [],
|
||||
"filter_by_net_name": true,
|
||||
"filter_by_netclass": true,
|
||||
"filter_text": "",
|
||||
"group_by_constraint": false,
|
||||
"group_by_netclass": false,
|
||||
"show_unconnected_nets": false,
|
||||
"show_zero_pad_nets": false,
|
||||
"sort_ascending": true,
|
||||
"sorting_column": 0
|
||||
},
|
||||
"open_jobsets": [],
|
||||
"project": {
|
||||
"files": []
|
||||
},
|
||||
"schematic": {
|
||||
"selection_filter": {
|
||||
"graphics": true,
|
||||
"images": true,
|
||||
"labels": true,
|
||||
"lockedItems": false,
|
||||
"otherItems": true,
|
||||
"pins": true,
|
||||
"symbols": true,
|
||||
"text": true,
|
||||
"wires": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,658 +0,0 @@
|
|||
{
|
||||
"board": {
|
||||
"3dviewports": [],
|
||||
"design_settings": {
|
||||
"defaults": {
|
||||
"apply_defaults_to_fp_fields": false,
|
||||
"apply_defaults_to_fp_shapes": false,
|
||||
"apply_defaults_to_fp_text": false,
|
||||
"board_outline_line_width": 0.05,
|
||||
"copper_line_width": 0.2,
|
||||
"copper_text_italic": false,
|
||||
"copper_text_size_h": 1.5,
|
||||
"copper_text_size_v": 1.5,
|
||||
"copper_text_thickness": 0.3,
|
||||
"copper_text_upright": false,
|
||||
"courtyard_line_width": 0.05,
|
||||
"dimension_precision": 4,
|
||||
"dimension_units": 3,
|
||||
"dimensions": {
|
||||
"arrow_length": 1270000,
|
||||
"extension_offset": 500000,
|
||||
"keep_text_aligned": true,
|
||||
"suppress_zeroes": true,
|
||||
"text_position": 0,
|
||||
"units_format": 0
|
||||
},
|
||||
"fab_line_width": 0.1,
|
||||
"fab_text_italic": false,
|
||||
"fab_text_size_h": 1.0,
|
||||
"fab_text_size_v": 1.0,
|
||||
"fab_text_thickness": 0.15,
|
||||
"fab_text_upright": false,
|
||||
"other_line_width": 0.1,
|
||||
"other_text_italic": false,
|
||||
"other_text_size_h": 1.0,
|
||||
"other_text_size_v": 1.0,
|
||||
"other_text_thickness": 0.15,
|
||||
"other_text_upright": false,
|
||||
"pads": {
|
||||
"drill": 2.2,
|
||||
"height": 3.8,
|
||||
"width": 3.8
|
||||
},
|
||||
"silk_line_width": 0.1,
|
||||
"silk_text_italic": false,
|
||||
"silk_text_size_h": 1.0,
|
||||
"silk_text_size_v": 1.0,
|
||||
"silk_text_thickness": 0.1,
|
||||
"silk_text_upright": false,
|
||||
"zones": {
|
||||
"min_clearance": 0.5
|
||||
}
|
||||
},
|
||||
"diff_pair_dimensions": [],
|
||||
"drc_exclusions": [
|
||||
[
|
||||
"npth_inside_courtyard|151500000|111000000|7e3f9814-e570-4046-a4f4-bc5194edfca8|40cefe3d-76ed-4a8a-b837-001290e24f03",
|
||||
"Pad near hole is fine actually"
|
||||
]
|
||||
],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "error",
|
||||
"creepage": "error",
|
||||
"diff_pair_gap_out_of_range": "error",
|
||||
"diff_pair_uncoupled_length_too_long": "error",
|
||||
"drill_out_of_range": "error",
|
||||
"duplicate_footprints": "warning",
|
||||
"extra_footprint": "warning",
|
||||
"footprint": "error",
|
||||
"footprint_filters_mismatch": "warning",
|
||||
"footprint_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "warning",
|
||||
"hole_clearance": "error",
|
||||
"hole_to_hole": "warning",
|
||||
"holes_co_located": "warning",
|
||||
"invalid_outline": "error",
|
||||
"isolated_copper": "warning",
|
||||
"item_on_disabled_layer": "error",
|
||||
"items_not_allowed": "error",
|
||||
"length_out_of_range": "error",
|
||||
"lib_footprint_issues": "warning",
|
||||
"lib_footprint_mismatch": "warning",
|
||||
"malformed_courtyard": "error",
|
||||
"microvia_drill_out_of_range": "error",
|
||||
"mirrored_text_on_front_layer": "warning",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"nonmirrored_text_on_back_layer": "warning",
|
||||
"npth_inside_courtyard": "warning",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "warning",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "ignore",
|
||||
"silk_over_copper": "ignore",
|
||||
"silk_overlap": "ignore",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_on_edge_cuts": "error",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_angle": "error",
|
||||
"track_dangling": "warning",
|
||||
"track_segment_length": "error",
|
||||
"track_width": "error",
|
||||
"tracks_crossing": "error",
|
||||
"unconnected_items": "error",
|
||||
"unresolved_variable": "error",
|
||||
"via_dangling": "warning",
|
||||
"zones_intersect": "error"
|
||||
},
|
||||
"rules": {
|
||||
"max_error": 0.005,
|
||||
"min_clearance": 0.0,
|
||||
"min_connection": 0.0,
|
||||
"min_copper_edge_clearance": 0.5,
|
||||
"min_groove_width": 0.0,
|
||||
"min_hole_clearance": 0.25,
|
||||
"min_hole_to_hole": 0.25,
|
||||
"min_microvia_diameter": 0.2,
|
||||
"min_microvia_drill": 0.1,
|
||||
"min_resolved_spokes": 2,
|
||||
"min_silk_clearance": 0.0,
|
||||
"min_text_height": 0.8,
|
||||
"min_text_thickness": 0.08,
|
||||
"min_through_hole_diameter": 0.3,
|
||||
"min_track_width": 0.0,
|
||||
"min_via_annular_width": 0.1,
|
||||
"min_via_diameter": 0.5,
|
||||
"solder_mask_to_copper_clearance": 0.0,
|
||||
"use_height_for_length_calcs": true
|
||||
},
|
||||
"teardrop_options": [
|
||||
{
|
||||
"td_onpthpad": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_onsmdpad": true,
|
||||
"td_ontrackend": false,
|
||||
"td_onvia": true
|
||||
}
|
||||
],
|
||||
"teardrop_parameters": [
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_round_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_rect_shape",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
},
|
||||
{
|
||||
"td_allow_use_two_tracks": true,
|
||||
"td_curve_segcount": 0,
|
||||
"td_height_ratio": 1.0,
|
||||
"td_length_ratio": 0.5,
|
||||
"td_maxheight": 2.0,
|
||||
"td_maxlen": 1.0,
|
||||
"td_on_pad_in_zone": false,
|
||||
"td_target_name": "td_track_end",
|
||||
"td_width_to_size_filter_ratio": 0.9
|
||||
}
|
||||
],
|
||||
"track_widths": [],
|
||||
"tuning_pattern_settings": {
|
||||
"diff_pair_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 1.0
|
||||
},
|
||||
"diff_pair_skew_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
},
|
||||
"single_track_defaults": {
|
||||
"corner_radius_percentage": 80,
|
||||
"corner_style": 1,
|
||||
"max_amplitude": 1.0,
|
||||
"min_amplitude": 0.2,
|
||||
"single_sided": false,
|
||||
"spacing": 0.6
|
||||
}
|
||||
},
|
||||
"via_dimensions": [],
|
||||
"zones_allow_external_fillets": false
|
||||
},
|
||||
"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": [
|
||||
"stuff"
|
||||
],
|
||||
"pinned_symbol_libs": [
|
||||
"stuff"
|
||||
]
|
||||
},
|
||||
"meta": {
|
||||
"filename": "48ish_soldered_cfx.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": "/home/erin/Downloads/48ish-out",
|
||||
"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": true,
|
||||
"label": "Value",
|
||||
"name": "Value",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "${QUANTITY}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Description",
|
||||
"name": "Description",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "JLCPCB Part Number",
|
||||
"name": "JLCPCB Part Number",
|
||||
"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
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Sim.Pins",
|
||||
"name": "Sim.Pins",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Sim.Device",
|
||||
"name": "Sim.Device",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "#",
|
||||
"name": "${ITEM_NUMBER}",
|
||||
"show": false
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"include_excluded_from_bom": true,
|
||||
"name": "",
|
||||
"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": [
|
||||
[
|
||||
"e3c88f17-e431-4ad8-b491-c68f92a3599e",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
15
Justfile
15
Justfile
|
|
@ -1,22 +1,17 @@
|
|||
all: plot-zip positions
|
||||
|
||||
gerbers:
|
||||
kicad-cli pcb export gerbers 48ish_soldered.kicad_pcb --board-plot-params -o 48ish_soldered_out/mbk
|
||||
kicad-cli pcb export gerbers 48ish_soldered_cfx.kicad_pcb --board-plot-params -o 48ish_soldered_out/cfx
|
||||
kicad-cli pcb export gerbers 48ish_soldered.kicad_pcb --board-plot-params -o 48ish_soldered_out
|
||||
|
||||
drills:
|
||||
kicad-cli pcb export drill 48ish_soldered.kicad_pcb --excellon-separate-th -o 48ish_soldered_out/mbk
|
||||
kicad-cli pcb export drill 48ish_soldered_cfx.kicad_pcb --excellon-separate-th -o 48ish_soldered_out/cfx
|
||||
kicad-cli pcb export drill 48ish_soldered.kicad_pcb --excellon-separate-th -o 48ish_soldered_out
|
||||
|
||||
positions:
|
||||
kicad-cli pcb export pos 48ish_soldered.kicad_pcb --format csv --units mm --side back --smd-only -o 48ish_soldered_mbk-bottom-pos.csv
|
||||
kicad-cli pcb export pos 48ish_soldered_cfx.kicad_pcb --format csv --units mm --side back --smd-only -o 48ish_soldered_cfx-bottom-pos.csv
|
||||
kicad-cli pcb export pos 48ish_soldered.kicad_pcb --format csv --units mm --side back --smd-only -o 48ish_soldered-bottom-pos.csv
|
||||
# replace headers with what jlcpcb wants - see https://jlcpcb.com/help/article/How-to-generate-the-BOM-and-Centroid-file-from-KiCAD
|
||||
sed -e 's/Ref/Designator/' -e 's/PosX/Mid X/' -e 's/PosY/Mid Y/' -e 's/Rot/Rotation/' -e 's/Side/Layer/' -i 48ish_soldered_mbk-bottom-pos.csv
|
||||
sed -e 's/Ref/Designator/' -e 's/PosX/Mid X/' -e 's/PosY/Mid Y/' -e 's/Rot/Rotation/' -e 's/Side/Layer/' -i 48ish_soldered_cfx-bottom-pos.csv
|
||||
sed -e 's/Ref/Designator/' -e 's/PosX/Mid X/' -e 's/PosY/Mid Y/' -e 's/Rot/Rotation/' -e 's/Side/Layer/' -i 48ish_soldered-bottom-pos.csv
|
||||
|
||||
plot: gerbers drills
|
||||
|
||||
plot-zip: gerbers drills
|
||||
zip -FSr 48ish_soldered_mbk_out.zip 48ish_soldered_out/mbk
|
||||
zip -FSr 48ish_soldered_cfx_out.zip 48ish_soldered_out/cfx
|
||||
zip -FSr 48ish_soldered_out.zip 48ish_soldered_out
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -1,12 +1,10 @@
|
|||
# 48ish
|
||||
|
||||
A wireless, low-profile, 47/48-key keyboard PCB for Kalih Choc v1 switches, with variants for 18x17mm (MBK) or 17x17mm (CFX) keycap spacing.
|
||||
|
||||

|
||||
A wireless, low-profile 47/48-key keyboard PCB.
|
||||
|
||||
## production files
|
||||
|
||||
production files are uploaded [with each release](https://git.ewin.moe/erin/48ish). works with JLCPCB, haven't tried any other production houses, ymmv
|
||||
works with JLCPCB, haven't tried any other production houses, ymmv
|
||||
|
||||
production outputs automated with `just` (`apt install just` etc) and `kicad-cli` (it came free with your fucking kicad)
|
||||
|
||||
|
|
@ -16,17 +14,9 @@ production outputs automated with `just` (`apt install just` etc) and `kicad-cli
|
|||
- BOM: `48ish_soldered_bom.csv` (not generated by kicad Yet:tm:; includes specific JLCPCB part numbers, you may want to shop around for alternatives)
|
||||
- Placements: `48ish_soldered-bottom-pos.csv` (generated by kicad, with column names manually edited to reflect [JLCPCB's requirements](https://jlcpcb.com/help/article/pick-place-file-for-pcb-assembly))
|
||||
|
||||
## that sounds complicated but i still want one
|
||||
|
||||
hit me up on fedi [@erin@tired.umbreon.online](https://tired.umbreon.online/@erin) and i'll maybe do a custom build for you, if shipping you things from the united states isn't too complicated
|
||||
|
||||
## case???
|
||||
|
||||
[here's a basic one](case). the rendered stl file is attached to the latest release
|
||||
|
||||
## firmware???
|
||||
|
||||
i wrote a zmk shield for this but dude i am not figuring out the zmk local build steps. go look at [the github repo for the shield firmware](https://github.com/ewwwin/zmk-keyboard-48ish) and grab the firmware from the latest github actions run, i do not care
|
||||
i wrote a zmk shield for this but dude i am not figuring out the zmk local build steps. go look at [the github repo for the shield firmware](https://github.com/ewwwin/zmk-shield-48ish) and grab the firmware from the latest github actions run, i do not care
|
||||
|
||||
## acknowledgements
|
||||
|
||||
|
|
|
|||
|
|
@ -1,76 +0,0 @@
|
|||
$fn = 20;
|
||||
|
||||
baseplate_thickness = 2;
|
||||
inner_clearance = 6.5; // space inside the case for the battery/mcu to occupy
|
||||
pcb_thickness = 1.6; // thickness of the pcb
|
||||
|
||||
module roundsquare (size, r) {
|
||||
translate([r, r]) minkowski() {
|
||||
square([size.x-2*r, size.y-2*r]);
|
||||
circle(r=r);
|
||||
}
|
||||
}
|
||||
|
||||
module shell () {
|
||||
difference() {
|
||||
// block
|
||||
linear_extrude(baseplate_thickness + inner_clearance + pcb_thickness) {
|
||||
translate([-1, -1]) roundsquare([214+1*2, 67+1*2], r=2+1);
|
||||
}
|
||||
// cut for shelf
|
||||
translate([0, 0, baseplate_thickness + inner_clearance]) linear_extrude(pcb_thickness + 2) {
|
||||
roundsquare([214, 67], r=2-0.25); // pcb r=2 but it's not exact
|
||||
}
|
||||
// cut for inner clearance
|
||||
translate([0, 0, baseplate_thickness]) linear_extrude(inner_clearance + 10) {
|
||||
translate([1, 1]) roundsquare([214 - 1 * 2, 67 - 1 * 2], r=1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module standoffs () {
|
||||
// for M2 3x3 standoffs
|
||||
hole_diameter = 3;
|
||||
hole_depth = 3 * 1.5;
|
||||
wall_thickness = 1;
|
||||
|
||||
// offsets the top of the standoffs down from where the pcb will actually rest; this allows the screws to actually hold the pcb down against the outer lip of the case and prevent rattling if the pcb is not perfectly flat
|
||||
standoff_top_face_offset = -0.25;
|
||||
|
||||
for (point = [
|
||||
[17 + 18 * 0, 16.5 + 17 * 0],
|
||||
[17 + 18 * 2, 16.5 + 17 * 2],
|
||||
[17 + 18 * 4, 16.5 + 17 * 0],
|
||||
[17 + 18 * 5, 16.5 + 17 * 2],
|
||||
[17 + 18 * 6, 16.5 + 17 * 0],
|
||||
[17 + 18 * 8, 16.5 + 17 * 2],
|
||||
[17 + 18 * 10, 16.5 + 17 * 0],
|
||||
]) {
|
||||
translate([point.x, point.y, baseplate_thickness - 0.01]) difference() {
|
||||
cylinder(h = inner_clearance + standoff_top_face_offset + .01, d = hole_diameter + 2*wall_thickness);
|
||||
translate([0, 0, inner_clearance + standoff_top_face_offset + .1 - hole_depth]) cylinder(h = hole_depth + .02, d = hole_diameter); // hole inner - adjust for insert size
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
difference() {
|
||||
shell();
|
||||
translate([2, 65-.01, baseplate_thickness])
|
||||
// cube([34, 2, 30]);
|
||||
// cube([34, 5, 6]);
|
||||
cube([18+17-2, 2, 30]);
|
||||
// usb-c cutout
|
||||
translate([17 + 18/2 - 9/2, 71, baseplate_thickness + inner_clearance - 6.5]) {
|
||||
rotate([90, 0, 0]) linear_extrude(8) {
|
||||
roundsquare([9, 3.75], r = 1.5);
|
||||
}
|
||||
}
|
||||
// power switch cutout
|
||||
translate([4, 71, baseplate_thickness + inner_clearance - 2]) {
|
||||
rotate([90, 0, 0]) linear_extrude(8) {
|
||||
roundsquare([6.5, 2], r = 0.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
standoffs();
|
||||
BIN
images/47.png
BIN
images/47.png
Binary file not shown.
|
Before Width: | Height: | Size: 4.6 MiB |
|
|
@ -1,4 +1,4 @@
|
|||
(footprint "Choc_v1_18x17mm_spacing"
|
||||
(footprint "Choc_v1"
|
||||
(version 20241229)
|
||||
(generator "pcbnew")
|
||||
(generator_version "9.0")
|
||||
|
|
@ -1,226 +0,0 @@
|
|||
(footprint "Choc_v1_17x17mm_spacing"
|
||||
(version 20241229)
|
||||
(generator "pcbnew")
|
||||
(generator_version "9.0")
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "SW13"
|
||||
(at 0 0 0)
|
||||
(layer "F.SilkS")
|
||||
(hide yes)
|
||||
(uuid "5b8b2509-cc48-47a4-8fce-ab86fcffde68")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "SW_SPST"
|
||||
(at 0 0 0)
|
||||
(layer "F.SilkS")
|
||||
(hide yes)
|
||||
(uuid "aacfd6f5-65b7-4133-8281-45c322585029")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" "~"
|
||||
(at 0 0 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "2a52bd72-0c3f-48f2-a724-e8d669cfe14f")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" "Choc v1 keyswitch"
|
||||
(at 0 0 0)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "60fcfa86-dd34-4fec-98c7-ae7cfcb9d8ee")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "JLCPCB Part Number" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "7c202ef6-551b-4cdd-9ae7-26d21269315b")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr through_hole exclude_from_bom)
|
||||
(fp_line
|
||||
(start -8.5 -8.5)
|
||||
(end 8.5 -8.5)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "7699333a-f4db-4625-a04f-ceb94bcace22")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.5 8.5)
|
||||
(end -8.5 -8.5)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "84e98009-a36c-4a17-a569-fde4fbea482e")
|
||||
)
|
||||
(fp_line
|
||||
(start -7 -6)
|
||||
(end -7 -7)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "c3e13b08-e233-4954-86c1-a796d408a520")
|
||||
)
|
||||
(fp_line
|
||||
(start -7 7)
|
||||
(end -7 6)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "d1e7dd04-eabb-4c9c-9bd8-3860764a3590")
|
||||
)
|
||||
(fp_line
|
||||
(start -7 7)
|
||||
(end -6 7)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "49c30273-bb99-474a-8452-3e95b3920c2c")
|
||||
)
|
||||
(fp_line
|
||||
(start -6 -7)
|
||||
(end -7 -7)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "54c7fd19-7ce7-4c39-9f25-859237f52ffc")
|
||||
)
|
||||
(fp_line
|
||||
(start 6 7)
|
||||
(end 7 7)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "ede29a3f-a9a6-47df-836d-c4772ed880b1")
|
||||
)
|
||||
(fp_line
|
||||
(start 7 -7)
|
||||
(end 6 -7)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "65ba7540-2b09-40be-8697-21853845d68e")
|
||||
)
|
||||
(fp_line
|
||||
(start 7 -7)
|
||||
(end 7 -6)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "f1d0021a-165e-4889-aa81-e278d0d78cc6")
|
||||
)
|
||||
(fp_line
|
||||
(start 7 6)
|
||||
(end 7 7)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "c89ad502-74fd-4515-831a-e77ed3111cbc")
|
||||
)
|
||||
(fp_line
|
||||
(start 8.5 -8.5)
|
||||
(end 8.5 8.5)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "8210335c-d6a0-4308-8c53-57e96bf7ef0e")
|
||||
)
|
||||
(fp_line
|
||||
(start 8.5 8.5)
|
||||
(end -8.5 8.5)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "36a01b58-12db-413b-bdf4-8e7e60f5b51e")
|
||||
)
|
||||
(pad "" np_thru_hole circle
|
||||
(at -5.5 0 180)
|
||||
(size 1.7018 1.7018)
|
||||
(drill 1.7018)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(uuid "5add7edf-3b4d-49b6-9b81-fda7ac714069")
|
||||
)
|
||||
(pad "" np_thru_hole circle
|
||||
(at 0 0 180)
|
||||
(size 3.429 3.429)
|
||||
(drill 3.429)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(uuid "42fb6c34-34c0-481b-8207-70ca722ad0fb")
|
||||
)
|
||||
(pad "" np_thru_hole circle
|
||||
(at 5.5 0 180)
|
||||
(size 1.7018 1.7018)
|
||||
(drill 1.7018)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(uuid "cb8a715d-8e12-4712-82bb-413e7d72aaf4")
|
||||
)
|
||||
(pad "1" thru_hole circle
|
||||
(at -5 3.8 180)
|
||||
(size 2.032 2.032)
|
||||
(drill 1.27)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "6ef19e7b-3b30-4e26-bfe0-826067df6d4a")
|
||||
)
|
||||
(pad "2" thru_hole circle
|
||||
(at 0 5.9 180)
|
||||
(size 2.032 2.032)
|
||||
(drill 1.27)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "5b307a43-4634-436d-b54b-63eed3a5e24c")
|
||||
)
|
||||
(embedded_fonts no)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue