Doing research for first PCB design with RP2040 microcontroller. I have found a minimal design that I will use as a reference. I have also found a datasheet for the RP2040 microcontroller.

This commit is contained in:
Boyan 2024-06-15 22:24:37 +02:00
parent b78ae868bd
commit fab66e6661
Signed by: boyan_k
GPG Key ID: 620E9CC7A57EAAA5
19 changed files with 22288 additions and 10 deletions

View File

@ -0,0 +1,60 @@
import machine
import neopixel
import time
def wheel(pos):
"""Generate a color wheel value."""
if pos < 85:
return (pos * 3, 255 - pos * 3, 0)
elif pos < 170:
pos -= 85
return (255 - pos * 3, 0, pos * 3)
else:
pos -= 170
return (0, pos * 3, 255 - pos * 3)
led_pin = machine.Pin(3, machine.Pin.IN)
def read_led_data():
"""Read the data from the LED strip."""
led_data = []
for i in range(num_leds):
led_data.append(np[i])
return led_data
def smooth_rainbow(np, num_leds, delay=0.1):
"""Display a smooth rainbow on the LED strip."""
for i in range(256):
for j in range(num_leds):
np[j] = wheel((i+j) & 255)
np.write()
print(read_led_data())
time.sleep(delay)
# Configure the pin for the LED strip
pin = machine.Pin(10)
num_leds = 1 # Number of LEDs in the strip
# Create a neopixel object
np = neopixel.NeoPixel(pin, num_leds)
# Define the colors
colors = [
(255, 0, 0), # Red
(0, 255, 0), # Green
(0, 0, 255), # Blue
(255, 255, 0), # Yellow
(255, 0, 255), # Magenta
(0, 255, 255) # Cyan
]
# Flash all colors
while True:
for color in colors:
np[0] = color
np.write()
time.sleep(0.5)
print(read_led_data())
# Display a smooth rainbow
smooth_rainbow(np, num_leds)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,75 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# RP2040
#
DEF RP2040 U 0 40 Y Y 1 F N
F0 "U" -1150 1950 50 H V C CNN
F1 "RP2040" 950 -1950 50 H V C CNN
F2 "RP2040_minimal:RP2040-QFN-56" -750 0 50 H I C CNN
F3 "" -750 0 50 H I C CNN
DRAW
T 0 0 200 100 0 0 0 "Raspberry Pi" Normal 0 C C
T 0 0 0 100 0 0 0 RP2040 Normal 0 C C
S 1150 1900 -1150 -1900 0 1 10 f
X IOVDD 1 350 2000 100 D 50 50 1 1 W
X IOVDD 10 250 2000 100 D 50 50 1 1 W
X GPIO8 11 1250 500 100 L 50 50 1 1 B
X GPIO9 12 1250 400 100 L 50 50 1 1 B
X GPIO10 13 1250 300 100 L 50 50 1 1 B
X GPIO11 14 1250 200 100 L 50 50 1 1 B
X GPIO12 15 1250 100 100 L 50 50 1 1 B
X GPIO13 16 1250 0 100 L 50 50 1 1 B
X GPIO14 17 1250 -100 100 L 50 50 1 1 B
X GPIO15 18 1250 -200 100 L 50 50 1 1 B
X TESTEN 19 -500 -2000 100 U 50 50 1 1 P
X GPIO0 2 1250 1300 100 L 50 50 1 1 B
X XIN 20 -1250 -100 100 R 50 50 1 1 I
X XOUT 21 -1250 -300 100 R 50 50 1 1 P
X IOVDD 22 150 2000 100 D 50 50 1 1 W
X DVDD 23 -700 2000 100 D 50 50 1 1 W
X SWCLK 24 -1250 -1250 100 R 50 50 1 1 O
X SWD 25 -1250 -1350 100 R 50 50 1 1 B
X RUN 26 -1250 -800 100 R 50 50 1 1 I
X GPIO16 27 1250 -300 100 L 50 50 1 1 B
X GPIO17 28 1250 -400 100 L 50 50 1 1 B
X GPIO18 29 1250 -500 100 L 50 50 1 1 B
X GPIO1 3 1250 1200 100 L 50 50 1 1 B
X GPIO19 30 1250 -600 100 L 50 50 1 1 B
X GPIO20 31 1250 -700 100 L 50 50 1 1 B
X GPIO21 32 1250 -800 100 L 50 50 1 1 B
X IOVDD 33 50 2000 100 D 50 50 1 1 W
X GPIO22 34 1250 -900 100 L 50 50 1 1 B
X GPIO23 35 1250 -1000 100 L 50 50 1 1 B
X GPIO24 36 1250 -1100 100 L 50 50 1 1 B
X GPIO25 37 1250 -1200 100 L 50 50 1 1 B
X GPIO26_ADC0 38 1250 -1400 100 L 50 50 1 1 B
X GPIO27_ADC1 39 1250 -1500 100 L 50 50 1 1 B
X GPIO2 4 1250 1100 100 L 50 50 1 1 B
X GPIO28_ADC2 40 1250 -1600 100 L 50 50 1 1 B
X GPIO29_ADC3 41 1250 -1700 100 L 50 50 1 1 B
X IOVDD 42 -50 2000 100 D 50 50 1 1 W
X ADC_AVDD 43 650 2000 100 D 50 50 1 1 W
X VREG_IN 44 -350 2000 100 D 50 50 1 1 W
X VREG_VOUT 45 -500 2000 100 D 50 50 1 1 w
X USB_DM 46 1250 1600 100 L 50 50 1 1 B
X USB_DP 47 1250 1700 100 L 50 50 1 1 B
X USB_VDD 48 500 2000 100 D 50 50 1 1 W
X IOVDD 49 -150 2000 100 D 50 50 1 1 W
X GPIO3 5 1250 1000 100 L 50 50 1 1 B
X DVDD 50 -800 2000 100 D 50 50 1 1 W
X QSPI_SD3 51 -1250 800 100 R 50 50 1 1 B
X QSPI_SCLK 52 -1250 650 100 R 50 50 1 1 O
X QSPI_SD0 53 -1250 1100 100 R 50 50 1 1 B
X QSPI_SD2 54 -1250 900 100 R 50 50 1 1 B
X QSPI_SD1 55 -1250 1000 100 R 50 50 1 1 B
X QSPI_SS 56 -1250 1250 100 R 50 50 1 1 B
X GND 57 0 -2000 100 U 50 50 1 1 W
X GPIO4 6 1250 900 100 L 50 50 1 1 B
X GPIO5 7 1250 800 100 L 50 50 1 1 B
X GPIO6 8 1250 700 100 L 50 50 1 1 B
X GPIO7 9 1250 600 100 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
#End Library

