Add KiCad design

This commit is contained in:
Correl Roush 2023-06-05 15:20:30 -04:00
parent 554d702279
commit 4e0f3a9d3c
21 changed files with 14684 additions and 0 deletions

29
kicad/.gitignore vendored Normal file
View file

@ -0,0 +1,29 @@
# For PCBs designed using KiCad: https://www.kicad.org/
# Format documentation: https://kicad.org/help/file-formats/
# Temporary files
*.000
*.bak
*.bck
*.kicad_pcb-bak
*.kicad_sch-bak
*-backups
*.kicad_prl
*.sch-bak
*~
_autosave-*
*.tmp
*-save.pro
*-save.kicad_pcb
fp-info-cache
# Netlist files (exported from Eeschema)
*.net
# Autorouter files (exported from Pcbnew)
*.dsn
*.ses
# Exported BOM files
*.xml
*.csv

BIN
kicad/22060b.pdf Normal file

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,490 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.09999999999999999,
"copper_line_width": 0.19999999999999998,
"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.049999999999999996,
"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.09999999999999999,
"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.15,
"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": 3.0,
"height": 5.0,
"width": 3.5
},
"silk_line_width": 0.16,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.16,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"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_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"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.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.15,
"min_text_height": 1.0,
"min_text_thickness": 0.153,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.09999999999999999,
"min_via_diameter": 0.5,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0
],
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
}
],
"zones_allow_external_fillets": false
},
"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": "error",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "Digital Audio Switch.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.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 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,
"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_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"02af8df3-a318-4624-b925-4cd8474ced9c",
""
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,229 @@
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
(symbol "ESP32_DevKit_V1_DOIT" (in_bom yes) (on_board yes)
(property "Reference" "U" (at -11.43 34.29 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "ESP32_DevKit_V1_DOIT" (at 11.43 34.29 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "ESP32_DevKit_V1_DOIT:esp32_devkit_v1_doit" (at -11.43 34.29 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://aliexpress.com/item/32864722159.html" (at -11.43 34.29 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "ESP32-WROOM-32 WiFi and Bluetooth microcontroller" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "32-bit microcontroller module with WiFi and Bluetooth" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "esp32?devkit?v1?doit*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "ESP32_DevKit_V1_DOIT_1_1"
(rectangle (start -12.7 33.02) (end 12.7 -33.02)
(stroke (width 0.254) (type solid))
(fill (type background))
)
(pin input line (at -15.24 30.48 0) (length 2.54)
(name "EN" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -17.78 180) (length 2.54)
(name "IO27" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 10.16 180) (length 2.54)
(name "IO14" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 15.24 180) (length 2.54)
(name "IO12" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 12.7 180) (length 2.54)
(name "IO13" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 -35.56 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 35.56 270) (length 2.54)
(name "VIN" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 35.56 270) (length 2.54)
(name "3V3" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -35.56 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 7.62 180) (length 2.54)
(name "IO15" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 25.4 180) (length 2.54)
(name "IO2" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin input line (at -15.24 25.4 0) (length 2.54)
(name "SENSOR_VP" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 20.32 180) (length 2.54)
(name "IO4" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 5.08 180) (length 2.54)
(name "IO16" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 2.54 180) (length 2.54)
(name "IO17" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 17.78 180) (length 2.54)
(name "IO5" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 0 180) (length 2.54)
(name "IO18" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -2.54 180) (length 2.54)
(name "IO19" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -5.08 180) (length 2.54)
(name "IO21" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 22.86 180) (length 2.54)
(name "RXD0/IO3" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 27.94 180) (length 2.54)
(name "TXD0/IO1" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -7.62 180) (length 2.54)
(name "IO22" (effects (font (size 1.27 1.27))))
(number "29" (effects (font (size 1.27 1.27))))
)
(pin input line (at -15.24 22.86 0) (length 2.54)
(name "SENSOR_VN" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -10.16 180) (length 2.54)
(name "IO23" (effects (font (size 1.27 1.27))))
(number "30" (effects (font (size 1.27 1.27))))
)
(pin input line (at 15.24 -25.4 180) (length 2.54)
(name "IO34" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin input line (at 15.24 -27.94 180) (length 2.54)
(name "IO35" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -20.32 180) (length 2.54)
(name "IO32" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -22.86 180) (length 2.54)
(name "IO33" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -12.7 180) (length 2.54)
(name "IO25" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin bidirectional line (at 15.24 -15.24 180) (length 2.54)
(name "IO26" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "MCP42X1" (in_bom yes) (on_board yes)
(property "Reference" "U" (at -6.35 11.43 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "MCP42X1" (at 5.08 -8.89 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at -3.81 10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (at -3.81 10.16 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "MCP42X1_0_1"
(rectangle (start -8.89 10.16) (end 8.89 -7.62)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "MCP42X1_1_1"
(pin input line (at -11.43 7.62 0) (length 2.54)
(name "~{CS}" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 11.43 0 180) (length 2.54)
(name "P0B" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin input line (at 11.43 2.54 180) (length 2.54)
(name "~{WP}" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin input line (at 11.43 5.08 180) (length 2.54)
(name "~{SHDN}" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin output line (at 11.43 7.62 180) (length 2.54)
(name "SDO" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 12.7 270) (length 2.54)
(name "V_{DD}" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin input line (at -11.43 5.08 0) (length 2.54)
(name "SCK" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -11.43 2.54 0) (length 2.54)
(name "SDI" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -10.16 90) (length 2.54)
(name "V_{SS}" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -11.43 0 0) (length 2.54)
(name "P1B" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -11.43 -2.54 0) (length 2.54)
(name "P1W" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -11.43 -5.08 0) (length 2.54)
(name "P1A" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 11.43 -5.08 180) (length 2.54)
(name "P0A" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 11.43 -2.54 180) (length 2.54)
(name "P0W" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
)

View file

@ -0,0 +1,60 @@
(footprint "Jack_3.5mm_CUI_SJ1-3533NG_Horizontal" (version 20221018) (generator pcbnew)
(layer "F.Cu")
(descr "TRS 3.5mm, horizontal, through-hole, https://www.cui.com/product/resource/sj1-353xng.pdf")
(tags "TRS audio jack stereo horizontal")
(attr through_hole)
(fp_text reference "REF**" (at 0.1 10.16) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 854a9a99-f6c4-4143-a6d3-02da7318c23b)
)
(fp_text value "Jack_3.5mm_CUI_SJ1-3533NG_Horizontal" (at 0.1 14.05) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 55dfc0bd-c69c-4611-a803-1ffefe4487c9)
)
(fp_text user "${REFERENCE}" (at 0.1 3.8) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 8671f380-15ec-41e5-8ff6-edcdc5f740b4)
)
(fp_line (start -4.12 -1.32) (end -2.22 -1.32)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8f18a51e-2972-401c-9b96-321e5df21c2c))
(fp_line (start -4.12 12.92) (end -4.12 -1.32)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c0550477-1811-4868-b0c2-a05bea957f97))
(fp_line (start 4.02 -1.32) (end 4.32 -1.32)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 71dbacd6-eb81-49d1-b247-835383521fbb))
(fp_line (start 4.32 -1.32) (end 4.32 12.92)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 52218331-e05f-44b7-b44f-b6c3248c17c0))
(fp_line (start 4.32 12.92) (end -4.12 12.92)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e23ee627-313d-4008-9ccf-a69cd80ce24f))
(fp_line (start -4.5 -5.7) (end -4.5 13.3)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp ae840f76-9142-4f13-8141-e19d9052d14e))
(fp_line (start -4.5 13.3) (end 4.7 13.3)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 54ca7057-6d5e-4682-b3f4-76994b0e79d9))
(fp_line (start 4.7 -5.7) (end -4.5 -5.7)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 476869ce-3522-430a-a105-ce6effa4154a))
(fp_line (start 4.7 13.3) (end 4.7 -5.7)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e1d5ee48-ad6a-4191-8f37-e5ecd1b2e5c1))
(fp_line (start -4 -1.2) (end -2.1 -1.2)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0eb79afd-7bc9-4449-8d31-9d4c17d37b81))
(fp_line (start -4 12.8) (end -4 -1.2)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 21164d22-3a42-4ba1-a680-b6a07b0a4909))
(fp_line (start -2.1 -5.2) (end 3.9 -5.2)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 76425166-ffd7-495c-8b94-48f306f15d3b))
(fp_line (start -2.1 -1.2) (end -2.1 -5.2)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f9ba5d4d-a033-4a67-a498-cc27f7f3518d))
(fp_line (start 3.9 -5.2) (end 3.9 -1.2)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9c6ffd4f-7dd3-4ff2-9f39-84bbaad7a20b))
(fp_line (start 3.9 -1.2) (end 4.2 -1.2)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 1887c5a3-4b0d-4f0f-a451-7198e098b00d))
(fp_line (start 4.2 -1.2) (end 4.2 12.8)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 93b52435-d2a1-4889-b985-dbf2447a2317))
(fp_line (start 4.2 12.8) (end -4 12.8)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d56fef3e-d89f-490f-8d91-ac27b0f6043e))
(pad "R" thru_hole oval (at 2 7.9) (size 2.8 1.8) (drill oval 2 1) (layers "*.Cu" "*.Mask") (tstamp afeca3cb-7a59-4c3b-84e2-3246b021463c))
(pad "S" thru_hole oval (at 0 0) (size 2.8 1.8) (drill oval 2 1) (layers "*.Cu" "*.Mask") (tstamp d153ceb8-d226-47b6-b4db-97af2987640a))
(pad "T" thru_hole oval (at 2 2.4) (size 2.8 1.8) (drill oval 2 1) (layers "*.Cu" "*.Mask") (tstamp e69cb755-bd96-4e61-b0a1-7f9cc3b114cb))
(model "${KICAD6_3DMODEL_DIR}/Connector_Audio.3dshapes/Jack_3.5mm_CUI_SJ1-3533NG_Horizontal.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

View file

@ -0,0 +1,38 @@
(footprint "KLPX-0848A" (version 20221018) (generator pcbnew)
(layer "F.Cu")
(descr "RCA-Connector, Chinch, Kycon KLPX-0848A-2-x")
(tags "RCA-Connector, Chinch, Kycon KLPX-0848A-2-x, ")
(attr through_hole)
(fp_text reference "X" (at -7.95 -7) (layer "F.SilkS")
(effects (font (size 1.524 1.524) (thickness 0.3048)))
(tstamp a687cc6a-2b96-4772-98d4-aa4a58eb8034)
)
(fp_text value "KLPX-0848A" (at -3 8.45) (layer "F.SilkS")
(effects (font (size 1.524 1.524) (thickness 0.3048)))
(tstamp 628d058b-d400-4ef4-bccb-5ad40fb45485)
)
(fp_line (start -13.5 -4.15) (end -13.5 4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 20e78102-02a7-4a81-8826-511e355f42a2))
(fp_line (start -12.3 4.15) (end -13.5 4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp c16ff088-996a-4115-be4e-58003a60747a))
(fp_line (start -9.5 -4.15) (end -13.5 -4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 56a703dc-ff13-43e6-8ee3-39049cce5920))
(fp_line (start -4 -5) (end -4 -4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp a2532430-9bab-4951-b7f6-4b76ade94936))
(fp_line (start -4 -4.15) (end -9.5 -4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 05015997-3eac-4707-8f8e-cb027639a35a))
(fp_line (start -4 4.15) (end -12.3 4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 6657e264-86bc-4352-94b0-c049d0533332))
(fp_line (start -4 5) (end -4 4.15)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 7de1cfb9-da6f-496c-8eed-83fa7b2f6751))
(fp_line (start 6 -5) (end -4 -5)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp fc8939b4-aa45-4484-86a2-495a3ba7977c))
(fp_line (start 6 -5) (end 6 -3)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 8a5d2af4-e7c4-44d2-a720-df1ef6efdcb4))
(fp_line (start 6 3) (end 6 5)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 916de666-35f0-462e-b476-20114b3ceadd))
(fp_line (start 6 5) (end -4 5)
(stroke (width 0.381) (type solid)) (layer "F.SilkS") (tstamp 527f6269-7347-44e6-8d95-0bf6756cedec))
(pad "1" thru_hole oval (at 4.5 0) (size 3.5 5) (drill 3) (layers "*.Cu" "*.Mask") (tstamp 6581fcd8-0963-4571-8504-46e1cabe73a8))
(pad "2" thru_hole oval (at 0 0) (size 4 5.5) (drill 3.3) (layers "*.Cu" "*.Mask") (tstamp 82f22a68-97aa-4238-84cd-c8df978d2858))
)

