Skip to content

added bigtreetech SKR-Pico #2988

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

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

s-light
Copy link

@s-light s-light commented Jun 11, 2025

i hope i have done all correctly..

please let me know how i can test my changes locally -
is it save to link the repo to the arduino hardware folder?

@earlephilhower
Copy link
Owner

I'm a fan of the Bigtree SKR boards and have built an MPCNC and a custom delta 3D printer using older ones, so this is really cool. I imagine the PIO can be really handy for doing precise, low (~0) CPU overhead step control!

Did you manually change the boards.txt or package file? The CI is showing a different ordering of entries vs. what the script generates. You'll want to rerun your makeboards.py and commit those changes to get that part passing.

For the "build all boards" failure you'll need to define the commented-out SPI and I2C(Wire) defines. You can give legal defaults (see the plain Pico) or use 99 like you have....unless the user calls Wire.begin() or SPI.begin() the values aren't actually applied...but they do need to be defined.

@@ -541,13 +541,16 @@ def MakeBoardJSON(name, chip, vendor_name, product_name, vid, pid, pwr, boarddef
# ArtronShop
MakeBoard("artronshop_rp2_nano", "rp2040", "ArtronShop", "RP2 Nano", "0x2e8a", "0x000a", 250, "ARTRONSHOP_RP2_NANO", 2, 0, "boot2_w25q080_2_padded_checksum")

# BIGTREETECH
MakeBoard("bigtreetech_SKR_Pico", "rp2040", "BIGTREETECH", "SKR-Pico", "0x2e8b", "0xf00a", 250, "BIGTREETECH_SKR_PICO", 16, 0, "boot2_w25q080_2_padded_checksum", board_url="https://github.com/bigtreetech/SKR-Pico")
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just checked the schematic and it looks like this has only 2 MB (16Mbit) of flash, so the 16 here should be 2. OTW things like the filesystem and EEPROM will go very, very wrong...

Copy link
Contributor

@maxgerhardt maxgerhardt Jun 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If https://www.reddit.com/r/BIGTREETECH/comments/19f58r4/skr_pico_flash_size/ is right and the flash is a W25Q16JVUXIQ then the boot2_w25q16jvxq_4_padded_checksum might be an even better match for the Boot2 (faster too, 4 data lines instead of 2), instead of the currently set boot2_w25q080_2_padded_checksum.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you be mixing up the Espressif DIO/QIO and the Pico. I thought only QSPI (i.e. 4) lines were supported by XIP. The _2 or _4 in boot2.s refers to the sysclk divisor, so a /2 is faster than a /4...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct. Taking that back. Clock div by 2 is better than div by 4.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you are right -
W25Q16 - Density 16Mb
in the fast read i read 16MB

https://github.com/bigtreetech/SKR-Pico/blob/master/Hardware/BTT%20SKR%20Pico%20V1.0-SCH.pdf
image
image

so what is the best fit?
https://github.com/earlephilhower/arduino-pico/blob/master/tools/makeboards.py#L126

  • Generic SPI /2 boot2_generic_03h_2_padded_checksum
  • Generic SPI /4 boot2_generic_03h_4_padded_checksum
  • IS25LP080 QSPI /2 boot2_is25lp080_2_padded_checksum
  • IS25LP080 QSPI /4 boot2_is25lp080_4_padded_checksum
  • W25Q080 QSPI /2 boot2_w25q080_2_padded_checksum
  • W25Q080 QSPI /4 boot2_w25q080_4_padded_checksum
  • W25X10CL QSPI /2 boot2_w25x10cl_2_padded_checksum
  • W25X10CL QSPI /4 boot2_w25x10cl_4_padded_checksum
  • W25Q64JV QSPI /4 boot2_w25q64jv_4_padded_checksum
  • W25Q16JVxQ QSPI /4 boot2_w25q16jvxq_4_padded_checksum
  • W25Q128JV QSPI /4 boot2_w25q128jvxq_4_padded_checksum

Copy link
Contributor

@maxgerhardt maxgerhardt Jun 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the serial output result when uploading https://github.com/earlephilhower/arduino-pico/blob/master/libraries/LittleFS/examples/SpeedTest/SpeedTest.ino and using either

  • boot2_w25q080_2_padded_checksum
  • boot2_w25q16jvxq_4_padded_checksum
  • boot2_generic_03h_2_padded_checksum
  • boot2_generic_03h_4_padded_checksum

Don't forget to give it some filesystem size like Tools -> Flash size -> "2MB (Sketch 1MB, FS: 1MB)".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants