need to organize, redid PCB

This commit is contained in:
Brett Weiland 2025-07-13 16:22:38 -05:00
parent 7b1f043ac5
commit 91a1a81d96
70 changed files with 117090 additions and 5825 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

30
buyme Normal file
View File

@ -0,0 +1,30 @@
bat charger - imported
2 22uf ceramic capacitors (done)
leds+resistors (done)
in+out filters: 22uf (done)
20 must take 1a
timing capacitor (done) - 270nF
schotty diode (done)
inductor (done)
bat to 3v - imported
100nf/.1uf cap (done)
2 10/22uf caps (done)
check 4.7 uh inductor (done)
usb to 3v
voltage div resistors (done)
2 1uf ceramic caps (done)
comparator - imported
boost converter is high=on
1uf caps (done)
1uf between vdd/gnd (done)
1000pf between vout and gnd (done)
15nF timer cap (done)
TODO:
check list
check layout
set inductors

View File

@ -0,0 +1,17 @@
LCSC Part Number,Manufacture Part Number,Manufacturer,Customer NO.,Package,Description,RoHS,Order Qty.,Min\Mult Order Qty.,Unit Price($),Order Price($)
C2888573,TSD003A04126A02,BZCN,,SMD,"6mm 4.1mm 50mA Round Button Surface Mount,Vertical 6mm 2.6N 12V SMD Tactile Switches ROHS",YES,150,50\50,0.0109,1.64
C8734,STM32F103C8T6,STMicroelectronics,,LQFP-48(7x7),ARM-M3 72MHz LQFP-48(7x7) Microcontrollers (MCU/MPU/SOC) ROHS,YES,15,1\1,0.9934,14.90
C2890616,N096-1608TBBIG11-H13,Newvisio,,-,0.96 ST7735S LCD Screen ROHS,YES,15,1\1,1.44,21.60
C182965,MT9216,XI'AN Aerosemi Tech,,SOT-23-5,Buck Adjustable 600mV~6V 800mA 2V~6V SOT-23-5 DC-DC Converters ROHS,YES,20,10\10,0.046,0.92
C1607,CL10A225KP8NNNC,Samsung Electro-Mechanics,,0603,10V 2.2uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS,YES,100,100\100,0.0051,0.51
C42412253,F8-4.3-4-0.4Z,Sam&wing,,-,Spring ROHS,YES,60,10\10,0.0225,1.35
C5137636,FCC0603B104K500CT,FOJAN,,0603,50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS,YES,200,100\100,0.0022,0.44
C6119842,CGA0603X5R106K100JT,HRE,,0603,10V 10uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS,YES,100,100\100,0.0048,0.48
C100044,RC0603FR-070RL,YAGEO,,0603,100mW Thick Film Resistor 75V ±1% 0Ω 0603 Chip Resistor - Surface Mount ROHS,YES,100,100\100,0.0011,0.11
C14675,RC0603FR-07100KL,YAGEO,,0603,100mW Thick Film Resistor 75V ±100ppm/℃ ±1% 100kΩ 0603 Chip Resistor - Surface Mount ROHS,YES,100,100\100,0.0008,0.08
C2907113,FRC0603J102 TS,FOJAN,,0603,100mW Thick Film Resistor 75V ±100ppm/℃ ±5% 1kΩ 0603 Chip Resistor - Surface Mount ROHS,YES,100,100\100,0.0009,0.09
C2930027,FRC0603J103TS,FOJAN,,0603,"100mW Thick Film Resistor 75V ±100ppm/℃ ±5% 10kΩ 0603 Chip Resistor - Surface Mount ",NO,100,100\100,0.0008,0.08
C2929429,CY54-4.7UH,SHOU HAN,,"SMD,5.8x5.2mm","3.1A 4.7uH ±20% 52mΩ SMD,5.8x5.2mm Inductors (SMD) ROHS",YES,20,10\10,0.0343,0.69
C8032,CL10A475KQ8NNNC,Samsung Electro-Mechanics,,0603,6.3V 4.7uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS,YES,50,50\50,0.0042,0.21
C1653,CL10C220JB8NNNC,Samsung Electro-Mechanics,,0603,50V 22pF C0G ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS,YES,100,100\100,0.0039,0.39
C3013969,AR05BTCW4003,Viking Tech,,0805,125mW ±25ppm/℃ ±0.1% 400kΩ 0805 Chip Resistor - Surface Mount ROHS,YES,20,10\10,0.0436,0.87
1 LCSC Part Number Manufacture Part Number Manufacturer Customer NO. Package Description RoHS Order Qty. Min\Mult Order Qty. Unit Price($) Order Price($)
2 C2888573 TSD003A04126A02 BZCN SMD 6mm 4.1mm 50mA Round Button Surface Mount,Vertical 6mm 2.6N 12V SMD Tactile Switches ROHS YES 150 50\50 0.0109 1.64
3 C8734 STM32F103C8T6 STMicroelectronics LQFP-48(7x7) ARM-M3 72MHz LQFP-48(7x7) Microcontrollers (MCU/MPU/SOC) ROHS YES 15 1\1 0.9934 14.90
4 C2890616 N096-1608TBBIG11-H13 Newvisio - 0.96 ST7735S LCD Screen ROHS YES 15 1\1 1.44 21.60
5 C182965 MT9216 XI'AN Aerosemi Tech SOT-23-5 Buck Adjustable 600mV~6V 800mA 2V~6V SOT-23-5 DC-DC Converters ROHS YES 20 10\10 0.046 0.92
6 C1607 CL10A225KP8NNNC Samsung Electro-Mechanics 0603 10V 2.2uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS YES 100 100\100 0.0051 0.51
7 C42412253 F8-4.3-4-0.4Z Sam&wing - Spring ROHS YES 60 10\10 0.0225 1.35
8 C5137636 FCC0603B104K500CT FOJAN 0603 50V 100nF X7R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS YES 200 100\100 0.0022 0.44
9 C6119842 CGA0603X5R106K100JT HRE 0603 10V 10uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS YES 100 100\100 0.0048 0.48
10 C100044 RC0603FR-070RL YAGEO 0603 100mW Thick Film Resistor 75V ±1% 0Ω 0603 Chip Resistor - Surface Mount ROHS YES 100 100\100 0.0011 0.11
11 C14675 RC0603FR-07100KL YAGEO 0603 100mW Thick Film Resistor 75V ±100ppm/℃ ±1% 100kΩ 0603 Chip Resistor - Surface Mount ROHS YES 100 100\100 0.0008 0.08
12 C2907113 FRC0603J102 TS FOJAN 0603 100mW Thick Film Resistor 75V ±100ppm/℃ ±5% 1kΩ 0603 Chip Resistor - Surface Mount ROHS YES 100 100\100 0.0009 0.09
13 C2930027 FRC0603J103TS FOJAN 0603 100mW Thick Film Resistor 75V ±100ppm/℃ ±5% 10kΩ 0603 Chip Resistor - Surface Mount NO 100 100\100 0.0008 0.08
14 C2929429 CY54-4.7UH SHOU HAN SMD,5.8x5.2mm 3.1A 4.7uH ±20% 52mΩ SMD,5.8x5.2mm Inductors (SMD) ROHS YES 20 10\10 0.0343 0.69
15 C8032 CL10A475KQ8NNNC Samsung Electro-Mechanics 0603 6.3V 4.7uF X5R ±10% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS YES 50 50\50 0.0042 0.21
16 C1653 CL10C220JB8NNNC Samsung Electro-Mechanics 0603 50V 22pF C0G ±5% 0603 Multilayer Ceramic Capacitors MLCC - SMD/SMT ROHS YES 100 100\100 0.0039 0.39
17 C3013969 AR05BTCW4003 Viking Tech 0805 125mW ±25ppm/℃ ±0.1% 400kΩ 0805 Chip Resistor - Surface Mount ROHS YES 20 10\10 0.0436 0.87

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
datasheets/linear_reg.pdf Normal file

Binary file not shown.

Binary file not shown.

BIN
datasheets/order_7-8-25.ods Normal file

Binary file not shown.

BIN
datasheets/oring.pdf Normal file

Binary file not shown.

Binary file not shown.

BIN
imgs/rc33hnggcebd1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

View File

@ -1 +0,0 @@
/home/indigo/projects/stm32_buisnesscard/kicad/stm32card/_autosave-stm32card.kicad_sch

View File

