Skip to content

Commit dddb514

Browse files
authored
Adafruit Fruit Jam board (#2363)
* Adafruit Fruit Jam board * add Adafruit Fruit Jam specific pins * fix pin typos and errors * update to Fruit Jam rev D, address #2510 review * add additional PICO_DEFAULT_* pins * add PICO_AUDIO_I2S_* pins
1 parent 7d58f95 commit dddb514

File tree

1 file changed

+211
-0
lines changed

1 file changed

+211
-0
lines changed
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
/*
2+
* Copyright (c) 2025 Dan Halbert for Adafruit Industries
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
// -----------------------------------------------------
8+
// NOTE: THIS HEADER IS ALSO INCLUDED BY ASSEMBLER SO
9+
// SHOULD ONLY CONSIST OF PREPROCESSOR DIRECTIVES
10+
// -----------------------------------------------------
11+
12+
// This header may be included by other board headers as "boards/adafruit_fruit_jam.h"
13+
14+
pico_board_cmake_set(PICO_PLATFORM, rp2350)
15+
16+
#ifndef _BOARDS_ADAFRUIT_FRUIT_JAM_H
17+
#define _BOARDS_ADAFRUIT_FRUIT_JAM_H
18+
19+
// On some samples, the xosc can take longer to stabilize than is usual
20+
#ifndef PICO_XOSC_STARTUP_DELAY_MULTIPLIER
21+
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
22+
#endif
23+
24+
// For board detection
25+
#define ADAFRUIT_FRUIT_JAM
26+
27+
// --- RP2350 VARIANT ---
28+
// This means RP2350B.
29+
#define PICO_RP2350A 0
30+
31+
// --- BOARD SPECIFIC ---
32+
// On JST PH connector.
33+
#define ADAFRUIT_FRUIT_JAM_A0_PIN 40
34+
35+
// A1-A5 and D6-D10 are on 2x16 socket header.
36+
#define ADAFRUIT_FRUIT_JAM_A1_PIN 41
37+
#define ADAFRUIT_FRUIT_JAM_A2_PIN 42
38+
#define ADAFRUIT_FRUIT_JAM_A3_PIN 43
39+
#define ADAFRUIT_FRUIT_JAM_A4_PIN 44
40+
#define ADAFRUIT_FRUIT_JAM_A5_PIN 45
41+
42+
#define ADAFRUIT_FRUIT_JAM_D6_PIN 6
43+
#define ADAFRUIT_FRUIT_JAM_D7_PIN 7
44+
#define ADAFRUIT_FRUIT_JAM_D8_PIN 8
45+
#define ADAFRUIT_FRUIT_JAM_D9_PIN 9
46+
#define ADAFRUIT_FRUIT_JAM_D10_PIN 10
47+
48+
// Buttons
49+
// Boot button is also known as Button 1.
50+
#define ADAFRUIT_FRUIT_JAM_BOOT_BUTTON_PIN 0
51+
#define ADAFRUIT_FRUIT_JAM_BUTTON1_PIN 0
52+
#define ADAFRUIT_FRUIT_JAM_BUTTON2_PIN 4
53+
#define ADAFRUIT_FRUIT_JAM_BUTTON3_PIN 5
54+
55+
// ESP32-C6 co-processor
56+
#define ADAFRUIT_FRUIT_JAM_WIFI_SCK_PIN 30
57+
#define ADAFRUIT_FRUIT_JAM_WIFI_MOSI_PIN 31
58+
#define ADAFRUIT_FRUIT_JAM_WIFI_MISO_PIN 28
59+
#define ADAFRUIT_FRUIT_JAM_WIFI_CS_PIN 46
60+
#define ADAFRUIT_FRUIT_JAM_WIFI_ACK_PIN 3
61+
#define ADAFRUIT_FRUIT_JAM_WIFI_RESET_PIN 22
62+
63+
// HSTX header
64+
#define ADAFRUIT_FRUIT_JAM_DVI_CKN_PIN 12
65+
#define ADAFRUIT_FRUIT_JAM_DVI_CKP_PIN 13
66+
#define ADAFRUIT_FRUIT_JAM_DVI_D0N_PIN 14
67+
#define ADAFRUIT_FRUIT_JAM_DVI_D0P_PIN 15
68+
#define ADAFRUIT_FRUIT_JAM_DVI_D1N_PIN 16
69+
#define ADAFRUIT_FRUIT_JAM_DVI_D1P_PIN 17
70+
#define ADAFRUIT_FRUIT_JAM_DVI_D2N_PIN 18
71+
#define ADAFRUIT_FRUIT_JAM_DVI_D2P_PIN 19
72+
73+
// Reset for ESP32-C6 and TLV320DAC3100
74+
#define ADAFRUIT_FRUIT_JAM_PERIPH_RESET_PIN 22
75+
76+
#define ADAFRUIT_FRUIT_JAM_I2S_ESP_IRQ_PIN 23
77+
78+
// I2S to TLV320DAC3100
79+
#define ADAFRUIT_FRUIT_JAM_I2S_DIN_PIN 24
80+
#define ADAFRUIT_FRUIT_JAM_I2S_MCLK_PIN 25
81+
#define ADAFRUIT_FRUIT_JAM_I2S_BCLK_PIN 26
82+
#define ADAFRUIT_FRUIT_JAM_I2S_WS_PIN 27
83+
84+
// SD and SDIO
85+
#define ADAFRUIT_FRUIT_JAM_SD_SCK_PIN 34
86+
#define ADAFRUIT_FRUIT_JAM_SDIO_CLOCK_PIN 34
87+
88+
#define ADAFRUIT_FRUIT_JAM_SD_MOSI_PIN 35
89+
#define ADAFRUIT_FRUIT_JAM_SDIO_COMMAND_PIN 35
90+
91+
#define ADAFRUIT_FRUIT_JAM_SD_MISO_PIN 36
92+
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA0_PIN 36
93+
94+
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA1_PIN 37
95+
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA2_PIN 38
96+
97+
#define ADAFRUIT_FRUIT_JAM_SD_CS_PIN 39
98+
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA3_PIN 39
99+
100+
#define ADAFRUIT_FRUIT_JAM_SD_CARD_DETECT_PIN 33
101+
102+
#define ADAFRUIT_FRUIT_JAM_USB_HOST_DATA_PLUS_PIN 1
103+
#define ADAFRUIT_FRUIT_JAM_USB_HOST_DATA_MINUS_PIN 2
104+
#define ADAFRUIT_FRUIT_JAM_USB_HOST_5V_POWER_PIN 11
105+
106+
// --- UART ---
107+
#ifndef PICO_DEFAULT_UART
108+
#define PICO_DEFAULT_UART 1
109+
#endif
110+
111+
#ifndef PICO_DEFAULT_UART_TX_PIN
112+
#define PICO_DEFAULT_UART_TX_PIN 8
113+
#endif
114+
115+
#ifndef PICO_DEFAULT_UART_RX_PIN
116+
#define PICO_DEFAULT_UART_RX_PIN 9
117+
#endif
118+
119+
// --- LED ---
120+
#ifndef PICO_DEFAULT_LED_PIN
121+
#define PICO_DEFAULT_LED_PIN 29
122+
#endif
123+
124+
// --- RGB (NeoPixel) LED ---
125+
#ifndef PICO_DEFAULT_WS2812_PIN
126+
#define PICO_DEFAULT_WS2812_PIN 32
127+
#endif
128+
129+
// --- I2C ---
130+
#ifndef PICO_DEFAULT_I2C
131+
#define PICO_DEFAULT_I2C 0
132+
#endif
133+
#ifndef PICO_DEFAULT_I2C_SDA_PIN
134+
#define PICO_DEFAULT_I2C_SDA_PIN 20
135+
#endif
136+
#ifndef PICO_DEFAULT_I2C_SCL_PIN
137+
#define PICO_DEFAULT_I2C_SCL_PIN 21
138+
#endif
139+
140+
// --- SPI ---
141+
// Default SPI is also the SPI for the SD card.
142+
#ifndef PICO_DEFAULT_SPI
143+
#define PICO_DEFAULT_SPI 0
144+
#endif
145+
#ifndef PICO_DEFAULT_SPI_SCK_PIN
146+
#define PICO_DEFAULT_SPI_SCK_PIN ADAFRUIT_FRUIT_JAM_SD_SCK_PIN
147+
#endif
148+
#ifndef PICO_DEFAULT_SPI_TX_PIN
149+
#define PICO_DEFAULT_SPI_TX_PIN ADAFRUIT_FRUIT_JAM_SD_MOSI_PIN
150+
#endif
151+
#ifndef PICO_DEFAULT_SPI_RX_PIN
152+
#define PICO_DEFAULT_SPI_RX_PIN ADAFRUIT_FRUIT_JAM_SD_MISO_PIN
153+
#endif
154+
155+
//------------- SD ------------
156+
#ifndef PICO_SD_CARD_DETECT_PIN
157+
#define PICO_SD_CARD_DETECT_PIN ADAFRUIT_FRUIT_JAM_SD_CARD_DETECT_PIN
158+
#endif
159+
160+
#ifndef PICO_SD_CLK_PIN
161+
#define PICO_SD_CLK_PIN ADAFRUIT_FRUIT_JAM_SDIO_CLOCK_PIN
162+
#endif
163+
164+
#ifndef PICO_SD_CMD_PIN
165+
#define PICO_SD_CMD_PIN ADAFRUIT_FRUIT_JAM_SDIO_COMMAND_PIN
166+
#endif
167+
168+
#ifndef PICO_SD_DAT0_PIN
169+
#define PICO_SD_DAT0_PIN ADAFRUIT_FRUIT_JAM_SDIO_DATA0_PIN
170+
#endif
171+
172+
#ifndef PICO_SD_DAT_PIN_INCREMENT
173+
#define PICO_SD_DAT_PIN_INCREMENT 1
174+
#endif
175+
176+
#ifndef PICO_SD_DAT_PIN_COUNT
177+
#define PICO_SD_DAT_PIN_COUNT 4
178+
#endif
179+
180+
// --- I2S AUDIO (for pico-extras/src/rp2_common/pico_audio_i2s/)
181+
182+
#ifndef PICO_AUDIO_I2S_DATA_PIN
183+
#define PICO_AUDIO_I2S_DATA_PIN ADAFRUIT_FRUIT_JAM_I2S_DIN_PIN
184+
#endif
185+
186+
#ifndef PICO_AUDIO_I2S_CLOCK_PIN_BASE
187+
#define PICO_AUDIO_I2S_CLOCK_PIN_BASE ADAFRUIT_FRUIT_JAM_I2S_BCLK_PIN
188+
#endif
189+
190+
// --- PIO USB ---
191+
#define PICO_DEFAULT_PIO_USB_DP_PIN ADAFRUIT_FRUIT_JAM_USB_HOST_DATA_PLUS_PIN
192+
193+
// --- FLASH ---
194+
// Winbond W25Q128 (16MB) flash
195+
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1
196+
197+
#ifndef PICO_FLASH_SPI_CLKDIV
198+
#define PICO_FLASH_SPI_CLKDIV 2
199+
#endif
200+
201+
pico_board_cmake_set_default(PICO_FLASH_SIZE_BYTES, (16 * 1024 * 1024))
202+
#ifndef PICO_FLASH_SIZE_BYTES
203+
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
204+
#endif
205+
206+
pico_board_cmake_set_default(PICO_RP2350_A2_SUPPORTED, 1)
207+
#ifndef PICO_RP2350_A2_SUPPORTED
208+
#define PICO_RP2350_A2_SUPPORTED 1
209+
#endif
210+
211+
#endif

0 commit comments

Comments
 (0)