aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlonkaars <loek@pipeframe.xyz>2023-03-14 21:29:30 +0100
committerlonkaars <loek@pipeframe.xyz>2023-03-14 21:29:30 +0100
commitfe8519597e3b6ec5050e93aa385c1092cee0117f (patch)
treef9ef8fafde49a48eafe46241bba04209573a7745
parent589f6d2fdd2b01e9d88986480796530031693443 (diff)
WIP ppu testing
-rw-r--r--basys3/basys3.srcs/io.xdc7
-rw-r--r--basys3/basys3.srcs/spi.vhd78
-rw-r--r--basys3/basys3.srcs/spi_tb.vhd259
-rw-r--r--basys3/basys3.srcs/top.vhd5
-rw-r--r--basys3/basys3.xpr69
-rw-r--r--docs/hardware/hardware.kicad_pcb453
-rw-r--r--docs/hardware/hardware.kicad_sch138
-rw-r--r--docs/hardware/pinout.md4
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|
||