mirror of
https://github.com/System-End/hackpad.git
synced 2026-04-19 16:38:22 +00:00
Merge branch 'hackclub:main' into main
This commit is contained in:
commit
996a49c47a
47 changed files with 414348 additions and 1 deletions
28951
hackpads/TyrannoJ Projekt2/CAD/TyrannoJ_Projekt2.step
Normal file
28951
hackpads/TyrannoJ Projekt2/CAD/TyrannoJ_Projekt2.step
Normal file
File diff suppressed because it is too large
Load diff
1
hackpads/TyrannoJ Projekt2/PCB/fp-info-cache
Normal file
1
hackpads/TyrannoJ Projekt2/PCB/fp-info-cache
Normal file
|
|
@ -0,0 +1 @@
|
|||
0
|
||||
BIN
hackpads/TyrannoJ Projekt2/PCB/libraries.zip
Normal file
BIN
hackpads/TyrannoJ Projekt2/PCB/libraries.zip
Normal file
Binary file not shown.
4718
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_pcb
Normal file
4718
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_pcb
Normal file
File diff suppressed because it is too large
Load diff
83
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_prl
Normal file
83
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_prl
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 44,
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 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": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
39,
|
||||
40
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"repo_password": "",
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "projekt2.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
||||
584
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_pro
Normal file
584
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_pro
Normal file
|
|
@ -0,0 +1,584 @@
|
|||
{
|
||||
"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": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"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": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"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": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "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_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"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",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"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_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_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": 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_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",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "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",
|
||||
"similar_labels": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "projekt2.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"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)",
|
||||
"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": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "../production/",
|
||||
"pos_files": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "",
|
||||
"svg": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"bom_export_filename": "",
|
||||
"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": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "${QUANTITY}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "DNP",
|
||||
"name": "${DNP}",
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"name": "Grouped By Value",
|
||||
"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": "",
|
||||
"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": [
|
||||
[
|
||||
"6adde25d-12d0-4090-a498-841c1bc2c26f",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
3427
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_sch
Normal file
3427
hackpads/TyrannoJ Projekt2/PCB/projekt2.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
31
hackpads/TyrannoJ Projekt2/README.md
Normal file
31
hackpads/TyrannoJ Projekt2/README.md
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# TYRANNOJ PROJEKT2
|
||||
This is my first PCB, just want to play around with it. My firmware is not fully optimized due to a lack of time, I will optimize it when the parts get shipped. My libraries in the pcb part are zipped, so I could upload everything, you have to unzip them or else the pcb won't work
|
||||

|
||||
|
||||
|
||||
### Inspiration
|
||||
|
||||
Somebody in school told me about it
|
||||
|
||||
### Challenges
|
||||
|
||||
Did it for the first time, was pretty difficult
|
||||
|
||||
### Specifications
|
||||
|
||||
BOM:\
|
||||
• 4x Cherry MX Switches
|
||||
• 2x SK6812 MINI Leds
|
||||
• 1x XIAO RP2040
|
||||
• 2x: RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_CircularMountingHoles
|
||||
• 4x Blank DSA Keycaps
|
||||
• 4x M3x16 Bolt
|
||||
• 4x M3 Heatset
|
||||
|
||||
Others: \
|
||||
• KMK Firmware <br>
|
||||
• Top.stl \
|
||||
• Bottom.stl
|
||||
Schematic | PCB | Case
|
||||
:-------------------------:|:-------------------------:|:-------------------------:|
|
||||
 |  | 
|
||||
11
hackpads/TyrannoJ Projekt2/firmware/KMK/kb.py
Normal file
11
hackpads/TyrannoJ Projekt2/firmware/KMK/kb.py
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import board
|
||||
|
||||
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
|
||||
from kmk.scanners import DiodeOrientation
|
||||
|
||||
|
||||
class KMKKeyboard(_KMKKeyboard):
|
||||
keyboard.col_pins = (board.GP5, board.GP6)
|
||||
keyboard.row_pins = (board.GP7, board.GP8)
|
||||
|
||||
keyboard.diode_orientation = DiodeOrientation.COL2ROW
|
||||
40
hackpads/TyrannoJ Projekt2/firmware/KMK/main.py
Normal file
40
hackpads/TyrannoJ Projekt2/firmware/KMK/main.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import board
|
||||
import digitalio
|
||||
from kmk import KMKKeyboard
|
||||
from kmk.keys import KC
|
||||
from kmk.modules import Layer
|
||||
|
||||
|
||||
keyboard = KMKKeyboard()
|
||||
|
||||
|
||||
switch1 = digitalio.DigitalInOut(board.D5)
|
||||
switch1.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
switch2 = digitalio.DigitalInOut(board.D6)
|
||||
switch2.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
switch3 = digitalio.DigitalInOut(board.D7)
|
||||
switch3.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
switch4 = digitalio.DigitalInOut(board.D8)
|
||||
switch4.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
|
||||
keyboard.pins = {
|
||||
board.D5: KC.A, # Switch 1 mapped to KC.A
|
||||
board.D6: KC.B, # Switch 2 mapped to KC.B
|
||||
board.D7: KC.C, # Switch 3 mapped to KC.C
|
||||
board.D8: KC.D, # Switch 4 mapped to KC.D
|
||||
}
|
||||
|
||||
|
||||
layer1 = Layer([KC.LSFT, KC.LCTL, KC.LALT])
|
||||
|
||||
|
||||
keyboard.modules.append(layer1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
while True:
|
||||
keyboard.poll()
|
||||
1
hackpads/TyrannoJ Projekt2/firmware/README.md
Normal file
1
hackpads/TyrannoJ Projekt2/firmware/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Firmware runs on KMK!
|
||||
11
hackpads/TyrannoJ Projekt2/production/KMK/kb.py
Normal file
11
hackpads/TyrannoJ Projekt2/production/KMK/kb.py
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import board
|
||||
|
||||
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
|
||||
from kmk.scanners import DiodeOrientation
|
||||
|
||||
|
||||
class KMKKeyboard(_KMKKeyboard):
|
||||
keyboard.col_pins = (board.GP5, board.GP6)
|
||||
keyboard.row_pins = (board.GP7, board.GP8)
|
||||
|
||||
keyboard.diode_orientation = DiodeOrientation.COL2ROW
|
||||
40
hackpads/TyrannoJ Projekt2/production/KMK/main.py
Normal file
40
hackpads/TyrannoJ Projekt2/production/KMK/main.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import board
|
||||
import digitalio
|
||||
from kmk import KMKKeyboard
|
||||
from kmk.keys import KC
|
||||
from kmk.modules import Layer
|
||||
|
||||
|
||||
keyboard = KMKKeyboard()
|
||||
|
||||
|
||||
switch1 = digitalio.DigitalInOut(board.D5)
|
||||
switch1.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
switch2 = digitalio.DigitalInOut(board.D6)
|
||||
switch2.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
switch3 = digitalio.DigitalInOut(board.D7)
|
||||
switch3.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
switch4 = digitalio.DigitalInOut(board.D8)
|
||||
switch4.switch_to_input(pull=digitalio.Pull.UP)
|
||||
|
||||
|
||||
keyboard.pins = {
|
||||
board.D5: KC.A, # Switch 1 mapped to KC.A
|
||||
board.D6: KC.B, # Switch 2 mapped to KC.B
|
||||
board.D7: KC.C, # Switch 3 mapped to KC.C
|
||||
board.D8: KC.D, # Switch 4 mapped to KC.D
|
||||
}
|
||||
|
||||
|
||||
layer1 = Layer([KC.LSFT, KC.LCTL, KC.LALT])
|
||||
|
||||
|
||||
keyboard.modules.append(layer1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
while True:
|
||||
keyboard.poll()
|
||||
BIN
hackpads/TyrannoJ Projekt2/production/bottom case.stl
Normal file
BIN
hackpads/TyrannoJ Projekt2/production/bottom case.stl
Normal file
Binary file not shown.
BIN
hackpads/TyrannoJ Projekt2/production/gerbers.zip
Normal file
BIN
hackpads/TyrannoJ Projekt2/production/gerbers.zip
Normal file
Binary file not shown.
BIN
hackpads/TyrannoJ Projekt2/production/top case.stl
Normal file
BIN
hackpads/TyrannoJ Projekt2/production/top case.stl
Normal file
Binary file not shown.
47
hackpads/firepad/README.md
Normal file
47
hackpads/firepad/README.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# Firepad
|
||||
## Firepup's macropad
|
||||
|
||||
Primarily intended as a general-use hackpad, I intend to use most of the extra F-keys for stream keybinds, although I've given myself more of those then I needed.
|
||||
|
||||
### Pictures
|
||||
|
||||
#### Above
|
||||

|
||||
#### Diagonal
|
||||

|
||||
#### Below
|
||||

|
||||
#### PCB
|
||||

|
||||
#### 3D PCB
|
||||

|
||||
#### Schematic
|
||||

|
||||
|
||||
### Frimware
|
||||
|
||||
The top three buttons (from left to right) are:
|
||||
- Skip Backward
|
||||
- Pause/Play
|
||||
- Skip Forward
|
||||
|
||||
The next 5 buttons are F13-F17, the next five F18-F22, and the last two are F23 and F24.
|
||||
|
||||
The rotary encoder is volume control, and can be clicked to mute.
|
||||
|
||||
Clicking any button will slightly adjust the color of the power LED, and the mute key will switch on/off the mute LED, although it might be inverted, since I don't think I can detect host mute status.
|
||||
|
||||
### BOM
|
||||
- 1x Seeed XIAO RP2040
|
||||
- 15x Cherry MX Switches
|
||||
- 1x EC11 Rotary encoder
|
||||
- 15x Blank DSA keycaps (Red, preferably)
|
||||
- 2x SK6812 MINI-E LEDs
|
||||
- 4x M3x16mm screws
|
||||
- 4x M3 hex nuts
|
||||
- 4x M3x5mx4mm heatset inserts
|
||||
- 1x MCP23017 io expander chip
|
||||
- 1x Case (2 printed parts)
|
||||
|
||||
### TODO:
|
||||
- Double check BOM & try to find prices
|
||||
BIN
hackpads/firepad/firepad-assets/firepad-above.png
Normal file
BIN
hackpads/firepad/firepad-assets/firepad-above.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 420 KiB |
BIN
hackpads/firepad/firepad-assets/firepad-below.png
Normal file
BIN
hackpads/firepad/firepad-assets/firepad-below.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
9324
hackpads/firepad/firepad-assets/firepad-bottom.step
Normal file
9324
hackpads/firepad/firepad-assets/firepad-bottom.step
Normal file
File diff suppressed because it is too large
Load diff
BIN
hackpads/firepad/firepad-assets/firepad-diagonal.png
Normal file
BIN
hackpads/firepad/firepad-assets/firepad-diagonal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 353 KiB |
BIN
hackpads/firepad/firepad-assets/firepad-pcb-3D.png
Normal file
BIN
hackpads/firepad/firepad-assets/firepad-pcb-3D.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 152 KiB |
BIN
hackpads/firepad/firepad-assets/firepad-pcb.png
Normal file
BIN
hackpads/firepad/firepad-assets/firepad-pcb.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 154 KiB |
BIN
hackpads/firepad/firepad-assets/firepad-schematic.png
Normal file
BIN
hackpads/firepad/firepad-assets/firepad-schematic.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
13901
hackpads/firepad/firepad-assets/firepad-top.step
Normal file
13901
hackpads/firepad/firepad-assets/firepad-top.step
Normal file
File diff suppressed because it is too large
Load diff
9324
hackpads/firepad/firepad-cad/firepad-bottom.step
Normal file
9324
hackpads/firepad/firepad-cad/firepad-bottom.step
Normal file
File diff suppressed because it is too large
Load diff
1762
hackpads/firepad/firepad-cad/firepad-keymap.dxf
Normal file
1762
hackpads/firepad/firepad-cad/firepad-keymap.dxf
Normal file
File diff suppressed because it is too large
Load diff
142023
hackpads/firepad/firepad-cad/firepad-pcb-3D.step
Normal file
142023
hackpads/firepad/firepad-cad/firepad-pcb-3D.step
Normal file
File diff suppressed because it is too large
Load diff
22357
hackpads/firepad/firepad-cad/firepad-pcb.step
Normal file
22357
hackpads/firepad/firepad-cad/firepad-pcb.step
Normal file
File diff suppressed because it is too large
Load diff
13901
hackpads/firepad/firepad-cad/firepad-top.step
Normal file
13901
hackpads/firepad/firepad-cad/firepad-top.step
Normal file
File diff suppressed because it is too large
Load diff
44560
hackpads/firepad/firepad-pcb/3D Models.pretty/Cherry MX-No LED.step
Normal file
44560
hackpads/firepad/firepad-pcb/3D Models.pretty/Cherry MX-No LED.step
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3421
hackpads/firepad/firepad-pcb/3D Models.pretty/LED_SK6812MINI-E.step
Normal file
3421
hackpads/firepad/firepad-pcb/3D Models.pretty/LED_SK6812MINI-E.step
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,290 @@
|
|||
(footprint "LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm_3D"
|
||||
(version 20240108)
|
||||
(generator "pcbnew")
|
||||
(generator_version "8.0")
|
||||
(layer "F.Cu")
|
||||
(descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf")
|
||||
(tags "LED RGB NeoPixel Mini PLCC-4 3535")
|
||||
(property "Reference" "REF**"
|
||||
(at 0 -2.75 0)
|
||||
(layer "F.SilkS")
|
||||
(uuid "5a11e3a0-df26-4e1e-8b8f-efb3ead5086b")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm_3D"
|
||||
(at 0 3.25 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "e06e35b3-e0aa-45c8-9c4c-d6ce7c824750")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "d59d046c-c730-4aa6-a088-ed1f36e076fb")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "d1d514e2-b75a-404f-8c89-2ef6fd656f2a")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "c9b5b815-b514-4091-86c6-0a3e60819067")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line
|
||||
(start -2.8 -2)
|
||||
(end -2.8 2)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "43adbbe1-6a98-41f5-898f-b826717c1132")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.8 -2)
|
||||
(end 2.8 -2)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "ac05fd60-c7fe-4ebc-afdb-bb03a9433555")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.8 2)
|
||||
(end 2.2 2)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "8b9d6599-795e-4cf4-ba1d-7057604a3bdf")
|
||||
)
|
||||
(fp_line
|
||||
(start 2.8 1.4)
|
||||
(end 2.2 2)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "512f89f0-756e-4428-87af-703f4214a630")
|
||||
)
|
||||
(fp_line
|
||||
(start 2.8 1.4)
|
||||
(end 2.8 -2)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "a7837fa2-fcb5-49a9-a046-9741da620195")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.8 -2)
|
||||
(end -2.8 2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "72992e62-bce9-4f6e-9406-5d626166f6e0")
|
||||
)
|
||||
(fp_line
|
||||
(start -2.8 2)
|
||||
(end 2.8 2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "3407ab69-504c-4f7b-94c8-4b7d0f807fa5")
|
||||
)
|
||||
(fp_line
|
||||
(start 2.8 -2)
|
||||
(end -2.8 -2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "618d036d-5236-45e6-9dcf-8d85a1b73eed")
|
||||
)
|
||||
(fp_line
|
||||
(start 2.8 2)
|
||||
(end 2.8 -2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "b6c113c4-050a-4055-bd0b-88b68607e013")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.75 -1.75)
|
||||
(end -1.75 1.75)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "4bf15588-8141-4eed-9b3c-61f1a0af2e71")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.75 1.75)
|
||||
(end 1.75 1.75)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "edf08d44-29ab-41d0-b891-6908b9c35b30")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.75 -1.75)
|
||||
(end -1.75 -1.75)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "d059dc71-e93e-4c09-98bd-8587f16853ad")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.75 0.75)
|
||||
(end 0.75 1.75)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "f77e6c0b-1ee4-4a22-9ff5-561d1f4206d5")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.75 1.75)
|
||||
(end 1.75 -1.75)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "697d65c4-63d2-4b60-b801-a3800fcf954c")
|
||||
)
|
||||
(fp_circle
|
||||
(center 0 0)
|
||||
(end 0 -1.5)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.Fab")
|
||||
(uuid "974be58e-74de-4e07-947f-98852335e05c")
|
||||
)
|
||||
(fp_text user "1"
|
||||
(at -3.2 -0.875 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "8e37004e-c9dd-4a9a-adc3-b571b53d17d6")
|
||||
(effects
|
||||
(font
|
||||
(size 0.8 0.8)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at 0 0 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "44968780-5c6b-43a0-9bc4-76ab950d885b")
|
||||
(effects
|
||||
(font
|
||||
(size 0.5 0.5)
|
||||
(thickness 0.1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "1" smd rect
|
||||
(at -1.75 -0.875)
|
||||
(size 1.6 0.85)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(uuid "3aa8cc5d-54e5-4038-aae5-88b9a0043bb9")
|
||||
)
|
||||
(pad "2" smd rect
|
||||
(at -1.75 0.875)
|
||||
(size 1.6 0.85)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(uuid "9a5b3312-e555-4b96-8d26-1be1020a0691")
|
||||
)
|
||||
(pad "3" smd rect
|
||||
(at 1.75 0.875)
|
||||
(size 1.6 0.85)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(uuid "80a855b4-41b1-40fc-89fa-5d46a84d59c1")
|
||||
)
|
||||
(pad "4" smd rect
|
||||
(at 1.75 -0.875)
|
||||
(size 1.6 0.85)
|
||||
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||
(uuid "bf51f97d-70b8-403d-b9e7-1c48bc155b9d")
|
||||
)
|
||||
(model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl"
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
(model "${KIPRJMOD}/3D Models.pretty/LED_SK6812MINI-E.step"
|
||||
(offset
|
||||
(xyz 0 5 1.9)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
@ -0,0 +1,421 @@
|
|||
(footprint "RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_CircularMountingHoles_3D"
|
||||
(version 20240108)
|
||||
(generator "pcbnew")
|
||||
(generator_version "8.0")
|
||||
(layer "F.Cu")
|
||||
(descr "Alps rotary encoder, EC12E... with switch, vertical shaft, mounting holes with circular drills, http://www.alps.com/prod/info/E/HTML/Encoder/Incremental/EC11/EC11E15204A3.html")
|
||||
(tags "rotary encoder")
|
||||
(property "Reference" "REF**"
|
||||
(at 2.8 -4.7 0)
|
||||
(layer "F.SilkS")
|
||||
(uuid "baa1d284-6b5f-403b-b177-265474084583")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_CircularMountingHoles_3D"
|
||||
(at 7.5 10.4 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "48d2aa30-2923-4809-ba5f-6dbdfff3be81")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "c0f68f31-4dcd-44db-84cc-ac522e14b350")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "2e389fb8-4dc2-4d7c-987d-f04a96a86c92")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "dca88b7f-bd19-4089-b8c3-c990b2b0f10e")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr through_hole)
|
||||
(fp_line
|
||||
(start -0.3 -1.6)
|
||||
(end 0.3 -1.6)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "9eb6b4fc-8d68-4b13-a880-bd406634e0e1")
|
||||
)
|
||||
(fp_line
|
||||
(start 0 -1.3)
|
||||
(end -0.3 -1.6)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "93d3b42b-d24b-4361-bc02-5d8912e88592")
|
||||
)
|
||||
(fp_line
|
||||
(start 0.3 -1.6)
|
||||
(end 0 -1.3)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "fdfdbb01-eabc-4f28-84fa-4784a00ca85f")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.4 -3.4)
|
||||
(end 1.4 8.4)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1a711b87-5229-4fcf-88a4-7949680e76d1")
|
||||
)
|
||||
(fp_line
|
||||
(start 5.5 -3.4)
|
||||
(end 1.4 -3.4)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "672fb60f-b7d4-4fb8-9325-be1347309988")
|
||||
)
|
||||
(fp_line
|
||||
(start 5.5 8.4)
|
||||
(end 1.4 8.4)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "493ffe91-f229-4e1f-8497-3e4f4a2a94cc")
|
||||
)
|
||||
(fp_line
|
||||
(start 7 2.5)
|
||||
(end 8 2.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "a2a5f371-6d76-4a9e-9f8b-b38371cbfa19")
|
||||
)
|
||||
(fp_line
|
||||
(start 7.5 2)
|
||||
(end 7.5 3)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "7b8c18df-bde0-4c1c-b7e1-d9b35e2e82b1")
|
||||
)
|
||||
(fp_line
|
||||
(start 9.5 -3.4)
|
||||
(end 13.6 -3.4)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "365d1710-550a-4785-bfc3-083188fc4c74")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.6 -3.4)
|
||||
(end 13.6 -1)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "2613db36-7f25-4447-b2b7-4d71c3cbd66d")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.6 1.2)
|
||||
(end 13.6 3.8)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "6814a040-09b2-4eb1-a99e-97e12bd5564e")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.6 6)
|
||||
(end 13.6 8.4)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "a93380be-0e03-4a12-b609-50acd2f37a1b")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.6 8.4)
|
||||
(end 9.5 8.4)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f587fdbf-0444-4b0d-9be2-b8b775e67c74")
|
||||
)
|
||||
(fp_circle
|
||||
(center 7.5 2.5)
|
||||
(end 10.5 2.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.SilkS")
|
||||
(uuid "8671f76c-b602-4c86-b9b3-1e5019e676d4")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.5 -5.2)
|
||||
(end -1.5 10.2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "2218b66b-db06-4a48-8afe-fe5f0d33aee4")
|
||||
)
|
||||
(fp_line
|
||||
(start -1.5 -5.2)
|
||||
(end 16 -5.2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "346d6143-d699-4521-8d79-6bb619065bd3")
|
||||
)
|
||||
(fp_line
|
||||
(start 16 10.2)
|
||||
(end -1.5 10.2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "30b62b8a-cce6-4fd1-a067-793e7352ea8c")
|
||||
)
|
||||
(fp_line
|
||||
(start 16 10.2)
|
||||
(end 16 -5.2)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "ba485721-8b80-46ac-a650-7b4699a8234b")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.5 -2.2)
|
||||
(end 2.5 -3.3)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "8f68c9ca-d2a7-4228-af7d-64cd9f6d8f1e")
|
||||
)
|
||||
(fp_line
|
||||
(start 1.5 8.3)
|
||||
(end 1.5 -2.2)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "dcccac69-4436-4f62-bc5e-baec9813528b")
|
||||
)
|
||||
(fp_line
|
||||
(start 2.5 -3.3)
|
||||
(end 13.5 -3.3)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "2dfe9000-710b-4123-89c2-15fcc6c70c5e")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.5 2.5)
|
||||
(end 10.5 2.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "7b32c14e-5bd1-4af9-93ca-0c28982ca665")
|
||||
)
|
||||
(fp_line
|
||||
(start 7.5 -0.5)
|
||||
(end 7.5 5.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "a6fe3eec-2c57-4e84-a57c-86ee58e61efd")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.5 -3.3)
|
||||
(end 13.5 8.3)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "f083d729-1b2f-4333-a9cc-b99db4b4e111")
|
||||
)
|
||||
(fp_line
|
||||
(start 13.5 8.3)
|
||||
(end 1.5 8.3)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "af253962-eccf-4204-bb87-f9488a2ead8c")
|
||||
)
|
||||
(fp_circle
|
||||
(center 7.5 2.5)
|
||||
(end 10.5 2.5)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.Fab")
|
||||
(uuid "480adee2-fa1f-4a13-84e2-ea885e17c110")
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at 11.1 6.3 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "ee3f334b-7527-4984-95db-486607734816")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "A" thru_hole rect
|
||||
(at 0 0)
|
||||
(size 2 2)
|
||||
(drill 1)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "93eaa7dd-0df9-4e22-9928-41f307dbe876")
|
||||
)
|
||||
(pad "B" thru_hole circle
|
||||
(at 0 5)
|
||||
(size 2 2)
|
||||
(drill 1)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "c6492c71-04ec-40a3-8904-e62595e5febd")
|
||||
)
|
||||
(pad "C" thru_hole circle
|
||||
(at 0 2.5)
|
||||
(size 2 2)
|
||||
(drill 1)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "28e5ab48-ddfb-4cca-a785-9cdfa4f825d3")
|
||||
)
|
||||
(pad "MP" thru_hole circle
|
||||
(at 7.5 -3.1)
|
||||
(size 3.2 3.2)
|
||||
(drill 2.6)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "93160c58-3a58-4fe6-9e40-9d680e5cd364")
|
||||
)
|
||||
(pad "MP" thru_hole circle
|
||||
(at 7.5 8.1)
|
||||
(size 3.2 3.2)
|
||||
(drill 2.6)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "bbf18cbe-050e-46f2-8039-d2e88634debf")
|
||||
)
|
||||
(pad "S1" thru_hole circle
|
||||
(at 14.5 5)
|
||||
(size 2 2)
|
||||
(drill 1)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "44ccd7f4-393c-4d00-b58a-41eb5033dd98")
|
||||
)
|
||||
(pad "S2" thru_hole circle
|
||||
(at 14.5 0)
|
||||
(size 2 2)
|
||||
(drill 1)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "87f8f3ac-e784-4ffe-97a3-d8efbcca496c")
|
||||
)
|
||||
(model "${KICAD8_3DMODEL_DIR}/Rotary_Encoder.3dshapes/RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm_CircularMountingHoles.wrl"
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
(model "${KIPRJMOD}/3D Models.pretty/EC11_Rotary_Encoder_Switched.step"
|
||||
(offset
|
||||
(xyz 7.5 -2.5 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 90)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
@ -0,0 +1,300 @@
|
|||
(footprint "SW_Cherry_MX_1.00u_PCB_3D"
|
||||
(version 20240108)
|
||||
(generator "pcbnew")
|
||||
(generator_version "8.0")
|
||||
(layer "F.Cu")
|
||||
(descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf")
|
||||
(tags "Cherry MX keyswitch 1.00u PCB")
|
||||
(property "Reference" "REF**"
|
||||
(at -2.54 -2.794 0)
|
||||
(layer "F.SilkS")
|
||||
(uuid "c03327f2-012e-4fbf-80a8-a7d4b49f6df2")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "SW_Cherry_MX_1.00u_PCB_3D"
|
||||
(at -2.54 12.954 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "729da0de-a38f-4970-a9aa-b4dc70f92f16")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "acaa596e-914d-4cd8-ab3a-52e2a0d3f270")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "0037b9f5-583a-41f5-9b90-1b725631a7a1")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "482871a4-3f1f-46ca-bcff-19c31bbdd9f3")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr through_hole)
|
||||
(fp_line
|
||||
(start -9.525 -1.905)
|
||||
(end 4.445 -1.905)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f2eeb289-74f8-46da-801f-0aafb6af9995")
|
||||
)
|
||||
(fp_line
|
||||
(start -9.525 12.065)
|
||||
(end -9.525 -1.905)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "4f02a351-9568-48f2-b04f-076667160b2f")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.445 -1.905)
|
||||
(end 4.445 12.065)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "2251a3c2-fb48-4ef6-9776-e36c07a3aa92")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.445 12.065)
|
||||
(end -9.525 12.065)
|
||||
(stroke
|
||||
(width 0.12)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b287663f-61be-4819-9523-1331a964301e")
|
||||
)
|
||||
(fp_line
|
||||
(start -12.065 -4.445)
|
||||
(end 6.985 -4.445)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "e73067c5-0bf4-4f44-be33-c28f7b06adae")
|
||||
)
|
||||
(fp_line
|
||||
(start -12.065 14.605)
|
||||
(end -12.065 -4.445)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "17a37dc2-1fc7-4198-bc2d-40147f9021f4")
|
||||
)
|
||||
(fp_line
|
||||
(start 6.985 -4.445)
|
||||
(end 6.985 14.605)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "707f604a-7f3f-405f-8b89-2e17dbf94ec1")
|
||||
)
|
||||
(fp_line
|
||||
(start 6.985 14.605)
|
||||
(end -12.065 14.605)
|
||||
(stroke
|
||||
(width 0.15)
|
||||
(type solid)
|
||||
)
|
||||
(layer "Dwgs.User")
|
||||
(uuid "68ba3686-54f3-42b1-847b-d7576a207bac")
|
||||
)
|
||||
(fp_line
|
||||
(start -9.14 -1.52)
|
||||
(end 4.06 -1.52)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "3a139f5a-3d7f-49bd-b57b-3b3b63bd6f5a")
|
||||
)
|
||||
(fp_line
|
||||
(start -9.14 11.68)
|
||||
(end -9.14 -1.52)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "9d9006b1-c0da-4488-b6c4-3bf750600acd")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.06 -1.52)
|
||||
(end 4.06 11.68)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "12a34f16-8b02-4a16-8e95-de8109927f8a")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.06 11.68)
|
||||
(end -9.14 11.68)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "cb893612-c825-49d3-b7ba-e7e76ca792b9")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.89 -1.27)
|
||||
(end 3.81 -1.27)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "101f121f-d715-41de-b65e-0eb643435073")
|
||||
)
|
||||
(fp_line
|
||||
(start -8.89 11.43)
|
||||
(end -8.89 -1.27)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "ef533fc2-b06e-4fb0-bad6-5831fe8240f6")
|
||||
)
|
||||
(fp_line
|
||||
(start 3.81 -1.27)
|
||||
(end 3.81 11.43)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "31ba89c8-dd03-4cdd-9ba7-3f7d0aded6a1")
|
||||
)
|
||||
(fp_line
|
||||
(start 3.81 11.43)
|
||||
(end -8.89 11.43)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.Fab")
|
||||
(uuid "800336e4-24a6-46ec-9023-c027ab2f3d06")
|
||||
)
|
||||
(fp_text user "${REFERENCE}"
|
||||
(at -2.54 -2.794 0)
|
||||
(layer "F.Fab")
|
||||
(uuid "40dd7085-da12-41b9-b892-bfa7bf4f1386")
|
||||
(effects
|
||||
(font
|
||||
(size 1 1)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(pad "" np_thru_hole circle
|
||||
(at -7.62 5.08)
|
||||
(size 1.7 1.7)
|
||||
(drill 1.7)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(uuid "b86d769f-f008-4ebc-81df-18e41ab52916")
|
||||
)
|
||||
(pad "" np_thru_hole circle
|
||||
(at -2.54 5.08)
|
||||
(size 4 4)
|
||||
(drill 4)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(uuid "73765e79-092c-47ba-8638-124dd80e461f")
|
||||
)
|
||||
(pad "" np_thru_hole circle
|
||||
(at 2.54 5.08)
|
||||
(size 1.7 1.7)
|
||||
(drill 1.7)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(uuid "c335d4df-5e73-4f97-a7a9-cdd4823bfe9d")
|
||||
)
|
||||
(pad "1" thru_hole circle
|
||||
(at 0 0)
|
||||
(size 2.2 2.2)
|
||||
(drill 1.5)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "95f28955-d4ce-4605-8aac-5b414b25ef4e")
|
||||
)
|
||||
(pad "2" thru_hole circle
|
||||
(at -6.35 2.54)
|
||||
(size 2.2 2.2)
|
||||
(drill 1.5)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "9d507696-ddb2-4a94-b63a-54a69e85b238")
|
||||
)
|
||||
(model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl"
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
(model "${KIPRJMOD}/3D Models.pretty/Cherry MX-No LED.step"
|
||||
(offset
|
||||
(xyz -2.5 -4 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz -90 0 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,565 @@
|
|||
(footprint "XIAO-RP2040-DIP-3D"
|
||||
(version 20240108)
|
||||
(generator "pcbnew")
|
||||
(generator_version "8.0")
|
||||
(layer "F.Cu")
|
||||
(property "Reference" "REF**"
|
||||
(at -8.5 -12 0)
|
||||
(unlocked yes)
|
||||
(layer "F.SilkS")
|
||||
(uuid "7bab359d-5e5b-4dff-9db4-e7c8562ce635")
|
||||
(effects
|
||||
(font
|
||||
(size 0.635 0.635)
|
||||
(thickness 0.1016)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Value" "XIAO-RP2040-DIP-3D"
|
||||
(at 0 0 0)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(uuid "79cabf23-4ebc-4d37-9172-bb2cf4ea975f")
|
||||
(effects
|
||||
(font
|
||||
(size 0.635 0.635)
|
||||
(thickness 0.1016)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Footprint" ""
|
||||
(at 0 0 90)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "8f4fc10c-2540-4ba7-9be3-30f132330a85")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Datasheet" ""
|
||||
(at 0 0 90)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "663dc686-104e-47e1-9669-e1228477fa6f")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(property "Description" ""
|
||||
(at 0 0 90)
|
||||
(unlocked yes)
|
||||
(layer "F.Fab")
|
||||
(hide yes)
|
||||
(uuid "a25b2a4a-94ce-41bd-8341-b98204aa9142")
|
||||
(effects
|
||||
(font
|
||||
(size 1.27 1.27)
|
||||
(thickness 0.15)
|
||||
)
|
||||
)
|
||||
)
|
||||
(attr smd)
|
||||
(fp_line
|
||||
(start -8.89 8.509)
|
||||
(end -8.89 -8.636)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f58afa0e-63f9-4096-9d17-7cf8e5de7759")
|
||||
)
|
||||
(fp_line
|
||||
(start -6.985 10.414)
|
||||
(end 6.985 10.414)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "e213e2f5-659f-4cdb-b390-b284746621aa")
|
||||
)
|
||||
(fp_line
|
||||
(start -4.495 -10.541)
|
||||
(end -4.491272 -11.451272)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f9de026f-4957-4c58-8815-2ec2a4e25304")
|
||||
)
|
||||
(fp_line
|
||||
(start -3.991272 -11.951)
|
||||
(end 4.004 -11.951)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "6d10c908-5643-4e34-bfda-e70d5bfbd057")
|
||||
)
|
||||
(fp_line
|
||||
(start 4.504 -11.451)
|
||||
(end 4.504 -10.541)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "a7b3f67f-df72-4a29-b8dd-2fd55817ebb8")
|
||||
)
|
||||
(fp_line
|
||||
(start 6.985 -10.541)
|
||||
(end -6.985 -10.541)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "b407de18-ee19-4b1e-a2a2-287f0975a1da")
|
||||
)
|
||||
(fp_line
|
||||
(start 6.985 -10.541)
|
||||
(end -6.985 -10.541)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "6f680559-bbef-46de-9ef5-efda7c2411e9")
|
||||
)
|
||||
(fp_line
|
||||
(start 8.89 8.509)
|
||||
(end 8.89 -8.636)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "9c6409b2-5f1b-4299-85bf-d07c96f13a2a")
|
||||
)
|
||||
(fp_arc
|
||||
(start -8.89 -8.636)
|
||||
(mid -8.332038 -9.983038)
|
||||
(end -6.985 -10.541)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "c6870bc4-897a-485a-b951-3feda1bdd32e")
|
||||
)
|
||||
(fp_arc
|
||||
(start -6.985 10.414)
|
||||
(mid -8.332038 9.856038)
|
||||
(end -8.89 8.509)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "88e5d6ea-6b70-4830-9817-980fd2b32f79")
|
||||
)
|
||||
(fp_arc
|
||||
(start -4.491272 -11.451272)
|
||||
(mid -4.344728 -11.80464)
|
||||
(end -3.991272 -11.951)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1224aaf2-42c0-4b17-8ffc-7aaff0b1be63")
|
||||
)
|
||||
(fp_arc
|
||||
(start 4.004 -11.951)
|
||||
(mid 4.357553 -11.804553)
|
||||
(end 4.504 -11.451)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type default)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "c20fb5ab-ae23-4c23-8e13-36a7eb3db89c")
|
||||
)
|
||||
(fp_arc
|
||||
(start 6.985 -10.541)
|
||||
(mid 8.332038 -9.983038)
|
||||
(end 8.89 -8.636)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "e1d8f660-1495-43db-8a6b-7fdc7dc42e35")
|
||||
)
|
||||
(fp_arc
|
||||
(start 8.89 8.509)
|
||||
(mid 8.332038 9.856038)
|
||||
(end 6.985 10.414)
|
||||
(stroke
|
||||
(width 0.127)
|
||||
(type solid)
|
||||
)
|
||||
(layer "F.SilkS")
|
||||
(uuid "f108f05c-d5f6-4de1-bc6f-4c31ef53e967")
|
||||
)
|
||||
(fp_circle
|
||||
(center -8.95 -10.3)
|
||||
(end -8.95 -10.554)
|
||||
(stroke
|
||||
(width 0.5)
|
||||
(type solid)
|
||||
)
|
||||
(fill solid)
|
||||
(layer "F.SilkS")
|
||||
(uuid "d523b867-b930-4152-a585-fb2991113352")
|
||||
)
|
||||
(fp_circle
|
||||
(center -7.807 -9.42)
|
||||
(end -7.807 -9.674)
|
||||
(stroke
|
||||
(width 0.5)
|
||||
(type solid)
|
||||
)
|
||||
(fill solid)
|
||||
(layer "F.SilkS")
|
||||
(uuid "1b9c22f7-f19d-4572-be63-065c1e034c25")
|
||||
)
|
||||
(fp_rect
|
||||
(start -8.9 -10.55)
|
||||
(end 8.9 10.425)
|
||||
(stroke
|
||||
(width 0.05)
|
||||
(type default)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.CrtYd")
|
||||
(uuid "b53697bc-d105-40e2-af66-708b16a7f26c")
|
||||
)
|
||||
(fp_rect
|
||||
(start -8.9 -10.55)
|
||||
(end 8.9 10.425)
|
||||
(stroke
|
||||
(width 0.1)
|
||||
(type default)
|
||||
)
|
||||
(fill none)
|
||||
(layer "F.Fab")
|
||||
(uuid "a45a327e-f036-4877-8d89-39f4f4b0c715")
|
||||
)
|
||||
(fp_circle
|
||||
(center -7.804 -9.426)
|
||||
(end -7.804 -9.68)
|
||||
(stroke
|
||||
(width 0.5)
|
||||
(type solid)
|
||||
)
|
||||
(fill solid)
|
||||
(layer "F.Fab")
|
||||
(uuid "f1bda1b0-c6a9-4930-b2ed-d175257d4cca")
|
||||
)
|
||||
(pad "1" smd roundrect
|
||||
(at -8.455 -7.62 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "82bbfb55-8baa-4218-ac89-ab07d82ef7f8")
|
||||
)
|
||||
(pad "1" thru_hole circle
|
||||
(at -7.62 -7.62 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "f2fffd4f-460c-4b4d-b954-811e935ed1d6")
|
||||
)
|
||||
(pad "2" smd roundrect
|
||||
(at -8.455 -5.08 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "18ef9914-2d15-494c-9020-2334abcc1460")
|
||||
)
|
||||
(pad "2" thru_hole circle
|
||||
(at -7.62 -5.08 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "4732cc3f-e641-4870-a9b3-ae13729c7bba")
|
||||
)
|
||||
(pad "3" smd roundrect
|
||||
(at -8.455 -2.54 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "15338a55-8514-4218-a2c1-2cae003104c3")
|
||||
)
|
||||
(pad "3" thru_hole circle
|
||||
(at -7.62 -2.54 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "0cef5e55-d8ff-4394-9cc1-cc318608b0d9")
|
||||
)
|
||||
(pad "4" smd roundrect
|
||||
(at -8.455 0 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "191a259d-5773-4a80-91de-baa69611fab8")
|
||||
)
|
||||
(pad "4" thru_hole circle
|
||||
(at -7.62 0 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "200b8da4-9395-48a5-b7ac-92a6a147c215")
|
||||
)
|
||||
(pad "5" smd roundrect
|
||||
(at -8.455 2.54 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "52012467-1c46-4a8e-aa82-6f6ce69bd2ca")
|
||||
)
|
||||
(pad "5" thru_hole circle
|
||||
(at -7.62 2.54 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "2b50ccce-3634-47d1-bf7d-a3db4f3f9a9f")
|
||||
)
|
||||
(pad "6" smd roundrect
|
||||
(at -8.455 5.08 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "04aeaf95-142a-40f6-97a3-04453fc50824")
|
||||
)
|
||||
(pad "6" thru_hole circle
|
||||
(at -7.62 5.08 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "7636de9d-d8e5-49c9-9fff-0cd76515690d")
|
||||
)
|
||||
(pad "7" smd roundrect
|
||||
(at -8.455 7.62 180)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "e997fd0b-233a-4656-afad-cb2f8b9d87c9")
|
||||
)
|
||||
(pad "7" thru_hole circle
|
||||
(at -7.62 7.62 180)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "9d2c0d0c-05dd-477e-8384-b14eec83fc2e")
|
||||
)
|
||||
(pad "8" thru_hole circle
|
||||
(at 7.62 7.62)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "1e50c66f-49b8-4b03-9889-8cc6ca45ad8e")
|
||||
)
|
||||
(pad "8" smd roundrect
|
||||
(at 8.455 7.62)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "e7b72803-b5f0-433c-8313-83247355fb43")
|
||||
)
|
||||
(pad "9" thru_hole circle
|
||||
(at 7.62 5.08)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "808bf9dc-1c26-4a77-93c9-e4c6d5eccbb2")
|
||||
)
|
||||
(pad "9" smd roundrect
|
||||
(at 8.455 5.08)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "532de3b6-bd30-47c5-b70e-0bca6abbd997")
|
||||
)
|
||||
(pad "10" thru_hole circle
|
||||
(at 7.62 2.54)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "a792a2ac-537b-4136-8f92-b81f7ce8f753")
|
||||
)
|
||||
(pad "10" smd roundrect
|
||||
(at 8.455 2.54)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "6e3f5c75-6143-468e-bb07-d89020c03f59")
|
||||
)
|
||||
(pad "11" thru_hole circle
|
||||
(at 7.62 0)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "fb78046a-9b91-4893-b010-827957cc07be")
|
||||
)
|
||||
(pad "11" smd roundrect
|
||||
(at 8.455 0)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "5249f425-bece-432d-8076-28e1b8b386e3")
|
||||
)
|
||||
(pad "12" thru_hole circle
|
||||
(at 7.62 -2.54)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "0b8ccc97-5100-4dcf-8500-e99789ee0b4c")
|
||||
)
|
||||
(pad "12" smd roundrect
|
||||
(at 8.455 -2.54)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "82f1bbd1-708b-4d2d-9113-7ba3c2313670")
|
||||
)
|
||||
(pad "13" thru_hole circle
|
||||
(at 7.62 -5.08)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "03882061-01af-484b-b620-9e92a3daaf68")
|
||||
)
|
||||
(pad "13" smd roundrect
|
||||
(at 8.455 -5.08)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "954f51d1-3d75-42fb-a02a-7389b30718d9")
|
||||
)
|
||||
(pad "14" thru_hole circle
|
||||
(at 7.62 -7.62)
|
||||
(size 1.524 1.524)
|
||||
(drill 0.889)
|
||||
(layers "*.Cu" "*.Mask")
|
||||
(remove_unused_layers no)
|
||||
(uuid "c6d1af47-da13-4409-9ab1-55d358cc57eb")
|
||||
)
|
||||
(pad "14" smd roundrect
|
||||
(at 8.455 -7.62)
|
||||
(size 2.432 1.524)
|
||||
(layers "F.Cu" "F.Mask")
|
||||
(roundrect_rratio 0.1)
|
||||
(thermal_bridge_angle 45)
|
||||
(uuid "6b725fd4-d6f0-46bf-b3e0-7ec07cc05622")
|
||||
)
|
||||
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-nRF52840 v15.step"
|
||||
(hide yes)
|
||||
(offset
|
||||
(xyz -1.778 -6.096 0.381)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz -90 0 0)
|
||||
)
|
||||
)
|
||||
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeeduino XIAO SAMD21 v4.step"
|
||||
(hide yes)
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO RP2040 v26.step"
|
||||
(offset
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 90)
|
||||
)
|
||||
)
|
||||
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO-ESP32-C3.step"
|
||||
(hide yes)
|
||||
(offset
|
||||
(xyz -1.7018 -6.096 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz -90 0 0)
|
||||
)
|
||||
)
|
||||
(model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-ESP32S3 v2.step"
|
||||
(hide yes)
|
||||
(offset
|
||||
(xyz -1.778 -6.1722 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz -90 0 0)
|
||||
)
|
||||
)
|
||||
(model "${KIPRJMOD}/3D Models.pretty/Seeed Studio XIAO RP2040 v26.step"
|
||||
(offset
|
||||
(xyz -0 0 0)
|
||||
)
|
||||
(scale
|
||||
(xyz 1 1 1)
|
||||
)
|
||||
(rotate
|
||||
(xyz 0 0 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
11485
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_pcb
Normal file
11485
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_pcb
Normal file
File diff suppressed because it is too large
Load diff
83
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_prl
Normal file
83
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_prl
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"board": {
|
||||
"active_layer": 37,
|
||||
"active_layer_preset": "All Layers",
|
||||
"auto_track_width": true,
|
||||
"hidden_netclasses": [],
|
||||
"hidden_nets": [],
|
||||
"high_contrast_mode": 0,
|
||||
"net_color_mode": 1,
|
||||
"opacity": {
|
||||
"images": 0.6,
|
||||
"pads": 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": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
8,
|
||||
9,
|
||||
10,
|
||||
11,
|
||||
12,
|
||||
13,
|
||||
15,
|
||||
16,
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20,
|
||||
21,
|
||||
22,
|
||||
23,
|
||||
24,
|
||||
25,
|
||||
26,
|
||||
27,
|
||||
28,
|
||||
29,
|
||||
30,
|
||||
32,
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36,
|
||||
39,
|
||||
40
|
||||
],
|
||||
"visible_layers": "fffffff_ffffffff",
|
||||
"zone_display_mode": 0
|
||||
},
|
||||
"git": {
|
||||
"repo_password": "",
|
||||
"repo_type": "",
|
||||
"repo_username": "",
|
||||
"ssh_key": ""
|
||||
},
|
||||
"meta": {
|
||||
"filename": "hackpad-pcb.kicad_prl",
|
||||
"version": 3
|
||||
},
|
||||
"project": {
|
||||
"files": []
|
||||
}
|
||||
}
|
||||
584
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_pro
Normal file
584
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_pro
Normal file
|
|
@ -0,0 +1,584 @@
|
|||
{
|
||||
"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": false,
|
||||
"text_position": 0,
|
||||
"units_format": 1
|
||||
},
|
||||
"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": 0.762,
|
||||
"height": 1.524,
|
||||
"width": 1.524
|
||||
},
|
||||
"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": [],
|
||||
"meta": {
|
||||
"version": 2
|
||||
},
|
||||
"rule_severities": {
|
||||
"annular_width": "error",
|
||||
"clearance": "error",
|
||||
"connection_width": "warning",
|
||||
"copper_edge_clearance": "error",
|
||||
"copper_sliver": "warning",
|
||||
"courtyards_overlap": "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_symbol_mismatch": "warning",
|
||||
"footprint_type_mismatch": "ignore",
|
||||
"hole_clearance": "error",
|
||||
"hole_near_hole": "error",
|
||||
"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",
|
||||
"missing_courtyard": "ignore",
|
||||
"missing_footprint": "warning",
|
||||
"net_conflict": "warning",
|
||||
"npth_inside_courtyard": "ignore",
|
||||
"padstack": "warning",
|
||||
"pth_inside_courtyard": "ignore",
|
||||
"shorting_items": "error",
|
||||
"silk_edge_clearance": "warning",
|
||||
"silk_over_copper": "warning",
|
||||
"silk_overlap": "warning",
|
||||
"skew_out_of_range": "error",
|
||||
"solder_mask_bridge": "error",
|
||||
"starved_thermal": "error",
|
||||
"text_height": "warning",
|
||||
"text_thickness": "warning",
|
||||
"through_hole_pad_without_hole": "error",
|
||||
"too_many_vias": "error",
|
||||
"track_dangling": "warning",
|
||||
"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_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_onpadsmd": true,
|
||||
"td_onroundshapesonly": false,
|
||||
"td_ontrackend": false,
|
||||
"td_onviapad": 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_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",
|
||||
"conflicting_netclasses": "error",
|
||||
"different_unit_footprint": "error",
|
||||
"different_unit_net": "error",
|
||||
"duplicate_reference": "error",
|
||||
"duplicate_sheet_names": "error",
|
||||
"endpoint_off_grid": "warning",
|
||||
"extra_units": "error",
|
||||
"global_label_dangling": "warning",
|
||||
"hier_label_mismatch": "error",
|
||||
"label_dangling": "error",
|
||||
"lib_symbol_issues": "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",
|
||||
"similar_labels": "warning",
|
||||
"simulation_model_issue": "ignore",
|
||||
"unannotated": "error",
|
||||
"unit_value_mismatch": "error",
|
||||
"unresolved_variable": "error",
|
||||
"wire_dangling": "error"
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"pinned_footprint_libs": [],
|
||||
"pinned_symbol_libs": []
|
||||
},
|
||||
"meta": {
|
||||
"filename": "hackpad-pcb.kicad_pro",
|
||||
"version": 1
|
||||
},
|
||||
"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)",
|
||||
"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": 3
|
||||
},
|
||||
"net_colors": null,
|
||||
"netclass_assignments": null,
|
||||
"netclass_patterns": []
|
||||
},
|
||||
"pcbnew": {
|
||||
"last_paths": {
|
||||
"gencad": "",
|
||||
"idf": "",
|
||||
"netlist": "",
|
||||
"plot": "",
|
||||
"pos_files": "",
|
||||
"specctra_dsn": "",
|
||||
"step": "hackpad-pcb.step",
|
||||
"svg": "",
|
||||
"vrml": ""
|
||||
},
|
||||
"page_layout_descr_file": ""
|
||||
},
|
||||
"schematic": {
|
||||
"annotate_start_num": 0,
|
||||
"bom_export_filename": "",
|
||||
"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": "Datasheet",
|
||||
"name": "Datasheet",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Footprint",
|
||||
"name": "Footprint",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Qty",
|
||||
"name": "${QUANTITY}",
|
||||
"show": true
|
||||
},
|
||||
{
|
||||
"group_by": true,
|
||||
"label": "DNP",
|
||||
"name": "${DNP}",
|
||||
"show": true
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": true,
|
||||
"name": "Grouped By Value",
|
||||
"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": "",
|
||||
"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": [
|
||||
[
|
||||
"39695cd9-004f-4352-8165-bc66b45d0cfc",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
6098
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_sch
Normal file
6098
hackpads/firepad/firepad-pcb/hackpad-pcb.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
9324
hackpads/firepad/firepad-production/firepad-bottom.step
Normal file
9324
hackpads/firepad/firepad-production/firepad-bottom.step
Normal file
File diff suppressed because it is too large
Load diff
13901
hackpads/firepad/firepad-production/firepad-top.step
Normal file
13901
hackpads/firepad/firepad-production/firepad-top.step
Normal file
File diff suppressed because it is too large
Load diff
BIN
hackpads/firepad/firepad-production/gerbers.zip
Normal file
BIN
hackpads/firepad/firepad-production/gerbers.zip
Normal file
Binary file not shown.
182
hackpads/firepad/firepad-production/main.py
Normal file
182
hackpads/firepad/firepad-production/main.py
Normal file
|
|
@ -0,0 +1,182 @@
|
|||
import board # pyright: ignore[reportMissingImports]
|
||||
from kmk.kmk_keyboard import KMKKeyboard
|
||||
from kmk.scanners.keypad import KeysScanner
|
||||
from kmk.keys import KC, Key
|
||||
from kmk.extensions.media_keys import MediaKeys
|
||||
from kmk.modules.encoder import EncoderHandler
|
||||
from kmk.extensions.rgb import RGB
|
||||
from kmk.utils import Debug
|
||||
|
||||
debug = Debug(__name__)
|
||||
debug.enabled = True
|
||||
|
||||
keyboard = KMKKeyboard()
|
||||
|
||||
|
||||
class PrevKey(Key):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def on_press(self, keyboard, coord_int=None):
|
||||
keyboard.add_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_PREV_TRACK
|
||||
)
|
||||
keyboard.add_key(KC.MEDIA_REWIND) # pyright: ignore[reportAttributeAccessIssue]
|
||||
|
||||
def on_release(self, keyboard, coord_int=None):
|
||||
keyboard.remove_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_PREV_TRACK
|
||||
)
|
||||
keyboard.remove_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_REWIND
|
||||
)
|
||||
|
||||
|
||||
class NextKey(Key):
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def on_press(self, keyboard, coord_int=None):
|
||||
keyboard.add_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_NEXT_TRACK
|
||||
)
|
||||
keyboard.add_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_FAST_FORWARD
|
||||
)
|
||||
|
||||
def on_release(self, keyboard, coord_int=None):
|
||||
keyboard.remove_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_NEXT_TRACK
|
||||
)
|
||||
keyboard.remove_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.MEDIA_FAST_FORWARD
|
||||
)
|
||||
|
||||
|
||||
class MuteKey(Key):
|
||||
def __init__(self):
|
||||
self.LED_ON = False
|
||||
|
||||
def on_press(self, keyboard, coord_int=None):
|
||||
keyboard.add_key(KC.AUDIO_MUTE) # pyright: ignore[reportAttributeAccessIssue]
|
||||
|
||||
def on_release(self, keyboard, coord_int=None):
|
||||
keyboard.remove_key( # pyright: ignore[reportAttributeAccessIssue]
|
||||
KC.AUDIO_MUTE
|
||||
)
|
||||
if self.LED_ON:
|
||||
self.LED_ON = False
|
||||
rgb.set_rgb((0, 0, 0), 1)
|
||||
else:
|
||||
self.LED_ON = True
|
||||
rgb.set_rgb((255, 0, 0), 1)
|
||||
|
||||
|
||||
CUR_COLOR = [0, 255, 255]
|
||||
|
||||
|
||||
def checkColor():
|
||||
global CUR_COLOR
|
||||
for i in range(3):
|
||||
if CUR_COLOR[i] > 255:
|
||||
CUR_COLOR[i] = CUR_COLOR[i] - 255
|
||||
|
||||
|
||||
def changeColor():
|
||||
global CUR_COLOR
|
||||
checkColor()
|
||||
if CUR_COLOR[2] >= 255:
|
||||
if CUR_COLOR[1] >= 255:
|
||||
if CUR_COLOR[0] >= 255:
|
||||
CUR_COLOR = [0, 0, 0]
|
||||
else:
|
||||
CUR_COLOR = [CUR_COLOR[0] + 1, 0, 0]
|
||||
else:
|
||||
CUR_COLOR[1] = CUR_COLOR[1] + 1
|
||||
CUR_COLOR[2] = 0
|
||||
else:
|
||||
CUR_COLOR[2] = CUR_COLOR[2] + 1
|
||||
|
||||
|
||||
def unpackColor() -> tuple[int, int, int]:
|
||||
global CUR_COLOR
|
||||
return (CUR_COLOR[0], CUR_COLOR[1], CUR_COLOR[2])
|
||||
|
||||
|
||||
class ColorKey(Key):
|
||||
def __init__(self, keycode):
|
||||
global CUR_COLOR
|
||||
self.keycode = keycode
|
||||
|
||||
def on_press(self, keyboard, coord_int=None) -> None:
|
||||
global CUR_COLOR
|
||||
keyboard.add_key(self.keycode) # pyright: ignore[reportAttributeAccessIssue]
|
||||
changeColor()
|
||||
checkColor()
|
||||
rgb.set_rgb(unpackColor(), 0)
|
||||
|
||||
def on_release(self, keyboard, coord_int=None) -> None:
|
||||
keyboard.remove_key(self.keycode) # pyright: ignore[reportAttributeAccessIssue]
|
||||
|
||||
|
||||
ENCPINS = (board.GP28, board.GP29, board.GP3)
|
||||
PIXPIN = board.GP27
|
||||
KEYPINS = [
|
||||
board.GP4,
|
||||
board.GP2,
|
||||
board.GP1,
|
||||
board.GPB0,
|
||||
board.GPB1,
|
||||
board.GPB2,
|
||||
board.GPB3,
|
||||
board.GPB4,
|
||||
board.GPB5,
|
||||
board.GPB6,
|
||||
board.GPB7,
|
||||
board.GPA0,
|
||||
board.GPA1,
|
||||
board.GPA2,
|
||||
board.GPA3,
|
||||
]
|
||||
# Keycodes: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/keycodes.md
|
||||
# Custom Keys: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/keys.md
|
||||
KEYMAP = [
|
||||
KC.MEDIA_PLAY_PAUSE,
|
||||
PrevKey,
|
||||
NextKey,
|
||||
KC.F13,
|
||||
KC.F14,
|
||||
KC.F15,
|
||||
KC.F16,
|
||||
KC.F17,
|
||||
KC.F18,
|
||||
KC.F19,
|
||||
KC.F20,
|
||||
KC.F21,
|
||||
KC.F22,
|
||||
KC.F23,
|
||||
KC.F24,
|
||||
]
|
||||
ENCMAP = ((KC.AUDIO_VOL_UP, KC.AUDIO_VOL_DOWN, MuteKey),)
|
||||
|
||||
rgb = RGB(pixel_pin=PIXPIN, num_pixels=2)
|
||||
encoder_handler = EncoderHandler()
|
||||
keyboard.extensions.append(MediaKeys())
|
||||
keyboard.extensions.append(rgb)
|
||||
keyboard.modules.append(encoder_handler)
|
||||
|
||||
keyboard.matrix = KeysScanner( # pyright: ignore[reportAttributeAccessIssue]
|
||||
pins=KEYPINS,
|
||||
value_when_pressed=False,
|
||||
)
|
||||
encoder_handler.pins = (ENCPINS,) # pyright: ignore[reportAttributeAccessIssue]
|
||||
|
||||
keyboard.keymap = [
|
||||
KEYMAP,
|
||||
]
|
||||
encoder_handler.map = [ # pyright: ignore[reportAttributeAccessIssue]
|
||||
ENCMAP,
|
||||
]
|
||||
|
||||
if __name__ == "__main__":
|
||||
keyboard.go()
|
||||
|
|
@ -360,7 +360,7 @@ You can use the [QMK firmware](https://qmk.fm/) project as firmware! You can fin
|
|||
<a name="kmk"/>
|
||||
Or if you wish, you can use kmk. It's made in python and can be hot reloaded.
|
||||
|
||||
Here is the starter code, with explenations in the comments:
|
||||
Here is the starter code, with explanations in the comments:
|
||||
|
||||
```python
|
||||
# You import all the IOs of your board
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue