-
Notifications
You must be signed in to change notification settings - Fork 128
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add support for Pico (rp2040) boards (#34)
* HyperSPI support for Pico (rp2040) * Adafruit RP2040 Scorpio support (ItsyBitsy uses default build) No support for rp2040 Pimoroni level shifter boards because of missing GPIO SPI pins. * Update README.md * Update hyperspi.cpp * Update README.md * Update README.md
- Loading branch information
Showing
8 changed files
with
388 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
name: HyperSPI Pico CI Build | ||
|
||
on: [push] | ||
|
||
jobs: | ||
|
||
############################# | ||
#### HyperSPI for Pico ###### | ||
############################# | ||
|
||
HyperSpiPico: | ||
runs-on: ubuntu-latest | ||
defaults: | ||
run: | ||
working-directory: ./rp2040 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
submodules: recursive | ||
|
||
- name: Install GNU Arm Embedded Toolchain | ||
uses: carlosperate/arm-none-eabi-gcc-action@v1 | ||
with: | ||
release: '12.2.Rel1' | ||
|
||
- name: Build packages | ||
shell: bash | ||
run: | | ||
mkdir build | ||
cd build | ||
cmake .. | ||
cmake --build . --config Release | ||
- uses: actions/upload-artifact@v3 | ||
name: Upload artifacts (commit) | ||
if: (startsWith(github.event.ref, 'refs/tags') != true) | ||
with: | ||
path: | | ||
rp2040/HyperSerialPico/firmware/*.uf2 | ||
- uses: actions/upload-artifact@v3 | ||
name: Upload artifacts (release) | ||
if: startsWith(github.ref, 'refs/tags/') | ||
with: | ||
name: firmware-release | ||
path: | | ||
rp2040/HyperSerialPico/firmware/*.uf2 | ||
- name: Build packages for Adafruit Feather RP2040 Scorpio | ||
shell: bash | ||
run: | | ||
cd build | ||
rm *.* | ||
rm ../HyperSerialPico/firmware/* | ||
echo "Neopixel is using GPIO16(OUTPUT_DATA_PIN) on output 0." > ../HyperSerialPico/firmware/Firmwares_for_Adafruit_Feather_RP2040_Scorpio.txt | ||
cmake -DOVERRIDE_DATA_PIN=16 -DCMAKE_BUILD_TYPE=Release .. | ||
cmake --build . | ||
zip -j ../HyperSerialPico/firmware/Adafruit_Feather_RP2040_Scorpio.zip ../HyperSerialPico/firmware/* | ||
- uses: actions/upload-artifact@v3 | ||
name: Upload artifacts (Adafruit_Feather) | ||
if: (startsWith(github.event.ref, 'refs/tags') != true) | ||
with: | ||
path: | | ||
rp2040/HyperSerialPico/firmware/*.zip | ||
- uses: actions/upload-artifact@v3 | ||
name: Upload artifacts (release for Adafruit_Feather) | ||
if: startsWith(github.ref, 'refs/tags/') | ||
with: | ||
name: firmware-release | ||
path: | | ||
rp2040/HyperSerialPico/firmware/*.zip | ||
################################ | ||
###### Publish Releases ######## | ||
################################ | ||
|
||
publish: | ||
name: Publish Releases | ||
if: startsWith(github.event.ref, 'refs/tags') | ||
needs: [HyperSpiPico] | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
# generate environment variables | ||
- name: Generate environment variables from version and tag | ||
run: | | ||
echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV | ||
echo "preRelease=false" >> $GITHUB_ENV | ||
# If version contains alpha or beta, mark draft release as pre-release | ||
- name: Mark release as pre-release | ||
if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta') | ||
run: echo "preRelease=true" >> $GITHUB_ENV | ||
|
||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: firmware-release | ||
|
||
# create draft release and upload artifacts | ||
- name: Create draft release | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
name: HyperSPI ${{ env.VERSION }} | ||
tag_name: ${{ env.TAG }} | ||
files: | | ||
*.uf2 | ||
*.zip | ||
draft: true | ||
prerelease: ${{ env.preRelease }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
name: HyperSPI CI Build | ||
name: HyperSPI ESP32/8266 CI Build | ||
|
||
on: [push] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[submodule "rp2040/HyperSerialPico"] | ||
path = rp2040/HyperSerialPico | ||
url = https://github.com/awawa-dev/HyperSerialPico |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
build | ||
vscode |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
set(CMAKE_SYSTEM_NAME Generic) | ||
# User configuration section starts here | ||
|
||
# Some boards, such as the first Adafruit revisions, may have trouble booting properly | ||
# due to bad componets used in the design. | ||
# Turn this setting to ON if your rp2040 is not detected after firmware upload and reset | ||
set(BOOT_WORKAROUND ON) | ||
|
||
# Default output data pin for the non-SPI LED strips (only for sk6812/ws2812b) | ||
set(OUTPUT_DATA_PIN 14) | ||
|
||
# Use multi-segment, starting index of second led strip or OFF to disable | ||
set(SECOND_SEGMENT_INDEX OFF) | ||
|
||
# If multi-segment is used and it's reversed, set this option to ON to enable reversing | ||
set(SECOND_SEGMENT_REVERSED OFF) | ||
|
||
# HyperSPI communication interface with Raspberry Pi | ||
set(OUTPUT_SPI_DATA_PIN 4) | ||
set(OUTPUT_SPI_CLOCK_PIN 2) | ||
set(OUTPUT_SPI_CHIP_SELECT 5) | ||
set(OUTPUT_SPI_INTERFACE spi0) | ||
|
||
# User configuration section ends here | ||
# Usually you don't need to change anything below this section | ||
cmake_minimum_required(VERSION 3.13) | ||
|
||
set(PICO_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/HyperSerialPico/sdk/pico) | ||
set(FREERTOS_KERNEL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/HyperSerialPico/sdk/freertos) | ||
include(${PICO_SDK_PATH}/external/pico_sdk_import.cmake) | ||
include(${FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake) | ||
|
||
project(HyperSPI_Pico C CXX ASM) | ||
pico_sdk_init() | ||
|
||
set(PICO_PROGRAM_MAIN_ENTRY "../hyperspi.cpp") | ||
set(DISABLE_SPI_LEDS ON) | ||
add_definitions(-DSPI_INTERFACE=${OUTPUT_SPI_INTERFACE} | ||
-DSPI_DATA_PIN=${OUTPUT_SPI_DATA_PIN} | ||
-DSPI_CLOCK_PIN=${OUTPUT_SPI_CLOCK_PIN} | ||
-DSPI_CHIP_SELECT=${OUTPUT_SPI_CHIP_SELECT}) | ||
add_subdirectory(HyperSerialPico) |
Submodule HyperSerialPico
added at
5bf475
Oops, something went wrong.