earlephilhower / arduino-pico

Raspberry Pi Pico Arduino core, for all RP2040 and RP2350 boards
GNU Lesser General Public License v2.1
2.03k stars 422 forks source link

Great job! Do you have a plan to adjust it for Platformio? #66

Closed vladkozlov69 closed 1 year ago

vladkozlov69 commented 3 years ago

Hello Earle,

your codebase looks really great. Do you have a plan to adjust it for Platformio? i.e. adding board definition and platformio-specific packages/platforms?

earlephilhower commented 3 years ago

@vladkozlov69 I don’t use Platform IO but I do know of it from my other Arduino core.

It would be great if you or another user sent a PR for this. I know it’s not a big project, but doubt I’ll have time soon on my own to look at it.

jhmaloney commented 3 years ago

Has anyone else taken this on? If not, I can give it a shot.

jhmaloney commented 3 years ago

Unfortunately, after consulting with Valerii Koval from PlatformIO, I've concluded that this project is more than I care to take on, especially since I'd need to learn a lot about creating build scripts. I also found that PlatformIO does not want to support two Arduino Pico frameworks, so PlatformIO support for this package would be an ongoing community effort.

That said, PlatformIO does have a way to pull unsupported packages from GIT repositories, so adding PlatformIO support could still be useful. This community project has support for things that are not (yet?) in the official Arduino Pico framework, including the LittleFS and Servo libraries, which my project (MicroBlocks) depends on. My sincere thanks to Earle and others who have contributed to this package!

Here are the steps Valerii outlined, in case someone else wants to give this a go.

This integration might need a substantial amount of effort. Here are the steps I think will be needed.

First, the community package uses a custom toolchain with a very recent version of the newlib library, so it is not compatible with the toolchain used in the official Arduino core. That means that you will need to repack and upload to the PlatformIO registry all the necessary toolchains. (I assume there are also other auxiliary tools that should be uploaded (e.g. elf to uf2 converter, some python scripts etc.))

Second -- and most important -- is the build script. The Arduino IDE build logic must be adapted the PlatformIO build system API. This isn't going to be an easy task. All that logic will go to a new python file in this folder https://github.com/platformio/platform-raspberrypi/tree/develop/builder/frameworks/arduino . You can take a look at similar scripts in the STM32 platform, for example https://github.com/platformio/platform-ststm32/blob/develop/builder/frameworks/arduino/mxchip.py

Finally, you will need to implement some logic so users can switch between cores. Usually, we do this using the "build.core" option. Here is how it described in our docs for STM32: https://docs.platformio.org/en/latest/platforms/ststm32.html#configuration

And here is the code responsible for switching cores (look how we change packages, their versions, build scripts, etc) https://github.com/platformio/platform-ststm32/blob/develop/platform.py#L41

earlephilhower commented 3 years ago

@jhmaloney it may not be as bad as it sounds, but it's your call.

I based this core off of my work w/the ESP8266 Arduino core (https://github.com/esp8266/Arduino) and I have a feeling the actual build script there could be used here with minor mods. The toolchain packaging AFAIK isn't much, either, as I'm using the same GCC and newlib there and it didn't seem to be a big deal to the PIO-esp8266 maintainer.

maxgerhardt commented 3 years ago

I've opened the matching issue in https://github.com/platformio/platform-raspberrypi/issues/13. I can actually also help with the needed builder script and PR into this repo.. they are not too difficult to write, mostly all the same with some core-specific configuration options added mostly.

earlephilhower commented 3 years ago

Cool, @maxgerhardt . If there are any changes, let me know! I've followed the ESP8266 tools and core packaging setup, which already supports it, so we should be more than half way there.

I'd do it myself, but I've never been able to get PIO working for me, except to build Marlin. There, it "just worked." But using a git repo instead of a d/l'd package, I could never get it to work...

maxgerhardt commented 3 years ago

FYI, today I've forked the core and added a builder script, along with the needed platform modifications to use your toolchain-pico and being able to do a core-selection in the platformio.ini in https://github.com/maxgerhardt/platform-raspberrypi. A test firmware repo is at https://github.com/maxgerhardt/pio-pico-core-earlephilhower-test.

The current state is that I can successfully build the firmware (with the linker script also generated by simplesub.py) and it runs :). Tested with a blinky and USB serial sketch.

There's also some ToDos left for being able to select the "partition table" / flash size options, and adding support for uploading files as e.g. supported in ESP8266 & ESP32. But overall, this won't be a big deal, most of the work is already done.