View File

@ -0,0 +1,390 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# Connector_Generic_Conn_01x02
#
DEF Connector_Generic_Conn_01x02 J 0 40 Y N 1 F N
F0 "J" 0 100 50 H V C CNN
F1 "Connector_Generic_Conn_01x02" 0 -200 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*_1x??_*
$ENDFPLIST
DRAW
S -50 -95 0 -105 1 1 6 N
S -50 5 0 -5 1 1 6 N
S -50 50 50 -150 1 1 10 f
X Pin_1 1 -200 0 150 R 50 50 1 1 P
X Pin_2 2 -200 -100 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector_Generic_Conn_02x18_Odd_Even
#
DEF Connector_Generic_Conn_02x18_Odd_Even J 0 40 Y N 1 F N
F0 "J" 50 900 50 H V C CNN
F1 "Connector_Generic_Conn_02x18_Odd_Even" 50 -1000 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Connector*:*_2x??_*
$ENDFPLIST
DRAW
S -50 -895 0 -905 1 1 6 N
S -50 -795 0 -805 1 1 6 N
S -50 -695 0 -705 1 1 6 N
S -50 -595 0 -605 1 1 6 N
S -50 -495 0 -505 1 1 6 N
S -50 -395 0 -405 1 1 6 N
S -50 -295 0 -305 1 1 6 N
S -50 -195 0 -205 1 1 6 N
S -50 -95 0 -105 1 1 6 N
S -50 5 0 -5 1 1 6 N
S -50 105 0 95 1 1 6 N
S -50 205 0 195 1 1 6 N
S -50 305 0 295 1 1 6 N
S -50 405 0 395 1 1 6 N
S -50 505 0 495 1 1 6 N
S -50 605 0 595 1 1 6 N
S -50 705 0 695 1 1 6 N
S -50 805 0 795 1 1 6 N
S -50 850 150 -950 1 1 10 f
S 150 -895 100 -905 1 1 6 N
S 150 -795 100 -805 1 1 6 N
S 150 -695 100 -705 1 1 6 N
S 150 -595 100 -605 1 1 6 N
S 150 -495 100 -505 1 1 6 N
S 150 -395 100 -405 1 1 6 N
S 150 -295 100 -305 1 1 6 N
S 150 -195 100 -205 1 1 6 N
S 150 -95 100 -105 1 1 6 N
S 150 5 100 -5 1 1 6 N
S 150 105 100 95 1 1 6 N
S 150 205 100 195 1 1 6 N
S 150 305 100 295 1 1 6 N
S 150 405 100 395 1 1 6 N
S 150 505 100 495 1 1 6 N
S 150 605 100 595 1 1 6 N
S 150 705 100 695 1 1 6 N
S 150 805 100 795 1 1 6 N
X Pin_1 1 -200 800 150 R 50 50 1 1 P
X Pin_10 10 300 400 150 L 50 50 1 1 P
X Pin_11 11 -200 300 150 R 50 50 1 1 P
X Pin_12 12 300 300 150 L 50 50 1 1 P
X Pin_13 13 -200 200 150 R 50 50 1 1 P
X Pin_14 14 300 200 150 L 50 50 1 1 P
X Pin_15 15 -200 100 150 R 50 50 1 1 P
X Pin_16 16 300 100 150 L 50 50 1 1 P
X Pin_17 17 -200 0 150 R 50 50 1 1 P
X Pin_18 18 300 0 150 L 50 50 1 1 P
X Pin_19 19 -200 -100 150 R 50 50 1 1 P
X Pin_2 2 300 800 150 L 50 50 1 1 P
X Pin_20 20 300 -100 150 L 50 50 1 1 P
X Pin_21 21 -200 -200 150 R 50 50 1 1 P
X Pin_22 22 300 -200 150 L 50 50 1 1 P
X Pin_23 23 -200 -300 150 R 50 50 1 1 P
X Pin_24 24 300 -300 150 L 50 50 1 1 P
X Pin_25 25 -200 -400 150 R 50 50 1 1 P
X Pin_26 26 300 -400 150 L 50 50 1 1 P
X Pin_27 27 -200 -500 150 R 50 50 1 1 P
X Pin_28 28 300 -500 150 L 50 50 1 1 P
X Pin_29 29 -200 -600 150 R 50 50 1 1 P
X Pin_3 3 -200 700 150 R 50 50 1 1 P
X Pin_30 30 300 -600 150 L 50 50 1 1 P
X Pin_31 31 -200 -700 150 R 50 50 1 1 P
X Pin_32 32 300 -700 150 L 50 50 1 1 P
X Pin_33 33 -200 -800 150 R 50 50 1 1 P
X Pin_34 34 300 -800 150 L 50 50 1 1 P
X Pin_35 35 -200 -900 150 R 50 50 1 1 P
X Pin_36 36 300 -900 150 L 50 50 1 1 P
X Pin_4 4 300 700 150 L 50 50 1 1 P
X Pin_5 5 -200 600 150 R 50 50 1 1 P
X Pin_6 6 300 600 150 L 50 50 1 1 P
X Pin_7 7 -200 500 150 R 50 50 1 1 P
X Pin_8 8 300 500 150 L 50 50 1 1 P
X Pin_9 9 -200 400 150 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Connector_USB_B_Micro
#
DEF Connector_USB_B_Micro J 0 40 Y Y 1 F N
F0 "J" -200 450 50 H V L CNN
F1 "Connector_USB_B_Micro" -200 350 50 H V L CNN
F2 "" 150 -50 50 H I C CNN
F3 "" 150 -50 50 H I C CNN
ALIAS USB_B_Mini
$FPLIST
USB*
$ENDFPLIST
DRAW
C -150 85 25 0 1 10 F
C -25 135 15 0 1 10 F
S -200 -300 200 300 0 1 10 f
S -5 -300 5 -270 0 1 0 N
S 10 50 -20 20 0 1 10 F
S 200 -205 170 -195 0 1 0 N
S 200 -105 170 -95 0 1 0 N
S 200 -5 170 5 0 1 0 N
S 200 195 170 205 0 1 0 N
P 2 0 1 10 -75 85 25 85 N
P 4 0 1 10 -125 85 -100 85 -50 135 -25 135 N
P 4 0 1 10 -100 85 -75 85 -50 35 0 35 N
P 4 0 1 10 25 110 25 60 75 85 25 110 F
P 5 0 1 0 -170 220 -70 220 -80 190 -160 190 -170 220 F
P 9 0 1 0 -185 230 -185 220 -175 190 -175 180 -65 180 -65 190 -55 220 -55 230 -185 230 N
X VBUS 1 300 200 100 L 50 50 1 1 w
X D- 2 300 -100 100 L 50 50 1 1 P
X D+ 3 300 0 100 L 50 50 1 1 P
X ID 4 300 -200 100 L 50 50 1 1 P
X GND 5 0 -400 100 U 50 50 1 1 w
X Shield 6 -100 -400 100 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device_C
#
DEF Device_C C 0 10 N Y 1 F N
F0 "C" 25 100 50 H V L CNN
F1 "Device_C" 25 -100 50 H V L CNN
F2 "" 38 -150 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
C_*
$ENDFPLIST
DRAW
P 2 0 1 20 -80 -30 80 -30 N
P 2 0 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device_Crystal
#
DEF Device_Crystal Y 0 40 N N 1 F N
F0 "Y" 0 150 50 H V C CNN
F1 "Device_Crystal" 0 -150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
Crystal*
$ENDFPLIST
DRAW
S -45 100 45 -100 0 1 12 N
P 2 0 1 0 -100 0 -75 0 N
P 2 0 1 20 -75 -50 -75 50 N
P 2 0 1 20 75 -50 75 50 N
P 2 0 1 0 100 0 75 0 N
X 1 1 -150 0 50 R 50 50 1 1 P
X 2 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# Device_R
#
DEF Device_R R 0 0 N Y 1 F N
F0 "R" 80 0 50 V V C CNN
F1 "Device_R" 0 0 50 V V C CNN
F2 "" -70 0 50 V I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
R_*
$ENDFPLIST
DRAW
S -40 -100 40 100 0 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# MCU_RaspberryPi_RP2040_RP2040
#
DEF MCU_RaspberryPi_RP2040_RP2040 U 0 40 Y Y 1 F N
F0 "U" -1150 1950 50 H V C CNN
F1 "MCU_RaspberryPi_RP2040_RP2040" 950 -1950 50 H V C CNN
F2 "RP2040_minimal:RP2040-QFN-56" -750 0 50 H I C CNN
F3 "" -750 0 50 H I C CNN
DRAW
T 0 0 200 100 0 0 0 "Raspberry Pi" Normal 0 C C
T 0 0 0 100 0 0 0 RP2040 Normal 0 C C
S 1150 1900 -1150 -1900 0 1 10 f
X IOVDD 1 350 2000 100 D 50 50 1 1 W
X IOVDD 10 250 2000 100 D 50 50 1 1 W
X GPIO8 11 1250 500 100 L 50 50 1 1 B
X GPIO9 12 1250 400 100 L 50 50 1 1 B
X GPIO10 13 1250 300 100 L 50 50 1 1 B
X GPIO11 14 1250 200 100 L 50 50 1 1 B
X GPIO12 15 1250 100 100 L 50 50 1 1 B
X GPIO13 16 1250 0 100 L 50 50 1 1 B
X GPIO14 17 1250 -100 100 L 50 50 1 1 B
X GPIO15 18 1250 -200 100 L 50 50 1 1 B
X TESTEN 19 -500 -2000 100 U 50 50 1 1 P
X GPIO0 2 1250 1300 100 L 50 50 1 1 B
X XIN 20 -1250 -100 100 R 50 50 1 1 I
X XOUT 21 -1250 -300 100 R 50 50 1 1 P
X IOVDD 22 150 2000 100 D 50 50 1 1 W
X DVDD 23 -700 2000 100 D 50 50 1 1 W
X SWCLK 24 -1250 -1250 100 R 50 50 1 1 O
X SWD 25 -1250 -1350 100 R 50 50 1 1 B
X RUN 26 -1250 -800 100 R 50 50 1 1 I
X GPIO16 27 1250 -300 100 L 50 50 1 1 B
X GPIO17 28 1250 -400 100 L 50 50 1 1 B
X GPIO18 29 1250 -500 100 L 50 50 1 1 B
X GPIO1 3 1250 1200 100 L 50 50 1 1 B
X GPIO19 30 1250 -600 100 L 50 50 1 1 B
X GPIO20 31 1250 -700 100 L 50 50 1 1 B
X GPIO21 32 1250 -800 100 L 50 50 1 1 B
X IOVDD 33 50 2000 100 D 50 50 1 1 W
X GPIO22 34 1250 -900 100 L 50 50 1 1 B
X GPIO23 35 1250 -1000 100 L 50 50 1 1 B
X GPIO24 36 1250 -1100 100 L 50 50 1 1 B
X GPIO25 37 1250 -1200 100 L 50 50 1 1 B
X GPIO26_ADC0 38 1250 -1400 100 L 50 50 1 1 B
X GPIO27_ADC1 39 1250 -1500 100 L 50 50 1 1 B
X GPIO2 4 1250 1100 100 L 50 50 1 1 B
X GPIO28_ADC2 40 1250 -1600 100 L 50 50 1 1 B
X GPIO29_ADC3 41 1250 -1700 100 L 50 50 1 1 B
X IOVDD 42 -50 2000 100 D 50 50 1 1 W
X ADC_AVDD 43 650 2000 100 D 50 50 1 1 W
X VREG_IN 44 -350 2000 100 D 50 50 1 1 W
X VREG_VOUT 45 -500 2000 100 D 50 50 1 1 w
X USB_DM 46 1250 1600 100 L 50 50 1 1 B
X USB_DP 47 1250 1700 100 L 50 50 1 1 B
X USB_VDD 48 500 2000 100 D 50 50 1 1 W
X IOVDD 49 -150 2000 100 D 50 50 1 1 W
X GPIO3 5 1250 1000 100 L 50 50 1 1 B
X DVDD 50 -800 2000 100 D 50 50 1 1 W
X QSPI_SD3 51 -1250 800 100 R 50 50 1 1 B
X QSPI_SCLK 52 -1250 650 100 R 50 50 1 1 O
X QSPI_SD0 53 -1250 1100 100 R 50 50 1 1 B
X QSPI_SD2 54 -1250 900 100 R 50 50 1 1 B
X QSPI_SD1 55 -1250 1000 100 R 50 50 1 1 B
X QSPI_SS 56 -1250 1250 100 R 50 50 1 1 B
X GND 57 0 -2000 100 U 50 50 1 1 W
X GPIO4 6 1250 900 100 L 50 50 1 1 B
X GPIO5 7 1250 800 100 L 50 50 1 1 B
X GPIO6 8 1250 700 100 L 50 50 1 1 B
X GPIO7 9 1250 600 100 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
# Mechanical_MountingHole
#
DEF Mechanical_MountingHole H 0 40 Y Y 1 F N
F0 "H" 0 200 50 H V C CNN
F1 "Mechanical_MountingHole" 0 125 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
$FPLIST
MountingHole*
$ENDFPLIST
DRAW
C 0 0 50 0 1 50 N
ENDDRAW
ENDDEF
#
# Memory_Flash_W25Q128JVS
#
DEF Memory_Flash_W25Q128JVS U 0 20 Y Y 1 F N
F0 "U" -350 350 50 H V C CNN
F1 "Memory_Flash_W25Q128JVS" 300 350 50 H V C CNN
F2 "Package_SO:SOIC-8_5.23x5.23mm_P1.27mm" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
ALIAS W25Q128JVS
$FPLIST
SOIC*5.23x5.23mm*P1.27mm*
$ENDFPLIST
DRAW
S -400 300 400 -300 0 1 10 f
X ~CS 1 -500 100 100 R 50 50 1 1 I
X DO(IO1) 2 500 100 100 L 50 50 1 1 B
X IO2 3 500 -100 100 L 50 50 1 1 B
X GND 4 0 -400 100 U 50 50 1 1 W
X DI(IO0) 5 500 200 100 L 50 50 1 1 B
X CLK 6 -500 -100 100 R 50 50 1 1 I
X IO3 7 500 -200 100 L 50 50 1 1 B
X VCC 8 0 400 100 D 50 50 1 1 W
ENDDRAW
ENDDEF
#
# Regulator_Linear_NCP1117-3.3_SOT223
#
DEF Regulator_Linear_NCP1117-3.3_SOT223 U 0 10 Y Y 1 F N
F0 "U" -150 125 50 H V C CNN
F1 "Regulator_Linear_NCP1117-3.3_SOT223" 0 125 50 H V L CNN
F2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" 0 200 50 H I C CNN
F3 "" 100 -250 50 H I C CNN
ALIAS AP1117-18 AP1117-25 AP1117-33 AP1117-50 LD1117S33TR_SOT223 LD1117S12TR_SOT223 LD1117S18TR_SOT223 LD1117S25TR_SOT223 LD1117S50TR_SOT223 NCP1117-12_SOT223 NCP1117-1.5_SOT223 NCP1117-1.8_SOT223 NCP1117-2.0_SOT223 NCP1117-2.5_SOT223 NCP1117-2.85_SOT223 NCP1117-3.3_SOT223 NCP1117-5.0_SOT223 AMS1117-1.5 AMS1117-1.8 AMS1117-2.5 AMS1117-2.85 AMS1117-3.3 AMS1117-5.0
$FPLIST
SOT?223*TabPin2*
$ENDFPLIST
DRAW
S -200 -200 200 75 0 1 10 f
X GND 1 0 -300 100 U 50 50 1 1 W
X VO 2 300 0 100 L 50 50 1 1 w
X VI 3 -300 0 100 R 50 50 1 1 W
ENDDRAW
ENDDEF
#
# power_+1V1
#
DEF power_+1V1 #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "power_+1V1" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X +1V1 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# power_+3V3
#
DEF power_+3V3 #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "power_+3V3" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
ALIAS +3.3V
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X +3V3 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# power_GND
#
DEF power_GND #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -250 50 H I C CNN
F1 "power_GND" 0 -150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
X GND 1 0 0 0 D 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# power_VBUS
#
DEF power_VBUS #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "power_VBUS" 0 150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X VBUS 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
#End Library

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,711 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.049999999999999996,
"copper_line_width": 0.19999999999999998,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.09999999999999999,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.35,
"height": 0.6,
"width": 0.6
},
"silk_line_width": 0.12,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.19999999999999998
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"filename": "board_design_settings.json",
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.3,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.35,
"min_track_width": 0.15,
"min_via_annular_width": 0.09999999999999999,
"min_via_diameter": 0.6,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0,
0.2,
0.3,
0.4,
0.6,
0.8,
1.0
],
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "RP2040_minimal_r2.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.15,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.15,
"via_diameter": 0.6,
"via_drill": 0.35,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.15,
"diff_pair_gap": 0.15,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.8,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "USB_DIFF_90",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.15,
"via_diameter": 0.6,
"via_drill": 0.35,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "Default",
"pattern": "+1V1"
},
{
"netclass": "Default",
"pattern": "+3V3"
},
{
"netclass": "Default",
"pattern": "/GPIO0"
},
{
"netclass": "Default",
"pattern": "/GPIO1"
},
{
"netclass": "Default",
"pattern": "/GPIO10"
},
{
"netclass": "Default",
"pattern": "/GPIO11"
},
{
"netclass": "Default",
"pattern": "/GPIO12"
},
{
"netclass": "Default",
"pattern": "/GPIO13"
},
{
"netclass": "Default",
"pattern": "/GPIO14"
},
{
"netclass": "Default",
"pattern": "/GPIO15"
},
{
"netclass": "Default",
"pattern": "/GPIO16"
},
{
"netclass": "Default",
"pattern": "/GPIO17"
},
{
"netclass": "Default",
"pattern": "/GPIO18"
},
{
"netclass": "Default",
"pattern": "/GPIO19"
},
{
"netclass": "Default",
"pattern": "/GPIO2"
},
{
"netclass": "Default",
"pattern": "/GPIO20"
},
{
"netclass": "Default",
"pattern": "/GPIO21"
},
{
"netclass": "Default",
"pattern": "/GPIO22"
},
{
"netclass": "Default",
"pattern": "/GPIO23"
},
{
"netclass": "Default",
"pattern": "/GPIO24"
},
{
"netclass": "Default",
"pattern": "/GPIO25"
},
{
"netclass": "Default",
"pattern": "/GPIO26_ADC0"
},
{
"netclass": "Default",
"pattern": "/GPIO27_ADC1"
},
{
"netclass": "Default",
"pattern": "/GPIO28_ADC2"
},
{
"netclass": "Default",
"pattern": "/GPIO29_ADC3"
},
{
"netclass": "Default",
"pattern": "/GPIO3"
},
{
"netclass": "Default",
"pattern": "/GPIO4"
},
{
"netclass": "Default",
"pattern": "/GPIO5"
},
{
"netclass": "Default",
"pattern": "/GPIO6"
},
{
"netclass": "Default",
"pattern": "/GPIO7"
},
{
"netclass": "Default",
"pattern": "/GPIO8"
},
{
"netclass": "Default",
"pattern": "/GPIO9"
},
{
"netclass": "Default",
"pattern": "/QSPI_SCLK"
},
{
"netclass": "Default",
"pattern": "/QSPI_SD0"
},
{
"netclass": "Default",
"pattern": "/QSPI_SD1"
},
{
"netclass": "Default",
"pattern": "/QSPI_SD2"
},
{
"netclass": "Default",
"pattern": "/QSPI_SD3"
},
{
"netclass": "Default",
"pattern": "/QSPI_SS"
},
{
"netclass": "Default",
"pattern": "/RUN"
},
{
"netclass": "Default",
"pattern": "/SWCLK"
},
{
"netclass": "Default",
"pattern": "/SWD"
},
{
"netclass": "Default",
"pattern": "/XIN"
},
{
"netclass": "Default",
"pattern": "/XOUT"
},
{
"netclass": "Default",
"pattern": "/~{USB_BOOT}"
},
{
"netclass": "Default",
"pattern": "GND"
},
{
"netclass": "Default",
"pattern": "Net-(C3-Pad1)"
},
{
"netclass": "Default",
"pattern": "Net-(J1-Pad4)"
},
{
"netclass": "Default",
"pattern": "Net-(R3-Pad2)"
},
{
"netclass": "Default",
"pattern": "Net-(R4-Pad2)"
},
{
"netclass": "Default",
"pattern": "VBUS"
},
{
"netclass": "USB_DIFF_90",
"pattern": "/USB_D+"
},
{
"netclass": "USB_DIFF_90",
"pattern": "/USB_D-"
}
]
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.25,
"pin_symbol_size": 0.0,
"text_offset_ratio": 0.08
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"8c0b3d8b-46d3-4173-ab1e-a61765f77d61",
""
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,105 @@
(module Pico2040-QFN-56 (layer F.Cu) (tedit 5EF32B43)
(descr "QFN, 56 Pin (http://www.cypress.com/file/416486/download#page=40), generated with kicad-footprint-generator ipc_dfn_qfn_generator.py")
(tags "QFN DFN_QFN")
(attr smd)
(fp_text reference REF** (at 0 -4.82) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value Pico2040-QFN-56 (at 0 4.82) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 2.96 -3.61) (end 3.61 -3.61) (layer F.SilkS) (width 0.12))
(fp_line (start 3.61 -3.61) (end 3.61 -2.96) (layer F.SilkS) (width 0.12))
(fp_line (start -2.96 3.61) (end -3.61 3.61) (layer F.SilkS) (width 0.12))
(fp_line (start -3.61 3.61) (end -3.61 2.96) (layer F.SilkS) (width 0.12))
(fp_line (start 2.96 3.61) (end 3.61 3.61) (layer F.SilkS) (width 0.12))
(fp_line (start 3.61 3.61) (end 3.61 2.96) (layer F.SilkS) (width 0.12))
(fp_line (start -2.96 -3.61) (end -3.61 -3.61) (layer F.SilkS) (width 0.12))
(fp_line (start -2.5 -3.5) (end 3.5 -3.5) (layer F.Fab) (width 0.1))
(fp_line (start 3.5 -3.5) (end 3.5 3.5) (layer F.Fab) (width 0.1))
(fp_line (start 3.5 3.5) (end -3.5 3.5) (layer F.Fab) (width 0.1))
(fp_line (start -3.5 3.5) (end -3.5 -2.5) (layer F.Fab) (width 0.1))
(fp_line (start -3.5 -2.5) (end -2.5 -3.5) (layer F.Fab) (width 0.1))
(fp_line (start -4.12 -4.12) (end -4.12 4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start -4.12 4.12) (end 4.12 4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.12 4.12) (end 4.12 -4.12) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.12 -4.12) (end -4.12 -4.12) (layer F.CrtYd) (width 0.05))
(fp_text user %R (at 0 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(pad 57 smd roundrect (at 0 0) (size 3.2 3.2) (layers F.Cu F.Mask) (roundrect_rratio 0.045))
(pad 57 thru_hole circle (at -1.275 -1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 0 -1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 1.275 -1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at -1.275 0) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 0 0) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 1.275 0) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at -1.275 1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 0 1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad 57 thru_hole circle (at 1.275 1.275) (size 0.6 0.6) (drill 0.35) (layers *.Cu))
(pad "" smd roundrect (at -0.6375 -0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad "" smd roundrect (at -0.6375 0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad "" smd roundrect (at 0.6375 -0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad "" smd roundrect (at 0.6375 0.6375) (size 1.084435 1.084435) (layers F.Paste) (roundrect_rratio 0.230535))
(pad 1 smd roundrect (at -3.4375 -2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 2 smd roundrect (at -3.4375 -2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 3 smd roundrect (at -3.4375 -1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 4 smd roundrect (at -3.4375 -1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 5 smd roundrect (at -3.4375 -1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 6 smd roundrect (at -3.4375 -0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 7 smd roundrect (at -3.4375 -0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 8 smd roundrect (at -3.4375 0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 9 smd roundrect (at -3.4375 0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 10 smd roundrect (at -3.4375 1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 11 smd roundrect (at -3.4375 1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 12 smd roundrect (at -3.4375 1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 13 smd roundrect (at -3.4375 2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 14 smd roundrect (at -3.4375 2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 15 smd roundrect (at -2.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 16 smd roundrect (at -2.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 17 smd roundrect (at -1.8 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 18 smd roundrect (at -1.4 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 19 smd roundrect (at -1 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 20 smd roundrect (at -0.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 21 smd roundrect (at -0.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 22 smd roundrect (at 0.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 23 smd roundrect (at 0.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 24 smd roundrect (at 1 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 25 smd roundrect (at 1.4 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 26 smd roundrect (at 1.8 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 27 smd roundrect (at 2.2 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 28 smd roundrect (at 2.6 3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 29 smd roundrect (at 3.4375 2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 30 smd roundrect (at 3.4375 2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 31 smd roundrect (at 3.4375 1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 32 smd roundrect (at 3.4375 1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 33 smd roundrect (at 3.4375 1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 34 smd roundrect (at 3.4375 0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 35 smd roundrect (at 3.4375 0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 36 smd roundrect (at 3.4375 -0.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 37 smd roundrect (at 3.4375 -0.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 38 smd roundrect (at 3.4375 -1) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 39 smd roundrect (at 3.4375 -1.4) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 40 smd roundrect (at 3.4375 -1.8) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 41 smd roundrect (at 3.4375 -2.2) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 42 smd roundrect (at 3.4375 -2.6) (size 0.875 0.2) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 43 smd roundrect (at 2.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 44 smd roundrect (at 2.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 45 smd roundrect (at 1.8 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 46 smd roundrect (at 1.4 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 47 smd roundrect (at 1 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 48 smd roundrect (at 0.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 49 smd roundrect (at 0.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 50 smd roundrect (at -0.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 51 smd roundrect (at -0.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 52 smd roundrect (at -1 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 53 smd roundrect (at -1.4 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 54 smd roundrect (at -1.8 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 55 smd roundrect (at -2.2 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(pad 56 smd roundrect (at -2.6 -3.4375) (size 0.2 0.875) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
(model ${KISYS3DMOD}/Package_DFN_QFN.3dshapes/QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mm.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)

View File

@ -0,0 +1,58 @@
(module USB_Micro-B_Amphenol_10103594-0001LF_Horizontal_modified (layer F.Cu) (tedit 5F0317C2)
(descr "Micro USB Type B 10103594-0001LF, http://cdn.amphenol-icc.com/media/wysiwyg/files/drawing/10103594.pdf")
(tags "USB USB_B USB_micro USB_OTG")
(attr smd)
(fp_text reference J5 (at -5.365 -2.58 -180) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value USB_B_Micro (at -0.025 3.32 -180) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 4.14 1.7) (end -4.13 1.7) (layer F.CrtYd) (width 0.05))
(fp_line (start 4.14 1.7) (end 4.14 -3.995) (layer F.CrtYd) (width 0.05))
(fp_line (start -4.13 -3.995) (end -4.13 1.7) (layer F.CrtYd) (width 0.05))
(fp_line (start -4.13 -3.995) (end 4.14 -3.995) (layer F.CrtYd) (width 0.05))
(fp_line (start -4.02 1.7) (end 4.02 1.7) (layer Dwgs.User) (width 0.1))
(fp_line (start -3.775 2.22) (end -3.775 -1.98) (layer F.Fab) (width 0.12))
(fp_line (start -2.975 -2.73) (end 3.725 -2.73) (layer F.Fab) (width 0.12))
(fp_line (start 3.725 -2.73) (end 3.725 2.22) (layer F.Fab) (width 0.12))
(fp_line (start 3.725 2.22) (end -3.775 2.22) (layer F.Fab) (width 0.12))
(fp_line (start -3.775 -1.98) (end -2.975 -2.73) (layer F.Fab) (width 0.12))
(fp_line (start -1.325 -3.98) (end -1.725 -4.43) (layer F.SilkS) (width 0.12))
(fp_line (start -1.725 -4.43) (end -0.925 -4.43) (layer F.SilkS) (width 0.12))
(fp_line (start -0.925 -4.43) (end -1.325 -3.98) (layer F.SilkS) (width 0.12))
(fp_line (start 3.825 1.62) (end 3.825 -1.18) (layer F.SilkS) (width 0.12))
(fp_line (start 3.825 -1.18) (end 4.125 -1.18) (layer F.SilkS) (width 0.12))
(fp_line (start 4.125 -1.18) (end 4.125 -2.73) (layer F.SilkS) (width 0.12))
(fp_line (start -3.875 1.62) (end -3.875 -1.18) (layer F.SilkS) (width 0.12))
(fp_line (start -4.175 -1.18) (end -3.875 -1.18) (layer F.SilkS) (width 0.12))
(fp_line (start -4.175 -1.18) (end -4.175 -2.73) (layer F.SilkS) (width 0.12))
(fp_text user %R (at -0.025 -1.13 -180) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user "PCB edge" (at -0.025 1.12 -180) (layer Dwgs.User)
(effects (font (size 0.5 0.5) (thickness 0.075)))
)
(pad 6 smd rect (at 0.9625 0.25 90) (size 2.5 1.425) (layers F.Cu F.Paste F.Mask))
(pad 6 smd rect (at -0.9625 0.25 90) (size 2.5 1.425) (layers F.Cu F.Paste F.Mask))
(pad 6 thru_hole oval (at 2.725 0 90) (size 1.8 1.3) (drill oval 1.2 0.7) (layers *.Cu *.Mask))
(pad 6 thru_hole oval (at -2.725 0 90) (size 1.8 1.3) (drill oval 1.2 0.7) (layers *.Cu *.Mask))
(pad 6 thru_hole oval (at -2.425 -3.03 90) (size 1.45 1.05) (drill oval 1.05 0.65) (layers *.Cu *.Mask))
(pad 5 smd rect (at 1.3 -2.825 90) (size 1.75 0.4) (layers F.Cu F.Paste F.Mask))
(pad 4 smd rect (at 0.65 -2.825 90) (size 1.75 0.4) (layers F.Cu F.Paste F.Mask))
(pad 3 smd rect (at 0 -2.825 90) (size 1.75 0.4) (layers F.Cu F.Paste F.Mask))
(pad 2 smd rect (at -0.65 -2.825 90) (size 1.75 0.4) (layers F.Cu F.Paste F.Mask))
(pad 1 smd rect (at -1.3 -2.825 90) (size 1.75 0.4) (layers F.Cu F.Paste F.Mask))
(pad 6 smd rect (at 2.9 -3.03) (size 2 1.46) (layers F.Cu F.Paste F.Mask))
(pad 6 smd rect (at -2.9 -3.03) (size 2 1.46) (layers F.Cu F.Paste F.Mask))
(pad 6 smd rect (at -2.9875 -1.7) (size 1.825 0.7) (layers F.Cu F.Paste F.Mask))
(pad 6 smd roundrect (at -2.725 -0.425) (size 1.3 3.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.296))
(pad 6 smd roundrect (at 2.725 -0.425) (size 1.3 3.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.296))
(pad 6 smd rect (at 2.9875 -1.7) (size 1.825 0.7) (layers F.Cu F.Paste F.Mask))
(pad 6 thru_hole oval (at 2.425 -3.03 90) (size 1.45 1.05) (drill oval 1.05 0.65) (layers *.Cu *.Mask))
(model 10103594.stp
(offset (xyz 0 0.2 2.2))
(scale (xyz 1 1 1))
(rotate (xyz 90 0 180))
)
)

View File

@ -0,0 +1,4 @@
(fp_lib_table
(version 7)
(lib (name "RP2040_minimal")(type "KiCad")(uri "${KIPRJMOD}/RP2040_minimal_r2.pretty")(options "")(descr ""))
)

View File

@ -0,0 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "MCU_RaspberryPi_RP2040")(type "Legacy")(uri "${KIPRJMOD}/MCU_RaspberryPi_RP2040.lib")(options "")(descr ""))
)

Binary file not shown.

0
led_matrix/conway.py Normal file
View File

57
led_matrix/fuckyou.py Normal file
View File

@ -0,0 +1,57 @@
from machine import Pin, SPI
import max7219
from time import sleep
import random
spi = SPI(0,sck=Pin(2),mosi=Pin(3))
cs = Pin(5, Pin.OUT)
display = max7219.Matrix8x8(spi, cs, 1)
display.brightness(10)
conway = [[0]*8]*8
def step(conway):
new_matrix = [[0]*8]*8
for x in range(8):
for y in range(8):
dx = [-1, 0, 1, -1, 1, -1, 0, 1]
dy = [1, 1, 1, 0, 0, -1, -1, -1]
neigh = 0
for t in range(8):
if x + dx[t] >= 0 and x + dx[t] < 8 and y + dy[t] >= 0 and y + dy[t]:
neigh += conway[x + dx[t]][y + dy[t]]
if conway[x][y] == 1:
if neigh != 3 and neigh != 4:
new_matrix[x][y] = 0
else:
new_matrix[x][y] = 1
else:
if neigh == 3:
new_matrix[x][y] = 1
else:
new_matrix[x][y] = 0
return new_matrix
def show_board(display, conway):
for x in range(8):
for y in range(8):
display.pixel(x, y)
for x in range(8):
for y in range(8):
conway[x][y] = random.randint(0, 1)
c=0
while True:
display.fill(0)
step(conway)
show_board(display, conway)
c += 1
sleep(1)
print(c, "hello")

View File

View File

@ -4,12 +4,17 @@
#define GREEN 33 #define GREEN 33
#define BLUE 32 #define BLUE 32
// Relay pin
#define RELAY 26
bool isOn = false;
void setup() { void setup() {
// Set the pins as outputs // Set the pins as outputs
pinMode(RED, OUTPUT); pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT); pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT); pinMode(BLUE, OUTPUT);
pinMode(RELAY, OUTPUT);
Serial.begin(9600); Serial.begin(9600);
} }
@ -31,23 +36,23 @@ void setColor(int red, int green, int blue) {
return; return;
} }
void stop() {
// Function which turns off the pins
analogWrite(RED, 0);
analogWrite(GREEN, 0);
analogWrite(BLUE, 0);
Serial.println("Turning off the LED strip"); // Function that toggles the RELAY
printValues(); void toggle() {
return; if (isOn) {
digitalWrite(RELAY, LOW);
isOn = false;
} else {
digitalWrite(RELAY, HIGH);
isOn = true;
}
} }
void loop() { void loop() {
// Alternate between off and white over 5 seconds // Alternate between off and white over 5 seconds
stop(); toggle();
delay(5000); delay(5000);
setColor(255, 255, 255); setColor(255, 255, 255);
delay(5000); delay(5000);