39 comments

[ 0.21 ms ] story [ 148 ms ] thread
This is way cool, I use both atom and platformio, but this makes the install and setup a breeze. This has the potential to displace the existing arduino tool set. If I was the arduino folks, I would be looking to produce a branded version for use with their boards and dump the processing based IDE, which has always been limited.
We are working on cooperation with Arduino-based vendors and propose them to focus on hardware developing. The final customer will have the one IDE for the multiple embedded hardware.
I see all these brands at the bottom of the page. Does that mean that these brands use this product? or this product integrates with these brands hardware? Did you get (if you're the product's author) the authorization from each brand to reproduce their logo on your homepage or is it legal to do so without the logo owner's authorization ?

Finally what is the value in an new IDE when a lot of them are available already ? Can't you just develop plugins for the most famous of them ? which means less maintenance (build the CLI tools once, and just maintain the plugins).

This is my thought too... Whats the point of making another editor based on atom? Why not make the plugins for atom instead so you can use one editor for everything?
It appears that they represent boards that are supported by the IDE. It probably makes sense to state what you're compatible with (e.g. a monitor might advertise it works with both Macs and PCs)
Sorry for the misunderstanding. Of course, we have built special package for the Atom https://atom.io/packages/platformio-ide.

User has a choice:

* Download our bundle with PlatformIO IDE + Atom * Download Atom and install our package which will install all required dependencies and PlatformIO CLI.

See all options http://docs.platformio.org/en/latest/ide/atom.html#installat...

> Can't you just develop plugins for the most famous of them ? which means less maintenance (build the CLI tools once, and just maintain the plugins).

We are small unprofitable organisation from the 3 fans: http://platformio.org/#!/contact

PlatformIO is free for all including commercial using. We are trying to support multiple IDEs. See our docs http://docs.platformio.org/en/latest/ide.html

We don't have enough resources to create separate plugins/packages for the all IDEs. Maybe, in future will do it.

Nevertheless, we are focusing on PlatformIO CLI which can be used as middleware for any IDEs, Continuous Integration Systems, Cloud Solutions.

P.S: Please read our post "Further fate of PlatformIO Project..." https://github.com/platformio/platformio/issues/490

> We don't have enough resources to create separate plugins/packages for the all IDEs.

It's seems to me that writing plugins for atom/visual studio code/sublime text is a much smaller enterprise than maintaining a whole single purpose IDE nobody will use because people want to code with the tools they already use.

I don't want to name it, but I use a specific open source language which through the years has seen many IDEs developped (at least 6). 10 years after the language has been released none of these IDEs are maintained yet people using that language cannot find a decent IDE compatible with the latest release and libs of the language. If people writing IDEs for that language would have focused on CLI tools first instead of sinking years of development into different IDEs the situation would be much different. Just my 2 cents.

The Go language for instance got it 100% . They realized a bunch of CLI tools any IDE can use, even for auto-completion, project management, compilation, ... the open source language I will not name has received a poor adoption despite being older than Go (and better, technically speaking) because it's a pain to use without the proper tooling. And since nobody's paid to maintain the IDEs ...

> Nevertheless, we are focusing on PlatformIO CLI which can be used as middleware for any IDEs, Continuous Integration Systems, Cloud Solutions.

That's what I'm talking about. It isn't as SEXY as an IDE yet 5 years down the road your cli tool will be much easier to maintain.

> They realized a bunch of CLI tools any IDE can use, even for auto-completion, project management, compilation, ...

We have the same. However, people like to have working solution "from the box". For example, take a look at Arduino IDE. It's very simple, without autocompletion, code linter, without * .... However, it's very popular! Why? Because most embedded engineers don't want to play with "integration" process between "IDE" and "Builder". They like to have "Download & Use".

> That's what I'm talking about. It isn't as SEXY as an IDE yet 5 years down the road your cli tool will be much easier to maintain.

We have a big plan as for PlatformIO CLI. Please take a look at PlatformIO 3.0 https://github.com/platformio/platformio/issues/423

Thanks a lot for good critic!

(comment deleted)
I would have initially expected that these were the brands that support (also financially) this project. But as far as I understand from the other comments this unfortunatly doesn't seems to be the case.
Please sorry, it is our mistake. We will add some info about that brands and logos.
This wasn't meant as critique, more like I would have found it good when some of those brands would directly support you (and also others who try to make tooling for embedded systems better) by providing some financial help or by contributing code. I'm working in the embeded domain myself, so I know there's usually a lot of bad tooling around and I'm happy about every try to improve that. I haven't tried out platformio because I'm currently working on some higher level stuff but from the first look it looks quite promising.
What is this using for linting and autocompletion? I would guess something clang based?
You are right, autocompletion is based on Clang.

Smart Code Linter is based on PlatformIO Code Builder. It uses our actual toolchain (-gcc/-g++) for the specified platform and synchronises with PlatformIO Build Environment.

It means, that CORRECT warnings and errors will be shown before you press "Build" :)

I've been using this for a couple of weeks now on an AVR based project of mine. The added tooling for abstracting away the build specifics is really nice and it is integrated fairly well into atom. Not all the features are fully fleshed out, the documentation is lacking a bit, and there are bugs but it is a pretty impressive project.
Thanks a lot for the using and feedback! We will improve our docs. This is very huge project for our small team.
I've been using the command line version of PlatformIO for the past 9 months or so, and compared to the garbage you usually have to deal with when developing for embedded, it's a night and day difference. A nice bonus is you can target several boards at the same time very easily.