After that's done I'll PR into this repo and do the PRs for the platform-raspberrypi and the documentation, then we'll have it in mainstream PlatformIO.

earlephilhower commented 3 years ago

Great news! If you're feeling lucky, IIRC platformIO supports debugging and we distribute both GDB and OpenOCD in the tools tarball. But that's definitely a "nice to have" not a "need to have!" :)

Once your PR is in, I think it should be simple enough to add any platformIO specific packaging stages to the automated release process. So when I push a tag to generate a release, the CI system will generate whatever else is needed for PIO, too.

maxgerhardt commented 3 years ago

IIRC platformIO supports debugging and we distribute both GDB and OpenOCD in the tools tarball. But that's definitely a "nice to have" not a "need to have!" :)

Debugging support is handled on the platform level (platform-raspberrypi), independent of the framework, (Would also be cumbersome to re-add the same debugging logic / commands for every framework.) There, (here, here) it already has support for debugging via JLink (JLink.exe) and OpenOCD (with picotool, cmsis-dap, raspberrypi-swd or any other debug adapter). So that's actually automatically already there and PlatformIO already has the packages for it (with GDB being sourced from toolchain-pico then). I'll of course verify this with my own Pico :)

maxgerhardt commented 3 years ago

I am moving towards the final steps of the builder script refinements and platform code modifications.

It is now working that a user can specify the sketch and filesystem size in the platformio.ini, via a e.g. board_build.filesystem_size = 1M parameter. From that, the linker script input variables are calculated just like in this core.

Also I've added the code in the platform to create LittleFS images with the config that this core uses and the ability to flash those images via picotool to the device via the usual "Build Filesystem" and "Upload Filesystem" project tasks. It is all working pretty nicely :)

grafik

The final steps are making it work via OpenOCD / JLink.exe upload methods and verifying that debugging works.

maxgerhardt commented 3 years ago

I'm making progress regarding adding debugging support using Picoprobe, but it's not 100% working yet.

grafik

The stacktrace doesn't reach back to the actual user function (in the sketch I do Serial.printf() and the furthest in the stacktrace is SerialUART::write() and doesn't halt in e.g. setup() or loop(). Interestingly it sees both Cortex-M0+ cores as hardware threads and I can inspect them individually, with only Core 0 running a firmware for now.

PR #250 has been opened in the meantime for the builder script for this core.

EDIT: Hm interesting, changing the linker script to comment out that stuff is placed in RAM.. has caused all functions to be placed in RAM.. and with that debugging is working better.

grafik

JonnyHaystack commented 2 years ago

To me, https://github.com/earlephilhower/arduino-pico/issues/501 seems like the biggest issue with using this on PlatformIO right now. Adafruit TinyUSB isn't working at all, meaning USB functionality is severely limited. I couldn't figure out a way of using Pico SDK tinyusb directly either.

Laserjones commented 2 years ago

Sorry if this is not the right place for my issue (please let me know in that case).

I have tried to use the core in PlatformIO, but I get an error in the line #include Arduino.h that says:

#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (C:\Users\micro\Documents\PlatformIO\Projects\Amigo\src\main.cpp).C/C++(1696)
cannot open source file "stdint.h" (dependency of "Arduino.h")C/C++(1696)

Here's my platformio.ini:

[env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = pico
framework = arduino
board_build.core = earlephilhower
board_build.f_cpu = 133000000L
board_build.filesystem_size = 0.5m
platform_packages = 
    maxgerhardt/framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git
    maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/i686-w64-mingw32.arm-none-eabi-ed6d983.220212.zip

When trying to compile, the terminal says that various commands all named arm-none-eabi-... (seems to be the compiler itself?) cannot be found.

The entire folder .pio\build\pico\FrameworkArduino is empty, as well as the other folders under pico. I assume this is not how it's supposed to be ...

Can anyone help with this?

maxgerhardt commented 2 years ago

Which operating system are you using? The platformio.ini has a Windows-specific download link, if you have a different one you need to adapt it.

You can also try and force a redownload of the components by removing the <home folder>/.platformio/.cache and <home folder>/.platformio/packages/toolchain-pico folders and building the project again.

jhmaloney commented 2 years ago

Here's what I use on Mac OS:

platform_packages = maxgerhardt/framework-arduinopico@https://github.com/maxgerhardt/arduino-pico.git maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.2-a/x86_64-apple-darwin14.arm-none-eabi-9d55fd1.220202.tar.gz

Hope that helps!

Laserjones commented 2 years ago

Sorry, I should have mentioned that I'm using Windows 10, 64-bit. I used the current link provided on https://github.com/earlephilhower/pico-quick-toolchain/releases.

You can also try and force a redownload of the components by removing the /.platformio/.cache and /.platformio/packages/toolchain-pico folders and building the project again.

I emptied the two folders. When trying to rebuild, they were filled again as expected. But the error remains, and the .pio\build\pico\FrameworkArduino folder is still empty. I then even created a new project from scratch with the above platformio.ini and the default barebone main.cpp file, but the problem still persists.

So it looks like the toolchain is not copied into the project for some reason ...?

Laserjones commented 2 years ago

Here's what I use on Mac OS:

platform_packages = maxgerhardt/framework-arduinopico@https://github.com/maxgerhardt/arduino-pico.git

That's interesting, this is not the link stated by Earle in his documentation, which is https://github.com/earlephilhower/arduino-pico.git (is there a specific reason for this change?). Anyway, I now tried using your link instead, but it did not solve the problem either ...

Laserjones commented 2 years ago

The IntelliSense C/C++ Configuration of PlatformIO says that there is no valid compiler path found. I can specify a path manually, but shouldn't this be handled automatically?

Doing a Windows search, I found the following path and entered it in the configuration: C:\Users\ (...) .platformio\packages\toolchain-gccarmnoneeabi@1.70201.0\bin\arm-none-eabi-g++.exe

This removed the includePath error in the line #include Arduino.h, but when trying to build, I still get messages that "arm-none-eabi-gcc" and "arm-none-eabi-g++" cannot be found.

jhmaloney commented 2 years ago

That's interesting, this is not the link stated by Earle in his documentation, which is https://github.com/earlephilhower/arduino-pico.git (is there a specific reason for this change?). Anyway, I now tried using your link instead, but it did not solve the problem either ...

I was an early user of using Earle's framework with platformio and I'm using the platform_packages that Earle and Max recommended at the time. There may be a better way to do things now, but this is still working for me.

When I was first getting the toolchain set up I got errors like the one's you report because I had the wrong toolchain link. It's been a while, but I believe I picked the toolchain for my operating system from:

https://github.com/earlephilhower/pico-quick-toolchain/releases

Good luck!

Laserjones commented 2 years ago

Could it depend on the way I created the original project before I adapted the platformio.ini? When I selected the board, there were several entries called "Raspberry Pico" or similar. I have no idea what the differences are, so I just picked the first one ...

maxgerhardt commented 2 years ago

board = pico is perfectly valid. This is in fact the very first board in my example.

That's interesting, this is not the link stated by Earle in his documentation, which is https://github.com/earlephilhower/arduino-pico.git (is there a specific reason for this change?). Anyway, I now tried using your link instead, but it did not solve the problem either ...

I would actually recommend using the earlephilhower original core, my fork of it is just for some testing (e.g. RAM linker scripts, debugging, ..) and present in my test projects, use this repo (https://github.com/earlephilhower/arduino-pico.git) to get the latest things.

Laserjones commented 2 years ago

board = pico is perfectly valid. This is in fact the very first board in my example.

I know, but my thought was that besides the platformio.ini file, there might be other parts of the project set up differently depending which of the "Rapberry Pico" board entries I select in advance? Or does the platformio.ini control everything?

Image1

maxgerhardt commented 2 years ago

The platformio.ini controls all base build configuration options, nothing else you selected in the UI matters. In fact one can create an "Arduino Uno" project then change the platformio.ini to the one you posted above and it will compile for a pico. No traces of an Arduino Uno then.

Laserjones commented 2 years ago

The platformio.ini controls all base build configuration options, nothing else you selected in the UI matters. In fact one can create an "Arduino Uno" project then change the platformio.ini to the one you posted above and it will compile for a pico. No traces of an Arduino Uno then.

Good to know. But then I have absolutely no idea why the compiler is not found ... Shouldn't it be installed along with the other stuff? Where would it usually be located?

Here's a portion of the terminal output, maybe it helps:

image

The German error messages say that arm-none-eabi-... is misspelled or not found. (Any idea how I can enforce English error messages? PlatformIO is set to English already.)

maxgerhardt commented 2 years ago

Is the folder <home folder>/.platformio/packages/toolchain-pico still empty after that? Even after removing toolchain-pico and that .cache folder referenced above?

Do you have antivirus active?

The only two possibilities I see is a corrupted download or an AV blocking execution.

Laserjones commented 2 years ago

No, as I wrote above, the toolchain-pico and .cache folders were re-filled automatically after I emptied them. What is still empty is the .pio\build\pico\FrameworkArduino folder within the project.

I also found now that the compiler EXEs are indeed there in toolchain-pico\bin. I tried to set this path as the compiler path in the IntelliSense settings (which I can open via the light bulb icon next to the error message in the #include Arduino.h line, which has reappeared for some reason), but for some reason it is not saved. Is there a config file I can edit directly? I found a website that speaks of a .vscode\c_cpp_properties.json file including the compile path, but it does not exist on my system.

I'm using the standard Windows Defender as AV. I don't think it has to do with that. I could compile a project using the MBED core without problems.

maxgerhardt commented 2 years ago

tried to set this path as the compiler path in the IntelliSense settings (which I can open via the light bulb icon next to the error message in the #include Arduino.h line, which has reappeared for some reason), but for some reason it is not saved.

PlatformIO controls + will overwrite the .vscode/ configuration files, it has to be fixed in PlatformIO, VSCode follows automatically.

I also found now that the compiler EXEs are indeed there in toolchain-pico\bin.

Can you try adding an exception for the toolchain-pico/bin folder in Windows defender per https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26?

What happens when you open a terminal (Windows + R -> cmd.exe), go into the compiler directory (cd <path to toolchain-pico/bin folder) and execute arm-none-eabi-gcc --version?

Laserjones commented 2 years ago

Can you try adding an exception for the toolchain-pico/bin folder in Windows defender

This did not help.

What happens when you open a terminal (Windows + R -> cmd.exe), go into the compiler directory (cd <path to toolchain-pico/bin folder) and execute arm-none-eabi-gcc --version?

I get the same error message as in the compiler terminal (which explains why it is German, as it is generated by Windows directly). When I run the terminal as Administrator, the command works (version is displayed: arm-none-eabi-gcc (GCC) 10.3.0). However, running VSCode as Administrator did not help.

maxgerhardt commented 2 years ago

There's something really wrong when you can execute a binary which should have been created as a regular user only as administrator, and not as a regular user. :/. The binary should be readable and executable by your regular user account.

At this point I can only propose a clean reinstall of PlatformIO as a regular user. That is, remove the VSCode PlatformIO extension, remove the entire <home folder>/.platformio folder, re-open VSCode, reinstall the PlatformIO extension, re-import your old Pico project and try compiling it again.

Laserjones commented 2 years ago

It's getting stranger and stranger. After reinstalling PlatformIO, I can now call the compiler via the terminal as a normal user, but trying to compile the project, the error messages still appear!

Should I reinstall VSCode from scratch?

maxgerhardt commented 2 years ago

It may be worth a try, as I'm out of ideas 😄.

Laserjones commented 2 years ago

I'm out of ideas, too. Reinstalling everything still did not solve the problem. :-(

I created a fresh project again after the reinstall and only copied the platformio.ini into it. No other change. I was able to compile the project before that change (i.e. using the default MBED core, I assume), but not afterwards. Running the compiler from the Windows terminal still works as a normal user.

To me, the error messages indicate that the executable that calls the compiler (I don't know which executable that is) either has no sufficient rights to call it, or it doesn't even find the compiler. But both I as a normal user and Administrators have full access to the bin folder according to Windows.

I now understood that each PlatformIO project has its own c_cpp_properties.json file. I found that during the changes initiated by the new platformio.ini, the compiler path in that file was automatically changed to "compilerPath": "arm-none-eabi-gcc",, which triggered a warning at the bottom that this cannot be found (interestingly, in German again, see screenshot). Is this "path" correct nevertheless, or could it be related to my problem? With the MBED core, that line still contained a complete Windows path starting with C:/users/... But changing the path to the actual one (.../.platformio/packages/toolchain-pico/bin/arm-none-eabi-gcc.exe) did not solve the problem either.

image

maxgerhardt commented 2 years ago

Do you have more VSCode extensions installed beyond C/C++ by Microsoft and PlatformIO? You may try disabling them and rebuilding the index. (Ctrl+Shift+P -> Rebuild IntelliSense Index in VScode)

Laserjones commented 2 years ago

No other extensions. For now I have given up and switched to the Arduino IDE 2.0.

vaelen commented 2 years ago

I'm having a weird, but very minor, issue on Linux with PlatformIO. It reinstalls the toolchain every time I build.

Processing pico (platform: https://github.com/maxgerhardt/platform-raspberrypi.git; board: pico; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Tool Manager: Installing https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/arm-linux-gnueabihf.arm-none-eabi-ed6d983.220212.tar.gz
Unpacking  [########----------------------------]   23%  00:00:38

Happy to move this to a separate issue too.

PS. Fantastic work on this core and on the PlatformIO integration.

maxgerhardt commented 2 years ago

That's weird -- does that appear with the latest PlatformIO core version? (CLI -> pio upgrade --dev). In <home folder>/.platformio/packages/toolchain-pico/>, does there exist a .piopm (PIO packet manager) file?

vaelen commented 2 years ago

Yes, it still does it on the newest build.

andrew@raspberrypi:~ $ pio upgrade --dev
Please wait while upgrading PlatformIO ...
PlatformIO has been successfully upgraded to 6.0.2a2
Release notes: https://docs.platformio.org/en/latest/history.html

The file does exist. The contents are listed below.

andrew@raspberrypi:~ $ cat ~/.platformio/packages/toolchain-pico/.piopm 
{"type": "tool", "name": "toolchain-pico", "version": "5.100300.220212", "spec": {"owner": "maxgerhardt", "id": null, "name": "toolchain-pico", "requirements": null, "uri": "https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/arm-linux-gnueabihf.arm-none-eabi-ed6d983.220212.tar.gz"}}

Here is my platformio.ini

[env:pico]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = pico
framework = arduino
board_build.core = earlephilhower

platform_packages =
    maxgerhardt/framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git
    maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.3-a/arm-linux-gnueabihf.arm-none-eabi-ed6d983.220212.tar.gz
maxgerhardt commented 2 years ago

Could you try using https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.3.1-a/arm-linux-gnueabihf.arm-none-eabi-7855b0c.210706.tar.gz as the download link for toolchain-pico? I have tested that against an earlier version. Compilation might fail, but if you compile it multiple times, does it unpack the toolchain anew every time?

vaelen commented 2 years ago

Same behavior with that version. I'll see if I can setup another project with a similar toolchain requirement, where it links to a specific URL instead of just a version. It might be a bug in pio on Linux.

maxgerhardt commented 2 years ago

We did a major integration rehault at https://github.com/platformio/platform-raspberrypi/pull/36, please update the platform as described in the third comment of the PR and use the same platformio.ini as the PR (no more platform_packages). Does it still occurr?

vaelen commented 2 years ago

That fixed it! Thanks. :)

NicolasDumoulin commented 2 years ago

Hi,

EDIT: I've read the third comment on PR 😇 I'll try to fix my install …

I'm trying to use your platform IO config for my Arduino RP2040 Connect, but it seems that all your examples are for the last pico? From your platform.txt given, I've tried this config:

[env:nanorp2040connect]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = nanorp2040connect
framework = arduino
board_build.core = earlephilhower
board_build.filesystem_size = 0.5m
platform_packages = 
    maxgerhardt/framework-arduinopico@https://github.com/maxgerhardt/arduino-pico.git
    maxgerhardt/toolchain-pico@https://github.com/earlephilhower/pico-quick-toolchain/releases/download/1.4.0-c/x86_64-linux-gnu.arm-none-eabi-0196c06.220714.tar.gz

But I've got an error about the toolchain:

Processing nanorp2040connect (platform: https://github.com/maxgerhardt/platform-raspberrypi.git; board: nanorp2040connect; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Tool Manager: Installing earlephilhower/toolchain-rp2040-earlephilhower @ 5.100300.220629
Error: Could not find the package with 'earlephilhower/toolchain-rp2040-earlephilhower @ 5.100300.220629' requirements for your system 'linux_x86_64'

I think the build tool is looking for a toolchain for rp2040, but I've only found mention of the one for pico.

OK. The answer was on PR:

You are using an old platform version. CLI -> pio platform update https://github.com/maxgerhardt/platform-raspberrypi.git.

maxgerhardt commented 2 years ago

Please just use

[env:nanorp2040connect]
platform = https://github.com/maxgerhardt/platform-raspberrypi.git
board = nanorp2040connect
framework = arduino
board_build.core = earlephilhower
board_build.filesystem_size = 0.5m
platform_packages = 
    maxgerhardt/framework-arduinopico@https://github.com/earlephilhower/arduino-pico.git

And use the CLI to pio pkg update -g -p https://github.com/maxgerhardt/platform-raspberrypi.git.

Your PlatformIO installation seems to want to install an outdated compiler version (5.100300.220629) when a new one was released just 4 hours ago as 5.100300.220714 . If these caching issues persist, please delete C:\Users\<user>\.platformio\platforms\raspberrypi* and rebuild the project.

And if that still did not help, remove C:\Users\<user>\.platformio\.cache and rebuild, since it may cache API requests there.

earlephilhower commented 2 years ago

Yeah, @maxgerhardt , I was just about to drop a note in the PR about the updated toolchain which was just published. Was debugging the PicoW LWIP stack when I found I missed a mutex in the FILE structure, so I needed a new toolchain build.

NicolasDumoulin commented 2 years ago

Thanks @maxgerhardt for your very quick answer!

I've updated the CLI for the mentionned update and removed the cache dirs ~/.platformio\platforms\raspberrypi* and .platformio/.cache

But I've still the error when I try to build the project:

Processing nanorp2040connect (platform: https://github.com/maxgerhardt/platform-raspberrypi.git; board: nanorp2040connect; framework: arduino)
------------------------------------------------------------------------------------------------------------------------
Platform Manager: Installing git+https://github.com/maxgerhardt/platform-raspberrypi.git
git version 2.25.1
Clonage dans '/home/dumoulin/.platformio/.cache/tmp/pkg-installing-_cgm83ha'...
remote: Enumerating objects: 70, done.
remote: Counting objects: 100% (70/70), done.
remote: Compressing objects: 100% (57/57), done.
remote: Total 70 (delta 32), reused 25 (delta 2), pack-reused 0
Dépaquetage des objets: 100% (70/70), 121.78 Kio | 733.00 Kio/s, fait.
Sous-module 'builder/frameworks/arduino/mbed-core' (https://github.com/platformio/builder-framework-arduino-core-mbed.git) enregistré pour le chemin 'builder/frameworks/arduino/mbed-core'
Clonage dans '/home/dumoulin/.platformio/.cache/tmp/pkg-installing-_cgm83ha/builder/frameworks/arduino/mbed-core'...
remote: Enumerating objects: 31, done.        
remote: Counting objects: 100% (31/31), done.        
remote: Compressing objects: 100% (23/23), done.        
remote: Total 31 (delta 8), reused 24 (delta 7), pack-reused 0        
Chemin de sous-module 'builder/frameworks/arduino/mbed-core' : 'ed9a3458e336660fdf2b1d4a4c828a2ddfd214ad' extrait
Platform Manager: raspberrypi@1.7.0+sha.28e5339 has been installed!
Tool Manager: Installing earlephilhower/toolchain-rp2040-earlephilhower @ 5.100300.220629
Error: Could not find the package with 'earlephilhower/toolchain-rp2040-earlephilhower @ 5.100300.220629' requirements for your system 'linux_x86_64'
maxgerhardt commented 2 years ago

My bad, I actually hardcoded the toolchain reference with its datecode and so naturally I had to update it (https://github.com/maxgerhardt/platform-raspberrypi/commit/17cb99f3fbe6df9895a0a51ded5324e288a28cb7). Please issue the pio platform update ... command again and rebuild.

NicolasDumoulin commented 2 years ago

Cool. It works ✌️ Thanks!

JonnyHaystack commented 2 years ago

After updating the platform just now, I'm getting the following error

 *  Executing task: C:\Users\Haystack\.platformio\penv\Scripts\platformio.exe run --environment pico 

Processing pico (platform: https://github.com/maxgerhardt/platform-raspberrypi; framework: arduino; board: pico)
----------------------------------------------------------------------Tool Manager: Installing earlephilhower/toolchain-rp2040-earlephilhower @ 5.100300.220714
Downloading  [####################################]  100%
Unpacking  [####################################]  100%
Tool Manager: toolchain-rp2040-earlephilhower@5.100300.220714 has been installed!
Tool Manager: Installing earlephilhower/framework-arduinopico @ ~1.20202.0
Error: Could not find the package with 'earlephilhower/framework-arduinopico @ ~1.20202.0' requirements for your system 'windows_amd64'
maxgerhardt commented 2 years ago

Fixed in https://github.com/maxgerhardt/platform-raspberrypi/commit/488689c592f8e20512c0f31f00b051e7cd13af8f, please update platform again.

maxgerhardt commented 2 years ago

Alright I just went ahead and updated a bunch of stuff, which as a sideffect gives us Raspberry Pi Pico W support in PlatformIO, see PR.