@ -1,4 +1,4 @@
25622844274528942 25633357005975980
Audio_Module Audio_Module
Reverb_BTDR-1H Reverb_BTDR-1H
Digital Reverberation Unit, http://www.belton.co.kr/inc/downfile.php?seq=17&file=pdf (footprint from http://www.uk-electronic.de/PDF/BTDR-1.pdf) Digital Reverberation Unit, http://www.belton.co.kr/inc/downfile.php?seq=17&file=pdf (footprint from http://www.uk-electronic.de/PDF/BTDR-1.pdf)
@ -102675,3 +102675,45 @@ Varistor VF
0 0
2 2
2 2
indigos_imports
ESOP-8_L4.9-W3.9-P1.27-LS6.0-BL-EP
0
9
9
indigos_imports
IND-SMD_L5.8-W5.2
0
2
2
indigos_imports
IND-SMD_L7.2-W6.6_GPSR07X0
0
2
2
indigos_imports
SOT-23-5_L2.9-W1.6-P0.95-LS2.8-BR
0
5
5
indigos_imports
SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BL
0
6
6
indigos_imports
SSOP-5_L2.9-W1.6-P0.95-LS2.8-TL
0
5
5

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,19 @@
{ {
"board": { "board": {
"active_layer": 2, "active_layer": 0,
"active_layer_preset": "Back Layers", "active_layer_preset": "Front Layers",
"auto_track_width": true, "auto_track_width": true,
"hidden_netclasses": [], "hidden_netclasses": [],
"hidden_nets": [], "hidden_nets": [],
"high_contrast_mode": 0, "high_contrast_mode": 0,
"net_color_mode": 1, "net_color_mode": 1,
"opacity": { "opacity": {
"images": 0.6, "images": 0.5299999713897705,
"pads": 1.0, "pads": 1.0,
"shapes": 1.0, "shapes": 1.0,
"tracks": 1.0, "tracks": 1.0,
"vias": 1.0, "vias": 1.0,
"zones": 0.6 "zones": 0.7300000190734863
}, },
"selection_filter": { "selection_filter": {
"dimensions": true, "dimensions": true,
@ -48,8 +48,8 @@
"conflict_shadows", "conflict_shadows",
"shapes" "shapes"
], ],
"visible_layers": "00000000_00000000_00000002_2200888c", "visible_layers": "00000000_00000000_00000008_82002223",
"zone_display_mode": 1 "zone_display_mode": 0
}, },
"git": { "git": {
"repo_password": "", "repo_password": "",

View File

@ -191,7 +191,8 @@
0.0, 0.0,
0.25, 0.25,
0.35, 0.35,
0.5 0.5,
1.0
], ],
"tuning_pattern_settings": { "tuning_pattern_settings": {
"diff_pair_defaults": { "diff_pair_defaults": {
@ -527,7 +528,7 @@
"gencad": "", "gencad": "",
"idf": "", "idf": "",
"netlist": "", "netlist": "",
"plot": "../../v1_output/", "plot": "../../v2_output_thermalpads/",
"pos_files": "", "pos_files": "",
"specctra_dsn": "", "specctra_dsn": "",
"step": "", "step": "",

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,96 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
"vias",
"footprint_text",
"footprint_anchors",
"ratsnest",
"footprints_front",
"footprints_back",
"footprint_values",
"footprint_references",
"tracks",
"drc_errors",
"drawing_sheet",
"bitmaps",
"pads",
"zones",
"drc_warnings",
"locked_item_shadows",
"conflict_shadows",
"shapes"
],
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
"zone_display_mode": 0
},
"git": {
"repo_type": "",
"repo_username": "",
"ssh_key": ""
},
"meta": {
"filename": "stm32card_old.kicad_prl",
"version": 5
},
"net_inspector_panel": {
"col_hidden": [],
"col_order": [],
"col_widths": [],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": -1
},
"open_jobsets": [],
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View File

@ -0,0 +1,655 @@
{
"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": [
{
"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",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"hole_to_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",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "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_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.1,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.16,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.25,
0.35,
0.5
],
"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": [
{
"diameter": 0.0,
"drill": 0.0
}
],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"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",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "stm32card_old.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
},
{
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_width": 0.2,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "power",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 0,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.5,
"via_diameter": 0.6,
"via_drill": 0.3
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "power",
"pattern": "+3.0V"
},
{
"netclass": "power",
"pattern": "unregulated_vcc"
}
]
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "../../v1_output/",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": false,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": false,
"name": "Grouped By Value",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"meta": {
"version": 0
},
"model_mode": 4,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"87333522-7f73-498a-afdc-76bd376ba27f",
"Root"
]
],
"text_variables": {}
}

BIN
mandrel_border_sample.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 404 KiB

0
pcb_qrcode.bmp Normal file
View File

BIN
pcb_qrcode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

327
pcb_qrcode.svg Normal file
View File

@ -0,0 +1,327 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Created with qrencode 4.1.1 (https://fukuchi.org/works/qrencode/index.html) -->
<svg width="3.49cm" height="3.49cm" viewBox="0 0 33 33" preserveAspectRatio="none" version="1.1" xmlns="http://www.w3.org/2000/svg">
<g id="QRcode">
<rect x="0" y="0" width="33" height="33" fill="#ffffff"/>
<g id="Pattern" transform="translate(4,4)">
<rect x="0" y="0" width="1" height="1" fill="#000000"/>
<rect x="1" y="0" width="1" height="1" fill="#000000"/>
<rect x="2" y="0" width="1" height="1" fill="#000000"/>
<rect x="3" y="0" width="1" height="1" fill="#000000"/>
<rect x="4" y="0" width="1" height="1" fill="#000000"/>
<rect x="5" y="0" width="1" height="1" fill="#000000"/>
<rect x="6" y="0" width="1" height="1" fill="#000000"/>
<rect x="10" y="0" width="1" height="1" fill="#000000"/>
<rect x="14" y="0" width="1" height="1" fill="#000000"/>
<rect x="15" y="0" width="1" height="1" fill="#000000"/>
<rect x="18" y="0" width="1" height="1" fill="#000000"/>
<rect x="19" y="0" width="1" height="1" fill="#000000"/>
<rect x="20" y="0" width="1" height="1" fill="#000000"/>
<rect x="21" y="0" width="1" height="1" fill="#000000"/>
<rect x="22" y="0" width="1" height="1" fill="#000000"/>
<rect x="23" y="0" width="1" height="1" fill="#000000"/>
<rect x="24" y="0" width="1" height="1" fill="#000000"/>
<rect x="0" y="1" width="1" height="1" fill="#000000"/>
<rect x="6" y="1" width="1" height="1" fill="#000000"/>
<rect x="8" y="1" width="1" height="1" fill="#000000"/>
<rect x="9" y="1" width="1" height="1" fill="#000000"/>
<rect x="10" y="1" width="1" height="1" fill="#000000"/>
<rect x="13" y="1" width="1" height="1" fill="#000000"/>
<rect x="15" y="1" width="1" height="1" fill="#000000"/>
<rect x="16" y="1" width="1" height="1" fill="#000000"/>
<rect x="18" y="1" width="1" height="1" fill="#000000"/>
<rect x="24" y="1" width="1" height="1" fill="#000000"/>
<rect x="0" y="2" width="1" height="1" fill="#000000"/>
<rect x="2" y="2" width="1" height="1" fill="#000000"/>
<rect x="3" y="2" width="1" height="1" fill="#000000"/>
<rect x="4" y="2" width="1" height="1" fill="#000000"/>
<rect x="6" y="2" width="1" height="1" fill="#000000"/>
<rect x="8" y="2" width="1" height="1" fill="#000000"/>
<rect x="14" y="2" width="1" height="1" fill="#000000"/>
<rect x="15" y="2" width="1" height="1" fill="#000000"/>
<rect x="18" y="2" width="1" height="1" fill="#000000"/>
<rect x="20" y="2" width="1" height="1" fill="#000000"/>
<rect x="21" y="2" width="1" height="1" fill="#000000"/>
<rect x="22" y="2" width="1" height="1" fill="#000000"/>
<rect x="24" y="2" width="1" height="1" fill="#000000"/>
<rect x="0" y="3" width="1" height="1" fill="#000000"/>
<rect x="2" y="3" width="1" height="1" fill="#000000"/>
<rect x="3" y="3" width="1" height="1" fill="#000000"/>
<rect x="4" y="3" width="1" height="1" fill="#000000"/>
<rect x="6" y="3" width="1" height="1" fill="#000000"/>
<rect x="9" y="3" width="1" height="1" fill="#000000"/>
<rect x="12" y="3" width="1" height="1" fill="#000000"/>
<rect x="14" y="3" width="1" height="1" fill="#000000"/>
<rect x="18" y="3" width="1" height="1" fill="#000000"/>
<rect x="20" y="3" width="1" height="1" fill="#000000"/>
<rect x="21" y="3" width="1" height="1" fill="#000000"/>
<rect x="22" y="3" width="1" height="1" fill="#000000"/>
<rect x="24" y="3" width="1" height="1" fill="#000000"/>
<rect x="0" y="4" width="1" height="1" fill="#000000"/>
<rect x="2" y="4" width="1" height="1" fill="#000000"/>
<rect x="3" y="4" width="1" height="1" fill="#000000"/>
<rect x="4" y="4" width="1" height="1" fill="#000000"/>
<rect x="6" y="4" width="1" height="1" fill="#000000"/>
<rect x="8" y="4" width="1" height="1" fill="#000000"/>
<rect x="9" y="4" width="1" height="1" fill="#000000"/>
<rect x="10" y="4" width="1" height="1" fill="#000000"/>
<rect x="12" y="4" width="1" height="1" fill="#000000"/>
<rect x="14" y="4" width="1" height="1" fill="#000000"/>
<rect x="15" y="4" width="1" height="1" fill="#000000"/>
<rect x="18" y="4" width="1" height="1" fill="#000000"/>
<rect x="20" y="4" width="1" height="1" fill="#000000"/>
<rect x="21" y="4" width="1" height="1" fill="#000000"/>
<rect x="22" y="4" width="1" height="1" fill="#000000"/>
<rect x="24" y="4" width="1" height="1" fill="#000000"/>
<rect x="0" y="5" width="1" height="1" fill="#000000"/>
<rect x="6" y="5" width="1" height="1" fill="#000000"/>
<rect x="8" y="5" width="1" height="1" fill="#000000"/>
<rect x="10" y="5" width="1" height="1" fill="#000000"/>
<rect x="12" y="5" width="1" height="1" fill="#000000"/>
<rect x="15" y="5" width="1" height="1" fill="#000000"/>
<rect x="16" y="5" width="1" height="1" fill="#000000"/>
<rect x="18" y="5" width="1" height="1" fill="#000000"/>
<rect x="24" y="5" width="1" height="1" fill="#000000"/>
<rect x="0" y="6" width="1" height="1" fill="#000000"/>
<rect x="1" y="6" width="1" height="1" fill="#000000"/>
<rect x="2" y="6" width="1" height="1" fill="#000000"/>
<rect x="3" y="6" width="1" height="1" fill="#000000"/>
<rect x="4" y="6" width="1" height="1" fill="#000000"/>
<rect x="5" y="6" width="1" height="1" fill="#000000"/>
<rect x="6" y="6" width="1" height="1" fill="#000000"/>
<rect x="8" y="6" width="1" height="1" fill="#000000"/>
<rect x="10" y="6" width="1" height="1" fill="#000000"/>
<rect x="12" y="6" width="1" height="1" fill="#000000"/>
<rect x="14" y="6" width="1" height="1" fill="#000000"/>
<rect x="16" y="6" width="1" height="1" fill="#000000"/>
<rect x="18" y="6" width="1" height="1" fill="#000000"/>
<rect x="19" y="6" width="1" height="1" fill="#000000"/>
<rect x="20" y="6" width="1" height="1" fill="#000000"/>
<rect x="21" y="6" width="1" height="1" fill="#000000"/>
<rect x="22" y="6" width="1" height="1" fill="#000000"/>
<rect x="23" y="6" width="1" height="1" fill="#000000"/>
<rect x="24" y="6" width="1" height="1" fill="#000000"/>
<rect x="8" y="7" width="1" height="1" fill="#000000"/>
<rect x="10" y="7" width="1" height="1" fill="#000000"/>
<rect x="11" y="7" width="1" height="1" fill="#000000"/>
<rect x="14" y="7" width="1" height="1" fill="#000000"/>
<rect x="15" y="7" width="1" height="1" fill="#000000"/>
<rect x="0" y="8" width="1" height="1" fill="#000000"/>
<rect x="1" y="8" width="1" height="1" fill="#000000"/>
<rect x="3" y="8" width="1" height="1" fill="#000000"/>
<rect x="6" y="8" width="1" height="1" fill="#000000"/>
<rect x="7" y="8" width="1" height="1" fill="#000000"/>
<rect x="11" y="8" width="1" height="1" fill="#000000"/>
<rect x="12" y="8" width="1" height="1" fill="#000000"/>
<rect x="13" y="8" width="1" height="1" fill="#000000"/>
<rect x="14" y="8" width="1" height="1" fill="#000000"/>
<rect x="16" y="8" width="1" height="1" fill="#000000"/>
<rect x="18" y="8" width="1" height="1" fill="#000000"/>
<rect x="19" y="8" width="1" height="1" fill="#000000"/>
<rect x="20" y="8" width="1" height="1" fill="#000000"/>
<rect x="22" y="8" width="1" height="1" fill="#000000"/>
<rect x="23" y="8" width="1" height="1" fill="#000000"/>
<rect x="0" y="9" width="1" height="1" fill="#000000"/>
<rect x="4" y="9" width="1" height="1" fill="#000000"/>
<rect x="9" y="9" width="1" height="1" fill="#000000"/>
<rect x="11" y="9" width="1" height="1" fill="#000000"/>
<rect x="12" y="9" width="1" height="1" fill="#000000"/>
<rect x="16" y="9" width="1" height="1" fill="#000000"/>
<rect x="18" y="9" width="1" height="1" fill="#000000"/>
<rect x="24" y="9" width="1" height="1" fill="#000000"/>
<rect x="0" y="10" width="1" height="1" fill="#000000"/>
<rect x="1" y="10" width="1" height="1" fill="#000000"/>
<rect x="2" y="10" width="1" height="1" fill="#000000"/>
<rect x="3" y="10" width="1" height="1" fill="#000000"/>
<rect x="5" y="10" width="1" height="1" fill="#000000"/>
<rect x="6" y="10" width="1" height="1" fill="#000000"/>
<rect x="8" y="10" width="1" height="1" fill="#000000"/>
<rect x="11" y="10" width="1" height="1" fill="#000000"/>
<rect x="12" y="10" width="1" height="1" fill="#000000"/>
<rect x="13" y="10" width="1" height="1" fill="#000000"/>
<rect x="16" y="10" width="1" height="1" fill="#000000"/>
<rect x="18" y="10" width="1" height="1" fill="#000000"/>
<rect x="19" y="10" width="1" height="1" fill="#000000"/>
<rect x="23" y="10" width="1" height="1" fill="#000000"/>
<rect x="24" y="10" width="1" height="1" fill="#000000"/>
<rect x="0" y="11" width="1" height="1" fill="#000000"/>
<rect x="3" y="11" width="1" height="1" fill="#000000"/>
<rect x="9" y="11" width="1" height="1" fill="#000000"/>
<rect x="10" y="11" width="1" height="1" fill="#000000"/>
<rect x="11" y="11" width="1" height="1" fill="#000000"/>
<rect x="12" y="11" width="1" height="1" fill="#000000"/>
<rect x="13" y="11" width="1" height="1" fill="#000000"/>
<rect x="19" y="11" width="1" height="1" fill="#000000"/>
<rect x="20" y="11" width="1" height="1" fill="#000000"/>
<rect x="1" y="12" width="1" height="1" fill="#000000"/>
<rect x="2" y="12" width="1" height="1" fill="#000000"/>
<rect x="3" y="12" width="1" height="1" fill="#000000"/>
<rect x="4" y="12" width="1" height="1" fill="#000000"/>
<rect x="6" y="12" width="1" height="1" fill="#000000"/>
<rect x="8" y="12" width="1" height="1" fill="#000000"/>
<rect x="10" y="12" width="1" height="1" fill="#000000"/>
<rect x="11" y="12" width="1" height="1" fill="#000000"/>
<rect x="14" y="12" width="1" height="1" fill="#000000"/>
<rect x="16" y="12" width="1" height="1" fill="#000000"/>
<rect x="17" y="12" width="1" height="1" fill="#000000"/>
<rect x="18" y="12" width="1" height="1" fill="#000000"/>
<rect x="21" y="12" width="1" height="1" fill="#000000"/>
<rect x="23" y="12" width="1" height="1" fill="#000000"/>
<rect x="24" y="12" width="1" height="1" fill="#000000"/>
<rect x="1" y="13" width="1" height="1" fill="#000000"/>
<rect x="5" y="13" width="1" height="1" fill="#000000"/>
<rect x="7" y="13" width="1" height="1" fill="#000000"/>
<rect x="9" y="13" width="1" height="1" fill="#000000"/>
<rect x="11" y="13" width="1" height="1" fill="#000000"/>
<rect x="13" y="13" width="1" height="1" fill="#000000"/>
<rect x="17" y="13" width="1" height="1" fill="#000000"/>
<rect x="18" y="13" width="1" height="1" fill="#000000"/>
<rect x="19" y="13" width="1" height="1" fill="#000000"/>
<rect x="21" y="13" width="1" height="1" fill="#000000"/>
<rect x="22" y="13" width="1" height="1" fill="#000000"/>
<rect x="24" y="13" width="1" height="1" fill="#000000"/>
<rect x="0" y="14" width="1" height="1" fill="#000000"/>
<rect x="4" y="14" width="1" height="1" fill="#000000"/>
<rect x="6" y="14" width="1" height="1" fill="#000000"/>
<rect x="7" y="14" width="1" height="1" fill="#000000"/>
<rect x="8" y="14" width="1" height="1" fill="#000000"/>
<rect x="10" y="14" width="1" height="1" fill="#000000"/>
<rect x="11" y="14" width="1" height="1" fill="#000000"/>
<rect x="13" y="14" width="1" height="1" fill="#000000"/>
<rect x="14" y="14" width="1" height="1" fill="#000000"/>
<rect x="17" y="14" width="1" height="1" fill="#000000"/>
<rect x="18" y="14" width="1" height="1" fill="#000000"/>
<rect x="19" y="14" width="1" height="1" fill="#000000"/>
<rect x="20" y="14" width="1" height="1" fill="#000000"/>
<rect x="22" y="14" width="1" height="1" fill="#000000"/>
<rect x="24" y="14" width="1" height="1" fill="#000000"/>
<rect x="1" y="15" width="1" height="1" fill="#000000"/>
<rect x="4" y="15" width="1" height="1" fill="#000000"/>
<rect x="8" y="15" width="1" height="1" fill="#000000"/>
<rect x="9" y="15" width="1" height="1" fill="#000000"/>
<rect x="10" y="15" width="1" height="1" fill="#000000"/>
<rect x="11" y="15" width="1" height="1" fill="#000000"/>
<rect x="15" y="15" width="1" height="1" fill="#000000"/>
<rect x="18" y="15" width="1" height="1" fill="#000000"/>
<rect x="20" y="15" width="1" height="1" fill="#000000"/>
<rect x="23" y="15" width="1" height="1" fill="#000000"/>
<rect x="0" y="16" width="1" height="1" fill="#000000"/>
<rect x="1" y="16" width="1" height="1" fill="#000000"/>
<rect x="2" y="16" width="1" height="1" fill="#000000"/>
<rect x="3" y="16" width="1" height="1" fill="#000000"/>
<rect x="5" y="16" width="1" height="1" fill="#000000"/>
<rect x="6" y="16" width="1" height="1" fill="#000000"/>
<rect x="7" y="16" width="1" height="1" fill="#000000"/>
<rect x="8" y="16" width="1" height="1" fill="#000000"/>
<rect x="9" y="16" width="1" height="1" fill="#000000"/>
<rect x="12" y="16" width="1" height="1" fill="#000000"/>
<rect x="13" y="16" width="1" height="1" fill="#000000"/>
<rect x="16" y="16" width="1" height="1" fill="#000000"/>
<rect x="17" y="16" width="1" height="1" fill="#000000"/>
<rect x="18" y="16" width="1" height="1" fill="#000000"/>
<rect x="19" y="16" width="1" height="1" fill="#000000"/>
<rect x="20" y="16" width="1" height="1" fill="#000000"/>
<rect x="21" y="16" width="1" height="1" fill="#000000"/>
<rect x="22" y="16" width="1" height="1" fill="#000000"/>
<rect x="8" y="17" width="1" height="1" fill="#000000"/>
<rect x="12" y="17" width="1" height="1" fill="#000000"/>
<rect x="13" y="17" width="1" height="1" fill="#000000"/>
<rect x="14" y="17" width="1" height="1" fill="#000000"/>
<rect x="15" y="17" width="1" height="1" fill="#000000"/>
<rect x="16" y="17" width="1" height="1" fill="#000000"/>
<rect x="20" y="17" width="1" height="1" fill="#000000"/>
<rect x="21" y="17" width="1" height="1" fill="#000000"/>
<rect x="24" y="17" width="1" height="1" fill="#000000"/>
<rect x="0" y="18" width="1" height="1" fill="#000000"/>
<rect x="1" y="18" width="1" height="1" fill="#000000"/>
<rect x="2" y="18" width="1" height="1" fill="#000000"/>
<rect x="3" y="18" width="1" height="1" fill="#000000"/>
<rect x="4" y="18" width="1" height="1" fill="#000000"/>
<rect x="5" y="18" width="1" height="1" fill="#000000"/>
<rect x="6" y="18" width="1" height="1" fill="#000000"/>
<rect x="8" y="18" width="1" height="1" fill="#000000"/>
<rect x="11" y="18" width="1" height="1" fill="#000000"/>
<rect x="12" y="18" width="1" height="1" fill="#000000"/>
<rect x="14" y="18" width="1" height="1" fill="#000000"/>
<rect x="15" y="18" width="1" height="1" fill="#000000"/>
<rect x="16" y="18" width="1" height="1" fill="#000000"/>
<rect x="18" y="18" width="1" height="1" fill="#000000"/>
<rect x="20" y="18" width="1" height="1" fill="#000000"/>
<rect x="21" y="18" width="1" height="1" fill="#000000"/>
<rect x="23" y="18" width="1" height="1" fill="#000000"/>
<rect x="24" y="18" width="1" height="1" fill="#000000"/>
<rect x="0" y="19" width="1" height="1" fill="#000000"/>
<rect x="6" y="19" width="1" height="1" fill="#000000"/>
<rect x="9" y="19" width="1" height="1" fill="#000000"/>
<rect x="10" y="19" width="1" height="1" fill="#000000"/>
<rect x="12" y="19" width="1" height="1" fill="#000000"/>
<rect x="14" y="19" width="1" height="1" fill="#000000"/>
<rect x="16" y="19" width="1" height="1" fill="#000000"/>
<rect x="20" y="19" width="1" height="1" fill="#000000"/>
<rect x="21" y="19" width="1" height="1" fill="#000000"/>
<rect x="22" y="19" width="1" height="1" fill="#000000"/>
<rect x="23" y="19" width="1" height="1" fill="#000000"/>
<rect x="0" y="20" width="1" height="1" fill="#000000"/>
<rect x="2" y="20" width="1" height="1" fill="#000000"/>
<rect x="3" y="20" width="1" height="1" fill="#000000"/>
<rect x="4" y="20" width="1" height="1" fill="#000000"/>
<rect x="6" y="20" width="1" height="1" fill="#000000"/>
<rect x="9" y="20" width="1" height="1" fill="#000000"/>
<rect x="10" y="20" width="1" height="1" fill="#000000"/>
<rect x="16" y="20" width="1" height="1" fill="#000000"/>
<rect x="17" y="20" width="1" height="1" fill="#000000"/>
<rect x="18" y="20" width="1" height="1" fill="#000000"/>
<rect x="19" y="20" width="1" height="1" fill="#000000"/>
<rect x="20" y="20" width="1" height="1" fill="#000000"/>
<rect x="21" y="20" width="1" height="1" fill="#000000"/>
<rect x="24" y="20" width="1" height="1" fill="#000000"/>
<rect x="0" y="21" width="1" height="1" fill="#000000"/>
<rect x="2" y="21" width="1" height="1" fill="#000000"/>
<rect x="3" y="21" width="1" height="1" fill="#000000"/>
<rect x="4" y="21" width="1" height="1" fill="#000000"/>
<rect x="6" y="21" width="1" height="1" fill="#000000"/>
<rect x="8" y="21" width="1" height="1" fill="#000000"/>
<rect x="11" y="21" width="1" height="1" fill="#000000"/>
<rect x="14" y="21" width="1" height="1" fill="#000000"/>
<rect x="15" y="21" width="1" height="1" fill="#000000"/>
<rect x="19" y="21" width="1" height="1" fill="#000000"/>
<rect x="20" y="21" width="1" height="1" fill="#000000"/>
<rect x="21" y="21" width="1" height="1" fill="#000000"/>
<rect x="22" y="21" width="1" height="1" fill="#000000"/>
<rect x="0" y="22" width="1" height="1" fill="#000000"/>
<rect x="2" y="22" width="1" height="1" fill="#000000"/>
<rect x="3" y="22" width="1" height="1" fill="#000000"/>
<rect x="4" y="22" width="1" height="1" fill="#000000"/>
<rect x="6" y="22" width="1" height="1" fill="#000000"/>
<rect x="17" y="22" width="1" height="1" fill="#000000"/>
<rect x="19" y="22" width="1" height="1" fill="#000000"/>
<rect x="20" y="22" width="1" height="1" fill="#000000"/>
<rect x="22" y="22" width="1" height="1" fill="#000000"/>
<rect x="24" y="22" width="1" height="1" fill="#000000"/>
<rect x="0" y="23" width="1" height="1" fill="#000000"/>
<rect x="6" y="23" width="1" height="1" fill="#000000"/>
<rect x="8" y="23" width="1" height="1" fill="#000000"/>
<rect x="9" y="23" width="1" height="1" fill="#000000"/>
<rect x="14" y="23" width="1" height="1" fill="#000000"/>
<rect x="16" y="23" width="1" height="1" fill="#000000"/>
<rect x="21" y="23" width="1" height="1" fill="#000000"/>
<rect x="0" y="24" width="1" height="1" fill="#000000"/>
<rect x="1" y="24" width="1" height="1" fill="#000000"/>
<rect x="2" y="24" width="1" height="1" fill="#000000"/>
<rect x="3" y="24" width="1" height="1" fill="#000000"/>
<rect x="4" y="24" width="1" height="1" fill="#000000"/>
<rect x="5" y="24" width="1" height="1" fill="#000000"/>
<rect x="6" y="24" width="1" height="1" fill="#000000"/>
<rect x="8" y="24" width="1" height="1" fill="#000000"/>
<rect x="9" y="24" width="1" height="1" fill="#000000"/>
<rect x="10" y="24" width="1" height="1" fill="#000000"/>
<rect x="12" y="24" width="1" height="1" fill="#000000"/>
<rect x="15" y="24" width="1" height="1" fill="#000000"/>
<rect x="16" y="24" width="1" height="1" fill="#000000"/>
<rect x="17" y="24" width="1" height="1" fill="#000000"/>
<rect x="19" y="24" width="1" height="1" fill="#000000"/>
<rect x="23" y="24" width="1" height="1" fill="#000000"/>
<rect x="24" y="24" width="1" height="1" fill="#000000"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -1,28 +1,256 @@
start_pwndbg print previous_neighbors
break test print current_neighbors
print previous_neighbors
print previous_neighbors
print source_dir
c c
start print previous_neighbors
print bitarray print current_bord_i
print prev_bord_i
quit
b 249
c
print visited_border
quit
c
print visted_border
print visited_border
context context
next context
nexti print previous_neighbors
print bitarray print bord_i
print current_bord_i
print prev_bord_i
quit
print prev_bord_i
print current_bord_i
next
print current_bord_i
next
print nei_dir
next
print nei_dir
next
print current_neighbors
next
print nei_dir
next
next
print nei_i
print current_neighbors
print current_bord_i
print get_neighbor_index(current_bord_i, nei_i)
print nei_i
quit quit
start_pwndbg
break test
c c
r c
next c
print bitarray c
next c
print bitarray c
c
c
quit
quit
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
quit
c
c
quit
c
print current_board_i
print current_bord_i
next
print current_bord_i
print current_neighbors
next
print nei_dir
print current_neighbors
print nei_dir
next
next
print i
print nei_dir
next
print current_neighbors
next
print nei_dir
next
print i
print nei_dir
print nei_dir
print nei_dir
print get_neighbor_coord(current_bord_cord, nei_dir, scale)
print current_bord_cord
print nei_dir
quit
c
c
c
c
quit
c
quit
c
quit
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
quit
c
quit
c
quit
c
print RES_X
quit
c
print current_board_i
print current_bord_i
print current_bord_i
next
next
print nei_dir
next
print previous_neighbors
print source_dir
print source_dir
print prevbord_i
print prev_bord_i
print current_neighbors
quit
c
quit
c
quit
c
quit
c
quit
cc
c
quit
quit
quit
c
c
c
quit
quit
b BORDER_START
d 7
f 7
b BORDER_START
b main:BORDER_START
b mandelbrot_bordertrace:BORDER_START
quit
c
quit
quit
c
b 327 if current_bord_i == 2012
quit
c
print nei_dir
quit
c
c
quit
c
print current_bord_i
print prev_bord_i
c
print prev_bord_i
quit quit
start_pwndbg
start
break test
c c
next next
print bitarray print get_neighbor_coord
print nei_dir
next next
print bitarray print current_bord_cord
exit next
print current_bord_cord
next
print prev_bord_i
next
print current_bord_i
print prev_bord_i
next
print current_bord_i
next
print filled_neighbors
print filled_neighbors
quit
c
c
qu8it
quit
c
quit
c
quit
context
f 4
f 3
f 5
f 6
f 5
f 4
f 3
context
f 2
context
f 3
context
f 2
quit
b main.c:222
c
next
f 1
quit
print nei_i
print this_index
print RES_X
print nei_dir
get_neighbor_index(this_index, nei_dir)
print get_neighbor_index(this_index, nei_dir)
print this_index
pirnt on_pixel
print on_pixel
quit

View File

@ -0,0 +1,427 @@
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <raylib.h>
#include <raymath.h>
#include <limits.h>
#include <complex.h>
#include <string.h>
#define WINDOW_SIZE_X 1600
#define WINDOW_SIZE_Y 800
#define RES_X 1600
#define RES_Y 800
#define DEFAULT_CENTER_X 0
#define DEFAULT_CENTER_Y 0
#define MOUSE_BUTTON 0
#define STEP_SIZE .1
#define ZOOM_SIZE .1
#define DECIMAL_LOC 28
#define DOUBLE_SCALER (1 << DECIMAL_LOC)
#define DOUBLE_TO_FIXED(val) (int32_t)((val) * DOUBLE_SCALER)
#define FIXED_MULTIPLY(x,y) ((((uint64_t)(x))*(y)) >> DECIMAL_LOC)
#define FIXED_TO_DOUBLE(val) ((val) / (double)DOUBLE_SCALER)
#define INFTY 2
#define INFTY_SQR INFTY * INFTY
#define ITERS 255
#define INFTY_SQR_FIXED DOUBLE_TO_FIXED(INFTY_SQR)
//#define SHIP
//#undef SHIP
#ifdef SHIP
Color get_color(int i) {
if(i == ITERS) return (Color){0, 0, 0, 255};
if(i == 0) return (Color){0, 0, 0, 255};
return (Color) {
2*(i - 128)+255,
0,
0,
255
};
}
#else
Color get_color(int i) {
// if((i == ITERS) || (i == 0)) return (Color){0, 0, 0, 255};
if(i == ITERS) return (Color){0,0,0,255};
if(i == 0) return (Color){0, 0, 0, 255};
if(i < 128) {
return (Color) {
(8*(i - 128)+255) & 0xff,
0,
(16*(i - 64)+255) & 0xff,
255
};
}
return (Color) {
0,
0,
((unsigned int)-2*(i - 128)+255) & 0xff,
255
};
}
#endif
struct camera {
double min_r, min_i, max_r, max_i;
};
typedef struct {
int32_t r; int32_t i;
} FixedCord;
static inline int iterate(FixedCord c) {
int32_t z_i = 0;
int32_t z_r = 0;
int32_t z_r_2, z_i_2, zn_r, zn_i;
for(int it = 0; it < ITERS; it++) {
z_r_2 = FIXED_MULTIPLY(z_r, z_r);
z_i_2 = FIXED_MULTIPLY(z_i, z_i);
zn_r = z_r_2 - z_i_2 + c.r;
#ifdef SHIP
zn_i = abs(FIXED_MULTIPLY((DOUBLE_TO_FIXED(2)), (FIXED_MULTIPLY(z_r, z_i)))) + c.i;
#else
zn_i = (FIXED_MULTIPLY((DOUBLE_TO_FIXED(2)), (FIXED_MULTIPLY(z_r, z_i)))) + c.i;
#endif
z_i = zn_i;
z_r = zn_r;
if(z_i_2 + z_r_2 > INFTY_SQR_FIXED) return it;
}
return ITERS;
}
//blllluuuuurg, matracies and vectors in raylib are floats and we need doubles
void shift_cam(struct camera *cam, double step_r, double step_i) {
double i_offset = (cam->max_i - cam->min_i) * step_i;
double r_offset = (cam->max_r - cam->min_r) * step_r;
cam->min_i += i_offset;
cam->max_i += i_offset;
cam->min_r += r_offset;
cam->max_r += r_offset;
}
void zoom_cam(struct camera *cam, double zoom) {
double i_scale = (cam->max_i - cam->min_i) * zoom;
double r_scale = (cam->max_r - cam->min_r) * zoom;
cam->min_i += i_scale;
cam->max_i -= i_scale;
cam->min_r += r_scale;
cam->max_r -= r_scale;
}
enum DIRECTIONS {
N, NE, E, SE, S, SW, W, NW
};
//we can inline these if needed
inline bool bitarray_check(uint8_t *array, size_t i) {
return array[i/8] & (1 << (i%8));
}
inline void bitarray_set(uint8_t *array, size_t i) {
array[i/8] |= (1 << (i%8));
}
inline FixedCord get_neighbor_coord(FixedCord from_coord, int direction, FixedCord step) {
if((direction == NW) || (direction < E)) from_coord.i += step.i;
if((direction > N) && (direction < S)) from_coord.r += step.r;
if((direction > E) && (direction < W)) from_coord.i -= step.i;
if(direction > S) from_coord.r -= step.r;
return from_coord;
}
FixedCord get_neighbor_coord(FixedCord from_coord, int direction, FixedCord step);
size_t get_neighbor_index(size_t from_pixel, int direction) {
const size_t neighbor_index_accl[8] =
{-RES_X, -RES_X + 1, 1, RES_X + 1, RES_X, RES_X - 1, -1, -RES_X - 1};
from_pixel += neighbor_index_accl[direction];
//canidate for optimization; lots of branches. maybe inline
return from_pixel;
}
bool bitarray_check(uint8_t *array, size_t i);
void bitarray_set(uint8_t *array, size_t i);
#define BITARRAY_SET(array, i) ((array)[(i)/8] |= (1 << ((i) % 8)))
#define BITARRAY_CLEAR(array, i) ((array)[(i)/8] &= ~(1 << ((i) % 8)))
#define BITARRAY_CHECK(array, i) ((array)[(i)/8] & (1 << ((i) % 8)))
//a lot of these are just so I can keep track of my cases while I program this, simplification will happen later
enum CANIDATE_STATUS {
UNSOLVED = 0,
M_ELEMENT,
M_EXTERIOR,
M_INTERIOR,
M_VISITED, //part of the curve we've been drawing
M_SKETCHY_SUSPENSION_ROPE_BRIDGE_TYPE_SHIT
};
unsigned int mandelbrot_bordertrace(struct camera *cam, Color *pixels) {
//these lookup tables r cheap cuz on the stm32f1, 1 memory read is 1 instruction
FixedCord scale = {
.r = DOUBLE_TO_FIXED((cam->max_r - cam->min_r) / (double)RES_X),
.i = DOUBLE_TO_FIXED((cam->max_i - cam->min_i) / (double)RES_Y)};
FixedCord c = {.r = 0, .i = DOUBLE_TO_FIXED(cam->max_i)};
unsigned int total_iters = 0;
size_t on_pixel = 0;
uint8_t border[(RES_X*RES_Y)/8] = {0};
//having these r kinda gross, will restructure later
int32_t cam_bord_fixed_n = DOUBLE_TO_FIXED(cam->min_i);
int32_t cam_bord_fixed_s = DOUBLE_TO_FIXED(cam->max_i);
int32_t cam_bord_fixed_e = DOUBLE_TO_FIXED(cam->max_r);
int32_t cam_bord_fixed_w = DOUBLE_TO_FIXED(cam->min_r);
/**
//for keeping track of border only. will organize later
uint8_t set[(160*80)/8] = {0};
uint8_t unset[(160*80)/8] = {0};
**/
for(int y = 0; y < RES_Y; y++) {
c.r = DOUBLE_TO_FIXED(cam->min_r);
for(int x = 0; x < RES_X; x++) {
uint8_t border_bit = BITARRAY_CHECK(border, on_pixel);
int i = iterate(c);
total_iters += i;
pixels[on_pixel] = get_color(i);
const Color debug_colors[] =
{ (Color) {0xff, 0x00, 0x00, 0xff},
(Color) {0xff, 0x00, 0xff, 0xff},
(Color) {0x00, 0xff, 0x00, 0xff},
(Color) {0x00, 0x00, 0xff, 0xff},
(Color) {0x6a, 0x00, 0xff, 0xff}
};
static int on_dbg_color = 0;
//this is where it all begins
uint8_t rendered[(RES_X*RES_Y)/8] = {0};
uint8_t deadend[(RES_X*RES_Y)/8] = {0};
if(i == ITERS) {
BORDER_START:
__attribute__((unused));
//just makes getting index of neigbor easier; doesn't cost extra cycles
FixedCord starting_bord_cord = c;
FixedCord current_bord_cord = c;
FixedCord last_bord_cord;
int previous_neighbors[8] = {UNSOLVED};
int current_neighbors[8] = {UNSOLVED};
current_neighbors[W] = UNSOLVED;
size_t current_bord_i = on_pixel;
uint8_t visited_border[(RES_X*RES_Y)/8] = {0};
int source_dir = 0;
size_t prev_bord_i = 0;
while(true) {
int filled_neighbors = 0;
//find if we're pushed against screen border.
//find a less gross way to do this
if((current_bord_cord.i - scale.i) < cam_bord_fixed_n) {
for(int nei_dir = SE; nei_dir <= SW; nei_dir++)
current_neighbors[nei_dir] = M_EXTERIOR;
}
if((current_bord_cord.i + scale.i) > cam_bord_fixed_s) {
current_neighbors[NE] = M_EXTERIOR;
current_neighbors[N] = M_EXTERIOR;
current_neighbors[NW] = M_EXTERIOR;
}
if((current_bord_cord.r - scale.r) < cam_bord_fixed_w) {
for(int nei_dir = SW; nei_dir < NW; nei_dir++)
current_neighbors[nei_dir] = M_EXTERIOR;
}
if((current_bord_cord.r + scale.r) > cam_bord_fixed_e) {
for(int nei_dir = NE; nei_dir < SE; nei_dir++)
current_neighbors[nei_dir] = M_EXTERIOR;
}
//get info on neighbors, fill in missing current_neighbors info
for(int nei_dir = 0; nei_dir < 8; nei_dir++) {
size_t nei_i = get_neighbor_index(current_bord_i, nei_dir);
if(current_neighbors[nei_dir] == M_EXTERIOR) continue;
if(current_neighbors[nei_dir] != UNSOLVED) {
filled_neighbors++;
continue;
}
if(current_neighbors[nei_dir] == M_VISITED) continue;
if(BITARRAY_CHECK(visited_border, nei_i)) {
current_neighbors[nei_dir] = M_VISITED;
filled_neighbors++;
continue;
}
int i = iterate(get_neighbor_coord(current_bord_cord, nei_dir, scale));
total_iters += i;
if(i == ITERS) {
current_neighbors[nei_dir] = M_ELEMENT;
filled_neighbors++;
continue;
}
current_neighbors[nei_dir] = M_EXTERIOR;
}
if(filled_neighbors >= 8) {
memcpy(current_neighbors, previous_neighbors, sizeof(current_neighbors));
current_bord_cord = last_bord_cord;
current_bord_i = prev_bord_i;
current_neighbors[source_dir] = M_INTERIOR;
}
BeginDrawing();
DrawPixel(current_bord_i % RES_X, current_bord_i / RES_X, debug_colors[on_dbg_color]);
EndDrawing();
int nei_dir;
memcpy(previous_neighbors, current_neighbors, sizeof(current_neighbors));
memset(current_neighbors, 0, sizeof(current_neighbors));
for(nei_dir = 0; nei_dir < 8; nei_dir++) {
//found a valid neighbor to switch to
if(previous_neighbors[nei_dir] == M_ELEMENT) {
BITARRAY_SET(visited_border, current_bord_i);
current_neighbors[(nei_dir + 4) % 8] = M_VISITED;
if(nei_dir % 2) { //diagnals
current_neighbors[(nei_dir + 3) % 8] = previous_neighbors[(nei_dir + 1) % 8];
current_neighbors[(nei_dir + 5) % 8] = previous_neighbors[(nei_dir - 1) % 8];
}
else {
current_neighbors[(nei_dir + 2) % 8] = previous_neighbors[(nei_dir + 1) % 8];
current_neighbors[(nei_dir + 3) % 8] = previous_neighbors[(nei_dir + 2) % 8];
current_neighbors[(nei_dir + 5) % 8] = previous_neighbors[(nei_dir - 2) % 8];
current_neighbors[(nei_dir + 6) % 8] = previous_neighbors[(nei_dir - 1) % 8];
}
last_bord_cord = current_bord_cord;
current_bord_cord = get_neighbor_coord(current_bord_cord, nei_dir, scale);
prev_bord_i = current_bord_i;
current_bord_i = get_neighbor_index(current_bord_i, nei_dir);
source_dir = nei_dir;
break;
}
}
if(!memcmp(&current_bord_cord, &starting_bord_cord, sizeof(current_bord_cord))) {
for(size_t bord_i = 0; bord_i < sizeof(border); bord_i++){
border[bord_i] |= visited_border[bord_i];
break;
}
}
printf("%zu: ", prev_bord_i);
printf("(%zu, %zu) -> (%zu, %zu) | {", prev_bord_i % RES_X, prev_bord_i / RES_X, current_bord_i % RES_X, current_bord_i / RES_X);
for(int i = 0; i < 8; i++) printf("%i, ", previous_neighbors[i]);
printf("} -> {");
for(int i = 0; i < 8; i++) printf("%i, ", current_neighbors[i]);
printf("}\n");
if(nei_dir > 7) break;
//printf("loop\n");
}
on_dbg_color = (on_dbg_color + 1) % (sizeof(debug_colors) / sizeof(*debug_colors));
}
on_pixel++;
c.r += scale.r;
}
c.i -= scale.i;
}
return total_iters;
}
unsigned int mandelbrot_unoptimized(struct camera *cam, Color *pixels) {
FixedCord scale = { .r = DOUBLE_TO_FIXED((cam->max_r - cam->min_r) / (double)RES_X), .i = DOUBLE_TO_FIXED((cam->max_i - cam->min_i) / (double)RES_Y) };
FixedCord c = { .r = 0, .i = DOUBLE_TO_FIXED(cam->max_i) };
unsigned int total_iters = 0;
for(int y = 0; y < RES_Y; y++) {
c.r = DOUBLE_TO_FIXED(cam->min_r);
for(int x = 0; x < RES_X; x++) {
int i = iterate(c);
total_iters += i;
pixels[((y * RES_X) + x)] = get_color(i);
c.r += scale.r;
}
c.i -= scale.i;
}
return total_iters;
}
void test() {
uint8_t bitarray[(160*80)/8] = {0};
int test_i = 9;
BITARRAY_SET(bitarray, test_i);
printf("%s\n", BITARRAY_CHECK(bitarray, 9) ? "true" : "false");
}
int main() {
//test();
//return 0;
Color *pixels = malloc(RES_X * RES_Y * sizeof(Color));
struct camera cam = {
.min_r = -1,
.max_r = 1,
// .min_i = -1,
// .max_i = 1
};
cam.min_i = ((double)RES_Y / RES_X) * cam.min_r;
cam.max_i = ((double)RES_Y / RES_X) * cam.max_r;
InitWindow(WINDOW_SIZE_X, WINDOW_SIZE_Y, "mandelbrot fixed point test");
Image img = GenImageColor(RES_X, RES_Y, BLUE);
Texture tex = LoadTextureFromImage(img);
UnloadImage(img);
SetTargetFPS(0);
while(!WindowShouldClose()) {
switch(GetKeyPressed()) {
case KEY_UP:
shift_cam(&cam, 0, STEP_SIZE);
break;
case KEY_DOWN:
shift_cam(&cam, 0, -STEP_SIZE);
break;
case KEY_RIGHT:
shift_cam(&cam, STEP_SIZE, 0);
break;
case KEY_LEFT:
shift_cam(&cam, -STEP_SIZE, 0);
break;
case KEY_W:
zoom_cam(&cam, ZOOM_SIZE);
break;
case KEY_S:
zoom_cam(&cam, -ZOOM_SIZE);
break;
default:
BeginDrawing();
EndDrawing();
continue;
break;
}
printf("(%.21f, %.21f) - (%.21f, %.21f)\n", cam.min_r, cam.min_i, cam.max_r, cam.max_i);
printf("Unoptimized: %u iterations\n", mandelbrot_unoptimized(&cam, pixels));
printf("Border tracing: %u iterations\n", mandelbrot_bordertrace(&cam, pixels));
BeginDrawing();
UpdateTexture(tex, pixels);
DrawTextureEx(tex, (Vector2){0,0}, 0, (float)GetRenderWidth()/RES_X, WHITE);
EndDrawing();
}
return 0;
}

View File

@ -5,6 +5,7 @@
#include <raymath.h> #include <raymath.h>
#include <limits.h> #include <limits.h>
#include <complex.h> #include <complex.h>
#include <string.h>
#define WINDOW_SIZE_X 1600 #define WINDOW_SIZE_X 1600
#define WINDOW_SIZE_Y 800 #define WINDOW_SIZE_Y 800
@ -28,7 +29,7 @@
#define ITERS 255 #define ITERS 255
#define INFTY_SQR_FIXED DOUBLE_TO_FIXED(INFTY_SQR) #define INFTY_SQR_FIXED DOUBLE_TO_FIXED(INFTY_SQR)
#define SHIP //#define SHIP
//#undef SHIP //#undef SHIP
#ifdef SHIP #ifdef SHIP
@ -45,8 +46,8 @@ Color get_color(int i) {
#else #else
Color get_color(int i) { Color get_color(int i) {
// if((i == ITERS) || (i == 0)) return (Color){0, 0, 0, 255}; // if((i == ITERS) || (i == 0)) return (Color){0, 0, 0, 255};
if(i == ITERS) return (Color){0,255,0,255}; if(i == ITERS) return (Color){0,0,0,255};
if(i == 0) return (Color){0, 0, 0, 255}; if(i == 0) return (Color){0,0,1,255};
if(i < 128) { if(i < 128) {
return (Color) { return (Color) {
(8*(i - 128)+255) & 0xff, (8*(i - 128)+255) & 0xff,
@ -69,15 +70,11 @@ struct camera {
double min_r, min_i, max_r, max_i; double min_r, min_i, max_r, max_i;
}; };
struct vec2_double { typedef struct {
double x, y; int32_t r; int32_t i;
}; } FixedCord;
struct vec2_float { static inline int iterate(FixedCord c) {
int32_t x, y;
};
static inline int iterate(int32_t r, int32_t i) {
int32_t z_i = 0; int32_t z_i = 0;
int32_t z_r = 0; int32_t z_r = 0;
int32_t z_r_2, z_i_2, zn_r, zn_i; int32_t z_r_2, z_i_2, zn_r, zn_i;
@ -85,12 +82,12 @@ static inline int iterate(int32_t r, int32_t i) {
z_r_2 = FIXED_MULTIPLY(z_r, z_r); z_r_2 = FIXED_MULTIPLY(z_r, z_r);
z_i_2 = FIXED_MULTIPLY(z_i, z_i); z_i_2 = FIXED_MULTIPLY(z_i, z_i);
zn_r = z_r_2 - z_i_2 + r; zn_r = z_r_2 - z_i_2 + c.r;
#ifdef SHIP #ifdef SHIP
zn_i = abs(FIXED_MULTIPLY((DOUBLE_TO_FIXED(2)), (FIXED_MULTIPLY(z_r, z_i)))) + i; zn_i = abs(FIXED_MULTIPLY((DOUBLE_TO_FIXED(2)), (FIXED_MULTIPLY(z_r, z_i)))) + c.i;
#else #else
zn_i = (FIXED_MULTIPLY((DOUBLE_TO_FIXED(2)), (FIXED_MULTIPLY(z_r, z_i)))) + i; zn_i = (FIXED_MULTIPLY((DOUBLE_TO_FIXED(2)), (FIXED_MULTIPLY(z_r, z_i)))) + c.i;
#endif #endif
z_i = zn_i; z_i = zn_i;
@ -124,9 +121,6 @@ enum DIRECTIONS {
N, NE, E, SE, S, SW, W, NW N, NE, E, SE, S, SW, W, NW
}; };
typedef struct {
double x; double y;
} coordinate;
//we can inline these if needed //we can inline these if needed
@ -138,100 +132,252 @@ inline void bitarray_set(uint8_t *array, size_t i) {
array[i/8] |= (1 << (i%8)); array[i/8] |= (1 << (i%8));
} }
/** inline FixedCord get_neighbor_coord(FixedCord from_coord, int direction, FixedCord step) {
inline coordinate get_neighbor_coord(coordinate from_coord, int direction, coordinate step) { if((direction == NW) || (direction < E)) from_coord.i += step.i;
if((direction == NW) && (direction < E)) from_coord.x += ; if((direction > N) && (direction < S)) from_coord.r += step.r;
if((direction > N) && (direction < S)) from_coord += 1; if((direction > E) && (direction < W)) from_coord.i -= step.i;
if((direction > E) && (direction < W)) from_coord += RES_X; if(direction > S) from_coord.r -= step.r;
if(direction > S) from_coord -= 1;
return from_coord; return from_coord;
} }
**/ FixedCord get_neighbor_coord(FixedCord from_coord, int direction, FixedCord step);
size_t get_neighbor_index(size_t from_pixel, int direction) { size_t get_neighbor_index(size_t from_pixel, int direction) {
const size_t neighbor_index_accl[8] =
{-RES_X, -RES_X + 1, 1, RES_X + 1, RES_X, RES_X - 1, -1, -RES_X - 1};
from_pixel += neighbor_index_accl[direction];
//canidate for optimization; lots of branches. maybe inline //canidate for optimization; lots of branches. maybe inline
if((direction == NW) && (direction < E)) from_pixel -= RES_X;
if((direction > N) && (direction < S)) from_pixel += 1;
if((direction > E) && (direction < W)) from_pixel += RES_X;
if(direction > S) from_pixel -= 1;
return from_pixel; return from_pixel;
} }
bool bitarray_check(uint8_t *array, size_t i); bool bitarray_check(uint8_t *array, size_t i);
void bitarray_set(uint8_t *array, size_t i); void bitarray_set(uint8_t *array, size_t i);
#define BITARRAY_SET(array, i) ((array)[(i)/8] |= (1 << ((i) % 8))) #define BITARRAY_SET(array, i) ((array)[(i)/8] |= (1 << ((i) % 8)))
#define BITARRAY_CLEAR(array, i) ((array)[(i)/8] &= ~(1 << ((i) % 8)))
#define BITARRAY_CHECK(array, i) ((array)[(i)/8] & (1 << ((i) % 8))) #define BITARRAY_CHECK(array, i) ((array)[(i)/8] & (1 << ((i) % 8)))
#define PRESORT_UNSOLVED (1 << 0)
#define PRESORT_VISITED (1 << VISITED)
//#define PRESORT_INTERIOR (1 << INTERIOR) //in set, NOT an edge
//#define PRESORT_BACKTRACKED (1 << BACKTRACED)
//#define PRESORT_EXTERIOR (1 <<
//we'll be storing info in the green channel to utalize all available memory.
//the following is bitmasks to do so
#define GCHAN_RENDERED (1 << 0)
#define GCHAN_VISITED (1 << 1)
#define GCHAN_BLOCKED (1 << 2) //interior element or backtrack
#define GCHAN_DEBUG (1 << 3) //extra, not nessesary
/** /**
enum CANIDATE_STATUS { void switch_pixel(coord &this_coord, const coord step, size_t this_index, int dir) {
UNSOLVED = 0,
CANIDATE, }
NONCANIDATE **/
};
**/
unsigned int mandelbrot_bordertrace(struct camera *cam, Color *pixels) { unsigned int mandelbrot_bordertrace(struct camera *cam, Color *pixels) {
//these lookup tables r cheap cuz on the stm32f1, 1 memory read is 1 instruction //these lookup tables r cheap cuz on the stm32f1, 1 memory read is 1 instruction
const size_t neighbor_index_accl[8] = {-RES_X, -RES_X + 1, 1, RES_X + 1, RES_X, RES_X - 1, -1, -RES_X - 1}; FixedCord scale = {
int32_t scale_i = DOUBLE_TO_FIXED((cam->max_i - cam->min_i) / (double)RES_Y); .r = DOUBLE_TO_FIXED((cam->max_r - cam->min_r) / (double)RES_X),
int32_t scale_r = DOUBLE_TO_FIXED((cam->max_r - cam->min_r) / (double)RES_X); .i = DOUBLE_TO_FIXED((cam->max_i - cam->min_i) / (double)RES_Y)};
int32_t c_i = DOUBLE_TO_FIXED(cam->max_i); FixedCord c = {.r = 0, .i = DOUBLE_TO_FIXED(cam->max_i)};
int32_t c_r;
unsigned int total_iters = 0; unsigned int total_iters = 0;
size_t on_pixel = 0; size_t on_pixel = 0;
uint8_t border[(160*80)/8] = {0};
//having these r kinda gross, will restructure later
int32_t cam_bord_fixed_n = DOUBLE_TO_FIXED(cam->min_i);
int32_t cam_bord_fixed_s = DOUBLE_TO_FIXED(cam->max_i);
int32_t cam_bord_fixed_e = DOUBLE_TO_FIXED(cam->max_r);
int32_t cam_bord_fixed_w = DOUBLE_TO_FIXED(cam->min_r);
/**
//for keeping track of border only. will organize later //for keeping track of border only. will organize later
uint8_t set[(160*80)/8] = {0}; uint8_t set[(160*80)/8] = {0};
uint8_t unset[(160*80)/8] = {0}; uint8_t unset[(160*80)/8] = {0};
**/
for(int y = 0; y < RES_Y; y++) { for(int y = 0; y < RES_Y; y++) {
c_r = DOUBLE_TO_FIXED(cam->min_r); c.r = DOUBLE_TO_FIXED(cam->min_r);
for(int x = 0; x < RES_X; x++) { for(int x = 0; x < RES_X; x++) {
int i = iterate(c_r, c_i); int i = iterate(c);
total_iters += i; total_iters += i;
pixels[((y * RES_X) + x)] = get_color(i); pixels[on_pixel] = get_color(i);
/**
const Color debug_colors[] =
{ (Color) {0xff, 0x00, 0x00, 0xff},
(Color) {0xff, 0x00, 0xff, 0xff},
(Color) {0x00, 0xff, 0x00, 0xff},
(Color) {0x00, 0x00, 0xff, 0xff},
(Color) {0x6a, 0x00, 0xff, 0xff}
};
static int on_dbg_color = 0;
**/
//this is where it all begins
if(i == ITERS) { if(i == ITERS) {
int current_border_pixel = on_pixel; FixedCord this_coord = c;
uint8_t visited_border[(160*80)/8] = {0}; size_t this_index = on_pixel;
int filled_neighbors = 0; int nei_priority[8];
//unroll and manually get_neighbor if this is too slow int last_nei_priority[8];
for(int nei_dir = 0; nei_dir < 8; nei_dir++) { //only really need to zero green channel
size_t nei_i = current_border_pixel + neighbor_index_accl[nei_dir]; bzero(pixels, RES_X * RES_Y * sizeof(*pixels));
if(bitarray_check(set, nei_i)) { int last_direction = W;
filled_neighbors++; int nei_presort[8] = {0};
continue;
//this is so fucking knarly
while(true) {
//step 1: check pixels around us, fill in neighbors.
//find if we're pushed against screen border.
//feels gross but I don't think there's a better way
if((this_coord.i - scale.i) < cam_bord_fixed_n) {
for(int nei_dir = SE; nei_dir <= SW; nei_dir++)
nei_presort[nei_dir] = GCHAN_BLOCKED;
} }
if(bitarray_check(unset, nei_i)) continue; else if((this_coord.i + scale.i) > cam_bord_fixed_s) {
nei_presort[NE] = GCHAN_BLOCKED;
nei_presort[N] = GCHAN_BLOCKED;
nei_presort[NW] = GCHAN_BLOCKED;
}
if((this_coord.r - scale.r) < cam_bord_fixed_w) {
for(int nei_dir = SW; nei_dir < NW; nei_dir++)
nei_presort[nei_dir] = GCHAN_BLOCKED;
}
else if((this_coord.r + scale.r) > cam_bord_fixed_e) {
for(int nei_dir = NE; nei_dir < SE; nei_dir++)
nei_presort[nei_dir] = GCHAN_BLOCKED;
}
/** now fill in neighbor info based on green channel,
* iterate if no info available.
* if this is to slow we could flatten this; it's predictable
* where there will be info
**/
//if this is too slow, get rid of all the modulos.
bool interior = true;
for(int nei_dir = 0; nei_dir < 8; nei_dir++) {
size_t nei_i;
uint8_t gchan_info;
nei_i = get_neighbor_index(this_index, nei_dir);
gchan_info = pixels[this_index].g;
//note that when we move this over, there will be no alpha channel.
//gchan_info will be extracted differently!!!
if(gchan_info & GCHAN_RENDERED) {
gchan_info &= ~(GCHAN_RENDERED);
gchan_info ^= GCHAN_BLOCKED << 1;
nei_presort[nei_i] = gchan_info;
if(!gchan_info) interior = false;
/**
if(gchan_info & GCHAN_BLOCKED) nei_presort[nei_dir] = -1;
else if(gchan_info & GCHAN_VISITED) nei_priority[nei_dir] = 12;
else if((pixels[nei_i].r | pixels[nei_i].b) == 0) //unvisited element
nei_priority[nei_dir] = 9;
else { //exterior
interior = false;
nei_priority[nei_dir] = -1;
}
**/
}
else {
int i = iterate(get_neighbor_coord(this_coord, nei_dir, scale));
pixels[nei_i] = get_color(i);
pixels[nei_i].g |= GCHAN_RENDERED;
if(i == ITERS) continue;
interior = false;
}
//TODO if interior true
/**
if((nei_priority[nei_dir] == 6) && (nei_i > 0)) {
if(last_nei_unvisited) {
nei_priority[nei_dir] = 3;
nei_priority[nei_dir-1] = 3;
}
else if(nei_priority[nei_dir-1] == 12)
nei_priority[nei_dir-1] = 6;
LAST_nei_unvisited = true;
}
else last_nei_unvisited = false;
**/
}
if(interior) {
memcpy(last_nei_priority, nei_priority, sizeof(nei_priority));
pixels[this_index].g |= GCHAN_BLOCKED;
this_index = get_neighbor_index(this_index, (last_direction + 4) % 8);
this_coord = get_neighbor_coord(
this_coord, (last_direction + 4) % 8, scale);
} }
//if c_d == 7 go back else {
for(int nei_dir = 0; nei_dir < 8; nei_dir++) {
int offset_cw = (last_direction - nei_dir) % 8;
int offset_ccw = (nei_dir - last_direction) % 8;
int forward_offset;
switch(nei_presort[nei_dir]) {
case GCHAN_VISITED:
nei_priority[nei_dir] = 12;
break;
case GCHAN_BLOCKED:
nei_priority[nei_dir] = -1;
break;
default: //unvisited element
if((nei_presort[(nei_dir - 1) % 8] == 0) ||
(nei_presort[(nei_dir + 1) % 8] == 0)) {
nei_priority[nei_dir] = 3;
break;
}
if((nei_presort[(nei_dir - 1) % 8] == GCHAN_VISITED) ||
(nei_presort[(nei_dir + 1) % 8] == GCHAN_VISITED)) {
nei_priority[nei_dir] = 6;
break;
}
nei_priority[nei_dir] = 9;
break;
}
forward_offset = (offset_cw < offset_ccw) ? offset_cw : offset_ccw;
if(forward_offset < 3) nei_priority[nei_dir] -= (3-forward_offset);
}
}
for(int priority = 0; priority < 12; priority++) {
for(int nei_dir = 0; nei_dir < 8; nei_dir++) {
if(nei_priority[nei_dir] != priority) continue;
//switch pixels!!!!1!!
memcpy(last_nei_priority, nei_priority, sizeof(nei_priority));
last_direction = nei_dir;
this_index = get_neighbor_index(this_index, nei_dir);
this_coord = get_neighbor_coord(this_coord, nei_dir, scale);
goto drunkaloneandunemployed;
}
}
drunkaloneandunemployed:
} }
c_r += scale_r;
} }
on_pixel++; on_pixel++;
c_i -= scale_i; c.r += scale.r;
}
c.i -= scale.i;
} }
return total_iters; return total_iters;
} }
unsigned int mandelbrot_unoptimized(struct camera *cam, Color *pixels) { unsigned int mandelbrot_unoptimized(struct camera *cam, Color *pixels) {
int32_t scale_i = DOUBLE_TO_FIXED((cam->max_i - cam->min_i) / (double)RES_Y); FixedCord scale = { .r = DOUBLE_TO_FIXED((cam->max_r - cam->min_r) / (double)RES_X), .i = DOUBLE_TO_FIXED((cam->max_i - cam->min_i) / (double)RES_Y) };
int32_t scale_r = DOUBLE_TO_FIXED((cam->max_r - cam->min_r) / (double)RES_X); FixedCord c = { .r = 0, .i = DOUBLE_TO_FIXED(cam->max_i) };
int32_t c_i = DOUBLE_TO_FIXED(cam->max_i);
int32_t c_r;
unsigned int total_iters = 0; unsigned int total_iters = 0;
for(int y = 0; y < RES_Y; y++) { for(int y = 0; y < RES_Y; y++) {
c_r = DOUBLE_TO_FIXED(cam->min_r); c.r = DOUBLE_TO_FIXED(cam->min_r);
for(int x = 0; x < RES_X; x++) { for(int x = 0; x < RES_X; x++) {
int i = iterate(c_r, c_i); int i = iterate(c);
total_iters += i; total_iters += i;
pixels[((y * RES_X) + x)] = get_color(i); pixels[((y * RES_X) + x)] = get_color(i);
c_r += scale_r; c.r += scale.r;
} }
c_i -= scale_i; c.i -= scale.i;
} }
return total_iters; return total_iters;
} }
@ -244,8 +390,8 @@ void test() {
} }
int main() { int main() {
test(); //test();
return 0; //return 0;
Color *pixels = malloc(RES_X * RES_Y * sizeof(Color)); Color *pixels = malloc(RES_X * RES_Y * sizeof(Color));
struct camera cam = { struct camera cam = {
.min_r = -1, .min_r = -1,
@ -261,7 +407,7 @@ int main() {
Texture tex = LoadTextureFromImage(img); Texture tex = LoadTextureFromImage(img);
UnloadImage(img); UnloadImage(img);
SetTargetFPS(10); SetTargetFPS(0);
while(!WindowShouldClose()) { while(!WindowShouldClose()) {
@ -293,7 +439,7 @@ int main() {
printf("(%.21f, %.21f) - (%.21f, %.21f)\n", cam.min_r, cam.min_i, cam.max_r, cam.max_i); printf("(%.21f, %.21f) - (%.21f, %.21f)\n", cam.min_r, cam.min_i, cam.max_r, cam.max_i);
printf("Unoptimized: %u iterations\n", mandelbrot_unoptimized(&cam, pixels)); printf("Unoptimized: %u iterations\n", mandelbrot_unoptimized(&cam, pixels));
//printf("Border tracing: %u iterations\n", mandelbrot_unoptimized(cam, pixels); printf("Border tracing: %u iterations\n", mandelbrot_bordertrace(&cam, pixels));
BeginDrawing(); BeginDrawing();
UpdateTexture(tex, pixels); UpdateTexture(tex, pixels);

View File

@ -1,6 +1,7 @@
.default: make .default: make
make: make:
gcc main.c -O0 -o mandelbrot -lraylib -lm -Wall -ggdb gcc main.c -O0 -o mandelbrot -lraylib -lm -Wall -ggdb
#gcc main.c -Ofast -o mandelbrot -lraylib -lm -Wall -ggdb
clean: clean:
rm -f mandelbrot rm -f mandelbrot

Binary file not shown.

View File

@ -0,0 +1,10 @@
file ./mandelbrot
start_pwndbg
#b 301
b mandelbrot_bordertrace:BORDER_START
#b 327 if current_bord_i == 2012
#commands
#commands
#watch current_bord_i if current_bord_i == (412 + (1 * 1600))
#end
run

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,561 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:06:35-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Soldermask,Bot*%
%TF.FilePolarity,Negative*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:06:35*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.200000*%
%ADD11O,1.304000X1.904000*%
G04 APERTURE END LIST*
D10*
G36*
X213619333Y-92270705D02*
G01*
X212250413Y-92270705D01*
X212023575Y-92260135D01*
X211821034Y-92229855D01*
X211634163Y-92170521D01*
X211477751Y-92078363D01*
X211359708Y-91971345D01*
X211262512Y-91841142D01*
X211187838Y-91694214D01*
X211142737Y-91534985D01*
X211127324Y-91360289D01*
X211130436Y-91322554D01*
X211764614Y-91322554D01*
X211778905Y-91459025D01*
X211818016Y-91563128D01*
X211879502Y-91642460D01*
X211965382Y-91701374D01*
X212088427Y-91739735D01*
X212274960Y-91754864D01*
X213016847Y-91754864D01*
X213016847Y-90945931D01*
X212264702Y-90945931D01*
X212079947Y-90961569D01*
X211959337Y-90997405D01*
X211874093Y-91050951D01*
X211814701Y-91120608D01*
X211777855Y-91209199D01*
X211764614Y-91322554D01*
X211130436Y-91322554D01*
X211141320Y-91190562D01*
X211181188Y-91044713D01*
X211245293Y-90918454D01*
X211334643Y-90809722D01*
X211449641Y-90721289D01*
X211594621Y-90652474D01*
X211456480Y-90566392D01*
X211365094Y-90479550D01*
X211289929Y-90359797D01*
X211242624Y-90213143D01*
X211231499Y-90094501D01*
X211828179Y-90094501D01*
X211843751Y-90217536D01*
X211885674Y-90304646D01*
X211952193Y-90365427D01*
X212038178Y-90406127D01*
X212144242Y-90432341D01*
X212274960Y-90441814D01*
X213016847Y-90441814D01*
X213016847Y-89761842D01*
X212352812Y-89761842D01*
X212143894Y-89775141D01*
X211992127Y-89810019D01*
X211902689Y-89870566D01*
X211848263Y-89961633D01*
X211828179Y-90094501D01*
X211231499Y-90094501D01*
X211225693Y-90032585D01*
X211241937Y-89857348D01*
X211288701Y-89704379D01*
X211365094Y-89569318D01*
X211463933Y-89461402D01*
X211587120Y-89374568D01*
X211738784Y-89308317D01*
X211924718Y-89264264D01*
X212152045Y-89246001D01*
X213619333Y-89246001D01*
X213619333Y-92270705D01*
G37*
G36*
X209432889Y-89972868D02*
G01*
X209405412Y-89972868D01*
X209355037Y-89972868D01*
X209355037Y-90570774D01*
X209453405Y-90570774D01*
X209523015Y-90570774D01*
X209696953Y-90587649D01*
X209827714Y-90633361D01*
X209925465Y-90704074D01*
X209996540Y-90801034D01*
X210030818Y-90890614D01*
X210054868Y-91019576D01*
X210064135Y-91199822D01*
X210064135Y-92270705D01*
X210652332Y-92270705D01*
X210652332Y-90031486D01*
X210094909Y-90031486D01*
X210094909Y-90421114D01*
X209957642Y-90216824D01*
X209859154Y-90111903D01*
X209742770Y-90036491D01*
X209602744Y-89989535D01*
X209432889Y-89972868D01*
G37*
G36*
X208362092Y-89993341D02*
G01*
X208562502Y-90052172D01*
X208739088Y-90147920D01*
X208895799Y-90282446D01*
X209018790Y-90444636D01*
X209110258Y-90641878D01*
X209168790Y-90881387D01*
X209189806Y-91172344D01*
X209174170Y-91427066D01*
X209130759Y-91637052D01*
X209063537Y-91809719D01*
X208974580Y-91951246D01*
X208863925Y-92066273D01*
X208693376Y-92187269D01*
X208512949Y-92272353D01*
X208320163Y-92323611D01*
X208111779Y-92341046D01*
X207904787Y-92326698D01*
X207724762Y-92285798D01*
X207567483Y-92220417D01*
X207429541Y-92131022D01*
X207308526Y-92016448D01*
X207198426Y-91872951D01*
X207131938Y-91739946D01*
X207101530Y-91614180D01*
X207697971Y-91614180D01*
X207750630Y-91705204D01*
X207806598Y-91768969D01*
X207887123Y-91825193D01*
X207983330Y-91859859D01*
X208099506Y-91872100D01*
X208210249Y-91862117D01*
X208306341Y-91833479D01*
X208390583Y-91786920D01*
X208474071Y-91710836D01*
X208537679Y-91610077D01*
X208581271Y-91478943D01*
X208601608Y-91309365D01*
X207072770Y-91309365D01*
X207076134Y-91037744D01*
X207086374Y-90922484D01*
X207679470Y-90922484D01*
X208587320Y-90922484D01*
X208557152Y-90782510D01*
X208509890Y-90669960D01*
X208447003Y-90579933D01*
X208364785Y-90511157D01*
X208261961Y-90468703D01*
X208132296Y-90453538D01*
X208012738Y-90467260D01*
X207909844Y-90506909D01*
X207819787Y-90572789D01*
X207750829Y-90660053D01*
X207703342Y-90774141D01*
X207679470Y-90922484D01*
X207086374Y-90922484D01*
X207091272Y-90867346D01*
X207128432Y-90696543D01*
X207185323Y-90543822D01*
X207261448Y-90406826D01*
X207368983Y-90268109D01*
X207491493Y-90159256D01*
X207630377Y-90077282D01*
X207782426Y-90020132D01*
X207948897Y-89984984D01*
X208132296Y-89972868D01*
X208362092Y-89993341D01*
G37*
G36*
X206910105Y-90465261D02*
G01*
X206910105Y-90054933D01*
X206598695Y-90054933D01*
X206598695Y-89421856D01*
X206020755Y-89421856D01*
X206020755Y-90054933D01*
X205657872Y-90054933D01*
X205657872Y-90465261D01*
X206020755Y-90465261D01*
X206020755Y-91653930D01*
X206009434Y-91777784D01*
X205985951Y-91826305D01*
X205932274Y-91848709D01*
X205772727Y-91860377D01*
X205716307Y-91857446D01*
X205657872Y-91848653D01*
X205657872Y-92282428D01*
X205934660Y-92305875D01*
X206149436Y-92299948D01*
X206307086Y-92270301D01*
X206420574Y-92223031D01*
X206500326Y-92161345D01*
X206552084Y-92087795D01*
X206586023Y-91986911D01*
X206598695Y-91849935D01*
X206598695Y-90465261D01*
X206910105Y-90465261D01*
G37*
G36*
X205512059Y-90465261D02*
G01*
X205512059Y-90054933D01*
X205200649Y-90054933D01*
X205200649Y-89421856D01*
X204622709Y-89421856D01*
X204622709Y-90054933D01*
X204259825Y-90054933D01*
X204259825Y-90465261D01*
X204622709Y-90465261D01*
X204622709Y-91653930D01*
X204611388Y-91777784D01*
X204587905Y-91826305D01*
X204534228Y-91848709D01*
X204374681Y-91860377D01*
X204318261Y-91857446D01*
X204259825Y-91848653D01*
X204259825Y-92282428D01*
X204536614Y-92305875D01*
X204751390Y-92299948D01*
X204909040Y-92270301D01*
X205022527Y-92223031D01*
X205102280Y-92161345D01*
X205154038Y-92087795D01*
X205187977Y-91986911D01*
X205200649Y-91849935D01*
X205200649Y-90465261D01*
X205512059Y-90465261D01*
G37*
G36*
X202258927Y-89246001D02*
G01*
X201859224Y-90977988D01*
X201773311Y-91460124D01*
X201685201Y-90988246D01*
X201344848Y-89246001D01*
X200678798Y-89246001D01*
X200320310Y-90977988D01*
X200227987Y-91460124D01*
X200135846Y-90996306D01*
X199732113Y-89246001D01*
X199090609Y-89246001D01*
X199941123Y-92270705D01*
X200543609Y-92270705D01*
X200908325Y-90501898D01*
X201014937Y-89916997D01*
X201121549Y-90501898D01*
X201486265Y-92270705D01*
X202072448Y-92270705D01*
X202929007Y-89246001D01*
X202258927Y-89246001D01*
G37*
G36*
X198177165Y-89993341D02*
G01*
X198377575Y-90052172D01*
X198554161Y-90147920D01*
X198710872Y-90282446D01*
X198833864Y-90444636D01*
X198925331Y-90641878D01*
X198983863Y-90881387D01*
X199004880Y-91172344D01*
X198989244Y-91427066D01*
X198945833Y-91637052D01*
X198878611Y-91809719D01*
X198789653Y-91951246D01*
X198678999Y-92066273D01*
X198508450Y-92187269D01*
X198328022Y-92272353D01*
X198135236Y-92323611D01*
X197926853Y-92341046D01*
X197719860Y-92326698D01*
X197539835Y-92285798D01*
X197382556Y-92220417D01*
X197244614Y-92131022D01*
X197123599Y-92016448D01*
X197013499Y-91872951D01*
X196947011Y-91739946D01*
X196916603Y-91614180D01*
X197513044Y-91614180D01*
X197565703Y-91705204D01*
X197621671Y-91768969D01*
X197702196Y-91825193D01*
X197798403Y-91859859D01*
X197914579Y-91872100D01*
X198025322Y-91862117D01*
X198121414Y-91833479D01*
X198205656Y-91786920D01*
X198289145Y-91710836D01*
X198352752Y-91610077D01*
X198396344Y-91478943D01*
X198416682Y-91309365D01*
X196887844Y-91309365D01*
X196891208Y-91037744D01*
X196901447Y-90922484D01*
X197494543Y-90922484D01*
X198402393Y-90922484D01*
X198372225Y-90782510D01*
X198324963Y-90669960D01*
X198262076Y-90579933D01*
X198179858Y-90511157D01*
X198077034Y-90468703D01*
X197947369Y-90453538D01*
X197827811Y-90467260D01*
X197724917Y-90506909D01*
X197634860Y-90572789D01*
X197565902Y-90660053D01*
X197518416Y-90774141D01*
X197494543Y-90922484D01*
X196901447Y-90922484D01*
X196906345Y-90867346D01*
X196943506Y-90696543D01*
X197000396Y-90543822D01*
X197076521Y-90406826D01*
X197184056Y-90268109D01*
X197306566Y-90159256D01*
X197445450Y-90077282D01*
X197597500Y-90020132D01*
X197763970Y-89984984D01*
X197947369Y-89972868D01*
X198177165Y-89993341D01*
G37*
G36*
X195895180Y-89773566D02*
G01*
X196487407Y-89773566D01*
X196487407Y-89246001D01*
X195895180Y-89246001D01*
X195895180Y-89773566D01*
G37*
G36*
X196487407Y-90031486D02*
G01*
X195895180Y-90031486D01*
X195895180Y-92270705D01*
X196487407Y-92270705D01*
X196487407Y-90031486D01*
G37*
G36*
X194732706Y-92270705D02*
G01*
X195316874Y-92270705D01*
X195316874Y-89246001D01*
X194732706Y-89246001D01*
X194732706Y-92270705D01*
G37*
G36*
X193516265Y-89987225D02*
G01*
X193705324Y-90026817D01*
X193858133Y-90087679D01*
X193980988Y-90167716D01*
X194078562Y-90266875D01*
X194159212Y-90398906D01*
X194214484Y-90556941D01*
X194242510Y-90746629D01*
X193679042Y-90746629D01*
X193646725Y-90628056D01*
X193596977Y-90543480D01*
X193532232Y-90490307D01*
X193438148Y-90455155D01*
X193304068Y-90441814D01*
X193132188Y-90456869D01*
X193024349Y-90494387D01*
X192972718Y-90537195D01*
X192940713Y-90598520D01*
X192928911Y-90685080D01*
X192942235Y-90752852D01*
X192981828Y-90807462D01*
X193053841Y-90852142D01*
X193135637Y-90878003D01*
X193285567Y-90903799D01*
X193484320Y-90928529D01*
X193709282Y-90967788D01*
X193876138Y-91016944D01*
X193996680Y-91072877D01*
X194110715Y-91155974D01*
X194197832Y-91254879D01*
X194260880Y-91371442D01*
X194300349Y-91509185D01*
X194314318Y-91672981D01*
X194300712Y-91830700D01*
X194262354Y-91962542D01*
X194201174Y-92073417D01*
X194116664Y-92166840D01*
X193976008Y-92262138D01*
X193811127Y-92320559D01*
X193615478Y-92341046D01*
X193459894Y-92328599D01*
X193318670Y-92292337D01*
X193189213Y-92232786D01*
X193040128Y-92130957D01*
X192910410Y-92010403D01*
X192894107Y-92144675D01*
X192857287Y-92270705D01*
X192221828Y-92270705D01*
X192221828Y-92200363D01*
X192273326Y-92167659D01*
X192308107Y-92129471D01*
X192329072Y-92075992D01*
X192342912Y-91965889D01*
X192346942Y-91705404D01*
X192346942Y-91397292D01*
X192930926Y-91397292D01*
X192945901Y-91546778D01*
X192980208Y-91659903D01*
X193030462Y-91744612D01*
X193095973Y-91806704D01*
X193206125Y-91869520D01*
X193321132Y-91906562D01*
X193443287Y-91918995D01*
X193554541Y-91901642D01*
X193645153Y-91851401D01*
X193689211Y-91800451D01*
X193717579Y-91729629D01*
X193728135Y-91632132D01*
X193712373Y-91526191D01*
X193667826Y-91444358D01*
X193592947Y-91380623D01*
X193498811Y-91340175D01*
X193328615Y-91299473D01*
X193197456Y-91274560D01*
X193042667Y-91234077D01*
X192930926Y-91176924D01*
X192930926Y-91397292D01*
X192346942Y-91397292D01*
X192346942Y-90672257D01*
X192367323Y-90473096D01*
X192423044Y-90321083D01*
X192510377Y-90205228D01*
X192631790Y-90119047D01*
X192826549Y-90039167D01*
X193042432Y-89989917D01*
X193283369Y-89972868D01*
X193516265Y-89987225D01*
G37*
G36*
X190591874Y-89972868D02*
G01*
X190367256Y-89994407D01*
X190181000Y-90055174D01*
X190025291Y-90152753D01*
X189934468Y-90249844D01*
X189866095Y-90377295D01*
X189821371Y-90542565D01*
X189804923Y-90755605D01*
X189804923Y-92270705D01*
X190403379Y-92270705D01*
X190403379Y-90900136D01*
X190416822Y-90733684D01*
X190450457Y-90627194D01*
X190501654Y-90552882D01*
X190570417Y-90499695D01*
X190660479Y-90465884D01*
X190778353Y-90453538D01*
X190919887Y-90470629D01*
X191030853Y-90518357D01*
X191118505Y-90595789D01*
X191186116Y-90707795D01*
X191227745Y-90852848D01*
X191243452Y-91051078D01*
X191243452Y-92270705D01*
X191825605Y-92270705D01*
X191825605Y-90031486D01*
X191261954Y-90031486D01*
X191261954Y-90352604D01*
X191145471Y-90198058D01*
X191048913Y-90106957D01*
X190922372Y-90034347D01*
X190771945Y-89988954D01*
X190591874Y-89972868D01*
G37*
G36*
X187824358Y-90312671D02*
G01*
X187938090Y-90170009D01*
X188080630Y-90062993D01*
X188188975Y-90013556D01*
X188308368Y-89983300D01*
X188441132Y-89972868D01*
X188654658Y-89994356D01*
X188839573Y-90056210D01*
X189001844Y-90157715D01*
X189145284Y-90302412D01*
X189255200Y-90472169D01*
X189337298Y-90674979D01*
X189389768Y-90917164D01*
X189408517Y-91206416D01*
X189390354Y-91453878D01*
X189338511Y-91669119D01*
X189255364Y-91857397D01*
X189141071Y-92022859D01*
X188996038Y-92164897D01*
X188840020Y-92262750D01*
X188670207Y-92321146D01*
X188482165Y-92341046D01*
X188325753Y-92330287D01*
X188194675Y-92300127D01*
X188084660Y-92252753D01*
X187985651Y-92185164D01*
X187890840Y-92092269D01*
X187799811Y-91969919D01*
X187799811Y-92270705D01*
X187232130Y-92270705D01*
X187232130Y-91190113D01*
X187808055Y-91190113D01*
X187823852Y-91384248D01*
X187867901Y-91543207D01*
X187937198Y-91673714D01*
X188008989Y-91755203D01*
X188093788Y-91812599D01*
X188194129Y-91847936D01*
X188314187Y-91860377D01*
X188434284Y-91847765D01*
X188533272Y-91812123D01*
X188615685Y-91754442D01*
X188684215Y-91672615D01*
X188748872Y-91541856D01*
X188790780Y-91377498D01*
X188806031Y-91171429D01*
X188791559Y-90980895D01*
X188750801Y-90820481D01*
X188686230Y-90684897D01*
X188618097Y-90599414D01*
X188534979Y-90539210D01*
X188433997Y-90501942D01*
X188310157Y-90488709D01*
X188202113Y-90500837D01*
X188104652Y-90536503D01*
X188015051Y-90596603D01*
X187930112Y-90692177D01*
X187865801Y-90817653D01*
X187823595Y-90980415D01*
X187808055Y-91190113D01*
X187232130Y-91190113D01*
X187232130Y-89246001D01*
X187824358Y-89246001D01*
X187824358Y-90312671D01*
G37*
D11*
%TO.C,J1*%
X146394466Y-88130000D03*
X146394466Y-84330000D03*
X137754466Y-88130000D03*
X137754466Y-84330000D03*
%TD*%
M02*

View File

@ -0,0 +1,15 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:06:34-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Bot*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:06:34*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 APERTURE END LIST*
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:06:35-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Profile,NP*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:06:35*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,Profile*%
%ADD10C,0.050000*%
%TD*%
G04 APERTURE END LIST*
D10*
X137564466Y-132335534D02*
X216464466Y-132335534D01*
X137564466Y-132335534D02*
G75*
G02*
X132564466Y-127335534I34J5000034D01*
G01*
X132564466Y-86535534D02*
X132564466Y-127335534D01*
X216464466Y-81535534D02*
G75*
G02*
X221464466Y-86535534I34J-4999966D01*
G01*
X221464466Y-127335534D02*
X221464466Y-86535534D01*
X216464466Y-81535534D02*
X137564466Y-81535534D01*
X132564466Y-86535534D02*
G75*
G02*
X137564466Y-81535536I4999914J84D01*
G01*
X221464466Y-127335534D02*
G75*
G02*
X216464466Y-132335566I-5000066J34D01*
G01*
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,555 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:06:35-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Soldermask,Top*%
%TF.FilePolarity,Negative*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:06:35*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 Aperture macros list*
%AMRoundRect*
0 Rectangle with rounded corners*
0 $1 Rounding radius*
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
0 Add a 4 corners polygon primitive as box body*
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
0 Add four circle primitives for the rounded corners*
1,1,$1+$1,$2,$3*
1,1,$1+$1,$4,$5*
1,1,$1+$1,$6,$7*
1,1,$1+$1,$8,$9*
0 Add four rect primitives between the rounded corners*
20,1,$1+$1,$2,$3,$4,$5,0*
20,1,$1+$1,$4,$5,$6,$7,0*
20,1,$1+$1,$6,$7,$8,$9,0*
20,1,$1+$1,$8,$9,$2,$3,0*%
G04 Aperture macros list end*
%ADD10RoundRect,0.225000X-0.225000X-0.250000X0.225000X-0.250000X0.225000X0.250000X-0.225000X0.250000X0*%
%ADD11RoundRect,0.150000X0.150000X-0.587500X0.150000X0.587500X-0.150000X0.587500X-0.150000X-0.587500X0*%
%ADD12RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*%
%ADD13R,1.800000X1.200000*%
%ADD14RoundRect,0.200000X0.200000X0.275000X-0.200000X0.275000X-0.200000X-0.275000X0.200000X-0.275000X0*%
%ADD15RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*%
%ADD16R,3.000000X5.500000*%
%ADD17RoundRect,0.200000X0.275000X-0.200000X0.275000X0.200000X-0.275000X0.200000X-0.275000X-0.200000X0*%
%ADD18RoundRect,0.225000X0.250000X-0.225000X0.250000X0.225000X-0.250000X0.225000X-0.250000X-0.225000X0*%
%ADD19R,2.350000X3.500000*%
%ADD20C,2.000000*%
%ADD21RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
%ADD22RoundRect,0.250000X0.250000X0.475000X-0.250000X0.475000X-0.250000X-0.475000X0.250000X-0.475000X0*%
%ADD23RoundRect,0.200000X-0.200000X-0.275000X0.200000X-0.275000X0.200000X0.275000X-0.200000X0.275000X0*%
%ADD24R,2.200000X0.400000*%
%ADD25RoundRect,0.100000X-0.225000X-0.100000X0.225000X-0.100000X0.225000X0.100000X-0.225000X0.100000X0*%
%ADD26RoundRect,0.200000X-0.275000X0.200000X-0.275000X-0.200000X0.275000X-0.200000X0.275000X0.200000X0*%
%ADD27RoundRect,0.102000X0.350000X0.600000X-0.350000X0.600000X-0.350000X-0.600000X0.350000X-0.600000X0*%
%ADD28RoundRect,0.102000X0.380000X0.600000X-0.380000X0.600000X-0.380000X-0.600000X0.380000X-0.600000X0*%
%ADD29RoundRect,0.102000X0.400000X0.600000X-0.400000X0.600000X-0.400000X-0.600000X0.400000X-0.600000X0*%
%ADD30O,1.304000X1.904000*%
%ADD31RoundRect,0.243750X0.243750X0.456250X-0.243750X0.456250X-0.243750X-0.456250X0.243750X-0.456250X0*%
%ADD32R,1.070000X0.530000*%
%ADD33R,1.200000X0.270000*%
%ADD34R,0.270000X1.200000*%
%ADD35R,1.200000X1.800000*%
%ADD36RoundRect,0.218750X0.218750X0.256250X-0.218750X0.256250X-0.218750X-0.256250X0.218750X-0.256250X0*%
%ADD37R,0.600000X1.000000*%
%ADD38R,1.200000X0.600000*%
%ADD39R,2.400000X3.300000*%
%ADD40RoundRect,0.100000X-0.100000X0.225000X-0.100000X-0.225000X0.100000X-0.225000X0.100000X0.225000X0*%
%ADD41RoundRect,0.250000X0.650000X-1.000000X0.650000X1.000000X-0.650000X1.000000X-0.650000X-1.000000X0*%
%ADD42R,1.200000X0.500000*%
G04 APERTURE END LIST*
D10*
%TO.C,C14*%
X186594442Y-122410210D03*
X188144442Y-122410210D03*
%TD*%
D11*
%TO.C,Q2*%
X157919747Y-124145560D03*
X159819747Y-124145560D03*
X158869747Y-122270560D03*
%TD*%
D12*
%TO.C,C4*%
X168208349Y-118253643D03*
X166658349Y-118253643D03*
%TD*%
D10*
%TO.C,C25*%
X158188180Y-107195974D03*
X159738180Y-107195974D03*
%TD*%
D13*
%TO.C,b_up1*%
X202951133Y-104665534D03*
X210951133Y-104665534D03*
X202951133Y-109165534D03*
X210951133Y-109165534D03*
%TD*%
D10*
%TO.C,C16*%
X186498159Y-120535261D03*
X188048159Y-120535261D03*
%TD*%
D14*
%TO.C,R22*%
X158253611Y-125980447D03*
X156603611Y-125980447D03*
%TD*%
D15*
%TO.C,C22*%
X159771321Y-108741969D03*
X159771321Y-110291969D03*
%TD*%
D16*
%TO.C,L2*%
X158924572Y-102960590D03*
X154264572Y-102960590D03*
%TD*%
D14*
%TO.C,R14*%
X163868852Y-97111187D03*
X162218852Y-97111187D03*
%TD*%
D17*
%TO.C,R24*%
X161212267Y-117283573D03*
X161212267Y-115633573D03*
%TD*%
D18*
%TO.C,C9*%
X152049345Y-94727156D03*
X152049345Y-93177156D03*
%TD*%
D19*
%TO.C,L1*%
X153109399Y-86734328D03*
X158809399Y-86734328D03*
%TD*%
D20*
%TO.C,SWDIO1*%
X164177791Y-125033730D03*
%TD*%
%TO.C,TP3*%
X162215982Y-129637235D03*
%TD*%
D21*
%TO.C,Q1*%
X164907099Y-117901836D03*
X164907099Y-116001836D03*
X163032099Y-116951836D03*
%TD*%
D22*
%TO.C,C7*%
X152194313Y-97232762D03*
X150294313Y-97232762D03*
%TD*%
D23*
%TO.C,R10*%
X174123734Y-129933381D03*
X175773734Y-129933381D03*
%TD*%
%TO.C,R17*%
X158138180Y-111847959D03*
X159788180Y-111847959D03*
%TD*%
D10*
%TO.C,C12*%
X175911855Y-126779815D03*
X177461855Y-126779815D03*
%TD*%
D24*
%TO.C,U5*%
X174559466Y-111035534D03*
X174559466Y-110335534D03*
X174559466Y-109635534D03*
X174559466Y-108935534D03*
X174559466Y-108235534D03*
X174559466Y-107535534D03*
X174559466Y-106835534D03*
X174559466Y-106135534D03*
X174559466Y-105435534D03*
X174559466Y-104735534D03*
X174559466Y-104035534D03*
X174559466Y-103335534D03*
X174559466Y-102635534D03*
%TD*%
D10*
%TO.C,C11*%
X178216650Y-124571621D03*
X179766650Y-124571621D03*
%TD*%
D14*
%TO.C,R11*%
X171355995Y-129935313D03*
X169705995Y-129935313D03*
%TD*%
D20*
%TO.C,TP2*%
X134880772Y-88298705D03*
%TD*%
D25*
%TO.C,U3*%
X158013180Y-118919663D03*
X158013180Y-119569663D03*
X158013180Y-120219663D03*
X159913180Y-120219663D03*
X159913180Y-119569663D03*
X159913180Y-118919663D03*
%TD*%
D26*
%TO.C,R2*%
X142831133Y-89980534D03*
X142831133Y-91630534D03*
%TD*%
D14*
%TO.C,R15*%
X163868852Y-95545650D03*
X162218852Y-95545650D03*
%TD*%
D10*
%TO.C,C13*%
X181710179Y-116398550D03*
X183260179Y-116398550D03*
%TD*%
%TO.C,C10*%
X158188180Y-113473015D03*
X159738180Y-113473015D03*
%TD*%
D14*
%TO.C,R18*%
X154421265Y-126000289D03*
X152771265Y-126000289D03*
%TD*%
D26*
%TO.C,R16*%
X158155040Y-108691969D03*
X158155040Y-110341969D03*
%TD*%
D12*
%TO.C,C8*%
X179766650Y-121651621D03*
X178216650Y-121651621D03*
%TD*%
D23*
%TO.C,R9*%
X183488159Y-120535261D03*
X185138159Y-120535261D03*
%TD*%
%TO.C,R13*%
X161308400Y-122213186D03*
X162958400Y-122213186D03*
%TD*%
D10*
%TO.C,C15*%
X186482004Y-118016635D03*
X188032004Y-118016635D03*
%TD*%
D13*
%TO.C,b_left1*%
X210951133Y-113132201D03*
X218951133Y-113132201D03*
X210951133Y-117632201D03*
X218951133Y-117632201D03*
%TD*%
D10*
%TO.C,C5*%
X178216650Y-123111621D03*
X179766650Y-123111621D03*
%TD*%
D13*
%TO.C,b_right1*%
X194951133Y-113132201D03*
X202951133Y-113132201D03*
X194951133Y-117632201D03*
X202951133Y-117632201D03*
%TD*%
D23*
%TO.C,R12*%
X161501172Y-120481830D03*
X163151172Y-120481830D03*
%TD*%
D10*
%TO.C,C17*%
X164511172Y-120481830D03*
X166061172Y-120481830D03*
%TD*%
D23*
%TO.C,R6*%
X183584442Y-122410210D03*
X185234442Y-122410210D03*
%TD*%
D10*
%TO.C,C19*%
X154004818Y-111915048D03*
X155554818Y-111915048D03*
%TD*%
D20*
%TO.C,TP_mosi1*%
X174362663Y-114235371D03*
%TD*%
D27*
%TO.C,J1*%
X142574466Y-88210000D03*
D28*
X140554466Y-88210000D03*
D29*
X139324466Y-88210000D03*
D27*
X141574466Y-88210000D03*
D28*
X143594466Y-88210000D03*
D29*
X144824466Y-88210000D03*
D30*
X146394466Y-88130000D03*
X146394466Y-84330000D03*
X137754466Y-88130000D03*
X137754466Y-84330000D03*
%TD*%
D31*
%TO.C,D2*%
X164192771Y-91972776D03*
X162317771Y-91972776D03*
%TD*%
D23*
%TO.C,R7*%
X183472004Y-118016635D03*
X185122004Y-118016635D03*
%TD*%
D20*
%TO.C,tst_nrst1*%
X180021047Y-127320001D03*
%TD*%
D32*
%TO.C,U6*%
X153629818Y-106919279D03*
X153629818Y-107869279D03*
X153629818Y-108819279D03*
X155929818Y-108819279D03*
X155929818Y-107869279D03*
X155929818Y-106919279D03*
%TD*%
D14*
%TO.C,R4*%
X156264853Y-91818710D03*
X154614853Y-91818710D03*
%TD*%
D20*
%TO.C,TestPoint_gnd1*%
X166260568Y-86489059D03*
%TD*%
D10*
%TO.C,C2*%
X168613611Y-116553306D03*
X170163611Y-116553306D03*
%TD*%
D20*
%TO.C,TP_sck1*%
X178381844Y-108935534D03*
%TD*%
D10*
%TO.C,C18*%
X164318400Y-122213186D03*
X165868400Y-122213186D03*
%TD*%
D33*
%TO.C,U4*%
X176090878Y-125284125D03*
X176090878Y-124784125D03*
X176090878Y-124284125D03*
X176090878Y-123784125D03*
X176090878Y-123284125D03*
X176090878Y-122784125D03*
X176090878Y-122284125D03*
X176090878Y-121784125D03*
X176090878Y-121284125D03*
X176090878Y-120784125D03*
X176090878Y-120284125D03*
X176090878Y-119784125D03*
D34*
X174740878Y-118434125D03*
X174240878Y-118434125D03*
X173740878Y-118434125D03*
X173240878Y-118434125D03*
X172740878Y-118434125D03*
X172240878Y-118434125D03*
X171740878Y-118434125D03*
X171240878Y-118434125D03*
X170740878Y-118434125D03*
X170240878Y-118434125D03*
X169740878Y-118434125D03*
X169240878Y-118434125D03*
D33*
X167890878Y-119784125D03*
X167890878Y-120284125D03*
X167890878Y-120784125D03*
X167890878Y-121284125D03*
X167890878Y-121784125D03*
X167890878Y-122284125D03*
X167890878Y-122784125D03*
X167890878Y-123284125D03*
X167890878Y-123784125D03*
X167890878Y-124284125D03*
X167890878Y-124784125D03*
X167890878Y-125284125D03*
D34*
X169240878Y-126634125D03*
X169740878Y-126634125D03*
X170240878Y-126634125D03*
X170740878Y-126634125D03*
X171240878Y-126634125D03*
X171740878Y-126634125D03*
X172240878Y-126634125D03*
X172740878Y-126634125D03*
X173240878Y-126634125D03*
X173740878Y-126634125D03*
X174240878Y-126634125D03*
X174740878Y-126634125D03*
%TD*%
D12*
%TO.C,C20*%
X156306367Y-117183014D03*
X154756367Y-117183014D03*
%TD*%
D23*
%TO.C,R23*%
X159750308Y-125969797D03*
X161400308Y-125969797D03*
%TD*%
D35*
%TO.C,b_b1*%
X146357799Y-127848868D03*
X146357799Y-119848868D03*
X150857799Y-127848868D03*
X150857799Y-119848868D03*
%TD*%
D13*
%TO.C,b_down1*%
X210951133Y-126098868D03*
X202951133Y-126098868D03*
X210951133Y-121598868D03*
X202951133Y-121598868D03*
%TD*%
D36*
%TO.C,D3*%
X163876963Y-93905116D03*
X162301963Y-93905116D03*
%TD*%
D23*
%TO.C,R20*%
X153954818Y-110310463D03*
X155604818Y-110310463D03*
%TD*%
D37*
%TO.C,U9*%
X154476567Y-120794558D03*
X153526567Y-120794558D03*
X152576567Y-120794558D03*
X152576567Y-122994558D03*
X154476567Y-122994558D03*
%TD*%
D38*
%TO.C,U1*%
X159525975Y-97379672D03*
X159525975Y-96109672D03*
X159525975Y-94829672D03*
X159525975Y-93559672D03*
X153705975Y-93559672D03*
X153705975Y-94829672D03*
X153705975Y-96109672D03*
X153705975Y-97379672D03*
D39*
X156615975Y-95469672D03*
%TD*%
D12*
%TO.C,C1*%
X159506914Y-91818526D03*
X157956914Y-91818526D03*
%TD*%
D23*
%TO.C,R5*%
X178700179Y-116398550D03*
X180350179Y-116398550D03*
%TD*%
D40*
%TO.C,U2*%
X159575680Y-115376388D03*
X158925680Y-115376388D03*
X158275680Y-115376388D03*
X158275680Y-117276388D03*
X158925680Y-117276388D03*
X159575680Y-117276388D03*
%TD*%
D41*
%TO.C,D1*%
X162704823Y-88794524D03*
X162704823Y-84794524D03*
%TD*%
D20*
%TO.C,SWCLK1*%
X165303801Y-129637235D03*
%TD*%
D26*
%TO.C,R8*%
X172740878Y-128357482D03*
X172740878Y-130007482D03*
%TD*%
D10*
%TO.C,C6*%
X174173724Y-128478655D03*
X175723724Y-128478655D03*
%TD*%
%TO.C,C24*%
X154469361Y-124419275D03*
X156019361Y-124419275D03*
%TD*%
D12*
%TO.C,C21*%
X154371567Y-119134045D03*
X152821567Y-119134045D03*
%TD*%
D35*
%TO.C,b_a1*%
X146357799Y-110915534D03*
X146357799Y-102915534D03*
X150857799Y-110915534D03*
X150857799Y-102915534D03*
%TD*%
D12*
%TO.C,C3*%
X167740878Y-126518684D03*
X166190878Y-126518684D03*
%TD*%
D20*
%TO.C,TP1*%
X166644763Y-96653916D03*
%TD*%
D23*
%TO.C,R19*%
X154524973Y-127765370D03*
X156174973Y-127765370D03*
%TD*%
D42*
%TO.C,U7*%
X153429818Y-113589341D03*
X153429818Y-114539341D03*
X153429818Y-115489341D03*
X156129818Y-115489341D03*
X156129818Y-113589341D03*
%TD*%
D26*
%TO.C,R1*%
X141331133Y-89980534D03*
X141331133Y-91630534D03*
%TD*%
%TO.C,R21*%
X166643276Y-88787760D03*
X166643276Y-90437760D03*
%TD*%
M02*

View File

@ -0,0 +1,512 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:06:34-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Top*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:06:34*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 Aperture macros list*
%AMRoundRect*
0 Rectangle with rounded corners*
0 $1 Rounding radius*
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
0 Add a 4 corners polygon primitive as box body*
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
0 Add four circle primitives for the rounded corners*
1,1,$1+$1,$2,$3*
1,1,$1+$1,$4,$5*
1,1,$1+$1,$6,$7*
1,1,$1+$1,$8,$9*
0 Add four rect primitives between the rounded corners*
20,1,$1+$1,$2,$3,$4,$5,0*
20,1,$1+$1,$4,$5,$6,$7,0*
20,1,$1+$1,$6,$7,$8,$9,0*
20,1,$1+$1,$8,$9,$2,$3,0*%
G04 Aperture macros list end*
%ADD10RoundRect,0.225000X-0.225000X-0.250000X0.225000X-0.250000X0.225000X0.250000X-0.225000X0.250000X0*%
%ADD11RoundRect,0.150000X0.150000X-0.587500X0.150000X0.587500X-0.150000X0.587500X-0.150000X-0.587500X0*%
%ADD12RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*%
%ADD13R,1.800000X1.200000*%
%ADD14RoundRect,0.200000X0.200000X0.275000X-0.200000X0.275000X-0.200000X-0.275000X0.200000X-0.275000X0*%
%ADD15RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*%
%ADD16R,3.000000X5.500000*%
%ADD17RoundRect,0.200000X0.275000X-0.200000X0.275000X0.200000X-0.275000X0.200000X-0.275000X-0.200000X0*%
%ADD18RoundRect,0.225000X0.250000X-0.225000X0.250000X0.225000X-0.250000X0.225000X-0.250000X-0.225000X0*%
%ADD19R,2.350000X3.500000*%
%ADD20RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
%ADD21RoundRect,0.250000X0.250000X0.475000X-0.250000X0.475000X-0.250000X-0.475000X0.250000X-0.475000X0*%
%ADD22RoundRect,0.200000X-0.200000X-0.275000X0.200000X-0.275000X0.200000X0.275000X-0.200000X0.275000X0*%
%ADD23R,2.200000X0.400000*%
%ADD24RoundRect,0.100000X-0.225000X-0.100000X0.225000X-0.100000X0.225000X0.100000X-0.225000X0.100000X0*%
%ADD25RoundRect,0.200000X-0.275000X0.200000X-0.275000X-0.200000X0.275000X-0.200000X0.275000X0.200000X0*%
%ADD26R,0.700000X1.200000*%
%ADD27R,0.760000X1.200000*%
%ADD28R,0.800000X1.200000*%
%ADD29RoundRect,0.243750X0.243750X0.456250X-0.243750X0.456250X-0.243750X-0.456250X0.243750X-0.456250X0*%
%ADD30R,1.070000X0.530000*%
%ADD31R,1.200000X0.270000*%
%ADD32R,0.270000X1.200000*%
%ADD33R,1.200000X1.800000*%
%ADD34RoundRect,0.218750X0.218750X0.256250X-0.218750X0.256250X-0.218750X-0.256250X0.218750X-0.256250X0*%
%ADD35R,0.600000X1.000000*%
%ADD36R,1.200000X0.600000*%
%ADD37R,2.400000X3.300000*%
%ADD38RoundRect,0.100000X-0.100000X0.225000X-0.100000X-0.225000X0.100000X-0.225000X0.100000X0.225000X0*%
%ADD39RoundRect,0.250000X0.650000X-1.000000X0.650000X1.000000X-0.650000X1.000000X-0.650000X-1.000000X0*%
%ADD40R,1.200000X0.500000*%
G04 APERTURE END LIST*
D10*
%TO.C,C14*%
X186594442Y-122410210D03*
X188144442Y-122410210D03*
%TD*%
D11*
%TO.C,Q2*%
X157919747Y-124145560D03*
X159819747Y-124145560D03*
X158869747Y-122270560D03*
%TD*%
D12*
%TO.C,C4*%
X168208349Y-118253643D03*
X166658349Y-118253643D03*
%TD*%
D10*
%TO.C,C25*%
X158188180Y-107195974D03*
X159738180Y-107195974D03*
%TD*%
D13*
%TO.C,b_up1*%
X202951133Y-104665534D03*
X210951133Y-104665534D03*
X202951133Y-109165534D03*
X210951133Y-109165534D03*
%TD*%
D10*
%TO.C,C16*%
X186498159Y-120535261D03*
X188048159Y-120535261D03*
%TD*%
D14*
%TO.C,R22*%
X158253611Y-125980447D03*
X156603611Y-125980447D03*
%TD*%
D15*
%TO.C,C22*%
X159771321Y-108741969D03*
X159771321Y-110291969D03*
%TD*%
D16*
%TO.C,L2*%
X158924572Y-102960590D03*
X154264572Y-102960590D03*
%TD*%
D14*
%TO.C,R14*%
X163868852Y-97111187D03*
X162218852Y-97111187D03*
%TD*%
D17*
%TO.C,R24*%
X161212267Y-117283573D03*
X161212267Y-115633573D03*
%TD*%
D18*
%TO.C,C9*%
X152049345Y-94727156D03*
X152049345Y-93177156D03*
%TD*%
D19*
%TO.C,L1*%
X153109399Y-86734328D03*
X158809399Y-86734328D03*
%TD*%
D20*
%TO.C,Q1*%
X164907099Y-117901836D03*
X164907099Y-116001836D03*
X163032099Y-116951836D03*
%TD*%
D21*
%TO.C,C7*%
X152194313Y-97232762D03*
X150294313Y-97232762D03*
%TD*%
D22*
%TO.C,R10*%
X174123734Y-129933381D03*
X175773734Y-129933381D03*
%TD*%
%TO.C,R17*%
X158138180Y-111847959D03*
X159788180Y-111847959D03*
%TD*%
D10*
%TO.C,C12*%
X175911855Y-126779815D03*
X177461855Y-126779815D03*
%TD*%
D23*
%TO.C,U5*%
X174559466Y-111035534D03*
X174559466Y-110335534D03*
X174559466Y-109635534D03*
X174559466Y-108935534D03*
X174559466Y-108235534D03*
X174559466Y-107535534D03*
X174559466Y-106835534D03*
X174559466Y-106135534D03*
X174559466Y-105435534D03*
X174559466Y-104735534D03*
X174559466Y-104035534D03*
X174559466Y-103335534D03*
X174559466Y-102635534D03*
%TD*%
D10*
%TO.C,C11*%
X178216650Y-124571621D03*
X179766650Y-124571621D03*
%TD*%
D14*
%TO.C,R11*%
X171355995Y-129935313D03*
X169705995Y-129935313D03*
%TD*%
D24*
%TO.C,U3*%
X158013180Y-118919663D03*
X158013180Y-119569663D03*
X158013180Y-120219663D03*
X159913180Y-120219663D03*
X159913180Y-119569663D03*
X159913180Y-118919663D03*
%TD*%
D25*
%TO.C,R2*%
X142831133Y-89980534D03*
X142831133Y-91630534D03*
%TD*%
D14*
%TO.C,R15*%
X163868852Y-95545650D03*
X162218852Y-95545650D03*
%TD*%
D10*
%TO.C,C13*%
X181710179Y-116398550D03*
X183260179Y-116398550D03*
%TD*%
%TO.C,C10*%
X158188180Y-113473015D03*
X159738180Y-113473015D03*
%TD*%
D14*
%TO.C,R18*%
X154421265Y-126000289D03*
X152771265Y-126000289D03*
%TD*%
D25*
%TO.C,R16*%
X158155040Y-108691969D03*
X158155040Y-110341969D03*
%TD*%
D12*
%TO.C,C8*%
X179766650Y-121651621D03*
X178216650Y-121651621D03*
%TD*%
D22*
%TO.C,R9*%
X183488159Y-120535261D03*
X185138159Y-120535261D03*
%TD*%
%TO.C,R13*%
X161308400Y-122213186D03*
X162958400Y-122213186D03*
%TD*%
D10*
%TO.C,C15*%
X186482004Y-118016635D03*
X188032004Y-118016635D03*
%TD*%
D13*
%TO.C,b_left1*%
X210951133Y-113132201D03*
X218951133Y-113132201D03*
X210951133Y-117632201D03*
X218951133Y-117632201D03*
%TD*%
D10*
%TO.C,C5*%
X178216650Y-123111621D03*
X179766650Y-123111621D03*
%TD*%
D13*
%TO.C,b_right1*%
X194951133Y-113132201D03*
X202951133Y-113132201D03*
X194951133Y-117632201D03*
X202951133Y-117632201D03*
%TD*%
D22*
%TO.C,R12*%
X161501172Y-120481830D03*
X163151172Y-120481830D03*
%TD*%
D10*
%TO.C,C17*%
X164511172Y-120481830D03*
X166061172Y-120481830D03*
%TD*%
D22*
%TO.C,R6*%
X183584442Y-122410210D03*
X185234442Y-122410210D03*
%TD*%
D10*
%TO.C,C19*%
X154004818Y-111915048D03*
X155554818Y-111915048D03*
%TD*%
D26*
%TO.C,J1*%
X142574466Y-88210000D03*
D27*
X140554466Y-88210000D03*
D28*
X139324466Y-88210000D03*
D26*
X141574466Y-88210000D03*
D27*
X143594466Y-88210000D03*
D28*
X144824466Y-88210000D03*
%TD*%
D29*
%TO.C,D2*%
X164192771Y-91972776D03*
X162317771Y-91972776D03*
%TD*%
D22*
%TO.C,R7*%
X183472004Y-118016635D03*
X185122004Y-118016635D03*
%TD*%
D30*
%TO.C,U6*%
X153629818Y-106919279D03*
X153629818Y-107869279D03*
X153629818Y-108819279D03*
X155929818Y-108819279D03*
X155929818Y-107869279D03*
X155929818Y-106919279D03*
%TD*%
D14*
%TO.C,R4*%
X156264853Y-91818710D03*
X154614853Y-91818710D03*
%TD*%
D10*
%TO.C,C2*%
X168613611Y-116553306D03*
X170163611Y-116553306D03*
%TD*%
%TO.C,C18*%
X164318400Y-122213186D03*
X165868400Y-122213186D03*
%TD*%
D31*
%TO.C,U4*%
X176090878Y-125284125D03*
X176090878Y-124784125D03*
X176090878Y-124284125D03*
X176090878Y-123784125D03*
X176090878Y-123284125D03*
X176090878Y-122784125D03*
X176090878Y-122284125D03*
X176090878Y-121784125D03*
X176090878Y-121284125D03*
X176090878Y-120784125D03*
X176090878Y-120284125D03*
X176090878Y-119784125D03*
D32*
X174740878Y-118434125D03*
X174240878Y-118434125D03*
X173740878Y-118434125D03*
X173240878Y-118434125D03*
X172740878Y-118434125D03*
X172240878Y-118434125D03*
X171740878Y-118434125D03*
X171240878Y-118434125D03*
X170740878Y-118434125D03*
X170240878Y-118434125D03*
X169740878Y-118434125D03*
X169240878Y-118434125D03*
D31*
X167890878Y-119784125D03*
X167890878Y-120284125D03*
X167890878Y-120784125D03*
X167890878Y-121284125D03*
X167890878Y-121784125D03*
X167890878Y-122284125D03*
X167890878Y-122784125D03*
X167890878Y-123284125D03*
X167890878Y-123784125D03*
X167890878Y-124284125D03*
X167890878Y-124784125D03*
X167890878Y-125284125D03*
D32*
X169240878Y-126634125D03*
X169740878Y-126634125D03*
X170240878Y-126634125D03*
X170740878Y-126634125D03*
X171240878Y-126634125D03*
X171740878Y-126634125D03*
X172240878Y-126634125D03*
X172740878Y-126634125D03*
X173240878Y-126634125D03*
X173740878Y-126634125D03*
X174240878Y-126634125D03*
X174740878Y-126634125D03*
%TD*%
D12*
%TO.C,C20*%
X156306367Y-117183014D03*
X154756367Y-117183014D03*
%TD*%
D22*
%TO.C,R23*%
X159750308Y-125969797D03*
X161400308Y-125969797D03*
%TD*%
D33*
%TO.C,b_b1*%
X146357799Y-127848868D03*
X146357799Y-119848868D03*
X150857799Y-127848868D03*
X150857799Y-119848868D03*
%TD*%
D13*
%TO.C,b_down1*%
X210951133Y-126098868D03*
X202951133Y-126098868D03*
X210951133Y-121598868D03*
X202951133Y-121598868D03*
%TD*%
D34*
%TO.C,D3*%
X163876963Y-93905116D03*
X162301963Y-93905116D03*
%TD*%
D22*
%TO.C,R20*%
X153954818Y-110310463D03*
X155604818Y-110310463D03*
%TD*%
D35*
%TO.C,U9*%
X154476567Y-120794558D03*
X153526567Y-120794558D03*
X152576567Y-120794558D03*
X152576567Y-122994558D03*
X154476567Y-122994558D03*
%TD*%
D36*
%TO.C,U1*%
X159525975Y-97379672D03*
X159525975Y-96109672D03*
X159525975Y-94829672D03*
X159525975Y-93559672D03*
X153705975Y-93559672D03*
X153705975Y-94829672D03*
X153705975Y-96109672D03*
X153705975Y-97379672D03*
D37*
X156615975Y-95469672D03*
%TD*%
D12*
%TO.C,C1*%
X159506914Y-91818526D03*
X157956914Y-91818526D03*
%TD*%
D22*
%TO.C,R5*%
X178700179Y-116398550D03*
X180350179Y-116398550D03*
%TD*%
D38*
%TO.C,U2*%
X159575680Y-115376388D03*
X158925680Y-115376388D03*
X158275680Y-115376388D03*
X158275680Y-117276388D03*
X158925680Y-117276388D03*
X159575680Y-117276388D03*
%TD*%
D39*
%TO.C,D1*%
X162704823Y-88794524D03*
X162704823Y-84794524D03*
%TD*%
D25*
%TO.C,R8*%
X172740878Y-128357482D03*
X172740878Y-130007482D03*
%TD*%
D10*
%TO.C,C6*%
X174173724Y-128478655D03*
X175723724Y-128478655D03*
%TD*%
%TO.C,C24*%
X154469361Y-124419275D03*
X156019361Y-124419275D03*
%TD*%
D12*
%TO.C,C21*%
X154371567Y-119134045D03*
X152821567Y-119134045D03*
%TD*%
D33*
%TO.C,b_a1*%
X146357799Y-110915534D03*
X146357799Y-102915534D03*
X150857799Y-110915534D03*
X150857799Y-102915534D03*
%TD*%
D12*
%TO.C,C3*%
X167740878Y-126518684D03*
X166190878Y-126518684D03*
%TD*%
D22*
%TO.C,R19*%
X154524973Y-127765370D03*
X156174973Y-127765370D03*
%TD*%
D40*
%TO.C,U7*%
X153429818Y-113589341D03*
X153429818Y-114539341D03*
X153429818Y-115489341D03*
X156129818Y-115489341D03*
X156129818Y-113589341D03*
%TD*%
D25*
%TO.C,R1*%
X141331133Y-89980534D03*
X141331133Y-91630534D03*
%TD*%
%TO.C,R21*%
X166643276Y-88787760D03*
X166643276Y-90437760D03*
%TD*%
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,185 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:06:32-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Drillmap*%
%TF.FilePolarity,Positive*%
%FSLAX45Y45*%
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:06:32*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.050000*%
%ADD11C,0.200000*%
G04 APERTURE END LIST*
D10*
X13756447Y-13233553D02*
X21646447Y-13233553D01*
X13756447Y-13233553D02*
G75*
G02*
X13256447Y-12733553I3J500003D01*
G01*
X13256447Y-8653553D02*
X13256447Y-12733553D01*
X21646447Y-8153553D02*
G75*
G02*
X22146447Y-8653553I3J-499997D01*
G01*
X22146447Y-12733553D02*
X22146447Y-8653553D01*
X21646447Y-8153553D02*
X13756447Y-8153553D01*
X13256447Y-8653553D02*
G75*
G02*
X13756447Y-8153554I499991J8D01*
G01*
X22146447Y-12733553D02*
G75*
G02*
X21646447Y-13233557I-500007J3D01*
G01*
D11*
X13514723Y-13547537D02*
X13514723Y-13347537D01*
X13514723Y-13347537D02*
X13562342Y-13347537D01*
X13562342Y-13347537D02*
X13590914Y-13357061D01*
X13590914Y-13357061D02*
X13609961Y-13376109D01*
X13609961Y-13376109D02*
X13619485Y-13395156D01*
X13619485Y-13395156D02*
X13629009Y-13433251D01*
X13629009Y-13433251D02*
X13629009Y-13461823D01*
X13629009Y-13461823D02*
X13619485Y-13499918D01*
X13619485Y-13499918D02*
X13609961Y-13518966D01*
X13609961Y-13518966D02*
X13590914Y-13538013D01*
X13590914Y-13538013D02*
X13562342Y-13547537D01*
X13562342Y-13547537D02*
X13514723Y-13547537D01*
X13714723Y-13547537D02*
X13714723Y-13414204D01*
X13714723Y-13452299D02*
X13724247Y-13433251D01*
X13724247Y-13433251D02*
X13733771Y-13423728D01*
X13733771Y-13423728D02*
X13752819Y-13414204D01*
X13752819Y-13414204D02*
X13771866Y-13414204D01*
X13838533Y-13547537D02*
X13838533Y-13414204D01*
X13838533Y-13347537D02*
X13829009Y-13357061D01*
X13829009Y-13357061D02*
X13838533Y-13366585D01*
X13838533Y-13366585D02*
X13848057Y-13357061D01*
X13848057Y-13357061D02*
X13838533Y-13347537D01*
X13838533Y-13347537D02*
X13838533Y-13366585D01*
X13962342Y-13547537D02*
X13943295Y-13538013D01*
X13943295Y-13538013D02*
X13933771Y-13518966D01*
X13933771Y-13518966D02*
X13933771Y-13347537D01*
X14067104Y-13547537D02*
X14048057Y-13538013D01*
X14048057Y-13538013D02*
X14038533Y-13518966D01*
X14038533Y-13518966D02*
X14038533Y-13347537D01*
X14295676Y-13547537D02*
X14295676Y-13347537D01*
X14295676Y-13347537D02*
X14362342Y-13490394D01*
X14362342Y-13490394D02*
X14429009Y-13347537D01*
X14429009Y-13347537D02*
X14429009Y-13547537D01*
X14609961Y-13547537D02*
X14609961Y-13442775D01*
X14609961Y-13442775D02*
X14600438Y-13423728D01*
X14600438Y-13423728D02*
X14581390Y-13414204D01*
X14581390Y-13414204D02*
X14543295Y-13414204D01*
X14543295Y-13414204D02*
X14524247Y-13423728D01*
X14609961Y-13538013D02*
X14590914Y-13547537D01*
X14590914Y-13547537D02*
X14543295Y-13547537D01*
X14543295Y-13547537D02*
X14524247Y-13538013D01*
X14524247Y-13538013D02*
X14514723Y-13518966D01*
X14514723Y-13518966D02*
X14514723Y-13499918D01*
X14514723Y-13499918D02*
X14524247Y-13480870D01*
X14524247Y-13480870D02*
X14543295Y-13471347D01*
X14543295Y-13471347D02*
X14590914Y-13471347D01*
X14590914Y-13471347D02*
X14609961Y-13461823D01*
X14705200Y-13414204D02*
X14705200Y-13614204D01*
X14705200Y-13423728D02*
X14724247Y-13414204D01*
X14724247Y-13414204D02*
X14762342Y-13414204D01*
X14762342Y-13414204D02*
X14781390Y-13423728D01*
X14781390Y-13423728D02*
X14790914Y-13433251D01*
X14790914Y-13433251D02*
X14800438Y-13452299D01*
X14800438Y-13452299D02*
X14800438Y-13509442D01*
X14800438Y-13509442D02*
X14790914Y-13528489D01*
X14790914Y-13528489D02*
X14781390Y-13538013D01*
X14781390Y-13538013D02*
X14762342Y-13547537D01*
X14762342Y-13547537D02*
X14724247Y-13547537D01*
X14724247Y-13547537D02*
X14705200Y-13538013D01*
X14886152Y-13528489D02*
X14895676Y-13538013D01*
X14895676Y-13538013D02*
X14886152Y-13547537D01*
X14886152Y-13547537D02*
X14876628Y-13538013D01*
X14876628Y-13538013D02*
X14886152Y-13528489D01*
X14886152Y-13528489D02*
X14886152Y-13547537D01*
X14886152Y-13423728D02*
X14895676Y-13433251D01*
X14895676Y-13433251D02*
X14886152Y-13442775D01*
X14886152Y-13442775D02*
X14876628Y-13433251D01*
X14876628Y-13433251D02*
X14886152Y-13423728D01*
X14886152Y-13423728D02*
X14886152Y-13442775D01*
M02*

View File

@ -0,0 +1,12 @@
M48
; DRILL file {KiCad 9.0.2} date 2025-07-13T16:06:32-0500
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-07-13T16:06:32-05:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.2
; #@! TF.FileFunction,NonPlated,1,2,NPTH
FMAT,2
METRIC
%
G90
G05
M30

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
M48
; DRILL file {KiCad 9.0.2} date 2025-07-13T16:06:32-0500
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-07-13T16:06:32-05:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.2
; #@! TF.FileFunction,Plated,1,2,PTH
FMAT,2
METRIC
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C0.600
%
G90
G05
T1
X139.329Y-86.794
X141.331Y-92.806
X142.831Y-92.806
X144.821Y-86.751
X149.013Y-97.243
X152.034Y-91.911
X152.485Y-107.869
X152.585Y-117.979
X153.357Y-116.22
X155.525Y-126.021
X155.595Y-118.009
X156.894Y-111.915
X157.43Y-127.765
X157.947Y-90.598
X158.916Y-119.65
X158.943Y-124.466
X158.972Y-111.1
X159.063Y-114.46
X160.764Y-107.196
X165.215Y-126.721
X166.275Y-84.324
X167.265Y-117.363
X169.058Y-124.581
X169.851Y-128.69
X170.164Y-115.257
X173.979Y-125.381
X174.846Y-121.979
X176.171Y-106.136
X176.2Y-102.636
X176.2Y-104.036
X176.965Y-128.479
X177.517Y-116.399
X181.016Y-123.112
X182.194Y-122.41
X182.291Y-120.535
X182.307Y-118.017
T2
X137.754Y-84.63G85X137.754Y-84.03
G05
X137.754Y-88.43G85X137.754Y-87.83
G05
X146.394Y-84.63G85X146.394Y-84.03
G05
X146.394Y-88.43G85X146.394Y-87.83
G05
M30

View File

@ -0,0 +1,127 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "9.0.2"
},
"CreationDate": "2025-07-13T16:06:35-05:00"
},
"GeneralSpecs": {
"ProjectId": {
"Name": "stm32card",
"GUID": "73746d33-3263-4617-9264-2e6b69636164",
"Revision": "rev?"
},
"Size": {
"X": 88.95,
"Y": 50.85
},
"LayerNumber": 2,
"BoardThickness": 1.6,
"Finish": "None"
},
"DesignRules": [
{
"Layers": "Outer",
"PadToPad": 0.2,
"PadToTrack": 0.2,
"TrackToTrack": 0.2,
"MinLineWidth": 0.2,
"TrackToRegion": 0.5,
"RegionToRegion": 0.5
}
],
"FilesAttributes": [
{
"Path": "stm32card-F_Cu.gtl",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-B_Cu.gbl",
"FileFunction": "Copper,L2,Bot",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-F_Paste.gtp",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-B_Paste.gbp",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-F_Silkscreen.gto",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-B_Silkscreen.gbo",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-F_Mask.gts",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "stm32card-B_Mask.gbs",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "stm32card-Edge_Cuts.gm1",
"FileFunction": "Profile",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
{
"Type": "Legend",
"Name": "Top Silk Screen"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Top Solder Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "F.Cu"
},
{
"Type": "Dielectric",
"Thickness": 1.51,
"Material": "FR4",
"Name": "F.Cu/B.Cu",
"Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "B.Cu"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
}
]
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,561 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:14:15-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Soldermask,Bot*%
%TF.FilePolarity,Negative*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:14:15*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.200000*%
%ADD11O,1.304000X1.904000*%
G04 APERTURE END LIST*
D10*
G36*
X213619333Y-92270705D02*
G01*
X212250413Y-92270705D01*
X212023575Y-92260135D01*
X211821034Y-92229855D01*
X211634163Y-92170521D01*
X211477751Y-92078363D01*
X211359708Y-91971345D01*
X211262512Y-91841142D01*
X211187838Y-91694214D01*
X211142737Y-91534985D01*
X211127324Y-91360289D01*
X211130436Y-91322554D01*
X211764614Y-91322554D01*
X211778905Y-91459025D01*
X211818016Y-91563128D01*
X211879502Y-91642460D01*
X211965382Y-91701374D01*
X212088427Y-91739735D01*
X212274960Y-91754864D01*
X213016847Y-91754864D01*
X213016847Y-90945931D01*
X212264702Y-90945931D01*
X212079947Y-90961569D01*
X211959337Y-90997405D01*
X211874093Y-91050951D01*
X211814701Y-91120608D01*
X211777855Y-91209199D01*
X211764614Y-91322554D01*
X211130436Y-91322554D01*
X211141320Y-91190562D01*
X211181188Y-91044713D01*
X211245293Y-90918454D01*
X211334643Y-90809722D01*
X211449641Y-90721289D01*
X211594621Y-90652474D01*
X211456480Y-90566392D01*
X211365094Y-90479550D01*
X211289929Y-90359797D01*
X211242624Y-90213143D01*
X211231499Y-90094501D01*
X211828179Y-90094501D01*
X211843751Y-90217536D01*
X211885674Y-90304646D01*
X211952193Y-90365427D01*
X212038178Y-90406127D01*
X212144242Y-90432341D01*
X212274960Y-90441814D01*
X213016847Y-90441814D01*
X213016847Y-89761842D01*
X212352812Y-89761842D01*
X212143894Y-89775141D01*
X211992127Y-89810019D01*
X211902689Y-89870566D01*
X211848263Y-89961633D01*
X211828179Y-90094501D01*
X211231499Y-90094501D01*
X211225693Y-90032585D01*
X211241937Y-89857348D01*
X211288701Y-89704379D01*
X211365094Y-89569318D01*
X211463933Y-89461402D01*
X211587120Y-89374568D01*
X211738784Y-89308317D01*
X211924718Y-89264264D01*
X212152045Y-89246001D01*
X213619333Y-89246001D01*
X213619333Y-92270705D01*
G37*
G36*
X209432889Y-89972868D02*
G01*
X209405412Y-89972868D01*
X209355037Y-89972868D01*
X209355037Y-90570774D01*
X209453405Y-90570774D01*
X209523015Y-90570774D01*
X209696953Y-90587649D01*
X209827714Y-90633361D01*
X209925465Y-90704074D01*
X209996540Y-90801034D01*
X210030818Y-90890614D01*
X210054868Y-91019576D01*
X210064135Y-91199822D01*
X210064135Y-92270705D01*
X210652332Y-92270705D01*
X210652332Y-90031486D01*
X210094909Y-90031486D01*
X210094909Y-90421114D01*
X209957642Y-90216824D01*
X209859154Y-90111903D01*
X209742770Y-90036491D01*
X209602744Y-89989535D01*
X209432889Y-89972868D01*
G37*
G36*
X208362092Y-89993341D02*
G01*
X208562502Y-90052172D01*
X208739088Y-90147920D01*
X208895799Y-90282446D01*
X209018790Y-90444636D01*
X209110258Y-90641878D01*
X209168790Y-90881387D01*
X209189806Y-91172344D01*
X209174170Y-91427066D01*
X209130759Y-91637052D01*
X209063537Y-91809719D01*
X208974580Y-91951246D01*
X208863925Y-92066273D01*
X208693376Y-92187269D01*
X208512949Y-92272353D01*
X208320163Y-92323611D01*
X208111779Y-92341046D01*
X207904787Y-92326698D01*
X207724762Y-92285798D01*
X207567483Y-92220417D01*
X207429541Y-92131022D01*
X207308526Y-92016448D01*
X207198426Y-91872951D01*
X207131938Y-91739946D01*
X207101530Y-91614180D01*
X207697971Y-91614180D01*
X207750630Y-91705204D01*
X207806598Y-91768969D01*
X207887123Y-91825193D01*
X207983330Y-91859859D01*
X208099506Y-91872100D01*
X208210249Y-91862117D01*
X208306341Y-91833479D01*
X208390583Y-91786920D01*
X208474071Y-91710836D01*
X208537679Y-91610077D01*
X208581271Y-91478943D01*
X208601608Y-91309365D01*
X207072770Y-91309365D01*
X207076134Y-91037744D01*
X207086374Y-90922484D01*
X207679470Y-90922484D01*
X208587320Y-90922484D01*
X208557152Y-90782510D01*
X208509890Y-90669960D01*
X208447003Y-90579933D01*
X208364785Y-90511157D01*
X208261961Y-90468703D01*
X208132296Y-90453538D01*
X208012738Y-90467260D01*
X207909844Y-90506909D01*
X207819787Y-90572789D01*
X207750829Y-90660053D01*
X207703342Y-90774141D01*
X207679470Y-90922484D01*
X207086374Y-90922484D01*
X207091272Y-90867346D01*
X207128432Y-90696543D01*
X207185323Y-90543822D01*
X207261448Y-90406826D01*
X207368983Y-90268109D01*
X207491493Y-90159256D01*
X207630377Y-90077282D01*
X207782426Y-90020132D01*
X207948897Y-89984984D01*
X208132296Y-89972868D01*
X208362092Y-89993341D01*
G37*
G36*
X206910105Y-90465261D02*
G01*
X206910105Y-90054933D01*
X206598695Y-90054933D01*
X206598695Y-89421856D01*
X206020755Y-89421856D01*
X206020755Y-90054933D01*
X205657872Y-90054933D01*
X205657872Y-90465261D01*
X206020755Y-90465261D01*
X206020755Y-91653930D01*
X206009434Y-91777784D01*
X205985951Y-91826305D01*
X205932274Y-91848709D01*
X205772727Y-91860377D01*
X205716307Y-91857446D01*
X205657872Y-91848653D01*
X205657872Y-92282428D01*
X205934660Y-92305875D01*
X206149436Y-92299948D01*
X206307086Y-92270301D01*
X206420574Y-92223031D01*
X206500326Y-92161345D01*
X206552084Y-92087795D01*
X206586023Y-91986911D01*
X206598695Y-91849935D01*
X206598695Y-90465261D01*
X206910105Y-90465261D01*
G37*
G36*
X205512059Y-90465261D02*
G01*
X205512059Y-90054933D01*
X205200649Y-90054933D01*
X205200649Y-89421856D01*
X204622709Y-89421856D01*
X204622709Y-90054933D01*
X204259825Y-90054933D01*
X204259825Y-90465261D01*
X204622709Y-90465261D01*
X204622709Y-91653930D01*
X204611388Y-91777784D01*
X204587905Y-91826305D01*
X204534228Y-91848709D01*
X204374681Y-91860377D01*
X204318261Y-91857446D01*
X204259825Y-91848653D01*
X204259825Y-92282428D01*
X204536614Y-92305875D01*
X204751390Y-92299948D01*
X204909040Y-92270301D01*
X205022527Y-92223031D01*
X205102280Y-92161345D01*
X205154038Y-92087795D01*
X205187977Y-91986911D01*
X205200649Y-91849935D01*
X205200649Y-90465261D01*
X205512059Y-90465261D01*
G37*
G36*
X202258927Y-89246001D02*
G01*
X201859224Y-90977988D01*
X201773311Y-91460124D01*
X201685201Y-90988246D01*
X201344848Y-89246001D01*
X200678798Y-89246001D01*
X200320310Y-90977988D01*
X200227987Y-91460124D01*
X200135846Y-90996306D01*
X199732113Y-89246001D01*
X199090609Y-89246001D01*
X199941123Y-92270705D01*
X200543609Y-92270705D01*
X200908325Y-90501898D01*
X201014937Y-89916997D01*
X201121549Y-90501898D01*
X201486265Y-92270705D01*
X202072448Y-92270705D01*
X202929007Y-89246001D01*
X202258927Y-89246001D01*
G37*
G36*
X198177165Y-89993341D02*
G01*
X198377575Y-90052172D01*
X198554161Y-90147920D01*
X198710872Y-90282446D01*
X198833864Y-90444636D01*
X198925331Y-90641878D01*
X198983863Y-90881387D01*
X199004880Y-91172344D01*
X198989244Y-91427066D01*
X198945833Y-91637052D01*
X198878611Y-91809719D01*
X198789653Y-91951246D01*
X198678999Y-92066273D01*
X198508450Y-92187269D01*
X198328022Y-92272353D01*
X198135236Y-92323611D01*
X197926853Y-92341046D01*
X197719860Y-92326698D01*
X197539835Y-92285798D01*
X197382556Y-92220417D01*
X197244614Y-92131022D01*
X197123599Y-92016448D01*
X197013499Y-91872951D01*
X196947011Y-91739946D01*
X196916603Y-91614180D01*
X197513044Y-91614180D01*
X197565703Y-91705204D01*
X197621671Y-91768969D01*
X197702196Y-91825193D01*
X197798403Y-91859859D01*
X197914579Y-91872100D01*
X198025322Y-91862117D01*
X198121414Y-91833479D01*
X198205656Y-91786920D01*
X198289145Y-91710836D01*
X198352752Y-91610077D01*
X198396344Y-91478943D01*
X198416682Y-91309365D01*
X196887844Y-91309365D01*
X196891208Y-91037744D01*
X196901447Y-90922484D01*
X197494543Y-90922484D01*
X198402393Y-90922484D01*
X198372225Y-90782510D01*
X198324963Y-90669960D01*
X198262076Y-90579933D01*
X198179858Y-90511157D01*
X198077034Y-90468703D01*
X197947369Y-90453538D01*
X197827811Y-90467260D01*
X197724917Y-90506909D01*
X197634860Y-90572789D01*
X197565902Y-90660053D01*
X197518416Y-90774141D01*
X197494543Y-90922484D01*
X196901447Y-90922484D01*
X196906345Y-90867346D01*
X196943506Y-90696543D01*
X197000396Y-90543822D01*
X197076521Y-90406826D01*
X197184056Y-90268109D01*
X197306566Y-90159256D01*
X197445450Y-90077282D01*
X197597500Y-90020132D01*
X197763970Y-89984984D01*
X197947369Y-89972868D01*
X198177165Y-89993341D01*
G37*
G36*
X195895180Y-89773566D02*
G01*
X196487407Y-89773566D01*
X196487407Y-89246001D01*
X195895180Y-89246001D01*
X195895180Y-89773566D01*
G37*
G36*
X196487407Y-90031486D02*
G01*
X195895180Y-90031486D01*
X195895180Y-92270705D01*
X196487407Y-92270705D01*
X196487407Y-90031486D01*
G37*
G36*
X194732706Y-92270705D02*
G01*
X195316874Y-92270705D01*
X195316874Y-89246001D01*
X194732706Y-89246001D01*
X194732706Y-92270705D01*
G37*
G36*
X193516265Y-89987225D02*
G01*
X193705324Y-90026817D01*
X193858133Y-90087679D01*
X193980988Y-90167716D01*
X194078562Y-90266875D01*
X194159212Y-90398906D01*
X194214484Y-90556941D01*
X194242510Y-90746629D01*
X193679042Y-90746629D01*
X193646725Y-90628056D01*
X193596977Y-90543480D01*
X193532232Y-90490307D01*
X193438148Y-90455155D01*
X193304068Y-90441814D01*
X193132188Y-90456869D01*
X193024349Y-90494387D01*
X192972718Y-90537195D01*
X192940713Y-90598520D01*
X192928911Y-90685080D01*
X192942235Y-90752852D01*
X192981828Y-90807462D01*
X193053841Y-90852142D01*
X193135637Y-90878003D01*
X193285567Y-90903799D01*
X193484320Y-90928529D01*
X193709282Y-90967788D01*
X193876138Y-91016944D01*
X193996680Y-91072877D01*
X194110715Y-91155974D01*
X194197832Y-91254879D01*
X194260880Y-91371442D01*
X194300349Y-91509185D01*
X194314318Y-91672981D01*
X194300712Y-91830700D01*
X194262354Y-91962542D01*
X194201174Y-92073417D01*
X194116664Y-92166840D01*
X193976008Y-92262138D01*
X193811127Y-92320559D01*
X193615478Y-92341046D01*
X193459894Y-92328599D01*
X193318670Y-92292337D01*
X193189213Y-92232786D01*
X193040128Y-92130957D01*
X192910410Y-92010403D01*
X192894107Y-92144675D01*
X192857287Y-92270705D01*
X192221828Y-92270705D01*
X192221828Y-92200363D01*
X192273326Y-92167659D01*
X192308107Y-92129471D01*
X192329072Y-92075992D01*
X192342912Y-91965889D01*
X192346942Y-91705404D01*
X192346942Y-91397292D01*
X192930926Y-91397292D01*
X192945901Y-91546778D01*
X192980208Y-91659903D01*
X193030462Y-91744612D01*
X193095973Y-91806704D01*
X193206125Y-91869520D01*
X193321132Y-91906562D01*
X193443287Y-91918995D01*
X193554541Y-91901642D01*
X193645153Y-91851401D01*
X193689211Y-91800451D01*
X193717579Y-91729629D01*
X193728135Y-91632132D01*
X193712373Y-91526191D01*
X193667826Y-91444358D01*
X193592947Y-91380623D01*
X193498811Y-91340175D01*
X193328615Y-91299473D01*
X193197456Y-91274560D01*
X193042667Y-91234077D01*
X192930926Y-91176924D01*
X192930926Y-91397292D01*
X192346942Y-91397292D01*
X192346942Y-90672257D01*
X192367323Y-90473096D01*
X192423044Y-90321083D01*
X192510377Y-90205228D01*
X192631790Y-90119047D01*
X192826549Y-90039167D01*
X193042432Y-89989917D01*
X193283369Y-89972868D01*
X193516265Y-89987225D01*
G37*
G36*
X190591874Y-89972868D02*
G01*
X190367256Y-89994407D01*
X190181000Y-90055174D01*
X190025291Y-90152753D01*
X189934468Y-90249844D01*
X189866095Y-90377295D01*
X189821371Y-90542565D01*
X189804923Y-90755605D01*
X189804923Y-92270705D01*
X190403379Y-92270705D01*
X190403379Y-90900136D01*
X190416822Y-90733684D01*
X190450457Y-90627194D01*
X190501654Y-90552882D01*
X190570417Y-90499695D01*
X190660479Y-90465884D01*
X190778353Y-90453538D01*
X190919887Y-90470629D01*
X191030853Y-90518357D01*
X191118505Y-90595789D01*
X191186116Y-90707795D01*
X191227745Y-90852848D01*
X191243452Y-91051078D01*
X191243452Y-92270705D01*
X191825605Y-92270705D01*
X191825605Y-90031486D01*
X191261954Y-90031486D01*
X191261954Y-90352604D01*
X191145471Y-90198058D01*
X191048913Y-90106957D01*
X190922372Y-90034347D01*
X190771945Y-89988954D01*
X190591874Y-89972868D01*
G37*
G36*
X187824358Y-90312671D02*
G01*
X187938090Y-90170009D01*
X188080630Y-90062993D01*
X188188975Y-90013556D01*
X188308368Y-89983300D01*
X188441132Y-89972868D01*
X188654658Y-89994356D01*
X188839573Y-90056210D01*
X189001844Y-90157715D01*
X189145284Y-90302412D01*
X189255200Y-90472169D01*
X189337298Y-90674979D01*
X189389768Y-90917164D01*
X189408517Y-91206416D01*
X189390354Y-91453878D01*
X189338511Y-91669119D01*
X189255364Y-91857397D01*
X189141071Y-92022859D01*
X188996038Y-92164897D01*
X188840020Y-92262750D01*
X188670207Y-92321146D01*
X188482165Y-92341046D01*
X188325753Y-92330287D01*
X188194675Y-92300127D01*
X188084660Y-92252753D01*
X187985651Y-92185164D01*
X187890840Y-92092269D01*
X187799811Y-91969919D01*
X187799811Y-92270705D01*
X187232130Y-92270705D01*
X187232130Y-91190113D01*
X187808055Y-91190113D01*
X187823852Y-91384248D01*
X187867901Y-91543207D01*
X187937198Y-91673714D01*
X188008989Y-91755203D01*
X188093788Y-91812599D01*
X188194129Y-91847936D01*
X188314187Y-91860377D01*
X188434284Y-91847765D01*
X188533272Y-91812123D01*
X188615685Y-91754442D01*
X188684215Y-91672615D01*
X188748872Y-91541856D01*
X188790780Y-91377498D01*
X188806031Y-91171429D01*
X188791559Y-90980895D01*
X188750801Y-90820481D01*
X188686230Y-90684897D01*
X188618097Y-90599414D01*
X188534979Y-90539210D01*
X188433997Y-90501942D01*
X188310157Y-90488709D01*
X188202113Y-90500837D01*
X188104652Y-90536503D01*
X188015051Y-90596603D01*
X187930112Y-90692177D01*
X187865801Y-90817653D01*
X187823595Y-90980415D01*
X187808055Y-91190113D01*
X187232130Y-91190113D01*
X187232130Y-89246001D01*
X187824358Y-89246001D01*
X187824358Y-90312671D01*
G37*
D11*
%TO.C,J1*%
X146394466Y-88130000D03*
X146394466Y-84330000D03*
X137754466Y-88130000D03*
X137754466Y-84330000D03*
%TD*%
M02*

View File

@ -0,0 +1,15 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:14:14-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Bot*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:14:14*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 APERTURE END LIST*
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,46 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:14:15-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Profile,NP*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:14:15*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,Profile*%
%ADD10C,0.050000*%
%TD*%
G04 APERTURE END LIST*
D10*
X137564466Y-132335534D02*
X216464466Y-132335534D01*
X137564466Y-132335534D02*
G75*
G02*
X132564466Y-127335534I34J5000034D01*
G01*
X132564466Y-86535534D02*
X132564466Y-127335534D01*
X216464466Y-81535534D02*
G75*
G02*
X221464466Y-86535534I34J-4999966D01*
G01*
X221464466Y-127335534D02*
X221464466Y-86535534D01*
X216464466Y-81535534D02*
X137564466Y-81535534D01*
X132564466Y-86535534D02*
G75*
G02*
X137564466Y-81535536I4999914J84D01*
G01*
X221464466Y-127335534D02*
G75*
G02*
X216464466Y-132335566I-5000066J34D01*
G01*
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,555 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:14:15-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Soldermask,Top*%
%TF.FilePolarity,Negative*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:14:15*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 Aperture macros list*
%AMRoundRect*
0 Rectangle with rounded corners*
0 $1 Rounding radius*
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
0 Add a 4 corners polygon primitive as box body*
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
0 Add four circle primitives for the rounded corners*
1,1,$1+$1,$2,$3*
1,1,$1+$1,$4,$5*
1,1,$1+$1,$6,$7*
1,1,$1+$1,$8,$9*
0 Add four rect primitives between the rounded corners*
20,1,$1+$1,$2,$3,$4,$5,0*
20,1,$1+$1,$4,$5,$6,$7,0*
20,1,$1+$1,$6,$7,$8,$9,0*
20,1,$1+$1,$8,$9,$2,$3,0*%
G04 Aperture macros list end*
%ADD10RoundRect,0.225000X-0.225000X-0.250000X0.225000X-0.250000X0.225000X0.250000X-0.225000X0.250000X0*%
%ADD11RoundRect,0.150000X0.150000X-0.587500X0.150000X0.587500X-0.150000X0.587500X-0.150000X-0.587500X0*%
%ADD12RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*%
%ADD13R,1.800000X1.200000*%
%ADD14RoundRect,0.200000X0.200000X0.275000X-0.200000X0.275000X-0.200000X-0.275000X0.200000X-0.275000X0*%
%ADD15RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*%
%ADD16R,3.000000X5.500000*%
%ADD17RoundRect,0.200000X0.275000X-0.200000X0.275000X0.200000X-0.275000X0.200000X-0.275000X-0.200000X0*%
%ADD18RoundRect,0.225000X0.250000X-0.225000X0.250000X0.225000X-0.250000X0.225000X-0.250000X-0.225000X0*%
%ADD19R,2.350000X3.500000*%
%ADD20C,2.000000*%
%ADD21RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
%ADD22RoundRect,0.250000X0.250000X0.475000X-0.250000X0.475000X-0.250000X-0.475000X0.250000X-0.475000X0*%
%ADD23RoundRect,0.200000X-0.200000X-0.275000X0.200000X-0.275000X0.200000X0.275000X-0.200000X0.275000X0*%
%ADD24R,2.200000X0.400000*%
%ADD25RoundRect,0.100000X-0.225000X-0.100000X0.225000X-0.100000X0.225000X0.100000X-0.225000X0.100000X0*%
%ADD26RoundRect,0.200000X-0.275000X0.200000X-0.275000X-0.200000X0.275000X-0.200000X0.275000X0.200000X0*%
%ADD27RoundRect,0.102000X0.350000X0.600000X-0.350000X0.600000X-0.350000X-0.600000X0.350000X-0.600000X0*%
%ADD28RoundRect,0.102000X0.380000X0.600000X-0.380000X0.600000X-0.380000X-0.600000X0.380000X-0.600000X0*%
%ADD29RoundRect,0.102000X0.400000X0.600000X-0.400000X0.600000X-0.400000X-0.600000X0.400000X-0.600000X0*%
%ADD30O,1.304000X1.904000*%
%ADD31RoundRect,0.243750X0.243750X0.456250X-0.243750X0.456250X-0.243750X-0.456250X0.243750X-0.456250X0*%
%ADD32R,1.070000X0.530000*%
%ADD33R,1.200000X0.270000*%
%ADD34R,0.270000X1.200000*%
%ADD35R,1.200000X1.800000*%
%ADD36RoundRect,0.218750X0.218750X0.256250X-0.218750X0.256250X-0.218750X-0.256250X0.218750X-0.256250X0*%
%ADD37R,0.600000X1.000000*%
%ADD38R,1.200000X0.600000*%
%ADD39R,2.400000X3.300000*%
%ADD40RoundRect,0.100000X-0.100000X0.225000X-0.100000X-0.225000X0.100000X-0.225000X0.100000X0.225000X0*%
%ADD41RoundRect,0.250000X0.650000X-1.000000X0.650000X1.000000X-0.650000X1.000000X-0.650000X-1.000000X0*%
%ADD42R,1.200000X0.500000*%
G04 APERTURE END LIST*
D10*
%TO.C,C14*%
X186594442Y-122410210D03*
X188144442Y-122410210D03*
%TD*%
D11*
%TO.C,Q2*%
X157919747Y-124145560D03*
X159819747Y-124145560D03*
X158869747Y-122270560D03*
%TD*%
D12*
%TO.C,C4*%
X168208349Y-118253643D03*
X166658349Y-118253643D03*
%TD*%
D10*
%TO.C,C25*%
X158188180Y-107195974D03*
X159738180Y-107195974D03*
%TD*%
D13*
%TO.C,b_up1*%
X202951133Y-104665534D03*
X210951133Y-104665534D03*
X202951133Y-109165534D03*
X210951133Y-109165534D03*
%TD*%
D10*
%TO.C,C16*%
X186498159Y-120535261D03*
X188048159Y-120535261D03*
%TD*%
D14*
%TO.C,R22*%
X158253611Y-125980447D03*
X156603611Y-125980447D03*
%TD*%
D15*
%TO.C,C22*%
X159771321Y-108741969D03*
X159771321Y-110291969D03*
%TD*%
D16*
%TO.C,L2*%
X158924572Y-102960590D03*
X154264572Y-102960590D03*
%TD*%
D14*
%TO.C,R14*%
X163868852Y-97111187D03*
X162218852Y-97111187D03*
%TD*%
D17*
%TO.C,R24*%
X161212267Y-117283573D03*
X161212267Y-115633573D03*
%TD*%
D18*
%TO.C,C9*%
X152049345Y-94727156D03*
X152049345Y-93177156D03*
%TD*%
D19*
%TO.C,L1*%
X153109399Y-86734328D03*
X158809399Y-86734328D03*
%TD*%
D20*
%TO.C,SWDIO1*%
X164177791Y-125033730D03*
%TD*%
%TO.C,TP3*%
X162215982Y-129637235D03*
%TD*%
D21*
%TO.C,Q1*%
X164907099Y-117901836D03*
X164907099Y-116001836D03*
X163032099Y-116951836D03*
%TD*%
D22*
%TO.C,C7*%
X152194313Y-97232762D03*
X150294313Y-97232762D03*
%TD*%
D23*
%TO.C,R10*%
X174123734Y-129933381D03*
X175773734Y-129933381D03*
%TD*%
%TO.C,R17*%
X158138180Y-111847959D03*
X159788180Y-111847959D03*
%TD*%
D10*
%TO.C,C12*%
X175911855Y-126779815D03*
X177461855Y-126779815D03*
%TD*%
D24*
%TO.C,U5*%
X174559466Y-111035534D03*
X174559466Y-110335534D03*
X174559466Y-109635534D03*
X174559466Y-108935534D03*
X174559466Y-108235534D03*
X174559466Y-107535534D03*
X174559466Y-106835534D03*
X174559466Y-106135534D03*
X174559466Y-105435534D03*
X174559466Y-104735534D03*
X174559466Y-104035534D03*
X174559466Y-103335534D03*
X174559466Y-102635534D03*
%TD*%
D10*
%TO.C,C11*%
X178216650Y-124571621D03*
X179766650Y-124571621D03*
%TD*%
D14*
%TO.C,R11*%
X171355995Y-129935313D03*
X169705995Y-129935313D03*
%TD*%
D20*
%TO.C,TP2*%
X134880772Y-88298705D03*
%TD*%
D25*
%TO.C,U3*%
X158013180Y-118919663D03*
X158013180Y-119569663D03*
X158013180Y-120219663D03*
X159913180Y-120219663D03*
X159913180Y-119569663D03*
X159913180Y-118919663D03*
%TD*%
D26*
%TO.C,R2*%
X142831133Y-89980534D03*
X142831133Y-91630534D03*
%TD*%
D14*
%TO.C,R15*%
X163868852Y-95545650D03*
X162218852Y-95545650D03*
%TD*%
D10*
%TO.C,C13*%
X181710179Y-116398550D03*
X183260179Y-116398550D03*
%TD*%
%TO.C,C10*%
X158188180Y-113473015D03*
X159738180Y-113473015D03*
%TD*%
D14*
%TO.C,R18*%
X154421265Y-126000289D03*
X152771265Y-126000289D03*
%TD*%
D26*
%TO.C,R16*%
X158155040Y-108691969D03*
X158155040Y-110341969D03*
%TD*%
D12*
%TO.C,C8*%
X179766650Y-121651621D03*
X178216650Y-121651621D03*
%TD*%
D23*
%TO.C,R9*%
X183488159Y-120535261D03*
X185138159Y-120535261D03*
%TD*%
%TO.C,R13*%
X161308400Y-122213186D03*
X162958400Y-122213186D03*
%TD*%
D10*
%TO.C,C15*%
X186482004Y-118016635D03*
X188032004Y-118016635D03*
%TD*%
D13*
%TO.C,b_left1*%
X210951133Y-113132201D03*
X218951133Y-113132201D03*
X210951133Y-117632201D03*
X218951133Y-117632201D03*
%TD*%
D10*
%TO.C,C5*%
X178216650Y-123111621D03*
X179766650Y-123111621D03*
%TD*%
D13*
%TO.C,b_right1*%
X194951133Y-113132201D03*
X202951133Y-113132201D03*
X194951133Y-117632201D03*
X202951133Y-117632201D03*
%TD*%
D23*
%TO.C,R12*%
X161501172Y-120481830D03*
X163151172Y-120481830D03*
%TD*%
D10*
%TO.C,C17*%
X164511172Y-120481830D03*
X166061172Y-120481830D03*
%TD*%
D23*
%TO.C,R6*%
X183584442Y-122410210D03*
X185234442Y-122410210D03*
%TD*%
D10*
%TO.C,C19*%
X154004818Y-111915048D03*
X155554818Y-111915048D03*
%TD*%
D20*
%TO.C,TP_mosi1*%
X174362663Y-114235371D03*
%TD*%
D27*
%TO.C,J1*%
X142574466Y-88210000D03*
D28*
X140554466Y-88210000D03*
D29*
X139324466Y-88210000D03*
D27*
X141574466Y-88210000D03*
D28*
X143594466Y-88210000D03*
D29*
X144824466Y-88210000D03*
D30*
X146394466Y-88130000D03*
X146394466Y-84330000D03*
X137754466Y-88130000D03*
X137754466Y-84330000D03*
%TD*%
D31*
%TO.C,D2*%
X164192771Y-91972776D03*
X162317771Y-91972776D03*
%TD*%
D23*
%TO.C,R7*%
X183472004Y-118016635D03*
X185122004Y-118016635D03*
%TD*%
D20*
%TO.C,tst_nrst1*%
X180021047Y-127320001D03*
%TD*%
D32*
%TO.C,U6*%
X153629818Y-106919279D03*
X153629818Y-107869279D03*
X153629818Y-108819279D03*
X155929818Y-108819279D03*
X155929818Y-107869279D03*
X155929818Y-106919279D03*
%TD*%
D14*
%TO.C,R4*%
X156264853Y-91818710D03*
X154614853Y-91818710D03*
%TD*%
D20*
%TO.C,TestPoint_gnd1*%
X166260568Y-86489059D03*
%TD*%
D10*
%TO.C,C2*%
X168613611Y-116553306D03*
X170163611Y-116553306D03*
%TD*%
D20*
%TO.C,TP_sck1*%
X178381844Y-108935534D03*
%TD*%
D10*
%TO.C,C18*%
X164318400Y-122213186D03*
X165868400Y-122213186D03*
%TD*%
D33*
%TO.C,U4*%
X176090878Y-125284125D03*
X176090878Y-124784125D03*
X176090878Y-124284125D03*
X176090878Y-123784125D03*
X176090878Y-123284125D03*
X176090878Y-122784125D03*
X176090878Y-122284125D03*
X176090878Y-121784125D03*
X176090878Y-121284125D03*
X176090878Y-120784125D03*
X176090878Y-120284125D03*
X176090878Y-119784125D03*
D34*
X174740878Y-118434125D03*
X174240878Y-118434125D03*
X173740878Y-118434125D03*
X173240878Y-118434125D03*
X172740878Y-118434125D03*
X172240878Y-118434125D03*
X171740878Y-118434125D03*
X171240878Y-118434125D03*
X170740878Y-118434125D03*
X170240878Y-118434125D03*
X169740878Y-118434125D03*
X169240878Y-118434125D03*
D33*
X167890878Y-119784125D03*
X167890878Y-120284125D03*
X167890878Y-120784125D03*
X167890878Y-121284125D03*
X167890878Y-121784125D03*
X167890878Y-122284125D03*
X167890878Y-122784125D03*
X167890878Y-123284125D03*
X167890878Y-123784125D03*
X167890878Y-124284125D03*
X167890878Y-124784125D03*
X167890878Y-125284125D03*
D34*
X169240878Y-126634125D03*
X169740878Y-126634125D03*
X170240878Y-126634125D03*
X170740878Y-126634125D03*
X171240878Y-126634125D03*
X171740878Y-126634125D03*
X172240878Y-126634125D03*
X172740878Y-126634125D03*
X173240878Y-126634125D03*
X173740878Y-126634125D03*
X174240878Y-126634125D03*
X174740878Y-126634125D03*
%TD*%
D12*
%TO.C,C20*%
X156306367Y-117183014D03*
X154756367Y-117183014D03*
%TD*%
D23*
%TO.C,R23*%
X159750308Y-125969797D03*
X161400308Y-125969797D03*
%TD*%
D35*
%TO.C,b_b1*%
X146357799Y-127848868D03*
X146357799Y-119848868D03*
X150857799Y-127848868D03*
X150857799Y-119848868D03*
%TD*%
D13*
%TO.C,b_down1*%
X210951133Y-126098868D03*
X202951133Y-126098868D03*
X210951133Y-121598868D03*
X202951133Y-121598868D03*
%TD*%
D36*
%TO.C,D3*%
X163876963Y-93905116D03*
X162301963Y-93905116D03*
%TD*%
D23*
%TO.C,R20*%
X153954818Y-110310463D03*
X155604818Y-110310463D03*
%TD*%
D37*
%TO.C,U9*%
X154476567Y-120794558D03*
X153526567Y-120794558D03*
X152576567Y-120794558D03*
X152576567Y-122994558D03*
X154476567Y-122994558D03*
%TD*%
D38*
%TO.C,U1*%
X159525975Y-97379672D03*
X159525975Y-96109672D03*
X159525975Y-94829672D03*
X159525975Y-93559672D03*
X153705975Y-93559672D03*
X153705975Y-94829672D03*
X153705975Y-96109672D03*
X153705975Y-97379672D03*
D39*
X156615975Y-95469672D03*
%TD*%
D12*
%TO.C,C1*%
X159506914Y-91818526D03*
X157956914Y-91818526D03*
%TD*%
D23*
%TO.C,R5*%
X178700179Y-116398550D03*
X180350179Y-116398550D03*
%TD*%
D40*
%TO.C,U2*%
X159575680Y-115376388D03*
X158925680Y-115376388D03*
X158275680Y-115376388D03*
X158275680Y-117276388D03*
X158925680Y-117276388D03*
X159575680Y-117276388D03*
%TD*%
D41*
%TO.C,D1*%
X162704823Y-88794524D03*
X162704823Y-84794524D03*
%TD*%
D20*
%TO.C,SWCLK1*%
X165303801Y-129637235D03*
%TD*%
D26*
%TO.C,R8*%
X172740878Y-128357482D03*
X172740878Y-130007482D03*
%TD*%
D10*
%TO.C,C6*%
X174173724Y-128478655D03*
X175723724Y-128478655D03*
%TD*%
%TO.C,C24*%
X154469361Y-124419275D03*
X156019361Y-124419275D03*
%TD*%
D12*
%TO.C,C21*%
X154371567Y-119134045D03*
X152821567Y-119134045D03*
%TD*%
D35*
%TO.C,b_a1*%
X146357799Y-110915534D03*
X146357799Y-102915534D03*
X150857799Y-110915534D03*
X150857799Y-102915534D03*
%TD*%
D12*
%TO.C,C3*%
X167740878Y-126518684D03*
X166190878Y-126518684D03*
%TD*%
D20*
%TO.C,TP1*%
X166644763Y-96653916D03*
%TD*%
D23*
%TO.C,R19*%
X154524973Y-127765370D03*
X156174973Y-127765370D03*
%TD*%
D42*
%TO.C,U7*%
X153429818Y-113589341D03*
X153429818Y-114539341D03*
X153429818Y-115489341D03*
X156129818Y-115489341D03*
X156129818Y-113589341D03*
%TD*%
D26*
%TO.C,R1*%
X141331133Y-89980534D03*
X141331133Y-91630534D03*
%TD*%
%TO.C,R21*%
X166643276Y-88787760D03*
X166643276Y-90437760D03*
%TD*%
M02*

View File

@ -0,0 +1,512 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:14:14-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Top*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:14:14*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 Aperture macros list*
%AMRoundRect*
0 Rectangle with rounded corners*
0 $1 Rounding radius*
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
0 Add a 4 corners polygon primitive as box body*
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
0 Add four circle primitives for the rounded corners*
1,1,$1+$1,$2,$3*
1,1,$1+$1,$4,$5*
1,1,$1+$1,$6,$7*
1,1,$1+$1,$8,$9*
0 Add four rect primitives between the rounded corners*
20,1,$1+$1,$2,$3,$4,$5,0*
20,1,$1+$1,$4,$5,$6,$7,0*
20,1,$1+$1,$6,$7,$8,$9,0*
20,1,$1+$1,$8,$9,$2,$3,0*%
G04 Aperture macros list end*
%ADD10RoundRect,0.225000X-0.225000X-0.250000X0.225000X-0.250000X0.225000X0.250000X-0.225000X0.250000X0*%
%ADD11RoundRect,0.150000X0.150000X-0.587500X0.150000X0.587500X-0.150000X0.587500X-0.150000X-0.587500X0*%
%ADD12RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*%
%ADD13R,1.800000X1.200000*%
%ADD14RoundRect,0.200000X0.200000X0.275000X-0.200000X0.275000X-0.200000X-0.275000X0.200000X-0.275000X0*%
%ADD15RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*%
%ADD16R,3.000000X5.500000*%
%ADD17RoundRect,0.200000X0.275000X-0.200000X0.275000X0.200000X-0.275000X0.200000X-0.275000X-0.200000X0*%
%ADD18RoundRect,0.225000X0.250000X-0.225000X0.250000X0.225000X-0.250000X0.225000X-0.250000X-0.225000X0*%
%ADD19R,2.350000X3.500000*%
%ADD20RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
%ADD21RoundRect,0.250000X0.250000X0.475000X-0.250000X0.475000X-0.250000X-0.475000X0.250000X-0.475000X0*%
%ADD22RoundRect,0.200000X-0.200000X-0.275000X0.200000X-0.275000X0.200000X0.275000X-0.200000X0.275000X0*%
%ADD23R,2.200000X0.400000*%
%ADD24RoundRect,0.100000X-0.225000X-0.100000X0.225000X-0.100000X0.225000X0.100000X-0.225000X0.100000X0*%
%ADD25RoundRect,0.200000X-0.275000X0.200000X-0.275000X-0.200000X0.275000X-0.200000X0.275000X0.200000X0*%
%ADD26R,0.700000X1.200000*%
%ADD27R,0.760000X1.200000*%
%ADD28R,0.800000X1.200000*%
%ADD29RoundRect,0.243750X0.243750X0.456250X-0.243750X0.456250X-0.243750X-0.456250X0.243750X-0.456250X0*%
%ADD30R,1.070000X0.530000*%
%ADD31R,1.200000X0.270000*%
%ADD32R,0.270000X1.200000*%
%ADD33R,1.200000X1.800000*%
%ADD34RoundRect,0.218750X0.218750X0.256250X-0.218750X0.256250X-0.218750X-0.256250X0.218750X-0.256250X0*%
%ADD35R,0.600000X1.000000*%
%ADD36R,1.200000X0.600000*%
%ADD37R,2.400000X3.300000*%
%ADD38RoundRect,0.100000X-0.100000X0.225000X-0.100000X-0.225000X0.100000X-0.225000X0.100000X0.225000X0*%
%ADD39RoundRect,0.250000X0.650000X-1.000000X0.650000X1.000000X-0.650000X1.000000X-0.650000X-1.000000X0*%
%ADD40R,1.200000X0.500000*%
G04 APERTURE END LIST*
D10*
%TO.C,C14*%
X186594442Y-122410210D03*
X188144442Y-122410210D03*
%TD*%
D11*
%TO.C,Q2*%
X157919747Y-124145560D03*
X159819747Y-124145560D03*
X158869747Y-122270560D03*
%TD*%
D12*
%TO.C,C4*%
X168208349Y-118253643D03*
X166658349Y-118253643D03*
%TD*%
D10*
%TO.C,C25*%
X158188180Y-107195974D03*
X159738180Y-107195974D03*
%TD*%
D13*
%TO.C,b_up1*%
X202951133Y-104665534D03*
X210951133Y-104665534D03*
X202951133Y-109165534D03*
X210951133Y-109165534D03*
%TD*%
D10*
%TO.C,C16*%
X186498159Y-120535261D03*
X188048159Y-120535261D03*
%TD*%
D14*
%TO.C,R22*%
X158253611Y-125980447D03*
X156603611Y-125980447D03*
%TD*%
D15*
%TO.C,C22*%
X159771321Y-108741969D03*
X159771321Y-110291969D03*
%TD*%
D16*
%TO.C,L2*%
X158924572Y-102960590D03*
X154264572Y-102960590D03*
%TD*%
D14*
%TO.C,R14*%
X163868852Y-97111187D03*
X162218852Y-97111187D03*
%TD*%
D17*
%TO.C,R24*%
X161212267Y-117283573D03*
X161212267Y-115633573D03*
%TD*%
D18*
%TO.C,C9*%
X152049345Y-94727156D03*
X152049345Y-93177156D03*
%TD*%
D19*
%TO.C,L1*%
X153109399Y-86734328D03*
X158809399Y-86734328D03*
%TD*%
D20*
%TO.C,Q1*%
X164907099Y-117901836D03*
X164907099Y-116001836D03*
X163032099Y-116951836D03*
%TD*%
D21*
%TO.C,C7*%
X152194313Y-97232762D03*
X150294313Y-97232762D03*
%TD*%
D22*
%TO.C,R10*%
X174123734Y-129933381D03*
X175773734Y-129933381D03*
%TD*%
%TO.C,R17*%
X158138180Y-111847959D03*
X159788180Y-111847959D03*
%TD*%
D10*
%TO.C,C12*%
X175911855Y-126779815D03*
X177461855Y-126779815D03*
%TD*%
D23*
%TO.C,U5*%
X174559466Y-111035534D03*
X174559466Y-110335534D03*
X174559466Y-109635534D03*
X174559466Y-108935534D03*
X174559466Y-108235534D03*
X174559466Y-107535534D03*
X174559466Y-106835534D03*
X174559466Y-106135534D03*
X174559466Y-105435534D03*
X174559466Y-104735534D03*
X174559466Y-104035534D03*
X174559466Y-103335534D03*
X174559466Y-102635534D03*
%TD*%
D10*
%TO.C,C11*%
X178216650Y-124571621D03*
X179766650Y-124571621D03*
%TD*%
D14*
%TO.C,R11*%
X171355995Y-129935313D03*
X169705995Y-129935313D03*
%TD*%
D24*
%TO.C,U3*%
X158013180Y-118919663D03*
X158013180Y-119569663D03*
X158013180Y-120219663D03*
X159913180Y-120219663D03*
X159913180Y-119569663D03*
X159913180Y-118919663D03*
%TD*%
D25*
%TO.C,R2*%
X142831133Y-89980534D03*
X142831133Y-91630534D03*
%TD*%
D14*
%TO.C,R15*%
X163868852Y-95545650D03*
X162218852Y-95545650D03*
%TD*%
D10*
%TO.C,C13*%
X181710179Y-116398550D03*
X183260179Y-116398550D03*
%TD*%
%TO.C,C10*%
X158188180Y-113473015D03*
X159738180Y-113473015D03*
%TD*%
D14*
%TO.C,R18*%
X154421265Y-126000289D03*
X152771265Y-126000289D03*
%TD*%
D25*
%TO.C,R16*%
X158155040Y-108691969D03*
X158155040Y-110341969D03*
%TD*%
D12*
%TO.C,C8*%
X179766650Y-121651621D03*
X178216650Y-121651621D03*
%TD*%
D22*
%TO.C,R9*%
X183488159Y-120535261D03*
X185138159Y-120535261D03*
%TD*%
%TO.C,R13*%
X161308400Y-122213186D03*
X162958400Y-122213186D03*
%TD*%
D10*
%TO.C,C15*%
X186482004Y-118016635D03*
X188032004Y-118016635D03*
%TD*%
D13*
%TO.C,b_left1*%
X210951133Y-113132201D03*
X218951133Y-113132201D03*
X210951133Y-117632201D03*
X218951133Y-117632201D03*
%TD*%
D10*
%TO.C,C5*%
X178216650Y-123111621D03*
X179766650Y-123111621D03*
%TD*%
D13*
%TO.C,b_right1*%
X194951133Y-113132201D03*
X202951133Y-113132201D03*
X194951133Y-117632201D03*
X202951133Y-117632201D03*
%TD*%
D22*
%TO.C,R12*%
X161501172Y-120481830D03*
X163151172Y-120481830D03*
%TD*%
D10*
%TO.C,C17*%
X164511172Y-120481830D03*
X166061172Y-120481830D03*
%TD*%
D22*
%TO.C,R6*%
X183584442Y-122410210D03*
X185234442Y-122410210D03*
%TD*%
D10*
%TO.C,C19*%
X154004818Y-111915048D03*
X155554818Y-111915048D03*
%TD*%
D26*
%TO.C,J1*%
X142574466Y-88210000D03*
D27*
X140554466Y-88210000D03*
D28*
X139324466Y-88210000D03*
D26*
X141574466Y-88210000D03*
D27*
X143594466Y-88210000D03*
D28*
X144824466Y-88210000D03*
%TD*%
D29*
%TO.C,D2*%
X164192771Y-91972776D03*
X162317771Y-91972776D03*
%TD*%
D22*
%TO.C,R7*%
X183472004Y-118016635D03*
X185122004Y-118016635D03*
%TD*%
D30*
%TO.C,U6*%
X153629818Y-106919279D03*
X153629818Y-107869279D03*
X153629818Y-108819279D03*
X155929818Y-108819279D03*
X155929818Y-107869279D03*
X155929818Y-106919279D03*
%TD*%
D14*
%TO.C,R4*%
X156264853Y-91818710D03*
X154614853Y-91818710D03*
%TD*%
D10*
%TO.C,C2*%
X168613611Y-116553306D03*
X170163611Y-116553306D03*
%TD*%
%TO.C,C18*%
X164318400Y-122213186D03*
X165868400Y-122213186D03*
%TD*%
D31*
%TO.C,U4*%
X176090878Y-125284125D03*
X176090878Y-124784125D03*
X176090878Y-124284125D03*
X176090878Y-123784125D03*
X176090878Y-123284125D03*
X176090878Y-122784125D03*
X176090878Y-122284125D03*
X176090878Y-121784125D03*
X176090878Y-121284125D03*
X176090878Y-120784125D03*
X176090878Y-120284125D03*
X176090878Y-119784125D03*
D32*
X174740878Y-118434125D03*
X174240878Y-118434125D03*
X173740878Y-118434125D03*
X173240878Y-118434125D03*
X172740878Y-118434125D03*
X172240878Y-118434125D03*
X171740878Y-118434125D03*
X171240878Y-118434125D03*
X170740878Y-118434125D03*
X170240878Y-118434125D03*
X169740878Y-118434125D03*
X169240878Y-118434125D03*
D31*
X167890878Y-119784125D03*
X167890878Y-120284125D03*
X167890878Y-120784125D03*
X167890878Y-121284125D03*
X167890878Y-121784125D03*
X167890878Y-122284125D03*
X167890878Y-122784125D03*
X167890878Y-123284125D03*
X167890878Y-123784125D03*
X167890878Y-124284125D03*
X167890878Y-124784125D03*
X167890878Y-125284125D03*
D32*
X169240878Y-126634125D03*
X169740878Y-126634125D03*
X170240878Y-126634125D03*
X170740878Y-126634125D03*
X171240878Y-126634125D03*
X171740878Y-126634125D03*
X172240878Y-126634125D03*
X172740878Y-126634125D03*
X173240878Y-126634125D03*
X173740878Y-126634125D03*
X174240878Y-126634125D03*
X174740878Y-126634125D03*
%TD*%
D12*
%TO.C,C20*%
X156306367Y-117183014D03*
X154756367Y-117183014D03*
%TD*%
D22*
%TO.C,R23*%
X159750308Y-125969797D03*
X161400308Y-125969797D03*
%TD*%
D33*
%TO.C,b_b1*%
X146357799Y-127848868D03*
X146357799Y-119848868D03*
X150857799Y-127848868D03*
X150857799Y-119848868D03*
%TD*%
D13*
%TO.C,b_down1*%
X210951133Y-126098868D03*
X202951133Y-126098868D03*
X210951133Y-121598868D03*
X202951133Y-121598868D03*
%TD*%
D34*
%TO.C,D3*%
X163876963Y-93905116D03*
X162301963Y-93905116D03*
%TD*%
D22*
%TO.C,R20*%
X153954818Y-110310463D03*
X155604818Y-110310463D03*
%TD*%
D35*
%TO.C,U9*%
X154476567Y-120794558D03*
X153526567Y-120794558D03*
X152576567Y-120794558D03*
X152576567Y-122994558D03*
X154476567Y-122994558D03*
%TD*%
D36*
%TO.C,U1*%
X159525975Y-97379672D03*
X159525975Y-96109672D03*
X159525975Y-94829672D03*
X159525975Y-93559672D03*
X153705975Y-93559672D03*
X153705975Y-94829672D03*
X153705975Y-96109672D03*
X153705975Y-97379672D03*
D37*
X156615975Y-95469672D03*
%TD*%
D12*
%TO.C,C1*%
X159506914Y-91818526D03*
X157956914Y-91818526D03*
%TD*%
D22*
%TO.C,R5*%
X178700179Y-116398550D03*
X180350179Y-116398550D03*
%TD*%
D38*
%TO.C,U2*%
X159575680Y-115376388D03*
X158925680Y-115376388D03*
X158275680Y-115376388D03*
X158275680Y-117276388D03*
X158925680Y-117276388D03*
X159575680Y-117276388D03*
%TD*%
D39*
%TO.C,D1*%
X162704823Y-88794524D03*
X162704823Y-84794524D03*
%TD*%
D25*
%TO.C,R8*%
X172740878Y-128357482D03*
X172740878Y-130007482D03*
%TD*%
D10*
%TO.C,C6*%
X174173724Y-128478655D03*
X175723724Y-128478655D03*
%TD*%
%TO.C,C24*%
X154469361Y-124419275D03*
X156019361Y-124419275D03*
%TD*%
D12*
%TO.C,C21*%
X154371567Y-119134045D03*
X152821567Y-119134045D03*
%TD*%
D33*
%TO.C,b_a1*%
X146357799Y-110915534D03*
X146357799Y-102915534D03*
X150857799Y-110915534D03*
X150857799Y-102915534D03*
%TD*%
D12*
%TO.C,C3*%
X167740878Y-126518684D03*
X166190878Y-126518684D03*
%TD*%
D22*
%TO.C,R19*%
X154524973Y-127765370D03*
X156174973Y-127765370D03*
%TD*%
D40*
%TO.C,U7*%
X153429818Y-113589341D03*
X153429818Y-114539341D03*
X153429818Y-115489341D03*
X156129818Y-115489341D03*
X156129818Y-113589341D03*
%TD*%
D25*
%TO.C,R1*%
X141331133Y-89980534D03*
X141331133Y-91630534D03*
%TD*%
%TO.C,R21*%
X166643276Y-88787760D03*
X166643276Y-90437760D03*
%TD*%
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,185 @@
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
%TF.CreationDate,2025-07-13T16:14:11-05:00*%
%TF.ProjectId,stm32card,73746d33-3263-4617-9264-2e6b69636164,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Drillmap*%
%TF.FilePolarity,Positive*%
%FSLAX45Y45*%
G04 Gerber Fmt 4.5, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-13 16:14:11*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,0.050000*%
%ADD11C,0.200000*%
G04 APERTURE END LIST*
D10*
X13756447Y-13233553D02*
X21646447Y-13233553D01*
X13756447Y-13233553D02*
G75*
G02*
X13256447Y-12733553I3J500003D01*
G01*
X13256447Y-8653553D02*
X13256447Y-12733553D01*
X21646447Y-8153553D02*
G75*
G02*
X22146447Y-8653553I3J-499997D01*
G01*
X22146447Y-12733553D02*
X22146447Y-8653553D01*
X21646447Y-8153553D02*
X13756447Y-8153553D01*
X13256447Y-8653553D02*
G75*
G02*
X13756447Y-8153554I499991J8D01*
G01*
X22146447Y-12733553D02*
G75*
G02*
X21646447Y-13233557I-500007J3D01*
G01*
D11*
X13514723Y-13547537D02*
X13514723Y-13347537D01*
X13514723Y-13347537D02*
X13562342Y-13347537D01*
X13562342Y-13347537D02*
X13590914Y-13357061D01*
X13590914Y-13357061D02*
X13609961Y-13376109D01*
X13609961Y-13376109D02*
X13619485Y-13395156D01*
X13619485Y-13395156D02*
X13629009Y-13433251D01*
X13629009Y-13433251D02*
X13629009Y-13461823D01*
X13629009Y-13461823D02*
X13619485Y-13499918D01*
X13619485Y-13499918D02*
X13609961Y-13518966D01*
X13609961Y-13518966D02*
X13590914Y-13538013D01*
X13590914Y-13538013D02*
X13562342Y-13547537D01*
X13562342Y-13547537D02*
X13514723Y-13547537D01*
X13714723Y-13547537D02*
X13714723Y-13414204D01*
X13714723Y-13452299D02*
X13724247Y-13433251D01*
X13724247Y-13433251D02*
X13733771Y-13423728D01*
X13733771Y-13423728D02*
X13752819Y-13414204D01*
X13752819Y-13414204D02*
X13771866Y-13414204D01*
X13838533Y-13547537D02*
X13838533Y-13414204D01*
X13838533Y-13347537D02*
X13829009Y-13357061D01*
X13829009Y-13357061D02*
X13838533Y-13366585D01*
X13838533Y-13366585D02*
X13848057Y-13357061D01*
X13848057Y-13357061D02*
X13838533Y-13347537D01*
X13838533Y-13347537D02*
X13838533Y-13366585D01*
X13962342Y-13547537D02*
X13943295Y-13538013D01*
X13943295Y-13538013D02*
X13933771Y-13518966D01*
X13933771Y-13518966D02*
X13933771Y-13347537D01*
X14067104Y-13547537D02*
X14048057Y-13538013D01*
X14048057Y-13538013D02*
X14038533Y-13518966D01*
X14038533Y-13518966D02*
X14038533Y-13347537D01*
X14295676Y-13547537D02*
X14295676Y-13347537D01*
X14295676Y-13347537D02*
X14362342Y-13490394D01*
X14362342Y-13490394D02*
X14429009Y-13347537D01*
X14429009Y-13347537D02*
X14429009Y-13547537D01*
X14609961Y-13547537D02*
X14609961Y-13442775D01*
X14609961Y-13442775D02*
X14600438Y-13423728D01*
X14600438Y-13423728D02*
X14581390Y-13414204D01*
X14581390Y-13414204D02*
X14543295Y-13414204D01*
X14543295Y-13414204D02*
X14524247Y-13423728D01*
X14609961Y-13538013D02*
X14590914Y-13547537D01*
X14590914Y-13547537D02*
X14543295Y-13547537D01*
X14543295Y-13547537D02*
X14524247Y-13538013D01*
X14524247Y-13538013D02*
X14514723Y-13518966D01*
X14514723Y-13518966D02*
X14514723Y-13499918D01*
X14514723Y-13499918D02*
X14524247Y-13480870D01*
X14524247Y-13480870D02*
X14543295Y-13471347D01*
X14543295Y-13471347D02*
X14590914Y-13471347D01*
X14590914Y-13471347D02*
X14609961Y-13461823D01*
X14705200Y-13414204D02*
X14705200Y-13614204D01*
X14705200Y-13423728D02*
X14724247Y-13414204D01*
X14724247Y-13414204D02*
X14762342Y-13414204D01*
X14762342Y-13414204D02*
X14781390Y-13423728D01*
X14781390Y-13423728D02*
X14790914Y-13433251D01*
X14790914Y-13433251D02*
X14800438Y-13452299D01*
X14800438Y-13452299D02*
X14800438Y-13509442D01*
X14800438Y-13509442D02*
X14790914Y-13528489D01*
X14790914Y-13528489D02*
X14781390Y-13538013D01*
X14781390Y-13538013D02*
X14762342Y-13547537D01*
X14762342Y-13547537D02*
X14724247Y-13547537D01*
X14724247Y-13547537D02*
X14705200Y-13538013D01*
X14886152Y-13528489D02*
X14895676Y-13538013D01*
X14895676Y-13538013D02*
X14886152Y-13547537D01*
X14886152Y-13547537D02*
X14876628Y-13538013D01*
X14876628Y-13538013D02*
X14886152Y-13528489D01*
X14886152Y-13528489D02*
X14886152Y-13547537D01*
X14886152Y-13423728D02*
X14895676Y-13433251D01*
X14895676Y-13433251D02*
X14886152Y-13442775D01*
X14886152Y-13442775D02*
X14876628Y-13433251D01*
X14876628Y-13433251D02*
X14886152Y-13423728D01*
X14886152Y-13423728D02*
X14886152Y-13442775D01*
M02*

View File

@ -0,0 +1,12 @@
M48
; DRILL file {KiCad 9.0.2} date 2025-07-13T16:14:11-0500
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-07-13T16:14:11-05:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.2
; #@! TF.FileFunction,NonPlated,1,2,NPTH
FMAT,2
METRIC
%
G90
G05
M30

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
M48
; DRILL file {KiCad 9.0.2} date 2025-07-13T16:14:11-0500
; FORMAT={-:-/ absolute / metric / decimal}
; #@! TF.CreationDate,2025-07-13T16:14:11-05:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,9.0.2
; #@! TF.FileFunction,Plated,1,2,PTH
FMAT,2
METRIC
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.300
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T2C0.600
%
G90
G05
T1
X139.329Y-86.794
X141.331Y-92.806
X142.831Y-92.806
X144.821Y-86.751
X149.013Y-97.243
X152.034Y-91.911
X152.485Y-107.869
X152.585Y-117.979
X153.357Y-116.22
X155.525Y-126.021
X155.595Y-118.009
X155.754Y-96.78
X155.79Y-94.151
X156.616Y-95.47
X156.894Y-111.915
X157.43Y-127.765
X157.466Y-96.79
X157.494Y-94.144
X157.947Y-90.598
X158.916Y-119.65
X158.943Y-124.466
X158.972Y-111.1
X159.063Y-114.46
X160.764Y-107.196
X165.215Y-126.721
X166.275Y-84.324
X167.265Y-117.363
X169.058Y-124.581
X169.851Y-128.69
X170.164Y-115.257
X173.979Y-125.381
X174.846Y-121.979
X176.171Y-106.136
X176.2Y-102.636
X176.2Y-104.036
X176.965Y-128.479
X177.517Y-116.399
X181.016Y-123.112
X182.194Y-122.41
X182.291Y-120.535
X182.307Y-118.017
T2
X137.754Y-84.63G85X137.754Y-84.03
G05
X137.754Y-88.43G85X137.754Y-87.83
G05
X146.394Y-84.63G85X146.394Y-84.03
G05
X146.394Y-88.43G85X146.394Y-87.83
G05
M30

View File

@ -0,0 +1,127 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "9.0.2"
},
"CreationDate": "2025-07-13T16:14:15-05:00"
},
"GeneralSpecs": {
"ProjectId": {
"Name": "stm32card",
"GUID": "73746d33-3263-4617-9264-2e6b69636164",
"Revision": "rev?"
},
"Size": {
"X": 88.95,
"Y": 50.85
},
"LayerNumber": 2,
"BoardThickness": 1.6,
"Finish": "None"
},
"DesignRules": [
{
"Layers": "Outer",
"PadToPad": 0.2,
"PadToTrack": 0.2,
"TrackToTrack": 0.2,
"MinLineWidth": 0.2,
"TrackToRegion": 0.5,
"RegionToRegion": 0.5
}
],
"FilesAttributes": [
{
"Path": "stm32card-F_Cu.gtl",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-B_Cu.gbl",
"FileFunction": "Copper,L2,Bot",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-F_Paste.gtp",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-B_Paste.gbp",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-F_Silkscreen.gto",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-B_Silkscreen.gbo",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "stm32card-F_Mask.gts",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "stm32card-B_Mask.gbs",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "stm32card-Edge_Cuts.gm1",
"FileFunction": "Profile",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
{
"Type": "Legend",
"Name": "Top Silk Screen"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Top Solder Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "F.Cu"
},
{
"Type": "Dielectric",
"Thickness": 1.51,
"Material": "FR4",
"Name": "F.Cu/B.Cu",
"Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "B.Cu"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
}
]
}