View file

@ -0,0 +1,175 @@
(footprint "PCM5102" (version 20221018) (generator pcbnew)
(layer "F.Cu")
(attr through_hole)
(fp_text reference "IC3" (at -9.7415 1.5845) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d6cf878b-36a6-4ed9-9f1a-282cef0b5647)
)
(fp_text value "PCM5102 Audio Stereo DAC" (at -3.9 11.1 90) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp f29bacc3-c525-4387-aaa9-93d83096b240)
)
(fp_line (start -7.9 -1.4) (end -7.9 15.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 1b2e2618-85e1-4add-b374-a86391f560eb))
(fp_line (start -7.9 15.6) (end 24.1 15.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 24b4ecc0-5bae-41f7-8001-f7eea6d42ea5))
(fp_line (start -2.15 5.1) (end -0.9 5.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 07fc2dde-d4c3-43ee-8b83-6ca47f42c0b3))
(fp_line (start -2.15 13.35) (end -2.15 5.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp b72bc4d1-094c-4b3b-bc98-8cbee512a7a9))
(fp_line (start -0.9 5.1) (end -0.9 13.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 837d4a35-e770-4f98-9a47-9c1a84b1f4ec))
(fp_line (start -0.9 13.35) (end -2.15 13.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp cc6c6453-a803-4cf0-bbc6-d1ab7caac4ab))
(fp_line (start 0.6 2.85) (end 1.6 2.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp ffb60a81-bdbb-49d8-9a45-18905702432d))
(fp_line (start 0.6 4.35) (end 0.6 2.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 25e4afb1-4552-471a-9fcf-58b3cc4f14c5))
(fp_line (start 1.1 12.35) (end 1.1 12.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 6de3c35e-8ecb-4767-bc45-4830afe9d7f0))
(fp_line (start 1.1 12.6) (end 1.1 14.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp cdcf28d4-19e5-4a43-8700-cbd66a0a831c))
(fp_line (start 1.1 14.6) (end 1.85 14.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 44f5e737-0233-4b9a-b5a5-96c147776c14))
(fp_line (start 1.6 2.85) (end 1.6 4.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp ae45f963-f6be-43e7-9992-8965ad8dbfa9))
(fp_line (start 1.6 4.35) (end 0.6 4.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4eedadb4-5586-4b0b-b0fa-fc15630d7841))
(fp_line (start 1.85 12.35) (end 1.1 12.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 183e1662-66b1-46fb-af9a-a65e4612beb8))
(fp_line (start 1.85 14.6) (end 1.85 12.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp c98416f2-0dde-4de3-803a-a203ea95c19e))
(fp_line (start 2.1 5.1) (end 7.1 5.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 28ce6f57-039b-490f-adc7-d2573891d649))
(fp_line (start 2.1 11.6) (end 2.1 5.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 493deeb5-6ab7-4ff8-9323-20d646a0bc96))
(fp_line (start 3.1 2.1) (end 3.1 4.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 3900625c-b087-46cc-848a-4db8d4ebc10d))
(fp_line (start 3.1 4.6) (end 5.1 4.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp b014ced0-056e-44bb-95a4-fec42c229609))
(fp_line (start 3.1 12.1) (end 3.1 14.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 3f03a04e-3a6f-47c1-a74f-f2895dc6227e))
(fp_line (start 3.1 14.85) (end 4.35 14.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp fb706836-dee8-4c10-a067-1684e019674c))
(fp_line (start 4.35 12.1) (end 3.1 12.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp eec9b750-4d9f-4795-8226-8a39ac99c238))
(fp_line (start 4.35 12.1) (end 5.1 12.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp d63c1199-9cde-42c7-a44b-9d9424ee51f5))
(fp_line (start 5.1 2.1) (end 3.1 2.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4fce0f7e-5c8d-4e98-83d4-fe2ccbde35cb))
(fp_line (start 5.1 4.6) (end 5.1 2.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 1c2da1b4-d1b0-4104-aa52-4426a0cf0b62))
(fp_line (start 5.1 12.1) (end 5.1 14.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp fef0cc2a-3656-4f42-a01e-59e482b0ba55))
(fp_line (start 5.1 14.85) (end 4.35 14.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 8511dc06-e9df-400e-acf5-381196202551))
(fp_line (start 7.1 5.1) (end 7.1 11.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp a6758c38-2f57-42f2-b723-da0adb247e7b))
(fp_line (start 7.1 11.6) (end 2.1 11.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 3b30484f-11a6-4c36-a99a-249dc197d1b6))
(fp_line (start 7.85 12.85) (end 7.85 13.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 0df9b53a-cf22-49b9-8969-bd23f8f7441c))
(fp_line (start 7.85 13.1) (end 7.85 13.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 349dd35a-76b1-4f50-ba4e-a0e75a9df773))
(fp_line (start 7.85 13.35) (end 7.85 14.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 67b89b78-e21a-4b13-81a9-3b708364192e))
(fp_line (start 7.85 14.35) (end 8.6 14.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 85aa5c27-7295-427c-9b15-0cdb33d22a9d))
(fp_line (start 8.35 3.1) (end 8.35 4.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp c3bf8ebc-9eb1-4b29-b544-6e776be4ecfc))
(fp_line (start 8.35 4.35) (end 8.85 4.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 40e2e9ac-515c-4fb8-aa0a-ac7a0d67a0f8))
(fp_line (start 8.6 12.85) (end 7.85 12.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp d503d011-5ebe-403e-a34d-bf01e822ba55))
(fp_line (start 8.6 14.35) (end 8.6 12.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 390b2b54-ceef-492a-9a93-a7b7b8012170))
(fp_line (start 8.85 3.1) (end 8.35 3.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 630bafc9-78b4-4865-928b-ff08e5137dd8))
(fp_line (start 8.85 4.35) (end 8.85 3.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp a0b738d1-a170-4a83-9337-1f7534f02245))
(fp_line (start 9.35 12.35) (end 9.35 14.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 1c3a4576-5638-423b-af34-02524fcc9e72))
(fp_line (start 9.35 14.85) (end 10.85 14.85)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp e72b3d3d-a876-4841-a687-132825d30e65))
(fp_line (start 9.6 2.6) (end 9.6 3.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp d655c20d-f717-4529-9897-5c9d60ffae75))
(fp_line (start 9.6 2.85) (end 9.6 4.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp af1d2ee8-58c4-4b08-be96-385a398fa96f))
(fp_line (start 9.6 4.6) (end 10.6 4.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 8ce2dfa0-6779-4787-8378-fc2326311e45))
(fp_line (start 9.6 12.35) (end 9.35 12.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 26966920-b8c7-403d-a9a1-e0b331b69957))
(fp_line (start 10.6 2.6) (end 9.6 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp dd32f672-6f8d-4e38-acb5-733157b76e57))
(fp_line (start 10.6 4.6) (end 10.6 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 7baf7403-25c8-4463-a964-1e2b7b5ef974))
(fp_line (start 10.85 12.35) (end 9.6 12.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4ee4e860-9719-42ed-aad4-44f6af111f2f))
(fp_line (start 10.85 14.85) (end 10.85 12.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 30887242-34dc-4977-bd3c-097cf584240e))
(fp_line (start 11.85 2.6) (end 11.85 15.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 68a5f817-48f9-4534-bbfa-953fe79b7477))
(fp_line (start 11.85 15.1) (end 13.1 15.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp f3f02d38-0b24-46a2-a8b0-d0e995d7409a))
(fp_line (start 13.1 2.6) (end 11.85 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 2f69ee00-508b-4dea-8e2a-38dac12accb3))
(fp_line (start 13.1 15.1) (end 13.1 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp f3c5179c-0452-4c83-8b32-2876598168f2))
(fp_line (start 14.1 2.1) (end 15.85 2.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 720a08eb-8b8c-4843-a21a-14c83597ef06))
(fp_line (start 14.1 3.1) (end 14.1 2.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp b92fdb08-2e13-43a2-869c-887b8f1a898b))
(fp_line (start 14.1 9.6) (end 15.6 9.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 244163c8-6d02-4a7a-8d19-759af8834cb7))
(fp_line (start 14.1 10.6) (end 14.1 9.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp b292d55f-1adf-4495-9c91-8f4a388be66c))
(fp_line (start 14.1 13.6) (end 15.6 13.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp a704ead3-ccef-4a6e-8c07-f7d2cce9c0d1))
(fp_line (start 14.1 14.6) (end 14.1 13.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4df64dbc-47f1-460b-83b1-2bb9a532b69a))
(fp_line (start 15.6 2.6) (end 21.6 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4db13f88-19d6-461e-9101-946210b3c368))
(fp_line (start 15.6 3.1) (end 14.1 3.1)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 3241784e-3595-4549-868c-a8283c26215a))
(fp_line (start 15.6 10.6) (end 14.1 10.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 1c2927b5-1006-491a-89ba-1534351cdd0d))
(fp_line (start 15.6 14.6) (end 14.1 14.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 9ccab5b7-15d1-4681-a2e1-39de4033e493))
(fp_line (start 15.6 15.6) (end 15.6 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp d5c3dd83-8abe-4956-ae20-2503cc9f8146))
(fp_line (start 15.85 2.1) (end 15.85 2.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 847ceef1-3f7d-47c5-9e68-47ea9faa9e29))
(fp_line (start 21.6 2.6) (end 21.6 15.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp d4a34f95-657f-48d9-ac63-ba2e83462337))
(fp_line (start 21.6 3.35) (end 23.1 3.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 1e2d07ff-df56-4b19-9f52-f6489a9d608e))
(fp_line (start 21.6 13.6) (end 23.1 13.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 0118a61e-5cc8-468b-b016-db1e2c540cd4))
(fp_line (start 23.1 3.35) (end 23.1 4.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4dee0874-7c56-4cd4-ba84-df5652ad2945))
(fp_line (start 23.1 4.35) (end 21.6 4.35)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 0dbea7c1-684f-4100-946b-398ab487c654))
(fp_line (start 23.1 13.6) (end 23.1 14.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp abe20fec-d49f-4964-b263-cdd2025c750a))
(fp_line (start 23.1 14.6) (end 21.6 14.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp b5d48905-6496-4eaa-aa6b-d794fca6daff))
(fp_line (start 24.1 -1.4) (end -7.9 -1.4)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 4dd83648-8aa4-4684-ad9a-36b47cf635c6))
(fp_line (start 24.1 -1.4) (end 24.1 15.6)
(stroke (width 0.15) (type solid)) (layer "F.SilkS") (tstamp 575eb5d4-d480-4244-9d4d-2e0cb266f16e))
(pad "1" thru_hole circle (at -6.5 13.45) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 6cd2cc95-c4d0-4d5a-b4a6-93e88584b5c5))
(pad "2" thru_hole circle (at -6.5 10.91) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 2acd624f-66a8-4274-95ec-be4ed104d56c))
(pad "3" thru_hole circle (at -6.5 8.37) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 41b0aa87-c037-4461-bc45-6934de8b9315))
(pad "4" thru_hole circle (at -6.5 5.83) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 849b5895-b529-4b94-9a79-5535ab27a308))
(pad "5" thru_hole circle (at -6.5 3.29) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 14badc96-c5bd-4fa1-bc85-0f4b2e4be8c3))
(pad "6" thru_hole circle (at -6.5 0.75) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 4fda2274-c82d-4087-a753-f003186265cc))
(pad "7" thru_hole circle (at 0 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp d70aafd5-d4db-48cf-add3-dc4bb6affa63))
(pad "8" thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 0b8febbc-db68-46e3-a861-a17184965bc2))
(pad "9" thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 03af928c-d90a-4d22-9950-13a072ba7cfe))
(pad "10" thru_hole circle (at 7.62 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp fb7630bf-4033-4a2c-b311-de6eef642605))
(pad "11" thru_hole circle (at 10.16 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 303dce5e-3520-4a66-b286-c7a1c9892bde))
(pad "12" thru_hole circle (at 12.7 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 91e732b4-3c67-4adf-a8b1-898886e05875))
(pad "13" thru_hole circle (at 15.24 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp 78b66ec9-19c8-44f0-992a-0721cc8ac532))
(pad "14" thru_hole circle (at 17.78 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp b41a1ac0-3e01-4237-8b82-00d892a615fe))
(pad "15" thru_hole circle (at 20.32 0) (size 1.75 1.75) (drill 1) (layers "*.Cu" "*.Mask") (tstamp f6d1aefa-c91b-460b-bd68-3da36c62731c))
)

