diff options
-rw-r--r-- | basys3/basys3.srcs/io.xdc | 7 | ||||
-rw-r--r-- | basys3/basys3.srcs/spi.vhd | 78 | ||||
-rw-r--r-- | basys3/basys3.srcs/spi_tb.vhd | 259 | ||||
-rw-r--r-- | basys3/basys3.srcs/top.vhd | 5 | ||||
-rw-r--r-- | basys3/basys3.xpr | 69 | ||||
-rw-r--r-- | docs/hardware/hardware.kicad_pcb | 453 | ||||
-rw-r--r-- | docs/hardware/hardware.kicad_sch | 138 | ||||
-rw-r--r-- | docs/hardware/pinout.md | 4 |
8 files changed, 646 insertions, 367 deletions
diff --git a/basys3/basys3.srcs/io.xdc b/basys3/basys3.srcs/io.xdc index a537742..e8e47d2 100644 --- a/basys3/basys3.srcs/io.xdc +++ b/basys3/basys3.srcs/io.xdc @@ -2,9 +2,9 @@ set_property IOSTANDARD LVCMOS33 [get_ports SPI_MOSI] set_property IOSTANDARD LVCMOS33 [get_ports SPI_CS] set_property IOSTANDARD LVCMOS33 [get_ports SPI_CLK] -set_property PACKAGE_PIN A15 [get_ports SPI_CLK] +set_property PACKAGE_PIN J2 [get_ports SPI_CLK] set_property PACKAGE_PIN C15 [get_ports SPI_CS] -set_property PACKAGE_PIN A17 [get_ports SPI_MOSI] +set_property PACKAGE_PIN L1 [get_ports SPI_MOSI] set_property IOSTANDARD LVCMOS33 [get_ports SYSCLK] set_property IOSTANDARD LVCMOS33 [get_ports RESET] @@ -46,5 +46,6 @@ set_property IOSTANDARD LVCMOS33 [get_ports VBLANK] set_property IOSTANDARD LVCMOS33 [get_ports WEN] set_property PACKAGE_PIN C16 [get_ports VBLANK] -set_property PACKAGE_PIN A14 [get_ports WEN] +set_property PACKAGE_PIN J1 [get_ports WEN] + diff --git a/basys3/basys3.srcs/spi.vhd b/basys3/basys3.srcs/spi.vhd index cdf7d4a..1560b54 100644 --- a/basys3/basys3.srcs/spi.vhd +++ b/basys3/basys3.srcs/spi.vhd @@ -6,65 +6,49 @@ use work.ppu_consts.all; entity spi is port ( SYSCLK : in std_logic; -- clock basys3 100MHz - SPI_CLK : in std_logic; -- incoming clock of SPI + SPI_CLK : in std_logic; -- incoming clock of SPI SPI_MOSI : in std_logic; -- incoming data of SPI - SPI_CS : in std_logic; -- incoming select of SPI - DATA : out std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH+PPU_RAM_BUS_DATA_WIDTH-1 downto 0)); -- data read + RESET : in std_logic; -- async reset + DATA : out std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH+PPU_RAM_BUS_DATA_WIDTH-1 downto 0) := (others => '0')); -- data read end spi; architecture Behavioral of spi is - signal PulseFF0,PulseFF1,PulseFF2,PulseFF3 : std_logic := '0'; -- signal for metastability synchronizer of clk SPI - signal dataFF0,dataFF1,dataFF2,dataFF3 : std_logic := '0'; -- signal for metastability synchronizer of data SPI - signal ssFF0,ssFF1,ssFF2,ssFF3 : std_logic := '0'; -- signal for metastability synchronizer of slave select SPI - - signal SPI_REG : std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH+PPU_RAM_BUS_DATA_WIDTH-1 downto 0) := (others => '0'); -- signal to store incomming data of dataSPI (2x 8bit) - signal counter : integer := 23; -- counter for data position - signal enable : std_logic := '0'; -- enable signal if slave is selected + signal clkFF0,clkFF1,clkFF2,clkFF3 : std_logic := '0'; -- signal for metastability synchronizer of clk SPI + signal dataFF0,dataFF1,dataFF2,dataFF3 : std_logic := '0'; -- signal for metastability synchronizer of data SPI + + signal SPI_REG : std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH+PPU_RAM_BUS_DATA_WIDTH-1 downto 0) := (others => '0'); + signal counter : integer := 31; -- counter for data position + + constant COUNTER_RESET_VALUE : integer := PPU_RAM_BUS_ADDR_WIDTH + PPU_RAM_BUS_DATA_WIDTH - 1; begin - process (SYSCLK) begin - if rising_edge(SYSCLK) then + if RESET = '1' then + counter <= COUNTER_RESET_VALUE; + DATA <= (others => '0'); + elsif rising_edge(SYSCLK) then -- flip flop for clk SPI to synchronise a - PulseFF0 <= SPI_CLK; - PulseFF1 <= PulseFF0; - PulseFF2 <= PulseFF1; - PulseFF3 <= PulseFF2; - -- flip flop for data SPI to synchronise + clkFF0 <= SPI_CLK; + clkFF1 <= clkFF0; + clkFF2 <= clkFF1; + clkFF3 <= clkFF2; + -- flip flop for data SPI to synchronise dataFF0 <= SPI_MOSI; dataFF1 <= dataFF0; dataFF2 <= dataFF1; - dataFF3 <= dataFF2; - -- flip flop for slave select SPI to synchronise - ssFF0 <= SPI_CS; - ssFF1 <= ssFF0; - ssFF2 <= ssFF1; - ssFF3 <= ssFF2; - -- check if slave select signal has falling edge (slave is selected by master) - if(ssFF3 = '1' and ssFF2 = '0') then - -- reset counter if true - counter <= 23; - -- disable data read if rising edge (slave is not selected) - elsif (ssFF3 = '0' and ssFF2 = '1') then - enable <= '0'; - end if; - -- check if synchronised slave select signal is falling edge or data read is enabled - if(ssFF3 = '1' and ssFF2 = '0') or enable = '1' then - enable <= '1'; -- enable data read - if (PulseFF3 = '0' and PulseFF2 = '1') then -- check for rising edge of clk SPI - if counter > -1 then - counter <= counter - 1; - -- data transfer into vector - SPI_REG(counter) <= dataFF3; - end if; + dataFF3 <= dataFF2; + + if (clkFF3 = '0' and clkFF2 = '1') then -- check for rising edge of clk SPI + if counter > -1 then + counter <= counter - 1; + -- data transfer into vector + SPI_REG(counter) <= dataFF3; end if; - -- check if counter is done - if counter = -1 then - counter <= 23; -- reset counter - DATA <= SPI_REG; - end if; - elsif (enable = '0') then - -- DATA <= SPI_REG; + end if; + -- check if counter is done + if counter = -1 then + counter <= COUNTER_RESET_VALUE; -- reset counter + DATA <= SPI_REG; end if; end if; end process; diff --git a/basys3/basys3.srcs/spi_tb.vhd b/basys3/basys3.srcs/spi_tb.vhd new file mode 100644 index 0000000..a8aa8c2 --- /dev/null +++ b/basys3/basys3.srcs/spi_tb.vhd @@ -0,0 +1,259 @@ +library ieee; +library unisim; + +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; +use unisim.vcomponents.all; +use work.ppu_consts.all; + +entity spi_tb is +end spi_tb; + +architecture behavioral of spi_tb is + signal SYSCLK : std_logic := '0'; + signal SPI_CLK : std_logic := '0'; + signal SPI_MOSI : std_logic := '0'; + signal RESET : std_logic := '0'; + signal DATA : std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH+PPU_RAM_BUS_DATA_WIDTH-1 downto 0) := (others => '0'); +begin + uut : entity work.spi port map( + SYSCLK => SYSCLK, + RESET => RESET, + DATA => DATA, + SPI_CLK => SPI_CLK, + SPI_MOSI => SPI_MOSI); + + sysclkgen: process + begin + for i in 0 to 10000 loop + wait for 5 ns; + SYSCLK <= '1'; + wait for 5 ns; + SYSCLK <= '0'; + end loop; + wait; -- stop for simulator + end process; + + spi_data: process + begin + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + SPI_MOSI <= '1'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + wait for 50 ns; + SPI_CLK <= '1'; + wait for 50 ns; + SPI_CLK <= '0'; + wait for 50 ns; + RESET <= '1'; + wait for 50 ns; + RESET <= '0'; + + + wait; -- stop for simulator + end process; +end; diff --git a/basys3/basys3.srcs/top.vhd b/basys3/basys3.srcs/top.vhd index 0354b62..84ab7eb 100644 --- a/basys3/basys3.srcs/top.vhd +++ b/basys3/basys3.srcs/top.vhd @@ -8,7 +8,6 @@ entity top is port ( RESET : in std_logic; -- global (async) system reset SPI_CLK : in std_logic; -- incoming clock of SPI SPI_MOSI : in std_logic; -- incoming data of SPI - SPI_CS : in std_logic; -- incoming select of SPI WEN : in std_logic; -- PPU VRAM write enable R,G,B : out std_logic_vector(PPU_COLOR_OUTPUT_DEPTH-1 downto 0); VSYNC, HSYNC : out std_logic; -- VGA sync out @@ -30,7 +29,7 @@ architecture Behavioral of top is SYSCLK : in std_logic; -- clock basys3 100MHz SPI_CLK : in std_logic; -- incoming clock of SPI SPI_MOSI : in std_logic; -- incoming data of SPI - SPI_CS : in std_logic; -- incoming select of SPI + RESET : in std_logic; -- async reset DATA : out std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH+PPU_RAM_BUS_DATA_WIDTH-1 downto 0)); -- data read end component; @@ -40,9 +39,9 @@ architecture Behavioral of top is begin serial_peripheral_interface: component spi port map( SYSCLK => SYSCLK, + RESET => RESET, SPI_CLK => SPI_CLK, SPI_MOSI => SPI_MOSI, - SPI_CS => '1', DATA => SPI_DATA); picture_processing_unit: component ppu port map( diff --git a/basys3/basys3.xpr b/basys3/basys3.xpr index 4e5b2dc..5b31f27 100644 --- a/basys3/basys3.xpr +++ b/basys3/basys3.xpr @@ -59,7 +59,7 @@ <Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/> <Option Name="EnableBDX" Val="FALSE"/> <Option Name="DSABoardId" Val="basys3"/> - <Option Name="WTXSimLaunchSim" Val="0"/> + <Option Name="WTXSimLaunchSim" Val="5"/> <Option Name="WTModelSimLaunchSim" Val="0"/> <Option Name="WTQuestaLaunchSim" Val="0"/> <Option Name="WTIesLaunchSim" Val="0"/> @@ -203,11 +203,16 @@ </FileSet> <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1"> <Filter Type="Srcs"/> + <File Path="$PSRCDIR/spi_tb.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> <Config> <Option Name="DesignMode" Val="RTL"/> - <Option Name="TopModule" Val="top"/> + <Option Name="TopModule" Val="spi_tb"/> <Option Name="TopLib" Val="xil_defaultlib"/> - <Option Name="TopAutoSet" Val="TRUE"/> <Option Name="TransportPathDelay" Val="0"/> <Option Name="TransportIntDelay" Val="0"/> <Option Name="SelectedSimModel" Val="rtl"/> @@ -226,7 +231,14 @@ <FileInfo> <Attr Name="UsedIn" Val="synthesis"/> <Attr Name="UsedIn" Val="implementation"/> - <Attr Name="UsedInSteps" Val="synth_1"/> + <Attr Name="AutoDcp" Val="1"/> + </FileInfo> + </File> + <File Path="$PSRCDIR/utils_1/imports/synth_2/top.dcp"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedInSteps" Val="synth_2"/> <Attr Name="AutoDcp" Val="1"/> </FileInfo> </File> @@ -313,19 +325,17 @@ </Simulator> </Simulators> <Runs Version="1" Minor="19"> - <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_1/top.dcp" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1"> + <Run Id="ppu_dispctl_pixclk_synth_1" Type="Ft3:Synth" SrcSet="ppu_dispctl_pixclk" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_pixclk" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_dispctl_pixclk_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_synth_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/> - <Step Id="synth_design"> - <Option Id="FlattenHierarchy">0</Option> - </Step> + <Step Id="synth_design"/> </Strategy> <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/> <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2022"/> <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_dispctl_pixclk_synth_1" Type="Ft3:Synth" SrcSet="ppu_dispctl_pixclk" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_pixclk" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_dispctl_pixclk_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_synth_1"> + <Run Id="ppu_dispctl_slbuf_synth_1" Type="Ft3:Synth" SrcSet="ppu_dispctl_slbuf" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_slbuf" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_dispctl_slbuf_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_synth_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/> <Step Id="synth_design"/> @@ -335,7 +345,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_dispctl_slbuf_synth_1" Type="Ft3:Synth" SrcSet="ppu_dispctl_slbuf" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_slbuf" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_dispctl_slbuf_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_synth_1"> + <Run Id="ppu_tmm_synth_1" Type="Ft3:Synth" SrcSet="ppu_tmm" Part="xc7a35tcpg236-1" ConstrsSet="ppu_tmm" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_tmm_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_tmm_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_tmm_synth_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/> <Step Id="synth_design"/> @@ -345,7 +355,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_tmm_synth_1" Type="Ft3:Synth" SrcSet="ppu_tmm" Part="xc7a35tcpg236-1" ConstrsSet="ppu_tmm" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_tmm_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_tmm_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_tmm_synth_1"> + <Run Id="ppu_bam_synth_1" Type="Ft3:Synth" SrcSet="ppu_bam" Part="xc7a35tcpg236-1" ConstrsSet="ppu_bam" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_bam_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_bam_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_bam_synth_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/> <Step Id="synth_design"/> @@ -355,7 +365,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_bam_synth_1" Type="Ft3:Synth" SrcSet="ppu_bam" Part="xc7a35tcpg236-1" ConstrsSet="ppu_bam" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" Dir="$PRUNDIR/ppu_bam_synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_bam_synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_bam_synth_1"> + <Run Id="synth_2" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_2/top.dcp" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_2" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_2" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_2"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/> <Step Id="synth_design"/> @@ -365,7 +375,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_1" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_1"> + <Run Id="ppu_dispctl_pixclk_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_pixclk" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_dispctl_pixclk_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_impl_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/> <Step Id="init_design"/> @@ -375,15 +385,14 @@ <Step Id="post_place_power_opt_design"/> <Step Id="phys_opt_design"/> <Step Id="route_design"/> - <Step Id="post_route_phys_opt_design" EnableStepBool="1"/> + <Step Id="post_route_phys_opt_design"/> <Step Id="write_bitstream"/> </Strategy> - <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/> <ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2022"/> <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_dispctl_pixclk_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_pixclk" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_dispctl_pixclk_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_pixclk_impl_1"> + <Run Id="ppu_dispctl_slbuf_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_slbuf" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_dispctl_slbuf_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_impl_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/> <Step Id="init_design"/> @@ -400,7 +409,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_dispctl_slbuf_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_dispctl_slbuf" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_dispctl_slbuf_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_dispctl_slbuf_impl_1"> + <Run Id="ppu_tmm_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_tmm" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_tmm_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_tmm_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_tmm_impl_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/> <Step Id="init_design"/> @@ -417,7 +426,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_tmm_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_tmm" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_tmm_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_tmm_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_tmm_impl_1"> + <Run Id="ppu_bam_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_bam" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_bam_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_bam_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_bam_impl_1"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/> <Step Id="init_design"/> @@ -434,7 +443,7 @@ <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> </Run> - <Run Id="ppu_bam_impl_1" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="ppu_bam" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" SynthRun="ppu_bam_synth_1" IncludeInArchive="false" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/ppu_bam_impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/ppu_bam_impl_1"> + <Run Id="impl_2" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_2" SynthRun="synth_2" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_2" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_2"> <Strategy Version="1" Minor="2"> <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/> <Step Id="init_design"/> @@ -447,6 +456,7 @@ <Step Id="post_route_phys_opt_design"/> <Step Id="write_bitstream"/> </Strategy> + <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/> <ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2022"/> <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> @@ -459,26 +469,15 @@ <Dashboards> <Dashboard Name="default_dashboard"> <Gadgets> - <Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0"> - <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_drc_0 "/> - </Gadget> - <Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1"> - <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_methodology_0 "/> - </Gadget> - <Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0"> - <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_power_0 "/> - </Gadget> - <Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1"> - <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_timing_summary_0 "/> - </Gadget> + <Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0"/> + <Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1"/> + <Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0"/> + <Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1"/> <Gadget Name="utilization_1" Type="utilization" Version="1" Row="0" Column="0"> - <GadgetParam Name="REPORTS" Type="string_list" Value="synth_1#synth_1_synth_report_utilization_0 "/> <GadgetParam Name="RUN.STEP" Type="string" Value="synth_design"/> <GadgetParam Name="RUN.TYPE" Type="string" Value="synthesis"/> </Gadget> - <Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1"> - <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_place_report_utilization_0 "/> - </Gadget> + <Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1"/> </Gadgets> </Dashboard> <CurrentDashboard>default_dashboard</CurrentDashboard> diff --git a/docs/hardware/hardware.kicad_pcb b/docs/hardware/hardware.kicad_pcb index ded14d2..bf02072 100644 --- a/docs/hardware/hardware.kicad_pcb +++ b/docs/hardware/hardware.kicad_pcb @@ -118,13 +118,12 @@ (net 40 "unconnected-(J6-Pin_2-Pad2)") (net 41 "unconnected-(J6-Pin_3-Pad3)") (net 42 "unconnected-(J6-Pin_4-Pad4)") - (net 43 "unconnected-(J6-Pin_5-Pad5)") - (net 44 "unconnected-(J6-Pin_6-Pad6)") - (net 45 "Net-(J6-Pin_7)") - (net 46 "unconnected-(J6-Pin_8-Pad8)") - (net 47 "unconnected-(J6-Pin_9-Pad9)") - (net 48 "unconnected-(J6-Pin_10-Pad10)") - (net 49 "unconnected-(J6-Pin_12-Pad12)") + (net 43 "unconnected-(J6-Pin_6-Pad6)") + (net 44 "Net-(J6-Pin_7)") + (net 45 "unconnected-(J6-Pin_8-Pad8)") + (net 46 "unconnected-(J6-Pin_9-Pad9)") + (net 47 "unconnected-(J6-Pin_10-Pad10)") + (net 48 "unconnected-(J6-Pin_12-Pad12)") (footprint "Connector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_Vertical" (layer "F.Cu") (tstamp 0dee130f-c83f-4dd5-8dbf-6cf84c47a719) @@ -180,15 +179,15 @@ (fp_line (start 3.81 13.97) (end -1.27 13.97) (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp b289e20d-8174-46f7-a359-034f5c41fe9a)) (pad "1" thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 27 "SPI_CLK") (pinfunction "Pin_1") (pintype "passive") (tstamp dc81b7c7-7358-4d2e-b645-3d258ae2a739)) + (net 22 "PPU_VRAM_WEN") (pinfunction "Pin_1") (pintype "passive") (tstamp dc81b7c7-7358-4d2e-b645-3d258ae2a739)) (pad "2" thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") (net 25 "SPI_MOSI") (pinfunction "Pin_2") (pintype "passive") (tstamp b70206b6-2385-4553-b7d3-8ed64210e686)) (pad "3" thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 22 "PPU_VRAM_WEN") (pinfunction "Pin_3") (pintype "passive") (tstamp 4489259d-65ff-47c8-9af3-885b08309e9d)) + (net 27 "SPI_CLK") (pinfunction "Pin_3") (pintype "passive") (tstamp 4489259d-65ff-47c8-9af3-885b08309e9d)) (pad "4" thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") (net 32 "unconnected-(J1-Pin_4-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp fe2f5ff6-1cc0-4fb2-bccb-c279f62edf51)) (pad "5" thru_hole oval (at 0 10.16) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (pinfunction "Pin_5") (pintype "passive") (tstamp f849aae9-cc76-407b-aa40-4ff58ffd8bc4)) + (net 6 "GND") (pinfunction "Pin_5") (pintype "passive") (tstamp f849aae9-cc76-407b-aa40-4ff58ffd8bc4)) (pad "6" thru_hole oval (at 0 12.7) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") (net 33 "unconnected-(J1-Pin_6-Pad6)") (pinfunction "Pin_6") (pintype "passive") (tstamp 47a457ab-d3ac-4a12-9149-b9fde5498595)) (pad "7" thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") @@ -210,202 +209,9 @@ ) ) - (footprint "Module:Arduino_UNO_R3" (layer "F.Cu") - (tstamp 186f5b5c-ddb3-490a-ae64-32519350e4fc) - (at 50.8 17.78) - (descr "Arduino UNO R3, http://www.mouser.com/pdfdocs/Gravitech_Arduino_Nano3_0.pdf") - (tags "Arduino UNO R3") - (property "Field4" "") - (property "Sheetfile" "hardware.kicad_sch") - (property "Sheetname" "") - (property "ki_description" "Arduino UNO Microcontroller Module, release 3") - (property "ki_keywords" "Arduino UNO R3 Microcontroller Module Atmel AVR USB") - (path "/e037481e-1397-4cfd-9c3c-4a1e6476185d") - (attr through_hole) - (fp_text reference "A1" (at 1.27 -3.81 180) (layer "F.SilkS") - (effects (font (size 1 1) (thickness 0.15))) - (tstamp 7a901f3b-f479-4206-a735-21de007c264f) - ) - (fp_text value "STM32F091RC" (at 0 22.86) (layer "F.Fab") hide - (effects (font (size 1 1) (thickness 0.15))) - (tstamp 6b2108a4-b5f2-4526-9b95-6941b0f952ea) - ) - (fp_line (start -34.42 29.72) (end -34.42 41.4) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a3c4d085-aa8b-491d-9c4e-ed915abc5f4b)) - (fp_line (start -34.42 41.4) (end -28.07 41.4) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a7968850-1938-4294-8d95-0def802fd878)) - (fp_line (start -29.97 0.51) (end -29.97 9.65) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp e5929d6c-af63-457c-a781-402f7fcdf5e0)) - (fp_line (start -29.97 9.65) (end -28.07 9.65) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp c974279d-9ebd-49d8-8e5a-9a7f20deb28d)) - (fp_line (start -28.07 -2.67) (end -28.07 0.51) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 4b72a21f-e0d5-4d39-875a-962c8d85f7b5)) - (fp_line (start -28.07 0.51) (end -29.97 0.51) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 92a2fb73-7358-4864-8c8c-c2e09d542619)) - (fp_line (start -28.07 9.65) (end -28.07 29.72) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f3e99da1-6152-446e-95fc-ed1cf61c428f)) - (fp_line (start -28.07 29.72) (end -34.42 29.72) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp bd57415c-c6ce-46b3-8e0e-6ba826673d2c)) - (fp_line (start -28.07 41.4) (end -28.07 50.93) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 12a53824-1d50-469c-88ce-74177804fe70)) - (fp_line (start -28.07 50.93) (end 36.58 50.93) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f2fb3807-fa24-4c44-869f-55bebe306cde)) - (fp_line (start 36.58 50.93) (end 38.23 49.28) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp f6cc1741-633e-4126-a089-0816277842d6)) - (fp_line (start 38.23 -2.67) (end -28.07 -2.67) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp a42477c5-0814-48e2-8bb4-3194d4a7a114)) - (fp_line (start 38.23 0) (end 38.23 -2.67) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fe55c492-1cd4-4a31-ba17-45cec6562669)) - (fp_line (start 38.23 37.85) (end 40.77 35.31) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 9a225b2b-01f7-4902-8f19-21d81c1bad64)) - (fp_line (start 38.23 49.28) (end 38.23 37.85) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 7cf72054-7243-40e5-8b66-b6ef629958d7)) - (fp_line (start 40.77 2.54) (end 38.23 0) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 1448e168-90d7-4d43-a4f8-ac4801d2860f)) - (fp_line (start 40.77 35.31) (end 40.77 2.54) - (stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fd634328-d1b2-41d5-91c0-09336c033091)) - (fp_line (start -34.54 29.59) (end -28.19 29.59) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 4f387c9d-8110-4e52-9424-63f465a3bb54)) - (fp_line (start -34.54 41.53) (end -34.54 29.59) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 9acd21a3-4cda-45c3-9aef-c4252559923f)) - (fp_line (start -30.1 0.38) (end -28.19 0.38) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 3891e5a5-ad79-43b2-b156-127a1c3ccb83)) - (fp_line (start -30.1 9.78) (end -30.1 0.38) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6e2f2c98-1694-4df9-b51f-1f7eb341ce74)) - (fp_line (start -28.19 -2.79) (end 38.35 -2.79) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 40cc7250-96b2-4a90-b671-358560952c01)) - (fp_line (start -28.19 0.38) (end -28.19 -2.79) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 579c5c4b-f03c-4f4e-8174-41246b93bdea)) - (fp_line (start -28.19 9.78) (end -30.1 9.78) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 45f28a89-b48b-4819-b7c3-992fc9bdc2e6)) - (fp_line (start -28.19 29.59) (end -28.19 9.78) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 09ca28c0-49bb-48c5-bdbd-c7094a6771b4)) - (fp_line (start -28.19 41.53) (end -34.54 41.53) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6a6a2469-37d0-488d-901f-41c74b239b41)) - (fp_line (start -28.19 51.05) (end -28.19 41.53) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 28d6f309-acbe-46d4-98bf-3bf16951dbd5)) - (fp_line (start 36.58 51.05) (end -28.19 51.05) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp f1aa050b-55a5-4493-92dc-9861084f6d8f)) - (fp_line (start 38.35 -2.79) (end 38.35 0) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 34f49651-9ce3-4d5f-8286-d3acbd30b5c0)) - (fp_line (start 38.35 0) (end 40.89 2.54) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 969f0134-c994-4771-be1c-9759b6f2ad4f)) - (fp_line (start 38.35 37.85) (end 38.35 49.28) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp b51a972e-b43e-412e-aaf9-d2404835c775)) - (fp_line (start 38.35 49.28) (end 36.58 51.05) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6a663e48-3b4a-410c-936b-f911f5823ff0)) - (fp_line (start 40.89 2.54) (end 40.89 35.31) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 87343d06-fa4b-4867-855a-ccfc8c4d8394)) - (fp_line (start 40.89 35.31) (end 38.35 37.85) - (stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 40cc40d4-d39b-4663-beeb-1c4882d144b0)) - (fp_line (start -34.29 29.84) (end -18.41 29.84) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 13fb94d8-fb87-4813-b35d-96a3958482c0)) - (fp_line (start -34.29 41.27) (end -34.29 29.84) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5dde0702-9740-4d6a-9c06-272beb4a26fc)) - (fp_line (start -29.84 0.64) (end -16.51 0.64) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp e73e6b87-b6d8-43e8-a1f7-afdb76b3bff0)) - (fp_line (start -29.84 9.53) (end -29.84 0.64) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 400b68ed-7b4d-4b83-9d16-90422990366a)) - (fp_line (start -27.94 -2.54) (end 38.1 -2.54) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 73029267-145c-4e26-8b7f-c56beba3afe6)) - (fp_line (start -27.94 50.8) (end -27.94 -2.54) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9b2df58d-4cab-465e-a004-24aa7ed54705)) - (fp_line (start -18.41 29.84) (end -18.41 41.27) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7e56182e-818b-46df-970f-246ba2e114a5)) - (fp_line (start -18.41 41.27) (end -34.29 41.27) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp cd9f4b82-27ab-45b2-8e9b-7b47968c7d09)) - (fp_line (start -16.51 0.64) (end -16.51 9.53) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c97212bd-df41-4ace-8872-1ab88e573348)) - (fp_line (start -16.51 9.53) (end -29.84 9.53) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp c4c798d9-628a-4abd-b933-f2b784b8f1c5)) - (fp_line (start 36.58 50.8) (end -27.94 50.8) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp ed5cd10b-7a36-4fe1-a575-c923f3c00b2e)) - (fp_line (start 38.1 -2.54) (end 38.1 0) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp fd476fb9-14b4-4713-813b-fc8ae76786e5)) - (fp_line (start 38.1 0) (end 40.64 2.54) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 42106c6c-da9a-4403-baae-7094862cd5b7)) - (fp_line (start 38.1 37.85) (end 38.1 49.28) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 24010097-6c62-48b8-b549-c2b1cbe57792)) - (fp_line (start 38.1 49.28) (end 36.58 50.8) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 689abfcd-6034-4266-bbd2-9ffcac0801e4)) - (fp_line (start 40.64 2.54) (end 40.64 35.31) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2f447544-ef26-4198-8013-6097cd5db096)) - (fp_line (start 40.64 35.31) (end 38.1 37.85) - (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bcf2465f-a26f-4f5a-9776-cb28d26b7318)) - (pad "1" thru_hole rect (at 0 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 1 "unconnected-(A1-NC-Pad1)") (pinfunction "NC") (pintype "no_connect") (tstamp 44af3d2b-143c-4a8f-ad01-249857ddf7aa)) - (pad "2" thru_hole oval (at 2.54 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 2 "unconnected-(A1-IOREF-Pad2)") (pinfunction "IOREF") (pintype "output") (tstamp 99936de8-81ea-4f2a-8441-93a17c0c4871)) - (pad "3" thru_hole oval (at 5.08 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 3 "unconnected-(A1-~{RESET}-Pad3)") (pinfunction "~{RESET}") (pintype "input") (tstamp cd39845e-bab6-4b7b-bc50-b848f685477b)) - (pad "4" thru_hole oval (at 7.62 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 4 "VCC") (pinfunction "3V3") (pintype "power_out") (tstamp c6b6706a-4e44-41a3-9714-a54d024949c7)) - (pad "5" thru_hole oval (at 10.16 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 5 "unconnected-(A1-+5V-Pad5)") (pinfunction "+5V") (pintype "power_out") (tstamp 6833e498-9991-44f1-b0c2-dc573bb483d1)) - (pad "6" thru_hole oval (at 12.7 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 6 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 03c058eb-af06-4ad4-838a-7f1e52090dca)) - (pad "7" thru_hole oval (at 15.24 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 6 "GND") (pinfunction "GND") (pintype "power_in") (tstamp b4db02d4-4000-4773-919e-7071d7e08ff6)) - (pad "8" thru_hole oval (at 17.78 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 7 "unconnected-(A1-VIN-Pad8)") (pinfunction "VIN") (pintype "power_in") (tstamp a948cbd9-c383-455e-9866-c39293141199)) - (pad "9" thru_hole oval (at 22.86 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 8 "GP_P2_UP") (pinfunction "A0") (pintype "bidirectional") (tstamp 984ee39f-57cb-425c-bb8e-1540a997e138)) - (pad "10" thru_hole oval (at 25.4 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 9 "GP_P2_DOWN") (pinfunction "A1") (pintype "bidirectional") (tstamp ce74ec1b-4811-4d64-9472-d6e0b7c34dfc)) - (pad "11" thru_hole oval (at 27.94 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 10 "GP_P2_LEFT") (pinfunction "A2") (pintype "bidirectional") (tstamp 0a01e545-4808-4e96-874c-41cb95413b76)) - (pad "12" thru_hole oval (at 30.48 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 11 "GP_P2_RIGHT") (pinfunction "A3") (pintype "bidirectional") (tstamp 6223031d-c054-4f19-8735-5fcb93d421a9)) - (pad "13" thru_hole oval (at 33.02 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 12 "GP_P2_BUT_1") (pinfunction "SDA/A4") (pintype "bidirectional") (tstamp 8c0a748f-f657-4b20-948c-d6a03dd8401c)) - (pad "14" thru_hole oval (at 35.56 0 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 13 "GP_P2_BUT_2") (pinfunction "SCL/A5") (pintype "bidirectional") (tstamp a17c3128-ce08-4623-bcec-6b7ec1297ea4)) - (pad "15" thru_hole oval (at 35.56 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 14 "unconnected-(A1-D0{slash}RX-Pad15)") (pinfunction "D0/RX") (pintype "bidirectional") (tstamp f064c20c-d646-472c-9177-a1002a2b31c6)) - (pad "16" thru_hole oval (at 33.02 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 15 "unconnected-(A1-D1{slash}TX-Pad16)") (pinfunction "D1/TX") (pintype "bidirectional") (tstamp 29518c81-950a-4e03-9e67-483868b834b4)) - (pad "17" thru_hole oval (at 30.48 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 16 "GP_P1_UP") (pinfunction "D2") (pintype "bidirectional") (tstamp 6465f0c8-3210-4f34-ae71-121b0881033f)) - (pad "18" thru_hole oval (at 27.94 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 17 "GP_P1_DOWN") (pinfunction "D3") (pintype "bidirectional") (tstamp d6534579-556e-4683-816a-f2f598e50e09)) - (pad "19" thru_hole oval (at 25.4 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 18 "GP_P1_LEFT") (pinfunction "D4") (pintype "bidirectional") (tstamp bf02f91c-08b0-463f-93b8-c5bfec36c658)) - (pad "20" thru_hole oval (at 22.86 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 19 "GP_P1_RIGHT") (pinfunction "D5") (pintype "bidirectional") (tstamp eaed1c04-8fdd-4e26-a74c-aeee86f75e92)) - (pad "21" thru_hole oval (at 20.32 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 20 "GP_P1_BUT_1") (pinfunction "D6") (pintype "bidirectional") (tstamp 0363c988-3128-41dc-9f1d-8e636ec65c0c)) - (pad "22" thru_hole oval (at 17.78 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 21 "GP_P1_BUT_2") (pinfunction "D7") (pintype "bidirectional") (tstamp f710686a-aaae-4e77-bd99-acd2af9dd300)) - (pad "23" thru_hole oval (at 13.72 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 22 "PPU_VRAM_WEN") (pinfunction "D8") (pintype "bidirectional") (tstamp 97067b86-2fd1-45a4-9df4-ac5b7bff66ed)) - (pad "24" thru_hole oval (at 11.18 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 23 "unconnected-(A1-D9-Pad24)") (pinfunction "D9") (pintype "bidirectional") (tstamp 1a1897e4-7725-4223-a8e8-a9d19443850c)) - (pad "25" thru_hole oval (at 8.64 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 24 "unconnected-(A1-D10-Pad25)") (pinfunction "D10") (pintype "bidirectional") (tstamp d72d22d0-8c91-4e96-a6c3-ebc4ae358807)) - (pad "26" thru_hole oval (at 6.1 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 25 "SPI_MOSI") (pinfunction "D11") (pintype "bidirectional") (tstamp 95bef109-f10c-470c-8783-eca128677c89)) - (pad "27" thru_hole oval (at 3.56 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 26 "unconnected-(A1-D12-Pad27)") (pinfunction "D12") (pintype "bidirectional") (tstamp 406569cf-9187-4a4d-b797-ce4224940f9a)) - (pad "28" thru_hole oval (at 1.02 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 27 "SPI_CLK") (pinfunction "D13") (pintype "bidirectional") (tstamp e1740cf3-aa55-4fcc-89c6-3959ad48027e)) - (pad "29" thru_hole oval (at -1.52 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 6 "GND") (pinfunction "GND") (pintype "power_in") (tstamp bf967080-c14f-4dc8-bc50-b1ef36506d8a)) - (pad "30" thru_hole oval (at -4.06 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 28 "unconnected-(A1-AREF-Pad30)") (pinfunction "AREF") (pintype "input") (tstamp a7765549-6a55-4f2f-97fe-fe8acf99632e)) - (pad "31" thru_hole oval (at -6.6 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 29 "unconnected-(A1-SDA{slash}A4-Pad31)") (pinfunction "SDA/A4") (pintype "bidirectional") (tstamp 0d8bd3f4-bfdc-40fa-95a7-4f7072c08d46)) - (pad "32" thru_hole oval (at -9.14 48.26 90) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") - (net 30 "unconnected-(A1-SCL{slash}A5-Pad32)") (pinfunction "SCL/A5") (pintype "bidirectional") (tstamp 18c2fb6b-bad6-419f-baad-0b3799b61d7b)) - (model "${KICAD6_3DMODEL_DIR}/Module.3dshapes/Arduino_UNO_R3.wrl" - (offset (xyz 0 0 0)) - (scale (xyz 1 1 1)) - (rotate (xyz 0 0 0)) - ) - ) - (footprint "Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical" (layer "F.Cu") (tstamp 5a570195-9e23-42f8-8068-b04b37ddd527) - (at 30.48 22.86) + (at 30.48 53.34) (descr "Through hole straight pin header, 2x04, 2.54mm pitch, double rows") (tags "Through hole pin header THT 2x04 2.54mm double row") (property "Sheetfile" "hardware.kicad_sch") @@ -667,7 +473,7 @@ (fp_line (start 7.62 0) (end 6.96 0) (stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 209bab79-b7aa-4dda-b999-bc33a6551151)) (pad "1" thru_hole circle (at 0 0) (size 1.6 1.6) (drill 0.8) (layers "*.Cu" "*.Mask") - (net 45 "Net-(J6-Pin_7)") (pintype "passive") (tstamp 282407f1-c448-4298-8a01-951fc9c2a043)) + (net 44 "Net-(J6-Pin_7)") (pintype "passive") (tstamp 282407f1-c448-4298-8a01-951fc9c2a043)) (pad "2" thru_hole oval (at 7.62 0) (size 1.6 1.6) (drill 0.8) (layers "*.Cu" "*.Mask") (net 31 "Net-(C1-Pad1)") (pintype "passive") (tstamp 6837a657-baeb-45f3-916c-740acb92f05b)) (model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl" @@ -805,21 +611,21 @@ (pad "4" thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") (net 42 "unconnected-(J6-Pin_4-Pad4)") (pinfunction "Pin_4") (pintype "passive") (tstamp cc42ee7e-918b-4514-8c33-6a447e010d78)) (pad "5" thru_hole oval (at 0 10.16) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 43 "unconnected-(J6-Pin_5-Pad5)") (pinfunction "Pin_5") (pintype "passive") (tstamp 11e663dc-c411-467c-8a62-31245192c8df)) + (net 6 "GND") (pinfunction "Pin_5") (pintype "passive") (tstamp 11e663dc-c411-467c-8a62-31245192c8df)) (pad "6" thru_hole oval (at 0 12.7) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 44 "unconnected-(J6-Pin_6-Pad6)") (pinfunction "Pin_6") (pintype "passive") (tstamp f96ba032-6860-440e-96fc-13c33edcaf29)) + (net 43 "unconnected-(J6-Pin_6-Pad6)") (pinfunction "Pin_6") (pintype "passive") (tstamp f96ba032-6860-440e-96fc-13c33edcaf29)) (pad "7" thru_hole oval (at 2.54 0) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 45 "Net-(J6-Pin_7)") (pinfunction "Pin_7") (pintype "passive") (tstamp 585f85c3-3cd3-4360-a613-5bcb3d758f41)) + (net 44 "Net-(J6-Pin_7)") (pinfunction "Pin_7") (pintype "passive") (tstamp 585f85c3-3cd3-4360-a613-5bcb3d758f41)) (pad "8" thru_hole oval (at 2.54 2.54) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 46 "unconnected-(J6-Pin_8-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp c0e546c6-17f0-48b1-bfe0-6b774996ffb0)) + (net 45 "unconnected-(J6-Pin_8-Pad8)") (pinfunction "Pin_8") (pintype "passive") (tstamp c0e546c6-17f0-48b1-bfe0-6b774996ffb0)) (pad "9" thru_hole oval (at 2.54 5.08) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 47 "unconnected-(J6-Pin_9-Pad9)") (pinfunction "Pin_9") (pintype "passive") (tstamp 6a1206cd-c443-4775-b5d7-b313cd4248e7)) + (net 46 "unconnected-(J6-Pin_9-Pad9)") (pinfunction "Pin_9") (pintype "passive") (tstamp 6a1206cd-c443-4775-b5d7-b313cd4248e7)) (pad "10" thru_hole oval (at 2.54 7.62) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 48 "unconnected-(J6-Pin_10-Pad10)") (pinfunction "Pin_10") (pintype "passive") (tstamp 15434db6-74da-49b3-a95d-59c6f2682660)) + (net 47 "unconnected-(J6-Pin_10-Pad10)") (pinfunction "Pin_10") (pintype "passive") (tstamp 15434db6-74da-49b3-a95d-59c6f2682660)) (pad "11" thru_hole oval (at 2.54 10.16) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") (net 6 "GND") (pinfunction "Pin_11") (pintype "passive") (tstamp 9d496423-253b-4ab8-baa1-0e443ea46c49)) (pad "12" thru_hole oval (at 2.54 12.7) (size 1.7 1.7) (drill 1) (layers "*.Cu" "*.Mask") - (net 49 "unconnected-(J6-Pin_12-Pad12)") (pinfunction "Pin_12") (pintype "passive") (tstamp d9f26b6e-ddbc-4cce-a7a3-a5765882f5ac)) + (net 48 "unconnected-(J6-Pin_12-Pad12)") (pinfunction "Pin_12") (pintype "passive") (tstamp d9f26b6e-ddbc-4cce-a7a3-a5765882f5ac)) (model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_2x06_P2.54mm_Vertical.wrl" (offset (xyz 0 0 0)) (scale (xyz 1 1 1)) @@ -829,7 +635,7 @@ (footprint "Connector_PinHeader_2.54mm:PinHeader_2x04_P2.54mm_Vertical" (layer "F.Cu") (tstamp e61ea2f9-2607-4e06-b2b9-a60823ee73c7) - (at 30.48 53.34) + (at 30.48 20.32) (descr "Through hole straight pin header, 2x04, 2.54mm pitch, double rows") (tags "Through hole pin header THT 2x04 2.54mm double row") (property "Sheetfile" "hardware.kicad_sch") @@ -901,29 +707,220 @@ ) ) + (footprint "Module:Arduino_UNO_R3" (layer "B.Cu") + (tstamp 186f5b5c-ddb3-490a-ae64-32519350e4fc) + (at 53.34 66.04) + (descr "Arduino UNO R3, http://www.mouser.com/pdfdocs/Gravitech_Arduino_Nano3_0.pdf") + (tags "Arduino UNO R3") + (property "Field4" "") + (property "Sheetfile" "hardware.kicad_sch") + (property "Sheetname" "") + (property "ki_description" "Arduino UNO Microcontroller Module, release 3") + (property "ki_keywords" "Arduino UNO R3 Microcontroller Module Atmel AVR USB") + (path "/e037481e-1397-4cfd-9c3c-4a1e6476185d") + (attr through_hole) + (fp_text reference "A1" (at 1.27 3.81 -360) (layer "B.SilkS") + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + (tstamp 7a901f3b-f479-4206-a735-21de007c264f) + ) + (fp_text value "STM32F091RC" (at 0 -22.86) (layer "B.Fab") hide + (effects (font (size 1 1) (thickness 0.15)) (justify mirror)) + (tstamp 6b2108a4-b5f2-4526-9b95-6941b0f952ea) + ) + (fp_line (start -34.42 -41.4) (end -28.07 -41.4) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp a7968850-1938-4294-8d95-0def802fd878)) + (fp_line (start -34.42 -29.72) (end -34.42 -41.4) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp a3c4d085-aa8b-491d-9c4e-ed915abc5f4b)) + (fp_line (start -29.97 -9.65) (end -28.07 -9.65) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp c974279d-9ebd-49d8-8e5a-9a7f20deb28d)) + (fp_line (start -29.97 -0.51) (end -29.97 -9.65) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp e5929d6c-af63-457c-a781-402f7fcdf5e0)) + (fp_line (start -28.07 -50.93) (end 36.58 -50.93) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp f2fb3807-fa24-4c44-869f-55bebe306cde)) + (fp_line (start -28.07 -41.4) (end -28.07 -50.93) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp 12a53824-1d50-469c-88ce-74177804fe70)) + (fp_line (start -28.07 -29.72) (end -34.42 -29.72) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp bd57415c-c6ce-46b3-8e0e-6ba826673d2c)) + (fp_line (start -28.07 -9.65) (end -28.07 -29.72) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp f3e99da1-6152-446e-95fc-ed1cf61c428f)) + (fp_line (start -28.07 -0.51) (end -29.97 -0.51) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp 92a2fb73-7358-4864-8c8c-c2e09d542619)) + (fp_line (start -28.07 2.67) (end -28.07 -0.51) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp 4b72a21f-e0d5-4d39-875a-962c8d85f7b5)) + (fp_line (start 36.58 -50.93) (end 38.23 -49.28) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp f6cc1741-633e-4126-a089-0816277842d6)) + (fp_line (start 38.23 -49.28) (end 38.23 -37.85) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp 7cf72054-7243-40e5-8b66-b6ef629958d7)) + (fp_line (start 38.23 -37.85) (end 40.77 -35.31) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp 9a225b2b-01f7-4902-8f19-21d81c1bad64)) + (fp_line (start 38.23 0) (end 38.23 2.67) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp fe55c492-1cd4-4a31-ba17-45cec6562669)) + (fp_line (start 38.23 2.67) (end -28.07 2.67) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp a42477c5-0814-48e2-8bb4-3194d4a7a114)) + (fp_line (start 40.77 -35.31) (end 40.77 -2.54) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp fd634328-d1b2-41d5-91c0-09336c033091)) + (fp_line (start 40.77 -2.54) (end 38.23 0) + (stroke (width 0.12) (type solid)) (layer "B.SilkS") (tstamp 1448e168-90d7-4d43-a4f8-ac4801d2860f)) + (fp_line (start -34.54 -41.53) (end -34.54 -29.59) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 9acd21a3-4cda-45c3-9aef-c4252559923f)) + (fp_line (start -34.54 -29.59) (end -28.19 -29.59) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 4f387c9d-8110-4e52-9424-63f465a3bb54)) + (fp_line (start -30.1 -9.78) (end -30.1 -0.38) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 6e2f2c98-1694-4df9-b51f-1f7eb341ce74)) + (fp_line (start -30.1 -0.38) (end -28.19 -0.38) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 3891e5a5-ad79-43b2-b156-127a1c3ccb83)) + (fp_line (start -28.19 -51.05) (end -28.19 -41.53) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 28d6f309-acbe-46d4-98bf-3bf16951dbd5)) + (fp_line (start -28.19 -41.53) (end -34.54 -41.53) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 6a6a2469-37d0-488d-901f-41c74b239b41)) + (fp_line (start -28.19 -29.59) (end -28.19 -9.78) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 09ca28c0-49bb-48c5-bdbd-c7094a6771b4)) + (fp_line (start -28.19 -9.78) (end -30.1 -9.78) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 45f28a89-b48b-4819-b7c3-992fc9bdc2e6)) + (fp_line (start -28.19 -0.38) (end -28.19 2.79) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 579c5c4b-f03c-4f4e-8174-41246b93bdea)) + (fp_line (start -28.19 2.79) (end 38.35 2.79) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 40cc7250-96b2-4a90-b671-358560952c01)) + (fp_line (start 36.58 -51.05) (end -28.19 -51.05) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp f1aa050b-55a5-4493-92dc-9861084f6d8f)) + (fp_line (start 38.35 -49.28) (end 36.58 -51.05) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 6a663e48-3b4a-410c-936b-f911f5823ff0)) + (fp_line (start 38.35 -37.85) (end 38.35 -49.28) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp b51a972e-b43e-412e-aaf9-d2404835c775)) + (fp_line (start 38.35 0) (end 40.89 -2.54) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 969f0134-c994-4771-be1c-9759b6f2ad4f)) + (fp_line (start 38.35 2.79) (end 38.35 0) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 34f49651-9ce3-4d5f-8286-d3acbd30b5c0)) + (fp_line (start 40.89 -35.31) (end 38.35 -37.85) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 40cc40d4-d39b-4663-beeb-1c4882d144b0)) + (fp_line (start 40.89 -2.54) (end 40.89 -35.31) + (stroke (width 0.05) (type solid)) (layer "B.CrtYd") (tstamp 87343d06-fa4b-4867-855a-ccfc8c4d8394)) + (fp_line (start -34.29 -41.27) (end -34.29 -29.84) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 5dde0702-9740-4d6a-9c06-272beb4a26fc)) + (fp_line (start -34.29 -29.84) (end -18.41 -29.84) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 13fb94d8-fb87-4813-b35d-96a3958482c0)) + (fp_line (start -29.84 -9.53) (end -29.84 -0.64) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 400b68ed-7b4d-4b83-9d16-90422990366a)) + (fp_line (start -29.84 -0.64) (end -16.51 -0.64) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp e73e6b87-b6d8-43e8-a1f7-afdb76b3bff0)) + (fp_line (start -27.94 -50.8) (end -27.94 2.54) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 9b2df58d-4cab-465e-a004-24aa7ed54705)) + (fp_line (start -27.94 2.54) (end 38.1 2.54) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 73029267-145c-4e26-8b7f-c56beba3afe6)) + (fp_line (start -18.41 -41.27) (end -34.29 -41.27) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp cd9f4b82-27ab-45b2-8e9b-7b47968c7d09)) + (fp_line (start -18.41 -29.84) (end -18.41 -41.27) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 7e56182e-818b-46df-970f-246ba2e114a5)) + (fp_line (start -16.51 -9.53) (end -29.84 -9.53) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp c4c798d9-628a-4abd-b933-f2b784b8f1c5)) + (fp_line (start -16.51 -0.64) (end -16.51 -9.53) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp c97212bd-df41-4ace-8872-1ab88e573348)) + (fp_line (start 36.58 -50.8) (end -27.94 -50.8) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp ed5cd10b-7a36-4fe1-a575-c923f3c00b2e)) + (fp_line (start 38.1 -49.28) (end 36.58 -50.8) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 689abfcd-6034-4266-bbd2-9ffcac0801e4)) + (fp_line (start 38.1 -37.85) (end 38.1 -49.28) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 24010097-6c62-48b8-b549-c2b1cbe57792)) + (fp_line (start 38.1 0) (end 40.64 -2.54) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 42106c6c-da9a-4403-baae-7094862cd5b7)) + (fp_line (start 38.1 2.54) (end 38.1 0) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp fd476fb9-14b4-4713-813b-fc8ae76786e5)) + (fp_line (start 40.64 -35.31) (end 38.1 -37.85) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp bcf2465f-a26f-4f5a-9776-cb28d26b7318)) + (fp_line (start 40.64 -2.54) (end 40.64 -35.31) + (stroke (width 0.1) (type solid)) (layer "B.Fab") (tstamp 2f447544-ef26-4198-8013-6097cd5db096)) + (pad "1" thru_hole rect (at 0 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 1 "unconnected-(A1-NC-Pad1)") (pinfunction "NC") (pintype "no_connect") (tstamp 44af3d2b-143c-4a8f-ad01-249857ddf7aa)) + (pad "2" thru_hole oval (at 2.54 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 2 "unconnected-(A1-IOREF-Pad2)") (pinfunction "IOREF") (pintype "output") (tstamp 99936de8-81ea-4f2a-8441-93a17c0c4871)) + (pad "3" thru_hole oval (at 5.08 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 3 "unconnected-(A1-~{RESET}-Pad3)") (pinfunction "~{RESET}") (pintype "input") (tstamp cd39845e-bab6-4b7b-bc50-b848f685477b)) + (pad "4" thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 4 "VCC") (pinfunction "3V3") (pintype "power_out") (tstamp c6b6706a-4e44-41a3-9714-a54d024949c7)) + (pad "5" thru_hole oval (at 10.16 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 5 "unconnected-(A1-+5V-Pad5)") (pinfunction "+5V") (pintype "power_out") (tstamp 6833e498-9991-44f1-b0c2-dc573bb483d1)) + (pad "6" thru_hole oval (at 12.7 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 6 "GND") (pinfunction "GND") (pintype "power_in") (tstamp 03c058eb-af06-4ad4-838a-7f1e52090dca)) + (pad "7" thru_hole oval (at 15.24 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 6 "GND") (pinfunction "GND") (pintype "power_in") (tstamp b4db02d4-4000-4773-919e-7071d7e08ff6)) + (pad "8" thru_hole oval (at 17.78 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 7 "unconnected-(A1-VIN-Pad8)") (pinfunction "VIN") (pintype "power_in") (tstamp a948cbd9-c383-455e-9866-c39293141199)) + (pad "9" thru_hole oval (at 22.86 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 8 "GP_P2_UP") (pinfunction "A0") (pintype "bidirectional") (tstamp 984ee39f-57cb-425c-bb8e-1540a997e138)) + (pad "10" thru_hole oval (at 25.4 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 9 "GP_P2_DOWN") (pinfunction "A1") (pintype "bidirectional") (tstamp ce74ec1b-4811-4d64-9472-d6e0b7c34dfc)) + (pad "11" thru_hole oval (at 27.94 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 10 "GP_P2_LEFT") (pinfunction "A2") (pintype "bidirectional") (tstamp 0a01e545-4808-4e96-874c-41cb95413b76)) + (pad "12" thru_hole oval (at 30.48 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 11 "GP_P2_RIGHT") (pinfunction "A3") (pintype "bidirectional") (tstamp 6223031d-c054-4f19-8735-5fcb93d421a9)) + (pad "13" thru_hole oval (at 33.02 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 12 "GP_P2_BUT_1") (pinfunction "SDA/A4") (pintype "bidirectional") (tstamp 8c0a748f-f657-4b20-948c-d6a03dd8401c)) + (pad "14" thru_hole oval (at 35.56 0 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 13 "GP_P2_BUT_2") (pinfunction "SCL/A5") (pintype "bidirectional") (tstamp a17c3128-ce08-4623-bcec-6b7ec1297ea4)) + (pad "15" thru_hole oval (at 35.56 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 14 "unconnected-(A1-D0{slash}RX-Pad15)") (pinfunction "D0/RX") (pintype "bidirectional") (tstamp f064c20c-d646-472c-9177-a1002a2b31c6)) + (pad "16" thru_hole oval (at 33.02 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 15 "unconnected-(A1-D1{slash}TX-Pad16)") (pinfunction "D1/TX") (pintype "bidirectional") (tstamp 29518c81-950a-4e03-9e67-483868b834b4)) + (pad "17" thru_hole oval (at 30.48 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 16 "GP_P1_UP") (pinfunction "D2") (pintype "bidirectional") (tstamp 6465f0c8-3210-4f34-ae71-121b0881033f)) + (pad "18" thru_hole oval (at 27.94 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 17 "GP_P1_DOWN") (pinfunction "D3") (pintype "bidirectional") (tstamp d6534579-556e-4683-816a-f2f598e50e09)) + (pad "19" thru_hole oval (at 25.4 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 18 "GP_P1_LEFT") (pinfunction "D4") (pintype "bidirectional") (tstamp bf02f91c-08b0-463f-93b8-c5bfec36c658)) + (pad "20" thru_hole oval (at 22.86 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 19 "GP_P1_RIGHT") (pinfunction "D5") (pintype "bidirectional") (tstamp eaed1c04-8fdd-4e26-a74c-aeee86f75e92)) + (pad "21" thru_hole oval (at 20.32 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 20 "GP_P1_BUT_1") (pinfunction "D6") (pintype "bidirectional") (tstamp 0363c988-3128-41dc-9f1d-8e636ec65c0c)) + (pad "22" thru_hole oval (at 17.78 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 21 "GP_P1_BUT_2") (pinfunction "D7") (pintype "bidirectional") (tstamp f710686a-aaae-4e77-bd99-acd2af9dd300)) + (pad "23" thru_hole oval (at 13.72 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 22 "PPU_VRAM_WEN") (pinfunction "D8") (pintype "bidirectional") (tstamp 97067b86-2fd1-45a4-9df4-ac5b7bff66ed)) + (pad "24" thru_hole oval (at 11.18 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 23 "unconnected-(A1-D9-Pad24)") (pinfunction "D9") (pintype "bidirectional") (tstamp 1a1897e4-7725-4223-a8e8-a9d19443850c)) + (pad "25" thru_hole oval (at 8.64 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 24 "unconnected-(A1-D10-Pad25)") (pinfunction "D10") (pintype "bidirectional") (tstamp d72d22d0-8c91-4e96-a6c3-ebc4ae358807)) + (pad "26" thru_hole oval (at 6.1 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 25 "SPI_MOSI") (pinfunction "D11") (pintype "bidirectional") (tstamp 95bef109-f10c-470c-8783-eca128677c89)) + (pad "27" thru_hole oval (at 3.56 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 26 "unconnected-(A1-D12-Pad27)") (pinfunction "D12") (pintype "bidirectional") (tstamp 406569cf-9187-4a4d-b797-ce4224940f9a)) + (pad "28" thru_hole oval (at 1.02 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 27 "SPI_CLK") (pinfunction "D13") (pintype "bidirectional") (tstamp e1740cf3-aa55-4fcc-89c6-3959ad48027e)) + (pad "29" thru_hole oval (at -1.52 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 6 "GND") (pinfunction "GND") (pintype "power_in") (tstamp bf967080-c14f-4dc8-bc50-b1ef36506d8a)) + (pad "30" thru_hole oval (at -4.06 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 28 "unconnected-(A1-AREF-Pad30)") (pinfunction "AREF") (pintype "input") (tstamp a7765549-6a55-4f2f-97fe-fe8acf99632e)) + (pad "31" thru_hole oval (at -6.6 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 29 "unconnected-(A1-SDA{slash}A4-Pad31)") (pinfunction "SDA/A4") (pintype "bidirectional") (tstamp 0d8bd3f4-bfdc-40fa-95a7-4f7072c08d46)) + (pad "32" thru_hole oval (at -9.14 -48.26 270) (size 1.6 1.6) (drill 1) (layers "*.Cu" "*.Mask") + (net 30 "unconnected-(A1-SCL{slash}A5-Pad32)") (pinfunction "SCL/A5") (pintype "bidirectional") (tstamp 18c2fb6b-bad6-419f-baad-0b3799b61d7b)) + (model "${KICAD6_3DMODEL_DIR}/Module.3dshapes/Arduino_UNO_R3.wrl" + (offset (xyz 0 0 0)) + (scale (xyz 1 1 1)) + (rotate (xyz 0 0 0)) + ) + ) + (segment (start 127 40.64) (end 124.46 43.18) (width 0.25) (layer "F.Cu") (net 6) (tstamp 0e2f8487-821f-4980-8996-6ffcec039f8e)) - (segment (start 81.28 45.72) (end 81.28 33.02) (width 0.25) (layer "F.Cu") (net 6) (tstamp 0ffb57e2-03a8-4ebc-a728-b878fb8fae34)) - (segment (start 66.04 17.78) (end 63.5 17.78) (width 0.25) (layer "F.Cu") (net 6) (tstamp 3e62428b-f12c-4f29-a515-5cb7d70e372e)) - (segment (start 78.74 45.72) (end 81.28 45.72) (width 0.25) (layer "F.Cu") (net 6) (tstamp 46c216d0-496a-4aaa-92d9-fe168a6b98c9)) + (segment (start 51.82 44.2) (end 53.34 45.72) (width 0.25) (layer "F.Cu") (net 6) (tstamp 4309b868-2e78-4f0a-8363-7d7f99bd0cc2)) (segment (start 121.92 35.56) (end 127 40.64) (width 0.25) (layer "F.Cu") (net 6) (tstamp 6bf39048-2bc0-4a75-b80a-db2a4df4116d)) (segment (start 124.46 43.18) (end 114.3 43.18) (width 0.25) (layer "F.Cu") (net 6) (tstamp a5eba4d9-9324-49d7-adc2-47964079fede)) - (segment (start 81.28 33.02) (end 66.04 33.02) (width 0.25) (layer "F.Cu") (net 6) (tstamp b941520c-f859-4681-a499-ea9e968add27)) + (segment (start 53.34 45.72) (end 76.2 45.72) (width 0.25) (layer "F.Cu") (net 6) (tstamp c2a441bb-1087-474c-b7bc-f4022d921242)) (segment (start 119.5 35.56) (end 121.92 35.56) (width 0.25) (layer "F.Cu") (net 6) (tstamp c87b0d52-9112-490f-a93a-3d54e0b89559)) (segment (start 114.3 43.18) (end 114.3 45.72) (width 0.25) (layer "F.Cu") (net 6) (tstamp ce078426-027d-4d63-bcce-7aed16e11f5b)) - (segment (start 66.04 33.02) (end 66.04 17.78) (width 0.25) (layer "F.Cu") (net 6) (tstamp d1e6095c-f638-4de4-bf3b-1705af0b8e1b)) (segment (start 114.3 45.72) (end 101.6 45.72) (width 0.25) (layer "F.Cu") (net 6) (tstamp e0149dac-3804-4a41-aa25-d25d749a8ccb)) - (segment (start 66.04 40.64) (end 76.2 40.64) (width 0.25) (layer "F.Cu") (net 22) (tstamp 0505c7f6-2896-41f4-a283-1e678ac396ea)) - (segment (start 64.52 66.04) (end 64.52 42.16) (width 0.25) (layer "F.Cu") (net 22) (tstamp 86df688b-1b99-4ccf-b8a8-bdba64acd85a)) - (segment (start 64.52 42.16) (end 66.04 40.64) (width 0.25) (layer "F.Cu") (net 22) (tstamp f91e32e9-0626-4a4e-bf12-17cfeefd2d7b)) - (segment (start 56.9 39.62) (end 56.9 66.04) (width 0.25) (layer "F.Cu") (net 25) (tstamp 059e1577-b30e-4e30-99a7-bf7bf5d2b32c)) - (segment (start 58.42 38.1) (end 56.9 39.62) (width 0.25) (layer "F.Cu") (net 25) (tstamp 7a44182f-8eb1-4fe4-8f32-95ea13ea2f44)) - (segment (start 76.2 38.1) (end 58.42 38.1) (width 0.25) (layer "F.Cu") (net 25) (tstamp c8122f4c-e9ad-4431-8f39-c06382a411cc)) - (segment (start 53.34 35.56) (end 51.82 37.08) (width 0.25) (layer "F.Cu") (net 27) (tstamp 3b0f2ee5-87b8-4b61-bf26-d1f11c02b20c)) - (segment (start 51.82 37.08) (end 51.82 66.04) (width 0.25) (layer "F.Cu") (net 27) (tstamp 4230e113-a874-46f5-b1b7-f3fa6187418e)) - (segment (start 76.2 35.56) (end 53.34 35.56) (width 0.25) (layer "F.Cu") (net 27) (tstamp 472227c6-9d1e-4d46-ba67-1b757c58b8da)) + (segment (start 51.82 17.78) (end 51.82 44.2) (width 0.25) (layer "F.Cu") (net 6) (tstamp ee4613fb-393a-4efe-968c-f84e3fccbfdd)) + (segment (start 67.06 17.78) (end 67.06 34.04) (width 0.25) (layer "F.Cu") (net 22) (tstamp 012b25ab-6718-4dd0-b289-6516c49cb8c0)) + (segment (start 68.58 35.56) (end 76.2 35.56) (width 0.25) (layer "F.Cu") (net 22) (tstamp 1ae31b13-7c69-4348-99e2-fe0f51380e44)) + (segment (start 67.06 34.04) (end 68.58 35.56) (width 0.25) (layer "F.Cu") (net 22) (tstamp 1c563ea3-b634-4366-96df-7b49f2ebba63)) + (segment (start 59.44 17.78) (end 59.44 36.58) (width 0.25) (layer "F.Cu") (net 25) (tstamp 3f435156-0587-454c-b157-4c775bab101b)) + (segment (start 60.96 38.1) (end 76.2 38.1) (width 0.25) (layer "F.Cu") (net 25) (tstamp 63f22932-d735-40ae-bb37-c7965716368e)) + (segment (start 59.44 36.58) (end 60.96 38.1) (width 0.25) (layer "F.Cu") (net 25) (tstamp d0a69c7b-cf13-46da-94c3-2efdd0b379b2)) + (segment (start 54.36 17.78) (end 54.36 39.12) (width 0.25) (layer "F.Cu") (net 27) (tstamp b516e867-e88a-43a5-ade1-b0a415ab08c7)) + (segment (start 55.88 40.64) (end 76.2 40.64) (width 0.25) (layer "F.Cu") (net 27) (tstamp e77477b9-5be6-41f3-b651-509449a58a6d)) + (segment (start 54.36 39.12) (end 55.88 40.64) (width 0.25) (layer "F.Cu") (net 27) (tstamp f3e92d46-ecd7-4c3c-bf79-235d99f3b0e0)) (segment (start 114.3 35.56) (end 114.3 38.18) (width 0.25) (layer "F.Cu") (net 31) (tstamp 362bd879-cedf-4de4-992c-7a9a9b8b5f2f)) (segment (start 122.12 38.18) (end 124.5 40.56) (width 0.25) (layer "F.Cu") (net 31) (tstamp 8a6fd3f1-a2b4-4c72-b92d-6f4aa5fcd679)) (segment (start 114.3 38.18) (end 122.12 38.18) (width 0.25) (layer "F.Cu") (net 31) (tstamp ce8a5541-db96-4520-b513-c1761a7e1ceb)) - (segment (start 101.6 35.56) (end 106.68 35.56) (width 0.25) (layer "F.Cu") (net 45) (tstamp 65b76877-86b9-46fb-965c-9bea3100bbee)) + (segment (start 101.6 35.56) (end 106.68 35.56) (width 0.25) (layer "F.Cu") (net 44) (tstamp 65b76877-86b9-46fb-965c-9bea3100bbee)) ) diff --git a/docs/hardware/hardware.kicad_sch b/docs/hardware/hardware.kicad_sch index 4ae7325..00be72d 100644 --- a/docs/hardware/hardware.kicad_sch +++ b/docs/hardware/hardware.kicad_sch @@ -622,36 +622,43 @@ ) ) - (junction (at 137.16 57.15) (diameter 0) (color 0 0 0 0) + (junction (at 107.95 57.15) (diameter 0) (color 0 0 0 0) + (uuid 187f32a7-5614-462c-84d1-e820dde3c496) + ) + (junction (at 138.43 57.15) (diameter 0) (color 0 0 0 0) (uuid 2174cb6b-c79f-4d1c-96d8-b1adb3b7338d) ) (junction (at 43.18 72.39) (diameter 0) (color 0 0 0 0) (uuid 28058d45-2416-4bed-894d-3b8746e17ac3) ) - (junction (at 137.16 46.99) (diameter 0) (color 0 0 0 0) + (junction (at 138.43 46.99) (diameter 0) (color 0 0 0 0) (uuid 8e37b9b4-e2c5-440a-907e-32c8e287d602) ) - (junction (at 125.73 57.15) (diameter 0) (color 0 0 0 0) + (junction (at 127 57.15) (diameter 0) (color 0 0 0 0) (uuid f9346bcf-bcee-4066-9d7e-5f218a6106bc) ) - (wire (pts (xy 137.16 57.15) (xy 137.16 55.88)) + (wire (pts (xy 138.43 57.15) (xy 138.43 55.88)) (stroke (width 0) (type default)) (uuid 18f87e4d-7d47-4be2-8b86-ac34c86eeddc) ) - (wire (pts (xy 106.68 57.15) (xy 104.14 57.15)) + (wire (pts (xy 87.63 57.15) (xy 91.44 57.15)) (stroke (width 0) (type default)) (uuid 33605525-db96-4fc4-83db-762a9917be6a) ) - (wire (pts (xy 125.73 57.15) (xy 125.73 62.23)) + (wire (pts (xy 127 57.15) (xy 127 62.23)) (stroke (width 0) (type default)) (uuid 3635d179-f84b-4254-a3d9-74230330d7ca) ) - (wire (pts (xy 135.89 46.99) (xy 137.16 46.99)) + (wire (pts (xy 137.16 46.99) (xy 138.43 46.99)) (stroke (width 0) (type default)) (uuid 37b0f2c3-b47b-4fa0-91c8-f959a6123d1a) ) - (wire (pts (xy 137.16 48.26) (xy 137.16 46.99)) + (wire (pts (xy 107.95 57.15) (xy 107.95 63.5)) + (stroke (width 0) (type default)) + (uuid 441703d7-220a-4fd3-842e-3e872a353b0f) + ) + (wire (pts (xy 138.43 48.26) (xy 138.43 46.99)) (stroke (width 0) (type default)) (uuid 4b12ac7b-e0d9-45b4-940d-e5c4a5788c9f) ) @@ -659,11 +666,11 @@ (stroke (width 0) (type default)) (uuid 67585fc4-1a0d-45fc-9249-65b53731debd) ) - (wire (pts (xy 137.16 57.15) (xy 146.05 57.15)) + (wire (pts (xy 138.43 57.15) (xy 147.32 57.15)) (stroke (width 0) (type default)) (uuid 7002e2ec-74e0-4dab-931f-b453f446fdc0) ) - (wire (pts (xy 146.05 46.99) (xy 137.16 46.99)) + (wire (pts (xy 147.32 46.99) (xy 138.43 46.99)) (stroke (width 0) (type default)) (uuid 7d445739-65e9-43b3-8322-97804387d87c) ) @@ -671,7 +678,7 @@ (stroke (width 0) (type default)) (uuid a5a8d692-848a-403e-b59a-4ea817b451e5) ) - (wire (pts (xy 123.19 46.99) (xy 128.27 46.99)) + (wire (pts (xy 124.46 46.99) (xy 129.54 46.99)) (stroke (width 0) (type default)) (uuid b056940d-08b7-4eb9-8d4f-941533d27271) ) @@ -679,23 +686,31 @@ (stroke (width 0) (type default)) (uuid c0efcef6-b4d4-4f7d-bbfa-70da3e407b4f) ) - (wire (pts (xy 125.73 57.15) (xy 137.16 57.15)) + (wire (pts (xy 127 57.15) (xy 138.43 57.15)) (stroke (width 0) (type default)) (uuid c34692e8-e9c5-4e2b-a88a-b5369411831d) ) - (wire (pts (xy 146.05 57.15) (xy 146.05 49.53)) + (wire (pts (xy 107.95 57.15) (xy 111.76 57.15)) + (stroke (width 0) (type default)) + (uuid d064f681-efb4-4435-86f9-1f13b6b2bd3a) + ) + (wire (pts (xy 147.32 57.15) (xy 147.32 49.53)) (stroke (width 0) (type default)) (uuid d6fe7fd7-07cb-4b0e-b3fc-5762e8fbe616) ) - (wire (pts (xy 106.68 57.15) (xy 106.68 60.96)) + (wire (pts (xy 87.63 57.15) (xy 87.63 62.23)) (stroke (width 0) (type default)) (uuid e31c03ce-f409-4173-851d-158a3ce3f417) ) + (wire (pts (xy 104.14 57.15) (xy 107.95 57.15)) + (stroke (width 0) (type default)) + (uuid f8885bb5-7050-4b23-af4c-f7697c057416) + ) (wire (pts (xy 64.77 36.83) (xy 82.55 36.83)) (stroke (width 0) (type default)) (uuid f9db127e-de5f-40c0-83b0-43004a7b3d65) ) - (wire (pts (xy 123.19 57.15) (xy 125.73 57.15)) + (wire (pts (xy 124.46 57.15) (xy 127 57.15)) (stroke (width 0) (type default)) (uuid fc704422-e8f0-485b-a194-0746bf18debc) ) @@ -798,10 +813,10 @@ (effects (font (size 1.27 1.27)) (justify right) hide) ) ) - (global_label "SPI_CLK" (shape input) (at 91.44 46.99 180) (fields_autoplaced) + (global_label "SPI_CLK" (shape input) (at 91.44 52.07 180) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify right)) (uuid 8004fd75-c5f3-47c9-b252-91cf505302f3) - (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 80.9142 46.99 0) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 80.9142 52.07 0) (effects (font (size 1.27 1.27)) (justify right) hide) ) ) @@ -875,10 +890,10 @@ (effects (font (size 1.27 1.27)) (justify right) hide) ) ) - (global_label "PPU_VRAM_WEN" (shape input) (at 91.44 52.07 180) (fields_autoplaced) + (global_label "PPU_VRAM_WEN" (shape input) (at 91.44 46.99 180) (fields_autoplaced) (effects (font (size 1.27 1.27)) (justify right)) (uuid c786c23b-7648-4838-a747-4b793feda3f2) - (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 73.899 52.07 0) + (property "Intersheetrefs" "${INTERSHEET_REFS}" (at 73.899 46.99 0) (effects (font (size 1.27 1.27)) (justify right) hide) ) ) @@ -911,19 +926,19 @@ ) ) - (symbol (lib_id "power:GND") (at 125.73 62.23 0) (unit 1) + (symbol (lib_id "power:GND") (at 127 62.23 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid 07a3f9f8-a4fe-4dc9-b155-663dc89e5351) - (property "Reference" "#PWR06" (at 125.73 68.58 0) + (property "Reference" "#PWR06" (at 127 68.58 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "GND" (at 125.73 67.31 0) + (property "Value" "GND" (at 127 67.31 0) (effects (font (size 1.27 1.27))) ) - (property "Footprint" "" (at 125.73 62.23 0) + (property "Footprint" "" (at 127 62.23 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (at 125.73 62.23 0) + (property "Datasheet" "" (at 127 62.23 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 11696d94-3c2b-413f-b2b8-45f794bb0d41)) @@ -986,19 +1001,19 @@ ) ) - (symbol (lib_id "Connector_Audio:AudioJack2") (at 151.13 49.53 0) (mirror y) (unit 1) + (symbol (lib_id "Connector_Audio:AudioJack2") (at 152.4 49.53 0) (mirror y) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid 3e67b72a-3d20-484f-a9eb-aef187654a16) - (property "Reference" "J2" (at 156.21 48.26 0) + (property "Reference" "J2" (at 157.48 48.26 0) (effects (font (size 1.27 1.27)) (justify right)) ) - (property "Value" "AudioJack2" (at 156.21 50.8 0) + (property "Value" "AudioJack2" (at 157.48 50.8 0) (effects (font (size 1.27 1.27)) (justify right)) ) - (property "Footprint" "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N_Horizontal" (at 151.13 49.53 0) + (property "Footprint" "Connector_Audio:Jack_3.5mm_CUI_SJ1-3523N_Horizontal" (at 152.4 49.53 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (at 151.13 49.53 0) + (property "Datasheet" "~" (at 152.4 49.53 0) (effects (font (size 1.27 1.27)) hide) ) (pin "S" (uuid 5f04d31a-cbcd-498b-825b-4ee78022c589)) @@ -1073,19 +1088,19 @@ ) ) - (symbol (lib_id "Device:R") (at 132.08 46.99 90) (unit 1) + (symbol (lib_id "Device:R") (at 133.35 46.99 90) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid 764d0f2f-e00d-4d6e-82b0-da17c8d83559) - (property "Reference" "R1" (at 132.08 41.91 90) + (property "Reference" "R1" (at 133.35 41.91 90) (effects (font (size 1.27 1.27))) ) - (property "Value" "R" (at 132.08 44.45 90) + (property "Value" "R" (at 133.35 44.45 90) (effects (font (size 1.27 1.27))) ) - (property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" (at 132.08 48.768 90) + (property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" (at 133.35 48.768 90) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (at 132.08 46.99 0) + (property "Datasheet" "~" (at 133.35 46.99 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid efe7aa07-cc4f-4dd5-abcd-f0f48bd60b88)) @@ -1099,19 +1114,44 @@ ) ) - (symbol (lib_id "Device:C") (at 137.16 52.07 0) (unit 1) + (symbol (lib_id "power:GND") (at 107.95 63.5 0) (unit 1) + (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) + (uuid 7d38a0b2-21d4-409f-9477-120c1087fb75) + (property "Reference" "#PWR07" (at 107.95 69.85 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Value" "GND" (at 107.95 68.58 0) + (effects (font (size 1.27 1.27))) + ) + (property "Footprint" "" (at 107.95 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (property "Datasheet" "" (at 107.95 63.5 0) + (effects (font (size 1.27 1.27)) hide) + ) + (pin "1" (uuid 4b35c9a6-1fac-47b4-8558-16e87598963f)) + (instances + (project "hardware" + (path "/9c6bd711-93fb-4327-8ec4-bcfe43c3c3c8" + (reference "#PWR07") (unit 1) + ) + ) + ) + ) + + (symbol (lib_id "Device:C") (at 138.43 52.07 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid 88616a98-32a9-45a4-ad80-7b1dbb105eda) - (property "Reference" "C1" (at 140.97 51.435 0) + (property "Reference" "C1" (at 142.24 51.435 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Value" "C" (at 140.97 53.975 0) + (property "Value" "C" (at 142.24 53.975 0) (effects (font (size 1.27 1.27)) (justify left)) ) - (property "Footprint" "Capacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mm" (at 138.1252 55.88 0) + (property "Footprint" "Capacitor_THT:C_Disc_D6.0mm_W2.5mm_P5.00mm" (at 139.3952 55.88 0) (effects (font (size 1.27 1.27))) ) - (property "Datasheet" "~" (at 137.16 52.07 0) + (property "Datasheet" "~" (at 138.43 52.07 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 2e4adc0b-f7e2-4883-97a8-f94df64dbd8a)) @@ -1271,19 +1311,19 @@ ) ) - (symbol (lib_id "power:GND") (at 106.68 60.96 0) (unit 1) + (symbol (lib_id "power:GND") (at 87.63 62.23 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid fc17c221-25c0-4f40-b58b-a20f0652bf18) - (property "Reference" "#PWR05" (at 106.68 67.31 0) + (property "Reference" "#PWR05" (at 87.63 68.58 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Value" "GND" (at 106.68 66.04 0) + (property "Value" "GND" (at 87.63 67.31 0) (effects (font (size 1.27 1.27))) ) - (property "Footprint" "" (at 106.68 60.96 0) + (property "Footprint" "" (at 87.63 62.23 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "" (at 106.68 60.96 0) + (property "Datasheet" "" (at 87.63 62.23 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 00533e7a-0505-41b6-b5e2-f52df8bab4fb)) @@ -1296,19 +1336,19 @@ ) ) - (symbol (lib_id "Connector_Generic:Conn_02x06_Top_Bottom") (at 115.57 52.07 0) (unit 1) + (symbol (lib_id "Connector_Generic:Conn_02x06_Top_Bottom") (at 116.84 52.07 0) (unit 1) (in_bom yes) (on_board yes) (dnp no) (fields_autoplaced) (uuid fe7b1f01-3f0e-49f0-9674-7a7e79bae509) - (property "Reference" "J6" (at 116.84 41.91 0) + (property "Reference" "J6" (at 118.11 41.91 0) (effects (font (size 1.27 1.27))) ) - (property "Value" "BASYS_JB" (at 116.84 44.45 0) + (property "Value" "BASYS_JB" (at 118.11 44.45 0) (effects (font (size 1.27 1.27))) ) - (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_Vertical" (at 115.57 52.07 0) + (property "Footprint" "Connector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_Vertical" (at 116.84 52.07 0) (effects (font (size 1.27 1.27)) hide) ) - (property "Datasheet" "~" (at 115.57 52.07 0) + (property "Datasheet" "~" (at 116.84 52.07 0) (effects (font (size 1.27 1.27)) hide) ) (pin "1" (uuid 0321aaf6-2626-45de-b511-1c2c91087b99)) diff --git a/docs/hardware/pinout.md b/docs/hardware/pinout.md index 2d5bb08..6c08201 100644 --- a/docs/hardware/pinout.md +++ b/docs/hardware/pinout.md @@ -3,9 +3,9 @@ |function|stm32 soc name|stm32 header name|fpga soc name|fpga header name| |-|-|-|-|-| |SPI MOSI|PA7|D11|L1|JA2| -|SPI CLK|PA5|D13|J1|JA1| +|SPI CLK|PA5|D13|J2|JA3| || -|PPU VRAM WEN|PA9|D8|J2|JA3| +|PPU VRAM WEN|PA9|D8|J1|JA1| || |APU PWM out|||A15|JB7| || |