diff --git a/3dprint/buttons.scad b/3dprint/buttons.scad index 5424bcf..a60efc6 100644 --- a/3dprint/buttons.scad +++ b/3dprint/buttons.scad @@ -51,7 +51,7 @@ button_height = 8; button_small_width = 8; button_small_height = 8; -render_text = false; +render_text = true; render_button = true; row_length = 4; diff --git a/3dprint/panel.scad b/3dprint/panel.scad index b31a902..de20c18 100644 --- a/3dprint/panel.scad +++ b/3dprint/panel.scad @@ -206,7 +206,7 @@ module side(rightside = false) { } } -render_panel = false; +render_panel = true; render_case = true; mount_screw_diam = 4+wiggle_room; diff --git a/CMakeLists.txt b/CMakeLists.txt index a0c14fb..b7c2434 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,7 +43,7 @@ target_link_libraries(ledtest pico_stdlib hardware_pio) pico_add_extra_outputs(ledtest) add_executable(lcdtest - src/lcdtest.c + src/lcdtest.c src/lcdbus.c src/lcd_ui.c ) pico_generate_pio_header(lcdtest ${CMAKE_CURRENT_LIST_DIR}/src/lcdbus.pio) diff --git a/hw/rp2040_radio/rp2040_radio.kicad_sch b/hw/rp2040_radio/rp2040_radio.kicad_sch index 84993ab..fabf081 100644 --- a/hw/rp2040_radio/rp2040_radio.kicad_sch +++ b/hw/rp2040_radio/rp2040_radio.kicad_sch @@ -5,101 +5,6 @@ (paper "A4") (lib_symbols - (symbol "74xx:74HC165" (in_bom yes) (on_board yes) - (property "Reference" "U" (at -7.62 19.05 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "74HC165" (at -7.62 -21.59 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT165.pdf" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_keywords" "8 bit shift register parallel load cmos" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Shift Register, 8-bit, Parallel Load" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "DIP?16* SO*16*3.9x9.9mm*P1.27mm* SSOP*16*5.3x6.2mm*P0.65mm* TSSOP*16*4.4x5mm*P0.65*" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "74HC165_1_0" - (pin input line (at -12.7 -10.16 0) (length 5.08) - (name "~{PL}" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 15.24 0) (length 5.08) - (name "DS" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 12.7 0) (length 5.08) - (name "D0" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 10.16 0) (length 5.08) - (name "D1" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 7.62 0) (length 5.08) - (name "D2" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 5.08 0) (length 5.08) - (name "D3" (effects (font (size 1.27 1.27)))) - (number "14" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 -17.78 0) (length 5.08) - (name "~{CE}" (effects (font (size 1.27 1.27)))) - (number "15" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 0 22.86 270) (length 5.08) - (name "VCC" (effects (font (size 1.27 1.27)))) - (number "16" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 -15.24 0) (length 5.08) - (name "CP" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 2.54 0) (length 5.08) - (name "D4" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 0 0) (length 5.08) - (name "D5" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 -2.54 0) (length 5.08) - (name "D6" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -12.7 -5.08 0) (length 5.08) - (name "D7" (effects (font (size 1.27 1.27)))) - (number "6" (effects (font (size 1.27 1.27)))) - ) - (pin output line (at 12.7 12.7 180) (length 5.08) - (name "~{Q7}" (effects (font (size 1.27 1.27)))) - (number "7" (effects (font (size 1.27 1.27)))) - ) - (pin power_in line (at 0 -25.4 90) (length 5.08) - (name "GND" (effects (font (size 1.27 1.27)))) - (number "8" (effects (font (size 1.27 1.27)))) - ) - (pin output line (at 12.7 15.24 180) (length 5.08) - (name "Q7" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74HC165_1_1" - (rectangle (start -7.62 17.78) (end 7.62 -20.32) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - ) - ) (symbol "74xx:74HC595" (in_bom yes) (on_board yes) (property "Reference" "U" (at -7.62 13.97 0) (effects (font (size 1.27 1.27))) @@ -195,400 +100,6 @@ ) ) ) - (symbol "74xx:74LS00" (pin_names (offset 1.016)) (in_bom yes) (on_board yes) - (property "Reference" "U" (at 0 1.27 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "74LS00" (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/sn74ls00" (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 nand 2-input" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "quad 2-input NAND gate" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_fp_filters" "DIP*W7.62mm* SO14*" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "74LS00_1_1" - (arc (start 0 -3.81) (mid 3.7934 0) (end 0 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy 0 3.81) - (xy -3.81 3.81) - (xy -3.81 -3.81) - (xy 0 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin input line (at -7.62 2.54 0) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -7.62 -2.54 0) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (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 "3" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74LS00_1_2" - (arc (start -3.81 -3.81) (mid -2.589 0) (end -3.81 3.81) - (stroke (width 0.254) (type default)) - (fill (type none)) - ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 3.81) - (xy -0.635 3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -0.635 3.81) - (xy -3.81 3.81) - (xy -3.81 3.81) - (xy -3.556 3.4036) - (xy -3.0226 2.2606) - (xy -2.6924 1.0414) - (xy -2.6162 -0.254) - (xy -2.7686 -1.4986) - (xy -3.175 -2.7178) - (xy -3.81 -3.81) - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width -25.4) (type default)) - (fill (type background)) - ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin input inverted (at -7.62 2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin input inverted (at -7.62 -2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - (pin output line (at 7.62 0 180) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "3" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74LS00_2_1" - (arc (start 0 -3.81) (mid 3.7934 0) (end 0 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy 0 3.81) - (xy -3.81 3.81) - (xy -3.81 -3.81) - (xy 0 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin input line (at -7.62 2.54 0) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -7.62 -2.54 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 "74LS00_2_2" - (arc (start -3.81 -3.81) (mid -2.589 0) (end -3.81 3.81) - (stroke (width 0.254) (type default)) - (fill (type none)) - ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 3.81) - (xy -0.635 3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -0.635 3.81) - (xy -3.81 3.81) - (xy -3.81 3.81) - (xy -3.556 3.4036) - (xy -3.0226 2.2606) - (xy -2.6924 1.0414) - (xy -2.6162 -0.254) - (xy -2.7686 -1.4986) - (xy -3.175 -2.7178) - (xy -3.81 -3.81) - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width -25.4) (type default)) - (fill (type background)) - ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin input inverted (at -7.62 2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "4" (effects (font (size 1.27 1.27)))) - ) - (pin input inverted (at -7.62 -2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "5" (effects (font (size 1.27 1.27)))) - ) - (pin output line (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 "74LS00_3_1" - (arc (start 0 -3.81) (mid 3.7934 0) (end 0 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy 0 3.81) - (xy -3.81 3.81) - (xy -3.81 -3.81) - (xy 0 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin input line (at -7.62 -2.54 0) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "10" (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 "8" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -7.62 2.54 0) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74LS00_3_2" - (arc (start -3.81 -3.81) (mid -2.589 0) (end -3.81 3.81) - (stroke (width 0.254) (type default)) - (fill (type none)) - ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 3.81) - (xy -0.635 3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -0.635 3.81) - (xy -3.81 3.81) - (xy -3.81 3.81) - (xy -3.556 3.4036) - (xy -3.0226 2.2606) - (xy -2.6924 1.0414) - (xy -2.6162 -0.254) - (xy -2.7686 -1.4986) - (xy -3.175 -2.7178) - (xy -3.81 -3.81) - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width -25.4) (type default)) - (fill (type background)) - ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin input inverted (at -7.62 -2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "10" (effects (font (size 1.27 1.27)))) - ) - (pin output line (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 inverted (at -7.62 2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "9" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74LS00_4_1" - (arc (start 0 -3.81) (mid 3.7934 0) (end 0 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy 0 3.81) - (xy -3.81 3.81) - (xy -3.81 -3.81) - (xy 0 -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 "11" (effects (font (size 1.27 1.27)))) - ) - (pin input line (at -7.62 2.54 0) (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 -2.54 0) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74LS00_4_2" - (arc (start -3.81 -3.81) (mid -2.589 0) (end -3.81 3.81) - (stroke (width 0.254) (type default)) - (fill (type none)) - ) - (arc (start -0.6096 -3.81) (mid 2.1842 -2.5851) (end 3.81 0) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -3.81 3.81) - (xy -0.635 3.81) - ) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (polyline - (pts - (xy -0.635 3.81) - (xy -3.81 3.81) - (xy -3.81 3.81) - (xy -3.556 3.4036) - (xy -3.0226 2.2606) - (xy -2.6924 1.0414) - (xy -2.6162 -0.254) - (xy -2.7686 -1.4986) - (xy -3.175 -2.7178) - (xy -3.81 -3.81) - (xy -3.81 -3.81) - (xy -0.635 -3.81) - ) - (stroke (width -25.4) (type default)) - (fill (type background)) - ) - (arc (start 3.81 0) (mid 2.1915 2.5936) (end -0.6096 3.81) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - (pin output line (at 7.62 0 180) (length 3.81) - (name "~" (effects (font (size 1.27 1.27)))) - (number "11" (effects (font (size 1.27 1.27)))) - ) - (pin input inverted (at -7.62 2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "12" (effects (font (size 1.27 1.27)))) - ) - (pin input inverted (at -7.62 -2.54 0) (length 4.318) - (name "~" (effects (font (size 1.27 1.27)))) - (number "13" (effects (font (size 1.27 1.27)))) - ) - ) - (symbol "74LS00_5_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 "74LS00_5_1" - (rectangle (start -5.08 7.62) (end 5.08 -7.62) - (stroke (width 0.254) (type default)) - (fill (type background)) - ) - ) - ) (symbol "Connector_Generic:Conn_02x20_Top_Bottom" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes) (property "Reference" "J" (at 1.27 25.4 0) (effects (font (size 1.27 1.27))) @@ -977,45 +488,6 @@ ) ) ) - (symbol "Device:R_Small" (pin_numbers hide) (pin_names (offset 0.254) hide) (in_bom yes) (on_board yes) - (property "Reference" "R" (at 0.762 0.508 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "R_Small" (at 0.762 -1.016 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (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" "R resistor" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Resistor, small 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_Small_0_1" - (rectangle (start -0.762 1.778) (end 0.762 -1.778) - (stroke (width 0.2032) (type default)) - (fill (type none)) - ) - ) - (symbol "R_Small_1_1" - (pin passive line (at 0 2.54 270) (length 0.762) - (name "~" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - (pin passive line (at 0 -2.54 90) (length 0.762) - (name "~" (effects (font (size 1.27 1.27)))) - (number "2" (effects (font (size 1.27 1.27)))) - ) - ) - ) (symbol "power:+3V3" (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) @@ -1068,58 +540,6 @@ ) ) ) - (symbol "power:+5V" (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" "+5V" (at 0 3.556 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" "global power" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "ki_description" "Power symbol creates a global label with name \"+5V\"" (at 0 0 0) - (effects (font (size 1.27 1.27)) hide) - ) - (symbol "+5V_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 "+5V_1_1" - (pin power_in line (at 0 0 90) (length 0) hide - (name "+5V" (effects (font (size 1.27 1.27)))) - (number "1" (effects (font (size 1.27 1.27)))) - ) - ) - ) (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) @@ -1361,44 +781,17 @@ ) ) - (junction (at 168.91 115.57) (diameter 0) (color 0 0 0 0) - (uuid 0120875d-6a3d-4f4f-8289-bbdf61e71cbb) - ) - (junction (at 182.88 82.55) (diameter 0) (color 0 0 0 0) - (uuid 043d6f36-a8a8-4025-aa24-7dfd22ed9863) + (junction (at 124.46 118.11) (diameter 0) (color 0 0 0 0) + (uuid 06db332c-27a6-43e5-98ae-16efd7252074) ) (junction (at 119.38 78.74) (diameter 0) (color 0 0 0 0) (uuid 08bb74aa-29e9-4517-a465-07591e6c621a) ) - (junction (at 152.4 35.56) (diameter 0) (color 0 0 0 0) - (uuid 108615ce-8327-482b-bfff-cf9a86c17881) + (junction (at 99.695 81.28) (diameter 0) (color 0 0 0 0) + (uuid 1651b4c5-05b4-46f8-acd8-fc74f1d033b3) ) - (junction (at 185.42 67.31) (diameter 0) (color 0 0 0 0) - (uuid 1a896b41-d878-4723-b4d9-ac6dce1fe983) - ) - (junction (at 154.94 40.64) (diameter 0) (color 0 0 0 0) - (uuid 2cb1d08c-70e6-4d88-9788-c096fc6695c4) - ) - (junction (at 165.1 107.95) (diameter 0) (color 0 0 0 0) - (uuid 35de492e-cbc7-4917-be56-ae82ff2396d5) - ) - (junction (at 170.18 118.11) (diameter 0) (color 0 0 0 0) - (uuid 37a8d0e4-92c0-4069-9257-3290e2050b8f) - ) - (junction (at 166.37 110.49) (diameter 0) (color 0 0 0 0) - (uuid 4cd2fb9c-e679-4832-b6c2-7ae0d0047b33) - ) - (junction (at 124.46 81.28) (diameter 0) (color 0 0 0 0) - (uuid 530ae894-c6a5-4c4d-a0f2-c5c578b57f9c) - ) - (junction (at 142.24 83.82) (diameter 0) (color 0 0 0 0) - (uuid 5bea2673-1442-4588-9a28-26aeecbc5900) - ) - (junction (at 139.7 93.98) (diameter 0) (color 0 0 0 0) - (uuid 644d90e0-de05-43cd-a527-80a71ce4f195) - ) - (junction (at 163.83 105.41) (diameter 0) (color 0 0 0 0) - (uuid 7393716b-852a-4102-b39c-0c714d1a69b2) + (junction (at 139.7 132.08) (diameter 0) (color 0 0 0 0) + (uuid 21c52832-979a-4162-998d-c2199ef4f440) ) (junction (at 233.68 16.51) (diameter 0) (color 0 0 0 0) (uuid 76435a3b-6f10-4aa1-a0c9-f9f71e5b72fc) @@ -1406,54 +799,12 @@ (junction (at 121.92 73.66) (diameter 0) (color 0 0 0 0) (uuid 774c05fc-1be8-47d9-9504-0c8f3757bef6) ) - (junction (at 167.64 113.03) (diameter 0) (color 0 0 0 0) - (uuid 864e67f2-ffea-45c2-a262-0f991222cf25) - ) (junction (at 139.7 95.25) (diameter 0) (color 0 0 0 0) (uuid 93fd6cd5-8777-4a03-9864-de65c046331a) ) (junction (at 139.7 29.21) (diameter 0) (color 0 0 0 0) (uuid 95045ac6-4a18-4e30-917a-b8fd32bc9fed) ) - (junction (at 124.46 93.98) (diameter 0) (color 0 0 0 0) - (uuid 98bb616b-4e0b-4eca-bfa6-28cafe8fa22d) - ) - (junction (at 201.93 73.66) (diameter 0) (color 0 0 0 0) - (uuid 9bf8a880-8405-475e-b32f-41c5e85850f5) - ) - (junction (at 160.02 50.8) (diameter 0) (color 0 0 0 0) - (uuid 9ca6390e-a7f9-49ea-bc15-871922479965) - ) - (junction (at 162.56 102.87) (diameter 0) (color 0 0 0 0) - (uuid aed347f3-4ba5-4703-b54d-c7afcd167651) - ) - (junction (at 157.48 45.72) (diameter 0) (color 0 0 0 0) - (uuid bed1f9e2-c947-4e2d-996f-8a32c5d673ad) - ) - (junction (at 158.75 48.26) (diameter 0) (color 0 0 0 0) - (uuid c21695b3-8fe7-490b-a111-96a46780ad24) - ) - (junction (at 171.45 120.65) (diameter 0) (color 0 0 0 0) - (uuid c3b332f6-7aae-40de-a14c-775ab060c444) - ) - (junction (at 121.92 83.82) (diameter 0) (color 0 0 0 0) - (uuid cd928df0-13a8-4253-8f84-6717b5630d46) - ) - (junction (at 119.38 67.31) (diameter 0) (color 0 0 0 0) - (uuid d53ab1dd-294d-414d-8d38-c2bd490177a1) - ) - (junction (at 156.21 43.18) (diameter 0) (color 0 0 0 0) - (uuid e35846de-168e-48c2-848c-226e8e7ec78a) - ) - (junction (at 161.29 53.34) (diameter 0) (color 0 0 0 0) - (uuid e92bcc5f-e0c9-44de-87a7-50bad395734b) - ) - (junction (at 201.93 142.24) (diameter 0) (color 0 0 0 0) - (uuid f2fa4561-a723-4d00-80e3-cb7bb652f6e0) - ) - (junction (at 153.67 38.1) (diameter 0) (color 0 0 0 0) - (uuid f7cd5262-8096-47ba-b9dc-8d41d303a52e) - ) (no_connect (at 260.35 80.01) (uuid 0add54d0-adfc-47f5-af75-7f8287353ce1)) (no_connect (at 247.65 36.83) (uuid 4239c0e8-b08f-4c6f-9225-4147dfa77b81)) @@ -1461,10 +812,6 @@ (no_connect (at 247.65 80.01) (uuid e6ddfb5d-1738-4fac-be16-478a1a7e48ed)) (no_connect (at 247.65 74.93) (uuid f6a7f714-caa7-44e7-824d-470a116b00fb)) - (bus_entry (at 30.48 71.12) (size 2.54 2.54) - (stroke (width 0) (type default)) - (uuid 03ec3ad4-a361-42d0-9586-917fa480bd4c) - ) (bus_entry (at 163.83 16.51) (size -2.54 2.54) (stroke (width 0) (type default)) (uuid 06bfd635-3b25-436b-969c-fcc625cf0b33) @@ -1529,6 +876,10 @@ (stroke (width 0) (type default)) (uuid 4fd291b1-f02f-49e1-b8c9-9dbe42e378e7) ) + (bus_entry (at 99.695 16.51) (size -2.54 2.54) + (stroke (width 0) (type default)) + (uuid 511c73fe-cac0-4d3d-983e-aa2a531f2aa6) + ) (bus_entry (at 270.51 34.29) (size -2.54 2.54) (stroke (width 0) (type default)) (uuid 53697879-2a0f-4d48-b96c-884be410e56b) @@ -1573,10 +924,6 @@ (stroke (width 0) (type default)) (uuid a5d0924e-28ab-4b7c-92ce-1ded1ce4d891) ) - (bus_entry (at 30.48 68.58) (size 2.54 2.54) - (stroke (width 0) (type default)) - (uuid a9a8b530-b753-402b-8a2b-c4aee0f75a7e) - ) (bus_entry (at 156.21 16.51) (size -2.54 2.54) (stroke (width 0) (type default)) (uuid af36f6f3-24bc-4962-b46b-185a479053b9) @@ -1589,7 +936,7 @@ (stroke (width 0) (type default)) (uuid b8e9b49d-7493-4e1f-9306-7a5304a4540e) ) - (bus_entry (at 30.48 66.04) (size 2.54 2.54) + (bus_entry (at 27.305 78.74) (size 2.54 2.54) (stroke (width 0) (type default)) (uuid bc6b2786-da95-452f-aa34-446de3be46cb) ) @@ -1597,9 +944,9 @@ (stroke (width 0) (type default)) (uuid bcc8dc75-81b4-4f13-be88-d7ab7b38c6fd) ) - (bus_entry (at 30.48 78.74) (size 2.54 2.54) + (bus_entry (at 41.275 16.51) (size -2.54 2.54) (stroke (width 0) (type default)) - (uuid bda1b802-20f7-4236-acad-a08329f4dc9c) + (uuid c9024786-9db2-401e-8b7b-48a7e1b2e398) ) (bus_entry (at 165.1 16.51) (size -2.54 2.54) (stroke (width 0) (type default)) @@ -1613,14 +960,18 @@ (stroke (width 0) (type default)) (uuid d502b8a7-54ac-43e4-8d42-077df0357401) ) - (bus_entry (at 30.48 76.2) (size 2.54 2.54) - (stroke (width 0) (type default)) - (uuid d6a9e992-82cd-4e4c-b111-46578899c080) - ) (bus_entry (at 173.99 16.51) (size -2.54 2.54) (stroke (width 0) (type default)) (uuid d8d67fbf-641d-4b12-a78a-68d902030dff) ) + (bus_entry (at 102.235 16.51) (size -2.54 2.54) + (stroke (width 0) (type default)) + (uuid db557ee9-14f1-4733-9a5c-b0b80ae05d44) + ) + (bus_entry (at 104.775 16.51) (size -2.54 2.54) + (stroke (width 0) (type default)) + (uuid dfd39add-2be5-4c76-8aa8-f5d98ecc2fba) + ) (bus_entry (at 270.51 46.99) (size -2.54 2.54) (stroke (width 0) (type default)) (uuid e0172ecc-10bb-4d07-9d2b-20cde79e13c3) @@ -1634,19 +985,15 @@ (stroke (width 0) (type default)) (uuid 003ff46a-b4ad-4521-bd92-0b204dda9ed3) ) - (wire (pts (xy 119.38 67.31) (xy 119.38 78.74)) + (wire (pts (xy 99.695 81.28) (xy 85.09 81.28)) (stroke (width 0) (type default)) - (uuid 01436a3b-0c72-4163-83dd-0ff9e2dede18) + (uuid 03ca4a39-f40a-4a59-96eb-1870aa8d9d4e) ) (bus (pts (xy 233.68 44.45) (xy 233.68 46.99)) (stroke (width 0) (type default)) (uuid 0712651a-c808-4b7c-9f53-d02e6661c930) ) - (wire (pts (xy 187.96 25.4) (xy 187.96 33.02)) - (stroke (width 0) (type default)) - (uuid 072e011b-f8c2-4735-942f-03e867bc79df) - ) (wire (pts (xy 149.86 105.41) (xy 163.83 105.41)) (stroke (width 0) (type default)) (uuid 0771e7e0-2114-4c69-a0f7-90ec252af06c) @@ -1656,10 +1003,6 @@ (uuid 08aa724b-6755-4af9-a891-61312f9da06a) ) - (wire (pts (xy 187.96 100.33) (xy 189.23 100.33)) - (stroke (width 0) (type default)) - (uuid 0920c123-598f-4d02-8fbc-358e3d69efb1) - ) (wire (pts (xy 236.22 44.45) (xy 247.65 44.45)) (stroke (width 0) (type default)) (uuid 0c245733-551b-41af-99a3-c9c554daf2c0) @@ -1680,22 +1023,10 @@ (stroke (width 0) (type default)) (uuid 0fa898ca-db9d-48f2-b3c0-a6723932267f) ) - (wire (pts (xy 168.91 115.57) (xy 189.23 115.57)) - (stroke (width 0) (type default)) - (uuid 1057f96c-1c88-4ff8-b8b4-5dd6b9f0fbd5) - ) - (wire (pts (xy 189.23 58.42) (xy 182.88 58.42)) - (stroke (width 0) (type default)) - (uuid 126b71f3-b53d-445c-9b3e-9d126e4291f1) - ) (wire (pts (xy 151.13 76.2) (xy 127 76.2)) (stroke (width 0) (type default)) (uuid 12d49c9c-14d0-45bc-beba-e04326c12cbd) ) - (wire (pts (xy 187.96 83.82) (xy 187.96 100.33)) - (stroke (width 0) (type default)) - (uuid 13f1ae5e-225e-43ab-8013-b371501aab2b) - ) (wire (pts (xy 167.64 19.05) (xy 167.64 113.03)) (stroke (width 0) (type default)) (uuid 14a09129-77da-4f39-98ee-f006dc3ef9fe) @@ -1713,22 +1044,14 @@ (uuid 16971af9-7986-4a50-bc06-687953cc2857) ) - (wire (pts (xy 135.255 93.98) (xy 139.7 93.98)) + (wire (pts (xy 97.155 68.58) (xy 85.09 68.58)) (stroke (width 0) (type default)) - (uuid 1aff1ae3-4386-449e-a627-185bf55bcb1c) - ) - (wire (pts (xy 170.18 118.11) (xy 189.23 118.11)) - (stroke (width 0) (type default)) - (uuid 1c1068f8-24b4-4362-b480-e04e5367b752) + (uuid 16cb8548-9e39-4eba-842c-59f7c5d08959) ) (wire (pts (xy 237.49 77.47) (xy 247.65 77.47)) (stroke (width 0) (type default)) (uuid 1f1bac8d-b64f-4d8d-b3dd-508f6997a9e7) ) - (wire (pts (xy 85.09 68.58) (xy 109.22 68.58)) - (stroke (width 0) (type default)) - (uuid 1f3434e7-32f5-40cf-9c20-71674c2c0a9d) - ) (wire (pts (xy 129.54 35.56) (xy 111.76 35.56)) (stroke (width 0) (type default)) (uuid 22b1e78b-1432-42fb-8c0a-fc98ecde5b34) @@ -1738,22 +1061,10 @@ (uuid 27e08027-036d-4311-92f8-ad5280f64b23) ) - (wire (pts (xy 182.88 82.55) (xy 182.88 125.73)) - (stroke (width 0) (type default)) - (uuid 280fb9c2-c2c6-4ecb-b012-579ac4164311) - ) (wire (pts (xy 121.92 48.26) (xy 121.92 73.66)) (stroke (width 0) (type default)) (uuid 2944112c-5a46-481b-8144-9ebf2775a9d0) ) - (wire (pts (xy 201.93 88.9) (xy 201.93 92.71)) - (stroke (width 0) (type default)) - (uuid 295ba5e0-d3af-428e-b8e1-a8a7c0e4029c) - ) - (wire (pts (xy 151.13 125.73) (xy 151.13 146.05)) - (stroke (width 0) (type default)) - (uuid 29d952d3-fc55-4d14-ada0-6512c051228d) - ) (wire (pts (xy 129.54 50.8) (xy 124.46 50.8)) (stroke (width 0) (type default)) (uuid 29f223f5-5a29-4409-86ec-f79885e3713f) @@ -1766,18 +1077,10 @@ (stroke (width 0) (type default)) (uuid 2c560aa2-18ba-4c38-8bfd-104e664c0f6f) ) - (wire (pts (xy 109.22 68.58) (xy 109.22 148.59)) - (stroke (width 0) (type default)) - (uuid 2d7b66f3-4166-443c-a5f5-c0eae1db4a95) - ) (wire (pts (xy 149.86 45.72) (xy 157.48 45.72)) (stroke (width 0) (type default)) (uuid 328381f3-58de-42d6-bfc9-29fbcfadd4bd) ) - (wire (pts (xy 187.96 66.04) (xy 187.96 73.66)) - (stroke (width 0) (type default)) - (uuid 33d6b93c-5bdf-4df4-974d-af24e1daeda8) - ) (wire (pts (xy 260.35 39.37) (xy 267.97 39.37)) (stroke (width 0) (type default)) (uuid 33eaacbe-b6b6-420b-8242-8cfea81c8bdd) @@ -1786,21 +1089,13 @@ (stroke (width 0) (type default)) (uuid 3410b729-2c60-4508-aee1-4392961a02c9) ) - (wire (pts (xy 219.71 83.82) (xy 187.96 83.82)) + (wire (pts (xy 124.46 132.08) (xy 139.7 132.08)) (stroke (width 0) (type default)) - (uuid 34dfb724-e166-48a2-889a-cb52f032fa81) + (uuid 353d1a39-dd1e-44e5-b36c-e9973881b839) ) - (wire (pts (xy 185.42 130.81) (xy 185.42 67.31)) + (wire (pts (xy 139.7 132.08) (xy 139.7 133.35)) (stroke (width 0) (type default)) - (uuid 38c2322c-cbcd-49ed-bb47-4b541bfd23da) - ) - (wire (pts (xy 33.02 81.28) (xy 49.53 81.28)) - (stroke (width 0) (type default)) - (uuid 38cd334a-b33a-4e79-8005-d7d2f924e7a0) - ) - (wire (pts (xy 189.23 130.81) (xy 185.42 130.81)) - (stroke (width 0) (type default)) - (uuid 39ba98f6-7a12-445c-b60e-9f02dd9227d0) + (uuid 384510f7-b8e3-4ae7-9513-52f1e4a1676f) ) (wire (pts (xy 241.3 31.75) (xy 241.3 24.13)) (stroke (width 0) (type default)) @@ -1810,7 +1105,7 @@ (stroke (width 0) (type default)) (uuid 3bf8b58d-6af1-409c-9477-8d8baf9b06b0) ) - (bus (pts (xy 30.48 16.51) (xy 30.48 66.04)) + (bus (pts (xy 27.305 16.51) (xy 27.305 78.74)) (stroke (width 0) (type default)) (uuid 3d847ffd-4310-41a5-a864-929bd9c3939d) ) @@ -1819,37 +1114,12 @@ (stroke (width 0) (type default)) (uuid 3dd73a91-6a79-4fc2-800f-b2b7331e8aa8) ) - (bus (pts (xy 30.48 66.04) (xy 30.48 68.58)) - (stroke (width 0) (type default)) - (uuid 3e08fd4a-b764-4107-87e7-a932077e2470) - ) - - (wire (pts (xy 187.96 73.66) (xy 201.93 73.66)) - (stroke (width 0) (type default)) - (uuid 3e27a694-332e-46d9-97e3-7a028e6e362d) - ) (bus (pts (xy 233.68 16.51) (xy 270.51 16.51)) (stroke (width 0) (type default)) (uuid 3f544771-3ded-4d81-ab35-7b008df4645f) ) - (wire (pts (xy 151.13 146.05) (xy 116.84 146.05)) - (stroke (width 0) (type default)) - (uuid 3f5a1c2c-8603-4be8-902d-d6fd1b7247c8) - ) - (wire (pts (xy 187.96 33.02) (xy 189.23 33.02)) - (stroke (width 0) (type default)) - (uuid 4001570c-38be-4894-9ba6-98d4f8d09507) - ) - (wire (pts (xy 124.46 93.98) (xy 130.175 93.98)) - (stroke (width 0) (type default)) - (uuid 4022e5d1-97d0-4b63-84cd-89063a34293f) - ) - (wire (pts (xy 33.02 73.66) (xy 49.53 73.66)) - (stroke (width 0) (type default)) - (uuid 40ac3ff1-f921-400e-a1c2-1ee1164c6470) - ) - (wire (pts (xy 119.38 40.64) (xy 119.38 67.31)) + (wire (pts (xy 119.38 40.64) (xy 119.38 78.74)) (stroke (width 0) (type default)) (uuid 40b1bed2-3cb4-40c4-8a4c-162c5d528646) ) @@ -1870,7 +1140,7 @@ (stroke (width 0) (type default)) (uuid 44284319-2dbf-46b7-b1ff-6825072caee8) ) - (wire (pts (xy 33.02 68.58) (xy 49.53 68.58)) + (wire (pts (xy 29.845 81.28) (xy 49.53 81.28)) (stroke (width 0) (type default)) (uuid 450f84bd-95fe-4777-84b7-d6fa8262aa49) ) @@ -1882,14 +1152,6 @@ (stroke (width 0) (type default)) (uuid 4856312a-9831-4412-8ed1-587c04aa8af7) ) - (wire (pts (xy 124.46 50.8) (xy 124.46 81.28)) - (stroke (width 0) (type default)) - (uuid 4a17fbad-838e-4f3d-abf9-90cf4dad1300) - ) - (wire (pts (xy 142.24 83.82) (xy 142.24 80.01)) - (stroke (width 0) (type default)) - (uuid 4a69f2e0-ab47-4783-aaf9-3722cf78cdb6) - ) (wire (pts (xy 127 76.2) (xy 127 102.87)) (stroke (width 0) (type default)) (uuid 4a7eac4c-aef5-4658-8394-5f468b99102e) @@ -1911,10 +1173,6 @@ (stroke (width 0) (type default)) (uuid 4cd39945-c9da-4fed-97df-ae81f5ae1751) ) - (wire (pts (xy 158.75 48.26) (xy 189.23 48.26)) - (stroke (width 0) (type default)) - (uuid 4e0632bc-5e43-466a-8338-aed7e604bb2f) - ) (bus (pts (xy 233.68 46.99) (xy 233.68 49.53)) (stroke (width 0) (type default)) (uuid 4f617950-1c68-4b41-815f-f0e4a12a7f7d) @@ -1928,10 +1186,6 @@ (stroke (width 0) (type default)) (uuid 52062713-76dc-4552-8370-6c86e2a4770e) ) - (wire (pts (xy 124.46 81.28) (xy 124.46 93.98)) - (stroke (width 0) (type default)) - (uuid 53344c42-e9bf-4e05-ae81-38fe5336da39) - ) (bus (pts (xy 158.75 16.51) (xy 160.02 16.51)) (stroke (width 0) (type default)) (uuid 5437f249-1cf5-4d53-8735-c945bec113e3) @@ -1941,27 +1195,14 @@ (uuid 544af667-cd5d-450c-a430-8c2528a87844) ) - (wire (pts (xy 152.4 35.56) (xy 189.23 35.56)) - (stroke (width 0) (type default)) - (uuid 548bbaff-500a-4f15-ac6b-eb271507d820) - ) (wire (pts (xy 157.48 19.05) (xy 157.48 45.72)) (stroke (width 0) (type default)) (uuid 55a519d2-f793-4c07-b4fd-6bcce076ac7e) ) - (wire (pts (xy 154.94 40.64) (xy 189.23 40.64)) - (stroke (width 0) (type default)) - (uuid 56206465-f20e-434d-9804-d9a670503acf) - ) (bus (pts (xy 171.45 16.51) (xy 172.72 16.51)) (stroke (width 0) (type default)) (uuid 56b1cf1f-6220-4664-9dee-fd307698b538) ) - - (wire (pts (xy 165.1 107.95) (xy 189.23 107.95)) - (stroke (width 0) (type default)) - (uuid 56e7149d-d1ce-4c55-a735-4832ae05b177) - ) (bus (pts (xy 154.94 16.51) (xy 156.21 16.51)) (stroke (width 0) (type default)) (uuid 598538d9-8b5d-431c-b7d8-5395df510a6e) @@ -1975,15 +1216,7 @@ (stroke (width 0) (type default)) (uuid 5ab17b3a-33fe-4cfb-8d76-8cbd61b08546) ) - (wire (pts (xy 187.96 142.24) (xy 201.93 142.24)) - (stroke (width 0) (type default)) - (uuid 5afc460c-c4ed-489e-9a8f-07467b35f872) - ) - (wire (pts (xy 162.56 102.87) (xy 189.23 102.87)) - (stroke (width 0) (type default)) - (uuid 5c99ae97-deea-44f0-9393-bd3fb80f2c04) - ) - (bus (pts (xy 154.94 16.51) (xy 30.48 16.51)) + (bus (pts (xy 154.94 16.51) (xy 104.775 16.51)) (stroke (width 0) (type default)) (uuid 5f305b79-e25d-4f7d-8d51-f7232ea14b3c) ) @@ -1996,14 +1229,6 @@ (stroke (width 0) (type default)) (uuid 61af5858-4b83-44a6-94a5-87327e909619) ) - (wire (pts (xy 182.88 125.73) (xy 189.23 125.73)) - (stroke (width 0) (type default)) - (uuid 61b2c501-7bc7-4028-95a5-3df5abefb09b) - ) - (wire (pts (xy 161.29 53.34) (xy 189.23 53.34)) - (stroke (width 0) (type default)) - (uuid 61fc4a9a-ee81-412e-9c26-c343ec5f50fd) - ) (bus (pts (xy 233.68 59.69) (xy 233.68 62.23)) (stroke (width 0) (type default)) (uuid 62e4ea24-1797-41e4-a092-7043cc58b5ca) @@ -2013,30 +1238,14 @@ (stroke (width 0) (type default)) (uuid 630eb79f-9cc8-49ba-b7f6-1ef019141851) ) - (wire (pts (xy 119.38 67.31) (xy 185.42 67.31)) - (stroke (width 0) (type default)) - (uuid 6704c38b-a7d7-4bc2-b0ae-a621c3e4da5e) - ) - (wire (pts (xy 158.75 82.55) (xy 182.88 82.55)) - (stroke (width 0) (type default)) - (uuid 67eb0f3b-d6af-463a-a244-2eef85992792) - ) - (wire (pts (xy 142.24 85.09) (xy 142.24 83.82)) - (stroke (width 0) (type default)) - (uuid 695bde8f-3e47-466a-94c0-7e6ebace292b) - ) (bus (pts (xy 165.1 16.51) (xy 166.37 16.51)) (stroke (width 0) (type default)) (uuid 69aba57d-2655-42ab-adc8-b2fa1c8c5289) ) - (wire (pts (xy 121.92 83.82) (xy 121.92 115.57)) + (wire (pts (xy 99.695 19.05) (xy 99.695 81.28)) (stroke (width 0) (type default)) - (uuid 6c49db92-231a-4809-9be9-2c4273392953) - ) - (wire (pts (xy 214.63 33.02) (xy 219.71 33.02)) - (stroke (width 0) (type default)) - (uuid 6d22a4d7-3a96-425b-8218-813bf203abd8) + (uuid 6de622b9-fe10-4495-9704-ec5c011b3264) ) (bus (pts (xy 167.64 16.51) (xy 168.91 16.51)) (stroke (width 0) (type default)) @@ -2047,18 +1256,6 @@ (stroke (width 0) (type default)) (uuid 70bbe383-02b4-4b47-855a-03893c957bef) ) - (wire (pts (xy 160.02 50.8) (xy 189.23 50.8)) - (stroke (width 0) (type default)) - (uuid 71012a63-26b2-4aaa-a3c2-3f340bdb96a1) - ) - (wire (pts (xy 234.95 100.33) (xy 234.95 148.59)) - (stroke (width 0) (type default)) - (uuid 71d2831e-053d-474b-b80e-0e2e30545ca1) - ) - (wire (pts (xy 156.21 43.18) (xy 189.23 43.18)) - (stroke (width 0) (type default)) - (uuid 72ca9d61-72bd-417c-8225-3446989f0c60) - ) (bus (pts (xy 161.29 16.51) (xy 162.56 16.51)) (stroke (width 0) (type default)) (uuid 72de6e38-c3a1-416d-87eb-635c69b0c3d4) @@ -2076,10 +1273,6 @@ (stroke (width 0) (type default)) (uuid 75624970-4b05-4753-b873-583aaabad8b4) ) - (wire (pts (xy 182.88 58.42) (xy 182.88 82.55)) - (stroke (width 0) (type default)) - (uuid 758c1a24-9659-4d40-96b4-8d91e0926209) - ) (wire (pts (xy 129.54 40.64) (xy 119.38 40.64)) (stroke (width 0) (type default)) (uuid 75a83827-1e5b-4134-968b-b171cc17637e) @@ -2102,10 +1295,6 @@ (uuid 78b651d5-ea09-42f5-9f68-b1fb8be93762) ) - (wire (pts (xy 201.93 73.66) (xy 201.93 76.2)) - (stroke (width 0) (type default)) - (uuid 7abda411-4d7b-4fd0-a1f3-a139523f4771) - ) (wire (pts (xy 149.86 58.42) (xy 151.13 58.42)) (stroke (width 0) (type default)) (uuid 7b563844-27c1-40de-975c-224b44ad9b87) @@ -2114,14 +1303,6 @@ (stroke (width 0) (type default)) (uuid 7c0d2108-152b-426f-a2b5-06b48f183690) ) - (wire (pts (xy 214.63 100.33) (xy 234.95 100.33)) - (stroke (width 0) (type default)) - (uuid 7d4405c9-f164-4dda-b375-7dbfa98c0aa3) - ) - (wire (pts (xy 234.95 148.59) (xy 109.22 148.59)) - (stroke (width 0) (type default)) - (uuid 7f305f58-6af7-445f-9495-fd675a9eb193) - ) (wire (pts (xy 128.27 95.25) (xy 139.7 95.25)) (stroke (width 0) (type default)) (uuid 7f5766cb-5c16-4b26-85b5-481aedac0b46) @@ -2151,27 +1332,14 @@ (stroke (width 0) (type default)) (uuid 858d3775-5b7b-46dc-b950-9c1fabf245ad) ) - (wire (pts (xy 142.24 80.01) (xy 143.51 80.01)) - (stroke (width 0) (type default)) - (uuid 85b6425f-8ce3-4f77-ab9b-f74ec93295f0) - ) (wire (pts (xy 227.33 77.47) (xy 227.33 73.66)) (stroke (width 0) (type default)) (uuid 8600eb6e-7848-42b3-91c9-844d555ecaf4) ) - (wire (pts (xy 139.7 92.71) (xy 139.7 93.98)) - (stroke (width 0) (type default)) - (uuid 887c0bd8-8134-44aa-be9f-0b65cb677659) - ) (wire (pts (xy 236.22 54.61) (xy 247.65 54.61)) (stroke (width 0) (type default)) (uuid 898073a3-01db-4bba-a54f-8bf4873962b9) ) - (bus (pts (xy 30.48 71.12) (xy 30.48 76.2)) - (stroke (width 0) (type default)) - (uuid 8a66ad52-1fc3-4a7e-8c26-3fa78f79d5a4) - ) - (wire (pts (xy 236.22 67.31) (xy 247.65 67.31)) (stroke (width 0) (type default)) (uuid 8a791d61-68a9-42ba-9972-17389c04fda2) @@ -2207,7 +1375,7 @@ (uuid 952fa369-c65d-4077-bf65-a413944519b4) ) - (wire (pts (xy 121.92 73.66) (xy 121.92 83.82)) + (wire (pts (xy 121.92 73.66) (xy 121.92 115.57)) (stroke (width 0) (type default)) (uuid 956a5ca7-8d46-46fe-a899-8c96814ea3af) ) @@ -2219,53 +1387,28 @@ (stroke (width 0) (type default)) (uuid 9756bae7-3344-4cec-9830-c17378c72d31) ) - (wire (pts (xy 189.23 133.35) (xy 187.96 133.35)) + (wire (pts (xy 102.235 19.05) (xy 102.235 81.28)) (stroke (width 0) (type default)) - (uuid 98bc95ca-ba85-4282-a9b4-6e299b445d76) + (uuid 99b3ec19-213c-4fa4-88cf-2755de59f0a3) ) (bus (pts (xy 170.18 16.51) (xy 171.45 16.51)) (stroke (width 0) (type default)) (uuid 9c7c3dbf-23e4-4ef1-93f1-5e610e8ce36f) ) - - (wire (pts (xy 33.02 78.74) (xy 49.53 78.74)) - (stroke (width 0) (type default)) - (uuid 9d1b454b-4895-443c-8648-4a64941d3728) - ) - (wire (pts (xy 167.64 113.03) (xy 189.23 113.03)) - (stroke (width 0) (type default)) - (uuid 9eb4b7e2-a6df-40c6-be75-6b7d44d944a6) - ) - (wire (pts (xy 187.96 133.35) (xy 187.96 142.24)) - (stroke (width 0) (type default)) - (uuid a0c4970a-d536-4ae9-a361-c13870d58357) - ) - (wire (pts (xy 85.09 81.28) (xy 124.46 81.28)) - (stroke (width 0) (type default)) - (uuid a1ea5c09-4c75-4dae-8dc3-e79d08f833d6) - ) - (bus (pts (xy 30.48 68.58) (xy 30.48 71.12)) - (stroke (width 0) (type default)) - (uuid a3b3fe94-b405-4071-8422-3e97c8572913) - ) (bus (pts (xy 233.68 52.07) (xy 233.68 54.61)) (stroke (width 0) (type default)) (uuid ab9bfc1c-03e7-4cb8-b0fe-6d9f93bc4ce4) ) - (bus (pts (xy 30.48 76.2) (xy 30.48 78.74)) + (bus (pts (xy 99.695 16.51) (xy 41.275 16.51)) (stroke (width 0) (type default)) - (uuid ad158081-8c1e-45b6-b788-7da7ca08dcc7) + (uuid af7cd60d-d4c8-45b1-97da-a6947b3464aa) ) (wire (pts (xy 166.37 19.05) (xy 166.37 110.49)) (stroke (width 0) (type default)) (uuid afb97c4b-2d09-43ee-b03c-187138cbc17b) ) - (wire (pts (xy 149.86 125.73) (xy 151.13 125.73)) - (stroke (width 0) (type default)) - (uuid b07a33e4-ff5f-4150-941f-9957f7f4ad92) - ) - (wire (pts (xy 124.46 93.98) (xy 124.46 118.11)) + (wire (pts (xy 124.46 50.8) (xy 124.46 118.11)) (stroke (width 0) (type default)) (uuid b23c02b7-3ede-4e10-a862-30e78ccae497) ) @@ -2274,26 +1417,14 @@ (uuid b39d2a73-a9b0-45f5-bf29-ea2abc69049b) ) - (wire (pts (xy 201.93 142.24) (xy 201.93 143.51)) - (stroke (width 0) (type default)) - (uuid b6057350-bc82-47a2-ba8e-2b83975958e9) - ) (wire (pts (xy 85.09 78.74) (xy 119.38 78.74)) (stroke (width 0) (type default)) (uuid b68a1281-a7e5-4a73-9be7-1e2404b0e627) ) - (wire (pts (xy 219.71 33.02) (xy 219.71 83.82)) - (stroke (width 0) (type default)) - (uuid b70db388-d936-4723-9dba-023e6c7effd7) - ) (wire (pts (xy 128.27 110.49) (xy 128.27 95.25)) (stroke (width 0) (type default)) (uuid b7d08660-7be5-4d9f-aeff-42b7506fc96f) ) - (wire (pts (xy 185.42 67.31) (xy 185.42 63.5)) - (stroke (width 0) (type default)) - (uuid b7d8cc7c-abb1-42ec-a4be-e136689cd59d) - ) (wire (pts (xy 139.7 29.21) (xy 139.7 30.48)) (stroke (width 0) (type default)) (uuid b86d9330-57d2-4562-8975-3a83311fd4f2) @@ -2302,13 +1433,17 @@ (stroke (width 0) (type default)) (uuid b8d9d20c-149c-4dd6-a8df-1d4650429166) ) + (wire (pts (xy 124.46 118.11) (xy 124.46 132.08)) + (stroke (width 0) (type default)) + (uuid b923874c-a7d5-4f50-ae53-0791920ed13b) + ) (wire (pts (xy 149.86 102.87) (xy 162.56 102.87)) (stroke (width 0) (type default)) (uuid b9e7206a-8971-41eb-99e7-76e4616ebebe) ) - (wire (pts (xy 116.84 25.4) (xy 187.96 25.4)) + (wire (pts (xy 97.155 19.05) (xy 97.155 68.58)) (stroke (width 0) (type default)) - (uuid bb41a215-c0f2-4acd-ad74-bfd362b91a0e) + (uuid ba9d7310-1fa4-423f-9d85-4ee4d5551795) ) (bus (pts (xy 163.83 16.51) (xy 165.1 16.51)) (stroke (width 0) (type default)) @@ -2319,10 +1454,6 @@ (stroke (width 0) (type default)) (uuid bb8293c6-71ff-4a0a-b927-89546f149f96) ) - (wire (pts (xy 33.02 71.12) (xy 49.53 71.12)) - (stroke (width 0) (type default)) - (uuid bcb955f4-79df-4c8f-9f4d-e72303603cad) - ) (wire (pts (xy 162.56 19.05) (xy 162.56 102.87)) (stroke (width 0) (type default)) (uuid bf6a430c-f11c-4490-9bc1-4e1486d6f262) @@ -2340,30 +1471,14 @@ (uuid c3c34c5f-0f92-42fe-9d47-538028e1661d) ) - (wire (pts (xy 201.93 21.59) (xy 201.93 25.4)) - (stroke (width 0) (type default)) - (uuid c4869488-c7c2-48ba-beca-6f8c43cd7ac5) - ) (wire (pts (xy 236.22 62.23) (xy 247.65 62.23)) (stroke (width 0) (type default)) (uuid c4b82746-ad1b-461f-99e5-b83b98d91392) ) - (wire (pts (xy 143.51 85.09) (xy 142.24 85.09)) - (stroke (width 0) (type default)) - (uuid c538014e-7a4b-4dec-b0a2-fe722945312c) - ) (wire (pts (xy 260.35 41.91) (xy 267.97 41.91)) (stroke (width 0) (type default)) (uuid c6acb0c7-e788-4c28-814a-53b33a4f7b6c) ) - (wire (pts (xy 157.48 45.72) (xy 189.23 45.72)) - (stroke (width 0) (type default)) - (uuid c77abb8e-3804-4068-8003-2e2accbe8c71) - ) - (wire (pts (xy 201.93 140.97) (xy 201.93 142.24)) - (stroke (width 0) (type default)) - (uuid ca225e0a-c7e3-4f78-a6f8-7e68ee4241f9) - ) (bus (pts (xy 270.51 36.83) (xy 270.51 39.37)) (stroke (width 0) (type default)) (uuid cadc6953-7ee4-4e5a-9d89-313f735a1dd5) @@ -2373,6 +1488,10 @@ (stroke (width 0) (type default)) (uuid cb016fc9-e03c-4ee7-9cd4-6e1d67006f8b) ) + (bus (pts (xy 102.235 16.51) (xy 99.695 16.51)) + (stroke (width 0) (type default)) + (uuid cc8ea9ad-18d4-472b-9d61-732b4e58a7ad) + ) (bus (pts (xy 270.51 44.45) (xy 270.51 46.99)) (stroke (width 0) (type default)) (uuid cdccbb2f-d4f8-4f3e-9db7-c7668080c736) @@ -2382,10 +1501,6 @@ (stroke (width 0) (type default)) (uuid d02755c3-daa4-428d-8fed-cb309172de6d) ) - (wire (pts (xy 116.84 146.05) (xy 116.84 25.4)) - (stroke (width 0) (type default)) - (uuid d07b17ec-018a-41cf-b8b1-301d10c479b4) - ) (bus (pts (xy 270.51 16.51) (xy 270.51 29.21)) (stroke (width 0) (type default)) (uuid d07e24dc-cf69-4c2e-a867-aea8ff920e2a) @@ -2403,14 +1518,14 @@ (stroke (width 0) (type default)) (uuid d3174002-3aae-4062-acfa-776c0c714044) ) - (wire (pts (xy 166.37 110.49) (xy 189.23 110.49)) - (stroke (width 0) (type default)) - (uuid d3d50f34-4e18-4e71-bbe8-271c6763f9b8) - ) (wire (pts (xy 168.91 19.05) (xy 168.91 115.57)) (stroke (width 0) (type default)) (uuid d5c213df-7251-488b-83c1-4c37b1c9921c) ) + (wire (pts (xy 38.735 19.05) (xy 38.735 31.75)) + (stroke (width 0) (type default)) + (uuid d741d4e9-1df7-4c00-9af5-29645a8dd43b) + ) (wire (pts (xy 149.86 50.8) (xy 160.02 50.8)) (stroke (width 0) (type default)) (uuid d96580a0-7391-4b50-ac61-b91346a13d8a) @@ -2419,6 +1534,10 @@ (stroke (width 0) (type default)) (uuid d974b4e7-21bd-42cc-8747-4a5d30842abb) ) + (bus (pts (xy 41.275 16.51) (xy 27.305 16.51)) + (stroke (width 0) (type default)) + (uuid db7b20e4-a3f5-4355-a68f-ce2f207d6445) + ) (wire (pts (xy 163.83 19.05) (xy 163.83 105.41)) (stroke (width 0) (type default)) @@ -2428,13 +1547,9 @@ (stroke (width 0) (type default)) (uuid dd19f84c-6e72-4ae9-8adb-e10fe829af86) ) - (wire (pts (xy 189.23 63.5) (xy 185.42 63.5)) + (wire (pts (xy 102.235 81.28) (xy 99.695 81.28)) (stroke (width 0) (type default)) - (uuid de1f75da-1b65-4d91-83ba-b8b682ee88e4) - ) - (wire (pts (xy 163.83 105.41) (xy 189.23 105.41)) - (stroke (width 0) (type default)) - (uuid dffcc4cf-7bca-4c05-a09f-79233ac6da36) + (uuid e11abb22-263d-40e3-a0c6-806f0e710f79) ) (wire (pts (xy 236.22 49.53) (xy 247.65 49.53)) (stroke (width 0) (type default)) @@ -2456,10 +1571,6 @@ (stroke (width 0) (type default)) (uuid edaabca9-ace4-4daa-9307-c657be33df49) ) - (wire (pts (xy 121.92 83.82) (xy 142.24 83.82)) - (stroke (width 0) (type default)) - (uuid ef910863-46dd-4792-857e-00a5cb298dc0) - ) (bus (pts (xy 233.68 54.61) (xy 233.68 57.15)) (stroke (width 0) (type default)) (uuid efb49574-8185-4ca1-b4a5-9eec23eb3950) @@ -2468,17 +1579,12 @@ (stroke (width 0) (type default)) (uuid f0a8a60b-b044-41ac-86fd-599b99f12b48) ) - - (wire (pts (xy 171.45 120.65) (xy 189.23 120.65)) - (stroke (width 0) (type default)) - (uuid f0bd7e49-513e-4e66-9683-a7ec6895551e) - ) (bus (pts (xy 168.91 16.51) (xy 170.18 16.51)) (stroke (width 0) (type default)) (uuid f14cd3b9-1017-4c93-9988-b91644306098) ) - (wire (pts (xy 139.7 93.98) (xy 139.7 95.25)) + (wire (pts (xy 139.7 92.71) (xy 139.7 95.25)) (stroke (width 0) (type default)) (uuid f2240802-3276-4d5d-a358-e8b866c8b1e0) ) @@ -2499,17 +1605,13 @@ (uuid f8096887-f5aa-4452-82e0-f3f2e1680ea7) ) - (wire (pts (xy 153.67 38.1) (xy 189.23 38.1)) - (stroke (width 0) (type default)) - (uuid f968b1fb-1ec7-435a-b1cb-dc389b491009) - ) - (wire (pts (xy 139.7 130.81) (xy 139.7 133.35)) + (wire (pts (xy 139.7 130.81) (xy 139.7 132.08)) (stroke (width 0) (type default)) (uuid fca43740-c1e6-42d7-b3a8-269711f6009c) ) - (wire (pts (xy 189.23 66.04) (xy 187.96 66.04)) + (bus (pts (xy 104.775 16.51) (xy 102.235 16.51)) (stroke (width 0) (type default)) - (uuid fdcae861-9b64-4ca9-8d7e-4c40c7e4b051) + (uuid fdeaac72-155f-4b9e-a1fc-865ab9fd6865) ) (label "DISP.DB2" (at 260.35 36.83 0) (fields_autoplaced) @@ -2524,10 +1626,18 @@ (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid 20d6b969-944f-472a-8732-dbf374884ed5) ) + (label "DISP.RS" (at 97.155 57.785 90) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 210638fc-1982-4b7f-b298-69b36d3096ac) + ) (label "DISP.DB13" (at 168.91 115.57 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 24d3956b-607f-42bf-b045-72159f07894e) ) + (label "DISP.RD" (at 38.735 31.75 0) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 2bb4ee66-2fb2-4358-a17e-a477531d23ce) + ) (label "DISP.DB14" (at 236.22 62.23 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 34fd5b3c-d4f8-4be2-b02d-652d6adb7ba8) @@ -2540,6 +1650,10 @@ (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 3a7f8ba2-9c8d-4b2d-9d2b-22fad07dc7c0) ) + (label "DISP.CS" (at 99.695 57.785 90) + (effects (font (size 1.27 1.27)) (justify left bottom)) + (uuid 3f87e176-2b72-4f49-941f-cf9c5ea215c7) + ) (label "DISP.DB5" (at 158.75 48.26 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 407d03a7-843f-4c5a-8814-cd0a304b1756) @@ -2552,13 +1666,9 @@ (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 503ba41b-d7bf-4ae0-8d42-5b6620c84eee) ) - (label "DISP.WR" (at 49.53 78.74 180) + (label "DISP.WR" (at 102.235 50.165 270) (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 56d294dc-348c-4eb2-ae34-4133a5898657) - ) - (label "DISP.RD" (at 49.53 73.66 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 58650acb-70bb-4f7a-a524-c1f238f9338e) + (uuid 537fb2ba-6246-430f-8bea-621922b7036a) ) (label "DISP.DB0" (at 260.35 31.75 0) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify left bottom)) @@ -2576,10 +1686,6 @@ (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 651ff7fc-8e8f-4176-a990-7f693e0e0414) ) - (label "DISP.RS" (at 49.53 81.28 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid 663721c3-2b13-490c-86a1-010b0172887c) - ) (label "DISP.DB14" (at 170.18 118.11 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid 7169688a-e4cc-4b6b-bcc9-2e474db1143c) @@ -2656,10 +1762,6 @@ (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid cd4fc5de-de33-4b05-85cd-c98d98d21a77) ) - (label "DISP.CS" (at 49.53 71.12 180) - (effects (font (size 1.27 1.27)) (justify right bottom)) - (uuid cdfef98d-3979-4186-9b9a-ec245205b3da) - ) (label "DISP.DB7" (at 161.29 53.34 0) (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid d105ebac-4c4e-4f6e-9c63-76dbcf1538d1) @@ -2672,7 +1774,7 @@ (effects (font (size 1.27 1.27)) (justify left bottom)) (uuid d51a360b-f6f6-44fe-8640-29369e8fb923) ) - (label "DISP.REST" (at 49.53 68.58 180) + (label "DISP.REST" (at 46.355 81.28 180) (effects (font (size 1.27 1.27)) (justify right bottom)) (uuid d9cd6fde-3203-4295-8c2d-480edf87be2d) ) @@ -2710,134 +1812,6 @@ ) ) - (symbol (lib_id "power:+3V3") (at 201.93 88.9 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid 26c018a5-1dec-419a-a1f3-32af7b131051) - (property "Reference" "#PWR011" (at 201.93 92.71 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3V3" (at 201.93 83.82 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 201.93 88.9 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (at 201.93 88.9 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 9c0b33ac-c139-47af-82e1-4dc87506c7e8)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "#PWR011") (unit 1) - ) - ) - ) - ) - - (symbol (lib_id "74xx:74LS00") (at 151.13 82.55 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid 27701ab9-4629-4614-af1c-b867e3184d55) - (property "Reference" "U6" (at 151.1217 73.66 0) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "74LS00" (at 151.1217 76.2 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 151.13 82.55 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "http://www.ti.com/lit/gpn/sn74ls00" (at 151.13 82.55 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 0fb53087-4f64-41e7-bf56-47485df77f5f)) - (pin "2" (uuid 2e01bba2-5957-4f19-a735-92c495f9ab3c)) - (pin "3" (uuid 10f8bc01-3cac-43fd-b2ce-64e165afaaa4)) - (pin "4" (uuid df7f441f-9efa-4e0a-9233-2ff6a899e54c)) - (pin "5" (uuid d709eb98-a182-492e-9b74-f43624fa1052)) - (pin "6" (uuid 6c7333e6-5bc5-4943-9d6e-27f6360528b9)) - (pin "10" (uuid 1d7771e9-03b2-4909-b9e9-6b6b178b9ab4)) - (pin "8" (uuid c99493ee-aadb-4cb4-a278-e14f0c416d9e)) - (pin "9" (uuid af668985-8401-4baf-8ad2-622450170ba4)) - (pin "11" (uuid f7a1e9aa-c6c8-42f5-ac8d-f1fed65f23f3)) - (pin "12" (uuid f1dcb451-187a-4704-b20f-64d822cf835f)) - (pin "13" (uuid cb7bdd6f-74b7-4040-9cc1-242334109bed)) - (pin "14" (uuid 95b2da34-4894-4d2e-9cad-c68e5de9d03a)) - (pin "7" (uuid 5ed14bf3-dac7-4fc4-89e2-6984c40267f1)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "U6") (unit 1) - ) - ) - ) - ) - - (symbol (lib_id "power:+3V3") (at 201.93 21.59 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid 38767afb-83df-4230-bdc7-a0d7eb73b913) - (property "Reference" "#PWR010" (at 201.93 25.4 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+3V3" (at 201.93 16.51 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 201.93 21.59 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (at 201.93 21.59 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8e78858b-5a3d-46bf-a4de-a00c5be82207)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "#PWR010") (unit 1) - ) - ) - ) - ) - - (symbol (lib_id "74xx:74HC165") (at 201.93 48.26 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid 392f20a1-faf7-4b49-ac37-24bf3668eb21) - (property "Reference" "U1" (at 203.8859 25.4 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "74HC165" (at 203.8859 27.94 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (at 201.93 48.26 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT165.pdf" (at 201.93 48.26 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid fa4223e2-c5b0-484a-840d-e10b701abcc1)) - (pin "10" (uuid e08c05e5-a7ba-426e-95ec-6cc7da841a88)) - (pin "11" (uuid b1103d6b-2aba-468c-8e7b-99325b256092)) - (pin "12" (uuid 4665dcd1-850f-4b50-89fc-636b59da234c)) - (pin "13" (uuid 93e9c9d9-0aef-44a4-b47e-e96b94bbd7b0)) - (pin "14" (uuid 99c878af-d7c2-4ef0-a816-7f6a728d9656)) - (pin "15" (uuid c703dace-32f4-4420-8fdc-11bb8cf18f5e)) - (pin "16" (uuid 294bd848-4ce3-42bb-9ebf-c57dc4809942)) - (pin "2" (uuid d24f9769-5fde-49c2-9063-8573d25b58f8)) - (pin "3" (uuid bd28b3db-afba-43a3-b72b-2aa998d1a464)) - (pin "4" (uuid 1eaae596-7564-490d-850e-25c436934515)) - (pin "5" (uuid 41d549d0-4cee-48c7-a3a8-03351c3f4eb1)) - (pin "6" (uuid ba61db77-98de-4a3c-97bf-b4befd5426ff)) - (pin "7" (uuid 36a29932-9d8f-4445-9a76-99ae9a27b3f5)) - (pin "8" (uuid f05bafaa-8b5f-427f-aa58-4315408edeb7)) - (pin "9" (uuid 4df067eb-58ee-449e-a231-9b58158fc8a4)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "U1") (unit 1) - ) - ) - ) - ) - (symbol (lib_id "74xx:74HC595") (at 139.7 113.03 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid 40b9c8c9-01e4-4e00-bdbb-c2dcf4bf2442) @@ -2878,72 +1852,6 @@ ) ) - (symbol (lib_id "Device:R_Small") (at 132.715 93.98 90) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid 4290d382-8213-4eb4-a664-59e078c577db) - (property "Reference" "R2" (at 132.715 88.9 90) - (effects (font (size 1.27 1.27))) - ) - (property "Value" "R_Small" (at 132.715 91.44 90) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 132.715 93.98 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "~" (at 132.715 93.98 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 8a7a5b10-5ca4-4c17-bccb-598c93803a75)) - (pin "2" (uuid a9dcea01-ffa0-41be-bd19-740f04ba8f0d)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "R2") (unit 1) - ) - ) - ) - ) - - (symbol (lib_id "74xx:74HC165") (at 201.93 115.57 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid 9922a0ec-771d-4a69-97a8-62904b955bfd) - (property "Reference" "U3" (at 203.8859 92.71 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Value" "74HC165" (at 203.8859 95.25 0) - (effects (font (size 1.27 1.27)) (justify left)) - ) - (property "Footprint" "" (at 201.93 115.57 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC_HCT165.pdf" (at 201.93 115.57 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid f245afc0-43dd-47fe-b41e-d46e1727ee90)) - (pin "10" (uuid 77c1064a-59b8-4b65-b8cf-a3f9611eb83b)) - (pin "11" (uuid 2da36cb5-4388-4c72-b413-0f3ff7668b14)) - (pin "12" (uuid b8a37f81-c362-4b69-aaa6-e8e2d98faf45)) - (pin "13" (uuid 2916a11a-7e1d-4566-8e18-9daf1e47bde9)) - (pin "14" (uuid 33fe0899-fd5b-48fb-a68d-5a0ebd823787)) - (pin "15" (uuid 1cc88427-a48f-411f-be85-76ebe09d557c)) - (pin "16" (uuid f4142b45-1c76-435e-a765-b0db0393206d)) - (pin "2" (uuid 439c9452-a1d4-41f0-9aa6-91af0ffcd460)) - (pin "3" (uuid 6df43dfa-8ac4-4b01-a548-6fef51b5fd44)) - (pin "4" (uuid 9e18b7d5-82ab-4ecc-a840-89f41c67c030)) - (pin "5" (uuid 79df9764-4269-4b0a-9aad-6ec5035ff5ab)) - (pin "6" (uuid 8e05fd0d-fce6-4cf0-8023-80932ccb4bb3)) - (pin "7" (uuid f66da262-dcf3-461c-90bb-9c3f1263235c)) - (pin "8" (uuid 7ee81343-14e6-4317-9e7a-0b9031774a8a)) - (pin "9" (uuid ac17c71b-12a6-4b87-835b-a7bceba08951)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "U3") (unit 1) - ) - ) - ) - ) - (symbol (lib_id "power:+3V3") (at 229.87 31.75 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid 9dd974cc-97ff-4817-8331-60d058f5e666) @@ -3009,31 +1917,6 @@ ) ) - (symbol (lib_id "power:GND") (at 201.93 143.51 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid a54ecccc-84df-4460-9aea-86432666f6da) - (property "Reference" "#PWR08" (at 201.93 149.86 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "GND" (at 201.93 148.59 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 201.93 143.51 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (at 201.93 143.51 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 2cfd9c16-af40-4f6f-b722-4a11975e98e2)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "#PWR08") (unit 1) - ) - ) - ) - ) - (symbol (lib_id "power:GND") (at 139.7 133.35 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid b20ec0a8-607d-45d6-946b-77ef826175c5) @@ -3176,26 +2059,26 @@ ) ) - (symbol (lib_id "power:GND") (at 201.93 76.2 0) (unit 1) + (symbol (lib_id "power:+3V3") (at 38.735 31.75 180) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid e2eee0bc-3ce5-495f-a512-ed9147e35719) - (property "Reference" "#PWR07" (at 201.93 82.55 0) + (uuid d375eaec-1d5a-4ac4-80bb-957d905d346e) + (property "Reference" "#PWR012" (at 38.735 27.94 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "GND" (at 201.93 81.28 0) + (property "Value" "+3V3" (at 38.735 36.83 0) (effects (font (size 1.27 1.27))) ) - (property "Footprint" "" (at 201.93 76.2 0) + (property "Footprint" "" (at 38.735 31.75 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (at 201.93 76.2 0) + (property "Datasheet" "" (at 38.735 31.75 0) (effects (font (size 1.27 1.27)) hide) ) - (pin "1" (uuid da148831-99a9-463d-b1a0-cbd6218d568a)) + (pin "1" (uuid 29b778df-d262-4a00-b310-97b09e1956d4)) (instances (project "rp2040_radio" (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "#PWR07") (unit 1) + (reference "#PWR012") (unit 1) ) ) ) @@ -3316,31 +2199,6 @@ ) ) - (symbol (lib_id "power:+5V") (at 227.33 73.66 0) (unit 1) - (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) - (uuid f374283f-d677-43ee-871b-70d75a17f217) - (property "Reference" "#PWR03" (at 227.33 77.47 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Value" "+5V" (at 227.33 68.58 0) - (effects (font (size 1.27 1.27))) - ) - (property "Footprint" "" (at 227.33 73.66 0) - (effects (font (size 1.27 1.27)) hide) - ) - (property "Datasheet" "" (at 227.33 73.66 0) - (effects (font (size 1.27 1.27)) hide) - ) - (pin "1" (uuid 09dc1d48-cbc2-4c42-8f18-fa7d72d41033)) - (instances - (project "rp2040_radio" - (path "/a850cd64-290c-40af-a783-f83343c37ff2" - (reference "#PWR03") (unit 1) - ) - ) - ) - ) - (sheet_instances (path "/" (page "1")) ) diff --git a/src/lcd_ui.c b/src/lcd_ui.c new file mode 100644 index 0000000..7476db3 --- /dev/null +++ b/src/lcd_ui.c @@ -0,0 +1,133 @@ +#include "fonts.h" +#include "lcdbus.h" +#include +#include +#include + +enum static_type { + none, + box_full, + box_border, + text, + text_vert, +}; + +struct static_element { + unsigned upper, left, lower, right; + enum static_type type; + bool visible; + const char *data; +}; + +struct static_element static_elements[] = { + { .upper = 0, .left = 119, .right = 121, .lower = 319, + .type = box_full, + .visible = true, + }, + { .upper = 10, .left = 10, .right = 17, .lower = 57, + .type = text_vert, + .visible = true, + .data = "VHF1", + }, + { .upper = 10, .left = 20, .right = 30, .lower = 69, + .type = box_border, + .visible = true, + }, + { .upper = 10, .left = 40, .right = 106, .lower = 22, + .type = text, + .visible = true, + .data = "118.000", + }, + { .upper = 57, .left = 40, .right = 106, .lower = 69, + .type = text, + .visible = true, + .data = "122.800", + }, + { .upper = 79, .left = 0, .right = 239, .lower = 81, + .type = box_full, + .visible = true, + }, + { .upper = 159, .left = 0, .right = 239, .lower = 161, + .type = box_full, + .visible = true, + }, + { .upper = 239, .left = 0, .right = 239, .lower = 241, + .type = box_full, + .visible = true, + }, +}; + +enum ise_ret { + ise_blank = 0, + ise_pixel = 1, + ise_abort, +}; + +static enum ise_ret in_static_element(unsigned row, unsigned col, struct static_element const * const se) +{ + // if (row <= se->lower) return ise_abort; + if (!se->visible) return ise_blank; + if (!((row >= se->upper) && (row <= se->lower) && (col >= se->left) && (col <= se->right))) return ise_blank; + switch(se->type) { + case box_full: + return ise_pixel; + case box_border: + return (row == se->upper) || (row == se->lower) ||(col == se->left) || (col == se->right); + case text: + { + // which character to display + const int char_c = (col - se->left) / 8; + // position inside char + const int pos_r = (row - se->upper) % 12; + const int pos_c = (col - se->left) % 8; + if (char_c >= strlen(se->data)) return false; + const char data = Font8x12[(se->data[char_c]-0x20)*12 + pos_r]; + return (data & (1u << (7-pos_c))) != 0; + } + case text_vert: + { + // which character to display + const int char_r = (row - se->upper) / 12; + // position inside char + const int pos_r = (row - se->upper) % 12; + const int pos_c = (col - se->left) % 8; + if (char_r >= strlen(se->data)) return false; + const char data = Font8x12[(se->data[char_r]-0x20)*12 + pos_r]; + return (data & (1u << (7-pos_c))) != 0; + } + } +} + +static uint16_t get_pixel(unsigned row, unsigned col) +{ + for (int se = 0;se < sizeof(static_elements)/sizeof(static_elements[0]);++se) { + switch(in_static_element(row, col, static_elements+se)) { + case ise_pixel: + return 0xffff; + case ise_blank: + continue; + case ise_abort: + return 0x0000; + } + } + + return 0x0000; +} + +static unsigned cur_row = 0, cur_col = 0; + +#define LCD_WIDTH 240 +#define LCD_HEIGHT 320 + +bool lcd_ui_process(void) +{ + while (!lcd_fifo_full()) { + lcd_data_write(get_pixel(cur_row, cur_col)); + cur_col = (cur_col >= LCD_WIDTH - 1) ? 0 : cur_col + 1; + if (cur_col == 0) { + cur_row = (cur_row >= LCD_HEIGHT - 1) ? 0 : cur_row + 1; + if (cur_row == 0) return true; + } + } + return false; +} diff --git a/src/lcd_ui.h b/src/lcd_ui.h new file mode 100644 index 0000000..9a244c1 --- /dev/null +++ b/src/lcd_ui.h @@ -0,0 +1,5 @@ +#pragma once + +#include + +bool lcd_ui_process(void); diff --git a/src/lcdbus.c b/src/lcdbus.c new file mode 100644 index 0000000..56c356f --- /dev/null +++ b/src/lcdbus.c @@ -0,0 +1,140 @@ +#include +#include +#include + +#include "lcdbus.pio.h" + +extern PIO pio; +static uint sm; + +#define LCD_RS_PIN 20 +#define LCD_SDO_PIN 19 +#define LCD_FCK_PIN 18 +#define LCD_SCK_PIN 17 +#define LCD_WRS_PIN 16 + +#define LCD_RESET_PIN 15 + +static bool rs_pin_state = false; + +static void lcd_bus_transact(bool dc, uint16_t out) +{ + if (dc != rs_pin_state) { + while (!pio_sm_is_tx_fifo_empty(pio, sm)); + gpio_put(LCD_RS_PIN, dc); + rs_pin_state = dc; + } + pio_sm_put_blocking(pio, sm, (((uint32_t)out) << 16)); +} + +void lcd_data_write(uint16_t val) +{ + lcd_bus_transact(true, val); +} + +void lcd_control_write(uint16_t val) +{ + lcd_bus_transact(false, val); +} + +uint16_t lcd_reg_write(uint8_t reg, uint16_t val) +{ + lcd_control_write(reg); + lcd_data_write(val); +} + +void lcd_init(void) +{ + gpio_init(LCD_RESET_PIN); + gpio_set_dir(LCD_RESET_PIN, true); + gpio_put(LCD_RESET_PIN, true); + gpio_init(LCD_RS_PIN); + gpio_set_dir(LCD_RS_PIN, true); + gpio_put(LCD_RS_PIN, rs_pin_state); + + uint offset = pio_add_program(pio, &lcdbus_program); + sm = pio_claim_unused_sm(pio, true); + pio_sm_config c = lcdbus_program_get_default_config(offset); + sm_config_set_out_pins(&c, LCD_SDO_PIN, 1); + sm_config_set_sideset_pins(&c, LCD_WRS_PIN); + sm_config_set_out_shift(&c, false, false, 16); + sm_config_set_clkdiv(&c, 3.f); + pio_sm_set_pindirs_with_mask(pio, sm, + (1u << LCD_SDO_PIN) | (1u << LCD_SCK_PIN) | (1u << LCD_FCK_PIN) | (1u << LCD_WRS_PIN), + (1u << LCD_SDO_PIN) | (1u << LCD_SCK_PIN) | (1u << LCD_FCK_PIN) | (1u << LCD_WRS_PIN)); + pio_gpio_init(pio, LCD_SDO_PIN); + pio_gpio_init(pio, LCD_WRS_PIN); + pio_gpio_init(pio, LCD_SCK_PIN); + pio_gpio_init(pio, LCD_FCK_PIN); + pio_sm_init(pio, sm, offset, &c); + pio_sm_set_enabled(pio, sm, true); + + +} + +void lcd_write_init(void) +{ + /* lcd_reg_write(0x07, 0x0021); */ + /* lcd_reg_write(0x00, 0x0001); */ + /* lcd_reg_write(0x07, 0x0023); */ + /* lcd_reg_write(0x10, 0x0000); */ + /* sleep_ms(30); */ + /* lcd_reg_write(0x07, 0x0033); */ + /* lcd_reg_write(0x03, 0xA8A4); */ + // Initialization sequence taken from UTFT for SSD1289 + // I don't know what it does, but it doesn't flicker... + lcd_reg_write(0x00,0x0001); + lcd_reg_write(0x03,0xA8A4); + lcd_reg_write(0x0C,0x0000); + lcd_reg_write(0x0D,0x080C); + lcd_reg_write(0x0E,0x2B00); + lcd_reg_write(0x1E,0x00B7); + lcd_reg_write(0x01,0x2B3F); + lcd_reg_write(0x02,0x0600); + lcd_reg_write(0x10,0x0000); + lcd_reg_write(0x11,0x6070); + lcd_reg_write(0x05,0x0000); + lcd_reg_write(0x06,0x0000); + lcd_reg_write(0x16,0xEF1C); + lcd_reg_write(0x17,0x0003); + lcd_reg_write(0x07,0x0233); + lcd_reg_write(0x0B,0x0000); + lcd_reg_write(0x0F,0x0000); + lcd_reg_write(0x41,0x0000); + lcd_reg_write(0x42,0x0000); + lcd_reg_write(0x48,0x0000); + lcd_reg_write(0x49,0x013F); + lcd_reg_write(0x4A,0x0000); + lcd_reg_write(0x4B,0x0000); + lcd_reg_write(0x44,0xEF00); + lcd_reg_write(0x45,0x0000); + lcd_reg_write(0x46,0x013F); + lcd_reg_write(0x30,0x0707); + lcd_reg_write(0x31,0x0204); + lcd_reg_write(0x32,0x0204); + lcd_reg_write(0x33,0x0502); + lcd_reg_write(0x34,0x0507); + lcd_reg_write(0x35,0x0204); + lcd_reg_write(0x36,0x0204); + lcd_reg_write(0x37,0x0502); + lcd_reg_write(0x3A,0x0302); + lcd_reg_write(0x3B,0x0302); + lcd_reg_write(0x23,0x0000); + lcd_reg_write(0x24,0x0000); + lcd_reg_write(0x25,0x8000); +} + +void lcd_clear(uint16_t val) +{ + lcd_reg_write(0x4f,0x0000); + lcd_reg_write(0x4e,0x0000); + lcd_control_write(0x22); + for (int i = 0;i < 320*240;++i) { + lcd_data_write(val); + } +} + +bool lcd_fifo_full(void) +{ + return pio_sm_is_tx_fifo_full(pio, sm); +} diff --git a/src/lcdbus.h b/src/lcdbus.h new file mode 100644 index 0000000..4d0530e --- /dev/null +++ b/src/lcdbus.h @@ -0,0 +1,12 @@ +#pragma once + +#include +#include + +void lcd_data_write(uint16_t val); +void lcd_control_write(uint16_t val); +uint16_t lcd_reg_write(uint8_t reg, uint16_t val); +void lcd_init(void); +void lcd_write_init(void); +void lcd_clear(uint16_t val); +bool lcd_fifo_full(void); diff --git a/src/lcdbus.pio b/src/lcdbus.pio index 601a290..32b4ed3 100644 --- a/src/lcdbus.pio +++ b/src/lcdbus.pio @@ -1,9 +1,11 @@ .program lcdbus -.side_set 2 +.side_set 3 -pull side 2 +nop side 5 +.wrap_target +pull side 5 loop: out pins, 1 side 0 -in pins, 1 side 0 -jmp !OSRE loop side 1 -push side 2 \ No newline at end of file +jmp !OSRE loop side 2 +nop side 4 +nop side 5 [1] \ No newline at end of file diff --git a/src/lcdtest.c b/src/lcdtest.c index a2858bc..afa4f1b 100644 --- a/src/lcdtest.c +++ b/src/lcdtest.c @@ -1,215 +1,81 @@ -#include "fonts.h" +//#include "fonts.h" #include +#include "lcdbus.h" +#include "lcd_ui.h" #include #include -#include "lcdbus.pio.h" - PIO pio = pio0; -static uint sm; -#define LCD_SDI_PIN 20 -#define LCD_SDO_PIN 19 -#define LCD_FCK_PIN 18 -#define LCD_SCK_PIN 17 -#define LCD_OE_PIN 16 - -#define LCD_RS_PIN 15 -#define LCD_WR_PIN 14 -#define LCD_RD_PIN 13 -#define LCD_CS_PIN 12 -#define LCD_RESET_PIN 11 - -static uint16_t lcd_bus_transact(uint16_t out) -{ - pio_sm_put(pio, sm, ((uint32_t)out)<<16); - return pio_sm_get_blocking(pio, sm); -} - -static void lcd_write(bool dc, uint16_t val) -{ - gpio_put_masked((1u << LCD_CS_PIN) | (1u << LCD_WR_PIN) | (1u << LCD_RS_PIN), (dc << LCD_RS_PIN)); - gpio_put(LCD_OE_PIN, false); - lcd_bus_transact(val); - gpio_put_masked((1u << LCD_CS_PIN) | (1u << LCD_WR_PIN) | (1u << LCD_RS_PIN), - (1u << LCD_CS_PIN) | (1u << LCD_WR_PIN) | (1u << LCD_RS_PIN)); - gpio_put(LCD_OE_PIN, true); - // busy_wait_us(1); -} - -static uint16_t lcd_read(bool dc) -{ - gpio_put_masked((1u << LCD_CS_PIN) | (1u << LCD_RD_PIN) | (1u << LCD_RS_PIN), (dc << LCD_RS_PIN)); - // wait 250 ns - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - asm volatile ("nop\n"); - const uint16_t ret = lcd_bus_transact(0); - gpio_put_masked((1u << LCD_CS_PIN) | (1u << LCD_RD_PIN) | (1u << LCD_RS_PIN), - (1u << LCD_CS_PIN) | (1u << LCD_RD_PIN) | (1u << LCD_RS_PIN)); - return ret; -} - -static uint16_t lcd_reg_read(uint8_t reg) -{ - lcd_write(false, reg); - return lcd_read(true); -} - -static uint16_t lcd_reg_write(uint8_t reg, uint16_t val) -{ - lcd_write(false, reg); - lcd_write(true, val); -} +#define FRAME_LED 22 int main(void) { setup_default_uart(); printf("lcdtest.c\n"); - gpio_init_mask(0x3f << 11); - gpio_set_dir_out_masked(0x3f << 11); - // gpio_init(LCD_OE_PIN); - // gpio_set_dir(LCD_OE_PIN, true); - gpio_put_masked(0x3f << 11, 0x3f << 11); - gpio_put(LCD_OE_PIN, true); + lcd_init(); + lcd_write_init(); + lcd_clear(0); + + /* int color = 0; */ + /* while(true) { */ + /* const char* const greeting = "Hello, world!"; */ + /* const int greeting_len = strlen(greeting); */ + /* for (int row = 0;row < 320;++row) { */ + /* for (int col = 0; col < 240;++col) { */ + /* // which character to display */ + /* const int char_r = row / 12; */ + /* const int char_c = col / 8; */ + /* // position inside char */ + /* const int pos_r = row % 12; */ + /* const int pos_c = col % 8; */ + + /* const int index = char_r*30+char_c; */ + /* char data = 0; */ + /* if (index < greeting_len) { */ + /* data = Font8x12[(greeting[index]-0x20)*12 + pos_r]; */ + /* } */ + + /* const bool pixel = (data & (1u << (7-pos_c))) != 0; */ + /* if (pixel) { */ + /* if (color == 4) { */ + /* lcd_data_write(0x0000); */ + /* } else { */ + /* lcd_data_write(0xffff); */ + /* } */ + /* } else { */ + /* switch(color) { */ + /* case 0: */ + /* lcd_data_write(0x0000); */ + /* break; */ + /* case 1: */ + /* lcd_data_write(0x001f); */ + /* break; */ + /* case 2: */ + /* lcd_data_write(0x07e0); */ + /* break; */ + /* case 3: */ + /* lcd_data_write(0xf800); */ + /* break; */ + /* case 4: */ + /* lcd_data_write(0xffff); */ + /* break; */ + /* } */ + /* } */ + /* } */ + /* } */ + /* color = (color == 4) ? 0 : color + 1; */ + /* sleep_ms(1000); */ + /* } */ - uint offset = pio_add_program(pio, &lcdbus_program); - sm = pio_claim_unused_sm(pio, true); - pio_sm_config c = lcdbus_program_get_default_config(offset); - sm_config_set_out_pins(&c, LCD_SDO_PIN, 1); - sm_config_set_in_pins(&c, LCD_SDI_PIN); - sm_config_set_sideset_pins(&c, LCD_SCK_PIN); - sm_config_set_out_shift(&c, false, false, 16); - sm_config_set_in_shift(&c, false, false, 16); - sm_config_set_clkdiv(&c, 4); - pio_sm_set_pindirs_with_mask(pio, sm, - (1u << LCD_SDO_PIN) | (1u << LCD_SCK_PIN) | (1u << LCD_FCK_PIN), - (1u << LCD_SDO_PIN) | (1u << LCD_SCK_PIN) | (1u << LCD_FCK_PIN) | (1u << LCD_SDI_PIN)); - pio_gpio_init(pio, LCD_SDO_PIN); - pio_gpio_init(pio, LCD_SDI_PIN); - pio_gpio_init(pio, LCD_SCK_PIN); - pio_gpio_init(pio, LCD_FCK_PIN); - pio_sm_init(pio, sm, offset, &c); - pio_sm_set_enabled(pio, sm, true); - - //gpio_put(LCD_OE_PIN, false); - sleep_ms(100); - //lcd_write(true, 0x0000); - uint16_t r1 = lcd_read(false); - if (r1 != 0x8989) { - printf("Display chip id not OK (%04hx)\n", r1); - return 0; - } - - /* lcd_reg_write(0x07, 0x0021); */ - /* lcd_reg_write(0x00, 0x0001); */ - /* lcd_reg_write(0x07, 0x0023); */ - /* lcd_reg_write(0x10, 0x0000); */ - /* sleep_ms(30); */ - /* lcd_reg_write(0x07, 0x0033); */ - /* lcd_reg_write(0x03, 0xA8A4); */ - // Initialization sequence taken from UTFT for SSD1289 - // I don't know what it does, but it doesn't flicker... - lcd_reg_write(0x00,0x0001); - lcd_reg_write(0x03,0xA8A4); - lcd_reg_write(0x0C,0x0000); - lcd_reg_write(0x0D,0x080C); - lcd_reg_write(0x0E,0x2B00); - lcd_reg_write(0x1E,0x00B7); - lcd_reg_write(0x01,0x2B3F); - lcd_reg_write(0x02,0x0600); - lcd_reg_write(0x10,0x0000); - lcd_reg_write(0x11,0x6070); - lcd_reg_write(0x05,0x0000); - lcd_reg_write(0x06,0x0000); - lcd_reg_write(0x16,0xEF1C); - lcd_reg_write(0x17,0x0003); - lcd_reg_write(0x07,0x0233); - lcd_reg_write(0x0B,0x0000); - lcd_reg_write(0x0F,0x0000); - lcd_reg_write(0x41,0x0000); - lcd_reg_write(0x42,0x0000); - lcd_reg_write(0x48,0x0000); - lcd_reg_write(0x49,0x013F); - lcd_reg_write(0x4A,0x0000); - lcd_reg_write(0x4B,0x0000); - lcd_reg_write(0x44,0xEF00); - lcd_reg_write(0x45,0x0000); - lcd_reg_write(0x46,0x013F); - lcd_reg_write(0x30,0x0707); - lcd_reg_write(0x31,0x0204); - lcd_reg_write(0x32,0x0204); - lcd_reg_write(0x33,0x0502); - lcd_reg_write(0x34,0x0507); - lcd_reg_write(0x35,0x0204); - lcd_reg_write(0x36,0x0204); - lcd_reg_write(0x37,0x0502); - lcd_reg_write(0x3A,0x0302); - lcd_reg_write(0x3B,0x0302); - lcd_reg_write(0x23,0x0000); - lcd_reg_write(0x24,0x0000); - lcd_reg_write(0x25,0x8000); - - lcd_reg_write(0x4f,0x0000); - lcd_reg_write(0x4e,0x0000); - lcd_write(false, 0x22); - for (int i = 0;i < 320*240;++i) { - lcd_write(true, 0x0000); - } - - const char* const greeting = "Hello, world!"; - const int greeting_len = strlen(greeting); - for (int row = 0;row < 320;++row) { - for (int col = 0; col < 240;++col) { - // which character to display - const int char_r = row / 12; - const int char_c = col / 8; - // position inside char - const int pos_r = row % 12; - const int pos_c = col % 8; - - const int index = char_r*30+char_c; - char data = 0; - if (index < greeting_len) { - data = Font8x12[(greeting[index]-0x20)*12 + pos_r]; - } - - const bool pixel = (data & (1u << (7-pos_c))) != 0; - if (pixel) { - lcd_write(true, 0xffff); - } else { - lcd_write(true, 0x0000); - } + gpio_init(FRAME_LED); + gpio_set_dir(FRAME_LED, true); + bool frame_led = false; + while(true) { + if (lcd_ui_process()) { + gpio_put(FRAME_LED, frame_led); + frame_led = !frame_led; } - } + } }