Need Help to Manually Install Seeeds Board Package

A toolchain is always needed. However, this is not something you normally need to think about, or even know about because Arduino IDE is designed to handle all of that for you. The toolchain is normally only something you would need to think about if you were not using an IDE, but instead working directly with the tools (e.g., running GCC commands directly to compile a C++ program).

Now that you have successfully installed the "Silicon Labs" platform, you won't need to think about the toolchain any more (until the time comes to install another platform that has large files hosted via GitHub release assets, or update to the next version of the "Silicon Labs" platform). However, it is a subject that some of us find interesting and valuable to know about. So if you ever are curious about the toolchains, then you are very welcome to ask questions about the subject here on Arduino Forum. Some of the forum helpers are very knowledgeable on that subject matter.

I know because I looked at the entry in the package index that provides the data the Arduino IDE Boards Manager uses to install the platform:

https://downloads.arduino.cc/packages/package_index.json

Here is the entry for the 3.0.0 release of the "Silicon Labs" platform:

        {
          "name": "Silicon Labs",
          "architecture": "silabs",
          "version": "2.2.0",
          "category": "Silicon Labs",
          "url": "https://github.com/SiliconLabs/arduino/releases/download/2.2.0/silabs_arduino_core-2.2.0.zst",
          "archiveFileName": "silabs_arduino_core-2.2.0.zst",
          "checksum": "SHA-256:6ddf48877a3cdbbe6b5ad422ad0e1a15e50c3fe4e59f0bae33ad613b5e7520bc",
          "size": 448097201,
          "help": {
            "online": "https://github.com/SiliconLabs/arduino"
          },
          "boards": [
            {
              "name": "Arduino Nano Matter"
            },
            {
              "name": "SparkFun Thing Plus Matter"
            },
            {
              "name": "xG24 Explorer Kit"
            },
            {
              "name": "xG24 Dev Kit"
            },
            {
              "name": "xG27 Dev Kit"
            },
            {
              "name": "BGM220 Explorer Kit"
            },
            {
              "name": "Ezurio Lyra 24P 20dBm Dev Kit"
            },
            {
              "name": "Seeed Studio XIAO MG24 (Sense)"
            }
          ],
          "toolsDependencies": [
            {
              "packager": "SiliconLabs",
              "name": "gcc-arm-none-eabi",
              "version": "12.2.rel1"
            },
            {
              "packager": "SiliconLabs",
              "name": "openocd",
              "version": "0.12.0-arduino1-static"
            },
            {
              "packager": "SiliconLabs",
              "name": "simplicitycommander",
              "version": "1.16.4"
            }
          ]
        },

The toolsDependencies array defines the toolchain components that Boards Manager should install in addition to the platform.

This element in the toolsDependencies array specifies a dependency on version 12.2.rel1 of the tool with machine identifier gcc-arm-none-eabi (ARM GNU Toolchain), which is distributed by the vendor with machine identifier SiliconLabs (the Silicon Labs company):

            {
              "packager": "SiliconLabs",
              "name": "gcc-arm-none-eabi",
              "version": "12.2.rel1"
            },

The machine identifier for this specific tool release is SiliconLabs:gcc-arm-none-eabi@12.2.rel1.

There is a separate entry in the package index for each tool release. Here is the entry for the SiliconLabs:gcc-arm-none-eabi@12.2.rel1 release:

        {
          "name": "gcc-arm-none-eabi",
          "version": "12.2.rel1",
          "systems": [
            {
              "host": "arm64-apple-darwin",
              "url": "https://github.com/SiliconLabs/arduino/releases/download/2.0.0/arm-gnu-toolchain-12.2.rel1-darwin-arm64-arm-none-eabi.tar.zst",
              "archiveFileName": "arm-gnu-toolchain-12.2.rel1-darwin-arm64-arm-none-eabi.tar.zst",
              "checksum": "SHA-256:9e9091454d81fc44ca090f4f5cbffeef8cb3d7541b83381198fc761c62029c41",
              "size": "184007579"
            },
            {
              "host": "i686-mingw32",
              "url": "https://github.com/SiliconLabs/arduino/releases/download/2.0.0/arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi.zst",
              "archiveFileName": "arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi.zst",
              "checksum": "SHA-256:0a8788cc3cdfcf8a03189dafc27c2936834bbbab3efc021eaf41c739eef4c253",
              "size": "279987372"
            },
            {
              "host": "x86_64-apple-darwin",
              "url": "https://github.com/SiliconLabs/arduino/releases/download/2.0.0/arm-gnu-toolchain-12.2.rel1-darwin-x86_64-arm-none-eabi.tar.zst",
              "archiveFileName": "arm-gnu-toolchain-12.2.rel1-darwin-x86_64-arm-none-eabi.tar.zst",
              "checksum": "SHA-256:8c9d786e48427229c01df060dbf5ffb926fee39360e4773d0811118baef44506",
              "size": "191221203"
            },
            {
              "host": "x86_64-pc-linux-gnu",
              "url": "https://github.com/SiliconLabs/arduino/releases/download/2.0.0/arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.zst",
              "archiveFileName": "arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.zst",
              "checksum": "SHA-256:9eb46cf29edb5bcd8b27ae0208f5313c40fd0ff1b8cbbb59cd7aa0c7326d9e5d",
              "size": "246980758"
            }
          ]
        },

