Comment from Eben Upton of the Raspberry Pi foundation:
> We received a proposal from PlatformIO Labs in October 2022. While we absolutely empathise with the challenges of funding open-source projects, we were unable to justify paying the very substantial recurring fees involved. We indicated that we would not be proceeding, and have subsequently made some investments elsewhere
What am I missing here? Is PlatformIO rejecting this contribution from a community member (not a Raspberry Pi employee AFAICT) unless the Raspberry Pi foundation agrees to pay them substantial recurring fees?
I understand PlatformIO is a business, but it’s bizarre to see them trying to extract fees from a company that doesn’t appear to be involved in this open source work.
Am I missing something?
The PlatformIO team’s responses all feel like they were written by a team of lawyers and PR people, or at least someone trying to pretend to be a team of lawyers and PR people. I don’t entirely understand what’s going on with this whole situation but from what I’ve seen I think I’ll steer clear of PlatformIO in the future.
I don’t know about the quality of this PR, it looks good at first glance. But sometimes “free” things have significant costs. For example, a project offering a RPi integration will probably have to maintain it and further develop it, or face significant pressure to do so. And if they don’t see that it will be worth it, maybe it won’t. They know their customers and business better than we do.
I have seen this plenty of times in my part of tech (AAA games). People often approach companies asking to integrate their code into games, like FPS unlockers or even entire multiplayer mods. But even if the code and the ideas are offered for free, it will cost significant resources to dedicate team members to porting the work, further developing it until it meets quality standards, certifying an update, pushing it out, and then maintaining it. There are a few dozen of these small costs that add up.
Integration is easier in open source. But not maintenance and further development until the feature meets reasonable expectations. And you can’t really ask anyone who does a PR to maintain the code forever either.
> For example, a project offering a RPi integration will probably have to maintain it and further develop it, or face significant pressure to do so. And if they don’t see that it will be worth it, maybe it won’t. They know their customers and business better than we do.
This is genetically true, but it should be noted that PlatformIO already has integrated the RaspberryPi platform and maintains code for it: For example, a project offering a RPi integration will probably have to maintain it and further develop it, or face significant pressure to do so. And if they don’t see that it will be worth it, maybe it won’t. They know their customers and business better than we do.
This PR appears to be a specific API improvement that a lot of people in the community have been using and maintaining.
In parallel, PlatformIO appears to have tried to get recurring fees from RaspberryPi after they implemented support for it. The Raspberry Pi foundation declined to pay, and now PlatformIO is refusing to accept these contributions from the open source community, citing the way Raspberry Pi has declined to pay their substantial recurring fees.
I get that it’s a commercial product and they’re not obligated to accept anything they don’t want to. However, rolling out support for a platform and then refusing community engagement with quality PRs on the basis that they couldn’t extract recurring fees from the vendor is rather uncool.
Just as it’s not fair to expect this company to maintain PRs forever, it’s not fair for this company to expect the Raspberry Pi foundation to enter into recurring fee payments forever so this company can add a community-generated feature to their commercial product.
> it will cost significant resources to dedicate team members to porting the work, further developing it until it meets quality standards
I understand what you’re saying, but that doesn’t not appear to be the case here. This appears to be a popular and well-tested form in use and in ongoing development by an active community. It’s also for a platform that PlatformIO already supports. They’re saying they don’t want to work with the community on this because the vendor (who is unrelated to this entire debacle) won’t enter into a contract to pay them recurring fees for it.
It's possible they've made some blanket business decision like "we will not support any more third party integration code unless they finance it". It's a somewhat reasonable stance, overall. But some companies use PR speak as a facade and don't communicate these internal stances clearly to their stakeholders.
I understand the challenge of funding open-source projects, but it seems like a bad idea to turn down a high-quality contribution because you cannot agree with RPi on a fee schedule.
As one of the comments on GitHub suggests, why not accept the PR and let the community maintain it? Otherwise it feels like this is not an open-source project -- just source-available.
I don't believe there's any official support from Raspberry Pi for using the Pico with Arduino. Raspberry Pi provides Micropython and a C/C++ SDK. My guess that professionals in the embedded space probably use the SDK directly (it's nicely documented) and do things themselves, but hobbyists like me would like a package manager so we can install libraries easily. Enter Arduino.
This isn't Arduino's official support for the Pico either. Arduino made a port based on mbed. It doesn't seem to be used much, based on my searches. Not much about it since 2021.
That's because Earle Philhower's "community port," called arduino-pico [1] is nicer. I switched to it to get good USB-Midi support, because it has an option to use Adafruit's fork of the TinyUSB library.
But, as a package manager, Arduino can be confusing and PlatformIO is supposed to be more sane. So, with the patch, you can do that, and the instructions are here [2]. It works fine. The patch isn't merged, but it works.
Somehow this is the unofficial, alternate choice in multiple ways, so it probably looks pretty dubious. But it's the one that seems best for me. Ideally I'd be using a language with a real package manager instead of Arduino or PlatformIO's embedded-only implementations. (I don't even particularly like C++.)
Whilst PlatformIO come across as the villains in this story, adding the RPi support to their core would indicate some kind of support/work from them in future versions (beyond the ‘non production’ support they provide now). It’s upto them if they want to provide this, otherwise it can stay as a patch.
Ultimately this is the never ending saga of the profit/work from open source flowing from easily copyable work of software companies and enthusiasts towards more easily monetisable hardware companies
> Whilst PlatformIO come across as the villains in this story
I find this to be a bit misleading.
My take is that the RPi foundation wants PlatformIO to do support work for RPi for free.
At no point do I see the RPi foundation saying "Hey, we'll allocate programmers and resources to maintain this code for our chip."
Open source means that you get the code and that's it--open source doesn't mean that you get any say whatsoever over the developers. When did everybody start being so damn entitled that everybody thinks they can tell maintainers what to do?
Don't like it? Shut your piehole and roll up your sleeves. Quit bitching, fork the PlatformIO stuff and do the work yourself. If the fork is sufficiently popular, it will yank enough people away from the original that they'll cave. And if it isn't sufficiently popular, well then that's an answer, too.
> My take is that the RPi foundation wants PlatformIO to do support work for RPi for free.
How did you arrive at this take when the original code and the PR aren’t related to the Raspberry Pi foundation at all? This is a community contribution, not something the Raspberry Pi foundation tried to push throug.
> At no point do I see the RPi foundation saying "Hey, we'll allocate programmers and resources to maintain this code for our chip."
They didn’t write this code, and this isn’t what PlatformIO is asking for. PlatformIO wanted the Raspberry Pi foundation to pay substantial recurring fees so PlatformIO could merge this PR by someone else.
> Don't like it? Shut your piehole and roll up your sleeves. Quit bitching, fork the PlatformIO stuff and do the work yourself.
That’s quite literally what they did. This was developed by someone in a fork. That person didn’t even submit this PR. None of the people involved appear to be related to the Raspberry Pi foundation, but PlatformIO tried to bill Raspberry Pi for it anyway.
I take it as the platformio do not have enough employees/throughput to maintain this. So they wanted to make this support semi-official and hire a developer.
Promises from the open-source contributors are just that - promises, life gets in the way of contributing, etc.
>My take is that the RPi foundation wants PlatformIO to do support work for RPi for free.
A third party (the committer - maxgerhardt) wants PlatformIO to do support work (on someone else’s code - Earle Philhower) for people who want to use the Arduino toolset on RPi for free.
I think it’s fine that PlatformIO and RPi don’t want to fund this.
The comments on the pull request seem to be missing some context, not yet captured by the other HN comments on this story. If PlatformIO is asking for payment, just what is that payment intended for?
The opening comments of the pull request describe the changes as a 'massive upgrade.' Does this add a new maintenance burden for PlatformIO, or do the proposed changes come closer to fleshing out the support that PlatformIO implicitly promises by including the Pico as a supported platform?
PlatformIO seems to be seeking a support and sponsorship agreement with Raspberry Pi.
The integration of the community-supported core Arduino-Pico that's enabled by this PR would indeed be a significant upgrade to the existing core. It seems that this core now has broad community support with nearly 100 contributors, and the burden of continuing integration after merging this PR would be minimal.
PlatformIO appears to be using the support burden as a shield for defending their shady tactics of withholding approval (and indeed completely ghosting the entire community after repeated attempts for further comment on the PR for over half a year) of this highly wished for community-derived PR while they quietly attempted to woo Raspberry Pi Trading into a support contract last year.
The situation is now complicated by the fact that representatives of Raspberry Pi (perhaps Eben Upton himself) privately contacted the maintainer of this PR recently attempting to urge that it get merged. This feels like a surreptitious attempt to benefit from PlatformIO's work while avoiding the support agreement that similar vendors such as Espressif and SiFive appear to have entered into with PlatformIO.
Seems like PlatformIO wants RPi to PAY them to be officially supported, even though RPi is not even involved in adding this support (someone else did and posted a PR). RPi seems to have correctly replied with what amounts to a "WTF‽".
Sure sounds like PlatformIO folks are just being dicks for no reason. This is like person A uploading my code (without permission and blessing from me, but not counter to my license) to github to solve problem B, in project C, and then leaders of project C tell me that if i want the prestige of my code being in their project, I owe them $megabucks per year (this being the first I hear of A, B, or C).
This situation and their responses are so bizarre that I have to wonder if there’s something we’re missing. Even the way they make a fuss about the true name of the legal entity is so weird.
Maintainers are well within their rights to say "Fork it" if your vision of the product isn't theirs, or it would add time to their releases, or for no reason at all. One of my favorite examples is https://www.jwz.org/blog/2016/04/i-would-like-debian-to-stop... . Supporting a platform is expensive in time and mental energy. PlatformIO is under no requirement to do so.
From what I can gather, PlatformIO is not willing to fund future development on RPI themselves, and reached out to the much better capitalized RPI foundation to try to get funding. They may or may not have been assholes in how they did that, we'll probably never know. Asking wasn't insane, rejecting the patch isn't... Insane per se, even if it's probably shooting themselves in the foot by denying themselves a huge customer base. Their communication has been poor as heck, though.
I am intentionally not warning about JWZs policy on links from HN, because it's funny to me.
I think if they had approached this with “we can’t maintain this platform without sponsorship” and solicited it from that from the requester and the general public and behind the scenes contacted the company to inquire about interest it wouldn’t have come off so oddly.
PlatformIO believes devs cannot live without them, so they can rule the world and tax others. RPi rightfully show a finger, that was very kind, they could ask for money from PlatformIO for support.
You left out an important detail: Project C is going to have to _support_ your "free" code in their product. If it breaks, even if not because of anything Project C did, their paying customers are going to demand work from THEM.
if i want the prestige of my code being in their project
LOL yeah that's definitely why this contribution is happening /s
Then they should take their beef to “person A”, not to me. My example properly captures my noninvolvement. Just like in TFA, RPi was not involved. Someone else made the patch, then PlatformIO demanded money from RPi
Oh, this gives me the severe ick. I use platformio for the quick toolchain set-up for small prototypes, but it's not the only solution to get vscode working with micros.
Not against projects monetising, but this doesn't look like a nice way to go about it.
Why is the title so deceptive? There is no conflict - PR is blocked because PlatformIO is trying to extort money from RPi and is not successful with it
I was trying to be even-handed. I'm generally of the opinion that PlatformIO should merge the PR on the condition that it be maintained by the community - which seems reasonable considering PIO is supposed to be an open-source project - but it's also a complicated situation involving a bunch of negotiations I'm not party to, so I wanted to avoid passing judgement.
A brief explainer I should really have submitted with the link:
- PlatformIO already has "official" support for the RasPi Pico board, with Arduino
- However almost everyone prefers and uses the "unofficial" earlephilhower/arduino-pico integration which adds a ton of features and is well documented
- A PR to add this integration to the PIO registry has been outstanding for over two years now
- In the last week or so the PlatformIO CEO has posted that they will not be merging the PR
- My understanding of their reasoning is that RasPi needs to pay PIO to support the branch going forward? The language is rather vague with a lot of talk about "communities" and "values" so I could be wrong about this, please don't sue me
- RasPi's response is basically "LOL no" since they are all-in on their horrible CMake toolchain and don't care about PIO
They provide a consistent and simple way to setup multiple toolchains, manage dependencies, and integrate various tools within a popular development environment. While I am not a fan of how everything works, it appears to be the best freely available option out there. For someone who pursues development as a hobby, that's also important.
The Official Raspberry Pi Pico Windows install will give you a working VSCode build system with the official SDK. It's not Arduino libraries, but is easy to get going and building code.
> We received a proposal from PlatformIO Labs in October 2022. While we absolutely empathise with the challenges of funding open-source projects, we were unable to justify paying the very substantial recurring fees involved. We indicated that we would not be proceeding, and have subsequently made some investments elsewhere
What am I missing here? Is PlatformIO rejecting this contribution from a community member (not a Raspberry Pi employee AFAICT) unless the Raspberry Pi foundation agrees to pay them substantial recurring fees?
I understand PlatformIO is a business, but it’s bizarre to see them trying to extract fees from a company that doesn’t appear to be involved in this open source work.
Am I missing something?
The PlatformIO team’s responses all feel like they were written by a team of lawyers and PR people, or at least someone trying to pretend to be a team of lawyers and PR people. I don’t entirely understand what’s going on with this whole situation but from what I’ve seen I think I’ll steer clear of PlatformIO in the future.