Skip to content

Commit c769262

Browse files
authored
feat: add metro-rp2350 board definition (#4989)
* feat: add metro-rp2350 board definition * chore: add smoke test
1 parent 64caab1 commit c769262

File tree

3 files changed

+196
-0
lines changed

3 files changed

+196
-0
lines changed

GNUmakefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,8 @@ endif
785785
@$(MD5SUM) test.hex
786786
$(TINYGO) build -size short -o test.hex -target=pico-plus2 examples/blinky1
787787
@$(MD5SUM) test.hex
788+
$(TINYGO) build -size short -o test.hex -target=metro-rp2350 examples/blinky1
789+
@$(MD5SUM) test.hex
788790
$(TINYGO) build -size short -o test.hex -target=waveshare-rp2040-tiny examples/echo
789791
@$(MD5SUM) test.hex
790792
# test pwm

src/machine/board_metro_rp2350.go

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
//go:build metro_rp2350
2+
3+
package machine
4+
5+
// GPIO pins
6+
const (
7+
GP0 Pin = GPIO0
8+
GP1 Pin = GPIO1
9+
GP2 Pin = GPIO2
10+
GP3 Pin = GPIO3
11+
GP4 Pin = GPIO4
12+
GP5 Pin = GPIO5
13+
GP6 Pin = GPIO6
14+
GP7 Pin = GPIO7
15+
GP8 Pin = GPIO8
16+
GP9 Pin = GPIO9
17+
GP10 Pin = GPIO10
18+
GP11 Pin = GPIO11
19+
GP12 Pin = GPIO12
20+
GP13 Pin = GPIO13
21+
GP14 Pin = GPIO14
22+
GP15 Pin = GPIO15
23+
GP16 Pin = GPIO16
24+
GP17 Pin = GPIO17
25+
GP18 Pin = GPIO18
26+
GP19 Pin = GPIO19
27+
GP20 Pin = GPIO20
28+
GP21 Pin = GPIO21
29+
GP22 Pin = GPIO22
30+
GP23 Pin = GPIO23
31+
GP24 Pin = GPIO24
32+
GP25 Pin = GPIO25
33+
GP26 Pin = GPIO26
34+
GP27 Pin = GPIO27
35+
GP28 Pin = GPIO28
36+
GP29 Pin = GPIO29
37+
GP30 Pin = GPIO30
38+
GP31 Pin = GPIO31
39+
GP32 Pin = GPIO32
40+
GP33 Pin = GPIO33
41+
GP34 Pin = GPIO34
42+
GP35 Pin = GPIO35
43+
GP36 Pin = GPIO36
44+
GP37 Pin = GPIO37
45+
GP38 Pin = GPIO38
46+
GP39 Pin = GPIO39
47+
GP40 Pin = GPIO40
48+
GP41 Pin = GPIO41
49+
GP42 Pin = GPIO42
50+
GP43 Pin = GPIO43
51+
GP44 Pin = GPIO44
52+
GP45 Pin = GPIO45
53+
GP46 Pin = GPIO46
54+
55+
// Boot button
56+
BUTTON Pin = GPIO24
57+
58+
// Onboard LED
59+
LED Pin = GPIO23
60+
61+
// Onboard NeoPixel
62+
NEOPIXEL Pin = GPIO25
63+
WS2812 Pin = GPIO25
64+
65+
// Onboard crystal oscillator frequency, in MHz.
66+
xoscFreq = 12 // MHz
67+
)
68+
69+
// Arduino-header digital pins
70+
const (
71+
RX Pin = GPIO1
72+
TX Pin = GPIO0
73+
D2 Pin = GPIO2
74+
D3 Pin = GPIO3
75+
D4 Pin = GPIO4
76+
D5 Pin = GPIO5
77+
D6 Pin = GPIO6
78+
D7 Pin = GPIO7
79+
D8 Pin = GPIO8
80+
D9 Pin = GPIO9
81+
D10 Pin = GPIO10
82+
D11 Pin = GPIO11
83+
D22 Pin = GPIO22
84+
D23 Pin = GPIO23
85+
)
86+
87+
// Arduino-header analog pins
88+
const (
89+
A0 Pin = GPIO41
90+
A1 Pin = GPIO42
91+
A2 Pin = GPIO43
92+
A3 Pin = GPIO44
93+
A4 Pin = GPIO45
94+
A5 Pin = GPIO46
95+
)
96+
97+
// I2C Default pins on Raspberry Pico.
98+
const (
99+
I2C0_SDA_PIN = GP20
100+
I2C0_SCL_PIN = GP21
101+
102+
I2C1_SDA_PIN = GP2
103+
I2C1_SCL_PIN = GP3
104+
)
105+
106+
// SPI default pins
107+
const (
108+
// Default Serial Clock Bus 0 for SPI communications
109+
SPI0_SCK_PIN = GPIO18
110+
// Default Serial Out Bus 0 for SPI communications
111+
SPI0_SDO_PIN = GPIO19 // Tx
112+
// Default Serial In Bus 0 for SPI communications
113+
SPI0_SDI_PIN = GPIO16 // Rx
114+
115+
// Default Serial Clock Bus 1 for SPI communications
116+
SPI1_SCK_PIN = GPIO30
117+
// Default Serial Out Bus 1 for SPI communications
118+
SPI1_SDO_PIN = GPIO31 // Tx
119+
// Default Serial In Bus 1 for SPI communications
120+
SPI1_SDI_PIN = GPIO28 // Rx
121+
122+
// SPI header pins
123+
MOSI Pin = SPI1_SDO_PIN
124+
MISO Pin = SPI1_SDI_PIN
125+
SCK Pin = SPI1_SCK_PIN
126+
)
127+
128+
// SD card reader pins
129+
const (
130+
SD_SCK = GPIO34
131+
SD_MOSI = GPIO35
132+
SD_MISO = GPIO36
133+
SDIO_DATA1 = GPIO37
134+
SDIO_DATA2 = GPIO38
135+
SD_CS = GPIO39
136+
SD_CARD_DETECT = GPIO40
137+
)
138+
139+
// HSTX pins
140+
const (
141+
CKN Pin = GPIO15
142+
CKP Pin = GPIO14
143+
D0N Pin = GPIO19
144+
D0P Pin = GPIO18
145+
D1N Pin = GPIO17
146+
D1P Pin = GPIO16
147+
D2N Pin = GPIO13
148+
D2P Pin = GPIO12
149+
D26 Pin = GPIO26
150+
D27 Pin = GPIO27
151+
SCL Pin = GPIO21
152+
SDA Pin = GPIO20
153+
)
154+
155+
// USB host header pins
156+
const (
157+
USB_HOST_DATA_PLUS Pin = GPIO32
158+
USB_HOST_DATA_MINUS Pin = GPIO33
159+
USB_HOST_5V_POWER Pin = GPIO29
160+
)
161+
162+
// UART pins
163+
const (
164+
UART0_TX_PIN = GPIO0
165+
UART0_RX_PIN = GPIO1
166+
UART1_TX_PIN = GPIO8
167+
UART1_RX_PIN = GPIO9
168+
UART_TX_PIN = UART0_TX_PIN
169+
UART_RX_PIN = UART0_RX_PIN
170+
)
171+
172+
var DefaultUART = UART0
173+
174+
// USB identifiers
175+
const (
176+
usb_STRING_PRODUCT = "Metro RP2350"
177+
usb_STRING_MANUFACTURER = "Adafruit"
178+
)
179+
180+
var (
181+
usb_VID uint16 = 0x239A
182+
usb_PID uint16 = 0x814E
183+
)

targets/metro-rp2350.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"inherits": [
3+
"rp2350b"
4+
],
5+
"build-tags": ["metro_rp2350"],
6+
"serial-port": ["239a:814e"],
7+
"default-stack-size": 8192,
8+
"ldflags": [
9+
"--defsym=__flash_size=16M"
10+
]
11+
}

0 commit comments

Comments
 (0)