Speaking of donations, folks, if you want donations, you have to hook up PayPal. I'm not going to provide my credit card information to a foreign entity just to donate.

Thanks a lot that using PlatformIO for that long period.

We are from Ukraine and do legal business. PayPal is not allowed in our Ukraine :(

The other option is SWIFT, however I'm not sure that it makes sense with donation. In other cases, please contact with us http://platformio.org/#!/contact. I hope we will find solution in this situation.

Hey Ivan! You can easily add Bitcoin payment options though various providers (maybe stripe too?), which may be a handy way to donate.
What do you think about https://salt.bountysource.com/teams/platformio ?

The all information about donations will be public for our community and it is important for us! We will decide together how to use these donations.

The first need is to move all PlatformIO Packages (toolchains, tools, frameworks, etc) from free and UNRELIABLE SourceForge.Net to something more reliable (Bintray, Google Cloud, etc).

Looks great, donated, thanks!
Thank you too that supported us!
Bitcoin would work great too.
Are you sure that it will be understandable for donors?
Pretty sure. Many open source projects accept Bitcoin. The concern for you is whether you'll be able to turn it into cash in Ukraine. And don't offer it as the only option - even among techies Bitcoin is not that huge.

In general, though, by far the best option is just plain PayPal without intermediaries. The less friction you have, the more money you will collect. The thing about PayPal is most people already have accounts. Signing up for something else is friction. Providing financial information to a foreign web site is a complete non-starter. International SWIFT requires a trip to the bank, and a substantial fee, so it won't work either.

Also, I think it's a mistake to not offer commercial support contracts. Basically here's how you could "freemium" this: offer no SLA for non-paying users, offer guaranteed turnaround to paying customers (don't be overly aggressive - a couple of business days is fine). Encourage commercial users to purchase support. Encourage non-paying users to donate (like Ubuntu, I did donate to them several times). I don't know if you have much commercial usage at this point, but if you do, this might create a recurring revenue stream which will keep you afloat. Or get in touch with someone in Silicon Valley and work out a business plan. What you have right now is by far the best IoT development platform available. It might be not clear to someone without business skill how to make money with it, but I'm sure it can be done.

> The less friction you have, the more money you will collect.

We have started to use BountySource https://salt.bountysource.com/checkout/amount?team=platformi.... They accept PayPal, Bitcoin and etc.

> offer no SLA for non-paying users, offer guaranteed turnaround to paying customers (don't be overly aggressive - a couple of business days is fine).

The problem here is that I love very much to help people not matter where do they live and that they don't pay me. I don't have aim to earn millions from PlatformIO. I was not embedded developer before, I'm Web-developer in the past. PlatformIO is solution for the problems with which I ran into a few years ago ( http://www.ikravets.com/computer-life/programming/2014/06/17... ). I just like this idea with PlatformIO and I live with it 24hours per day (very often I wake up in the middle of the night and think how to improve further things).

The most users of PlatformIO are not electronics engineers. Embedded and IoT are the hobby for that people. They also have great ideas how to improve Embedded World, automate some home process or just make first blink program without C/C++ skills. I'm teacher in soul and I'll apply maximum efforts to help each PlatformIO's user to make first steps with embedded programming.

------

Please do not think that I'm crazy. Of course, I have PlatformIO Team and each of us have family and the necessities of life. We are not going to work for free whole life on the PlatformIO. I'm trying to enter into cooperation with the famous vendors and companies. My request is related to "help us with supporting PlatformIO in FREE model for ALL", but not to "give us the money because we will not add support for you hardware/software".

Users buy hardware from the vendors and use PlatformIO. That is great! We are ready to help hardware vendors save time on the software development.

Regards, Ivan Kravets

- CTO, Founder, Ph.D, Researcher and System Architect at PlatformIO.Org

I've tried using this on and off for a few days and have run into all sorts of issues just trying to get the blink program uploaded to an Arduino. The documentation and issues on Github aren't particularly helpful, either.
* Which problems have you had?

* What do you recommend to improve us?

Thanks.

A troubleshooting FAQ, if possible. I'll hop in Gitter and try to work the issue I'm having.

Note: I jumped on Gitter and talked to Ivan about this. Turns out that the project needs to be specifically broken down into /lib and /src directories. I had several interdependent libs that I had to move into their own directories inside /lib.

Thanks!

I've also been using PlatformIO for ages for my ESP8266 work, and I couldn't live without it. Ivan is a beast and apparently works all day and night pushing updates, which is great to see.
Hmm, I don't get it.

I'm developing STM32 with ST's Standard Peripheral Library, GCC and make to compile and Seggar JLink to upload my code to the board. I'm happy with the workflow so far. What advantages will PlatformIO give?

Does this IDE track you like Atom does? If so, how would it be turned off?
This IDE is based on Atom text editor. Please disable this package https://atom.io/packages/metrics

Click on "Gear" icon on PlatformIO Toolbar (Settings). "Packages > Core Packages> metrics" and disable it.

Thank you. Wanted to double check before wasting any time. :)