Skip to content

Commit

Permalink
build: add Pico2/Pico2W build target with universal Pico 1 & 2 uf2.
Browse files Browse the repository at this point in the history
  • Loading branch information
erichelgeson committed Dec 5, 2024
1 parent cc8f787 commit 30b42b9
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 8 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/firmware_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: Build firmware
run: |
cd BlueSCSI
pio run -v -e BlueSCSI_Pico
pio run -v -e BlueSCSI_Pico -e BlueSCSI_Pico2
- name: Rename firmware files
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ dist/
.vscode/extensions.json
cc-nc-hardware/*/*-backups/
.idea/
distrib/
55 changes: 55 additions & 0 deletions boards/rpipico2w.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"build": {
"arduino": {
"earlephilhower": {
"boot2_source": "none.S",
"usb_vid": "0x2E8A",
"usb_pid": "0xF00F"
}
},
"core": "earlephilhower",
"cpu": "cortex-m33",
"extra_flags": "-DARDUINO_RASPBERRY_PI_PICO_2W -DARDUINO_ARCH_RP2040 -DUSBD_MAX_POWER_MA=250 -DPICO_CYW43_SUPPORTED=1 -DCYW43_PIN_WL_DYNAMIC=1",
"f_cpu": "150000000L",
"hwids": [
[
"0x2E8A",
"0x00C0"
],
[
"0x2E8A",
"0xF00F"
]
],
"mcu": "rp2350",
"variant": "rpipico2w"
},
"debug": {
"jlink_device": "RP2350_0",
"openocd_target": "rp2350.cfg",
"svd_path": "rp2350.svd"
},
"frameworks": [
"arduino"
],
"name": "Pico 2W",
"upload": {
"maximum_ram_size": 524288,
"maximum_size": 4194304,
"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"
]
},
"url": "https://www.raspberrypi.org/products/raspberry-pi-pico/",
"vendor": "Raspberry Pi"
}
2 changes: 2 additions & 0 deletions lib/BlueSCSI_platform_RP2040/BlueSCSI_platform_network.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ static bool network_in_use = false;

bool __not_in_flash_func(platform_network_supported)()
{
// FIXME: This method currently incorrectly returns true on the Pico2 (non-wifi)
// Track here: https://github.com/earlephilhower/arduino-pico/issues/2671
return rp2040.isPicoW();
}

Expand Down
17 changes: 16 additions & 1 deletion platformio.ini
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ default_envs = BlueSCSI_Pico

; BlueSCSI RP2040 hardware platform, based on the Raspberry Pi foundation RP2040 microcontroller
[env:BlueSCSI_Pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#2d445020acf8b792768a5fa5ba1870ac9607c11c
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#19e30129fb1428b823be585c787dcb4ac0d9014c
platform_packages =
framework-arduinopico@https://github.com/BlueSCSI/arduino-pico-internal.git#v4.1.1-DaynaPORT
framework = arduino
Expand Down Expand Up @@ -52,6 +52,21 @@ build_flags =
-DCYW43_LWIP=0
-DCYW43_USE_OTP_MAC=0

[env:BlueSCSI_Pico2]
board = rpipico2w
extends = env:BlueSCSI_Pico
platform = https://github.com/maxgerhardt/platform-raspberrypi.git#19e30129fb1428b823be585c787dcb4ac0d9014c
platform_packages =
framework-arduinopico@https://github.com/BlueSCSI/arduino-pico-internal.git#v4.3.0-DaynaPORT
build_flags =
${env:BlueSCSI_Pico.build_flags}
-DCYW43_PIO_CLOCK_DIV_DYNAMIC=1
-DBLUESCSI_PICO2=1
; build flags mirroring the framework-arduinopico#v4.1.1-DaynaPORT static library build
-DPICO_CYW43_ARCH_POLL=1
-DCYW43_LWIP=0
-DCYW43_USE_OTP_MAC=0

; Experimental Audio build
; Requires separate hardware and overclock.
; For experimentation only, do not use.
Expand Down
15 changes: 9 additions & 6 deletions utils/rename_binaries.sh
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
#!/bin/bash
#!/usr/bin/env bash

# This script renames the built binaries according to version
# number and platform.

set -e
set -x
mkdir -p distrib

DATE=$(date +%Y-%m-%d)
VERSION=$(git describe --always)

for file in $(ls .pio/build/*/*.bin .pio/build/*/*.elf .pio/build/*/*.uf2)
for file in .pio/build/*/*.bin .pio/build/*/*.elf .pio/build/*/*.uf2
do
NEWNAME=$(echo $file | sed 's|.pio/build/\([^/]*\)/\(.*\)\.\(.*\)|\1_'$DATE'_'$VERSION'.\3|')
echo $file to distrib/$NEWNAME
cp $file distrib/$NEWNAME
NEWNAME=$(echo "$file" | sed 's|.pio/build/\([^/]*\)/\(.*\)\.\(.*\)|\1_'$DATE'_'$VERSION'.\3|')
echo "$file" to distrib/"$NEWNAME"
cp "$file" distrib/"$NEWNAME"
done

cat distrib/*.uf2 > distrib/BlueSCSI_Universal_"$DATE"_"$VERSION".uf2

0 comments on commit 30b42b9

Please sign in to comment.