Skip to content
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

Added Raspberry Breadstick #2205

Merged
merged 1 commit into from
Jun 6, 2024
Merged
Show file tree
Hide file tree
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Read the [Contributing Guide](https://github.com/earlephilhower/arduino-pico/blo
* Adafruit Trinkey RP2040 QT
* Arduino Nano RP2040 Connect
* ArtronShop RP2 Nano
* Breadstick Raspberry
* BridgeTek IDM2040-7A
* Cytron Maker Pi RP2040
* Cytron Maker Nano RP2040
Expand Down
330 changes: 330 additions & 0 deletions boards.txt

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions package/package_pico_index.template.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@
{
"name": "ArtronShop RP2 Nano"
},
{
"name": "Breadstick Raspberry"
},
{
"name": "BridgeTek IDM2040-7A"
},
Expand Down
56 changes: 56 additions & 0 deletions tools/json/breadstick_raspberry.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_w25q080_2_padded_checksum.S",
"usb_vid": "0x2E8A",
"usb_pid": "0x105E"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_Breadstick_Raspberry -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x2E8A",
"0x105E"
]
],
"mcu": "rp2040",
"variant": "breadstick_raspberry"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "Raspberry",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 16777216,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://shop.breadstick.ca/products/raspberry-breadstick-rp2040",
"vendor": "Breadstick"
}
56 changes: 56 additions & 0 deletions tools/json/groundstudio_marble_pico.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "boot2_w25q16jvxq_4_padded_checksum.S",
"usb_vid": "0x2E8A",
"usb_pid": "0x0003"
}
},
"core": "earlephilhower",
"cpu": "cortex-m0plus",
"extra_flags": "-D ARDUINO_MARBLE_PICO -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=500",
"f_cpu": "133000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x2E8A",
"0x0003"
]
],
"mcu": "rp2040",
"variant": "groundstudio_marble_pico"
},
"debug": {
"jlink_device": "RP2040_M0_0",
"openocd_target": "rp2040.cfg",
"svd_path": "rp2040.svd"
},
"frameworks": [
"arduino"
],
"name": "Marble Pico",
"upload": {
"maximum_ram_size": 270336,
"maximum_size": 8388608,
"require_upload_port": true,
"native_usb": true,
"use_1200bps_touch": true,
"wait_for_upload_port": false,
"protocol": "picotool",
"protocols": [
"blackmagic",
"cmsis-dap",
"jlink",
"raspberrypi-swd",
"picotool",
"picoprobe",
"pico-debug"
]
},
"url": "https://ardushop.ro/2652-marble-pico.html",
"vendor": "GroundStudio"
}
3 changes: 3 additions & 0 deletions tools/makeboards.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,9 @@ def MakeBoardJSON(name, vendor_name, product_name, vid, pid, pwr, boarddefine, f
# ArtronShop
MakeBoard("artronshop_rp2_nano", "ArtronShop", "RP2 Nano", "0x2e8a", "0x000a", 250, "ARTRONSHOP_RP2_NANO", 2, "boot2_w25q080_2_padded_checksum")

# Breadstick
MakeBoard("breadstick_raspberry", "Breadstick", "Raspberry", "0x2e8a", "0x105e" , 500, "Breadstick_Raspberry", 16, "boot2_w25q080_2_padded_checksum", board_url="https://shop.breadstick.ca/products/raspberry-breadstick-rp2040")

# BridgeTek
MakeBoard("bridgetek_idm2040-7a", "BridgeTek", "IDM2040-7A", "0x2e8a", "0x1041", 250, "BRIDGETEK_IDM2040-7A", 8, "boot2_w25q080_2_padded_checksum", ["FT8XX_TYPE=BT817", "DISPLAY_RES=WVGA", "PLATFORM_RP2040"])

Expand Down
95 changes: 95 additions & 0 deletions variants/breadstick_raspberry/pins_arduino.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#pragma once

#include <stdint.h>


// Pin definitions taken from:
// https://github.com/Breadstick-Innovations/Raspberry-Breadstick


// Serial
#define PIN_SERIAL1_TX (20u)
#define PIN_SERIAL1_RX (21u)

// SPI

#define PIN_SPI1_MISO (8u)
#define PIN_SPI1_MOSI (11u)
#define PIN_SPI1_SCK (10u)
#define PIN_SPI1_SS (9u)

// Wire
#define PIN_WIRE0_SDA (12u)
#define PIN_WIRE0_SCL (13u)

#define PIN_WIRE1_SDA (22u)
#define PIN_WIRE1_SCL (23u)

#define SERIAL_HOWMANY (2u)
#define SPI_HOWMANY (1u)
#define WIRE_HOWMANY (2u)

#define PINS_COUNT (22u)
#define NUM_DIGITAL_PINS (22u)
#define NUM_ANALOG_INPUTS (4u)
#define NUM_ANALOG_OUTPUTS (0u)
#define ADC_RESOLUTION (12u)
#define WIRE_INTERFACES_COUNT (WIRE_HOWMANY)

static const uint8_t D1 = (27u);
static const uint8_t D2 = (26u);
static const uint8_t D3 = (11u);
static const uint8_t D4 = (10u);
static const uint8_t D5 = (9u);
static const uint8_t D6 = (8u);
static const uint8_t D7 = (7u);
static const uint8_t D8 = (6u);
static const uint8_t D9 = (5u);
static const uint8_t D10 = (24u);
static const uint8_t D11 = (23u);
static const uint8_t D12 = (22u);
static const uint8_t D13 = (21u);
static const uint8_t D14 = (20u);
static const uint8_t D15 = (19u);
static const uint8_t D16 = (18u);
static const uint8_t D17 = (29u);
static const uint8_t D18 = (28u);


#ifdef __PIN_A2
static const uint8_t A2 = __PIN_A2;
#else
static const uint8_t A2 = (26u);
#endif

#ifdef __PIN_A1
static const uint8_t A1 = __PIN_A1;
#else
static const uint8_t A1 = (27u);
#endif

#ifdef __PIN_A18
static const uint8_t A18 = __PIN_A18;
#else
static const uint8_t A18 = (28u);
#endif

#ifdef __PIN_A17
static const uint8_t A17 = __PIN_A17;
#else
static const uint8_t A17 = (29u);
#endif

static const uint8_t SS = PIN_SPI1_SS;
static const uint8_t MOSI = PIN_SPI1_MOSI;
static const uint8_t MISO = PIN_SPI1_MISO;
static const uint8_t SCK = PIN_SPI1_SCK;

static const uint8_t SDA = PIN_WIRE1_SDA;
static const uint8_t SCL = PIN_WIRE1_SCL;

static const uint8_t IMU_SDA = PIN_WIRE0_SDA;
static const uint8_t IMU_SCL = PIN_WIRE0_SCL;

static const uint8_t DOTSTAR_CLOCK = (16u);
static const uint8_t DOTSTAR_DATA = (17u);