View file

@ -0,0 +1,297 @@
(footprint "esp32_devkit_v1_doit" (version 20221018) (generator pcbnew)
(layer "F.Cu")
(descr "ESPWROOM32, ESP32, 30 GPIOs version")
(attr smd)
(fp_text reference "REF**" (at 0 10.47) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d69bf47a-fd01-4c12-b97b-92e0632a88c6)
)
(fp_text value "ESP32-DevKit-V1-DOIT" (at 0 8.7) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp b4d0ffa0-94af-46fd-8c38-6e55720faf34)
)
(fp_text user "USB" (at 0 43.49) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 53b7601b-93b6-44da-9315-3b6496ddebc0)
)
(fp_text user "Enable" (at -7.62 39.68) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 6498ecc6-2c6c-4ee7-a6e7-8b623f122ef4)
)
(fp_text user "Boot" (at 7.62 39.68) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp c54f0397-22cf-4c05-8075-ad5613abe0da)
)
(fp_line (start -14 -4.04) (end -14 43.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp ecf83049-7331-4b47-b4ac-46861a298284))
(fp_line (start -12 -6.04) (end 12 -6.04)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp bc87dac0-2dc6-4b2f-b1ee-764ed7dc9872))
(fp_line (start -12 45.46) (end 12 45.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 910713b1-3be2-4d83-8c7d-49a033a88583))
(fp_line (start -8.89 -4.77) (end 8.89 -4.77)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5c7e463f-4627-48bd-bcfd-14a2c5f4f4d7))
(fp_line (start -8.89 0.31) (end -8.89 -4.77)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e0916111-11ea-42c5-98e6-190f0ef432b9))
(fp_line (start -8.89 40.95) (end -6.35 40.95)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3d6204cc-fe42-4870-b127-cd0c33fc3522))
(fp_line (start -8.89 44.76) (end -8.89 40.95)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9e0edbcb-bb56-4d28-8154-df40c3b23eb8))
(fp_line (start -7.62 -4.008) (end -5.08 -4.008)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f716b05e-34ce-4e69-9015-46e4247aae63))
(fp_line (start -7.62 -0.452) (end -7.62 -4.008)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7bb83ce2-a23f-4587-851d-b7ba3770a954))
(fp_line (start -7.5 0.96) (end 7.5 0.96)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 46514d9f-9266-47d3-bb62-2a5871b5b166))
(fp_line (start -7.5 18.96) (end -7.5 0.96)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3981393d-a88f-4be0-81f6-cf2d9dfc42a3))
(fp_line (start -6.35 40.95) (end -6.35 44.76)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a25b48c4-2db3-4587-a827-3975fbbd8fc9))
(fp_line (start -6.35 44.76) (end -8.89 44.76)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7a2a0bb8-6b98-4efc-91b4-a0f62b7a6442))
(fp_line (start -5.08 -4.008) (end -5.08 -1.976)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5a592a60-6235-4962-8eaa-1b66dd1dc171))
(fp_line (start -5.08 -1.976) (end -2.54 -1.976)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 84bb1fc7-b61e-4031-a2df-15b38a708636))
(fp_line (start -4 39.46) (end -4 45.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 83f7faeb-0f7f-4a5c-8fe7-07e564fcc387))
(fp_line (start -4 39.46) (end 4 39.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b1919601-64dc-4bef-9052-bd67dd694ea2))
(fp_line (start -2.54 -4.008) (end 0 -4.008)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fa5e97fa-15fc-4293-9ae6-0033c803b087))
(fp_line (start -2.54 -1.976) (end -2.54 -4.008)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 19e86872-7ea1-4185-b8fb-4c34e9618324))
(fp_line (start 0 -4.008) (end 0 -1.976)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e8403213-6697-402d-9289-dc98701d12fc))
(fp_line (start 0 -1.976) (end 2.54 -1.976)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 487343dd-4517-4bc8-bdd9-5a46e0d9babc))
(fp_line (start 2.54 -4.008) (end 7.62 -4.008)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 58cca438-71a7-4053-a91f-42baccb8d16e))
(fp_line (start 2.54 -1.976) (end 2.54 -4.008)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 01e38a92-bff7-44c3-a2c5-8843f99e2a2f))
(fp_line (start 4 39.46) (end 4 45.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6179a967-24a1-4dc1-9c72-93624cccf6fa))
(fp_line (start 5.08 -4.008) (end 5.08 -0.452)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 5620a175-fbaf-4f13-a632-3850402779be))
(fp_line (start 6.35 40.95) (end 8.89 40.95)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 64e6b266-de08-4033-9b93-a11713ee9c96))
(fp_line (start 6.35 44.76) (end 6.35 40.95)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1d94b482-081f-4ec7-b71a-213a180c7933))
(fp_line (start 7.5 0.96) (end 7.5 18.96)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9aca596b-2181-47a2-8cde-244ff3dc9878))
(fp_line (start 7.5 18.96) (end -7.5 18.96)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 478cc487-087e-4671-a188-b8f05ab2320e))
(fp_line (start 7.62 -4.008) (end 7.62 -0.452)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 87125f54-e368-4f1c-ab64-98a8e0730187))
(fp_line (start 8.89 -4.77) (end 8.89 0.31)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 6ef8f91f-8479-4adb-947a-bc59e23a3669))
(fp_line (start 8.89 0.31) (end -8.89 0.31)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp d7df8fd5-080d-4466-8bc7-65e5e9516158))
(fp_line (start 8.89 40.95) (end 8.89 44.76)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 0234794d-085a-4386-89b7-d4a34bbcf482))
(fp_line (start 8.89 44.76) (end 6.35 44.76)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b6c774c4-080a-4700-b5f4-1f97889e0061))
(fp_line (start 14 43.46) (end 14 -4.04)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 3580e8cb-69c7-4cb5-9079-21730307138a))
(fp_arc (start -14 -4.04) (mid -13.414214 -5.454214) (end -12 -6.04)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a85ac094-a7d1-4b1f-ae69-0926c0b64d8c))
(fp_arc (start -12 45.46) (mid -13.414214 44.874214) (end -14 43.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 35a1625b-5320-4ab8-af92-c13c7718c176))
(fp_arc (start 12 -6.04) (mid 13.414214 -5.454214) (end 14 -4.04)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 954312ad-49bd-4cc1-9e8b-38a383195250))
(fp_arc (start 14 43.46) (mid 13.414214 44.874214) (end 12 45.46)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b9bb448e-86a3-4d67-b310-8db9f3ab492d))
(fp_circle (center -11.7 -4.04) (end -10.2 -4.04)
(stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp b9ef1cb0-03d6-40cd-94a5-9097f1e95a51))
(fp_circle (center -11.7 43.46) (end -10.2 43.46)
(stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp 2efe322c-6fbf-4e5f-9832-5de9dfef1830))
(fp_circle (center -7.62 42.855) (end -7.32 42.855)
(stroke (width 1) (type solid)) (fill none) (layer "F.SilkS") (tstamp e9315b12-e1b1-4990-b06c-fe6c2542e0d7))
(fp_circle (center -5.08 16.82) (end -4.68 16.82)
(stroke (width 0.8) (type solid)) (fill none) (layer "F.SilkS") (tstamp 2c6e282f-b719-4b09-9305-3975963c5202))
(fp_circle (center 7.62 42.855) (end 7.92 42.855)
(stroke (width 1) (type solid)) (fill none) (layer "F.SilkS") (tstamp f06bb9da-2ac9-48cc-8d71-70e9ea7a9fa0))
(fp_circle (center 11.7 -4.04) (end 13.2 -4.04)
(stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp bb5e2333-7eeb-4749-9f32-d89f63ad7aaf))
(fp_circle (center 11.7 43.46) (end 13.2 43.46)
(stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp 3307419d-9405-4d7e-a4b5-3621ee2b0df6))
(pad "1" thru_hole rect (at -12.7 0) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 7821671d-d6e5-47f6-a528-9c5454eb4de1))
(pad "2" thru_hole circle (at -12.7 2.54) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 1f394081-c7f4-4582-bfa2-aaaefeb198ea))
(pad "3" thru_hole circle (at -12.7 5.08) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 7dcd3ebe-3bdf-4bb8-8e22-370a2e718dad))
(pad "4" thru_hole circle (at -12.7 7.62) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp c36d9335-6ad8-4ae9-8e58-2e81071c9e39))
(pad "5" thru_hole circle (at -12.7 10.16) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 102554a3-8e91-47b7-b765-2eab127d836e))
(pad "6" thru_hole circle (at -12.7 12.7) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp edc5c1e5-26b7-4586-a243-42fedd6bf278))
(pad "7" thru_hole circle (at -12.7 15.24) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp fdca7585-3de0-4e74-87a3-dd1ae2689a54))
(pad "8" thru_hole circle (at -12.7 17.78) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp c7cac3a8-3459-42a6-ba86-9c215da14d0f))
(pad "9" thru_hole circle (at -12.7 20.32) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 15c99939-c0cd-4842-ab2b-54f7b5968e97))
(pad "10" thru_hole circle (at -12.7 22.86) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 173d27b7-6862-441e-a36d-9c362698e1c5))
(pad "11" thru_hole circle (at -12.7 25.4) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp e0d38ed8-e068-45de-8d27-b8ef9d8a0b01))
(pad "12" thru_hole circle (at -12.7 27.94) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp db71a40b-ba46-480d-890a-b6f4d7ee60e9))
(pad "13" thru_hole circle (at -12.7 30.48) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp d3d371f3-91e9-43e2-9556-45ef5680402a))
(pad "14" thru_hole circle (at -12.7 33.02) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp d2314704-2413-49f2-907b-5cfd8f6e5e7d))
(pad "15" thru_hole circle (at -12.7 35.56) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp ca17c61d-7a23-4c92-be81-27096b12f93c))
(pad "16" thru_hole circle (at 12.7 35.56) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 1c16fdc1-4ec5-415e-837d-fe9a7f646c06))
(pad "17" thru_hole circle (at 12.7 33.02) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp c3a470bd-e551-495a-97cc-c4c15be1ddd1))
(pad "18" thru_hole circle (at 12.7 30.48) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp ee4f88ff-46b6-4c16-b5cc-25ba7aa1a79c))
(pad "19" thru_hole circle (at 12.7 27.94) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 2d6474ce-5b4c-405f-a98f-decf02245be0))
(pad "20" thru_hole circle (at 12.7 25.4) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 73913004-0c69-4b46-a5eb-c3a1666c9d59))
(pad "21" thru_hole circle (at 12.7 22.86) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 04ab3815-76b7-41c0-9faf-0e9dc4f6e544))
(pad "22" thru_hole circle (at 12.7 20.32) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp f66550bd-ae4a-417d-8617-dc13501bcd7c))
(pad "23" thru_hole circle (at 12.7 17.78) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 1c42f703-e590-4c8c-aa59-ad4070d0b7df))
(pad "24" thru_hole circle (at 12.7 15.24) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 20d4da6c-68c4-45f8-ac57-ddb1acd2c2f0))
(pad "25" thru_hole circle (at 12.7 12.7) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 03088fae-e1bd-42c2-b1a1-bea22438fb32))
(pad "26" thru_hole circle (at 12.7 10.16) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp f7e92b4f-aed2-40e2-941c-477f97c9f6da))
(pad "27" thru_hole circle (at 12.7 7.62) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 356a6717-48d5-4663-97e1-0ade5147876c))
(pad "28" thru_hole circle (at 12.7 5.08) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 6f7c837d-32f0-4382-8e5d-01ee70ce0ff3))
(pad "29" thru_hole circle (at 12.7 2.54) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 0e2882c6-f145-48d6-bf17-b13a55fcdac4))
(pad "30" thru_hole circle (at 12.7 0) (size 1.524 1.524) (drill 0.762) (layers "*.Cu" "*.Mask") (tstamp 8a4b0972-f26e-47de-9a0d-1c8038da7e36))
(model "${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_B3U-1000P-B.wrl"
(offset (xyz 7.5 -43 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Button_Switch_SMD.3dshapes/SW_SPST_B3U-1000P-B.wrl"
(offset (xyz -7.5 -43 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x15_P2.54mm_Vertical.wrl"
(offset (xyz -12.7 0 2.5))
(scale (xyz 1 1 1))
(rotate (xyz 0 180 0))
)
(model "${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x15_P2.54mm_Vertical.wrl"
(offset (xyz 12.7 0 2.5))
(scale (xyz 1 1 1))
(rotate (xyz 0 180 0))
)
(model "${VL_PACKAGES3D}/esp32_devkit_v1_doit.3dshapes/esp32_devkit_v1_doit.step"
(offset (xyz -12.7 0 2.5))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Connector_USB.3dshapes/USB_Micro-B_Molex_47346-0001.wrl"
(offset (xyz 0 -42 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/LED_SMD.3dshapes/LED_1206_3216Metric.wrl"
(offset (xyz -6 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 -90))
)
(model "${KISYS3DMOD}/LED_SMD.3dshapes/LED_1206_3216Metric.wrl"
(offset (xyz 6 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 -90))
)
(model "${KISYS3DMOD}/Capacitor_Tantalum_SMD.3dshapes/CP_EIA-2012-15_AVX-P.wrl"
(offset (xyz -6.5 -27.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-223.wrl"
(offset (xyz -6 -33 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 -180))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz -7 -38.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 8.5 -38.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 5.5 -38.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-23.wrl"
(offset (xyz -0.5 -27.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Package_TO_SOT_SMD.3dshapes/SOT-23.wrl"
(offset (xyz 6 -27.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 -180))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 9 -27.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz -3.5 -27.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl"
(offset (xyz -0.5 -38.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Diode_SMD.3dshapes/D_0603_1608Metric.wrl"
(offset (xyz -3 -38.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz -3 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz -1.5 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 0 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 1.5 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 3 -23 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 90))
)
(model "${KISYS3DMOD}/Package_DFN_QFN.3dshapes/QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm.wrl"
(offset (xyz 7 -33.5 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 8.5 -22 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Resistor_SMD.3dshapes/R_0603_1608Metric.wrl"
(offset (xyz 8.5 -24 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl"
(offset (xyz -8.5 -22 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/Capacitor_SMD.3dshapes/C_0603_1608Metric.wrl"
(offset (xyz -8.5 -24 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
(model "${KISYS3DMOD}/RF_Module.3dshapes/ESP32-WROOM-32.wrl"
(offset (xyz 0 -10 4))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

BIN
kicad/ESP32-Pinout.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

8944
kicad/KLPX-0848A-2-x.IGS Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,23 @@
(module KLPX-0848A (layer F.Cu) (tedit 5A808D6D)
(descr "RCA-Connector, Chinch, Kycon KLPX-0848A-2-x")
(tags "RCA-Connector, Chinch, Kycon KLPX-0848A-2-x, ")
(fp_text reference X (at -7.95 -7) (layer F.SilkS)
(effects (font (thickness 0.3048)))
)
(fp_text value KLPX-0848A (at -3 8.45) (layer F.SilkS)
(effects (font (thickness 0.3048)))
)
(fp_line (start -13.5 -4.15) (end -13.5 4.15) (layer F.SilkS) (width 0.381))
(fp_line (start -4 -4.15) (end -9.5 -4.15) (layer F.SilkS) (width 0.381))
(fp_line (start -9.5 -4.15) (end -13.5 -4.15) (layer F.SilkS) (width 0.381))
(fp_line (start -4 -5) (end -4 -4.15) (layer F.SilkS) (width 0.381))
(fp_line (start -12.3 4.15) (end -13.5 4.15) (layer F.SilkS) (width 0.381))
(fp_line (start -4 5) (end -4 4.15) (layer F.SilkS) (width 0.381))
(fp_line (start -4 4.15) (end -12.3 4.15) (layer F.SilkS) (width 0.381))
(fp_line (start 6 -5) (end -4 -5) (layer F.SilkS) (width 0.381))
(fp_line (start 6 3) (end 6 5) (layer F.SilkS) (width 0.381))
(fp_line (start 6 5) (end -4 5) (layer F.SilkS) (width 0.381))
(fp_line (start 6 -5) (end 6 -3) (layer F.SilkS) (width 0.381))
(pad 2 thru_hole oval (at 0 0) (size 4 5.5) (drill 3.3) (layers *.Cu *.Mask F.SilkS))
(pad 1 thru_hole oval (at 4.5 0) (size 3.5 5) (drill 3) (layers *.Cu *.Mask F.SilkS))
)

97
kicad/PCM5102.kicad_mod Normal file
View file

@ -0,0 +1,97 @@
(module PCM5102 (layer F.Cu) (tedit 5ABC1B22)
(fp_text reference IC3 (at -9.7415 1.5845) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value "PCM5102 Audio Stereo DAC" (at -3.9 11.1 90) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 9.6 2.85) (end 9.6 4.6) (layer F.SilkS) (width 0.15))
(fp_line (start 9.6 4.6) (end 10.6 4.6) (layer F.SilkS) (width 0.15))
(fp_line (start 10.6 4.6) (end 10.6 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start 10.6 2.6) (end 9.6 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start 9.6 2.6) (end 9.6 3.1) (layer F.SilkS) (width 0.15))
(fp_line (start 8.35 3.1) (end 8.35 4.35) (layer F.SilkS) (width 0.15))
(fp_line (start 8.35 4.35) (end 8.85 4.35) (layer F.SilkS) (width 0.15))
(fp_line (start 8.85 4.35) (end 8.85 3.1) (layer F.SilkS) (width 0.15))
(fp_line (start 8.85 3.1) (end 8.35 3.1) (layer F.SilkS) (width 0.15))
(fp_line (start 1.6 4.35) (end 0.6 4.35) (layer F.SilkS) (width 0.15))
(fp_line (start 0.6 4.35) (end 0.6 2.85) (layer F.SilkS) (width 0.15))
(fp_line (start 0.6 2.85) (end 1.6 2.85) (layer F.SilkS) (width 0.15))
(fp_line (start 1.6 2.85) (end 1.6 4.35) (layer F.SilkS) (width 0.15))
(fp_line (start 3.1 4.6) (end 5.1 4.6) (layer F.SilkS) (width 0.15))
(fp_line (start 5.1 4.6) (end 5.1 2.1) (layer F.SilkS) (width 0.15))
(fp_line (start 5.1 2.1) (end 3.1 2.1) (layer F.SilkS) (width 0.15))
(fp_line (start 3.1 2.1) (end 3.1 4.6) (layer F.SilkS) (width 0.15))
(fp_line (start 11.85 15.1) (end 13.1 15.1) (layer F.SilkS) (width 0.15))
(fp_line (start 13.1 15.1) (end 13.1 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start 13.1 2.6) (end 11.85 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start 11.85 2.6) (end 11.85 15.1) (layer F.SilkS) (width 0.15))
(fp_line (start 9.35 12.35) (end 9.35 14.85) (layer F.SilkS) (width 0.15))
(fp_line (start 9.35 14.85) (end 10.85 14.85) (layer F.SilkS) (width 0.15))
(fp_line (start 10.85 14.85) (end 10.85 12.35) (layer F.SilkS) (width 0.15))
(fp_line (start 10.85 12.35) (end 9.6 12.35) (layer F.SilkS) (width 0.15))
(fp_line (start 9.6 12.35) (end 9.35 12.35) (layer F.SilkS) (width 0.15))
(fp_line (start 15.6 3.1) (end 14.1 3.1) (layer F.SilkS) (width 0.15))
(fp_line (start 14.1 3.1) (end 14.1 2.1) (layer F.SilkS) (width 0.15))
(fp_line (start 14.1 2.1) (end 15.85 2.1) (layer F.SilkS) (width 0.15))
(fp_line (start 15.85 2.1) (end 15.85 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start -0.9 5.1) (end -0.9 13.35) (layer F.SilkS) (width 0.15))
(fp_line (start -0.9 13.35) (end -2.15 13.35) (layer F.SilkS) (width 0.15))
(fp_line (start -2.15 13.35) (end -2.15 5.1) (layer F.SilkS) (width 0.15))
(fp_line (start -2.15 5.1) (end -0.9 5.1) (layer F.SilkS) (width 0.15))
(fp_line (start 4.35 12.1) (end 5.1 12.1) (layer F.SilkS) (width 0.15))
(fp_line (start 5.1 12.1) (end 5.1 14.85) (layer F.SilkS) (width 0.15))
(fp_line (start 5.1 14.85) (end 4.35 14.85) (layer F.SilkS) (width 0.15))
(fp_line (start 21.6 3.35) (end 23.1 3.35) (layer F.SilkS) (width 0.15))
(fp_line (start 23.1 3.35) (end 23.1 4.35) (layer F.SilkS) (width 0.15))
(fp_line (start 23.1 4.35) (end 21.6 4.35) (layer F.SilkS) (width 0.15))
(fp_line (start 15.6 10.6) (end 14.1 10.6) (layer F.SilkS) (width 0.15))
(fp_line (start 14.1 10.6) (end 14.1 9.6) (layer F.SilkS) (width 0.15))
(fp_line (start 14.1 9.6) (end 15.6 9.6) (layer F.SilkS) (width 0.15))
(fp_line (start 21.6 13.6) (end 23.1 13.6) (layer F.SilkS) (width 0.15))
(fp_line (start 23.1 13.6) (end 23.1 14.6) (layer F.SilkS) (width 0.15))
(fp_line (start 23.1 14.6) (end 21.6 14.6) (layer F.SilkS) (width 0.15))
(fp_line (start 15.6 14.6) (end 14.1 14.6) (layer F.SilkS) (width 0.15))
(fp_line (start 14.1 14.6) (end 14.1 13.6) (layer F.SilkS) (width 0.15))
(fp_line (start 14.1 13.6) (end 15.6 13.6) (layer F.SilkS) (width 0.15))
(fp_line (start 7.85 13.35) (end 7.85 14.35) (layer F.SilkS) (width 0.15))
(fp_line (start 7.85 14.35) (end 8.6 14.35) (layer F.SilkS) (width 0.15))
(fp_line (start 8.6 14.35) (end 8.6 12.85) (layer F.SilkS) (width 0.15))
(fp_line (start 8.6 12.85) (end 7.85 12.85) (layer F.SilkS) (width 0.15))
(fp_line (start 7.85 12.85) (end 7.85 13.1) (layer F.SilkS) (width 0.15))
(fp_line (start 7.85 13.1) (end 7.85 13.35) (layer F.SilkS) (width 0.15))
(fp_line (start 3.1 12.1) (end 3.1 14.85) (layer F.SilkS) (width 0.15))
(fp_line (start 3.1 14.85) (end 4.35 14.85) (layer F.SilkS) (width 0.15))
(fp_line (start 4.35 12.1) (end 3.1 12.1) (layer F.SilkS) (width 0.15))
(fp_line (start 1.1 12.6) (end 1.1 14.6) (layer F.SilkS) (width 0.15))
(fp_line (start 1.1 14.6) (end 1.85 14.6) (layer F.SilkS) (width 0.15))
(fp_line (start 1.85 14.6) (end 1.85 12.35) (layer F.SilkS) (width 0.15))
(fp_line (start 1.85 12.35) (end 1.1 12.35) (layer F.SilkS) (width 0.15))
(fp_line (start 1.1 12.35) (end 1.1 12.6) (layer F.SilkS) (width 0.15))
(fp_line (start 2.1 5.1) (end 7.1 5.1) (layer F.SilkS) (width 0.15))
(fp_line (start 7.1 5.1) (end 7.1 11.6) (layer F.SilkS) (width 0.15))
(fp_line (start 7.1 11.6) (end 2.1 11.6) (layer F.SilkS) (width 0.15))
(fp_line (start 2.1 11.6) (end 2.1 5.1) (layer F.SilkS) (width 0.15))
(fp_line (start 15.6 15.6) (end 15.6 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start 15.6 2.6) (end 21.6 2.6) (layer F.SilkS) (width 0.15))
(fp_line (start 21.6 2.6) (end 21.6 15.6) (layer F.SilkS) (width 0.15))
(fp_line (start -7.9 15.6) (end 24.1 15.6) (layer F.SilkS) (width 0.15))
(fp_line (start 24.1 -1.4) (end 24.1 15.6) (layer F.SilkS) (width 0.15))
(fp_line (start 24.1 -1.4) (end -7.9 -1.4) (layer F.SilkS) (width 0.15))
(fp_line (start -7.9 -1.4) (end -7.9 15.6) (layer F.SilkS) (width 0.15))
(pad 1 thru_hole circle (at -6.5 13.45) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 2 thru_hole circle (at -6.5 10.91) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 3 thru_hole circle (at -6.5 8.37) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 4 thru_hole circle (at -6.5 5.83) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 5 thru_hole circle (at -6.5 3.29) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 6 thru_hole circle (at -6.5 0.75) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 7 thru_hole circle (at 0 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 8 thru_hole circle (at 2.54 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 9 thru_hole circle (at 5.08 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 10 thru_hole circle (at 7.62 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 11 thru_hole circle (at 10.16 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 12 thru_hole circle (at 12.7 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 13 thru_hole circle (at 15.24 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 14 thru_hole circle (at 17.78 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
(pad 15 thru_hole circle (at 20.32 0) (size 1.75 1.75) (drill 1) (layers *.Cu *.Mask))
)

BIN
kicad/Prototype.xcf Normal file

Binary file not shown.

BIN
kicad/cd4051b.pdf Normal file

Binary file not shown.

4
kicad/fp-lib-table Normal file
View file

@ -0,0 +1,4 @@
(fp_lib_table
(version 7)
(lib (name "Digital Audio Switch")(type "KiCad")(uri "${KIPRJMOD}/Digital Audio Switch.pretty")(options "")(descr ""))
)

29
kicad/main.py Normal file
View file

@ -0,0 +1,29 @@
from machine import Pin, SPI, SoftI2C
import framebuf
import ssd1306
import mcp4
i2c = SoftI2C(sda=Pin(2), scl=Pin(16))
oled_width = 128
oled_height = 32
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
buf = bytearray((oled_height // 8) * oled_width)
fbuf = framebuf.FrameBuffer1(buf, oled_width, oled_height)
spi = SPI(1)
cs = Pin(15, mode=Pin.OUT, value=1)
pot = mcp4.MCP4(spi, cs)
def update():
PW0 = pot.read(0)
PW1 = pot.read(1)
oled.fill(0)
oled.text(f"PW0: {PW0}", 0, 0)
oled.text(f"PW1: {PW1}", 0, 10)
oled.show()
update()

164
kicad/mcp4.py Normal file
View file

@ -0,0 +1,164 @@
"""MicroPython MCP413X/415X/423X/425X SPI driver
Driver for the 7/8-Bit Single/Dual SPI Digital POT with Volatile Memory from
Microchip. (https://ww1.microchip.com/downloads/en/DeviceDoc/22060b.pdf)
Copyright 2023 Correl Roush
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the Software), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"""
from machine import Pin, SPI
class NetworkControl:
def __init__(self, hw=True, a=True, w=True, b=True) -> None:
self.forced_hardware_shutdown = hw
self.terminal_a_connected = a
self.wiper_connected = w
self.terminal_b_connected = b
@staticmethod
def from_bin(data: int) -> "NetworkControl":
return NetworkControl(
hw=bool(data & 0b1000),
a=bool(data & 0b0100),
w=bool(data & 0b0010),
b=bool(data & 0b0001),
)
def __repr__(self):
return "<Network HW={hw} A={a} W={w} B={b}".format(
hw=self.forced_hardware_shutdown,
a=self.terminal_a_connected,
w=self.wiper_connected,
b=self.terminal_b_connected,
)
class TerminalControl:
def __init__(self, resistor_0: NetworkControl, resistor_1: NetworkControl) -> None:
self.resistor_0 = resistor_0
self.resistor_1 = resistor_1
@staticmethod
def from_bin(data: int) -> "TerminalControl":
return TerminalControl(
resistor_0=NetworkControl.from_bin(data),
resistor_1=NetworkControl.from_bin(data >> 4),
)
def __repr__(self):
return "<Terminals 0:{r0} 1:{r1}>".format(
r0=self.resistor_0,
r1=self.resistor_1,
)
class MCP4:
"""MicroPython MCP413X/415X/423X/425X SPI driver"""
ADDRESS_WIPER_0 = 0x00
ADDRESS_WIPER_1 = 0x01
ADDRESS_TCON = 0x04
ADDRESS_STATUS = 0x05
CMD_WRITE = 0b00
CMD_INCREMENT = 0b01
CMD_DECREMENT = 0b10
CMD_READ = 0b11
def __init__(self, spi: SPI, cs: Pin) -> None:
self.spi = spi
self.cs = cs
def _bytes(self, address: int, command: int, data: int = 0x0) -> bytearray:
"""Translate an address, command, and data into bytes to send.
- Address is a 4-bit memory address.
- Command is a 2-bit command code.
- Data is 2 bits for increment and decrement operations (ignored), and
10 bits for read and write operations.
"""
command_byte = address << 4 & 0b11110000 | command << 2 & 0b00001100
if command in (0b00, 0b11):
# Include data byte for 10 total bits of data
return bytearray([command_byte | (0b11 & data >> 8), data & 0xFF])
return bytearray([command_byte])
def _write(self, data: bytearray) -> bytearray:
"""Write data to the SPI interface, returning its output."""
output = bytearray(len(data))
self.spi.write_readinto(data, output)
return output
def do(self, address: int, command: int, data: int = 0x0) -> int:
"""Execute a command on the MCP4, returning its integer result."""
self.cs(0)
output = self._write(self._bytes(address, command, data))
self.cs(1)
OK = 0b11111110
if OK != output[0] & OK:
self.cs(0)
raise ValueError("Invalid command")
result = output[0] & 0b01
if len(output) > 1:
result <<= 8
result |= output[1]
return result
def increment(self, wiper: int = 0) -> int:
"""Increment a wiper."""
return self.do(
address=self.ADDRESS_WIPER_1 if wiper == 1 else self.ADDRESS_WIPER_0,
command=self.CMD_INCREMENT,
)
def decrement(self, wiper: int = 0) -> int:
"""Decrement a wiper."""
return self.do(
address=self.ADDRESS_WIPER_1 if wiper == 1 else self.ADDRESS_WIPER_0,
command=self.CMD_DECREMENT,
)
def read(self, wiper: int = 0) -> int:
"""Read the current value of a wiper."""
return self.do(
address=self.ADDRESS_WIPER_1 if wiper == 1 else self.ADDRESS_WIPER_0,
command=self.CMD_READ,
)
def write(self, wiper: int = 0, data: int = 0x00) -> int:
"""Set a value for a wiper."""
return self.do(
address=self.ADDRESS_WIPER_1 if wiper == 1 else self.ADDRESS_WIPER_0,
command=self.CMD_WRITE,
data=data,
)
def is_shutdown(self) -> bool:
status = self.do(address=self.ADDRESS_STATUS, command=self.CMD_READ)
return status & 0b10 == 0b10
@property
def control(self) -> TerminalControl:
data = self.do(address=self.ADDRESS_TCON, command=self.CMD_READ)
return TerminalControl.from_bin(data)

167
kicad/ssd1306.py Normal file
View file

@ -0,0 +1,167 @@
#MicroPython SSD1306 OLED driver, I2C and SPI interfaces created by Adafruit
import time
import framebuf
# register definitions
SET_CONTRAST = const(0x81)
SET_ENTIRE_ON = const(0xa4)
SET_NORM_INV = const(0xa6)
SET_DISP = const(0xae)
SET_MEM_ADDR = const(0x20)
SET_COL_ADDR = const(0x21)
SET_PAGE_ADDR = const(0x22)
SET_DISP_START_LINE = const(0x40)
SET_SEG_REMAP = const(0xa0)
SET_MUX_RATIO = const(0xa8)
SET_COM_OUT_DIR = const(0xc0)
SET_DISP_OFFSET = const(0xd3)
SET_COM_PIN_CFG = const(0xda)
SET_DISP_CLK_DIV = const(0xd5)
SET_PRECHARGE = const(0xd9)
SET_VCOM_DESEL = const(0xdb)
SET_CHARGE_PUMP = const(0x8d)
class SSD1306:
def __init__(self, width, height, external_vcc):
self.width = width
self.height = height
self.external_vcc = external_vcc
self.pages = self.height // 8
# Note the subclass must initialize self.framebuf to a framebuffer.
# This is necessary because the underlying data buffer is different
# between I2C and SPI implementations (I2C needs an extra byte).
self.poweron()
self.init_display()
def init_display(self):
for cmd in (
SET_DISP | 0x00, # off
# address setting
SET_MEM_ADDR, 0x00, # horizontal
# resolution and layout
SET_DISP_START_LINE | 0x00,
SET_SEG_REMAP | 0x01, # column addr 127 mapped to SEG0
SET_MUX_RATIO, self.height - 1,
SET_COM_OUT_DIR | 0x08, # scan from COM[N] to COM0
SET_DISP_OFFSET, 0x00,
SET_COM_PIN_CFG, 0x02 if self.height == 32 else 0x12,
# timing and driving scheme
SET_DISP_CLK_DIV, 0x80,
SET_PRECHARGE, 0x22 if self.external_vcc else 0xf1,
SET_VCOM_DESEL, 0x30, # 0.83*Vcc
# display
SET_CONTRAST, 0xff, # maximum
SET_ENTIRE_ON, # output follows RAM contents
SET_NORM_INV, # not inverted
# charge pump
SET_CHARGE_PUMP, 0x10 if self.external_vcc else 0x14,
SET_DISP | 0x01): # on
self.write_cmd(cmd)
self.fill(0)
self.show()
def poweroff(self):
self.write_cmd(SET_DISP | 0x00)
def contrast(self, contrast):
self.write_cmd(SET_CONTRAST)
self.write_cmd(contrast)
def invert(self, invert):
self.write_cmd(SET_NORM_INV | (invert & 1))
def show(self):
x0 = 0
x1 = self.width - 1
if self.width == 64:
# displays with width of 64 pixels are shifted by 32
x0 += 32
x1 += 32
self.write_cmd(SET_COL_ADDR)
self.write_cmd(x0)
self.write_cmd(x1)
self.write_cmd(SET_PAGE_ADDR)
self.write_cmd(0)
self.write_cmd(self.pages - 1)
self.write_framebuf()
def fill(self, col):
self.framebuf.fill(col)
def pixel(self, x, y, col):
self.framebuf.pixel(x, y, col)
def scroll(self, dx, dy):
self.framebuf.scroll(dx, dy)
def text(self, string, x, y, col=1):
self.framebuf.text(string, x, y, col)
class SSD1306_I2C(SSD1306):
def __init__(self, width, height, i2c, addr=0x3c, external_vcc=False):
self.i2c = i2c
self.addr = addr
self.temp = bytearray(2)
# Add an extra byte to the data buffer to hold an I2C data/command byte
# to use hardware-compatible I2C transactions. A memoryview of the
# buffer is used to mask this byte from the framebuffer operations
# (without a major memory hit as memoryview doesn't copy to a separate
# buffer).
self.buffer = bytearray(((height // 8) * width) + 1)
self.buffer[0] = 0x40 # Set first byte of data buffer to Co=0, D/C=1
self.framebuf = framebuf.FrameBuffer1(memoryview(self.buffer)[1:], width, height)
super().__init__(width, height, external_vcc)
def write_cmd(self, cmd):
self.temp[0] = 0x80 # Co=1, D/C#=0
self.temp[1] = cmd
self.i2c.writeto(self.addr, self.temp)
def write_framebuf(self):
# Blast out the frame buffer using a single I2C transaction to support
# hardware I2C interfaces.
self.i2c.writeto(self.addr, self.buffer)
def poweron(self):
pass
class SSD1306_SPI(SSD1306):
def __init__(self, width, height, spi, dc, res, cs, external_vcc=False):
self.rate = 10 * 1024 * 1024
dc.init(dc.OUT, value=0)
res.init(res.OUT, value=0)
cs.init(cs.OUT, value=1)
self.spi = spi
self.dc = dc
self.res = res
self.cs = cs
self.buffer = bytearray((height // 8) * width)
self.framebuf = framebuf.FrameBuffer1(self.buffer, width, height)
super().__init__(width, height, external_vcc)
def write_cmd(self, cmd):
self.spi.init(baudrate=self.rate, polarity=0, phase=0)
self.cs.high()
self.dc.low()
self.cs.low()
self.spi.write(bytearray([cmd]))
self.cs.high()
def write_framebuf(self):
self.spi.init(baudrate=self.rate, polarity=0, phase=0)
self.cs.high()
self.dc.high()
self.cs.low()
self.spi.write(self.buffer)
self.cs.high()
def poweron(self):
self.res.high()
time.sleep_ms(1)
self.res.low()
time.sleep_ms(10)
self.res.high()

4
kicad/sym-lib-table Normal file
View file

@ -0,0 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "Digital Audio Switch")(type "KiCad")(uri "${KIPRJMOD}/Digital Audio Switch.kicad_sym")(options "")(descr ""))
)