Compare commits
17 commits
maybe-leds
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| d9c6cffbb8 | |||
| 2e72f8cbaf | |||
| 12f077e7a9 | |||
| 4a4e46eefd | |||
| 407f5c9da1 | |||
| 66707bf080 | |||
| d8417db424 | |||
| 9d065eed8b | |||
| 566af9e58f | |||
| 36cc69000f | |||
| a093655f68 | |||
| df66fcc9e2 | |||
| 5c443f9bef | |||
| 8e365bfdf1 | |||
| 7e5b95abf5 | |||
| 59e20dc578 | |||
| 3355bd1bcb |
12 changed files with 38111 additions and 995 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 0,
|
||||
"active_layer": 7,
|
||||
"active_layer_preset": "",
|
||||
"auto_track_width": false,
|
||||
"hidden_netclasses": [],
|
||||
|
|
|
|||
|
|
@ -440,6 +440,7 @@
|
|||
"single_global_label": "ignore",
|
||||
"unannotated": "error",
|
||||
"unconnected_wire_endpoint": "warning",
|
||||
"undefined_netclass": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
|
|
|
|||
35707
48ish_soldered_cfx.kicad_pcb
Normal file
35707
48ish_soldered_cfx.kicad_pcb
Normal file
File diff suppressed because it is too large
Load diff
131
48ish_soldered_cfx.kicad_prl
Normal file
131
48ish_soldered_cfx.kicad_prl
Normal file
|
|
@ -0,0 +1,131 @@
|
|||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
}
|
||||
658
48ish_soldered_cfx.kicad_pro
Normal file
658
48ish_soldered_cfx.kicad_pro
Normal file
|
|
@ -0,0 +1,658 @@
|
|||
{
|
||||
"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,17 +1,22 @@
|
|||
all: plot-zip positions
|
||||
|
||||
gerbers:
|
||||
kicad-cli pcb export gerbers 48ish_soldered.kicad_pcb --board-plot-params -o 48ish_soldered_out
|
||||
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
|
||||
|
||||
drills:
|
||||
kicad-cli pcb export drill 48ish_soldered.kicad_pcb --excellon-separate-th -o 48ish_soldered_out
|
||||
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
|
||||
|
||||
positions:
|
||||
kicad-cli pcb export pos 48ish_soldered.kicad_pcb --format csv --units mm --side back --smd-only -o 48ish_soldered-bottom-pos.csv
|
||||
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
|
||||
# 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-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_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
|
||||
|
||||
plot: gerbers drills
|
||||
|
||||
plot-zip: gerbers drills
|
||||
zip -FSr 48ish_soldered_out.zip 48ish_soldered_out
|
||||
zip -FSr 48ish_soldered_mbk_out.zip 48ish_soldered_out/mbk
|
||||
zip -FSr 48ish_soldered_cfx_out.zip 48ish_soldered_out/cfx
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -1,10 +1,12 @@
|
|||
# 48ish
|
||||
|
||||
A wireless, low-profile 47/48-key keyboard PCB.
|
||||
A wireless, low-profile, 47/48-key keyboard PCB for Kalih Choc v1 switches, with variants for 18x17mm (MBK) or 17x17mm (CFX) keycap spacing.
|
||||
|
||||

|
||||
|
||||
## production files
|
||||
|
||||
works with JLCPCB, haven't tried any other production houses, ymmv
|
||||
production files are uploaded [with each release](https://git.ewin.moe/erin/48ish). 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)
|
||||
|
||||
|
|
@ -14,9 +16,17 @@ 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-shield-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-keyboard-48ish) and grab the firmware from the latest github actions run, i do not care
|
||||
|
||||
## acknowledgements
|
||||
|
||||
|
|
|
|||
76
case/48ish_case.scad
Normal file
76
case/48ish_case.scad
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
$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
Normal file
BIN
images/47.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 MiB |
226
stuff.pretty/Choc_v1_17x17mm_spacing.kicad_mod
Normal file
226
stuff.pretty/Choc_v1_17x17mm_spacing.kicad_mod
Normal file
|
|
@ -0,0 +1,226 @@
|
|||
(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)
|
||||
)
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
(footprint "Choc_v1"
|
||||
(footprint "Choc_v1_18x17mm_spacing"
|
||||
(version 20241229)
|
||||
(generator "pcbnew")
|
||||
(generator_version "9.0")
|
||||
Loading…
Add table
Add a link
Reference in a new issue