HN user

ikravets

64 karma

CEO, Founder of PlatformIO, Ph.D, Researcher and System Architect

Posts12
Comments25
View on HN

Dear Luca,

We don't force you to use PlatformIO. If you like manually manage build scripts, toolchains, etc. and understand how to do that, you can switch PlatformIO to your own build system. I remember that I already explained to you how to do that (own `build_script` entry within PIO build environment).

There's another argument though: Usually I need only one board. Maaaaybe two.

Thanks, I've heard your feedback. PIO is intended for developers who don't want to focus on the 1 board for 1 year. We don't live in 90-th, today each month we have new boards, MCUs, connectivity solutions, etc. PIO allows you an easy switch between them. If you don't know at 100% which hardware do you need for the next 1 year, PIO is the excellent tool here. You can experiment with dozens of boards and find better hardware according to the project requirements. They cost a few $$$ today.

Stay tuned for our news. We are working on the very interesting things which will be announced soon.

It depends on a library manifest (library.json, library.properties or module.json). If library's author updates "version" field, then PIO Library Crawler will update it in a registry.

Please note that you can manually update manifest and make PR to author's repository. Click on "Manifest" tab when looking at a library in Web Registry and you will see "Edit" button.

It would be a great product if it un-bundled all the functions. Of course that would make it not-really-a-product, and they couldn't charge money for it as easily. But instead it's a monolith that offers you little wiggle-room.

Could you explain in details? Do you know that you can create own development platform or add support for new embedded board wihout our support? - http://docs.platformio.org/en/latest/platforms/custom_platfo...

Yes, PIO Core 2.0 was monolitic. We rewrote it from scratch and announced decentrizlied PIO Core 3.0 in September, 2016: - http://docs.platformio.org/en/latest/history.html#id7

They've since added unit testing, but only using a framework of their choice. Which is nice, unless you already have a code base, or a preference for a framework.

Which framework/workflow do you use for unit testing?

but it always seems like they sorta reinvented the wheel instead of using existing tools

PlatformIO wasn't built as a commercial project. What is more, we didn't re-invent wheel or clone other project/idea. PlatformIO is a practical solution for the problems which were resolved in http://smartanthill.org (the place where PlatformIO was born). The problem, where you need to build the same source code into the multiple embedded development platforms/architectures using any OS (Windows, Linux, Linux ARM, macOS, BSD, etc) WITHOUT ANY DEPENDENCIES to a system. The only one requirement is Python interpreter.

If you try PlatformIO today on a clean machine, it will take ~1-2 minute to build/deploy the whole project. Our build system is super fast, ~4-6secs per generic Arduino AVR project. It's based on SCons construction utility. We have own optimization for it and, also, provided PR as contribution to SCons.

but why didn't they do all this using the normal tool-chain like CMake/git/GNU-tools/crosstool-NG/etc.?

You can do that if you work with 1-2 board/MCU and use the same OS. If you have a project and your team uses different OS, or you need to be sure that your project has the same workflow not matter which system environment will be used, PIO is cool here.

You need to bother with make/cmake/build scripts/toolchains/upload tools and other things... Just tell PIO which board (currently, we support ~370 different boards/architectures/mcu) do you want to use and PIO will do all complicated work for you automatically. You can easy move from one OS to another, or even to work simultaneously from different places, IDEs.

PlatformIO that is not just a "multi-platform build system". It's own philosophy and own vision how embedded development should look. A lot of people do not agree with us and have an own vision and use own tools/instruments. That is normal, or better, we hear good criticism and trying to make PlatformIO better and better.

Or is it to get some kind of lock-in and promote a commercial product?

Again, PIO was not built as a commercial project. We see our mission in an embedded world and do all work for free under 100% open source/Apache v2.0. Today, PlatformIO has own niche and own big community. We see big future in PlatformIO not only from a business point of view. PlatformIO allows makers, hobbyists, companies to focus on own ideas and own products and save time which could be spent to maintain multiple development platforms using different build scripts, tools, etc.

Today, we work on the other solutions for the business/developers who need to more professional instruments. We don't have an aim to monetize existing work (3 years) or even change the license. Whole this work should be moved to PlatformIO Foundation or a similar protected organization.

PlatformIO has own history, thousands of developers trusted in it and supported us. PlatformIO could not be successful without our community, they are our guide for the new achievements.

Regards, The PlatformIO Team

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

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).

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.

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!

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.

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" :)

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

A cross-platform code builder and the missing library manager (Atmel AVR & SAM, Freescale Kinetis, Nordic nRF51, NXP LPC, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.)

PlatformIO is independent from the platform where it is running (the only requirement is Python, which exists pretty much everywhere).