Since the tools are executable binaries, it is necessary to distribute a separate build for each target host architecture. The build of the tool that is made for a macOS Apple Silicon machine will not run on a Windows machine.

The machine identifier for the Windows host machine is i686-mingw32, so from this I know that you must download the file at this URL:

https://github.com/SiliconLabs/arduino/releases/download/2.0.0/arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi.zst

Since it is a bit sketchy to download files from links provided by random strangers on the Internet, instead of giving you that link directly to the file, I instead pointed you to the release release page in Silicon Labs' official GitHub repository, where the link is also listed. That way there was context around the link that would allow you to better evaluate its trustworthiness. I was able to determine that the link would be present on that release page by evaluating the URL and recognizing that the github.com/SiliconLabs/arduino part of the URL indicated a file in the SiliconLabs/arduino GitHub repository, that the https://github.com/<owner>/<repository>/releases/download URL format indicates a GitHub release asset, that the 2.0.0 part of the URL indicated that the asset is in the 2.0.0 release, and that the specific asset is named "arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi.zst".

From the package index, we can also determine that:

  • the "arm-gnu-toolchain-12.2.rel1-darwin-arm64-arm-none-eabi.tar.zst" release asset is the variant of the ARM GNU Toolchain built for use on macOS Apple Silicon (ARM) host machines.
  • the "arm-gnu-toolchain-12.2.rel1-darwin-x86_64-arm-none-eabi.tar.zst" release asset is the variant of the ARM GNU Toolchain built for use on macOS x86 (AKA "Intel") host machines.
  • The "arm-gnu-toolchain-12.2.rel1-x86_64-arm-none-eabi.tar.zst" release asset is the variant of the ARM GNU Toolchain built for use on Linux x86 host machines.

It probably does often end up that way just because Windows is Windows :laughing:, but no that is definitely not correct.

Great news!

As you guessed this is due to the fact that support was not added to the FastLED library for the board you are using.

However, there is possibly good news. The FastLED developer recently added support to the library for the Arduino Nano Matter board, which also uses the "Silicon Labs" boards platform. It may well be that this work also resulted in support for whatever board you are using. I verified that the library does now compile for the Nano Matter board. I don't have access to a Nano Matter board at this time, so I can't test it out beyond that, but I think it is worth a try if you are interested in using the FastLED library with your Silicon Labs microcontroller-based board.

The Nano Matter support was added after the time of the latest release of the library, so the version you get from Library Manager is still not compatible. Currently, you must install the beta tester version of the library to use it with Nano Matter. I'll provide instructions you can follow to do that in case anyone would like to give it a try:

  1. Click the following link to open the library's GitHub repository homepage in your web browser:
    https://github.com/FastLED/FastLED
  2. Click the "Code ▾" button you see on that page.
  3. Select Download ZIP from the menu.
    A download of the ZIP file of the library will start.
  4. Wait for the download to finish.
  5. Select Sketch > Include library > Add .ZIP Library from the Arduino IDE menus.
    The "Select the zip file containing the library you'd like to add" dialog will open.
  6. Select the downloaded file from the dialog.
  7. Click the "Open" button.
    The dialog will close.
  8. If you already have an installation of the library, a "Do you want to overwrite the existing library?" dialog will now open. Click the "YES" button in the dialog.
  9. Wait for the installation process to finish, as indicated by a notification at the bottom right corner of the Arduino IDE window:

    ⓘ Successfully installed library from ...

