mirror of
https://github.com/System-End/hackpad.git
synced 2026-04-20 00:35:24 +00:00
commit
1903e3e575
13 changed files with 21593 additions and 0 deletions
BIN
hackpads/Sammie's Chonkpad/CAD/Hackpad-case v14.3mf
Normal file
BIN
hackpads/Sammie's Chonkpad/CAD/Hackpad-case v14.3mf
Normal file
Binary file not shown.
40
hackpads/Sammie's Chonkpad/Firmware/main.py
Normal file
40
hackpads/Sammie's Chonkpad/Firmware/main.py
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# You import all the IOs of your board
|
||||
import board
|
||||
|
||||
# These are imports from the kmk library
|
||||
from kmk.kmk_keyboard import KMKKeyboard
|
||||
from kmk.scanners.keypad import KeysScanner
|
||||
from kmk.keys import KC
|
||||
from kmk.modules.macros import Press, Release, Tap, Macros
|
||||
|
||||
# This is the main instance of your keyboard
|
||||
keyboard = KMKKeyboard()
|
||||
|
||||
# Add the macro extension
|
||||
macros = Macros()
|
||||
keyboard.modules.append(macros)
|
||||
|
||||
# Define your pins here!
|
||||
#PINS = [board.D3, board.D4, board.D2, board.D1]
|
||||
keyboard.col_pins = (board.D0, board.D1, board.D2, board.D3)
|
||||
keyboard.row_pins = (board.D7, board.D8, board.D9, board.D10)
|
||||
|
||||
# Tell kmk we are not using a key matrix
|
||||
#keyboard.matrix = KeysScanner(
|
||||
# pins=PINS,
|
||||
# value_when_pressed=False,
|
||||
#)
|
||||
|
||||
# Here you define the buttons corresponding to the pins
|
||||
# Look here for keycodes: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/keycodes.md
|
||||
# And here for macros: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/macros.md
|
||||
keyboard.keymap = [
|
||||
[KC.NLCK, KC.P7, KC.P8, KC.P9, KC.MEDIA_PREV_TRACK,
|
||||
KC.P4, KC.P5, KC.P6, KC.MEDIA_PLAY_PAUSE,
|
||||
KC.P1, KC.P2, KC.P3, KC.MEDIA_NEXT_TRACK,
|
||||
KC.P0, KC.PDOT, KC.PENT] # Media keys prev/next are windows-specific
|
||||
]
|
||||
|
||||
# Start kmk!
|
||||
if __name__ == '__main__':
|
||||
keyboard.go()
|
||||
4
hackpads/Sammie's Chonkpad/PCB/fp-lib-table
Normal file
4
hackpads/Sammie's Chonkpad/PCB/fp-lib-table
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(fp_lib_table
|
||||
(version 7)
|
||||
(lib (name "OPL")(type "KiCad")(uri "${KIPRJMOD}/OPL_Kicad_Library/Seeed Studio XIAO Series Library")(options "")(descr ""))
|
||||
)
|
||||
16084
hackpads/Sammie's Chonkpad/PCB/hackpad.kicad_pcb
Normal file
16084
hackpads/Sammie's Chonkpad/PCB/hackpad.kicad_pcb
Normal file
File diff suppressed because it is too large
Load diff
596
hackpads/Sammie's Chonkpad/PCB/hackpad.kicad_pro
Normal file
596
hackpads/Sammie's Chonkpad/PCB/hackpad.kicad_pro
Normal file
|
|
@ -0,0 +1,596 @@
|
|||
{
|
||||
"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.005,
|
||||
"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.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.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
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "#",
|
||||
"name": "${ITEM_NUMBER}",
|
||||
"show": false
|
||||
},
|
||||
{
|
||||
"group_by": false,
|
||||
"label": "Description",
|
||||
"name": "Description",
|
||||
"show": false
|
||||
}
|
||||
],
|
||||
"filter_string": "",
|
||||
"group_symbols": 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": "",
|
||||
"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": [
|
||||
[
|
||||
"2dd82d7e-3706-47df-b4ac-af9f2b8d9656",
|
||||
"Root"
|
||||
]
|
||||
],
|
||||
"text_variables": {}
|
||||
}
|
||||
4682
hackpads/Sammie's Chonkpad/PCB/hackpad.kicad_sch
Normal file
4682
hackpads/Sammie's Chonkpad/PCB/hackpad.kicad_sch
Normal file
File diff suppressed because it is too large
Load diff
4
hackpads/Sammie's Chonkpad/PCB/sym-lib-table
Normal file
4
hackpads/Sammie's Chonkpad/PCB/sym-lib-table
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
(sym_lib_table
|
||||
(version 7)
|
||||
(lib (name "OPL")(type "KiCad")(uri "${KIPRJMOD}/OPL_Kicad_Library/Seeed Studio XIAO Series Library/Seeed_Studio_XIAO_Series.kicad_sym")(options "")(descr ""))
|
||||
)
|
||||
35
hackpads/Sammie's Chonkpad/README.md
Normal file
35
hackpads/Sammie's Chonkpad/README.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# Sammie's Chonkpad
|
||||
A macropad I think might be somewhat chonky
|
||||
|
||||
Note: I did not include the OPL submodule + other stuff, you can see https://github.com/sz6084/hackpad-self for the full repository.
|
||||
|
||||

|
||||
|
||||
### Inspiration
|
||||
|
||||
I wanted to create a macropad for the keys I lost when i moved from daily-driving a laptop to a PC. Specifically, keys like Rewind, Play/Pause, and Next. These keys were not part of my laptop's function key alternates-they were dedicated buttons which I missed since my current keyboard, a (surprisingly decent and fully-sized) membrane keyboard, only had function keys with no dedicated media buttons. This is definitely not something everyone agrees with (and I find binding my function keys would be too tedious, especially since my old laptop did not have these bound to function keys anyways). It has 16 switches (numpad functions too!), 1 rp2040, and no LEDs (I don't want the hassle and my membrane keyboard doesn't have it anyways, thought RGB in a future macropad would be cool). Something else I might consider is using Choc v2 switches but since the guide used Cherry MX switches I decided to do the same.
|
||||
|
||||
|
||||
### Challenge
|
||||
|
||||
I had never designed a macropad before, let alone use Fusion360 or KiCAD at all. I followed the online guide (thanks @Cyao but please update it!) and consulted my trusty friend who had more experience than I did. I also asked questions in the Hack Club Slack.
|
||||
|
||||
|
||||
### Specifications
|
||||
|
||||
BOM:
|
||||
- 16x Cherry MX switches
|
||||
- 16x 1N4148 diodes
|
||||
- 1x XIAO RP2040
|
||||
- 16x Blank DSA keycaps
|
||||
- 4x M3x16 Bolt
|
||||
- 4x M3 Heatset
|
||||
|
||||
Others:
|
||||
- KMK firmware
|
||||
- Top_Plate.stl
|
||||
- Bottom_Case.stl
|
||||
|
||||
Schematic | PCB | Case
|
||||
:-------------------------:|:-------------------------:|:-------------------------:|
|
||||
 |  | 
