Skip to content

Adafruit Fruit Jam board #2363

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions src/boards/include/boards/adafruit_fruit_jam.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
/*
* Copyright (c) 2025 Dan Halbert for Adafruit Industries
*
* SPDX-License-Identifier: BSD-3-Clause
*/

// -----------------------------------------------------
// NOTE: THIS HEADER IS ALSO INCLUDED BY ASSEMBLER SO
// SHOULD ONLY CONSIST OF PREPROCESSOR DIRECTIVES
// -----------------------------------------------------

// This header may be included by other board headers as "boards/adafruit_fruit_jam.h"

// pico_cmake_set PICO_PLATFORM=rp2350

#ifndef _BOARDS_ADAFRUIT_FRUIT_JAM_H
#define _BOARDS_ADAFRUIT_FRUIT_JAM_H

// On some samples, the xosc can take longer to stabilize than is usual
#ifndef PICO_XOSC_STARTUP_DELAY_MULTIPLIER
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
#endif

// For board detection
#define ADAFRUIT_FRUIT_JAM

// --- RP2350 VARIANT ---
// This means RP2350B.
#define PICO_RP2350A 0

// --- BOARD SPECIFIC ---
// On JST PH connector.
#define ADAFRUIT_FRUIT_JAM_A0_PIN 40

// On header.
#define ADAFRUIT_FRUIT_JAM_A1_PIN 41
#define ADAFRUIT_FRUIT_JAM_A2_PIN 42
#define ADAFRUIT_FRUIT_JAM_A3_PIN 43
#define ADAFRUIT_FRUIT_JAM_A4_PIN 44
#define ADAFRUIT_FRUIT_JAM_A5_PIN 45

#define ADAFRUIT_FRUIT_JAM_D6_PIN 6
#define ADAFRUIT_FRUIT_JAM_D7_PIN 7
#define ADAFRUIT_FRUIT_JAM_D8_PIN 8
#define ADAFRUIT_FRUIT_JAM_D9_PIN 9
#define ADAFRUIT_FRUIT_JAM_D10_PIN 10

#define ADAFRUIT_FRUIT_JAM_BOOT_BUTTON_PIN 0
#define ADAFRUIT_FRUIT_JAM_BUTTON1_PIN 0
#define ADAFRUIT_FRUIT_JAM_BUTTON2_PIN 4
#define ADAFRUIT_FRUIT_JAM_BUTTON3_PIN 5

#define ADAFRUIT_FRUIT_JAM_ESP_CS_PIN 46

#define ADAFRUIT_FRUIT_JAM_DVI_CKN_PIN 12
#define ADAFRUIT_FRUIT_JAM_DVI_CKP_PIN 13
#define ADAFRUIT_FRUIT_JAM_DVI_D0N_PIN 14
#define ADAFRUIT_FRUIT_JAM_DVI_D0P_PIN 15
#define ADAFRUIT_FRUIT_JAM_DVI_D1N_PIN 16
#define ADAFRUIT_FRUIT_JAM_DVI_D1P_PIN 17
#define ADAFRUIT_FRUIT_JAM_DVI_D2N_PIN 18
#define ADAFRUIT_FRUIT_JAM_DVI_D2P_PIN 19

#define ADAFRUIT_FRUIT_JAM_PERIPH_RESET_PIN 22

#define ADAFRUIT_FRUIT_JAM_I2S_MCLK_PIN 27
#define ADAFRUIT_FRUIT_JAM_I2S_BCLK_PIN 26
#define ADAFRUIT_FRUIT_JAM_I2S_WS_PIN 25
#define ADAFRUIT_FRUIT_JAM_I2S_DIN_PIN 24
#define ADAFRUIT_FRUIT_JAM_I2S_GPIO1_PIN 23

#define ADAFRUIT_FRUIT_JAM_SD_SCK_PIN 34
#define ADAFRUIT_FRUIT_JAM_SDIO_CLOCK_PIN 34

#define ADAFRUIT_FRUIT_JAM_SD_MOSI_PIN 35
#define ADAFRUIT_FRUIT_JAM_SDIO_COMMAND_PIN 35

#define ADAFRUIT_FRUIT_JAM_SD_MISO_PIN 36
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA0_PIN 36

#define ADAFRUIT_FRUIT_JAM_SDIO_DATA1_PIN 37
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA2_PIN 38

#define ADAFRUIT_FRUIT_JAM_SD_CS_PIN 39
#define ADAFRUIT_FRUIT_JAM_SDIO_DATA3_PIN 39

#define ADAFRUIT_FRUIT_JAM_SD_CARD_DETECT_PIN 33

#define ADAFRUIT_FRUIT_JAM_USB_HOST_DATA_PLUS_PIN 1
#define ADAFRUIT_FRUIT_JAM_USB_HOST_DATA_MINUS_PIN 2
#define ADAFRUIT_FRUIT_JAM_USB_HOST_5V_POWER_PIN 11

// no PICO_DEFAULT_UART

// --- LED ---
#ifndef PICO_DEFAULT_LED_PIN
#define PICO_DEFAULT_LED_PIN 29
#endif

#ifndef PICO_DEFAULT_WS2812_PIN
#define PICO_DEFAULT_WS2812_PIN 32
#endif

// --- I2C ---
#ifndef PICO_DEFAULT_I2C
#define PICO_DEFAULT_I2C 0
#endif
#ifndef PICO_DEFAULT_I2C_SDA_PIN
#define PICO_DEFAULT_I2C_SDA_PIN 20
#endif
#ifndef PICO_DEFAULT_I2C_SCL_PIN
#define PICO_DEFAULT_I2C_SCL_PIN 21
#endif

// --- SPI ---
#ifndef PICO_DEFAULT_SPI
#define PICO_DEFAULT_SPI 1
#endif
#ifndef PICO_DEFAULT_SPI_SCK_PIN
#define PICO_DEFAULT_SPI_SCK_PIN 30
#endif
#ifndef PICO_DEFAULT_SPI_TX_PIN
#define PICO_DEFAULT_SPI_TX_PIN 31
#endif
#ifndef PICO_DEFAULT_SPI_RX_PIN
#define PICO_DEFAULT_SPI_RX_PIN 28
#endif

// --- FLASH ---

#ifndef PICO_FLASH_SPI_CLKDIV
#define PICO_FLASH_SPI_CLKDIV 2
#endif

// pico_cmake_set_default PICO_FLASH_SIZE_BYTES = (16 * 1024 * 1024)
#ifndef PICO_FLASH_SIZE_BYTES
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
#endif

// pico_cmake_set_default PICO_RP2350_A2_SUPPORTED = 1
#ifndef PICO_RP2350_A2_SUPPORTED
#define PICO_RP2350_A2_SUPPORTED 1
#endif

#endif