If you do give it a try, please report your findings. It will be useful to do that as a comment on the GitHub issue so that the library developer will see it:

You can identify package index URLs because the file will always have the format package_<some text>_index.json (reference), where <some text> is some arbitrary unique identifier chosen by the author of the package index in order to avoid their file having a name collision with all the other package index files Arduino IDE stores together in the same folder.

The only exception is the primary package index https://downloads.arduino.cc/packages/package_index.json, which uses the filename package_index.json. However, this URL is hardcoded into Arduino IDE, so you don't need to think about it in the context of the "Additional Boards Manager URLs" preference anyway.

@ptillisch so i learned alot there about how the files are choosen from the json file.. lot to learn ill have to read it

so the i downloaded the fastled and overwrote the 3.10.2 i guess… i then compiled and got encoder.h issue

but in the video the guy used the FastLED from Daniel guy with that seeed studio samd21 as he didnt have a avr whatever that is.. so i used the exact fastled just i used the latested version for fastLED

but ya i tried to compile and got this error now

so i searched encoder in the library search instead of doing that manual install shows the same guys name and the encoder wasnt installed.. even though i did that download code and install it..

so says its compling but sure takes along time so ill wait and see

so that failed.. when compiling using that other encoder from the same guy

this sure doesnt install like the video so easily

guess i should made this project back in september of last year when guy made this video i guess all the files would have worked flawless then

@comet424 please always provide error output as text. Providing pictures of text is very unhelpful!

Arduino IDE even makes it very easy for you to get the text: just click that nice "COPY ERROR MESSAGES", then paste the copied error message into a reply on the forum topic.

You can learn how to correctly use Arduino Forum by reading this guide:

here is the error

sorry

In file included from c:\Users\mike\Documents\Arduino\libraries\Encoder/Encoder.h:46,
from C:\Users\mike\Downloads\Modular_RGB_LED_Sign-main\Modular_RGB_LED_Sign-main\RGB_LED_Sign_004\RGB_LED_Sign_004.ino:22:
c:\Users\mike\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:390:2: error: #error "Interrupts are unknown for this board, please add to this code"
390 | #error "Interrupts are unknown for this board, please add to this code"
| ^~~~~
c:\Users\mike\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:393:2: error: #error "Encoder requires interrupt pins, but this board does not have any :("
393 | #error "Encoder requires interrupt pins, but this board does not have any :("
| ^~~~~
c:\Users\mike\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:394:2: error: #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
394 | #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
| ^~~~~
exit status 1

Compilation error: exit status 1

Please tell us exactly which Seeed board hardware you own. The tutorial specifies the use of the Seeed Studio XIAO SAMD21 board:

https://www.printables.com/model/1148094-modular-rgb-led-sign-version-2#:~:text=fill%20pattern%3A%20Gyroid-,Parts%20needed%3A,-Seedstudio%20XIAO%20SAMD21

Parts needed:

  • Seedstudio XIAO SAMD21 microcontroller

You have configured Arduino IDE to use the "Seeed Studio XIAO MG24 (Sense)" board. Despite the similar name, that is completely different hardware from the XIAO SAMD21 board.

If you actually own the XIAO SAMD21 board, then the solution will be to correctly configure Arduino IDE for use with the board you actually own.

If you do truly own the Seeed Studio XIAO MG24 board, then it will be necessary to take some measures to port the tutorial that was written for use with the XIAO SAMD21 to work with the XIAO MG24.

1 Like

