Visit Visual Studio Code download page to download .deb version for Ubuntu.
After downloaded, open Terminal and switch to the downloaded folder and run the command to install VS Code:
$ sudo apt install ./<file>.deb
(reference: Visual Studio Code on Linux)
After installed, search and run VSCode.
In VS Code, select Extensions tab, enter platformIo in the search box, and click to install platformIO IDE.
![]() |
If you report with error of ModuleNotFoundError: No module named 'distutils.***'
Enter the command to install python3-distutils:
$ sudo apt-get install python3-distutils
(reference: https://github.com/platformio/platformio-vscode-ide/issues/907)
Close and restart VS Code to complete installation.
Now you can select PlatformIO on the left, and create a New Project. For Arduino Uno, steps refer to the above video.
May be you have to specify the upload port in platformio.ini. Open platformio.ini and add the code:
upload_port = /dev/ttyACM0
where /dev/ttyACM0 is the USB port.
Also have to add permission of the USB port to user. Enter the command in Terminal:
$ sudo usermod -a -G dialout <username>
$ sudo chmod a+rw /dev/ttyACM0
more:
~ 2.8" 320*240 TFT Touch Screen shield (ILI9341 8 bit I/F) on Uno, using MCUFRIEND_kbv and Adafruit GFX Libraries
~ TFT Touch Screen shield (ILI9341 8 bit) + Uno, calibration and simple touch drawing example.
Platform IO + ESP8266/ESP32
With PlatformIO IDE installed, you can also program ESP8266/ESP32 board of Arduino framework. This video show the steps.
The following video show how to install library in PlatformIO, for I2C SSD1306 OLED driver for ESP8266/ESP32.
This example run on ESP32 (WEMOS Lolin32 with integrated SSD1306/OLED driver).
#include <Wire.h>
#include <SSD1306Wire.h>
SSD1306Wire display(0x3C, 5, 4);
void setup() {
// put your setup code here, to run once:
display.init();
display.flipScreenVertically();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.setFont(ArialMT_Plain_16);
}
void loop() {
// put your main code here, to run repeatedly:
display.clear();
display.drawString(0, 0, "ESP32/OLED");
display.drawString(0, 20, "Hello PlatformIO");
display.display();
delay(1000);
}
Reference:
~ My old post: ESP32 + OLED Module
Next:
~ ESP8266 (NodeMCU/ESP8266 DevKitC) + SSD1306 I2C OLED, Platform IO.
PlatformIO + STM32
PlatformIO also can program STM32, such as NUCLEO-F401RE Board.
KEY FEATURES of NUCLEO-F401RE Board:
- Common features
- STM32 microcontroller in LQFP64 package
- 1 user LED shared with Arduino™
- 1 user and 1 reset push-buttons
- 32.768 kHz crystal oscillator
- Board connectors:Arduino™ Uno V3 expansion connectorST morpho extension pin headers for full access to all STM32 I/Os
- Flexible power-supply options: ST-LINK, USB VBUS or external sources
- On-board ST-LINK debugger/programmer with USB re-enumeration capability: mass storage, Virtual COM port and debug port
- Comprehensive free software libraries and examples available with the STM32Cube MCU Package
- Support of a wide choice of Integrated Development Environments (IDEs) including IAR™, Keil® and GCC-based IDEs
- NUCLEO-F401RE Board-specific features
- External SMPS to generate Vcore logic supply
- 24 MHz HSE
- Board connectors:External SMPS experimentation dedicated connectorMicro-AB or Mini-AB USB connector for the ST-LINKMIPI® debug connector
- Arm® Mbed Enabled™ compliant
Steps to create a new project for NUCLEO-F401RE Board, using Arduino and Mbed framework.
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
To make PlatformIO run on Ubuntu, in addition to add USB permission to user as describe above, you have to install udev rules (99-platformio-udev.rules) also.
Enter the commands in Terminal:
$ curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules
$ sudo service udev restart
After this file is installed, physically unplug and reconnect your board.
(reference: PlatformIO FAQ > 99-platformio-udev.rules)
PlatformIO ST Nucleo F401RE
https://docs.platformio.org/en/latest/boards/ststm32/nucleo_f401re.html
PlatformIO > Development Platforms > ST STM32
https://docs.platformio.org/en/latest/platforms/ststm32.html
Examples:
Arduino framework:
https://github.com/platformio/platform-ststm32/blob/master/examples/arduino-blink/src/Blink.cpp
Mbed framework:
https://github.com/platformio/platform-ststm32/blob/master/examples/mbed-blink/src/main.cpp
PlatformIO ST Nucleo F401RE
https://docs.platformio.org/en/latest/boards/ststm32/nucleo_f401re.html
PlatformIO > Development Platforms > ST STM32
https://docs.platformio.org/en/latest/platforms/ststm32.html
Examples:
Arduino framework:
https://github.com/platformio/platform-ststm32/blob/master/examples/arduino-blink/src/Blink.cpp
Mbed framework:
https://github.com/platformio/platform-ststm32/blob/master/examples/mbed-blink/src/main.cpp
Update VS Code for Ubuntu
If update of VS Code is available and you are asked to Download Update.
Just close VS Code and run the commands in Terminal:
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install code # or code-insiders
reference: https://code.visualstudio.com/docs/setup/linux
Updated 1.46.0 currently@2020-06-11
Hi Erik,
ReplyDeleteNice and informative video on Youtube. i did the test on esp8266 following you step by step - was all ok
but after that when trying to use some github project shared by brad at https://github.com/bradc87/GarageDoorSensor
it gives me this error. have been trying to figure it out but not sure why it's getting failed. Getting this error [screenshot]
https://i.postimg.cc/rFC5j30L/Screenshot-2020-09-25-at-2-58-18-AM.png
could you please help. Thanks.