refactor: Rename "single_layer" to "unilayer"

This commit is contained in:
Mikolaj Wielgus 2025-11-15 20:23:21 +01:00
parent 78ace0bb8d
commit 2f9596df5d
69 changed files with 36714 additions and 30 deletions

View File

@ -68,7 +68,7 @@ installed `topola` command.
As an example, running the following commands will autoroute a KiCad
project of a simple THT diode bridge rectifier:
cd tests/single_layer/tht_diode_bridge_rectifier/
cd tests/unilayer/tht_diode_bridge_rectifier/
topola tht_diode_bridge_rectifier.dsn
(Obviously, to use the debug executable, replace the second command with

View File

@ -18,7 +18,7 @@ SPDX-License-Identifier = "MIT"
path = [
"crates/planar-incr-embed/tests/**",
"crates/planar-incr-embed/src/planarr/snapshots/**",
"tests/single_layer/**",
"tests/unilayer/**",
"tests/multilayer/**"
]
SPDX-FileCopyrightText = "2024 Topola contributors"

View File

@ -25,12 +25,12 @@ fn test_master(#[case] variant: &str) {}
#[apply(test_master)]
fn autoroute_4x4_1206_led_matrix_breakout(variant: &str) {
let autorouter = common::load_design(
"tests/single_layer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn",
"tests/unilayer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn",
);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/4x4_1206_led_matrix_breakout/autoroute_all.cmd",
"tests/unilayer/4x4_1206_led_matrix_breakout/autoroute_all.cmd",
variant,
);
@ -41,12 +41,12 @@ fn autoroute_4x4_1206_led_matrix_breakout(variant: &str) {
#[apply(test_master)]
fn autoroute_4x4_1206_led_matrix_breakout_in_predefined_order(variant: &str) {
let autorouter = common::load_design(
"tests/single_layer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn",
"tests/unilayer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn",
);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/4x4_1206_led_matrix_breakout/autoroute_all_in_predefined_order.cmd",
"tests/unilayer/4x4_1206_led_matrix_breakout/autoroute_all_in_predefined_order.cmd",
variant,
);
@ -57,12 +57,12 @@ fn autoroute_4x4_1206_led_matrix_breakout_in_predefined_order(variant: &str) {
#[apply(test_master)]
fn autoroute_tht_de9_to_tht_de9(variant: &str) {
let autorouter =
common::load_design("tests/single_layer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
common::load_design("tests/unilayer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
let mut invoker = common::create_invoker_and_assert(autorouter);
common::undo_all_and_assert(&mut invoker);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/tht_de9_to_tht_de9/autoroute_all.cmd",
"tests/unilayer/tht_de9_to_tht_de9/autoroute_all.cmd",
variant,
);
@ -73,11 +73,11 @@ fn autoroute_tht_de9_to_tht_de9(variant: &str) {
#[apply(test_master)]
fn autoroute_tht_de9_to_tht_de9_in_predefined_order(variant: &str) {
let autorouter =
common::load_design("tests/single_layer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
common::load_design("tests/unilayer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/tht_de9_to_tht_de9/autoroute_all_in_predefined_order.cmd",
"tests/unilayer/tht_de9_to_tht_de9/autoroute_all_in_predefined_order.cmd",
variant,
);
@ -87,12 +87,12 @@ fn autoroute_tht_de9_to_tht_de9_in_predefined_order(variant: &str) {
#[apply(test_master)]
fn autoroute_0603_breakout(variant: &str) {
let mut autorouter = common::load_design("tests/single_layer/0603_breakout/0603_breakout.dsn");
let mut autorouter = common::load_design("tests/unilayer/0603_breakout/0603_breakout.dsn");
common::assert_layer_0_navnode_count(&mut autorouter, "R1-2", "J1-2", 22);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/0603_breakout/autoroute_all.cmd",
"tests/unilayer/0603_breakout/autoroute_all.cmd",
variant,
);
@ -105,13 +105,13 @@ fn autoroute_0603_breakout(variant: &str) {
#[apply(test_master)]
fn autoroute_tht_diode_bridge_rectifier(variant: &str) {
let mut autorouter = common::load_design(
"tests/single_layer/tht_diode_bridge_rectifier/tht_diode_bridge_rectifier.dsn",
"tests/unilayer/tht_diode_bridge_rectifier/tht_diode_bridge_rectifier.dsn",
);
common::assert_layer_0_navnode_count(&mut autorouter, "J2-2", "D4-2", 68);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/tht_diode_bridge_rectifier/autoroute_all.cmd",
"tests/unilayer/tht_diode_bridge_rectifier/autoroute_all.cmd",
variant,
);
@ -142,13 +142,13 @@ fn autoroute_tht_diode_bridge_rectifier(variant: &str) {
#[apply(test_master)]
fn autoroute_4x_3rd_order_smd_lc_filters(variant: &str) {
let mut autorouter = common::load_design(
"tests/single_layer/4x_3rd_order_smd_lc_filters/4x_3rd_order_smd_lc_filters.dsn",
"tests/unilayer/4x_3rd_order_smd_lc_filters/4x_3rd_order_smd_lc_filters.dsn",
);
common::assert_layer_0_navnode_count(&mut autorouter, "J1-1", "L1-1", 558);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/4x_3rd_order_smd_lc_filters/autoroute_signals.cmd",
"tests/unilayer/4x_3rd_order_smd_lc_filters/autoroute_signals.cmd",
variant,
);
@ -166,30 +166,30 @@ fn autoroute_4x_3rd_order_smd_lc_filters(variant: &str) {
#[case("with_undo_redo_replay")]
fn test_tht_3pin_xlr_to_tht_3pin_xlr(#[case] variant: &str) {
let mut autorouter = common::load_design(
"tests/single_layer/tht_3pin_xlr_to_tht_3pin_xlr/tht_3pin_xlr_to_tht_3pin_xlr.dsn",
"tests/unilayer/tht_3pin_xlr_to_tht_3pin_xlr/tht_3pin_xlr_to_tht_3pin_xlr.dsn",
);
//common::assert_navnode_count(&mut autorouter, "R1-2", "J1-2", ?);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/tht_3pin_xlr_to_tht_3pin_xlr/autoroute_all.cmd",
"tests/unilayer/tht_3pin_xlr_to_tht_3pin_xlr/autoroute_all.cmd",
"undo_redo_replay",
);
let (mut autorouter, ..) = invoker.dissolve();
common::assert_that_all_single_layer_groundless_ratlines_are_autorouted(&mut autorouter, "F.Cu");
common::assert_that_all_unilayer_groundless_ratlines_are_autorouted(&mut autorouter, "F.Cu");
}*/
#[apply(test_master)]
fn autoroute_vga_dac_breakout(variant: &str) {
let mut autorouter =
common::load_design("tests/single_layer/vga_dac_breakout/vga_dac_breakout.dsn");
common::load_design("tests/unilayer/vga_dac_breakout/vga_dac_breakout.dsn");
common::assert_layer_0_navnode_count(&mut autorouter, "J1-2", "R4-1", 272);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/vga_dac_breakout/autoroute_all.cmd",
"tests/unilayer/vga_dac_breakout/autoroute_all.cmd",
variant,
);
@ -200,14 +200,15 @@ fn autoroute_vga_dac_breakout(variant: &str) {
#[apply(test_master)]
fn autoroute_smd_non_rectangular_buck_converter(variant: &str) {
let path = "tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn";
let path =
"tests/unilayer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn";
let autorouter = common::load_design(&path);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/smd_non_rectangular_buck_converter/route_all.cmd",
"tests/unilayer/smd_non_rectangular_buck_converter/route_all.cmd",
variant,
);
@ -219,14 +220,14 @@ fn autoroute_smd_non_rectangular_buck_converter(variant: &str) {
#[apply(test_master)]
fn autoroute_triangle_problem(variant: &str) {
let path = "tests/single_layer/triangle_problem/triangle_problem.dsn";
let path = "tests/unilayer/triangle_problem/triangle_problem.dsn";
let autorouter = common::load_design(&path);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert_and_report(
&mut invoker,
"tests/single_layer/triangle_problem/route_all.cmd",
"tests/unilayer/triangle_problem/route_all.cmd",
variant,
);

View File

@ -1,4 +1,4 @@
(pcb /home/mikolaj/proj/topola/tests/single_layer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn
(pcb /home/mikolaj/proj/topola/tests/unilayer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)

View File

@ -0,0 +1,593 @@
(pcb /home/mikolaj/proj/topola/tests/unilayer/red_led_heart/red_led_heart.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)
(host_cad "KiCad's Pcbnew")
(host_version "9.0.2")
)
(resolution um 10)
(unit um)
(structure
(layer F.Cu
(type signal)
(property
(index 0)
)
)
(layer B.Cu
(type signal)
(property
(index 1)
)
)
(boundary
(path pcb 0 167640 -106680 106680 -106680 106680 -44930 167640 -44930
167640 -106680)
)
(via "Via[0-1]_600:300_um")
(rule
(width 200)
(clearance 200)
(clearance 50 (type smd_smd))
)
)
(placement
(component "Package_QFP:TQFP-32_7x7mm_P0.8mm"
(place U1 136807.500000 -81662.500000 back 90.000000 (PN "ATmega328P-AU"))
)
(component LED_SMD:LED_1206_3216Metric
(place D57 121920.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
(place D38 152400.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D65 142240.000000 -86360.000000 front 90.000000 (PN "KP-3216ID"))
(place D36 142240.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D29 137160.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D61 142240.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
(place D1 121920.000000 -50800.000000 front 90.000000 (PN "KP-3216ID"))
(place D21 132080.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D37 147320.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D13 147320.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D24 111760.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D3 147320.000000 -50800.000000 front 90.000000 (PN "KP-3216ID"))
(place D70 137160.000000 -96520.000000 front 90.000000 (PN "KP-3216ID"))
(place D44 127000.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D60 137160.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
(place D4 152400.000000 -50800.000000 front 90.000000 (PN "KP-3216ID"))
(place D25 116840.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D5 116840.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D30 142240.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D8 132080.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D42 116840.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D14 152400.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D27 127000.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D51 142240.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D68 137160.000000 -91440.000000 front 90.000000 (PN "KP-3216ID"))
(place D28 132080.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D67 132080.000000 -91440.000000 front 90.000000 (PN "KP-3216ID"))
(place D59 132080.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
(place D64 137160.000000 -86360.000000 front 90.000000 (PN "KP-3216ID"))
(place D7 127000.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D2 127000.000000 -50800.000000 front 90.000000 (PN "KP-3216ID"))
(place D48 127000.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D10 147320.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D34 162560.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D45 132080.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D56 152400.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
(place D49 132080.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D39 157480.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D40 162560.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D35 137160.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D17 111760.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D18 116840.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D23 142240.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D19 121920.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D6 121920.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D12 157480.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D62 127000.000000 -86360.000000 front 90.000000 (PN "KP-3216ID"))
(place D46 116840.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D52 147320.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D50 137160.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D9 142240.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D16 162560.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D54 157480.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D69 142240.000000 -91440.000000 front 90.000000 (PN "KP-3216ID"))
(place D63 132080.000000 -86360.000000 front 90.000000 (PN "KP-3216ID"))
(place D32 152400.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D31 147320.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D47 121920.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D22 137160.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D15 157480.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D66 147320.000000 -86360.000000 front 90.000000 (PN "KP-3216ID"))
(place D41 111760.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D26 121920.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D55 147320.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
(place D53 152400.000000 -76200.000000 front 90.000000 (PN "KP-3216ID"))
(place D20 127000.000000 -60960.000000 front 90.000000 (PN "KP-3216ID"))
(place D33 157480.000000 -66040.000000 front 90.000000 (PN "KP-3216ID"))
(place D11 152400.000000 -55880.000000 front 90.000000 (PN "KP-3216ID"))
(place D43 121920.000000 -71120.000000 front 90.000000 (PN "KP-3216ID"))
(place D58 127000.000000 -81280.000000 front 90.000000 (PN "KP-3216ID"))
)
(component Resistor_SMD:R_0603_1608Metric
(place R1 130175.000000 -79000.000000 back 180.000000 (PN 220))
(place R5 143475.000000 -77500.000000 back 0.000000 (PN 220))
(place R4 134500.000000 -75025.000000 back 270.000000 (PN 220))
(place R6 143475.000000 -79000.000000 back 0.000000 (PN 220))
(place R8 143000.000000 -85175.000000 back 270.000000 (PN 1K))
(place RCC1 130500.000000 -89000.000000 back 270.000000 (PN 5.1K))
(place R3 133000.000000 -75000.000000 back 270.000000 (PN 220))
(place R7 143475.000000 -80500.000000 back 0.000000 (PN 220))
(place RCC2 129000.000000 -89000.000000 back 270.000000 (PN 5.1K))
(place R2 130175.000000 -77500.000000 back 0.000000 (PN 220))
)
(component "Capacitor_Tantalum_SMD:CP_EIA-7343-31_Kemet-D"
(place C4 135890.000000 -90170.000000 back 0.000000 (PN 470u))
)
(component Fuse:Fuse_1206_3216Metric
(place F1 142240.000000 -90170.000000 back 270.000000 (PN "SN020-30"))
)
(component Resistor_SMD:R_0603_1608Metric::1
(place R0 130175.000000 -80500.000000 back 180.000000 (PN 220))
)
(component "Connector_USB:USB_C_Receptacle_GCT_USB4125-xx-x-0190_6P_TopMnt_Horizontal"
(place J1 137160.000000 -97790.000000 back 0.000000 (PN USB_C_Receptacle_PowerOnly_6P))
)
(component Capacitor_SMD:C_0603_1608Metric
(place C3 137160.000000 -75000.000000 back 90.000000 (PN 100n))
)
(component "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm"
(place U2 149860.000000 -81280.000000 back 180.000000 (PN TLE5012B))
)
)
(library
(image "Package_QFP:TQFP-32_7x7mm_P0.8mm"
(outline (path signal 120 -3610 3610 -3610 3335))
(outline (path signal 120 -3610 -3610 -3610 -3335))
(outline (path signal 120 -3335 3610 -3610 3610))
(outline (path signal 120 -3335 -3610 -3610 -3610))
(outline (path signal 120 3335 3610 3610 3610))
(outline (path signal 120 3335 -3610 3610 -3610))
(outline (path signal 120 3610 3610 3610 3335))
(outline (path signal 120 3610 -3610 3610 -3335))
(outline (path signal 50 -5150 3330 -3750 3330))
(outline (path signal 50 -5150 -3330 -5150 3330))
(outline (path signal 50 -3750 3750 -3330 3750))
(outline (path signal 50 -3750 3330 -3750 3750))
(outline (path signal 50 -3750 -3330 -5150 -3330))
(outline (path signal 50 -3750 -3750 -3750 -3330))
(outline (path signal 50 -3330 5150 3330 5150))
(outline (path signal 50 -3330 3750 -3330 5150))
(outline (path signal 50 -3330 -3750 -3750 -3750))
(outline (path signal 50 -3330 -5150 -3330 -3750))
(outline (path signal 50 3330 5150 3330 3750))
(outline (path signal 50 3330 3750 3750 3750))
(outline (path signal 50 3330 -3750 3330 -5150))
(outline (path signal 50 3330 -5150 -3330 -5150))
(outline (path signal 50 3750 3750 3750 3330))
(outline (path signal 50 3750 3330 5150 3330))
(outline (path signal 50 3750 -3330 3750 -3750))
(outline (path signal 50 3750 -3750 3330 -3750))
(outline (path signal 50 5150 3330 5150 -3330))
(outline (path signal 50 5150 -3330 3750 -3330))
(outline (path signal 100 -3500 2500 -2500 3500))
(outline (path signal 100 -3500 -3500 -3500 2500))
(outline (path signal 100 -2500 3500 3500 3500))
(outline (path signal 100 3500 3500 3500 -3500))
(outline (path signal 100 3500 -3500 -3500 -3500))
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 1 -4162.5 2800)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 2 -4162.5 2000)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 3 -4162.5 1200)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 4 -4162.5 400)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 5 -4162.5 -400)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 6 -4162.5 -1200)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 7 -4162.5 -2000)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 8 -4162.5 -2800)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 9 -2800 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 10 -2000 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 11 -1200 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 12 -400 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 13 400 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 14 1200 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 15 2000 -4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 16 2800 -4162.5)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 17 4162.5 -2800)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 18 4162.5 -2000)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 19 4162.5 -1200)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 20 4162.5 -400)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 21 4162.5 400)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 22 4162.5 1200)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 23 4162.5 2000)
(pin RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0 24 4162.5 2800)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 25 2800 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 26 2000 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 27 1200 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 28 400 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 29 -400 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 30 -1200 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 31 -2000 4162.5)
(pin RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0 32 -2800 4162.5)
)
(image LED_SMD:LED_1206_3216Metric
(outline (path signal 120 1600 1135 -2285 1135))
(outline (path signal 120 -2285 1135 -2285 -1135))
(outline (path signal 120 -2285 -1135 1600 -1135))
(outline (path signal 50 2280 1130 2280 -1130))
(outline (path signal 50 -2280 1130 2280 1130))
(outline (path signal 50 2280 -1130 -2280 -1130))
(outline (path signal 50 -2280 -1130 -2280 1130))
(outline (path signal 100 1600 800 -1200 800))
(outline (path signal 100 -1200 800 -1600 400))
(outline (path signal 100 -1600 400 -1600 -800))
(outline (path signal 100 1600 -800 1600 800))
(outline (path signal 100 -1600 -800 1600 -800))
(pin RoundRect[T]Pad_1250.000000x1750.000000_250.951000_um_0.000000_0 1 -1400 0)
(pin RoundRect[T]Pad_1250.000000x1750.000000_250.951000_um_0.000000_0 2 1400 0)
)
(image Resistor_SMD:R_0603_1608Metric
(outline (path signal 120 -237.258 522.5 237.258 522.5))
(outline (path signal 120 -237.258 -522.5 237.258 -522.5))
(outline (path signal 50 1480 730 1480 -730))
(outline (path signal 50 1480 -730 -1480 -730))
(outline (path signal 50 -1480 730 1480 730))
(outline (path signal 50 -1480 -730 -1480 730))
(outline (path signal 100 800 412.5 800 -412.5))
(outline (path signal 100 800 -412.5 -800 -412.5))
(outline (path signal 100 -800 412.5 800 412.5))
(outline (path signal 100 -800 -412.5 -800 412.5))
(pin RoundRect[T]Pad_800.000000x950.000000_200.761000_um_0.000000_0 1 -825 0)
(pin RoundRect[T]Pad_800.000000x950.000000_200.761000_um_0.000000_0 2 825 0)
)
(image "Capacitor_Tantalum_SMD:CP_EIA-7343-31_Kemet-D"
(outline (path signal 120 -4415 -2260 3650 -2260))
(outline (path signal 120 3650 2260 -4415 2260))
(outline (path signal 120 -4415 2260 -4415 -2260))
(outline (path signal 50 4410 -2400 -4410 -2400))
(outline (path signal 50 -4410 -2400 -4410 2400))
(outline (path signal 50 4410 2400 4410 -2400))
(outline (path signal 50 -4410 2400 4410 2400))
(outline (path signal 100 3650 -2150 3650 2150))
(outline (path signal 100 -3650 -2150 3650 -2150))
(outline (path signal 100 -3650 1150 -3650 -2150))
(outline (path signal 100 3650 2150 -2650 2150))
(outline (path signal 100 -2650 2150 -3650 1150))
(pin RoundRect[T]Pad_2070.000000x2590.000000_250.951000_um_0.000000_0 1 -3120 0)
(pin RoundRect[T]Pad_2070.000000x2590.000000_250.951000_um_0.000000_0 2 3120 0)
)
(image Fuse:Fuse_1206_3216Metric
(outline (path signal 120 -602.064 -910 602.064 -910))
(outline (path signal 120 -602.064 910 602.064 910))
(outline (path signal 50 2280 -1130 -2280 -1130))
(outline (path signal 50 -2280 -1130 -2280 1130))
(outline (path signal 50 2280 1130 2280 -1130))
(outline (path signal 50 -2280 1130 2280 1130))
(outline (path signal 100 1600 -800 -1600 -800))
(outline (path signal 100 -1600 -800 -1600 800))
(outline (path signal 100 1600 800 1600 -800))
(outline (path signal 100 -1600 800 1600 800))
(pin RoundRect[T]Pad_1250.000000x1750.000000_250.951000_um_0.000000_0 1 -1400 0)
(pin RoundRect[T]Pad_1250.000000x1750.000000_250.951000_um_0.000000_0 2 1400 0)
)
(image Resistor_SMD:R_0603_1608Metric::1
(outline (path signal 100 -800 -412.5 -800 412.5))
(outline (path signal 100 -800 412.5 800 412.5))
(outline (path signal 100 800 -412.5 -800 -412.5))
(outline (path signal 100 800 412.5 800 -412.5))
(outline (path signal 50 -1480 -730 -1480 730))
(outline (path signal 50 -1480 730 1480 730))
(outline (path signal 50 1480 -730 -1480 -730))
(outline (path signal 50 1480 730 1480 -730))
(outline (path signal 120 -237.258 -522.5 237.258 -522.5))
(outline (path signal 120 -237.258 522.5 237.258 522.5))
(pin RoundRect[T]Pad_800.000000x950.000000_200.761000_um_0.000000_0 2 825 0)
(pin RoundRect[T]Pad_800.000000x950.000000_200.761000_um_0.000000_0 1 -825 0)
)
(image "Connector_USB:USB_C_Receptacle_GCT_USB4125-xx-x-0190_6P_TopMnt_Horizontal"
(outline (path signal 120 4670 250 4670 1950))
(outline (path signal 120 -4670 250 -4670 1950))
(outline (path signal 100 5000 -3400 -5000 -3400))
(outline (path signal 50 -5370 4350 5370 4350 5370 -3900 -5370 -3900))
(outline (path signal 100 -4470 3400 4470 3400 4470 -3400 -4470 -3400))
(pin RoundRect[T]Pad_700.000000x1200.000000_175.666000_um_0.000000_0 A5 -500 3080)
(pin RoundRect[T]Pad_760.000000x1200.000000_190.723000_um_0.000000_0 (rotate 180) A9 1520 3080)
(pin RoundRect[T]Pad_800.000000x1200.000000_200.761000_um_0.000000_0 (rotate 180) A12 2750 3080)
(pin RoundRect[T]Pad_700.000000x1200.000000_175.666000_um_0.000000_0 (rotate 180) B5 500 3080)
(pin RoundRect[T]Pad_760.000000x1200.000000_190.723000_um_0.000000_0 B9 -1520 3080)
(pin RoundRect[T]Pad_800.000000x1200.000000_200.761000_um_0.000000_0 B12 -2750 3080)
(pin Oval[A]Pad_1100.000000x1700.000000_um S1 -4320 -800)
(pin Oval[A]Pad_1100.000000x1700.000000_um S1@1 -4320 3000)
(pin Oval[A]Pad_1100.000000x1700.000000_um S1@2 4320 -800)
(pin Oval[A]Pad_1100.000000x1700.000000_um S1@3 4320 3000)
)
(image Capacitor_SMD:C_0603_1608Metric
(outline (path signal 120 -140.58 510 140.58 510))
(outline (path signal 120 -140.58 -510 140.58 -510))
(outline (path signal 50 1480 730 1480 -730))
(outline (path signal 50 1480 -730 -1480 -730))
(outline (path signal 50 -1480 730 1480 730))
(outline (path signal 50 -1480 -730 -1480 730))
(outline (path signal 100 800 400 800 -400))
(outline (path signal 100 800 -400 -800 -400))
(outline (path signal 100 -800 400 800 400))
(outline (path signal 100 -800 -400 -800 400))
(pin RoundRect[T]Pad_900.000000x950.000000_225.856000_um_0.000000_0 1 -775 0)
(pin RoundRect[T]Pad_900.000000x950.000000_225.856000_um_0.000000_0 2 775 0)
)
(image "Package_SO:SOIC-8_3.9x4.9mm_P1.27mm"
(outline (path signal 100 -1950 -2450 -1950 1475))
(outline (path signal 100 -1950 1475 -975 2450))
(outline (path signal 100 -975 2450 1950 2450))
(outline (path signal 100 1950 -2450 -1950 -2450))
(outline (path signal 100 1950 2450 1950 -2450))
(outline (path signal 50 -3700 -2460 -3700 2460))
(outline (path signal 50 -3700 2460 -2200 2460))
(outline (path signal 50 -2200 -2700 -2200 -2460))
(outline (path signal 50 -2200 -2460 -3700 -2460))
(outline (path signal 50 -2200 2460 -2200 2700))
(outline (path signal 50 -2200 2700 2200 2700))
(outline (path signal 50 2200 -2700 -2200 -2700))
(outline (path signal 50 2200 -2460 2200 -2700))
(outline (path signal 50 2200 2460 3700 2460))
(outline (path signal 50 2200 2700 2200 2460))
(outline (path signal 50 3700 -2460 2200 -2460))
(outline (path signal 50 3700 2460 3700 -2460))
(outline (path signal 120 0 -2560 -1950 -2560))
(outline (path signal 120 0 -2560 1950 -2560))
(outline (path signal 120 0 2560 -1950 2560))
(outline (path signal 120 0 2560 1950 2560))
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 8 2475 1905)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 7 2475 635)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 6 2475 -635)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 5 2475 -1905)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 4 -2475 -1905)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 3 -2475 -635)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 2 -2475 635)
(pin RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0 1 -2475 1905)
)
(padstack Oval[A]Pad_1100.000000x1700.000000_um
(shape (path F.Cu 1100 0 -300 0 300))
(shape (path B.Cu 1100 0 -300 0 300))
(attach off)
)
(padstack RoundRect[T]Pad_2070.000000x2590.000000_250.951000_um_0.000000_0
(shape (polygon F.Cu 0 -1035.95 1045 -1016.85 1141.04 -962.449 1222.45 -881.035 1276.85
-784.999 1295.95 785 1295.95 881.035 1276.85 962.449 1222.45
1016.85 1141.04 1035.95 1045 1035.95 -1045 1016.85 -1141.04
962.449 -1222.45 881.035 -1276.85 784.999 -1295.95 -785 -1295.95
-881.035 -1276.85 -962.449 -1222.45 -1016.85 -1141.04 -1035.95 -1045
-1035.95 1045))
(attach off)
)
(padstack RoundRect[T]Pad_550.000000x1475.000000_138.023000_um_0.000000_0
(shape (polygon F.Cu 0 -275.523 600 -265.017 652.819 -235.097 697.597 -190.319 727.517
-137.499 738.022 137.5 738.023 190.319 727.517 235.097 697.597
265.017 652.819 275.522 599.999 275.523 -600 265.017 -652.819
235.097 -697.597 190.319 -727.517 137.499 -738.022 -137.5 -738.023
-190.319 -727.517 -235.097 -697.597 -265.017 -652.819 -275.522 -599.999
-275.523 600))
(attach off)
)
(padstack RoundRect[T]Pad_700.000000x1200.000000_175.666000_um_0.000000_0
(shape (polygon F.Cu 0 -350.666 425 -337.294 492.224 -299.215 549.215 -242.224 587.294
-175 600.666 175 600.666 242.224 587.294 299.215 549.215
337.294 492.224 350.666 425 350.666 -425 337.294 -492.224
299.215 -549.215 242.224 -587.294 175 -600.666 -175 -600.666
-242.224 -587.294 -299.215 -549.215 -337.294 -492.224 -350.666 -425
-350.666 425))
(attach off)
)
(padstack RoundRect[T]Pad_760.000000x1200.000000_190.723000_um_0.000000_0
(shape (polygon F.Cu 0 -380.723 410 -366.205 482.987 -324.862 544.862 -262.987 586.205
-189.999 600.722 190 600.723 262.987 586.205 324.862 544.862
366.205 482.987 380.722 409.999 380.723 -410 366.205 -482.987
324.862 -544.862 262.987 -586.205 189.999 -600.722 -190 -600.723
-262.987 -586.205 -324.862 -544.862 -366.205 -482.987 -380.722 -409.999
-380.723 410))
(attach off)
)
(padstack RoundRect[T]Pad_800.000000x950.000000_200.761000_um_0.000000_0
(shape (polygon F.Cu 0 -400.761 275 -385.479 351.828 -341.959 416.959 -276.828 460.479
-199.999 475.76 200 475.761 276.828 460.479 341.959 416.959
385.479 351.828 400.76 274.999 400.761 -275 385.479 -351.828
341.959 -416.959 276.828 -460.479 199.999 -475.76 -200 -475.761
-276.828 -460.479 -341.959 -416.959 -385.479 -351.828 -400.76 -274.999
-400.761 275))
(attach off)
)
(padstack RoundRect[T]Pad_800.000000x1200.000000_200.761000_um_0.000000_0
(shape (polygon F.Cu 0 -400.761 400 -385.479 476.828 -341.959 541.959 -276.828 585.479
-199.999 600.76 200 600.761 276.828 585.479 341.959 541.959
385.479 476.828 400.76 399.999 400.761 -400 385.479 -476.828
341.959 -541.959 276.828 -585.479 199.999 -600.76 -200 -600.761
-276.828 -585.479 -341.959 -541.959 -385.479 -476.828 -400.76 -399.999
-400.761 400))
(attach off)
)
(padstack RoundRect[T]Pad_900.000000x950.000000_225.856000_um_0.000000_0
(shape (polygon F.Cu 0 -450.856 250 -433.664 336.431 -384.704 409.704 -311.431 458.664
-225 475.856 225 475.856 311.431 458.664 384.704 409.704
433.664 336.431 450.856 250 450.856 -250 433.664 -336.431
384.704 -409.704 311.431 -458.664 225 -475.856 -225 -475.856
-311.431 -458.664 -384.704 -409.704 -433.664 -336.431 -450.856 -250
-450.856 250))
(attach off)
)
(padstack RoundRect[T]Pad_1250.000000x1750.000000_250.951000_um_0.000000_0
(shape (polygon F.Cu 0 -625.951 625 -606.848 721.035 -552.449 802.449 -471.035 856.848
-374.999 875.95 375 875.951 471.035 856.848 552.449 802.449
606.848 721.035 625.95 624.999 625.951 -625 606.848 -721.035
552.449 -802.449 471.035 -856.848 374.999 -875.95 -375 -875.951
-471.035 -856.848 -552.449 -802.449 -606.848 -721.035 -625.95 -624.999
-625.951 625))
(attach off)
)
(padstack RoundRect[T]Pad_1475.000000x550.000000_138.023000_um_0.000000_0
(shape (polygon F.Cu 0 -738.023 137.5 -727.517 190.319 -697.597 235.097 -652.819 265.017
-599.999 275.522 600 275.523 652.819 265.017 697.597 235.097
727.517 190.319 738.022 137.499 738.023 -137.5 727.517 -190.319
697.597 -235.097 652.819 -265.017 599.999 -275.522 -600 -275.523
-652.819 -265.017 -697.597 -235.097 -727.517 -190.319 -738.022 -137.499
-738.023 137.5))
(attach off)
)
(padstack RoundRect[T]Pad_1950.000000x600.000000_150.571000_um_0.000000_0
(shape (polygon F.Cu 0 -975.571 150 -964.109 207.621 -931.47 256.47 -882.621 289.109
-824.999 300.57 825 300.571 882.621 289.109 931.47 256.47
964.109 207.621 975.57 149.999 975.571 -150 964.109 -207.621
931.47 -256.47 882.621 -289.109 824.999 -300.57 -825 -300.571
-882.621 -289.109 -931.47 -256.47 -964.109 -207.621 -975.57 -149.999
-975.571 150))
(attach off)
)
(padstack "Via[0-1]_600:300_um"
(shape (circle F.Cu 600))
(shape (circle B.Cu 600))
(attach off)
)
)
(network
(net GND
(pins U1-3 U1-5 U1-21 C4-2 J1-A12 J1-B12 J1-S1 J1-S1@1 J1-S1@2 J1-S1@3 C3-2
RCC1-2 RCC2-2)
)
(net +5V
(pins U1-4 U1-6 U1-18 U1-20 C4-1 F1-2 C3-1 U2-6)
)
(net "Net-(F1-Pad1)"
(pins F1-1 J1-A9 J1-B9)
)
(net "Net-(J1-CC2)"
(pins J1-B5 RCC2-1)
)
(net "Net-(J1-CC1)"
(pins J1-A5 RCC1-1)
)
(net "Net-(U1-PD0)"
(pins U1-30 R0-2)
)
(net "Net-(U1-PD1)"
(pins U1-31 R1-2)
)
(net "Net-(U1-PD2)"
(pins U1-32 R2-1)
)
(net "Net-(U1-PD3)"
(pins U1-1 R3-1)
)
(net "Net-(U1-PD4)"
(pins U1-2 R4-1)
)
(net "Net-(U1-PD5)"
(pins U1-9 R5-1)
)
(net "Net-(U1-PD6)"
(pins U1-10 R6-1)
)
(net "Net-(U1-PD7)"
(pins U1-11 R7-1)
)
(net /DATA
(pins U1-16 R8-1 U2-4)
)
(net /MOSI
(pins U1-15 R8-2)
)
(net "unconnected-(U1-ADC7-Pad22)"
(pins U1-22)
)
(net "unconnected-(U1-ADC6-Pad19)"
(pins U1-19)
)
(net /SCK
(pins U1-17 U2-2)
)
(net /SS
(pins U1-14 U2-3)
)
(net "unconnected-(U2-IFC-Pad1)"
(pins U2-1)
)
(net "unconnected-(U2-IFB-Pad8)"
(pins U2-8)
)
(net "unconnected-(U2-GND-Pad7)"
(pins U2-7)
)
(net "unconnected-(U2-IFA-Pad5)"
(pins U2-5)
)
(net /ROW0
(pins U1-12 D1-2 D3-2 D4-2 D5-2 D8-2 D7-2 D2-2 D6-2)
)
(net /COL0
(pins D57-1 D65-1 D1-1 D25-1 D49-1 D17-1 D9-1 D41-1 D33-1 R0-1)
)
(net /COL1
(pins D42-1 D2-1 D10-1 D34-1 D18-1 D50-1 D66-1 D26-1 D58-1 R1-1)
)
(net /COL2
(pins D3-1 D27-1 D51-1 D67-1 D59-1 D35-1 D19-1 D11-1 D43-1 R2-2)
)
(net /COL3
(pins D36-1 D44-1 D60-1 D4-1 D68-1 D28-1 D12-1 D52-1 D20-1 R3-2)
)
(net /COL4
(pins D29-1 D61-1 D21-1 D37-1 D13-1 D5-1 D45-1 D69-1 D53-1 R4-2)
)
(net /COL5
(pins D38-1 D70-1 D30-1 D14-1 D6-1 D62-1 D46-1 D54-1 D22-1 R5-2)
)
(net /COL6
(pins D7-1 D39-1 D23-1 D63-1 D31-1 D47-1 D15-1 D55-1 R6-2)
)
(net /COL7
(pins D24-1 D8-1 D64-1 D48-1 D56-1 D40-1 D16-1 D32-1 R7-2)
)
(net /ROW1
(pins U1-13 D13-2 D14-2 D10-2 D12-2 D9-2 D16-2 D15-2 D11-2)
)
(net /ROW2
(pins U1-7 D21-2 D24-2 D17-2 D18-2 D23-2 D19-2 D22-2 D20-2)
)
(net /ROW3
(pins U1-23 D29-2 D25-2 D30-2 D27-2 D28-2 D32-2 D31-2 D26-2)
)
(net /ROW4
(pins U1-24 D38-2 D36-2 D37-2 D34-2 D39-2 D40-2 D35-2 D33-2)
)
(net /ROW5
(pins U1-25 D44-2 D42-2 D48-2 D45-2 D46-2 D47-2 D41-2 D43-2)
)
(net /ROW6
(pins U1-26 D51-2 D56-2 D49-2 D52-2 D50-2 D54-2 D55-2 D53-2)
)
(net /ROW7
(pins U1-27 D57-2 D61-2 D60-2 D59-2 D64-2 D62-2 D63-2 D58-2)
)
(net /ROW8
(pins U1-28 D65-2 D70-2 D68-2 D67-2 D69-2 D66-2)
)
(net "unconnected-(U1-~{RESET}{slash}PC6-Pad29)"
(pins U1-29)
)
(net "unconnected-(U1-XTAL2{slash}PB7-Pad8)"
(pins U1-8)
)
(class kicad_default +5V /COL0 /COL1 /COL2 /COL3 /COL4 /COL5 /COL6 /COL7
/DATA /MOSI /ROW0 /ROW1 /ROW2 /ROW3 /ROW4 /ROW5 /ROW6 /ROW7 /ROW8 /SCK
/SS GND "Net-(F1-Pad1)" "Net-(J1-CC1)" "Net-(J1-CC2)" "Net-(U1-PD0)"
"Net-(U1-PD1)" "Net-(U1-PD2)" "Net-(U1-PD3)" "Net-(U1-PD4)" "Net-(U1-PD5)"
"Net-(U1-PD6)" "Net-(U1-PD7)" "unconnected-(U1-ADC6-Pad19)" "unconnected-(U1-ADC7-Pad22)"
"unconnected-(U1-XTAL2{slash}PB7-Pad8)" "unconnected-(U1-~{RESET}{slash}PC6-Pad29)"
"unconnected-(U2-GND-Pad7)" "unconnected-(U2-IFA-Pad5)" "unconnected-(U2-IFB-Pad8)"
"unconnected-(U2-IFC-Pad1)"
(circuit
(use_via "Via[0-1]_600:300_um")
)
(rule
(width 200)
(clearance 200)
)
)
)
(wiring
)
)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,130 @@
{
"board": {
"active_layer": 2,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"shapes": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
"vias",
"footprint_text",
"footprint_anchors",
"ratsnest",
"grid",
"footprints_front",
"footprints_back",
"footprint_values",
"footprint_references",
"tracks",
"drc_errors",
"drawing_sheet",
"bitmaps",
"pads",
"zones",
"drc_warnings",
"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": "red_led_heart.kicad_prl",
"version": 5
},
"net_inspector_panel": {
"col_hidden": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"custom_group_rules": [],
"expanded_rows": [],
"filter_by_net_name": true,
"filter_by_netclass": true,
"filter_text": "",
"group_by_constraint": false,
"group_by_netclass": false,
"show_unconnected_nets": false,
"show_zero_pad_nets": false,
"sort_ascending": true,
"sorting_column": 0
},
"open_jobsets": [],
"project": {
"files": []
},
"schematic": {
"selection_filter": {
"graphics": true,
"images": true,
"labels": true,
"lockedItems": false,
"otherItems": true,
"pins": true,
"symbols": true,
"text": true,
"wires": true
}
}
}