i chose the Seeed Studio XIAO MG24 (Sense as thats the only option

i have

Amazon.com: Seeed Studio XIAO SAMD21 - Smallest Arduino Compatible Microcontroller with Rich Interfaces, 1pc : Electronics

as you can see the only board that has the word SEEED Studio

ill have to re watch video on the board he selected tehen but then you also mentioned nano matter so maybe thats what i should have selected

but i chose the last option as it said Seeed Studio XIAO

in the video he has different seed boards so now i lost as it doesnt show the same

at 9:40 in the video you can see he has different boards unless they been relabeled now.. but thats why i chose the last option it has the same names

so it looks like the wrong SEEED was installed? it has whole lot more options in the video

i tried nano matter board for the seeed board but it wouldnt complie either

In file included from c:\Users\mike\Documents\Arduino\libraries\Encoder/Encoder.h:46,
                 from C:\Users\mike\Downloads\Modular_RGB_LED_Sign-main\Modular_RGB_LED_Sign-main\RGB_LED_Sign_004\RGB_LED_Sign_004.ino:22:
c:\Users\mike\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:390:2: error: #error "Interrupts are unknown for this board, please add to this code"
  390 | #error "Interrupts are unknown for this board, please add to this code"
      |  ^~~~~
c:\Users\mike\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:393:2: error: #error "Encoder requires interrupt pins, but this board does not have any :("
  393 | #error "Encoder requires interrupt pins, but this board does not have any :("
      |  ^~~~~
c:\Users\mike\Documents\Arduino\libraries\Encoder/utility/interrupt_pins.h:394:2: error: #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
  394 | #error "You could try defining ENCODER_DO_NOT_USE_INTERRUPTS as a kludge."
      |  ^~~~~
exit status 1

Compilation error: exit status 1

Then you need to follow the instructions provided by Seeed Studio for installing support for that board in Arduino IDE:

https://wiki.seeedstudio.com/Seeeduino-XIAO/#software:~:text=Step%203.%20Add%20Seeeduino%20to%20your%20Arduino%20IDE

Carefully follow those instructions, then try compiling the sketch once again. Let us know if you have any questions or problems.

@ptillisch geesh i guess they changed how to do it from the 2024 video that you gotta goto another website to install board ones instead of the arduino ide

so i got the boards installed i wasnt sure as it was taking a while to download.. i followed the webpage i didnt use there blink code as i had the code i trying to install..

so its getting closer lol.. but got another error it wont upload it uploads some of the code as it makes a drive letter and adds a index.htm and info_uf2.txt files

the error is

Sketch uses 42548 bytes (16%) of program storage space. Maximum is 262144 bytes.
No device found on COM5
Failed uploading: uploading error: exit status 1

the htm file takes me to the raspberry pi site

and the txt file has

UF2 Bootloader v3.0
Model: Raspberry Pi RP2
Board-ID: RPI-RP2

going to re read all the steps to see if something else i must have missed a step

so i re read things i did it all right but it doesnt tell you what it should look like in windows device manager they show example of /dev/usbmodem in there arduino ide

what should the device manager should look like as i have it connected on com5

i tried doing seeed windows drivers from the arduino page

Install or update FTDI drivers – Arduino Help Center

amd from the seeed site documation for the win 7 8

Driver for Seeeduino | Seeed Studio Wiki

and it links u to a website that no longer exisits

Site Unavailable

even the main site https://ftdichip.com/ doesnt exist anymore.. this just a vicious circle to make this little board work i tell ya

maybe this stuff just obsolete lol i should stuck with WLED lol

Nope. It has worked the same way since Boards Manager was first created in 2015. The guy who made the video just wasn't kind enough to show that essential step in the video. They already had the Seeed SAMD Boards platform installed, so they didn't show the procedure of installing it. They only showed that they already had it installed in Boards Manager.

Excellent progress!

That looks fine.

That tutorial is only relevant for the boards that have an FTDI USB chip. Your board doesn't have an FTDI USB chip, so why are you wasting time following that tutorial?

@ptillisch ah ok

as for the tutorial cuz i googled Seeed Studio Xiao Windows driver

as it doesnt work and that company doesnt exist anymore ftdi. and i wouldnt know if it has this chip or not.. it says Seeed Studio Xiao drivers and thats what i have so thats what i was trying to do.. as you can see the installer keeps failing to install this code

i emailed the company but they probably china so who knows when they reply lol

i havent soldered anything as i didnt wanna solder anything if i couldnt get the code to upload.. so far still cant upload it just fails

when it compiles to upload it then i guess reboots the module the com port goes away and it mounts so u have those 2 files…. when you unplug and plug back in it goes back to flashing red and blue so it never uploaded hte code.. and it goes back to com port 5..

so so far i am farther then i was but cant upload.. and the read board info just shows up unknown

and this link to install the seeeduino drivers tells you u need the ftdi usb chip drivers

Driver for Seeeduino | Seeed Studio Wiki

so i was only following what they said and then i went looking and got the arduinio saying the chip site i went looking for drivers cuz it wouldnt install just keeps throwing htat arduino error

i currently uploading a video i made on my one drive account so ill post it here once it finish uploading