diff --git a/Makefile b/Makefile index c14c2054..cb25b528 100644 --- a/Makefile +++ b/Makefile @@ -121,7 +121,8 @@ test_docker_local_1_sn: rm -rf output rm -f tests/.local docker run --rm -v $(CWD):$(CWD) --workdir="$(CWD)" ghcr.io/inti-cmnb/kicad_auto_test:stable_nightly \ - /bin/bash -c "src/kibot --help-outputs > /dev/null ; pytest-3 --log-cli-level debug -k '$(SINGLE_TEST)' --test_dir=output ; chown -R $(USER_ID):$(GROUP_ID) output/ tests/board_samples/ tests/.config/kiplot/plugins/__pycache__/ tests/test_plot/fake_pcbnew/__pycache__/ tests/.config/kibot/plugins/__pycache__/ .coverage htmlcov/ .cache" + /bin/bash -c "export KIBOT_COPY_REF=$(KIBOT_COPY_REF); src/kibot --help-outputs > /dev/null ; pytest-3 --log-cli-level debug -k '$(SINGLE_TEST)' --test_dir=output ; chown -R $(USER_ID):$(GROUP_ID) output/ tests/board_samples/ tests/.config/kiplot/plugins/__pycache__/ tests/test_plot/fake_pcbnew/__pycache__/ tests/.config/kibot/plugins/__pycache__/ .coverage htmlcov/ .cache" +# rm -R .cache/ ; KIBOT_COPY_REF="1" SINGLE_TEST=test_print_sch_variant_ni_2 make test_docker_local_1_sn t1k8: t1n diff --git a/tests/reference/stable_nightly/KiCost b/tests/reference/stable_nightly/KiCost new file mode 120000 index 00000000..b4fc8020 --- /dev/null +++ b/tests/reference/stable_nightly/KiCost @@ -0,0 +1 @@ +../6_0_8/KiCost \ No newline at end of file diff --git a/tests/reference/stable_nightly/PCB_Bot.pdf b/tests/reference/stable_nightly/PCB_Bot.pdf new file mode 100644 index 00000000..daf6a1ec Binary files /dev/null and b/tests/reference/stable_nightly/PCB_Bot.pdf differ diff --git a/tests/reference/stable_nightly/PCB_Bot_def.pdf b/tests/reference/stable_nightly/PCB_Bot_def.pdf new file mode 100644 index 00000000..14182795 Binary files /dev/null and b/tests/reference/stable_nightly/PCB_Bot_def.pdf differ diff --git a/tests/reference/stable_nightly/batteryPack-top_battery.svg b/tests/reference/stable_nightly/batteryPack-top_battery.svg new file mode 100644 index 00000000..930fd1c0 --- /dev/null +++ b/tests/reference/stable_nightly/batteryPack-top_battery.svg @@ -0,0 +1,1775 @@ + + + Picture generated by PcbDraw + Picture generated by PcbDraw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +RB0002 Battery Pack + +RB0002 Battery Pack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Battery Board + +Battery Board + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +v1.0 06/2020 CC BY-SA 4.0 + +v1.0 06/2020 CC BY-SA 4.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +github.com/RoboticsBrno/RB0002-BatteryPack + +github.com/RoboticsBrno/RB0002-BatteryPack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +B1+ +B1+ + + + + + + + + + + + + + + + + + + + + + + + + + +B1- +B1- + + + + + + + + + + + + + + + + + + + + + + + + +B2- +B2- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +B2+ +B2+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +B1 + +B1 + + + + + + + + + + + + + + + + + + + + + + + + +B2 + +B2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + +_ + +_ + + +_ + +_ + + ++ + ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/reference/stable_nightly/batteryPack-top_charger.svg b/tests/reference/stable_nightly/batteryPack-top_charger.svg new file mode 100644 index 00000000..bc012aba --- /dev/null +++ b/tests/reference/stable_nightly/batteryPack-top_charger.svg @@ -0,0 +1,1649 @@ + + + Picture generated by PcbDraw + Picture generated by PcbDraw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +0% +0% + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +_ + +_ + + ++ + ++ + + + +_ + +_ + + ++ + ++ + + + + +12V +12V + + + + + + + + + + + + + + + + + +9V +9V + + + + + + + + + + + + + + + + + + + + + + + +5V +5V + + + + + + + + + + + + + + + + + +100% +100% + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/reference/stable_nightly/batteryPack-top_connector.svg b/tests/reference/stable_nightly/batteryPack-top_connector.svg new file mode 100644 index 00000000..87e39951 --- /dev/null +++ b/tests/reference/stable_nightly/batteryPack-top_connector.svg @@ -0,0 +1,686 @@ + + + Picture generated by PcbDraw + Picture generated by PcbDraw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +MINUS +MINUS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +github.com/RoboticsBrno/ + +github.com/RoboticsBrno/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +RB0002-BatteryPack + +RB0002-BatteryPack + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +MID + +MID + + + + + + + + + + + + + + + + + + + +PLUS +PLUS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/reference/stable_nightly/bom-F_Cu+F_SilkS.pdf b/tests/reference/stable_nightly/bom-F_Cu+F_SilkS.pdf new file mode 100644 index 00000000..7f4aeac5 Binary files /dev/null and b/tests/reference/stable_nightly/bom-F_Cu+F_SilkS.pdf differ diff --git a/tests/reference/stable_nightly/bom-F_Cu+F_SilkS.svg b/tests/reference/stable_nightly/bom-F_Cu+F_SilkS.svg new file mode 100644 index 00000000..03e95c26 --- /dev/null +++ b/tests/reference/stable_nightly/bom-F_Cu+F_SilkS.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/reference/stable_nightly/bom_portrait-F_Cu+F_SilkS.svg b/tests/reference/stable_nightly/bom_portrait-F_Cu+F_SilkS.svg new file mode 100644 index 00000000..ddd24c37 --- /dev/null +++ b/tests/reference/stable_nightly/bom_portrait-F_Cu+F_SilkS.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/reference/stable_nightly/circle_edge-report.txt b/tests/reference/stable_nightly/circle_edge-report.txt new file mode 120000 index 00000000..a3dcdafb --- /dev/null +++ b/tests/reference/stable_nightly/circle_edge-report.txt @@ -0,0 +1 @@ +../6_0_8/circle_edge-report.txt \ No newline at end of file diff --git a/tests/reference/stable_nightly/comp_edge-report.txt b/tests/reference/stable_nightly/comp_edge-report.txt new file mode 120000 index 00000000..830aea23 --- /dev/null +++ b/tests/reference/stable_nightly/comp_edge-report.txt @@ -0,0 +1 @@ +../6_0_8/comp_edge-report.txt \ No newline at end of file diff --git a/tests/reference/stable_nightly/deeper.kicad_sch b/tests/reference/stable_nightly/deeper.kicad_sch new file mode 100644 index 00000000..e7ea1a0a --- /dev/null +++ b/tests/reference/stable_nightly/deeper.kicad_sch @@ -0,0 +1,81 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid 3b838d52-596d-4e4d-a6ac-e4c8e7621137) + + (paper "A4" portrait) + + (title_block + (date " ") + ) + + (lib_symbols + (symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "R_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + (symbol (lib_id "Device:R") (at 139.7 80.01 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f3bbcff) + (property "Reference" "R3" (at 141.478 78.8416 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "1m" (at 141.478 81.153 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 137.922 80.01 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 139.7 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c8dca1a6-f09a-4305-804d-2295b5448f55)) + (pin "2" (uuid 4dec140a-3f2f-4b17-b6f0-89a0fc1cf30b)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb/00000000-0000-0000-0000-00005f3bb8bb" + (reference "R3") (unit 1) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267/00000000-0000-0000-0000-00005f3bb8bb" + (reference "R4") (unit 1) + ) + ) + ) + ) +) diff --git a/tests/reference/stable_nightly/font_and_colors-assembly_page_01.png b/tests/reference/stable_nightly/font_and_colors-assembly_page_01.png new file mode 100644 index 00000000..4cc55f1f Binary files /dev/null and b/tests/reference/stable_nightly/font_and_colors-assembly_page_01.png differ diff --git a/tests/reference/stable_nightly/font_and_colors-top.png b/tests/reference/stable_nightly/font_and_colors-top.png new file mode 100644 index 00000000..b6b39836 Binary files /dev/null and b/tests/reference/stable_nightly/font_and_colors-top.png differ diff --git a/tests/reference/stable_nightly/gencad-gencad.cad b/tests/reference/stable_nightly/gencad-gencad.cad new file mode 100644 index 00000000..57b42e03 --- /dev/null +++ b/tests/reference/stable_nightly/gencad-gencad.cad @@ -0,0 +1,263 @@ +$HEADER +GENCAD 1.4 +USER "" +DRAWING "" +REVISION " " +UNITS INCH +ORIGIN 0 0 +INTERTRACK 0 +$ENDHEADER + +$BOARD +LINE 7.4 -2.75 5.6 -2.75 +LINE 5.6 -2.75 5.6 -3.6 +LINE 7.4 -3.6 7.4 -2.75 +LINE 5.6 -3.6 7.4 -3.6 +$ENDBOARD + +$PADS +PAD P1 ROUND 0.0452756 +CIRCLE 0 0 0.0226378 +PAD P2 POLYGON 0.0393701 +ARC -0.0393701 0 -0.0137795 -0.0255906 -0.0137795 0 +LINE -0.0137795 -0.0255906 0.0137795 -0.0255906 +ARC 0.0137795 -0.0255906 0.0393701 0 0.0137795 0 +ARC 0.0393701 0 0.0137795 0.0255906 0.0137795 0 +LINE -0.0137795 0.0255906 0.0137795 0.0255906 +ARC -0.0137795 0.0255906 -0.0393701 0 -0.0137795 0 +PAD P3 POLYGON 0.0393701 +ARC -0.0393701 -0.015748 -0.0295276 -0.0255906 -0.0295276 -0.015748 +LINE -0.0295276 -0.0255906 0.0295276 -0.0255906 +ARC 0.0295276 -0.0255906 0.0393701 -0.015748 0.0295276 -0.015748 +LINE 0.0393701 0.015748 0.0393701 -0.015748 +ARC 0.0393701 0.015748 0.0295276 0.0255906 0.0295276 0.015748 +LINE -0.0295276 0.0255906 0.0295276 0.0255906 +ARC -0.0295276 0.0255906 -0.0393701 0.015748 -0.0295276 0.015748 +LINE -0.0393701 -0.015748 -0.0393701 0.015748 +PAD P4 POLYGON 0 +ARC -0.0116142 -0.00679134 -0.00580709 -0.0125984 -0.00580709 -0.00679134 +LINE -0.00580709 -0.0125984 0.00580709 -0.0125984 +ARC 0.00580709 -0.0125984 0.0116142 -0.00679134 0.00580709 -0.00679134 +LINE 0.0116142 0.00679134 0.0116142 -0.00679134 +ARC 0.0116142 0.00679134 0.00580709 0.0125984 0.00580709 0.00679134 +LINE -0.00580709 0.0125984 0.00580709 0.0125984 +ARC -0.00580709 0.0125984 -0.0116142 0.00679134 -0.00580709 0.00679134 +LINE -0.0116142 -0.00679134 -0.0116142 0.00679134 + +$ENDPADS + +$PADSTACKS +PADSTACK PAD1 0.0452756 +PAD P1 BOTTOM 0 0 +PAD P1 INNER1 0 0 +PAD P1 INNER2 0 0 +PAD P1 INNER3 0 0 +PAD P1 INNER4 0 0 +PAD P1 TOP 0 0 +PADSTACK PAD1F 0.0452756 +PAD P1 TOP 0 0 +PAD P1 INNER13 0 0 +PAD P1 INNER12 0 0 +PAD P1 INNER11 0 0 +PAD P1 INNER10 0 0 +PAD P1 BOTTOM 0 0 +PAD P1 SOLDERMASK_BOTTOM 0 0 +PAD P1 SOLDERMASK_TOP 0 0 +PADSTACK PAD2 0.0393701 +PAD P2 BOTTOM 0 0 +PAD P2 INNER1 0 0 +PAD P2 INNER2 0 0 +PAD P2 INNER3 0 0 +PAD P2 INNER4 0 0 +PAD P2 TOP 0 0 +PADSTACK PAD2F 0.0393701 +PAD P2 TOP 0 0 +PAD P2 INNER13 0 0 +PAD P2 INNER12 0 0 +PAD P2 INNER11 0 0 +PAD P2 INNER10 0 0 +PAD P2 BOTTOM 0 0 +PAD P2 SOLDERMASK_BOTTOM 0 0 +PAD P2 SOLDERMASK_TOP 0 0 +PADSTACK PAD3 0.0393701 +PAD P3 BOTTOM 0 0 +PAD P3 INNER1 0 0 +PAD P3 INNER2 0 0 +PAD P3 INNER3 0 0 +PAD P3 INNER4 0 0 +PAD P3 TOP 0 0 +PADSTACK PAD3F 0.0393701 +PAD P3 TOP 0 0 +PAD P3 INNER13 0 0 +PAD P3 INNER12 0 0 +PAD P3 INNER11 0 0 +PAD P3 INNER10 0 0 +PAD P3 BOTTOM 0 0 +PAD P3 SOLDERMASK_BOTTOM 0 0 +PAD P3 SOLDERMASK_TOP 0 0 +PADSTACK PAD4 0 +PAD P4 TOP 0 0 +PADSTACK PAD4F 0 +PAD P4 TOP 0 0 +PAD P4 SOLDERPASTE_TOP 0 0 +PAD P4 SOLDERMASK_TOP 0 0 +$ENDPADSTACKS + +$ARTWORKS +$ENDARTWORKS + +$SHAPES + +SHAPE "C1" +INSERT SMD +PIN "1" PAD4 -0.0190945 0 TOP 0 0 +PIN "2" PAD4 0.0190945 0 TOP 0 0 + +SHAPE "C2" +INSERT SMD +PIN "1" PAD4 -0.0190945 0 TOP 0 0 +PIN "2" PAD4 0.0190945 0 TOP 0 0 + +SHAPE "P1" +INSERT TH +LINE -0.226378 0.112205 -0.167323 0.112205 +LINE -0.226378 0.0531496 -0.226378 0.112205 +LINE -0.216929 0.102756 -0.216929 -0.181496 +LINE -0.216929 -0.181496 -0.0807087 -0.181496 +LINE -0.0366142 -0.181566 0.0705442 -0.181566 +LINE 0.0712598 0.102756 -0.216929 0.102756 +LINE 0.11063 0.0633858 0.11063 -0.142126 +ARC 0.11063 0.0633858 0.0712598 0.102756 0.0712598 0.0633858 +ARC 0.0712598 -0.181496 0.11063 -0.142126 0.0712598 -0.142126 +PIN "none" PAD1 -0.0590551 -0.159449 TOP 0 0 +PIN "1" PAD3 0 0 TOP 0 0 +PIN "2" PAD2 0 -0.0787402 TOP 0 0 + +SHAPE "R1" +INSERT SMD +PIN "1" PAD4 -0.0190945 0 TOP 0 0 +PIN "2" PAD4 0.0190945 0 TOP 0 0 +$ENDSHAPES + +$COMPONENTS + +COMPONENT "C1" +DEVICE "DEV_C1" +PLACE 6.4872 -3.16949 +LAYER TOP +ROTATION 90 +SHAPE "C1" 0 0 +TEXT 0 0.046063 0.0393701 0 0 SILKSCREEN_TOP "C1" 0 0 0.0787402 0.0393701 +TEXT 0 -0.046063 0.0393701 0 0 SILKSCREEN_TOP "C" 0 0 0.0393701 0.0393701 +SHEET "RefDes: C1, Value: C" + +COMPONENT "C2" +DEVICE "DEV_C2" +PLACE 6.7 -3.15039 +LAYER TOP +ROTATION 90 +SHAPE "C2" 0 0 +TEXT 0 0.046063 0.0393701 0 0 SILKSCREEN_TOP "C2" 0 0 0.0787402 0.0393701 +TEXT 0 -0.046063 0.0393701 0 0 SILKSCREEN_TOP "C" 0 0 0.0393701 0.0393701 +SHEET "RefDes: C2, Value: C" + +COMPONENT "P1" +DEVICE "DEV_P1" +PLACE 6.1 -3.15 +LAYER TOP +ROTATION 0 +SHAPE "P1" 0 0 +TEXT -0.0531496 0.145669 0.0393701 0 0 SILKSCREEN_TOP "P1" 0 0 0.0787402 0.0393701 +TEXT -0.0531496 -0.224409 0.0393701 0 0 SILKSCREEN_TOP "CONN_01X02" 0 0 0.393701 0.0393701 +SHEET "RefDes: P1, Value: CONN_01X02" + +COMPONENT "R1" +DEVICE "DEV_R1" +PLACE 6.6 -3.3 +LAYER TOP +ROTATION 0 +SHAPE "R1" 0 0 +TEXT 0 0.046063 0.0393701 0 0 SILKSCREEN_TOP "R1" 0 0 0.0787402 0.0393701 +TEXT 0 -0.046063 0.0393701 0 0 SILKSCREEN_TOP "R" 0 0 0.0393701 0.0393701 +SHEET "RefDes: R1, Value: R" +$ENDCOMPONENTS + +$DEVICES +$ENDDEVICES + +$SIGNALS +SIGNAL "/Power/VCC" +NODE "C1" "1" +NODE "P1" "2" +NODE "R1" "1" +SIGNAL "GND" +NODE "C1" "2" +NODE "C2" "2" +NODE "P1" "1" +SIGNAL "Net-(C2-Pad1)" +NODE "C2" "1" +NODE "R1" "2" +$ENDSIGNALS + +$TRACKS +TRACK TRACK250000 0.00984252 +$ENDTRACKS + +$ROUTES +ROUTE "/Power/VCC" +TRACK TRACK250000 +LAYER TOP +LINE 6.17126 -3.22874 6.1 -3.22874 +LINE 6.5 -3.20138 6.4872 -3.18858 +LINE 6.4872 -3.18858 6.21142 -3.18858 +LINE 6.21142 -3.18858 6.17126 -3.22874 +LINE 6.58091 -3.28228 6.5 -3.20138 +LINE 6.58091 -3.3 6.58091 -3.28228 +LAYER INNER3 +LINE 6.29617 -3.22874 6.29921 -3.23179 +LINE 6.1 -3.22874 6.29617 -3.22874 +LINE 6.29921 -3.23179 6.29921 -2.87402 +LINE 7.08661 -3.46457 7.08661 -2.87461 +LINE 6.29921 -3.46457 6.29921 -3.23179 +LINE 7.08661 -2.87461 7.08602 -2.87402 +LINE 7.08602 -2.87402 6.29921 -2.87402 +LINE 7.08661 -3.46457 6.29921 -3.46457 +LAYER INNER1 +LINE 6.33858 -3.22958 6.33858 -3.4252 +LINE 6.1 -3.22874 6.33774 -3.22874 +LINE 7.04724 -3.42476 7.04724 -2.91339 +LINE 6.33858 -2.91339 7.04724 -2.91339 +LINE 6.33858 -3.4252 7.0468 -3.4252 +LINE 7.0468 -3.4252 7.04724 -3.42476 +LINE 6.33774 -3.22874 6.33858 -3.22958 +LINE 6.33858 -2.91339 6.33858 -3.22958 +ROUTE "GND" +LAYER TOP +LINE 6.5063 -3.1313 6.7 -3.1313 +LINE 6.4872 -3.15039 6.5063 -3.1313 +LINE 6.48681 -3.15 6.4872 -3.15039 +LINE 6.1 -3.15 6.48681 -3.15 +LAYER INNER4 +LINE 7.08661 -2.87402 7.08661 -3.46457 +LINE 6.29921 -2.87402 7.08661 -2.87402 +LINE 7.08661 -3.46457 6.29957 -3.46457 +LINE 6.29957 -3.46457 6.29921 -3.46421 +LINE 6.10121 -3.14879 6.1 -3.15 +LINE 6.29921 -3.14879 6.10121 -3.14879 +LINE 6.29921 -3.14879 6.29921 -2.87402 +LINE 6.29921 -3.46421 6.29921 -3.14879 +LAYER INNER2 +LINE 7.04724 -3.4252 7.04724 -2.91339 +LINE 6.33858 -2.91358 6.33858 -3.15058 +LINE 6.33858 -3.15058 6.33858 -3.4252 +LINE 7.04724 -2.91339 6.33839 -2.91339 +LINE 6.338 -3.15 6.33858 -3.15058 +LINE 6.33858 -3.4252 7.04724 -3.4252 +LINE 6.33839 -2.91339 6.33858 -2.91358 +LINE 6.1 -3.15 6.338 -3.15 +ROUTE "Net-(C2-Pad1)" +LAYER TOP +LINE 6.7 -3.16949 6.7 -3.21909 +LINE 6.7 -3.21909 6.61909 -3.3 +$ENDROUTES + diff --git a/tests/reference/stable_nightly/glasgow-boardview.brd b/tests/reference/stable_nightly/glasgow-boardview.brd new file mode 100644 index 00000000..f07c548b --- /dev/null +++ b/tests/reference/stable_nightly/glasgow-boardview.brd @@ -0,0 +1,1719 @@ +0 +BRDOUT: 69 5118 4724 +4976 2796 +4991 2798 +5006 2802 +5020 2807 +5034 2813 +5048 2821 +5060 2831 +5071 2841 +5082 2852 +5091 2865 +5099 2878 +5106 2892 +5111 2907 +5115 2922 +5117 2937 +5118 2952 +5118 4566 +5117 4582 +5115 4597 +5111 4612 +5106 4627 +5099 4641 +5091 4654 +5082 4666 +5071 4678 +5060 4688 +5048 4697 +5034 4705 +5020 4712 +5006 4717 +4991 4721 +4976 4723 +4960 4724 +2125 4724 +2110 4723 +2095 4721 +2080 4717 +2065 4712 +2051 4705 +2038 4697 +2026 4688 +2014 4678 +2004 4666 +1995 4654 +1987 4641 +1980 4627 +1975 4612 +1971 4597 +1969 4582 +1968 4566 +1968 2952 +1969 2937 +1971 2922 +1975 2907 +1980 2892 +1987 2878 +1995 2865 +2004 2852 +2014 2841 +2026 2831 +2038 2821 +2051 2813 +2065 2807 +2080 2802 +2095 2798 +2110 2796 +2125 2795 +4960 2795 +4976 2796 + +NETS: 227 +1 /SDA +2 +3V3 +3 GND +4 /SCL +5 +5V +6 /~{CY_RESET} +7 /SHLD +8 /USB_P +9 /XTALOUT +10 /XTALIN +11 /USB_N +12 /D0 +13 /D1 +14 /D2 +15 /D3 +16 /D4 +17 /D5 +18 /D6 +19 /D7 +20 /FLAGA +21 /FLAGB +22 /FLAGC +23 /OE +24 /A0 +25 /A1 +26 /PKTEND +27 /FPGA_DONE +28 /~{FPGA_RESET} +29 +1V2 +30 /CLKIF +31 /FLAGD +32 /VUSB +33 /LED_CY +34 Net-(D2-Pad2) +35 Net-(D5-Pad2) +36 /LED_ERR +37 /LED_ACT +38 Net-(D4-Pad2) +39 Net-(D3-Pad2) +40 /LED_FPGA +41 Net-(D1-Pad2) +42 /~{ALERT} +43 /CLKREF +44 /ENVB +45 /ENVA +46 /WR +47 /RD +48 /VCCPLL1 +49 /VCCPLL0 +50 /GNDPLL1 +51 /GNDPLL0 +52 Net-(D6-Pad2) +53 Net-(D10-Pad2) +54 Net-(D9-Pad2) +55 Net-(D8-Pad2) +56 Net-(D7-Pad2) +57 /IO_Banks/IO_Buffer_B/Y0 +58 /IO_Banks/IO_Buffer_B/Z0 +59 /IO_Banks/IO_Buffer_B/Y7 +60 /IO_Banks/IO_Buffer_B/Z7 +61 /IO_Banks/IO_Buffer_B/Y1 +62 /IO_Banks/IO_Buffer_B/Y2 +63 /IO_Banks/IO_Buffer_B/Y3 +64 /IO_Banks/IO_Buffer_B/Y4 +65 /IO_Banks/IO_Buffer_B/Y5 +66 /IO_Banks/IO_Buffer_B/Y6 +67 /IO_Banks/IO_Buffer_B/Z1 +68 /IO_Banks/IO_Buffer_B/Z2 +69 /IO_Banks/IO_Buffer_B/Z3 +70 /IO_Banks/IO_Buffer_B/Z5 +71 /IO_Banks/IO_Buffer_B/Z4 +72 /IO_Banks/IO_Buffer_B/Z6 +73 /IO_Banks/IO_Buffer_A/Y0 +74 /IO_Banks/IO_Buffer_A/Z0 +75 /IO_Banks/IO_Buffer_A/Y7 +76 /IO_Banks/IO_Buffer_A/Z7 +77 /IO_Banks/IO_Buffer_A/Y1 +78 /IO_Banks/IO_Buffer_A/Y2 +79 /IO_Banks/IO_Buffer_A/Y3 +80 /IO_Banks/IO_Buffer_A/Y4 +81 /IO_Banks/IO_Buffer_A/Y5 +82 /IO_Banks/IO_Buffer_A/Y6 +83 /IO_Banks/IO_Buffer_A/Z1 +84 /IO_Banks/IO_Buffer_A/Z2 +85 /IO_Banks/IO_Buffer_A/Z3 +86 /IO_Banks/IO_Buffer_A/Z5 +87 /IO_Banks/IO_Buffer_A/Z4 +88 /IO_Banks/IO_Buffer_A/Z6 +89 /IO_Banks/QB6 +90 /IO_Banks/QB5 +91 /IO_Banks/QB4 +92 /IO_Banks/QB3 +93 /IO_Banks/QB2 +94 /IO_Banks/QB1 +95 /IO_Banks/QB7 +96 /IO_Banks/QB0 +97 /IO_Banks/QA0 +98 /IO_Banks/QA7 +99 /IO_Banks/QA1 +100 /IO_Banks/QA2 +101 /IO_Banks/QA3 +102 /IO_Banks/QA4 +103 /IO_Banks/QA5 +104 /IO_Banks/QA6 +105 /IO_Banks/U1 +106 /IO_Banks/IO_Buffer_A/VSENSE +107 /IO_Banks/VIOB +108 /IO_Banks/VIOA +109 /IO_Banks/U2 +110 /IO_Banks/IO_Buffer_B/VSENSE +111 /IO_Banks/U5 +112 /IO_Banks/U4 +113 /IO_Banks/U3 +114 /IO_Banks/Z0_P +115 /IO_Banks/Z2_N +116 /IO_Banks/Z3_N +117 /IO_Banks/Z3_P +118 /IO_Banks/Z6_P +119 /IO_Banks/Z8_P +120 /IO_Banks/Z10_P +121 /IO_Banks/Z11_P +122 /IO_Banks/Z11_N +123 /IO_Banks/Z0_N +124 /IO_Banks/Z2_P +125 /IO_Banks/Z4_P +126 /IO_Banks/Z5_P +127 /IO_Banks/Z6_N +128 /IO_Banks/Z8_N +129 /IO_Banks/Z10_N +130 /IO_Banks/Z12_N +131 /IO_Banks/Z12_P +132 /IO_Banks/Z1_N +133 /IO_Banks/Z4_N +134 /IO_Banks/Z5_N +135 /IO_Banks/Z7_N +136 /IO_Banks/Z9_P +137 /IO_Banks/Z9_N +138 /IO_Banks/Z1_P +139 /IO_Banks/VIO_AUX +140 /IO_Banks/Z7_P +141 /IO_Banks/DA0 +142 /IO_Banks/DA4 +143 /IO_Banks/DA6 +144 /IO_Banks/DA1 +145 /IO_Banks/DA3 +146 /IO_Banks/DA5 +147 /IO_Banks/DA7 +148 /IO_Banks/DB0 +149 /IO_Banks/DB4 +150 /IO_Banks/DB6 +151 /IO_Banks/DB1 +152 /IO_Banks/DB3 +153 /IO_Banks/DB5 +154 /IO_Banks/DB7 +155 /IO_Banks/DA2 +156 /IO_Banks/DB2 +157 /IO_Banks/IO_Buffer_B/VFB +158 /IO_Banks/IO_Buffer_A/VFB +159 /IO_Banks/~{SYNC} +160 Net-(R40-Pad1) +161 Net-(R37-Pad1) +162 Net-(R36-Pad1) +163 Net-(R10-Pad1) +164 Net-(R39-Pad2) +165 Net-(R43-Pad2) +166 Net-(R38-Pad2) +167 Net-(D12-Pad1) +168 Net-(D13-Pad1) +169 Net-(R45-Pad2) +170 Net-(R45-Pad1) +171 Net-(D14-Pad2) +172 Net-(D15-Pad2) +173 Net-(RN1-Pad5) +174 Net-(RN1-Pad6) +175 Net-(RN1-Pad7) +176 Net-(RN2-Pad5) +177 Net-(RN2-Pad6) +178 Net-(RN2-Pad8) +179 Net-(RN2-Pad7) +180 Net-(RN7-Pad5) +181 Net-(RN7-Pad6) +182 Net-(RN7-Pad7) +183 Net-(RN8-Pad5) +184 Net-(RN8-Pad6) +185 Net-(RN8-Pad8) +186 Net-(RN8-Pad7) +187 /xVBUS +188 /CC1 +189 /CC2 +190 Net-(C44-Pad2) +191 Net-(C44-Pad1) +192 Net-(C58-Pad2) +193 Net-(C58-Pad1) +194 Net-(D18-Pad3) +195 /IO_Banks/IO_Buffer_B/VIO_EN +196 Net-(D19-Pad3) +197 /IO_Banks/IO_Buffer_A/VIO_EN +198 Net-(D24-Pad2) +199 Net-(R4-Pad2) +200 Net-(R6-Pad1) +201 Net-(R56-Pad1) +202 /IO_Banks/IO_Buffer_B/ISNS_H +203 /IO_Banks/IO_Buffer_A/ISNS_H +204 /SWSH +205 Net-(C90-Pad2) +206 Net-(C91-Pad2) +207 /IO_Banks/IO_Buffer_B/X0 +208 /IO_Banks/IO_Buffer_A/X0 +209 /IO_Banks/IO_Buffer_B/P7 +210 /IO_Banks/IO_Buffer_B/P6 +211 /IO_Banks/IO_Buffer_B/P5 +212 /IO_Banks/IO_Buffer_B/P4 +213 /IO_Banks/IO_Buffer_B/P3 +214 /IO_Banks/IO_Buffer_B/P2 +215 /IO_Banks/IO_Buffer_B/P1 +216 /IO_Banks/IO_Buffer_B/P0 +217 /IO_Banks/IO_Buffer_A/P7 +218 /IO_Banks/IO_Buffer_A/P6 +219 /IO_Banks/IO_Buffer_A/P5 +220 /IO_Banks/IO_Buffer_A/P4 +221 /IO_Banks/IO_Buffer_A/P3 +222 /IO_Banks/IO_Buffer_A/P2 +223 /IO_Banks/IO_Buffer_A/P1 +224 /IO_Banks/IO_Buffer_A/P0 +225 /~{MR} +226 /IO_Banks/IO_Buffer_B/VDAC +227 /IO_Banks/IO_Buffer_A/VDAC + +PARTS: 245 +C1 2515 3887 2634 3962 0 2 +C10 2643 3895 2718 3958 2 2 +C11 2399 1192 2492 1153 4 1 +C12 2317 1094 2356 999 6 1 +C13 2279 1155 2354 1094 8 1 +C14 3047 3929 3106 4048 10 2 +C15 2812 4289 2887 4354 12 2 +C16 2394 410 2518 290 14 1 +C17 2950 4289 3025 4354 16 2 +C18 3194 3819 3269 3883 18 2 +C19 3322 3907 3442 3966 20 2 +C2 2549 3810 2613 3886 22 2 +C20 3413 3844 3488 3909 24 2 +C21 3354 3694 3393 3790 26 2 +C22 4588 761 4664 704 28 1 +C23 3257 3787 3332 3851 30 2 +C24 3320 3636 3395 3700 32 2 +C25 3197 3656 3236 3765 34 2 +C26 2535 147 2653 73 36 1 +C27 2667 441 2726 321 38 1 +C28 2667 240 2726 121 40 1 +C29 4210 751 4303 712 42 1 +C3 2549 3732 2613 3807 44 2 +C30 4959 525 5019 450 46 1 +C31 4682 820 4742 700 48 1 +C32 4929 958 4968 872 50 1 +C33 3257 3667 3332 3732 52 2 +C34 3703 3322 3765 3397 54 2 +C35 3703 3432 3765 3508 56 2 +C36 3703 3543 3765 3618 58 2 +C37 3703 3653 3765 3728 60 2 +C38 3777 3322 3840 3397 62 2 +C39 3777 3432 3840 3508 64 2 +C4 2886 3811 2950 3886 66 2 +C40 3777 3543 3840 3618 68 2 +C41 3777 3653 3840 3728 70 2 +C42 3860 3322 3923 3397 72 2 +C43 3860 3432 3923 3508 74 2 +C44 4792 4164 4916 4263 76 2 +C45 4740 808 4779 722 78 1 +C46 4930 665 5024 626 80 1 +C47 3860 3543 3923 3618 82 2 +C48 3860 3653 3923 3728 84 2 +C49 3935 3322 3997 3397 86 2 +C5 2816 3561 2891 3623 88 2 +C50 3935 3432 3997 3508 90 2 +C51 3935 3543 3997 3618 92 2 +C52 3935 3653 3997 3728 94 2 +C53 4793 671 4913 612 96 1 +C54 4570 1216 4663 1177 98 1 +C55 4689 1478 4749 1403 100 1 +C56 4740 1057 4779 970 102 1 +C57 4702 1302 4796 1263 104 1 +C58 4792 3256 4916 3355 106 2 +C59 4929 1206 4968 1120 108 1 +C6 2800 3895 2876 3958 110 2 +C60 3703 3761 3765 3836 112 2 +C61 3703 3873 3765 3949 114 2 +C62 3703 3984 3765 4059 116 2 +C63 3703 4094 3765 4169 118 2 +C64 3777 3761 3840 3836 120 2 +C65 3777 3873 3840 3949 122 2 +C66 3777 3984 3840 4059 124 2 +C67 3777 4094 3840 4169 126 2 +C68 3860 3763 3923 3838 128 2 +C69 3860 3873 3923 3949 130 2 +C7 2612 3561 2687 3623 132 2 +C70 3860 3984 3923 4059 134 2 +C71 3860 4094 3923 4169 136 2 +C72 3935 3763 3997 3838 138 2 +C73 3935 3873 3997 3949 140 2 +C74 3935 3984 3997 4059 142 2 +C75 3935 4094 3997 4169 144 2 +C76 3035 3765 3153 3825 146 2 +C77 3323 3703 3362 3797 148 2 +C78 3104 3691 3179 3755 150 2 +C79 3413 3692 3452 3797 152 2 +C8 2266 952 2362 913 154 1 +C80 3450 3700 3510 3819 156 2 +C81 3132 3879 3194 3954 158 2 +C82 4966 1228 5025 1110 160 1 +C83 4795 1317 4918 1257 162 1 +C84 4226 1204 4285 1129 164 1 +C85 3492 3869 3554 3945 166 2 +C86 2535 348 2653 274 168 1 +C87 2471 762 2851 481 170 1 +C88 2869 1204 2968 1080 172 1 +C89 2793 194 2882 155 174 1 +C9 2549 3653 2613 3729 176 2 +C90 4959 625 5079 500 178 1 +C91 4629 1428 4749 1304 180 1 +D1 2183 1566 2303 1504 182 1 +D10 2183 425 2303 362 184 1 +D11 3373 442 3430 199 186 1 +D12 4215 934 4288 823 188 1 +D13 4215 1038 4288 927 190 1 +D14 4767 405 4911 342 192 1 +D15 4767 1586 4911 1523 194 1 +D16 4503 600 4657 512 196 1 +D17 3663 1525 3867 1430 198 1 +D18 4660 709 4796 585 200 1 +D19 4912 1326 5048 1217 203 1 +D2 2183 1487 2303 1425 206 1 +D20 4052 494 4211 403 208 1 +D21 3894 494 4054 403 222 1 +D22 3894 1530 4054 1438 236 1 +D23 4052 1530 4211 1438 250 1 +D24 2321 216 2457 53 264 1 +D3 2183 1409 2303 1346 267 1 +D4 2183 1330 2303 1267 269 1 +D5 2183 1251 2303 1189 271 1 +D6 2183 739 2303 677 273 1 +D7 2183 661 2303 598 275 1 +D8 2183 582 2303 519 277 1 +D9 2183 503 2303 441 279 1 +FB1 2216 877 2362 838 281 1 +FID1 2107 166 2459 -34 283 1 +FID2 4626 1977 4979 1777 284 1 +FID3 4626 166 4979 -34 285 1 +FID4 2107 4573 2459 4772 286 2 +FID5 4626 2762 4979 2961 287 2 +FID6 4626 4573 4979 4772 288 2 +FID8 2879 1312 3261 1134 289 1 +J1 1856 1184 2281 744 290 1 +J10 4072 1135 4216 792 316 1 +J2 3423 1910 4765 1518 319 1 +J3 3423 410 4765 18 339 1 +J4 3140 585 3382 -60 359 1 +J5 2236 1882 3426 1542 361 1 +J6 4127 636 4711 268 423 1 +J7 4127 836 4711 468 431 1 +J8 4126 1660 4711 1292 439 1 +J9 4126 1459 4711 1091 447 1 +MK1 1926 363 2325 -42 455 1 +MK2 1926 1977 2325 1572 464 1 +MK3 4761 1977 5159 1572 473 1 +MK4 4761 363 5159 -42 482 1 +NONO_HANA 2221 2686 3588 3766 491 2 +R1 2907 675 2968 600 491 1 +R10 3584 918 3659 858 493 1 +R11 2303 746 2363 671 495 1 +R12 2303 1573 2363 1497 497 1 +R13 2303 1494 2363 1419 499 1 +R14 2303 1415 2363 1340 501 1 +R15 2303 1336 2363 1261 503 1 +R16 2303 1258 2363 1182 505 1 +R17 2970 1188 3045 1128 507 1 +R18 4913 1557 4973 1482 509 1 +R19 4905 447 4966 371 511 1 +R2 2907 592 2968 517 513 1 +R20 2303 667 2363 592 515 1 +R21 2303 588 2363 513 517 1 +R22 2303 510 2363 434 519 1 +R23 2303 431 2363 356 521 1 +R24 4755 4107 4854 4231 523 2 +R25 4794 4107 4914 4231 525 2 +R26 4968 837 5067 713 527 1 +R27 4907 813 4968 737 529 1 +R28 4907 738 4968 663 531 1 +R29 4968 738 5029 663 533 1 +R3 2240 840 2362 801 535 1 +R30 4854 3288 4953 3412 537 2 +R31 3029 3823 3104 3887 539 2 +R32 3517 3732 3584 3807 541 2 +R33 4740 1191 4800 1115 543 1 +R34 4740 1265 4800 1190 545 1 +R35 4679 1265 4739 1190 547 1 +R36 4588 808 4663 752 549 1 +R37 4226 1130 4285 1054 551 1 +R38 3417 560 3456 448 553 1 +R39 4010 952 4074 877 555 1 +R4 2452 136 2517 61 557 1 +R40 2738 306 2858 181 559 1 +R41 4210 787 4318 748 561 1 +R42 4555 1180 4663 1141 563 1 +R43 4010 1025 4074 950 565 1 +R44 3380 558 3419 448 567 1 +R45 3412 747 3523 708 569 1 +R46 4789 444 4897 405 571 1 +R47 4789 1523 4897 1484 573 1 +R48 4839 4011 4913 4130 575 2 +R49 4795 3389 4871 3508 577 2 +R5 2452 211 2517 136 579 1 +R50 4868 4008 4988 4132 581 2 +R51 4720 3386 4839 3510 583 2 +R52 2256 915 2362 876 585 1 +R53 2279 1094 2318 988 587 1 +R54 4795 3288 4914 3412 589 2 +R55 4641 1215 4739 1091 591 1 +R56 4795 3499 4871 3618 593 2 +R57 4151 787 4212 712 595 1 +R58 4622 1300 4669 1214 597 1 +R59 4961 4107 5079 4231 599 2 +R6 4868 3901 4988 4019 601 2 +R60 4676 3288 4796 3412 603 2 +R7 4839 3901 4913 4019 605 2 +R8 4720 3499 4839 3618 607 2 +R9 2925 818 3014 727 609 1 +RN1 3526 723 3615 623 611 1 +RN10 4111 1378 4211 1274 619 1 +RN11 4315 1418 4416 1329 627 1 +RN12 4414 1418 4514 1329 635 1 +RN2 3526 625 3615 524 643 1 +RN3 4111 655 4211 550 651 1 +RN4 4012 655 4113 550 659 1 +RN5 4414 599 4514 510 667 1 +RN6 4315 599 4416 510 675 1 +RN7 3526 1219 3615 1119 683 1 +RN8 3526 1121 3615 1020 691 1 +RN9 4012 1378 4113 1274 699 1 +SW1 2839 206 3038 -216 707 1 +U1 2572 1141 2927 787 710 1 +U10 3719 1077 3847 962 797 1 +U11 3876 1407 4004 1292 803 1 +U12 4728 597 4980 457 809 1 +U13 4778 961 4930 817 819 1 +U14 4778 812 4930 668 825 1 +U15 2361 965 2512 821 830 1 +U16 3876 1297 4004 1182 836 1 +U17 3876 1187 4004 1072 842 1 +U18 3876 1077 4004 962 848 1 +U19 4284 1204 4589 984 854 1 +U2 2937 510 3077 205 870 1 +U20 4778 1111 4930 967 878 1 +U21 4728 1471 4980 1331 884 1 +U22 3719 966 3847 852 894 1 +U23 3719 856 3847 741 900 1 +U24 3719 746 3847 631 906 1 +U25 3719 636 3847 521 912 1 +U26 3876 966 4004 852 918 1 +U27 3876 856 4004 741 924 1 +U28 3876 746 4004 631 930 1 +U29 3876 636 4004 521 936 1 +U3 2800 510 2939 205 942 1 +U30 3077 1182 3512 747 950 1 +U31 4778 1260 4930 1117 1071 1 +U32 3510 861 3638 745 1076 1 +U36 2489 466 2699 347 1082 1 +U4 3719 1407 3847 1292 1094 1 +U5 4284 944 4589 724 1100 1 +U6 3719 1297 3847 1182 1116 1 +U7 2345 410 2473 213 1122 1 +U8 2497 265 2691 146 1126 1 +U9 3719 1187 3847 1072 1138 1 +Y1 2353 1154 2520 1018 1144 1 + +PINS: 1148 +2543 3917 2 2 +2605 3917 3 2 +2662 3915 2 2 +2700 3915 3 2 +2456 1173 9 1 +2417 1173 3 1 +2336 1037 10 1 +2336 1076 3 1 +2336 1114 7 1 +2297 1114 3 1 +3076 3958 29 2 +3076 4020 3 2 +2831 4334 2 2 +2869 4334 3 2 +2475 370 5 1 +2437 370 3 1 +2969 4334 2 2 +3007 4334 3 2 +3213 3838 29 2 +3251 3838 3 2 +3350 3937 2 2 +3412 3937 3 2 +2594 3829 2 2 +2594 3867 3 2 +3431 3889 2 2 +3469 3889 3 2 +3374 3751 2 2 +3374 3713 3 2 +4607 724 2 1 +4645 724 3 1 +3314 3807 2 2 +3276 3807 3 2 +3339 3681 29 2 +3377 3681 3 2 +3216 3709 29 2 +3216 3747 3 2 +2625 118 3 1 +2563 118 5 1 +2696 350 29 1 +2696 412 3 1 +2696 150 2 1 +2696 212 3 1 +4267 732 107 1 +4228 732 3 1 +2594 3750 2 2 +2594 3788 3 2 +5000 469 2 1 +5000 507 3 1 +4712 790 5 1 +4712 728 3 1 +4948 890 2 1 +4948 929 3 1 +3314 3712 139 2 +3276 3712 3 2 +3746 3341 2 2 +3746 3379 3 2 +3746 3451 2 2 +3746 3489 3 2 +3746 3561 2 2 +3746 3599 3 2 +3746 3671 2 2 +3746 3710 3 2 +3820 3341 108 2 +3820 3379 3 2 +3820 3451 108 2 +3820 3489 3 2 +2905 3829 2 2 +2905 3868 3 2 +3820 3561 108 2 +3820 3599 3 2 +3820 3671 108 2 +3820 3710 3 2 +3903 3341 2 2 +3903 3379 3 2 +3903 3451 2 2 +3903 3489 3 2 +4873 4244 191 2 +4835 4244 190 2 +4759 778 5 1 +4759 740 3 1 +4949 645 107 1 +4987 645 3 1 +3903 3561 2 2 +3903 3599 3 2 +3903 3671 2 2 +3903 3710 3 2 +3978 3341 108 2 +3978 3379 3 2 +2873 3604 2 2 +2835 3604 3 2 +3978 3451 108 2 +3978 3489 3 2 +3978 3561 108 2 +3978 3599 3 2 +3978 3671 108 2 +3978 3710 3 2 +4885 641 107 1 +4823 641 3 1 +4606 1196 108 1 +4645 1196 3 1 +4708 1460 2 1 +4708 1421 3 1 +4759 1038 2 1 +4759 1000 3 1 +4759 1283 108 1 +4721 1283 3 1 +4835 3275 193 2 +4873 3275 192 2 +4948 1150 5 1 +4948 1188 3 1 +2857 3915 2 2 +2819 3915 3 2 +3746 3780 2 2 +3746 3818 3 2 +3746 3892 2 2 +3746 3930 3 2 +3746 4002 2 2 +3746 4040 3 2 +3746 4112 2 2 +3746 4150 3 2 +3820 3780 107 2 +3820 3818 3 2 +3820 3892 107 2 +3820 3930 3 2 +3820 4002 107 2 +3820 4040 3 2 +3820 4112 107 2 +3820 4150 3 2 +3903 3782 2 2 +3903 3820 3 2 +3903 3892 2 2 +3903 3930 3 2 +2630 3604 2 2 +2668 3604 3 2 +3903 4002 2 2 +3903 4040 3 2 +3903 4112 2 2 +3903 4150 3 2 +3978 3782 107 2 +3978 3820 3 2 +3978 3892 107 2 +3978 3930 3 2 +3978 4002 107 2 +3978 4040 3 2 +3978 4112 107 2 +3978 4150 3 2 +3125 3795 49 2 +3063 3795 51 2 +3342 3778 29 2 +3342 3740 3 2 +3161 3736 49 2 +3123 3736 51 2 +3433 3778 48 2 +3433 3740 50 2 +2343 933 32 1 +2305 933 3 1 +3480 3790 48 2 +3480 3728 50 2 +3151 3936 2 2 +3151 3898 3 2 +4996 1138 5 1 +4996 1200 3 1 +4823 1287 108 1 +4885 1287 3 1 +4265 1186 2 1 +4265 1148 3 1 +3535 3888 2 2 +3535 3926 3 2 +2625 318 3 1 +2563 318 5 1 +2551 622 5 1 +2771 622 3 1 +2948 1123 6 1 +2948 1161 3 1 +2863 175 225 1 +2825 175 3 1 +2594 3672 2 2 +2594 3710 3 2 +5000 582 3 1 +5000 543 205 1 +4708 1347 3 1 +4708 1385 206 1 +2213 1535 3 1 +2275 1535 41 1 +2213 393 3 1 +2275 393 53 1 +3401 417 159 1 +3401 362 3 1 +4244 909 167 1 +4244 854 3 1 +4244 1007 168 1 +4244 952 3 1 +4857 374 3 1 +4795 374 171 1 +4857 1555 3 1 +4795 1555 172 1 +4625 551 110 1 +4535 551 3 1 +3720 1468 106 1 +3811 1468 3 1 +4767 631 42 1 +4767 683 195 1 +4688 657 194 1 +4940 1297 42 1 +4940 1246 197 1 +5019 1271 196 1 +2213 1456 3 1 +2275 1456 34 1 +4072 424 69 1 +4092 424 68 1 +4112 424 67 1 +4131 424 58 1 +4151 424 3 1 +4171 424 107 1 +4190 424 107 1 +4190 469 107 1 +4171 469 107 1 +4151 469 3 1 +4131 469 58 1 +4112 469 67 1 +4092 469 68 1 +4072 469 69 1 +3915 424 60 1 +3935 424 72 1 +3954 424 70 1 +3974 424 71 1 +3994 424 3 1 +4013 424 0 1 +4033 424 0 1 +4033 469 0 1 +4013 469 0 1 +3994 469 3 1 +3974 469 71 1 +3954 469 70 1 +3935 469 72 1 +3915 469 60 1 +4033 1504 85 1 +4013 1504 84 1 +3994 1504 83 1 +3974 1504 74 1 +3954 1504 3 1 +3935 1504 108 1 +3915 1504 108 1 +3915 1459 108 1 +3935 1459 108 1 +3954 1459 3 1 +3974 1459 74 1 +3994 1459 83 1 +4013 1459 84 1 +4033 1459 85 1 +4190 1504 76 1 +4171 1504 88 1 +4151 1504 86 1 +4131 1504 87 1 +4112 1504 3 1 +4092 1504 0 1 +4072 1504 0 1 +4072 1459 0 1 +4092 1459 0 1 +4112 1459 3 1 +4131 1459 87 1 +4151 1459 86 1 +4171 1459 88 1 +4190 1459 76 1 +2429 137 2 1 +2429 188 198 1 +2350 163 6 1 +2213 1377 3 1 +2275 1377 39 1 +2213 1299 3 1 +2275 1299 38 1 +2213 1220 3 1 +2275 1220 35 1 +2213 708 3 1 +2275 708 52 1 +2213 629 3 1 +2275 629 56 1 +2213 551 3 1 +2275 551 55 1 +2213 472 3 1 +2275 472 54 1 +2305 858 187 1 +2343 858 32 1 +2283 59 0 1 +4803 1870 0 1 +4803 59 0 1 +2283 4665 0 2 +4803 2854 0 2 +4803 4665 0 2 +3094 1165 0 1 +2031 1146 0 1 +2031 782 0 1 +2175 1078 0 1 +2175 850 0 1 +2196 1146 0 1 +2196 782 0 1 +2232 1092 3 1 +2232 836 3 1 +2232 1061 187 1 +2232 1013 188 1 +2232 974 8 1 +2232 954 11 1 +2232 915 0 1 +2232 868 187 1 +2232 836 3 1 +2232 1092 3 1 +2232 868 187 1 +2232 895 189 1 +2232 935 8 1 +2232 994 11 1 +2232 1033 0 1 +2232 1061 187 1 +2031 1134 7 1 +2031 794 7 1 +2196 1134 7 1 +2196 794 7 1 +4144 864 3 1 +4144 964 167 1 +4144 1064 168 1 +3644 1664 106 1 +3644 1764 108 1 +3744 1664 74 1 +3744 1764 3 1 +3844 1664 83 1 +3844 1764 3 1 +3944 1664 84 1 +3944 1764 3 1 +4044 1664 85 1 +4044 1764 3 1 +4144 1664 87 1 +4144 1764 3 1 +4244 1664 86 1 +4244 1764 3 1 +4344 1664 88 1 +4344 1764 3 1 +4444 1664 76 1 +4444 1764 3 1 +4544 1664 0 1 +4544 1764 0 1 +4544 264 110 1 +4544 164 107 1 +4444 264 58 1 +4444 164 3 1 +4344 264 67 1 +4344 164 3 1 +4244 264 68 1 +4244 164 3 1 +4144 264 69 1 +4144 164 3 1 +4044 264 71 1 +4044 164 3 1 +3944 264 70 1 +3944 164 3 1 +3844 264 72 1 +3844 164 3 1 +3744 264 60 1 +3744 164 3 1 +3644 264 0 1 +3644 164 0 1 +3311 456 3 1 +3211 456 159 1 +2321 1681 3 1 +2329 1681 3 1 +2329 1634 3 1 +2321 1744 2 1 +2329 1790 2 1 +2329 1744 2 1 +2379 1681 122 1 +2379 1634 122 1 +2386 1681 122 1 +2379 1790 3 1 +2379 1744 3 1 +2386 1744 3 1 +2429 1638 121 1 +2429 1786 3 1 +2479 1638 3 1 +2479 1786 131 1 +2529 1638 120 1 +2529 1786 130 1 +2579 1638 129 1 +2579 1786 3 1 +2629 1638 3 1 +2629 1786 137 1 +2679 1638 119 1 +2679 1786 136 1 +2729 1638 128 1 +2729 1786 3 1 +2779 1638 3 1 +2779 1786 135 1 +2829 1638 118 1 +2829 1786 140 1 +2879 1638 127 1 +2879 1786 3 1 +2929 1638 3 1 +2929 1786 134 1 +2979 1638 117 1 +2979 1786 126 1 +3029 1638 116 1 +3029 1786 3 1 +3079 1638 3 1 +3079 1786 125 1 +3129 1638 115 1 +3129 1786 133 1 +3179 1638 124 1 +3179 1786 3 1 +3229 1638 3 1 +3229 1786 132 1 +3279 1638 114 1 +3279 1786 138 1 +3321 1681 123 1 +3329 1681 123 1 +3329 1634 123 1 +3321 1744 3 1 +3329 1790 3 1 +3329 1744 3 1 +3379 1681 3 1 +3379 1634 3 1 +3386 1681 3 1 +3379 1790 139 1 +3379 1744 139 1 +3386 1744 139 1 +2354 1712 0 1 +3354 1712 0 1 +4594 452 58 1 +4544 452 67 1 +4494 452 68 1 +4444 452 69 1 +4394 452 71 1 +4344 452 70 1 +4294 452 72 1 +4244 452 60 1 +4594 652 216 1 +4544 652 215 1 +4494 652 214 1 +4444 652 213 1 +4394 652 212 1 +4344 652 211 1 +4294 652 210 1 +4244 652 209 1 +4244 1476 74 1 +4294 1476 83 1 +4344 1476 84 1 +4394 1476 85 1 +4444 1476 87 1 +4494 1476 86 1 +4544 1476 88 1 +4594 1476 76 1 +4244 1275 224 1 +4294 1275 223 1 +4344 1275 222 1 +4394 1275 221 1 +4444 1275 220 1 +4494 1275 219 1 +4544 1275 218 1 +4594 1275 217 1 +2022 157 3 1 +2052 230 3 1 +2052 84 3 1 +2125 260 3 1 +2125 157 3 1 +2125 54 3 1 +2199 230 3 1 +2199 84 3 1 +2229 157 3 1 +2022 1771 3 1 +2052 1844 3 1 +2052 1698 3 1 +2125 1875 3 1 +2125 1771 3 1 +2125 1668 3 1 +2199 1844 3 1 +2199 1698 3 1 +2229 1771 3 1 +4857 1771 3 1 +4887 1844 3 1 +4887 1698 3 1 +4960 1875 3 1 +4960 1771 3 1 +4960 1668 3 1 +5033 1844 3 1 +5033 1698 3 1 +5063 1771 3 1 +4857 157 3 1 +4887 230 3 1 +4887 84 3 1 +4960 260 3 1 +4960 157 3 1 +4960 54 3 1 +5033 230 3 1 +5033 84 3 1 +5063 157 3 1 +2948 656 1 1 +2948 618 2 1 +3641 877 163 1 +3602 877 3 1 +2322 727 105 1 +2322 689 52 1 +2322 1516 2 1 +2322 1554 41 1 +2322 1437 33 1 +2322 1475 34 1 +2322 1358 40 1 +2322 1397 39 1 +2322 1280 37 1 +2322 1318 38 1 +2322 1201 36 1 +2322 1239 35 1 +2988 1169 42 1 +3026 1169 2 1 +4933 1500 45 1 +4933 1538 3 1 +4925 428 44 1 +4925 390 3 1 +2948 536 4 1 +2948 574 2 1 +2322 649 109 1 +2322 610 56 1 +2322 570 113 1 +2322 532 55 1 +2322 491 112 1 +2322 453 54 1 +2322 412 111 1 +2322 374 53 1 +4834 4150 202 2 +4834 4188 190 2 +4874 4150 107 2 +4874 4188 191 2 +4988 794 195 1 +4988 756 44 1 +4948 794 226 1 +4948 756 157 1 +4948 719 157 1 +4948 681 107 1 +4988 681 3 1 +4988 719 157 1 +2343 820 7 1 +2305 820 3 1 +4874 3369 203 2 +4874 3331 192 2 +3086 3842 49 2 +3047 3842 29 2 +3537 3788 48 2 +3537 3750 29 2 +4759 1134 227 1 +4759 1172 158 1 +4759 1209 158 1 +4759 1247 108 1 +4720 1247 3 1 +4720 1209 158 1 +4606 771 162 1 +4645 771 2 1 +4265 1111 161 1 +4265 1073 2 1 +3437 467 159 1 +3437 505 166 1 +4055 896 167 1 +4055 934 164 1 +2472 79 2 1 +2472 118 199 1 +2779 263 160 1 +2779 225 2 1 +4228 767 3 1 +4267 767 107 1 +4645 1161 3 1 +4606 1161 108 1 +4055 1007 168 1 +4055 969 165 1 +3399 467 159 1 +3399 505 2 1 +3505 728 170 1 +3467 728 169 1 +4845 425 44 1 +4807 425 171 1 +4845 1503 45 1 +4807 1503 172 1 +4883 4039 202 2 +4883 4101 107 2 +4824 3479 203 2 +4824 3417 108 2 +2472 154 199 1 +2472 192 6 1 +4958 4039 202 2 +4958 4101 107 2 +4750 3479 203 2 +4750 3417 108 2 +2343 895 3 1 +2305 895 189 1 +2299 1076 3 1 +2299 1037 188 1 +4834 3369 108 2 +4834 3331 193 2 +4720 1134 197 1 +4720 1172 45 1 +4824 3590 201 2 +4824 3528 203 2 +4192 769 3 1 +4192 730 107 1 +4645 1232 3 1 +4645 1271 108 1 +5000 4188 205 2 +5000 4150 110 2 +4958 3929 200 2 +4958 3991 202 2 +4755 3331 206 2 +4755 3369 106 2 +4883 3929 200 2 +4883 3991 202 2 +4750 3590 201 2 +4750 3528 203 2 +2960 754 3 1 +2987 781 28 1 +3555 704 96 1 +3555 683 94 1 +3555 663 93 1 +3555 641 92 1 +3594 641 173 1 +3594 663 174 1 +3594 683 175 1 +3594 704 207 1 +4129 1318 80 1 +4151 1318 81 1 +4171 1318 82 1 +4192 1318 75 1 +4192 1358 76 1 +4171 1358 88 1 +4151 1358 86 1 +4129 1358 87 1 +4397 1397 85 1 +4375 1397 84 1 +4356 1397 83 1 +4334 1397 74 1 +4334 1358 224 1 +4356 1358 223 1 +4375 1358 222 1 +4397 1358 221 1 +4496 1397 76 1 +4474 1397 88 1 +4454 1397 86 1 +4433 1397 87 1 +4433 1358 220 1 +4454 1358 219 1 +4474 1358 218 1 +4496 1358 217 1 +3555 606 91 1 +3555 584 90 1 +3555 564 89 1 +3555 543 95 1 +3594 543 176 1 +3594 564 177 1 +3594 584 179 1 +3594 606 178 1 +4192 610 57 1 +4171 610 61 1 +4151 610 62 1 +4129 610 63 1 +4129 570 69 1 +4151 570 68 1 +4171 570 67 1 +4192 570 58 1 +4094 610 64 1 +4072 610 65 1 +4053 610 66 1 +4031 610 59 1 +4031 570 60 1 +4053 570 72 1 +4072 570 70 1 +4094 570 71 1 +4433 531 69 1 +4454 531 68 1 +4474 531 67 1 +4496 531 58 1 +4496 570 216 1 +4474 570 215 1 +4454 570 214 1 +4433 570 213 1 +4334 531 60 1 +4356 531 72 1 +4375 531 70 1 +4397 531 71 1 +4397 570 212 1 +4375 570 211 1 +4356 570 210 1 +4334 570 209 1 +3555 1200 97 1 +3555 1179 99 1 +3555 1159 100 1 +3555 1137 101 1 +3594 1137 180 1 +3594 1159 181 1 +3594 1179 182 1 +3594 1200 208 1 +3555 1102 102 1 +3555 1080 103 1 +3555 1061 104 1 +3555 1039 98 1 +3594 1039 183 1 +3594 1061 184 1 +3594 1080 186 1 +3594 1102 185 1 +4031 1318 73 1 +4053 1318 77 1 +4072 1318 78 1 +4094 1318 79 1 +4094 1358 85 1 +4072 1358 84 1 +4053 1358 83 1 +4031 1358 74 1 +2998 103 3 1 +2879 103 225 1 +2938 30 204 1 +2592 1092 47 1 +2592 1072 46 1 +2592 1053 2 1 +2592 1033 9 1 +2592 1013 10 1 +2592 994 3 1 +2592 974 2 1 +2592 954 8 1 +2592 935 11 1 +2592 915 3 1 +2592 895 2 1 +2592 875 3 1 +2592 856 30 1 +2592 836 3 1 +2622 807 4 1 +2641 807 1 1 +2661 807 2 1 +2681 807 12 1 +2700 807 13 1 +2720 807 14 1 +2740 807 15 1 +2759 807 16 1 +2779 807 17 1 +2799 807 18 1 +2818 807 19 1 +2838 807 3 1 +2858 807 2 1 +2877 807 3 1 +2907 836 20 1 +2907 856 21 1 +2907 875 22 1 +2907 895 2 1 +2907 915 42 1 +2907 935 28 1 +2907 954 23 1 +2907 974 27 1 +2907 994 24 1 +2907 1013 25 1 +2907 1033 26 1 +2907 1053 31 1 +2907 1072 3 1 +2907 1092 6 1 +2877 1122 2 1 +2858 1122 2 1 +2838 1122 45 1 +2818 1122 0 1 +2799 1122 33 1 +2779 1122 40 1 +2759 1122 37 1 +2740 1122 36 1 +2720 1122 44 1 +2700 1122 0 1 +2681 1122 3 1 +2661 1122 43 1 +2641 1122 2 1 +2622 1122 3 1 +2650 1064 3 1 +2650 1014 3 1 +2650 964 3 1 +2650 914 3 1 +2650 864 3 1 +2700 1064 3 1 +2700 1014 3 1 +2700 964 3 1 +2700 914 3 1 +2700 864 3 1 +2750 1064 3 1 +2750 1014 3 1 +2750 964 3 1 +2750 964 3 1 +2750 964 3 1 +2750 914 3 1 +2750 864 3 1 +2800 1064 3 1 +2800 1014 3 1 +2800 964 3 1 +2800 914 3 1 +2800 864 3 1 +2850 1064 3 1 +2850 1014 3 1 +2850 964 3 1 +2850 914 3 1 +2850 864 3 1 +2688 1025 0 1 +2688 903 0 1 +2811 1025 0 1 +2811 903 0 1 +3746 1045 2 1 +3746 1019 3 1 +3746 994 184 1 +3820 994 82 1 +3820 1019 143 1 +3820 1045 108 1 +3903 1375 2 1 +3903 1350 3 1 +3903 1324 182 1 +3978 1324 77 1 +3978 1350 144 1 +3978 1375 108 1 +4767 566 3 1 +4767 547 2 1 +4767 527 194 1 +4767 507 1 1 +4767 488 4 1 +4940 488 2 1 +4940 507 3 1 +4940 527 205 1 +4940 547 191 1 +4940 566 190 1 +4897 852 226 1 +4897 889 2 1 +4897 927 3 1 +4811 927 1 1 +4811 889 4 1 +4811 852 3 1 +4811 777 5 1 +4811 740 3 1 +4811 702 195 1 +4897 702 157 1 +4897 777 200 1 +2393 931 32 1 +2393 893 3 1 +2393 856 32 1 +2480 856 5 1 +2480 893 11 1 +2480 931 8 1 +3903 1265 2 1 +3903 1240 3 1 +3903 1214 180 1 +3978 1214 79 1 +3978 1240 145 1 +3978 1265 108 1 +3903 1155 2 1 +3903 1129 3 1 +3903 1104 186 1 +3978 1104 81 1 +3978 1129 146 1 +3978 1155 108 1 +3903 1045 2 1 +3903 1019 3 1 +3903 994 183 1 +3978 994 75 1 +3978 1019 147 1 +3978 1045 108 1 +4324 1184 2 1 +4324 1158 3 1 +4324 1132 161 1 +4324 1107 224 1 +4324 1081 223 1 +4324 1056 222 1 +4324 1030 221 1 +4324 1004 3 1 +4549 1004 220 1 +4549 1030 219 1 +4549 1056 218 1 +4549 1081 217 1 +4549 1107 0 1 +4549 1132 4 1 +4549 1158 1 1 +4549 1184 108 1 +2969 245 0 1 +2995 245 2 1 +3020 245 0 1 +3046 245 3 1 +3046 470 1 1 +3020 470 4 1 +2995 470 0 1 +2969 470 2 1 +4811 1076 227 1 +4811 1039 2 1 +4811 1001 3 1 +4897 1001 1 1 +4897 1039 4 1 +4897 1076 0 1 +4940 1362 3 1 +4940 1381 3 1 +4940 1401 196 1 +4940 1421 1 1 +4940 1440 4 1 +4767 1440 2 1 +4767 1421 3 1 +4767 1401 206 1 +4767 1381 193 1 +4767 1362 192 1 +3746 935 2 1 +3746 909 3 1 +3746 883 207 1 +3820 883 57 1 +3820 909 148 1 +3820 935 107 1 +3746 824 2 1 +3746 799 3 1 +3746 773 174 1 +3820 773 62 1 +3820 799 156 1 +3820 824 107 1 +3746 714 2 1 +3746 688 3 1 +3746 663 178 1 +3820 663 64 1 +3820 688 149 1 +3820 714 107 1 +3746 604 2 1 +3746 578 3 1 +3746 553 177 1 +3820 553 66 1 +3820 578 150 1 +3820 604 107 1 +3903 935 2 1 +3903 909 3 1 +3903 883 175 1 +3978 883 61 1 +3978 909 151 1 +3978 935 107 1 +3903 824 2 1 +3903 799 3 1 +3903 773 173 1 +3978 773 63 1 +3978 799 152 1 +3978 824 107 1 +3903 714 2 1 +3903 688 3 1 +3903 663 179 1 +3978 663 65 1 +3978 688 153 1 +3978 714 107 1 +3903 604 2 1 +3903 578 3 1 +3903 553 176 1 +3978 553 59 1 +3978 578 154 1 +3978 604 107 1 +2831 245 2 1 +2857 245 160 1 +2882 245 0 1 +2908 245 3 1 +2908 470 1 1 +2882 470 4 1 +2857 470 0 1 +2831 470 2 1 +3452 1122 97 1 +3452 838 164 1 +3452 807 169 1 +3452 1090 99 1 +3452 1059 101 1 +3452 1027 103 1 +3452 996 98 1 +3452 964 104 1 +3452 933 145 1 +3452 901 146 1 +3452 870 147 1 +3421 1122 114 1 +3421 838 0 1 +3421 807 96 1 +3421 1090 123 1 +3421 1059 100 1 +3421 1027 163 1 +3421 996 102 1 +3421 964 102 1 +3421 933 104 1 +3421 901 142 1 +3421 870 143 1 +3389 1122 115 1 +3389 838 2 1 +3389 807 94 1 +3389 1090 124 1 +3389 1059 132 1 +3389 1027 138 1 +3389 996 50 1 +3389 964 48 1 +3389 933 141 1 +3389 901 144 1 +3389 870 165 1 +3358 1122 116 1 +3358 838 93 1 +3358 807 92 1 +3358 1090 125 1 +3358 1059 133 1 +3358 1027 29 1 +3358 996 43 1 +3358 964 2 1 +3358 933 155 1 +3358 901 29 1 +3358 870 112 1 +3326 1122 117 1 +3326 838 91 1 +3326 807 90 1 +3326 1090 126 1 +3326 1059 134 1 +3326 1027 139 1 +3326 996 3 1 +3326 964 3 1 +3326 933 3 1 +3326 901 111 1 +3326 870 113 1 +3295 1122 118 1 +3295 838 95 1 +3295 807 89 1 +3295 1090 127 1 +3295 1059 135 1 +3295 1027 140 1 +3295 996 3 1 +3295 964 3 1 +3295 933 3 1 +3295 901 2 1 +3295 870 148 1 +3263 1122 119 1 +3263 838 156 1 +3263 807 151 1 +3263 1090 128 1 +3263 1059 136 1 +3263 1027 139 1 +3263 996 3 1 +3263 964 3 1 +3263 933 3 1 +3263 901 109 1 +3263 870 105 1 +3232 1122 120 1 +3232 838 149 1 +3232 807 152 1 +3232 1090 129 1 +3232 1059 137 1 +3232 1027 29 1 +3232 996 3 1 +3232 964 2 1 +3232 933 12 1 +3232 901 29 1 +3232 870 4 1 +3200 1122 121 1 +3200 838 150 1 +3200 807 153 1 +3200 1090 130 1 +3200 1059 31 1 +3200 1027 46 1 +3200 996 47 1 +3200 964 49 1 +3200 933 13 1 +3200 901 1 1 +3200 870 14 1 +3169 1122 122 1 +3169 838 15 1 +3169 807 154 1 +3169 1090 131 1 +3169 1059 24 1 +3169 1027 42 1 +3169 996 21 1 +3169 964 30 1 +3169 933 19 1 +3169 901 27 1 +3169 870 17 1 +3137 1122 26 1 +3137 838 16 1 +3137 807 2 1 +3137 1090 25 1 +3137 1059 23 1 +3137 1027 22 1 +3137 996 43 1 +3137 964 51 1 +3137 933 20 1 +3137 901 18 1 +3137 870 28 1 +4897 1151 5 1 +4897 1188 3 1 +4897 1226 197 1 +4811 1226 158 1 +4811 1151 201 1 +3537 828 2 1 +3537 803 3 1 +3537 777 170 1 +3612 777 166 1 +3612 803 163 1 +3612 828 2 1 +2635 372 29 1 +2635 397 29 1 +2635 423 3 1 +2553 423 5 1 +2553 397 5 1 +2553 372 5 1 +2594 419 3 1 +2594 397 3 1 +2594 397 3 1 +2594 375 3 1 +2594 415 0 1 +2594 379 0 1 +3746 1375 2 1 +3746 1350 3 1 +3746 1324 208 1 +3820 1324 73 1 +3820 1350 141 1 +3820 1375 108 1 +4549 745 2 1 +4549 770 107 1 +4549 796 162 1 +4549 821 216 1 +4549 847 215 1 +4549 873 214 1 +4549 898 213 1 +4549 924 3 1 +4324 924 212 1 +4324 898 211 1 +4324 873 210 1 +4324 847 209 1 +4324 821 0 1 +4324 796 4 1 +4324 770 1 1 +4324 745 107 1 +3746 1265 2 1 +3746 1240 3 1 +3746 1214 181 1 +3820 1214 78 1 +3820 1240 155 1 +3820 1265 108 1 +2370 312 3 1 +2370 246 198 1 +2448 246 225 1 +2448 320 5 1 +2635 171 2 1 +2635 196 2 1 +2635 222 3 1 +2553 222 198 1 +2553 196 5 1 +2553 171 5 1 +2594 218 3 1 +2594 196 3 1 +2594 196 3 1 +2594 175 3 1 +2594 214 0 1 +2594 179 0 1 +3746 1155 2 1 +3746 1129 3 1 +3746 1104 185 1 +3820 1104 80 1 +3820 1129 142 1 +3820 1155 108 1 +2393 1053 10 1 +2480 1053 3 1 +2480 1120 9 1 +2393 1120 3 1 + +NAILS: 19 +1 3728 433 5 1 +10 3476 4566 1 2 +11 3476 4468 4 2 +12 3476 4370 3 2 +13 2185 3710 187 2 +14 2279 3811 3 2 +15 2185 3791 8 2 +16 2279 3728 11 2 +17 2781 4377 29 2 +18 4803 3929 226 2 +19 4905 3590 227 2 +2 3043 732 29 1 +3 3728 500 2 1 +4 3007 657 1 1 +5 3007 590 4 1 +6 2877 1220 43 1 +7 2535 791 30 1 +8 3208 4566 5 2 +9 3208 4370 2 2 + diff --git a/tests/reference/stable_nightly/kibom-variant_3-top-C1.png b/tests/reference/stable_nightly/kibom-variant_3-top-C1.png new file mode 100644 index 00000000..f60459ae Binary files /dev/null and b/tests/reference/stable_nightly/kibom-variant_3-top-C1.png differ diff --git a/tests/reference/stable_nightly/kibom-variant_3-top.png b/tests/reference/stable_nightly/kibom-variant_3-top.png new file mode 100644 index 00000000..d01536fd Binary files /dev/null and b/tests/reference/stable_nightly/kibom-variant_3-top.png differ diff --git a/tests/reference/stable_nightly/kibom-variant_3_txt-3D_top.png b/tests/reference/stable_nightly/kibom-variant_3_txt-3D_top.png new file mode 100644 index 00000000..c762bbbe Binary files /dev/null and b/tests/reference/stable_nightly/kibom-variant_3_txt-3D_top.png differ diff --git a/tests/reference/stable_nightly/kibom-variant_3_txt-F_Fab.pdf b/tests/reference/stable_nightly/kibom-variant_3_txt-F_Fab.pdf new file mode 100644 index 00000000..93fc18f2 Binary files /dev/null and b/tests/reference/stable_nightly/kibom-variant_3_txt-F_Fab.pdf differ diff --git a/tests/reference/stable_nightly/kibom-variant_4-B_Fab.pdf b/tests/reference/stable_nightly/kibom-variant_4-B_Fab.pdf new file mode 120000 index 00000000..e634f3fe --- /dev/null +++ b/tests/reference/stable_nightly/kibom-variant_4-B_Fab.pdf @@ -0,0 +1 @@ +../6_0_8/kibom-variant_4-B_Fab.pdf \ No newline at end of file diff --git a/tests/reference/stable_nightly/kibom-variant_4-F_Fab.pdf b/tests/reference/stable_nightly/kibom-variant_4-F_Fab.pdf new file mode 120000 index 00000000..5e19389f --- /dev/null +++ b/tests/reference/stable_nightly/kibom-variant_4-F_Fab.pdf @@ -0,0 +1 @@ +../6_0_8/kibom-variant_4-F_Fab.pdf \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control-F_Cu_color.png b/tests/reference/stable_nightly/light_control-F_Cu_color.png new file mode 100644 index 00000000..f24c8014 Binary files /dev/null and b/tests/reference/stable_nightly/light_control-F_Cu_color.png differ diff --git a/tests/reference/stable_nightly/light_control-diff_pcb.pdf b/tests/reference/stable_nightly/light_control-diff_pcb.pdf new file mode 100644 index 00000000..27e6e1c7 Binary files /dev/null and b/tests/reference/stable_nightly/light_control-diff_pcb.pdf differ diff --git a/tests/reference/stable_nightly/light_control-diff_sch.pdf b/tests/reference/stable_nightly/light_control-diff_sch.pdf new file mode 100644 index 00000000..2a27687d Binary files /dev/null and b/tests/reference/stable_nightly/light_control-diff_sch.pdf differ diff --git a/tests/reference/stable_nightly/light_control-only_new.pdf b/tests/reference/stable_nightly/light_control-only_new.pdf new file mode 100644 index 00000000..4a3dccee Binary files /dev/null and b/tests/reference/stable_nightly/light_control-only_new.pdf differ diff --git a/tests/reference/stable_nightly/light_control-panel.png b/tests/reference/stable_nightly/light_control-panel.png new file mode 100644 index 00000000..127ff33b Binary files /dev/null and b/tests/reference/stable_nightly/light_control-panel.png differ diff --git a/tests/reference/stable_nightly/light_control-report.txt b/tests/reference/stable_nightly/light_control-report.txt new file mode 100644 index 00000000..67840109 --- /dev/null +++ b/tests/reference/stable_nightly/light_control-report.txt @@ -0,0 +1,140 @@ +# PCB + +Board size: 59.69x48.26 mm (2.35x1.9 inches) + +- This is the size of the rectangle that contains the board +- Thickness: 1.6 mm (63 mils) +- Material: FR4 / Kapton +- Finish: ENIG +- Layers: 4 +- Copper thickness: 35 µm + +Solder mask: TOP / BOTTOM + +- Color: Top: Blue / Bottom: Red + +Silk screen: TOP / BOTTOM + +- Color: Top: White / Bottom: Black + +Special features: + +- Edge connector: yes, bevelled +- Castellated pads +- Edge plating + +Stackup: + +Impedance controlled: YES + +| Name | Type | Color | Thickness | Material | Epsilon_r | Loss tangent | +|----------------------|----------------------|------------------|-----------|-----------------|-----------|--------------| +| F.SilkS | Top Silk Screen | White | | Liquid Photo | | | +| F.Paste | Top Solder Paste | | | | | | +| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.000 | +| F.Cu | copper | | 35 | | | | +| dielectric 1 | prepreg | PTFE natural | 480 | FR4 | 4.5 | 0.020 | +| In1.Cu | copper | | 35 | | | | +| dielectric 2 | core | FR4 natural | 480 | FR4 | 4.5 | 0.020 | +| In2.Cu | copper | | 35 | | | | +| dielectric 3 (1/2) | prepreg | Polyimide | 240 | Kapton | 3.2 | 0.004 | +| dielectric 3 (2/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 | +| B.Cu | copper | | 35 | | | | +| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.000 | +| B.Paste | Bottom Solder Paste | | | | | | +| B.SilkS | Bottom Silk Screen | Black | | Direct Printing | | | + +# Important sizes + +Clearance: 0.15 mm (6 mils) + +Track width: 0.15 mm (6 mils) + +- By design rules: 0.13 mm (5 mils) + +Drill: 0.35 mm (14 mils) + +- Vias: 0.35 mm (14 mils) [Design: 0.3 mm (12 mils)] +- Pads: 0.7 mm (28 mils) +- The above values are real drill sizes, they add 0.1 mm (4 mils) to plated holes (PTH) + +Via: 0.51/0.25 mm (20/10 mils) + +- By design rules: 0.46/0.2 mm (18/8 mils) +- Micro via: yes [0.2/0.1 mm (8/4 mils)] +- Buried/blind via: yes +- Total: 56 (thru: 56 buried/blind: 0 micro: 0) + +Outer Annular Ring: 0.08 mm (3 mils) + +- By design rules: 0.08 mm (3 mils) + +Eurocircuits class: 6D +- Using min drill 0.25 mm for an OAR of 0.13 mm + + +# General stats + +Components count: (SMD/THT) + +- Top: 61/12 (SMD + THT) +- Bottom: 0/0 (NONE) + +Defined tracks: + +- 0.15 mm (6 mils) +- 0.3 mm (12 mils) +- 0.64 mm (25 mils) + +Used tracks: + +- 0.15 mm (6 mils) (276) defined: yes +- 0.3 mm (12 mils) (11) defined: yes +- 0.64 mm (25 mils) (175) defined: yes + +Defined vias: + +- 0.51/0.25 mm (20/10 mils) +- 0.89/0.51 mm (35/20 mils) + +Used vias: + +- 0.51/0.25 mm (20/10 mils) (Count: 23, Aspect: 3.1 A) defined: yes +- 0.89/0.51 mm (35/20 mils) (Count: 33, Aspect: 1.8 A) defined: yes + +Holes (excluding vias): + +- 0.8 mm (31 mils) (4) +- 0.85 mm (33 mils) (2) +- 0.95 mm (37 mils) (3) +- 1.2 mm (47 mils) (20) +- 3.2 mm (126 mils) (4) + +Oval holes: + +- 0.6x1.3 mm (24x51 mils) (2) + +Drill tools (including vias and computing adjusts and rounding): + +- 0.35 mm (14 mils) (23) +- 0.6 mm (24 mils) (33) +- 0.7 mm (28 mils) (2) +- 0.9 mm (35 mils) (4) +- 0.95 mm (37 mils) (2) +- 1.05 mm (41 mils) (3) +- 1.3 mm (51 mils) (20) +- 3.2 mm (126 mils) (4) + + +# Schematic + +![Schematic](Schematic.svg){ width=16.5cm height=11.7cm } + + + +# PCB Layers + +![Top copper and silkscreen](Layers/light_control-assembly-front.pdf){ width=16.5cm height=11.7cm } + +![Bottom copper and silkscreen](Layers/light_control-assembly-bottom.pdf){ width=16.5cm height=11.7cm } + diff --git a/tests/reference/stable_nightly/light_control-report.txt_2 b/tests/reference/stable_nightly/light_control-report.txt_2 new file mode 100644 index 00000000..961a9e29 --- /dev/null +++ b/tests/reference/stable_nightly/light_control-report.txt_2 @@ -0,0 +1,140 @@ +# PCB + +Board size: 59.69x48.26 mm (2.35x1.9 inches) + +- This is the size of the rectangle that contains the board +- Thickness: 1.6 mm (63 mils) +- Material: FR4 / Kapton +- Finish: ENIG +- Layers: 4 +- Copper thickness: 35 µm + +Solder mask: TOP / BOTTOM + +- Color: Top: Blue / Bottom: Red + +Silk screen: TOP / BOTTOM + +- Color: Top: White / Bottom: Black + +Special features: + +- Edge connector: yes, bevelled +- Castellated pads +- Edge plating + +Stackup: + +Impedance controlled: YES + +| Name | Type | Color | Thickness | Material | Epsilon_r | Loss tangent | +|----------------------|----------------------|------------------|-----------|-----------------|-----------|--------------| +| F.SilkS | Top Silk Screen | White | | Liquid Photo | | | +| F.Paste | Top Solder Paste | | | | | | +| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.000 | +| F.Cu | copper | | 35 | | | | +| dielectric 1 | prepreg | PTFE natural | 480 | FR4 | 4.5 | 0.020 | +| In1.Cu | copper | | 35 | | | | +| dielectric 2 | core | FR4 natural | 480 | FR4 | 4.5 | 0.020 | +| In2.Cu | copper | | 35 | | | | +| dielectric 3 (1/2) | prepreg | Polyimide | 240 | Kapton | 3.2 | 0.004 | +| dielectric 3 (2/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 | +| B.Cu | copper | | 35 | | | | +| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.000 | +| B.Paste | Bottom Solder Paste | | | | | | +| B.SilkS | Bottom Silk Screen | Black | | Direct Printing | | | + +# Important sizes + +Clearance: 0.15 mm (6 mils) + +Track width: 0.15 mm (6 mils) + +- By design rules: 0.13 mm (5 mils) + +Drill: 0.35 mm (14 mils) + +- Vias: 0.35 mm (14 mils) [Design: 0.3 mm (12 mils)] +- Pads: 0.7 mm (28 mils) +- The above values are real drill sizes, they add 0.1 mm (4 mils) to plated holes (PTH) + +Via: 0.51/0.25 mm (20/10 mils) + +- By design rules: 0.46/0.2 mm (18/8 mils) +- Micro via: yes [0.2/0.1 mm (8/4 mils)] +- Buried/blind via: yes +- Total: 56 (thru: 56 buried/blind: 0 micro: 0) + +Outer Annular Ring: 0.08 mm (3 mils) + +- By design rules: 0.08 mm (3 mils) + +Eurocircuits class: 6D +- Using min drill 0.25 mm for an OAR of 0.13 mm + + +# General stats + +Components count: (SMD/THT) + +- Top: 61/12 (SMD + THT) +- Bottom: 0/0 (NONE) + +Defined tracks: + +- 0.15 mm (6 mils) +- 0.3 mm (12 mils) +- 0.64 mm (25 mils) + +Used tracks: + +- 0.15 mm (6 mils) (276) defined: yes +- 0.3 mm (12 mils) (11) defined: yes +- 0.64 mm (25 mils) (175) defined: yes + +Defined vias: + +- 0.51/0.25 mm (20/10 mils) +- 0.89/0.51 mm (35/20 mils) + +Used vias: + +- 0.51/0.25 mm (20/10 mils) (Count: 23, Aspect: 3.1 A) defined: yes +- 0.89/0.51 mm (35/20 mils) (Count: 33, Aspect: 1.8 A) defined: yes + +Holes (excluding vias): + +- 0.8 mm (31 mils) (4) +- 0.85 mm (33 mils) (2) +- 0.95 mm (37 mils) (3) +- 1.2 mm (47 mils) (20) +- 3.2 mm (126 mils) (4) + +Oval holes: + +- 0.6x1.3 mm (24x51 mils) (2) + +Drill tools (including vias and computing adjusts and rounding): + +- 0.35 mm (14 mils) (23) +- 0.6 mm (24 mils) (33) +- 0.7 mm (28 mils) (2) +- 0.9 mm (35 mils) (4) +- 0.95 mm (37 mils) (2) +- 1.05 mm (41 mils) (3) +- 1.3 mm (51 mils) (20) +- 3.2 mm (126 mils) (4) + + +# Schematic + +![Schematic](../Schematic.svg){ width=16.5cm height=11.7cm } + + + +# PCB Layers + +![Top copper and silkscreen](../Layers/light_control-assembly-front.pdf){ width=16.5cm height=11.7cm } + +![Bottom copper and silkscreen](../Layers/light_control-assembly-bottom.pdf){ width=16.5cm height=11.7cm } + diff --git a/tests/reference/stable_nightly/light_control-report_simple.txt b/tests/reference/stable_nightly/light_control-report_simple.txt new file mode 100644 index 00000000..0b69e765 --- /dev/null +++ b/tests/reference/stable_nightly/light_control-report_simple.txt @@ -0,0 +1,64 @@ +PCB Specifications: +Size: + +- 59.69x48.26 mm + +Class: 6D + +Track width: ≥ 0.15 mm + +Insulation distance: ≥ 0.15 mm + +Minimum drill size: ≥ 0.35 mm (finished metalized hole: 0.25 mm) + +Minimum slot width: ≥ 0.6 mm + +Ring collar: ≥ 0.08 mm + +Special features: + +- Edge connector: yes, bevelled +- Castellated pads +- Edge plating + +Stackup: + +Impedance controlled: YES + +| Name | Type | Color | Thickness | Material | Epsilon_r | Loss tangent | +|----------------------|----------------------|------------------|-----------|-----------------|-----------|--------------| +| F.SilkS | Top Silk Screen | White | | Liquid Photo | | | +| F.Paste | Top Solder Paste | | | | | | +| F.Mask | Top Solder Mask | Blue | 10 | Liquid Ink | 3.3 | 0.000 | +| F.Cu | copper | | 35 | | | | +| dielectric 1 | prepreg | PTFE natural | 480 | FR4 | 4.5 | 0.020 | +| In1.Cu | copper | | 35 | | | | +| dielectric 2 | core | FR4 natural | 480 | FR4 | 4.5 | 0.020 | +| In2.Cu | copper | | 35 | | | | +| dielectric 3 (1/2) | prepreg | Polyimide | 240 | Kapton | 3.2 | 0.004 | +| dielectric 3 (2/2) | prepreg | | 240 | Kapton | 3.2 | 0.004 | +| B.Cu | copper | | 35 | | | | +| B.Mask | Bottom Solder Mask | Red | 10 | Dry Film | 3.3 | 0.000 | +| B.Paste | Bottom Solder Paste | | | | | | +| B.SilkS | Bottom Silk Screen | Black | | Direct Printing | | | + +Materials: + +- FR4 / Kapton, 1.6 mm +- ENIG +- 4 layers +- 35 µm copper thickness + +Solder mask: + +- TOP / BOTTOM +- Top: Blue / Bottom: Red + +Marking: + +- TOP / BOTTOM screen printing +- Silk: Top: White / Bottom: Black + +Other markings: + +- ROHS / UL / Date - Yes if available diff --git a/tests/reference/stable_nightly/light_control-stencil_3d_top.png b/tests/reference/stable_nightly/light_control-stencil_3d_top.png new file mode 120000 index 00000000..c942960c --- /dev/null +++ b/tests/reference/stable_nightly/light_control-stencil_3d_top.png @@ -0,0 +1 @@ +../6_0_8/light_control-stencil_3d_top.png \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control-stencil_for_jig_top.png b/tests/reference/stable_nightly/light_control-stencil_for_jig_top.png new file mode 120000 index 00000000..231acf60 --- /dev/null +++ b/tests/reference/stable_nightly/light_control-stencil_for_jig_top.png @@ -0,0 +1 @@ +../6_0_8/light_control-stencil_for_jig_top.png \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control.XYRS b/tests/reference/stable_nightly/light_control.XYRS new file mode 120000 index 00000000..b1fe7e84 --- /dev/null +++ b/tests/reference/stable_nightly/light_control.XYRS @@ -0,0 +1 @@ +../6_0_8/light_control.XYRS \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control_bom_jlc.csv b/tests/reference/stable_nightly/light_control_bom_jlc.csv new file mode 120000 index 00000000..7ee98dd1 --- /dev/null +++ b/tests/reference/stable_nightly/light_control_bom_jlc.csv @@ -0,0 +1 @@ +../6_0_8/light_control_bom_jlc.csv \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control_cpl_jlc.csv b/tests/reference/stable_nightly/light_control_cpl_jlc.csv new file mode 120000 index 00000000..fadf8c83 --- /dev/null +++ b/tests/reference/stable_nightly/light_control_cpl_jlc.csv @@ -0,0 +1 @@ +../6_0_8/light_control_cpl_jlc.csv \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control_cpl_jlc_aux.csv b/tests/reference/stable_nightly/light_control_cpl_jlc_aux.csv new file mode 120000 index 00000000..5235ac2d --- /dev/null +++ b/tests/reference/stable_nightly/light_control_cpl_jlc_aux.csv @@ -0,0 +1 @@ +../6_0_8/light_control_cpl_jlc_aux.csv \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control_cpl_jlc_nc.csv b/tests/reference/stable_nightly/light_control_cpl_jlc_nc.csv new file mode 120000 index 00000000..c1606b94 --- /dev/null +++ b/tests/reference/stable_nightly/light_control_cpl_jlc_nc.csv @@ -0,0 +1 @@ +../6_0_8/light_control_cpl_jlc_nc.csv \ No newline at end of file diff --git a/tests/reference/stable_nightly/light_control_diff-diff_sch.pdf b/tests/reference/stable_nightly/light_control_diff-diff_sch.pdf new file mode 100644 index 00000000..7ef4156b Binary files /dev/null and b/tests/reference/stable_nightly/light_control_diff-diff_sch.pdf differ diff --git a/tests/reference/stable_nightly/print_multizone-assembly_page_01.png b/tests/reference/stable_nightly/print_multizone-assembly_page_01.png new file mode 100644 index 00000000..a257cb5f Binary files /dev/null and b/tests/reference/stable_nightly/print_multizone-assembly_page_01.png differ diff --git a/tests/reference/stable_nightly/print_multizone-assembly_page_02.png b/tests/reference/stable_nightly/print_multizone-assembly_page_02.png new file mode 100644 index 00000000..91cf3c49 Binary files /dev/null and b/tests/reference/stable_nightly/print_multizone-assembly_page_02.png differ diff --git a/tests/reference/stable_nightly/sub-sheet.kicad_sch b/tests/reference/stable_nightly/sub-sheet.kicad_sch new file mode 100644 index 00000000..ebed75d5 --- /dev/null +++ b/tests/reference/stable_nightly/sub-sheet.kicad_sch @@ -0,0 +1,666 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid 5b2b5c7d-f943-4634-9f0a-e9561705c49d) + + (paper "User" 297.002 210.007) + + (title_block + (date " ") + ) + + (lib_symbols + (symbol "74xx:74LS04" (in_bom yes) (on_board yes) + (property "Reference" "U" (at 0 1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 0 -1.27 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_locked" "" (at 0 0 0) + (effects (font (size 1.27 1.27))) + ) + (property "ki_keywords" "TTL not inv" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Hex Inverter" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "DIP*W7.62mm* SSOP?14* TSSOP?14*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "74LS04_1_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_2_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "3" (effects (font (size 1.27 1.27)))) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "4" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_3_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "5" (effects (font (size 1.27 1.27)))) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "6" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_4_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "8" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "9" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_5_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "10" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "11" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_6_0" + (polyline + (pts + (xy -3.81 3.81) + (xy -3.81 -3.81) + (xy 3.81 0) + (xy -3.81 3.81) + ) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + (pin output inverted (at 7.62 0 180) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "12" (effects (font (size 1.27 1.27)))) + ) + (pin input line (at -7.62 0 0) (length 3.81) + (name "~" (effects (font (size 1.27 1.27)))) + (number "13" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_7_0" + (pin power_in line (at 0 12.7 270) (length 5.08) + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "14" (effects (font (size 1.27 1.27)))) + ) + (pin power_in line (at 0 -12.7 90) (length 5.08) + (name "GND" (effects (font (size 1.27 1.27)))) + (number "7" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "74LS04_7_1" + (rectangle (start -5.08 7.62) (end 5.08 -7.62) + (stroke (width 0.254) (type default)) + (fill (type background)) + ) + ) + ) + (symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 0 -3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) + (xy 0 -1.27) + (xy 1.27 -1.27) + (xy 0 -2.54) + (xy -1.27 -1.27) + (xy 0 -1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "GND_1_1" + (pin power_in line (at 0 0 270) (length 0) hide + (name "GND" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "power:VCC" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "#PWR" (at 0 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (at 0 3.81 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "power-flag" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Power symbol creates a global label with name \"VCC\"" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "VCC_0_1" + (polyline + (pts + (xy -0.762 1.27) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.54) + (xy 0.762 1.27) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "VCC_1_1" + (pin power_in line (at 0 0 90) (length 0) hide + (name "VCC" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + ) + ) + ) + + (wire (pts (xy 104.14 63.5) (xy 106.68 63.5)) + (stroke (width 0) (type default)) + (uuid 10109f84-4940-47f8-8640-91f185ac9bc1) + ) + (wire (pts (xy 175.26 63.5) (xy 177.8 63.5)) + (stroke (width 0) (type default)) + (uuid 47baf4b1-0938-497d-88f9-671136aa8be7) + ) + (wire (pts (xy 121.92 63.5) (xy 124.46 63.5)) + (stroke (width 0) (type default)) + (uuid 55e740a3-0735-4744-896e-2bf5437093b9) + ) + (wire (pts (xy 157.48 63.5) (xy 160.02 63.5)) + (stroke (width 0) (type default)) + (uuid c022004a-c968-410e-b59e-fbab0e561e9d) + ) + (wire (pts (xy 193.04 63.5) (xy 195.58 63.5)) + (stroke (width 0) (type default)) + (uuid e615f7aa-337e-474d-9615-2ad82b1c44ca) + ) + (wire (pts (xy 85.09 63.5) (xy 88.9 63.5)) + (stroke (width 0) (type default)) + (uuid ef8fe2ac-6a7f-4682-9418-b801a1b10a3b) + ) + (wire (pts (xy 139.7 63.5) (xy 142.24 63.5)) + (stroke (width 0) (type default)) + (uuid f4f99e3d-7269-4f6a-a759-16ad2a258779) + ) + + (hierarchical_label "IN" (shape input) (at 85.09 63.5 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 4fb02e58-160a-4a39-9f22-d0c75e82ee72) + ) + (hierarchical_label "OUT" (shape output) (at 195.58 63.5 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 77ed3941-d133-4aef-a9af-5a39322d14eb) + ) + + (symbol (lib_id "74xx:74LS04") (at 96.52 63.5 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f34307a) + (property "Reference" "U1" (at 96.52 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 96.52 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 96.52 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 96.52 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f1e9ac99-f8d4-4d05-beb3-290dccb8d277)) + (pin "2" (uuid 014c98b2-ac35-4831-825d-74c6fa5ddc67)) + (pin "3" (uuid 2282aa17-25e5-4b18-b436-0d5d8b80c271)) + (pin "4" (uuid 779d408a-048e-4117-b37b-52b0f8855fe0)) + (pin "5" (uuid 0209c2aa-e6bb-4fb6-ad76-6e4b9b1b16f7)) + (pin "6" (uuid 867bfffe-ae91-4651-94e5-196c3c600344)) + (pin "8" (uuid 46124aee-812d-4b49-8b07-54040860b90b)) + (pin "9" (uuid bfb61142-9bc3-4e95-89e6-4ced14b533f1)) + (pin "10" (uuid c37c1333-9b31-4605-8469-7903812fede5)) + (pin "11" (uuid f638fbb1-32ba-4d92-b985-ace474e20207)) + (pin "12" (uuid 0105483f-ed6d-4621-a345-4f843c0072bf)) + (pin "13" (uuid 052e0faa-99fa-4dba-8771-a6a810a9615f)) + (pin "14" (uuid cad197d5-2063-47e9-a3da-c0da8b26e6ec)) + (pin "7" (uuid a5eca4b9-9690-4686-9caf-8a9265e35104)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 1) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "74xx:74LS04") (at 114.3 63.5 0) (unit 2) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f344a0e) + (property "Reference" "U1" (at 114.3 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 114.3 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 114.3 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 114.3 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7eb5089c-0f47-4b87-beab-8ff80b20792f)) + (pin "2" (uuid 60102715-3c93-4a15-8674-20c8b7c57be4)) + (pin "3" (uuid c1630947-26ec-4031-96dd-f1cdf939d3a7)) + (pin "4" (uuid e2858b6c-d9d5-4bfd-a26d-d7110c9ff81c)) + (pin "5" (uuid 8e8bdbab-9511-4475-9eff-1510f6b5ad23)) + (pin "6" (uuid 6ae8ec3f-43b9-4112-bfd5-128204c7759e)) + (pin "8" (uuid cf6c2bfe-fd20-4797-a562-aefcd563a7af)) + (pin "9" (uuid 99a6c8b8-68c2-479d-ad69-5f387013f1da)) + (pin "10" (uuid 349db570-c21f-46f9-80d4-b68f3473ae15)) + (pin "11" (uuid 76d634a3-0256-4a17-8718-470b7e39e4ac)) + (pin "12" (uuid 72b533b9-dc1e-46c5-a29d-c8b49a52ce5d)) + (pin "13" (uuid 132268c6-c19f-48f6-8da5-42a0ba313cd0)) + (pin "14" (uuid 5cd18a01-4203-4bf0-961c-09af1ded6848)) + (pin "7" (uuid 612772b8-33ef-4e45-abaa-4fba74ec3e0b)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 2) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 2) + ) + ) + ) + ) + + (symbol (lib_id "74xx:74LS04") (at 132.08 63.5 0) (unit 3) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f345e39) + (property "Reference" "U1" (at 132.08 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 132.08 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 132.08 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 132.08 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid bbac1062-acc9-427d-9486-84613968193d)) + (pin "2" (uuid aa6fbc5d-962a-421b-b0f8-5cc0634fa940)) + (pin "3" (uuid ee86faf1-b781-415c-a773-7ffd42b4ccac)) + (pin "4" (uuid f60b38a1-6bcf-4425-85f9-40dd840f097e)) + (pin "5" (uuid 9a609661-5895-4db4-a600-14bffdacc16e)) + (pin "6" (uuid f6c777f1-b4a6-4529-9b29-67dfedcb1744)) + (pin "8" (uuid d6ee852a-2125-4cbb-b4c0-2c1f7b3da0fd)) + (pin "9" (uuid 66b18884-be07-4547-81e4-598e8796b478)) + (pin "10" (uuid 23b24c2d-06bc-4f64-bbba-4a1836993bd3)) + (pin "11" (uuid ab204973-c25f-4438-a480-b6256c3846e5)) + (pin "12" (uuid b7d46009-86c1-4915-8882-efed73321a1b)) + (pin "13" (uuid ae6c4a1d-7821-456a-9178-e99999733573)) + (pin "14" (uuid bb4b6efa-8944-40e5-8681-42c8086dfb79)) + (pin "7" (uuid 7b67e898-9526-4fba-8f77-59962db970c7)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 3) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 3) + ) + ) + ) + ) + + (symbol (lib_id "74xx:74LS04") (at 149.86 63.5 0) (unit 4) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f346e8b) + (property "Reference" "U1" (at 149.86 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 149.86 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 149.86 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 149.86 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 2905dd4f-e9df-4c8d-9d14-37e5474058d3)) + (pin "2" (uuid 909aa50b-4012-4e97-bcca-8dbd688e9e99)) + (pin "3" (uuid 8520760e-f968-483e-8989-07d96ff7c0bd)) + (pin "4" (uuid 472927d7-713d-4434-aae2-cab12a79506c)) + (pin "5" (uuid 5c2e0337-2447-4117-8a69-8ab7a6736b16)) + (pin "6" (uuid 44dcea25-62da-41dc-8e4e-72c45198747e)) + (pin "8" (uuid 47d49bdd-bacb-468f-bcfb-647fd9ccff38)) + (pin "9" (uuid 71c84a4a-5d81-46df-a82f-84ff433708b7)) + (pin "10" (uuid ccbabbc8-3805-4494-9f79-0e7c58491280)) + (pin "11" (uuid 5f478e4e-1c37-417f-802a-dcd64da6ec69)) + (pin "12" (uuid f4169419-5cd3-4db1-860a-b37e557bc728)) + (pin "13" (uuid 0eb475d7-7c32-41bc-a947-f6e04adbfa7d)) + (pin "14" (uuid c3d6c577-12ce-4f2f-84bd-dda13a8fe40f)) + (pin "7" (uuid 2843c226-58ef-4dc8-ad8f-3fcb74143c53)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 4) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 4) + ) + ) + ) + ) + + (symbol (lib_id "74xx:74LS04") (at 167.64 63.5 0) (unit 5) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f348270) + (property "Reference" "U1" (at 167.64 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 167.64 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 167.64 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 167.64 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 50c06431-98b4-4782-9bc2-1f48dd66012e)) + (pin "2" (uuid 237913c0-554e-4f92-9454-74fca47a4ff0)) + (pin "3" (uuid 22591fce-1b7c-432b-9f65-ca786ad38164)) + (pin "4" (uuid cf7394f4-fb02-417b-8fcd-f7a746f2f953)) + (pin "5" (uuid 1c6ed6bd-b27d-4107-a50a-c5fa1ca815a8)) + (pin "6" (uuid c9913a2d-9fdc-477b-99fb-40ae623b387f)) + (pin "8" (uuid 1dd5c978-2ace-45f7-9c90-88b9fc1a4ffc)) + (pin "9" (uuid 9a40e5da-1346-4d0c-af28-5a2601f44304)) + (pin "10" (uuid 01fec0dc-78cf-4a7d-851f-e24a9edd4a86)) + (pin "11" (uuid 92e30d01-6115-49a3-bead-4b8b74d533c9)) + (pin "12" (uuid 7092ba6d-f06a-417d-9814-317dd365bfc4)) + (pin "13" (uuid bce2b649-7e95-435b-ad4a-9467fe595946)) + (pin "14" (uuid cee262bb-8369-447b-8bc6-8fc7e99304ba)) + (pin "7" (uuid d69f10fe-7d7e-437f-89c6-5d4591a60c24)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 5) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 5) + ) + ) + ) + ) + + (symbol (lib_id "74xx:74LS04") (at 185.42 63.5 0) (unit 6) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f348d95) + (property "Reference" "U1" (at 185.42 55.4482 0) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "74LS04" (at 185.42 57.7596 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 185.42 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 185.42 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid c1de8072-85af-41fb-bbae-891234fe6286)) + (pin "2" (uuid 92eba779-7a6c-4f2f-bf8a-9d01b4559540)) + (pin "3" (uuid 87aa64d0-4063-42a0-8b26-e6afc8ae74de)) + (pin "4" (uuid 57d78745-19ee-4265-be9f-6570894e3e61)) + (pin "5" (uuid 924bfea8-9b40-4840-882f-6d467382007a)) + (pin "6" (uuid 6353b9ee-662c-49d5-8069-f7d044044c97)) + (pin "8" (uuid 9711c471-9fef-4c47-a8bb-dbb7861fc7f5)) + (pin "9" (uuid 4875c4e7-8ec2-47f1-a20e-42413b9c1e4a)) + (pin "10" (uuid 0d8c1296-05ab-46c9-b16d-99728b6eacd6)) + (pin "11" (uuid 41727653-a496-48b3-ac11-0e25bdbe5198)) + (pin "12" (uuid b9a8ff4c-342a-4f44-bfb4-1b1895e9679b)) + (pin "13" (uuid 29941c34-ddd5-4a9c-bdef-5bf81398f604)) + (pin "14" (uuid c589a3b6-28de-47c0-87df-1950ce799f45)) + (pin "7" (uuid f0358a25-a450-4144-94fb-900372ab12a7)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 6) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 6) + ) + ) + ) + ) + + (symbol (lib_id "74xx:74LS04") (at 139.7 88.9 0) (unit 7) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f34a12f) + (property "Reference" "U1" (at 145.542 87.7316 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "74LS04" (at 145.542 90.043 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 139.7 88.9 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "http://www.ti.com/lit/gpn/sn74LS04" (at 139.7 88.9 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 6202c74f-4d05-4660-b905-0e5ca6889128)) + (pin "2" (uuid 011a7ac5-7a54-4c9a-97b1-3c71ef0bed96)) + (pin "3" (uuid 98b08e85-9973-4c19-9269-2dcea15b1681)) + (pin "4" (uuid f023d9a1-53db-47ae-bc98-ce0c0852432d)) + (pin "5" (uuid a1064e68-0e5f-40e9-9c19-682469444ee6)) + (pin "6" (uuid 819e8bc3-d0a5-4ab9-ad3b-83fcfff57d5f)) + (pin "8" (uuid ff2b7b52-4097-4d64-8511-d7ac105c5a57)) + (pin "9" (uuid f85ce822-c4cd-4bc6-8c31-cfad683d10ae)) + (pin "10" (uuid a4bb7bae-f982-4b25-a9eb-bc556b618638)) + (pin "11" (uuid 84529ab6-9a65-4c87-b095-7a53fb755e2c)) + (pin "12" (uuid 3d1ca20e-431d-45c0-9443-c5f597b34af3)) + (pin "13" (uuid 2bd0a9eb-83dd-424f-92d0-bd4297676cbf)) + (pin "14" (uuid bf0862f0-7b4d-4da4-a5e8-91a9bdbee56f)) + (pin "7" (uuid 0639e567-d45a-4c84-98fa-a167b211ae20)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "U1") (unit 7) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "U2") (unit 7) + ) + ) + ) + ) + + (symbol (lib_id "power:VCC") (at 139.7 76.2 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f34bc05) + (property "Reference" "#PWR01" (at 139.7 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "VCC" (at 140.081 71.8058 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 139.7 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 139.7 76.2 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 0030af45-9cbd-4108-9b0f-2e3885996ada)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "#PWR?") (unit 1) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "#PWR?") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "power:GND") (at 139.7 101.6 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f34c535) + (property "Reference" "#PWR02" (at 139.7 107.95 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 139.827 105.9942 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 139.7 101.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 139.7 101.6 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 03d3f3dc-57cc-4a5d-b588-5d7b6cd2d907)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" + (reference "#PWR?") (unit 1) + ) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" + (reference "#PWR?") (unit 1) + ) + ) + ) + ) + + (sheet (at 114.3 127) (size 25.4 12.7) (fields_autoplaced) + (stroke (width 0) (type solid)) + (fill (color 0 0 0 0.0)) + (uuid 00000000-0000-0000-0000-00005f3bb8bb) + (property "Sheetname" "Deeper test" (at 114.3 126.2884 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + ) + (property "Sheetfile" "deeper.kicad_sch" (at 114.3 140.2846 0) + (effects (font (size 1.27 1.27)) (justify left top)) + ) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f342deb" (page "2")) + (path "/e6521bef-4109-48f7-8b88-4121b0468927/00000000-0000-0000-0000-00005f34e267" (page "3")) + ) + ) + ) +) diff --git a/tests/reference/stable_nightly/subparts-bom.csv b/tests/reference/stable_nightly/subparts-bom.csv new file mode 120000 index 00000000..b8d62213 --- /dev/null +++ b/tests/reference/stable_nightly/subparts-bom.csv @@ -0,0 +1 @@ +../6_0_8/subparts-bom.csv \ No newline at end of file diff --git a/tests/reference/stable_nightly/test_v5-schematic_(no_L).pdf b/tests/reference/stable_nightly/test_v5-schematic_(no_L).pdf new file mode 100644 index 00000000..aeb198c2 Binary files /dev/null and b/tests/reference/stable_nightly/test_v5-schematic_(no_L).pdf differ diff --git a/tests/reference/stable_nightly/test_v5-schematic_(no_L).svg b/tests/reference/stable_nightly/test_v5-schematic_(no_L).svg new file mode 100644 index 00000000..f4899973 --- /dev/null +++ b/tests/reference/stable_nightly/test_v5-schematic_(no_L).svg @@ -0,0 +1,18134 @@ + + + +SVG Image created as test_v5.svg date 2023/06/12 14:03:54 + Image generated by Eeschema-SVG + + + + + + + + + + + + + +1 +1 + + + + + +2 +2 + + + + + + + + + + +3 +3 + + + + + + + + + + + + + +4 +4 + + + +5 +5 + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + +2 +2 + + + + + + + + + + +3 +3 + + + + + + + + + + + + + +4 +4 + + + +5 +5 + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + +A +A + + + +B +B + + + + + + + + + + + + + + + + + + +C +C + + + + + + + + + + + + + + + +D +D + + + + + + + + + + + + + + + +A +A + + + +B +B + + + + + + + + + + + + + + + + + + +C +C + + + + + + + + + + + + + + + +D +D + + + + + + + + + + + + +Date: 2020-08-12 +Date: 2020-08-12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +KiCad E.D.A. kicad-cli 7.0.5-unknown-202306101748~6fbdf8f0e2~ubuntu22.10.1 +KiCad E.D.A. kicad-cli 7.0.5-unknown-202306101748~6fbdf8f0e2~ubuntu22.10.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rev: r1B +Rev: r1B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Size: A4 +Size: A4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Id: 1/5 +Id: 1/5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Title: Title +Title: Title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +File: test_v5.kicad_sch +File: test_v5.kicad_sch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sheet: / +Sheet: / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Company +Company + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment 1 +Comment 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment 2 +Comment 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Comment 3 +Comment 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@Comment4@ +@Comment4@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +OUT +OUT + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IN +IN + + + + + +Sub Sheet +Sub Sheet + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +File: sub-sheet.kicad_sch +File: sub-sheet.kicad_sch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +OUT +OUT + + + + + + + + + + + + + + + + + + + + + + + + + + + + +IN +IN + + + + + +Sub Sheet 2 +Sub Sheet 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +File: sub-sheet.kicad_sch +File: sub-sheet.kicad_sch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R2 +R2 + + + + + + + + + + + + + + + + + + + + + +R_US +R_US + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +CAUTION +CAUTION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +C1 +C1 + + + + + + + + + + + + + + + + + + + + +Value: C +Value: C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R1 +R1 + + + + + + + + + + + + + + + + +R +R + + + + + + + + + + + + + + + + + + + + + + + + + +L1 +L1 + + + + + + + +L +L + + + + + + + + + + + + + + + + +L3B + +L3B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L3C +L3C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L3A +L3A + + + + + + + + + + + + + + + + + + + + + + +L3D + +L3D + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L2A +L2A + + + + + + + + + + + + + + + + + + + +L2D + +L2D + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L2B + +L2B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L2C +L2C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +B{AELEM} +B{AELEM} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +a net class +a net class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +pp2 +pp2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L1 +L1 + + + + + + + + + + + +B.A1 +B.A1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +B.A0 +B.A0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Text box D + +Text box D + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Text box B + +Text box B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Text box A +Text box A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Text box C +Text box C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Text box, above drawing shapes +Text box, above drawing shapes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +aaa +aaa + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Hi! this is +Hi! this is + + + + + + + + + + + + + + + + + + + +DejaVu Serif +DejaVu Serif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +C1 +C1 + + + + + + + + + + + + + + + + + + + + +Value: C +Value: C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +L1 +L1 + + + + + + + +L +L + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/reference/stable_nightly/test_v5.kicad_sch b/tests/reference/stable_nightly/test_v5.kicad_sch new file mode 100644 index 00000000..25dee981 --- /dev/null +++ b/tests/reference/stable_nightly/test_v5.kicad_sch @@ -0,0 +1,1909 @@ +(kicad_sch (version 20230121) (generator eeschema) + + (uuid e6521bef-4109-48f7-8b88-4121b0468927) + + (paper "A4") + + (title_block + (title "Title") + (date "2020-08-12") + (rev "r1B") + (company "Company") + (comment 1 "Comment 1") + (comment 2 "Comment 2") + (comment 3 "Comment 3") + (comment 4 "@Comment4@") + ) + + (lib_symbols + (symbol "Device:C" (pin_numbers hide) (pin_names (offset 0.254)) (in_bom yes) (on_board yes) + (property "Reference" "C" (at 0.635 2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "C" (at 0.635 -2.54 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 0.9652 -3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "cap capacitor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Unpolarized capacitor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "C_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "C_0_1" + (polyline + (pts + (xy -2.032 -0.762) + (xy 2.032 -0.762) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy -2.032 0.762) + (xy 2.032 0.762) + ) + (stroke (width 0.508) (type default)) + (fill (type none)) + ) + ) + (symbol "C_1_1" + (pin passive line (at 0 3.81 270) (length 2.794) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 2.794) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:L" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) + (property "Reference" "L" (at -1.27 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "L" (at 1.905 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "inductor choke coil reactor magnetic" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Inductor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "Choke_* *Coil* Inductor_* L_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "L_0_1" + (arc (start 0 -2.54) (mid 0.6323 -1.905) (end 0 -1.27) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 0 -1.27) (mid 0.6323 -0.635) (end 0 0) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 0 0) (mid 0.6323 0.635) (end 0 1.27) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (arc (start 0 1.27) (mid 0.6323 1.905) (end 0 2.54) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "L_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "1" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "2" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "Device:R_US" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.54 0 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "R_US" (at -2.54 0 90) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 1.016 -0.254 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_keywords" "R res resistor" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_description" "Resistor, US symbol" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "R_US_0_0" + (bezier (pts + (xy 0 -0.762) + (xy 1.016 -1.143) + (xy 0 -1.524) + (xy -1.016 -1.905) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 -2.286) + (xy 0 -2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.286) + (xy 0 2.54) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 0.762) + (xy 1.016 0.381) + (xy 0 0) + (xy -1.016 -0.381) + (xy 0 -0.762) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (polyline + (pts + (xy 0 2.286) + (xy 1.016 1.905) + (xy 0 1.524) + (xy -1.016 1.143) + (xy 0 0.762) + ) + (stroke (width 0) (type default)) + (fill (type none)) + ) + ) + (symbol "R_US_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + (alternate "Patita 1" passive line) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + (symbol "R_US_1_2" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + (alternate "Patita 1" passive line) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "l1:Resistor" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes) + (property "Reference" "R" (at 2.032 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "Resistor" (at 0 0 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at -1.778 0 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Test" "Hi!" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "ki_fp_filters" "R_* R_*" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "Resistor_0_1" + (rectangle (start -1.016 -2.54) (end 1.016 2.54) + (stroke (width 0.254) (type default)) + (fill (type none)) + ) + ) + (symbol "Resistor_1_1" + (pin passive line (at 0 3.81 270) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "1" (effects (font (size 1.27 1.27)))) + ) + (pin passive line (at 0 -3.81 90) (length 1.27) + (name "~" (effects (font (size 1.27 1.27)))) + (number "2" (effects (font (size 1.27 1.27)))) + ) + ) + ) + (symbol "l1:SYM_CAUTION" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) + (property "Reference" "#SYM_CAUTION" (at 0 3.81 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "SYM_CAUTION" (at 0 -4.445 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Footprint" "Tedy:Symbol_Caution_Type2_FSilkS_Small" (at 2.54 -6.35 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Campo4" "Hi!" (at 0 0 0) + (effects (font (size 1.27 1.27)) hide) + ) + (symbol "SYM_CAUTION_0_0" + (circle (center 0 -1.1684) (radius 0.254) + (stroke (width 0) (type default)) + (fill (type outline)) + ) + (polyline + (pts + (xy -0.127 -0.762) + (xy -0.381 1.016) + ) + (stroke (width 0) (type default)) + (fill (type outline)) + ) + (polyline + (pts + (xy -0.127 -0.762) + (xy 0.127 -0.762) + (xy 0.381 1.016) + ) + (stroke (width 0) (type default)) + (fill (type outline)) + ) + (polyline + (pts + (xy -1.27 -1.905) + (xy 1.905 -1.905) + (xy 0 2.54) + (xy -1.905 -1.905) + (xy -1.27 -1.905) + ) + (stroke (width 0) (type default)) + (fill (type background)) + ) + (arc (start 0.381 1.016) (mid 0 1.2906) (end -0.381 1.016) + (stroke (width 0) (type default)) + (fill (type none)) + ) + (text "CAUTION" (at 0 -2.54 0) + (effects (font (size 0.508 0.508) italic)) + ) + ) + ) + ) + + (bus_alias "AELEM" (members "A1" "A0")) + (junction (at 63.5 25.4) (diameter 0) (color 0 0 0 0) + (uuid 01eb9bdd-a337-4673-a2b0-d209aebe8932) + ) + (junction (at 63.5 38.1) (diameter 0) (color 0 0 0 0) + (uuid 341059b3-16ac-4fe8-bbe2-921988ba1654) + ) + (junction (at 25.4 58.42) (diameter 0) (color 0 0 0 0) + (uuid 37e4dc66-4492-4061-908d-7213940a2ec3) + ) + (junction (at 50.8 38.1) (diameter 0) (color 0 0 0 0) + (uuid 66154fb2-7455-4e42-b0a7-e0fdebb40a4a) + ) + (junction (at 50.8 25.4) (diameter 0) (color 0 0 0 0) + (uuid e79c0d1b-dd57-46f8-829a-f7a4352235f8) + ) + + (no_connect (at 27.94 66.04) (uuid 2d6718e7-f18d-444d-9792-ddf1a113460c)) + + (bus_entry (at 177.8 101.6) (size 2.54 2.54) + (stroke (width 0) (type default)) + (uuid 2fb9964c-4cd4-4e81-b5e8-f78759d3adb5) + ) + (bus_entry (at 177.8 97.79) (size 2.54 2.54) + (stroke (width 0) (type default)) + (uuid 2fb9964c-4cd4-4e81-b5e8-f78759d3adb6) + ) + (bus_entry (at 25.4 25.4) (size -2.54 -2.54) + (stroke (width 0) (type default)) + (uuid 46cfd089-6873-4d8b-89af-02ff30e49472) + ) + (bus_entry (at 38.1 38.1) (size 2.54 2.54) + (stroke (width 0) (type default)) + (uuid 68b52f01-fa04-4908-bf88-60c62ace1cfa) + ) + (bus_entry (at 25.4 38.1) (size -2.54 2.54) + (stroke (width 0) (type default)) + (uuid 9d984d1b-8097-407f-92f3-3ef68867dcfa) + ) + (bus_entry (at 38.1 25.4) (size 2.54 -2.54) + (stroke (width 0) (type default)) + (uuid bb4f0314-c44c-4dda-b85c-537120eaae9a) + ) + + (wire (pts (xy 99.06 92.71) (xy 99.06 102.87)) + (stroke (width 0) (type default)) + (uuid 0088d107-13d8-496c-8da6-7bbeb9d096b0) + ) + (polyline (pts (xy 25.146 127) (xy 37.846 127)) + (stroke (width 0.508) (type default)) + (uuid 03d88a85-11fd-47aa-954c-c318bb15294a) + ) + (polyline (pts (xy 88.9 25.4) (xy 88.9 38.1)) + (stroke (width 0) (type default)) + (uuid 0c30a4be-5679-499f-8c5b-5f3024f9d6cf) + ) + (polyline (pts (xy 37.846 139.7) (xy 25.146 139.7)) + (stroke (width 0.508) (type default)) + (uuid 0dcdf1b8-13c6-48b4-bd94-5d26038ff231) + ) + + (wire (pts (xy 38.1 38.1) (xy 25.4 38.1)) + (stroke (width 0) (type default)) + (uuid 0f3c9e3a-9c59-4881-b27a-d0e982b3ea8e) + ) + (polyline (pts (xy 88.9 139.7) (xy 76.2 139.7)) + (stroke (width 0) (type solid)) + (uuid 120a7b0f-ddfd-4447-85c1-35665465acdb) + ) + + (wire (pts (xy 129.54 114.3) (xy 96.52 114.3)) + (stroke (width 0) (type default)) + (uuid 128e34ce-eee7-477d-b905-a493e98db783) + ) + (polyline (pts (xy 50.8 139.7) (xy 50.8 127)) + (stroke (width 0) (type default) (color 255 0 0 1)) + (uuid 13475e15-f37c-4de8-857e-1722b0c39513) + ) + (polyline (pts (xy 37.846 127) (xy 37.846 139.7)) + (stroke (width 0.508) (type default)) + (uuid 1a2f72d1-0b36-4610-afc4-4ad1660d5d3b) + ) + + (bus (pts (xy 177.8 88.9) (xy 177.8 97.79)) + (stroke (width 0) (type default)) + (uuid 272c2a78-b5f5-4b61-aed3-ec69e0e92729) + ) + + (polyline (pts (xy 76.2 127) (xy 88.9 127)) + (stroke (width 0) (type solid)) + (uuid 2732632c-4768-42b6-bf7f-14643424019e) + ) + + (wire (pts (xy 25.4 58.42) (xy 27.94 58.42)) + (stroke (width 0) (type default)) + (uuid 29256b3d-9450-4c0a-a4d4-911f04b9c140) + ) + (bus (pts (xy 50.8 25.4) (xy 48.26 22.86)) + (stroke (width 0) (type default)) + (uuid 2e642b3e-a476-4c54-9a52-dcea955640cd) + ) + + (wire (pts (xy 96.52 82.55) (xy 101.6 82.55)) + (stroke (width 0) (type default)) + (uuid 3172f2e2-18d2-4a80-ae30-5707b3409798) + ) + (wire (pts (xy 129.54 82.55) (xy 129.54 92.71)) + (stroke (width 0) (type default)) + (uuid 417f13e4-c121-485a-a6b5-8b55e70350b8) + ) + (wire (pts (xy 22.86 58.42) (xy 25.4 58.42)) + (stroke (width 0) (type default)) + (uuid 483f60da-14d7-4f88-8d01-3f9f30784c70) + ) + (polyline (pts (xy 51.054 144.78) (xy 63.754 144.78)) + (stroke (width 0.762) (type dash_dot) (color 0 255 0 1)) + (uuid 48f827a8-6e22-4a2e-abdc-c2a03098d883) + ) + (polyline (pts (xy 76.2 25.4) (xy 88.9 25.4)) + (stroke (width 0) (type default)) + (uuid 4dc6088c-89a5-4db7-b3ae-db4b6396ad49) + ) + + (bus (pts (xy 50.8 38.1) (xy 48.26 40.64)) + (stroke (width 0) (type default)) + (uuid 5038e144-5119-49db-b6cf-f7c345f1cf03) + ) + (bus (pts (xy 63.5 38.1) (xy 66.04 40.64)) + (stroke (width 0) (type default)) + (uuid 54365317-1355-4216-bb75-829375abc4ec) + ) + + (polyline (pts (xy 50.8 127) (xy 63.5 127)) + (stroke (width 0) (type default) (color 255 0 0 1)) + (uuid 58dc14f9-c158-4824-a84e-24a6a482a7a4) + ) + + (wire (pts (xy 129.54 102.87) (xy 129.54 114.3)) + (stroke (width 0) (type default)) + (uuid 67621f9e-0a6a-4778-ad69-04dcf300659c) + ) + (wire (pts (xy 127 102.87) (xy 129.54 102.87)) + (stroke (width 0) (type default)) + (uuid 68e09be7-3bbc-4443-a838-209ce20b2bef) + ) + (wire (pts (xy 99.06 102.87) (xy 101.6 102.87)) + (stroke (width 0) (type default)) + (uuid 6a780180-586a-4241-a52d-dc7a5ffcc966) + ) + (bus (pts (xy 63.5 25.4) (xy 63.5 38.1)) + (stroke (width 0) (type default)) + (uuid 7e969d15-6cc0-4258-8b27-586608a21adb) + ) + + (wire (pts (xy 25.4 25.4) (xy 38.1 25.4)) + (stroke (width 0) (type default)) + (uuid 825c70b0-4860-42b7-97dc-86bfa46e06fd) + ) + (polyline (pts (xy 88.9 127) (xy 88.9 139.7)) + (stroke (width 0) (type solid)) + (uuid 854dd5d4-5fd2-4730-bd49-a9cd8299a065) + ) + + (wire (pts (xy 180.34 104.14) (xy 190.5 104.14)) + (stroke (width 0) (type default)) + (uuid 87f44303-a6e8-48e5-bb6d-f89abb09a999) + ) + (polyline (pts (xy 76.2 139.7) (xy 76.2 127)) + (stroke (width 0) (type solid)) + (uuid 8d55e186-3e11-40e8-a65e-b36a8a00069e) + ) + (polyline (pts (xy 51.054 157.48) (xy 51.054 144.78)) + (stroke (width 0.508) (type default)) + (uuid 9c8ccb2a-b1e9-4f2c-94fe-301b5975277e) + ) + + (wire (pts (xy 127 82.55) (xy 129.54 82.55)) + (stroke (width 0) (type default)) + (uuid 9dab0cb7-2557-4419-963b-5ae736517f62) + ) + (polyline (pts (xy 76.2 38.1) (xy 76.2 25.4)) + (stroke (width 0) (type default)) + (uuid a501555e-bbc7-4b58-ad89-28a0cd3dd6d0) + ) + + (bus (pts (xy 177.8 97.79) (xy 177.8 101.6)) + (stroke (width 0) (type default)) + (uuid a819bf9a-0c8b-443a-b488-e5f1395d77ad) + ) + (bus (pts (xy 63.5 25.4) (xy 66.04 22.86)) + (stroke (width 0) (type default)) + (uuid ac264c30-3e9a-4be2-b97a-9949b68bd497) + ) + + (wire (pts (xy 180.34 100.33) (xy 190.5 100.33)) + (stroke (width 0) (type default)) + (uuid af7ed34f-31b5-4744-97e9-29e5f4d85343) + ) + (wire (pts (xy 22.86 66.04) (xy 27.94 66.04)) + (stroke (width 0) (type default)) + (uuid b603d26a-e034-42fb-8327-b60c5bf9cdd2) + ) + (polyline (pts (xy 63.5 139.7) (xy 50.8 139.7)) + (stroke (width 0) (type default) (color 255 0 0 1)) + (uuid b635b16e-60bb-4b3e-9fc3-47d34eef8381) + ) + + (bus (pts (xy 50.8 25.4) (xy 63.5 25.4)) + (stroke (width 0) (type default)) + (uuid b8c83ad1-b3c9-495c-bdc6-62dead00f5ad) + ) + + (wire (pts (xy 25.4 58.42) (xy 25.4 60.96)) + (stroke (width 0) (type default)) + (uuid b994142f-02ac-4881-9587-6d3df53c96d2) + ) + (wire (pts (xy 38.1 25.4) (xy 38.1 38.1)) + (stroke (width 0) (type default)) + (uuid bbb15673-6d42-42b8-9d51-7515b3ad9ee9) + ) + (wire (pts (xy 129.54 92.71) (xy 99.06 92.71)) + (stroke (width 0) (type default)) + (uuid c201e1b2-fc01-4110-bdaa-a33290468c83) + ) + (wire (pts (xy 96.52 114.3) (xy 96.52 82.55)) + (stroke (width 0) (type default)) + (uuid c801d42e-dd94-493e-bd2f-6c3ddad43f55) + ) + (bus (pts (xy 165.1 88.9) (xy 177.8 88.9)) + (stroke (width 0) (type default)) + (uuid ceb12634-32ca-4cbf-9ff5-5e8b53ab18ad) + ) + + (polyline (pts (xy 63.754 157.48) (xy 51.054 157.48)) + (stroke (width 0) (type solid) (color 255 0 255 1)) + (uuid cef6f603-8a0b-4dd0-af99-ebfbef7d1b4b) + ) + (polyline (pts (xy 88.9 38.1) (xy 76.2 38.1)) + (stroke (width 0) (type default)) + (uuid db83d0af-e085-4050-8496-fa2ebdecbd62) + ) + (polyline (pts (xy 25.146 139.7) (xy 25.146 127)) + (stroke (width 0.508) (type default)) + (uuid dde3dba8-1b81-466c-93a3-c284ff4da1ef) + ) + + (wire (pts (xy 25.4 38.1) (xy 25.4 25.4)) + (stroke (width 0) (type default)) + (uuid e83e0227-ac0f-4180-82bd-68d3a7b56476) + ) + (polyline (pts (xy 63.754 144.78) (xy 63.754 157.48)) + (stroke (width 0.508) (type dot)) + (uuid e877bf4a-4210-4bd3-b7b0-806eb4affc5b) + ) + + (bus (pts (xy 50.8 38.1) (xy 50.8 25.4)) + (stroke (width 0) (type default)) + (uuid f022716e-b121-4cbf-a833-20e924070c22) + ) + (bus (pts (xy 63.5 38.1) (xy 50.8 38.1)) + (stroke (width 0) (type default)) + (uuid f1dd8642-b405-490b-a449-d1cc5797fda8) + ) + + (polyline (pts (xy 63.5 127) (xy 63.5 139.7)) + (stroke (width 0) (type default) (color 255 0 0 1)) + (uuid f976e2cc-36f9-4479-a816-2c74d1d5da6f) + ) + + (wire (pts (xy 25.4 55.88) (xy 25.4 58.42)) + (stroke (width 0) (type default)) + (uuid fb03d859-dcc9-4533-b352-64830e0e5423) + ) + + (arc (start 203.2 120.65) (mid 205.0599 116.1599) (end 209.55 114.3) + (stroke (width 0) (type default)) + (fill (type none)) + (uuid 00f81073-f297-4ecd-ab0d-4dd899b8db01) + ) + + (circle (center 190.5 120.65) (radius 6.8392) + (stroke (width 0) (type default)) + (fill (type none)) + (uuid a4112622-c24a-41b1-ad3f-0c48820cef36) + ) + + (rectangle (start 165.1 114.3) (end 177.8 127) + (stroke (width 0.3) (type dash) (color 14 44 255 1)) + (fill (type color) (color 255 16 48 1)) + (uuid c6a9521c-c2a2-4070-921e-e6a55261b68a) + ) + + (image (at 133.35 40.64) + (uuid 9a9f2d82-f64d-4264-8bec-c182528fc4de) + (data + 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 + ) + ) + + (text_box "Hi! this is DejaVu Serif" + (at 226.06 130.81 0) (size 13.97 6.35) + (stroke (width 0) (type default)) + (fill (type none)) + (effects (font (face "DejaVu Serif") (size 1.27 1.27)) (justify left top)) + (uuid 88be47bb-d548-4cac-a873-52ec32621961) + ) + (text_box "Text box, above drawing shapes aaa" + (at 170.18 130.81 0) (size 36.83 7.62) + (stroke (width 1) (type dot) (color 56 85 255 1)) + (fill (type color) (color 255 117 107 1)) + (effects (font (size 1.27 1.27) (thickness 0.254) bold (color 124 255 131 1)) (justify left top) (href "https://github.com/INTI-CMNB/KiBot/")) + (uuid ffbdc5a8-2780-4490-aa6c-ee3ed66dc37a) + ) + (text "Text box B" (at 81.28 57.15 90) + (effects (font (size 1.27 1.27) italic) (justify left bottom)) + (uuid 2f3deced-880d-4075-a81b-95c62da5b94d) + ) + (text "Text box A" (at 67.31 59.69 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3cfcbcc7-4f45-46ab-82a8-c414c7972161) + ) + (text "Text box C" (at 92.71 59.69 0) + (effects (font (size 1.27 1.27) (thickness 0.254) bold) (justify right bottom)) + (uuid 4d609e7c-74c9-4ae9-a26d-946ff00c167d) + ) + (text "Text box D" (at 81.28 60.96 90) + (effects (font (size 1.27 1.27) (thickness 0.254) bold italic) (justify right bottom)) + (uuid 786b6072-5772-4bc1-8eeb-6c4e19f2a91b) + ) + + (label "B.A0" (at 181.61 104.14 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 56bbedad-6259-4443-b321-0ffa1f89c336) + ) + (label "B.A1" (at 181.61 100.33 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 82941cb3-7e8d-4836-8b43-647cd4390ab6) + ) + (label "L1" (at 22.86 66.04 0) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid f144a97d-c3f0-423f-b0a9-3f7dbc42478b) + ) + (label "B{AELEM}" (at 165.1 88.9 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid fc80fa5b-8c07-4dda-8002-331dcafd556b) + (property "Netclass" "a net class" (at 165.1 90.17 0) + (effects (font (size 1.27 1.27) italic) (justify left)) + ) + (property "Something" "pp2" (at 165.1 92.71 0) + (effects (font (size 1.27 1.27) italic) (justify left)) + ) + ) + + (global_label "L2B" (shape output) (at 39.37 55.88 90) (fields_autoplaced) + (effects (font (size 1.27 1.27) italic) (justify left)) + (uuid 6199bec7-e7eb-4ae0-b9ec-c563e157d635) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 39.37 49.4666 90) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) + (global_label "L2A" (shape input) (at 38.1 58.42 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 71c77456-1405-42e3-95ed-69e629de0558) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 31.868 58.42 0) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) + (global_label "L2C" (shape bidirectional) (at 40.64 58.42 0) (fields_autoplaced) + (effects (font (size 1.27 1.27) (thickness 0.254) bold) (justify left)) + (uuid 7f3eb118-a20c-4239-b800-c9211c66847d) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 48.5931 58.42 0) + (effects (font (size 1.27 1.27)) (justify left) hide) + ) + ) + (global_label "L2D" (shape passive) (at 39.37 60.96 270) (fields_autoplaced) + (effects (font (size 1.27 1.27) (thickness 0.254) bold italic) (justify right)) + (uuid d2de4093-1fc2-4bc1-94b6-4d0fe3426c6f) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 39.37 66.6905 90) + (effects (font (size 1.27 1.27)) (justify right) hide) + ) + ) + + (hierarchical_label "L3B" (shape output) (at 55.88 55.88 90) (fields_autoplaced) + (effects (font (size 1.27 1.27) italic) (justify left)) + (uuid 909b030b-fa1a-4fe8-b1ee-422b4d9e23cf) + ) + (hierarchical_label "L3C" (shape bidirectional) (at 57.15 58.42 0) (fields_autoplaced) + (effects (font (size 1.27 1.27) (thickness 0.254) bold) (justify left)) + (uuid 936e2ca6-11ae-4f42-9128-52bb329f3d21) + ) + (hierarchical_label "L3A" (shape input) (at 54.61 58.42 180) (fields_autoplaced) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid cbc539d2-6a10-4052-9b7a-f10326dcac67) + ) + (hierarchical_label "L3D" (shape passive) (at 55.88 60.96 270) (fields_autoplaced) + (effects (font (size 1.27 1.27) (thickness 0.254) bold italic) (justify right)) + (uuid ebadd2a5-21ab-4a7e-b5bc-6f737367e560) + ) + + (symbol (lib_id "l1:Resistor") (at 33.02 87.63 270) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f33ec02) + (property "Reference" "R1" (at 33.02 82.3722 90) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "R" (at 33.02 84.6836 90) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 33.02 85.852 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 33.02 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Test" "Hi! \"quoted text\"" (at 33.02 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 7e177dab-d792-4f03-9143-3cc95615e0d6)) + (pin "2" (uuid c7c08868-5b26-40ca-94ba-cdb1cda09dbd)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" + (reference "R1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:L") (at 39.37 80.01 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f33f73d) + (property "Reference" "L1" (at 40.7162 78.8416 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Value" "L" (at 40.7162 81.153 0) + (effects (font (size 1.27 1.27)) (justify left)) + ) + (property "Footprint" "" (at 39.37 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 39.37 80.01 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid f71826d8-34d8-4930-98c5-11e184143d2a)) + (pin "2" (uuid e65300a0-fc18-4db7-b27f-2d7614c69ac0)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" + (reference "L1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 45.72 87.63 90) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f3401d2) + (property "Reference" "C1" (at 45.72 81.2292 90) (do_not_autoplace) + (effects (font (size 1.27 1.27))) + ) + (property "Value" "C" (at 45.72 83.5406 90) (show_name) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 49.53 86.6648 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 45.72 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 636ec398-3d70-4359-98b8-4ebd9a3143be)) + (pin "2" (uuid 15129e2c-3876-4c0d-83a8-7e8db04bdace)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" + (reference "C1") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:R_US") (at 39.37 95.25 180) (unit 1) (convert 2) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 00000000-0000-0000-0000-00005f3409f7) + (property "Reference" "R2" (at 41.0972 94.0816 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Value" "R_US" (at 41.0972 96.393 0) + (effects (font (size 1.27 1.27)) (justify right)) + ) + (property "Footprint" "" (at 38.354 94.996 90) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "~" (at 39.37 95.25 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 779dda81-116c-4228-bf2c-ec4cdaf096a5)) + (pin "2" (uuid e09d9b91-6abd-4b89-9714-db4f9256657c)) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" + (reference "R2") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "l1:SYM_CAUTION") (at 69.85 87.63 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) + (uuid 00000000-0000-0000-0000-00005f4ece1f) + (property "Reference" "#SYM_CAUTION1" (at 69.85 83.82 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "SYM_CAUTION" (at 69.85 92.075 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Footprint" "" (at 72.39 93.98 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 69.85 87.63 0) + (effects (font (size 1.27 1.27)) hide) + ) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" + (reference "#SYM_CAUTION1") (unit 1) + ) + ) + ) + ) + + (sheet (at 101.6 76.2) (size 25.4 12.7) (fields_autoplaced) + (stroke (width 0) (type solid)) + (fill (color 0 0 0 0.0)) + (uuid 00000000-0000-0000-0000-00005f342deb) + (property "Sheetname" "Sub Sheet" (at 101.6 75.4884 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + ) + (property "Sheetfile" "sub-sheet.kicad_sch" (at 101.6 89.4846 0) + (effects (font (size 1.27 1.27)) (justify left top)) + ) + (pin "OUT" output (at 127 82.55 0) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid 0f41a909-27c4-4be2-9d5e-9ae2108c8ff5) + ) + (pin "IN" input (at 101.6 82.55 180) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid 632acde9-b7fd-4f04-8cb4-d2cbb06b3595) + ) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" (page "4")) + ) + ) + ) + + (sheet (at 101.6 96.52) (size 25.4 12.7) (fields_autoplaced) + (stroke (width 0) (type solid)) + (fill (color 0 0 0 0.0)) + (uuid 00000000-0000-0000-0000-00005f34e267) + (property "Sheetname" "Sub Sheet 2" (at 101.6 95.8084 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + ) + (property "Sheetfile" "sub-sheet.kicad_sch" (at 101.6 109.8046 0) + (effects (font (size 1.27 1.27)) (justify left top)) + ) + (pin "OUT" output (at 127 102.87 0) + (effects (font (size 1.27 1.27)) (justify right)) + (uuid dabe541b-b164-4180-97a4-5ca761b86800) + ) + (pin "IN" input (at 101.6 102.87 180) + (effects (font (size 1.27 1.27)) (justify left)) + (uuid e12e827e-36be-4503-8eef-6fc7e8bc5d49) + ) + (instances + (project "test_v5" + (path "/e6521bef-4109-48f7-8b88-4121b0468927" (page "5")) + ) + ) + ) + + (sheet_instances + (path "/" (page "1")) + ) +) diff --git a/tests/reference/stable_nightly/test_v5_wks-schematic_(no_L).pdf b/tests/reference/stable_nightly/test_v5_wks-schematic_(no_L).pdf new file mode 100644 index 00000000..9e3a8218 Binary files /dev/null and b/tests/reference/stable_nightly/test_v5_wks-schematic_(no_L).pdf differ diff --git a/tests/reference/stable_nightly/zone-refill-B_Cu.pdf b/tests/reference/stable_nightly/zone-refill-B_Cu.pdf new file mode 100644 index 00000000..1536dd80 Binary files /dev/null and b/tests/reference/stable_nightly/zone-refill-B_Cu.pdf differ diff --git a/tests/utils/context.py b/tests/utils/context.py index 9b0e3e26..6020c019 100644 --- a/tests/utils/context.py +++ b/tests/utils/context.py @@ -30,6 +30,7 @@ KICAD_VERSION_5_99 = 5099000 KICAD_VERSION_6_0_0 = 6000000 KICAD_VERSION_7_0_0 = 7000000 KICAD_VERSION_7_0_3 = 7000003 +KICAD_VERSION_7_0_5 = 7000005 KICAD_VERSION_8_0_0 = 7099000 MODE_SCH = 1 MODE_PCB = 0 @@ -41,8 +42,9 @@ if ng_ver: # Path to the Python module sys.path.insert(0, '/usr/lib/kicad-nightly/lib/python3/dist-packages') import pcbnew -m = re.search(r'(\d+)\.(\d+)\.(\d+)', pcbnew.GetBuildVersion()) -logging.debug(pcbnew.GetBuildVersion()) +build_version = pcbnew.GetBuildVersion() +m = re.search(r'(\d+)\.(\d+)\.(\d+)', build_version) +logging.debug(build_version) kicad_major = int(m.group(1)) kicad_minor = int(m.group(2)) kicad_patch = int(m.group(3)) @@ -51,12 +53,15 @@ if kicad_version >= KICAD_VERSION_5_99: BOARDS_DIR = '../board_samples/kicad_'+str(kicad_major+(0 if kicad_minor < 99 else 1)) if kicad_version >= KICAD_VERSION_8_0_0: REF_DIR = 'tests/reference/8_0_0' + elif kicad_version >= KICAD_VERSION_7_0_5 and 'unknown' in build_version: + REF_DIR = 'tests/reference/stable_nightly' elif kicad_version >= KICAD_VERSION_7_0_3: REF_DIR = 'tests/reference/7_0_3' elif kicad_version >= KICAD_VERSION_7_0_0: REF_DIR = 'tests/reference/7_0_0' else: REF_DIR = 'tests/reference/6_0_8' + logging.debug('Reference dir: '+REF_DIR) KICAD_SCH_EXT = '.kicad_sch' # Now these layers can be renamed. # KiCad 6 takes the freedom to give them more descriptive names ... @@ -496,7 +501,7 @@ class TestContext(object): return self.search_not_in_file(os.path.join(self.sub_dir, file), texts) def compare_image(self, image, reference=None, diff='diff.png', ref_out_dir=False, fuzz='5%', tol=0, height='87%', - off_y='0', sub=False, trim=False): + off_y='0', sub=False, trim=False, fix_here=True): """ For images and single page PDFs """ if reference is None: reference = image @@ -504,7 +509,9 @@ class TestContext(object): reference = self.get_out_path(reference) else: reference = os.path.join(REF_DIR, reference) + full_ref = reference image = self.get_out_path(image, sub) + full_img = image png_ref = None if reference[-3:] == 'svg': png_ref = reference[:-3]+'png' @@ -530,7 +537,7 @@ class TestContext(object): '-colorspace', 'RGB', self.get_out_path(diff)] logging.debug('Comparing images with: '+usable_cmd(cmd)) - res = subprocess.run(cmd, stderr=subprocess.STDOUT, check=(tol == 0), stdout=subprocess.PIPE).stdout + res = subprocess.run(cmd, stderr=subprocess.STDOUT, check=False, stdout=subprocess.PIPE).stdout # m = re.match(r'([\d\.e-]+) \(([\d\.e-]+)\)', res.decode()) # assert m # logging.debug('MSE={} ({})'.format(m.group(1), m.group(2))) @@ -545,6 +552,9 @@ class TestContext(object): os.remove(png_ref) if png_image: os.remove(png_image) + if ae > tol and fix_here and os.environ.get('KIBOT_COPY_REF') == '1': + logging.error(f'cp {full_img} {full_ref}') + shutil.copy2(full_img, full_ref) assert ae <= tol def compare_pdf(self, gen, reference=None, diff='diff-{}.png', height='87%', off_y='0', tol=0): @@ -554,15 +564,13 @@ class TestContext(object): logging.debug('Comparing PDFs: '+gen+' vs '+reference) # Split the reference logging.debug('Splitting '+reference) - cmd = ['convert', '-density', '150', - os.path.join(REF_DIR, reference), - self.get_out_path('ref-%d.png')] + full_ref_name = os.path.join(REF_DIR, reference) + cmd = ['convert', '-density', '150', full_ref_name, self.get_out_path('ref-%d.png')] subprocess.check_call(cmd) # Split the generated logging.debug('Splitting '+gen) - cmd = ['convert', '-density', '150', - self.get_out_path(gen), - self.get_out_path('gen-%d.png')] + full_gen_name = self.get_out_path(gen) + cmd = ['convert', '-density', '150', full_gen_name, self.get_out_path('gen-%d.png')] subprocess.check_call(cmd) # Check number of pages ref_pages = glob(self.get_out_path('ref-*.png')) @@ -570,17 +578,27 @@ class TestContext(object): logging.debug('Pages {} vs {}'.format(len(gen_pages), len(ref_pages))) assert len(ref_pages) == len(gen_pages) # Compare each page - for page in range(len(ref_pages)): - self.compare_image('gen-'+str(page)+'.png', 'ref-'+str(page)+'.png', diff.format(page), ref_out_dir=True, - height=height, off_y=off_y, tol=tol) + try: + for page in range(len(ref_pages)): + self.compare_image('gen-'+str(page)+'.png', 'ref-'+str(page)+'.png', diff.format(page), ref_out_dir=True, + height=height, off_y=off_y, tol=tol, fix_here=False) + except AssertionError: + if os.environ.get('KIBOT_COPY_REF') == '1': + logging.error(f'cp {full_gen_name} {full_ref_name}') + shutil.copy2(full_gen_name, full_ref_name) + raise def compare_txt(self, text, reference=None, diff='diff.txt'): if reference is None: reference = text - cmd = ['/bin/sh', '-c', 'diff -uBb '+os.path.join(REF_DIR, reference)+' ' + - self.get_out_path(text)+' > '+self.get_out_path(diff)] + full_ref_name = os.path.join(REF_DIR, reference) + full_text_name = self.get_out_path(text) + cmd = ['/bin/sh', '-c', 'diff -uBb '+full_ref_name+' '+full_text_name+' > '+self.get_out_path(diff)] logging.debug('Comparing texts with: '+usable_cmd(cmd)) res = subprocess.call(cmd) + if res and os.environ.get('KIBOT_COPY_REF') == '1': + logging.error(f'cp {full_text_name} {full_ref_name}') + shutil.copy2(full_text_name, full_ref_name) assert res == 0, res def compare_txt_d(self, text, reference=None, diff='diff.txt'):