Skip to content

Commit

Permalink
Added Raspberry Breadstick (#2205)
Browse files Browse the repository at this point in the history
https://shop.breadstick.ca/products/raspberry-breadstick-rp2040
I think I did the pin definitions correctly... other boards used generic pin numbers based on the GPIO pins but I've mapped GPIO to the silkscreen pin labels on our board.
  • Loading branch information
mrangen committed Jun 6, 2024
1 parent 0f05ad1 commit b0ffd89
Show file tree
Hide file tree
Showing 7 changed files with 544 additions and 0 deletions.
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);

0 comments on commit b0ffd89

Please sign in to comment.