|
||||
BIN
hackpads/Sammie's Chonkpad/production/Bottom_Case.stl
Normal file
BIN
hackpads/Sammie's Chonkpad/production/Bottom_Case.stl
Normal file
Binary file not shown.
BIN
hackpads/Sammie's Chonkpad/production/Top_Plate.stl
Normal file
BIN
hackpads/Sammie's Chonkpad/production/Top_Plate.stl
Normal file
Binary file not shown.
Binary file not shown.
BIN
hackpads/Sammie's Chonkpad/production/hackpad.zip
Normal file
BIN
hackpads/Sammie's Chonkpad/production/hackpad.zip
Normal file
Binary file not shown.
148
hackpads/Sammie's Chonkpad/production/netlist.ipc
Normal file
148
hackpads/Sammie's Chonkpad/production/netlist.ipc
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
P CODE 00
|
||||
P UNITS CUST 0
|
||||
P arrayDim N
|
||||
317ROW2 D11 -1 D0315PA00X+033750Y-042375X0630Y0630R270S0
|
||||
317NET-(D11-A) D11 -2 D0315PA00X+033750Y-039375X0630Y0630R270S0
|
||||
317ROW3 D8 -1 D0315PA00X+022500Y-049875X0630Y0630R270S0
|
||||
317NET-(D8-A) D8 -2 D0315PA00X+022500Y-046875X0630Y0630R270S0
|
||||
367N/C SW4 D0669UA00X+013000Y-040313X0669Y0000R000S0
|
||||
367N/C SW4 D1575UA00X+015000Y-040313X1575Y0000R000S0
|
||||
367N/C SW4 D0669UA00X+017000Y-040313X0669Y0000R000S0
|
||||
317COL0 SW4 -1 D0591PA00X+016000Y-038313X0866Y0000R000S0
|
||||
317NET-(D4-A) SW4 -2 D0591PA00X+013500Y-039313X0866Y0000R000S0
|
||||
367N/C SW14 D0669UA00X+035500Y-032813X0669Y0000R000S0
|
||||
367N/C SW14 D1575UA00X+037500Y-032813X1575Y0000R000S0
|
||||
367N/C SW14 D0669UA00X+039500Y-032813X0669Y0000R000S0
|
||||
317COL3 SW14 -1 D0591PA00X+038500Y-030813X0866Y0000R000S0
|
||||
317NET-(D14-A) SW14 -2 D0591PA00X+036000Y-031813X0866Y0000R000S0
|
||||
317ROW1 D2 -1 D0315PA00X+018750Y-027375X0630Y0630R270S0
|
||||
317NET-(D2-A) D2 -2 D0315PA00X+018750Y-024375X0630Y0630R270S0
|
||||
317ROW0 D5 -1 D0315PA00X+026250Y-027375X0630Y0630R270S0
|
||||
317NET-(D5-A) D5 -2 D0315PA00X+026250Y-024375X0630Y0630R270S0
|
||||
367N/C SW5 D0669UA00X+020500Y-025313X0669Y0000R000S0
|
||||
367N/C SW5 D1575UA00X+022500Y-025313X1575Y0000R000S0
|
||||
367N/C SW5 D0669UA00X+024500Y-025313X0669Y0000R000S0
|
||||
317COL1 SW5 -1 D0591PA00X+023500Y-023313X0866Y0000R000S0
|
||||
317NET-(D5-A) SW5 -2 D0591PA00X+021000Y-024313X0866Y0000R000S0
|
||||
367N/C SW6 D0669UA00X+020500Y-032813X0669Y0000R000S0
|
||||
367N/C SW6 D1575UA00X+022500Y-032813X1575Y0000R000S0
|
||||
367N/C SW6 D0669UA00X+024500Y-032813X0669Y0000R000S0
|
||||
317COL1 SW6 -1 D0591PA00X+023500Y-030813X0866Y0000R000S0
|
||||
317NET-(D6-A) SW6 -2 D0591PA00X+021000Y-031813X0866Y0000R000S0
|
||||
367N/C SW8 D1201UA00X+014065Y-045057X1201Y0000R000S0
|
||||
367N/C SW8 D1575UA00X+014065Y-051057X1575Y0000R000S0
|
||||
367N/C SW8 D0669UA00X+016750Y-047813X0669Y0000R000S0
|
||||
367N/C SW8 D1575UA00X+018750Y-047813X1575Y0000R000S0
|
||||
367N/C SW8 D0669UA00X+020750Y-047813X0669Y0000R000S0
|
||||
367N/C SW8 D1201UA00X+023435Y-045057X1201Y0000R000S0
|
||||
367N/C SW8 D1575UA00X+023435Y-051057X1575Y0000R000S0
|
||||
317COL1 SW8 -1 D0591PA00X+019750Y-045813X0866Y0000R000S0
|
||||
317NET-(D8-A) SW8 -2 D0591PA00X+017250Y-046813X0866Y0000R000S0
|
||||
367N/C SW16 D0669UA00X+035500Y-047813X0669Y0000R000S0
|
||||
367N/C SW16 D1575UA00X+037500Y-047813X1575Y0000R000S0
|
||||
367N/C SW16 D0669UA00X+039500Y-047813X0669Y0000R000S0
|
||||
317COL3 SW16 -1 D0591PA00X+038500Y-045813X0866Y0000R000S0
|
||||
317NET-(D16-A) SW16 -2 D0591PA00X+036000Y-046813X0866Y0000R000S0
|
||||
317ROW3 D12 -1 D0315PA00X+033750Y-049875X0630Y0630R270S0
|
||||
317NET-(D12-A) D12 -2 D0315PA00X+033750Y-046875X0630Y0630R270S0
|
||||
317ROW1 D10 -1 D0315PA00X+033750Y-034875X0630Y0630R270S0
|
||||
317NET-(D10-A) D10 -2 D0315PA00X+033750Y-031875X0630Y0630R270S0
|
||||
317ROW0 D9 -1 D0315PA00X+033750Y-027375X0630Y0630R270S0
|
||||
317NET-(D9-A) D9 -2 D0315PA00X+033750Y-024375X0630Y0630R270S0
|
||||
367N/C SW13 D0669UA00X+035500Y-025313X0669Y0000R000S0
|
||||
367N/C SW13 D1575UA00X+037500Y-025313X1575Y0000R000S0
|
||||
367N/C SW13 D0669UA00X+039500Y-025313X0669Y0000R000S0
|
||||
317COL3 SW13 -1 D0591PA00X+038500Y-023313X0866Y0000R000S0
|
||||
317NET-(D13-A) SW13 -2 D0591PA00X+036000Y-024313X0866Y0000R000S0
|
||||
367N/C SW3 D0669UA00X+013000Y-032813X0669Y0000R000S0
|
||||
367N/C SW3 D1575UA00X+015000Y-032813X1575Y0000R000S0
|
||||
367N/C SW3 D0669UA00X+017000Y-032813X0669Y0000R000S0
|
||||
317COL0 SW3 -1 D0591PA00X+016000Y-030813X0866Y0000R000S0
|
||||
317NET-(D3-A) SW3 -2 D0591PA00X+013500Y-031813X0866Y0000R000S0
|
||||
317ROW0 D1 -1 D0315PA00X+018750Y-019688X0630Y0630R270S0
|
||||
317NET-(D1-A) D1 -2 D0315PA00X+018750Y-016688X0630Y0630R270S0
|
||||
317ROW0 D13 -1 D0315PA00X+041250Y-027375X0630Y0630R270S0
|
||||
317NET-(D13-A) D13 -2 D0315PA00X+041250Y-024375X0630Y0630R270S0
|
||||
317ROW1 D14 -1 D0315PA00X+041250Y-034875X0630Y0630R270S0
|
||||
317NET-(D14-A) D14 -2 D0315PA00X+041250Y-031875X0630Y0630R270S0
|
||||
317ROW2 D7 -1 D0315PA00X+026250Y-042375X0630Y0630R270S0
|
||||
317NET-(D7-A) D7 -2 D0315PA00X+026250Y-039375X0630Y0630R270S0
|
||||
367N/C SW12 D0669UA00X+028000Y-047813X0669Y0000R000S0
|
||||
367N/C SW12 D1575UA00X+030000Y-047813X1575Y0000R000S0
|
||||
367N/C SW12 D0669UA00X+032000Y-047813X0669Y0000R000S0
|
||||
317COL2 SW12 -1 D0591PA00X+031000Y-045813X0866Y0000R000S0
|
||||
317NET-(D12-A) SW12 -2 D0591PA00X+028500Y-046813X0866Y0000R000S0
|
||||
367N/C SW9 D0669UA00X+028000Y-025313X0669Y0000R000S0
|
||||
367N/C SW9 D1575UA00X+030000Y-025313X1575Y0000R000S0
|
||||
367N/C SW9 D0669UA00X+032000Y-025313X0669Y0000R000S0
|
||||
317COL2 SW9 -1 D0591PA00X+031000Y-023313X0866Y0000R000S0
|
||||
317NET-(D9-A) SW9 -2 D0591PA00X+028500Y-024313X0866Y0000R000S0
|
||||
367N/C SW2 D0669UA00X+013000Y-025313X0669Y0000R000S0
|
||||
367N/C SW2 D1575UA00X+015000Y-025313X1575Y0000R000S0
|
||||
367N/C SW2 D0669UA00X+017000Y-025313X0669Y0000R000S0
|
||||
317COL0 SW2 -1 D0591PA00X+016000Y-023313X0866Y0000R000S0
|
||||
317NET-(D2-A) SW2 -2 D0591PA00X+013500Y-024313X0866Y0000R000S0
|
||||
317ROW1 D6 -1 D0315PA00X+026250Y-034875X0630Y0630R270S0
|
||||
317NET-(D6-A) D6 -2 D0315PA00X+026250Y-031875X0630Y0630R270S0
|
||||
367N/C SW11 D0669UA00X+028000Y-040313X0669Y0000R000S0
|
||||
367N/C SW11 D1575UA00X+030000Y-040313X1575Y0000R000S0
|
||||
367N/C SW11 D0669UA00X+032000Y-040313X0669Y0000R000S0
|
||||
317COL2 SW11 -1 D0591PA00X+031000Y-038313X0866Y0000R000S0
|
||||
317NET-(D11-A) SW11 -2 D0591PA00X+028500Y-039313X0866Y0000R000S0
|
||||
317ROW3 D4 -1 D0315PA00X+018750Y-042375X0630Y0630R270S0
|
||||
317NET-(D4-A) D4 -2 D0315PA00X+018750Y-039375X0630Y0630R270S0
|
||||
317ROW2 D3 -1 D0315PA00X+018750Y-034875X0630Y0630R270S0
|
||||
317NET-(D3-A) D3 -2 D0315PA00X+018750Y-031875X0630Y0630R270S0
|
||||
317ROW3 D16 -1 D0315PA00X+041250Y-049875X0630Y0630R270S0
|
||||
317NET-(D16-A) D16 -2 D0315PA00X+041250Y-046875X0630Y0630R270S0
|
||||
367N/C SW15 D0669UA00X+035500Y-040313X0669Y0000R000S0
|
||||
367N/C SW15 D1575UA00X+037500Y-040313X1575Y0000R000S0
|
||||
367N/C SW15 D0669UA00X+039500Y-040313X0669Y0000R000S0
|
||||
317COL3 SW15 -1 D0591PA00X+038500Y-038313X0866Y0000R000S0
|
||||
317NET-(D15-A) SW15 -2 D0591PA00X+036000Y-039313X0866Y0000R000S0
|
||||
327COL0 U1 -1 A01X+034359Y-014000X0957Y0600R180S2
|
||||
317COL0 U1 -1 D0350PA00X+034688Y-014000X0600Y0000R180S0
|
||||
327COL1 U1 -2 A01X+034359Y-015000X0957Y0600R180S2
|
||||
317COL1 U1 -2 D0350PA00X+034688Y-015000X0600Y0000R180S0
|
||||
327COL2 U1 -3 A01X+034359Y-016000X0957Y0600R180S2
|
||||
317COL2 U1 -3 D0350PA00X+034688Y-016000X0600Y0000R180S0
|
||||
327COL3 U1 -4 A01X+034359Y-017000X0957Y0600R180S2
|
||||
317COL3 U1 -4 D0350PA00X+034688Y-017000X0600Y0000R180S0
|
||||
327LASH}SDA-PAD5) U1 -5 A01X+034359Y-018000X0957Y0600R180S2
|
||||
317LASH}SDA-PAD5) U1 -5 D0350PA00X+034688Y-018000X0600Y0000R180S0
|
||||
327LASH}SCL-PAD6) U1 -6 A01X+034359Y-019000X0957Y0600R180S2
|
||||
317LASH}SCL-PAD6) U1 -6 D0350PA00X+034688Y-019000X0600Y0000R180S0
|
||||
327SLASH}TX-PAD7) U1 -7 A01X+034359Y-020000X0957Y0600R180S2
|
||||
317SLASH}TX-PAD7) U1 -7 D0350PA00X+034688Y-020000X0600Y0000R180S0
|
||||
317ROW0 U1 -8 D0350PA00X+040688Y-020000X0600Y0000R000S0
|
||||
327ROW0 U1 -8 A01X+041016Y-020000X0957Y0600R000S2
|
||||
317ROW1 U1 -9 D0350PA00X+040688Y-019000X0600Y0000R000S0
|
||||
327ROW1 U1 -9 A01X+041016Y-019000X0957Y0600R000S2
|
||||
317ROW2 U1 -10 D0350PA00X+040688Y-018000X0600Y0000R000S0
|
||||
327ROW2 U1 -10 A01X+041016Y-018000X0957Y0600R000S2
|
||||
317ROW3 U1 -11 D0350PA00X+040688Y-017000X0600Y0000R000S0
|
||||
327ROW3 U1 -11 A01X+041016Y-017000X0957Y0600R000S2
|
||||
317(U1-3V3-PAD12) U1 -12 D0350PA00X+040688Y-016000X0600Y0000R000S0
|
||||
327(U1-3V3-PAD12) U1 -12 A01X+041016Y-016000X0957Y0600R000S2
|
||||
317GND U1 -13 D0350PA00X+040688Y-015000X0600Y0000R000S0
|
||||
327GND U1 -13 A01X+041016Y-015000X0957Y0600R000S2
|
||||
317+5V U1 -14 D0350PA00X+040688Y-014000X0600Y0000R000S0
|
||||
327+5V U1 -14 A01X+041016Y-014000X0957Y0600R000S2
|
||||
367N/C SW1 D0669UA00X+013000Y-017813X0669Y0000R000S0
|
||||
367N/C SW1 D1575UA00X+015000Y-017813X1575Y0000R000S0
|
||||
367N/C SW1 D0669UA00X+017000Y-017813X0669Y0000R000S0
|
||||
317COL0 SW1 -1 D0591PA00X+016000Y-015813X0866Y0000R000S0
|
||||
317NET-(D1-A) SW1 -2 D0591PA00X+013500Y-016813X0866Y0000R000S0
|
||||
367N/C SW10 D0669UA00X+028000Y-032813X0669Y0000R000S0
|
||||
367N/C SW10 D1575UA00X+030000Y-032813X1575Y0000R000S0
|
||||
367N/C SW10 D0669UA00X+032000Y-032813X0669Y0000R000S0
|
||||
317COL2 SW10 -1 D0591PA00X+031000Y-030813X0866Y0000R000S0
|
||||
317NET-(D10-A) SW10 -2 D0591PA00X+028500Y-031813X0866Y0000R000S0
|
||||
367N/C SW7 D0669UA00X+020500Y-040313X0669Y0000R000S0
|
||||
367N/C SW7 D1575UA00X+022500Y-040313X1575Y0000R000S0
|
||||
367N/C SW7 D0669UA00X+024500Y-040313X0669Y0000R000S0
|
||||
317COL1 SW7 -1 D0591PA00X+023500Y-038313X0866Y0000R000S0
|
||||
317NET-(D7-A) SW7 -2 D0591PA00X+021000Y-039313X0866Y0000R000S0
|
||||
317ROW2 D15 -1 D0315PA00X+041250Y-042375X0630Y0630R270S0
|
||||
317NET-(D15-A) D15 -2 D0315PA00X+041250Y-039375X0630Y0630R270S0
|
||||
999
|
||||
Loading…
Add table
Reference in a new issue