View File

@ -0,0 +1,618 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"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_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "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.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "red_led_heart.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "red_led_heart.dsn",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"674c601c-8422-4e70-82bf-6c5b2cb54094",
"Root"
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
(pcb /home/mikolaj/proj/topola/tests/single_layer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.dsn
(pcb /home/mikolaj/proj/topola/tests/unilayer/short_squeeze_through_under_bends/short_squeeze_through_under_bends.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)

View File

@ -1,4 +1,4 @@
(pcb /media/Projects/Projects/rust/topola/tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn
(pcb /media/Projects/Projects/rust/topola/tests/unilayer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)

View File

@ -1,4 +1,4 @@
(pcb /home/mikolaj/proj/topola/tests/single_layer/data/tht_3pin_xlr_to_tht_3pin_xlr/tht_3pin_xlr_to_tht_3pin_xlr.dsn
(pcb /home/mikolaj/proj/topola/tests/unilayer/data/tht_3pin_xlr_to_tht_3pin_xlr/tht_3pin_xlr_to_tht_3pin_xlr.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)

View File

@ -1,4 +1,4 @@
(pcb /home/mikolaj/proj/topola/tests/single_layer/vga_dac_breakout/vga_dac_breakout.dsn
(pcb /home/mikolaj/proj/topola/tests/unilayer/vga_dac_breakout/vga_dac_breakout.dsn
(parser
(string_quote ")
(space_in_quoted_tokens on)