Next-generation IDE for decades, not years

6 years ago we founded PlatformIO to solve the problem of multi-platform development in the embedded systems industry. Our unique philosophy gives embedded developers true freedom – personally decide which operating system, integrated development environment, and hardware to use. In this blog post, we will try to openly discuss the question regarding integrated development environments and the important role they play for the success of your products including hardware and software development tools. Read more :point_right:

4 Likes

I’ve been struggling for a long time to get PlatformIO running on my Ubuntu 20.04 based laptop.

For a long time I tried Atom - but I cannot make that work reliably. Then I decided to give CLion a try - but neither does that work. I then surrendered and installed VSCode - and that works.

Unfortunately, I have been working with Visual Studio for many years and have a particular dislike for the product; but it appears the freedom of choice is limited to VSCode in my case?

Or would there be any other choice for Ubuntu that actually works?

Best regards,
Lars

2 Likes

If you have an existing development IDE, install PlatformIO CLI and generate project files for numerous IDEs.

Cheers,
Norm

1 Like

Further to my post above, the command line you need is:

pio init -b Uno --ide ????

Where the ‘???’ can be one of: atom, clion, codeblocks, eclipse, emacs, netbeans, qtcreator, sublimetext, vim, visualstudio or vscode.

HTH

Cheers,
Norm.

2 Likes

This just got pushed in “Recent News” in PIO home, so I’d like to tell you a bit about my experience with this topic.

tldr; I love what you guys are doing here, but you are overselling it: I would not recommend using PIO if you want to use advanced features of your MCU.

I started with Arduino and switched to PIO very soon. Then I switched the MCU from Atmega to STM32 and started using mbed, all seamless because of PIO. But then I wanted to use the full capability of my MCU… the PWM was using a 1MHz counter (MCU clocking with 72), so I had edit the source of mbed in PIO. Next was using DMA for the ADC, everybody was using the STM32Cube to generate the code and then copy paste into the PIO. Well now I have two use 2 tools instead of one. The whole Idea was with PIO I have one tool to rule them all.

It’s the arduino experience all over again: looks easier then using the vendor-tools but when you start to do non-beginner stuff it is actually worse then the vendor-tool. You have to either use the vendor tool or start setting bits by yourself.

Long story short: I spent more time trying to get stuff to work in PIO then it took me to redo the project in STM32CubeIDE.

Yes, the project is now locked into STM32. But it took me less then a day to learn the STM32CubeIDE and get the project running so I would expect the same when I want to change the vendor in the future.
On the plus side: Now I can use ANY STM32, while in PIO almost all STM32 are from the F-series.

Again: I love the idea of PIO: open source and independent of the IDE used. But PIO did disappoint as it’s “sold” as a replacement for vendor tools. And it’s not there yet, even two years after this blog post.

PS: The project uses CAN, ADC DMA and PWM

Dear @silvanrehm, thank you so much for the honest feedback! We appreciate it! :pray:

Yes, we know that our community integrations are not ideal. We currently don’t have official support for STMicroctonroller products and ststm32 development platform serves a demonstrative character. Official integrations are listed in the PlatformIO Registry.

We will contact STMicroctonroller and work together on improving the developer experience for PlatformIO/ST customers.

I very much like your approach, as described in your blog, but the one thing I do not like is that your platform is based off Visual Studio Code. That is very vendor specific and I personally do not like their default workflow approach. IMHO, it has become a victim of feature creep and in an attempt to make things simpler to use it has unwittingly constrained the user to a particular approach. It then takes time and effort to amend settings to suit.

So, have you ever considered going one level below VSC and use something like Theia - Cloud and Desktop IDE Platform

G://