PlatformIO is a professional collaborative platform for embedded development :alien: A place where Developers and Teams have true Freedom! No more vendor lock-in!

Overview

PlatformIO

CI Build for PlatformIO Core CI Build for dev-platform examples CI Build for Docs Latest Version License Community Labs

Quick Links: Web | PlatformIO IDE | Project Examples | Docs | Donate | Contact Us

Social: LinkedIn | Twitter | Facebook | Community Forums

https://raw.githubusercontent.com/platformio/platformio-web/develop/app/images/platformio-ide-laptop.png

PlatformIO is a professional collaborative platform for embedded development

A place where Developers and Teams have true Freedom! No more vendor lock-in!

  • Open source, maximum permissive Apache 2.0 license
  • Cross-platform IDE and Unified Debugger
  • Static Code Analyzer and Remote Unit Testing
  • Multi-platform and Multi-architecture Build System
  • Firmware File Explorer and Memory Inspection.

Get Started

Solutions

Advanced

Registry

Development Platforms

Frameworks

Contributing

See contributing guidelines.

Telemetry / Privacy Policy

Share minimal diagnostics and usage information to help us make PlatformIO better. It is enabled by default. For more information see:

License

Copyright (c) 2014-present PlatformIO <[email protected]>

The PlatformIO is licensed under the permissive Apache 2.0 license, so you can use it in both commercial and personal projects with confidence.

Comments
  • ZephyrProject integration

    ZephyrProject integration

    Hi,

    I have been playing with https://www.zephyrproject.org/ recently. Seems like they are developing really fast. A lot of SOC supported, especially bluetooth / bluetooth mesh is very promising. It would be great addition to Platformio. Please consider adding Zephyr support.

    Thanks.

    platform feature framework 
    opened by leodesigner 144
  • Chinese mirror of the package registry

    Chinese mirror of the package registry

    What kind of issue is this?

    • [x] Feature Request. Start by telling us what problem you’re trying to solve. Often a solution already exists! Don’t send pull requests to implement new features without first getting our support. Sometimes we leave features out on purpose to keep the project small.

    Configuration

    Operating system: Windows 10 Home 21H2 64-bit

    PlatformIO Version (platformio --version): PlatformIO Core, version 6.0.2

    Description of problem

    I am a PlatformIO user from China. It is all known to devs in China that there is a You-Know-What system that will cause accessing github.com becoming very, very, very slow or even unreachable (ERR_CONNECTION_RESET).

    When I create a PlatformIO project, it will download a lot of data, including toolchains, SDKs, etc from github or some places like that. Thus the process is extremely slow and it takes hours to install that. In many situations there is completely no network activity.

    internet

    I think it is appropriate for PlatformIO developers to add a import function which can import pre-downloaded toolchains, SDKs, etc (NOT the ones downloaded from the "Platform" page. Seems that it is only a project framework.). There should also be a place to manually download the files, so that I can call my friends to help me download them.

    Steps to Reproduce

    Create a new project.

    Actual Results

    The project wizard stuck there showing

    Please wait...
    The first initialization requires Internet connection and may take a while (need to install dependent toolchains, frameworks, SDKs).
    Please be patient and let the initialization complete.
    

    Expected Results

    Project can be created successfully

    ps. My board: Espressif ESP32 Devkit

    package management registry 
    opened by yangshunhuai 91
  • Add : espressif : make spiffs

    Add : espressif : make spiffs

    In Arduino-esp8266 project there is a option to build and upload just SPIFFS image to ESP.

    http://esp8266.github.io/Arduino/versions/2.0.0/doc/filesystem.html#uploading-files-to-file-system
    

    Is it possible to add similar functionality to "PlatformIO" where I create a folder named "data" in the project root folder and set the flag/property to build just SPIFFS image and upload it to ESP using serial or ota

    @igrr (and yourself) already provided mentioned the document the option to upload just SPIFFS image to ESP over OTA

    https://github.com/esp8266/Arduino/blob/master/doc/platformio.md
    

    Let me know.thanks.

    feature 
    opened by itsjustvenky 86
  • Problem with Python 3.8+ on Windows when network drive is used

    Problem with Python 3.8+ on Windows when network drive is used

    The cause of the issue: https://bugs.python.org/issue37993

    Solution 1

    1. Open Windows Registry regedit.exe
    2. Create a new key named Command Processor at HKEY_CURRENT_USER\Software\Microsoft Screen Shot 2021-03-31 at 18 14 29
    3. Create a new DWORD (32-bit) Value named DisableUNCCheck Screen Shot 2021-03-31 at 18 16 50
    4. Set the value of DisableUNCCheck to 1 (Hex) Screen Shot 2021-03-31 at 18 21 32
    5. Restart your Windows machine.

    Solution 2

    1. Download our portable Python 3.7
    2. Extract and replace contents in %HOMEPATH%/.platformio/python3.
    3. Remove %HOMEPATH%/.platformio/penv folder.
    4. Restart VSCode.

    Configuration

    Operating system: Windows_NT x64 10.0.17763

    PlatformIO Version (platformio --version): 4.2.2b1 and 4.2.1

    Python Version 3.8 32bit

    Description of problem

    During compilation I get the Python Traceback UnicodeDecodeError: 'charmap' codec can't decode byte.

    Full Message:

    > Executing task in folder IR_Sender_WB: C:\Users\***\.platformio\penv\Scripts\platformio.exe run <
    
    Processing nodemcuv2 (platform: espressif8266; board: nodemcuv2; framework: arduino)
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Verbose mode can be enabled via `-v, --verbose` option
    CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/nodemcuv2.html
    PLATFORM: Espressif 8266 2.3.3 > NodeMCU 1.0 (ESP-12E Module)
    HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
    PACKAGES:
    - framework-arduinoespressif8266 3.20603.200130 (2.6.3)
    - tool-esptool 1.413.0 (4.13)
    - tool-esptoolpy 1.20800.0 (2.8.0)
    - toolchain-xtensa 2.40802.191122 (4.8.2)
    LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 31 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- <IRremoteESP8266> 2.7.4
    Building in release mode
    Compiling .pio\build\nodemcuv2\src\main.cpp.o
    Generating LD script .pio\build\nodemcuv2\ld\local.eagle.app.v6.common.ld
    Exception in thread Thread-3:
    Traceback (most recent call last):
      File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 932, in _bootstrap_inner
        self.run()
      File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\threading.py", line 870, in run
        self._target(*self._args, **self._kwargs)
      File "c:\users\***\.platformio\penv\lib\site-packages\platformio\proc.py", line 46, in run
        self.do_reading()
      File "c:\users\***\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in do_reading
        for byte in iter(lambda: self._pipe_reader.read(1), ""):
      File "c:\users\***\.platformio\penv\lib\site-packages\platformio\proc.py", line 69, in <lambda>
        for byte in iter(lambda: self._pipe_reader.read(1), ""):
      File "C:\Users\***\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1252.py", line 23, in decode
        return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 167: character maps to <undefined>
    Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRac.cpp.o
    Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRrecv.cpp.o
    Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRsend.cpp.o
    Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRtext.cpp.o
    Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRtimer.cpp.o
    Compiling .pio\build\nodemcuv2\lib70a\IRremoteESP8266\IRutils.cpp.o
    ======================================================================================== [FAILED] Took 5.42 seconds ========================================================================================
    The terminal process terminated with exit code: 1
    
    Terminal will be reused by tasks, press any key to close it.
    

    If problems with PlatformIO Build System:

    The content of platformio.ini:

    ; PlatformIO Project Configuration File
    ;
    ;   Build options: build flags, source filter
    ;   Upload options: custom upload port, speed and extra flags
    ;   Library options: dependencies, extra library storages
    ;   Advanced options: extra scripting
    ;
    ; Please visit documentation for the other options and examples
    ; https://docs.platformio.org/page/projectconf.html
    
    [env:nodemcuv2]
    platform = espressif8266
    board = nodemcuv2
    framework = arduino
    monitor_speed = 115200
    

    Additional info

    On another PC with Python version 3.7 there are no problems compiling. Here are the data of the PC where there is no problem:

    Version: 1.43.0 (user setup) Commit: 78a4c91400152c0f27ba4d363eb56d2835f9903a Date: 2020-03-09T19:47:57.235Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.17763

    PlatformIO: Core 4.2.1, Home 3.1.1

    bug known issue build system 
    opened by Hofei90 68
  • BBC MicroBit configuration

    BBC MicroBit configuration

    Example

    • https://github.com/platformio/platformio-examples/tree/develop/mbed/microbit-hello-world

    Configuration

    Operating system: macOS Sierra (10.12)

    PlatformIO Version (platformio --version): 2.11.0

    Hello there, I was trying to use platformIO with the microbit board (bbcmicrobit), however, even the simplest program fails to compile because it misses the main file. I have also tried to add the main source code of the framework to the lib, but as it is compiled by yotta the structure is not the same, has anyone used the microbit with PlatformIO before?

    If problems with PlatformIO Build System:

    The content of platformio.ini:

    #
    # Project Configuration File
    #
    # A detailed documentation with the EXAMPLES is located here:
    # http://docs.platformio.org/en/latest/projectconf.html
    #
    
    # A sign `#` at the beginning of the line indicates a comment
    # Comment lines are ignored.
    
    # Simple and base environment
    # [env:mybaseenv]
    # platform = %INSTALLED_PLATFORM_NAME_HERE%
    # framework =
    # board =
    #
    # Automatic targets - enable auto-uploading
    # targets = upload
    
    [env:bbcmicrobit]
    platform = nordicnrf51
    framework = mbed
    board = bbcmicrobit
    

    Source file to reproduce issue:

    #include "MicroBit.h"
    
    MicroBit uBit;
    
    void onData(MicroBitEvent)
    {
      ManagedString s = uBit.radio.datagram.recv();
      ManagedString t(uBit.thermometer.getTemperature());
    
      if (s == "1")
      uBit.display.print("A");
    
      if (s == "2")
      uBit.display.print("B");
    
      if (s == "3")
      uBit.display.print("C");
    
      if (s == "4")
      uBit.display.print("D");
    
      if (s == "5")
      uBit.display.print("E");
    
      if (s == "7")
      uBit.display.scroll(t);
    
    }
    
    void onButton (MicroBitEvent e) {
       if (e.source == MICROBIT_ID_BUTTON_A && e.value == MICROBIT_BUTTON_EVT_CLICK)
       uBit.radio.datagram.send("6");
    }
    
    int main()
    {
      uBit.init();
    
      uBit.radio.setGroup(126);
      uBit.radio.enable();
    
      uBit.messageBus.listen(MICROBIT_ID_BUTTON_A, MICROBIT_EVT_ANY, onButton);
      uBit.messageBus.listen(MICROBIT_ID_RADIO, MICROBIT_RADIO_EVT_DATAGRAM, onData);
    
      while (1)
        uBit.sleep(10);
    }
    

    Additional info

    Run output:

    platformio run
    [Fri Jul  1 15:40:25 2016] Processing bbcmicrobit (platform: nordicnrf51, board: bbcmicrobit, framework: mbed)
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    arm-none-eabi-g++ -o .pioenvs/bbcmicrobit/core/MicroBit.o -c -std=gnu++98 -fno-rtti -fdata-sections -ffunction-sections -Wno-unused-parameter -fno-exceptions -Wextra -fno-delete-null-pointer-checks -fmessage-length=0 -mthumb -Wno-missing-field-initializers -c -fno-builtin -O2 -fomit-frame-pointer -Wall -MMD -mcpu=cortex-m0 -DTARGET_MCU_NRF51_16K_S110 -D__CORTEX_M0 -DTARGET_MCU_NRF51_16K -DTOOLCHAIN_GCC -DTARGET_MCU_NRF51822 -DTARGET_LIKE_MBED -DTARGET_CORTEX_M -DTARGET_NRF_LFCLK_RC -DMBED_BUILD_TIMESTAMP=1464362417.38 -DTARGET_NRF51822 -DARM_MATH_CM0 -DTARGET_NRF51_MICROBIT -DTOOLCHAIN_GCC_ARM -DTARGET_NORDIC -DTARGET_MCU_NRF51 -DTARGET_MCU_NORDIC_16K -DTARGET_M0 -DNRF51 -D__MBED__=1 -DTARGET_LIKE_CORTEX_M0 -DPLATFORMIO=021100 -I.pioenvs/bbcmicrobit/FrameworkMbedInc248832578 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-213564679 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-250686161 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2103166472 -I.pioenvs/bbcmicrobit/FrameworkMbedInc636649457 -I.pioenvs/bbcmicrobit/FrameworkMbedInc24945669 -I.pioenvs/bbcmicrobit/FrameworkMbedInc840111810 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1439381592 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-715659618 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1703762731 -I.pioenvs/bbcmicrobit/FrameworkMbedInc615864670 -I.pioenvs/bbcmicrobit/FrameworkMbedInc555830279 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2043334312 -I.pioenvs/bbcmicrobit/FrameworkMbedInc226820145 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-464402851 -I.pioenvs/bbcmicrobit/FrameworkMbedInc1031615723 -I.pioenvs/bbcmicrobit/FrameworkMbedInc857456459 -I.pioenvs/bbcmicrobit/platform -I.pioenvs/bbcmicrobit/core -I.pioenvs/bbcmicrobit/drivers -I.pioenvs/bbcmicrobit/types -I.pioenvs/bbcmicrobit/bluetooth .pioenvs/bbcmicrobit/core/MicroBit.cpp
    arm-none-eabi-g++ -o .pioenvs/bbcmicrobit/core/MicroBitDevice.o -c -std=gnu++98 -fno-rtti -fdata-sections -ffunction-sections -Wno-unused-parameter -fno-exceptions -Wextra -fno-delete-null-pointer-checks -fmessage-length=0 -mthumb -Wno-missing-field-initializers -c -fno-builtin -O2 -fomit-frame-pointer -Wall -MMD -mcpu=cortex-m0 -DTARGET_MCU_NRF51_16K_S110 -D__CORTEX_M0 -DTARGET_MCU_NRF51_16K -DTOOLCHAIN_GCC -DTARGET_MCU_NRF51822 -DTARGET_LIKE_MBED -DTARGET_CORTEX_M -DTARGET_NRF_LFCLK_RC -DMBED_BUILD_TIMESTAMP=1464362417.38 -DTARGET_NRF51822 -DARM_MATH_CM0 -DTARGET_NRF51_MICROBIT -DTOOLCHAIN_GCC_ARM -DTARGET_NORDIC -DTARGET_MCU_NRF51 -DTARGET_MCU_NORDIC_16K -DTARGET_M0 -DNRF51 -D__MBED__=1 -DTARGET_LIKE_CORTEX_M0 -DPLATFORMIO=021100 -I.pioenvs/bbcmicrobit/FrameworkMbedInc248832578 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-213564679 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-250686161 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2103166472 -I.pioenvs/bbcmicrobit/FrameworkMbedInc636649457 -I.pioenvs/bbcmicrobit/FrameworkMbedInc24945669 -I.pioenvs/bbcmicrobit/FrameworkMbedInc840111810 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1439381592 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-715659618 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1703762731 -I.pioenvs/bbcmicrobit/FrameworkMbedInc615864670 -I.pioenvs/bbcmicrobit/FrameworkMbedInc555830279 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2043334312 -I.pioenvs/bbcmicrobit/FrameworkMbedInc226820145 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-464402851 -I.pioenvs/bbcmicrobit/FrameworkMbedInc1031615723 -I.pioenvs/bbcmicrobit/FrameworkMbedInc857456459 -I.pioenvs/bbcmicrobit/platform -I.pioenvs/bbcmicrobit/core -I.pioenvs/bbcmicrobit/drivers -I.pioenvs/bbcmicrobit/types -I.pioenvs/bbcmicrobit/bluetooth .pioenvs/bbcmicrobit/core/MicroBitDevice.cpp
    arm-none-eabi-g++ -o .pioenvs/bbcmicrobit/core/MicroBitFiber.o -c -std=gnu++98 -fno-rtti -fdata-sections -ffunction-sections -Wno-unused-parameter -fno-exceptions -Wextra -fno-delete-null-pointer-checks -fmessage-length=0 -mthumb -Wno-missing-field-initializers -c -fno-builtin -O2 -fomit-frame-pointer -Wall -MMD -mcpu=cortex-m0 -DTARGET_MCU_NRF51_16K_S110 -D__CORTEX_M0 -DTARGET_MCU_NRF51_16K -DTOOLCHAIN_GCC -DTARGET_MCU_NRF51822 -DTARGET_LIKE_MBED -DTARGET_CORTEX_M -DTARGET_NRF_LFCLK_RC -DMBED_BUILD_TIMESTAMP=1464362417.38 -DTARGET_NRF51822 -DARM_MATH_CM0 -DTARGET_NRF51_MICROBIT -DTOOLCHAIN_GCC_ARM -DTARGET_NORDIC -DTARGET_MCU_NRF51 -DTARGET_MCU_NORDIC_16K -DTARGET_M0 -DNRF51 -D__MBED__=1 -DTARGET_LIKE_CORTEX_M0 -DPLATFORMIO=021100 -I.pioenvs/bbcmicrobit/FrameworkMbedInc248832578 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-213564679 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-250686161 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2103166472 -I.pioenvs/bbcmicrobit/FrameworkMbedInc636649457 -I.pioenvs/bbcmicrobit/FrameworkMbedInc24945669 -I.pioenvs/bbcmicrobit/FrameworkMbedInc840111810 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1439381592 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-715659618 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1703762731 -I.pioenvs/bbcmicrobit/FrameworkMbedInc615864670 -I.pioenvs/bbcmicrobit/FrameworkMbedInc555830279 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2043334312 -I.pioenvs/bbcmicrobit/FrameworkMbedInc226820145 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-464402851 -I.pioenvs/bbcmicrobit/FrameworkMbedInc1031615723 -I.pioenvs/bbcmicrobit/FrameworkMbedInc857456459 -I.pioenvs/bbcmicrobit/platform -I.pioenvs/bbcmicrobit/core -I.pioenvs/bbcmicrobit/drivers -I.pioenvs/bbcmicrobit/types -I.pioenvs/bbcmicrobit/bluetooth .pioenvs/bbcmicrobit/core/MicroBitFiber.cpp
    arm-none-eabi-g++ -o .pioenvs/bbcmicrobit/core/MicroBitFont.o -c -std=gnu++98 -fno-rtti -fdata-sections -ffunction-sections -Wno-unused-parameter -fno-exceptions -Wextra -fno-delete-null-pointer-checks -fmessage-length=0 -mthumb -Wno-missing-field-initializers -c -fno-builtin -O2 -fomit-frame-pointer -Wall -MMD -mcpu=cortex-m0 -DTARGET_MCU_NRF51_16K_S110 -D__CORTEX_M0 -DTARGET_MCU_NRF51_16K -DTOOLCHAIN_GCC -DTARGET_MCU_NRF51822 -DTARGET_LIKE_MBED -DTARGET_CORTEX_M -DTARGET_NRF_LFCLK_RC -DMBED_BUILD_TIMESTAMP=1464362417.38 -DTARGET_NRF51822 -DARM_MATH_CM0 -DTARGET_NRF51_MICROBIT -DTOOLCHAIN_GCC_ARM -DTARGET_NORDIC -DTARGET_MCU_NRF51 -DTARGET_MCU_NORDIC_16K -DTARGET_M0 -DNRF51 -D__MBED__=1 -DTARGET_LIKE_CORTEX_M0 -DPLATFORMIO=021100 -I.pioenvs/bbcmicrobit/FrameworkMbedInc248832578 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-213564679 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-250686161 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2103166472 -I.pioenvs/bbcmicrobit/FrameworkMbedInc636649457 -I.pioenvs/bbcmicrobit/FrameworkMbedInc24945669 -I.pioenvs/bbcmicrobit/FrameworkMbedInc840111810 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1439381592 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-715659618 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-1703762731 -I.pioenvs/bbcmicrobit/FrameworkMbedInc615864670 -I.pioenvs/bbcmicrobit/FrameworkMbedInc555830279 -I.pioenvs/bbcmicrobit/FrameworkMbedInc2043334312 -I.pioenvs/bbcmicrobit/FrameworkMbedInc226820145 -I.pioenvs/bbcmicrobit/FrameworkMbedInc-464402851 -I.pioenvs/bbcmicrobit/FrameworkMbedInc1031615723 -I.pioenvs/bbcmicrobit/FrameworkMbedInc857456459 -I.pioenvs/bbcmicrobit/platform -I.pioenvs/bbcmicrobit/core -I.pioenvs/bbcmicrobit/drivers -I.pioenvs/bbcmicrobit/types -I.pioenvs/bbcmicrobit/bluetooth .pioenvs/bbcmicrobit/core/MicroBitFont.cpp
    .pioenvs/bbcmicrobit/core/MicroBitDevice.cpp:48:21: fatal error: nrf_soc.h: No such file or directory
    #include "nrf_soc.h"
    ^
    compilation terminated.
    scons: *** [.pioenvs/bbcmicrobit/core/MicroBitDevice.o] Error 1
    .pioenvs/bbcmicrobit/core/MicroBit.cpp:41:21: fatal error: nrf_soc.h: No such file or directory
    #include "nrf_soc.h"
    ^
    compilation terminated.
    scons: *** [.pioenvs/bbcmicrobit/core/MicroBit.o] Error 1
    ============================================================================ [ ERROR ] Took 4.52 seconds ============================================================================
    
    help wanted 
    opened by tiferrei 64
  • Problems with esp8266 OTA

    Problems with esp8266 OTA

    When I try the OTA example found here: https://github.com/esp8266/Arduino/blob/master/libraries/ArduinoOTA/examples/BasicOTA/BasicOTA.ino

    I encounterd when uploading the OTA script didn’t seem to recognize my input IP. I was getting: 14:21:38 [CRITICAL]: Not enough arguments.

    It seems on windows you must specify upload port in ” ” like this. upload_port = “192.168.1.40”

    When I set the IP in " " I get this output when I do an upload: esptool v0.4.6 – (c) 2014 Ch. Klippel setting board to nodemcu setting baudrate from 115200 to 115200 setting port from COM1 to 192.168.1.40 espcomm_upload_file stat .pioenvs\nodemcu\firmware.bin success error: Failed to open 192.168.1.40 error: espcomm_open failed scons: *** [upload] Error -1 [ ERROR ]

    Any Idea? I disabled the firewall and the IP is definitely OK. I tested the UDP port 8266 and it is open. Also there is no activity on the serial monitor when I try OTA.

    I think the problem is still in the IP address somehow it is not recognized properly.

    bug 
    opened by igorjan 60
  • Cannot compile Marlin all of a sudden

    Cannot compile Marlin all of a sudden

    Solution

    1. Please open PlatformIO Core CLI (see screenshot below)
    2. Type pio upgrade --dev
    3. Restart VSCode.

    168773624-58165d88-e854-497a-8da9-40fc758651f6


    Executing task: C:\Users\Mike.platformio\penv\Scripts\platformio.exe run <

    Warning! src_filter configuration option in section [env:include_tree] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:DUE] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:esp32] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_build_flags configuration option in section [env:linux_native] is deprecated and will be removed in the next release! Please use build_src_flags instead Warning! src_filter configuration option in section [env:linux_native] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_build_flags configuration option in section [env:simulator_windows] is deprecated and will be removed in the next release! Please use build_src_flags instead Warning! src_filter configuration option in section [env:SAMD51_grandcentral_m4] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:malyan_M300] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:STM32F103CB_malyan] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:teensy31] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:teensy35] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:teensy36] is deprecated and will be removed in the next release! Please use build_src_filter instead Warning! src_filter configuration option in section [env:teensy41] is deprecated and will be removed in the next release! Please use build_src_filter instead Processing STM32F103RE_btt_maple (platform: ststm32@~12.1; board: genericSTM32F103RE; framework: arduino) ---------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option

    bug config 
    opened by Forunnerod 53
  • error: option --single-version-externally-managed not recognized

    error: option --single-version-externally-managed not recognized

    Solutions

    Using PlatformIO installer script (RECOMMENDED)

    Try to install PlatformIO using installer script.

    Using pip --egg

    # firstly install SCons
    pip intall --egg scons
    
    # then
    pip install -U platformio
    

    Using temporary hook with virtualenv

    See https://github.com/platformio/platformio/issues/279#issuecomment-138599194. Please paste these commands into Terminal:

    [sudo] pip install -U pip setuptools virtualenv
    
    # hook
    cd /tmp
    virtualenv piotest
    source piotest/bin/activate
    pip install scons
    deactivate
    rm -r piotest
    
    # now, install PlatformIO
    [sudo] pip install platformio
    

    Users experience

    1. https://github.com/platformio/platformio/issues/279#issuecomment-146376929

    If this doesn't work for you, please describe your problems in the comments below. Thanks!


    Hi,

    I get an installation error when trying to install "scons" under Windows 10 x64. :sob: Other packages seem to be installed properly.

    D:\src\plarformio>pip install -U pip setuptools scons
    Requirement already up-to-date: pip in c:\bin\python27\lib\site-packages
    Requirement already up-to-date: setuptools in c:\bin\python27\lib\site-packages
    Collecting scons
      Using cached scons-2.3.6.tar.gz
    Installing collected packages: scons
      Running setup.py install for scons
        Complete output from command C:\bin\Python27\python.exe -c "import setuptools, tokenize;__file__='c:\\users\\harris\\appdata\\local\\
    temp\\pip-build-dil9zr\\scons\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, '
    exec'))" install --record c:\users\harris\appdata\local\temp\pip-35frnt-record\install-record.txt --single-version-externally-managed --c
    ompile:
        usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
           or: -c --help [cmd1 cmd2 ...]
           or: -c --help-commands
           or: -c cmd --help
    
        error: option --single-version-externally-managed not recognized
    
        ----------------------------------------
    Command "C:\bin\Python27\python.exe -c "import setuptools, tokenize;__file__='c:\\users\\harris\\appdata\\local\\temp\\pip-build-dil9zr\\
    scons\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --recor
    d c:\users\harris\appdata\local\temp\pip-35frnt-record\install-record.txt --single-version-externally-managed --compile" failed with erro
    r code 1 in c:\users\harris\appdata\local\temp\pip-build-dil9zr\scons
    

    According to this SO thread the problem disappears by using the flag "--egg".

    However, I know only very little about python and its environment and wouldn't say that this is a "proper" solution to this problem but at least it worked for me. Maybe there are some of you with similar problems. Just in the case of a more general problem it would be nice to put it somewhere in the docs.

    Here's the command I used to install "scons".

    pip install -U pip setuptools --egg scons
    

    And here's the proof :smile:

    
    D:\src\plarformio>pip install -U pip setuptools --egg scons
    Requirement already up-to-date: pip in c:\bin\python27\lib\site-packages
    Requirement already up-to-date: setuptools in c:\bin\python27\lib\site-packages
    Collecting scons
      Using cached scons-2.3.6.tar.gz
    Installing collected packages: scons
      Running setup.py install for scons
    Successfully installed scons
    

    Best regards, Harris

    bug 
    opened by brakmic 47
  • Defines added in extra_script are lost when using platform_packages

    Defines added in extra_script are lost when using platform_packages

    • [x] PlatformIO Core.

    Configuration

    Operating system: Windows (VS code)

    PlatformIO Version 4.1.1b3

    Description of problem

    I use a Python script to set/add defines before building the project.

    When using the "old" way to define a platform, the defines set in the Python script are present at compile time. When using platform + platform_packages, they are lost.

    This is the bug report of what I noticed here: https://github.com/platformio/platformio-core/issues/3239#issuecomment-558358080

    Working:

    platform = https://github.com/platformio/platform-espressif8266.git#feature/stage
    

    Not working:

    platform                  = espressif8266
    platform_packages         =  
        framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#2.6.1
    

    If problems with PlatformIO Build System:

    The content of platformio.ini:

    [platformio]
    
    [esp82xx_defaults]
    build_flags               = -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"'
                                -D NDEBUG
                                -lstdc++ -lsupc++
                                -mtarget-align
                                -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY
                                -DVTABLES_IN_FLASH
                                -DPUYA_SUPPORT=1
    
    [esp82xx_2_5_x]
    build_flags               = -D BUILD_GIT='"${sysenv.TRAVIS_TAG}"'
                                -DNDEBUG
                                -mtarget-align
                                -DVTABLES_IN_FLASH
                                -fno-exceptions
                                -lstdc++
                                -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY_LOW_FLASH
                                -DPUYA_SUPPORT=1
                                -DCORE_POST_2_5_0
    
    [esp82xx_2_6_x]
    build_flags               = ${esp82xx_2_5_x.build_flags} 
                                -O2
                                -DBEARSSL_SSL_BASIC
                                -DCORE_POST_2_6_0 
    
    
    [core_2_6_0]
    platform                  = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_0
    build_flags               = ${esp82xx_2_6_x.build_flags} 
                                -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
    
    [core_2_6_1]
    platform                  = https://github.com/Jason2866/platform-espressif8266.git#core_2_6_1
    build_flags               = ${esp82xx_2_6_x.build_flags} 
                                -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
    
    [core_stage]
    platform                  = https://github.com/platformio/platform-espressif8266.git#feature/stage
    build_flags               = ${esp82xx_2_6_x.build_flags} -DARDUINO_ESP8266_RELEASE='"2.6.0-dev stage"'
    
    
    [core_2_6_1_wifimesh]
    platform                  = espressif8266
    ;platform_packages         = 
    ;    framework-arduinoespressif8266 @ https://github.com/TD-er/Arduino.git#wifi_mesh_update_2.2
    platform_packages         =  
        framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#2.6.1
    build_flags               = ${esp82xx_2_6_x.build_flags} 
                                -DPIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703
    
    [common]
    board_build.f_cpu         = 80000000L
    build_flags               = -DHTTPCLIENT_1_1_COMPATIBLE=0
    build_unflags             = -DDEBUG_ESP_PORT
    lib_deps                  = https://github.com/TD-er/ESPEasySerial.git
    lib_ignore                = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR, SD(esp8266), SDFS
    ;lib_ignore                = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR
    lib_ldf_mode              = chain
    lib_archive               = false
    upload_speed              = 115200
    framework                 = arduino
    board                     = esp12e
    monitor_speed             = 115200
    ;targets                   = size, checkprogsize
    targets                   =
    
    [env]
    framework                 = ${common.framework}
    lib_ldf_mode              = ${common.lib_ldf_mode}
    lib_archive               = ${common.lib_archive}
    lib_deps                  = ${common.lib_deps}
    lib_ignore                = ${common.lib_ignore}
    upload_speed              = ${common.upload_speed}
    monitor_speed             = ${common.monitor_speed}
    targets                   = ${common.targets}
    
    
    [regular_platform]
    build_unflags             =
    build_flags               = ${core_2_5_2.build_flags} ${common.build_flags}
    platform                  = ${core_2_5_2.platform}
    
    [beta_platform]
    build_unflags             =
    build_flags               = ${core_stage.build_flags} ${common.build_flags}
    platform                  = ${core_stage.platform}
    
    
    [esp8266_4M1M]
    board                     = esp12e
    board_build.flash_mode    = dio
    board_upload.maximum_size = 1044464
    board_build.f_cpu         = ${common.board_build.f_cpu}
    build_unflags             = ${regular_platform.build_unflags}
    build_flags               = -Wl,-Tesp8266.flash.4m1m.ld
    
    ; Environment for very simple build tests to assist in reporting issues.
    [env:MCVE_ESP8266_4M1M]
    platform                  = ${beta_platform.platform}
    board                     = ${esp8266_4M1M.board}
    board_build.f_cpu         = ${esp8266_4M1M.board_build.f_cpu}
    board_build.flash_mode    = ${esp8266_4M1M.board_build.flash_mode}
    build_unflags             = ${esp8266_4M1M.build_unflags}
    build_flags               = ${esp8266_4M1M.build_flags} ${beta_platform.build_flags} -DPLUGIN_BUILD_CUSTOM
    lib_ignore                = ESP32_ping, ESP32WebServer
    
    extra_scripts             = pre:pre_extra_script_mcve.py
    
    [env:spec_wifimesh_ESP8266_4M1M]
    extends                   = esp8266_4M1M
    framework                 = arduino
    build_unflags             =
    platform                  = ${core_2_6_1_wifimesh.platform}
    platform_packages         = ${core_2_6_1_wifimesh.platform_packages}
    build_flags               = ${core_2_6_1_wifimesh.build_flags} 
                                ${esp8266_4M1M.build_flags} 
                                -DPLUGIN_BUILD_CUSTOM
    lib_ignore                = ESP32_ping, ESP32WebServer, IRremoteESP8266, HeatpumpIR, SD(esp8266), SDFS
    extra_scripts             = pre:pre_extra_script_mcve.py
    
    

    The content of pre_extra_script_mcve.py:

    Import("env")
    import os
    
    env.Append(CPPDEFINES=[
      "PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703",
      "ESPEASY_MCVE_BUILD"
      # ,"NO_HTTP_UPDATER"
      # ,("WEBSERVER_RULES_DEBUG", "0")
    ])
    if os.path.isfile('src/Custom.h'):
      env['CPPDEFINES'].append("USE_CUSTOM_H")
    else:
      env['CPPDEFINES'].extend([
            "USES_P001",  # Switch
            "USE_SETTINGS_ARCHIVE"
      ])
    
    print(env['CPPDEFINES'])
    

    Source file to reproduce issue:

    #include <Arduino.h>
    
    void setup() {
    
      #ifdef USES_P001
      #warning "USES_P001 defined"
      #else
        #warning "USES_P001 NOT defined"
      #endif
    
    }
    
    void loop() {
    
    }
    

    Additional info

    Build output: (first line is the print statement of the Python script)

    ['PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703', 'ESPEASY_MCVE_BUILD', 'USES_P001', 'USE_SETTINGS_ARCHIVE']
    ...
    Compiling .pio\build\MCVE_ESP8266_4M1M\src\main.cpp.o
    src\main.cpp:14:4: warning: #warning "USES_P001 defined" [-Wcpp]
       #warning "USES_P001 defined"
        ^
    
    ['PIO_FRAMEWORK_ARDUINO_ESPRESSIF_SDK22x_190703', 'ESPEASY_MCVE_BUILD', 'USES_P001', 'USE_SETTINGS_ARCHIVE']
    ...
    Compiling .pio\build\spec_wifimesh_ESP8266_4M1M\FrameworkArduino\MD5Builder.cpp.o
    src\main.cpp:16:6: warning: #warning "USES_P001 NOT defined" [-Wcpp]
         #warning "USES_P001 NOT defined"
          ^
    
    help wanted build system 
    opened by TD-er 45
  • Core 5.0.x can't handle platform-packages directive

    Core 5.0.x can't handle platform-packages directive

    Configuration

    Operating system: Windows 10 64bit

    PlatformIO Version (platformio --version): 5.0.1.

    Description of problem

    Platformio mishandles platform-packages directive

    Steps to Reproduce

    1. Create a new project with platformio.ini as follows:
    [env:adafruit_feather_nrf52840]
    platform = nordicnrf52
    board = adafruit_feather_nrf52840
    framework = arduino
    monitor_speed = 115200
    ;platform_packages = framework-arduinoadafruitnrf52 @ https://github.com/orrmany/Adafruit_nRF52_Arduino.git#develop-ant-plus-ble
    
    1. Add src/main.cpp with boiler plate blinky example:
    #include <Arduino.h>
    void setup()
    {
      // initialize LED digital pin as an output.
      pinMode(LED_BUILTIN, OUTPUT);
    }
    
    void loop()
    {
      // turn the LED on (HIGH is the voltage level)
      digitalWrite(LED_BUILTIN, HIGH);
      // wait for a second
      delay(100);
      // turn the LED off by making the voltage LOW
      digitalWrite(LED_BUILTIN, LOW);
       // wait for a second
      delay(100);
    }
    
    1. build your project. Observe that Platformio downloads and install the nRF55 platform with its toolchain, then it builds the project succesfully

    2. Edit your platformio.ini. Remove the leading semicolon from the front of the line: platform_packages = framework-arduinoadafruitnrf52 @ https://github.com/orrmany/Adafruit_nRF52_Arduino.git#develop-ant-plus-ble

    3. attempt to build

    Actual Results

    The build fails, the build script asserts (due to faulty download of wrong platform packages), like this:

    AssertionError: :
      File "C:\Users\egbozie\.platformio\penv\lib\site-packages\platformio\builder\main.py", line 169:
        env.SConscript("$BUILD_SCRIPT")
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 598:
        return _SConscript(self.fs, *files, **subst_kw)
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 287:
        exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
      File "C:\Users\egbozie\.platformio\platforms\nordicnrf52\builder\main.py", line 194:
        target_elf = env.BuildProgram()
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Environment.py", line 219:
        return self.method(*nargs, **kwargs)
      File "C:\Users\egbozie\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 61:
        env.ProcessProgramDeps()
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Environment.py", line 219:
        return self.method(*nargs, **kwargs)
      File "C:\Users\egbozie\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 127:
        env.BuildFrameworks(env.get("PIOFRAMEWORK"))
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Environment.py", line 219:
        return self.method(*nargs, **kwargs)
      File "C:\Users\egbozie\.platformio\penv\lib\site-packages\platformio\builder\tools\platformio.py", line 342:
        SConscript(env.GetFrameworkScript(f), exports="env")
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 661:
        return method(*args, **kw)
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 598:
        return _SConscript(self.fs, *files, **subst_kw)
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 287:
        exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
      File "C:\Users\egbozie\.platformio\platforms\nordicnrf52\builder\frameworks\arduino.py", line 29:
        env.SConscript("arduino/adafruit.py")
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 598:
        return _SConscript(self.fs, *files, **subst_kw)
      File "C:\Users\egbozie\.platformio\packages\tool-scons\scons-local-4.0.1\SCons\Script\SConscript.py", line 287:
        exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
      File "C:\Users\egbozie\.platformio\platforms\nordicnrf52\builder\frameworks\arduino\adafruit.py", line 38:
        assert isdir(CORE_DIR)
    

    Expected Results

    It should build normally using the nRF52 platform fork https://github.com/orrmany/Adafruit_nRF52_Arduino.git#develop-ant-plus-ble

    If problems with PlatformIO Build System:

    The content of platformio.ini:

    [env:adafruit_feather_nrf52840]
    platform = nordicnrf52
    board = adafruit_feather_nrf52840
    framework = arduino
    monitor_speed = 115200
    ;platform_packages = framework-arduinoadafruitnrf52 @ https://github.com/orrmany/Adafruit_nRF52_Arduino.git#develop-ant-plus-ble
    

    Source file to reproduce issue:

    #include <Arduino.h>
    void setup()
    {
      // initialize LED digital pin as an output.
      pinMode(LED_BUILTIN, OUTPUT);
    }
    
    void loop()
    {
      // turn the LED on (HIGH is the voltage level)
      digitalWrite(LED_BUILTIN, HIGH);
      // wait for a second
      delay(100);
      // turn the LED off by making the voltage LOW
      digitalWrite(LED_BUILTIN, LOW);
       // wait for a second
      delay(100);
    }
    

    Additional info

    Obviously, PlatformIO downloads some bogus "midi-test" v. 1.0.0. package instead of the nRF52 platform fork above

    help wanted 
    opened by orrmany 44
  • URGENT: Dear PlatformIO 2.0 contributors...

    URGENT: Dear PlatformIO 2.0 contributors...

    MORE OPEN SOURCE TO PLATFORMIO AND NO GPL

    https://github.com/platformio/platformio/issues/510#issuecomment-189009517


    Dear,

    • [x] @ZachMassia
    • [x] @mplewis
    • [x] @franciscoruiz
    • [x] @WillemMali
    • [ ] @twpayne
    • [x] @floretan
    • [x] @TimJay
    • [ ] @sticilface
    • [x] @dh1tw
    • [x] @bkudria
    • [x] @ctag
    • [x] @Lutino
    • [x] @jrobeson
    • [x] @dkuku

    Thanks a lot for your contributions. We are going to continue work on PlatformIO 3.0. According to https://github.com/platformio/platformio/issues/490 we decided to keep FREE & OPEN SOURCE PlatformIO 3.0. However, the license will be changed

    form Apache v2.0

    Copyright 2014-2016 Ivan Kravets <[email protected]>
    
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
    
       http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    

    to AGPL v3.0

    Copyright (C) 2014-2016 Ivan Kravets. All rights reserved.
    
    This source file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License version 3 as published
    by the Free Software Foundation.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.
    
    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
    

    In this situation, we would ask you to transfer all copyrights for your code/modification/fix to Ivan Kravets @ivankravets. Please post here your comment with you decision: AGREE or NOT AGREE.

    If you are not agree with the next changes your code/modification/fix will be removed from PlatformIO 3.0.

    UPDATE: The license will be changed THE ONLY for PlatformIO Core. The all source code which has relation to build scripts, boards and frameworks will be moved to separated repositories under Apache 2.0 license. More details https://github.com/platformio/platformio/issues/479

    UPDATE 2: The license above is updated to AGPL v3.0

    UPDATE 3: The license will be not changed in PlatformIO 3.0 https://github.com/platformio/platformio/issues/510#issuecomment-189009517

    Sincerely, PlatformIO Organization.

    URGENT 
    opened by ivankravets 42
  • Arduino

    Arduino "main.cpp" - user templates

    • [x] PlatformIO Core.

    Hi there,

    Could you modify slightly _generate_project_main() ( project.py )

        def _generate_project_main(project_dir, board, framework):
            main_content = None
            if 'user_template' in board: ### some flag logic from board-xyz.json
                main_content = None ### skip next templates 
            elif framework == "arduino":
                ...
    

    Then project/src is empty and gives us the opportunity to create another main.cpp template and add other project settings example: https://github.com/Wiz-IO/XC16/blob/main/builder/frameworks/build-arduino.py#L11

    Regards and Happy New Year Georgi

    opened by Wiz-IO 0
  • Debugger Support for MSP432P401R and MSP432P4111

    Debugger Support for MSP432P401R and MSP432P4111

    Hello Platformio team!

    It would be greatly appreciated to add debugger support for the MSP432 line of boards. These boards are already compatible with the TI MSP Debugger (XDS110 USB Debug Probe) which appears to already be implemented in platformio. I should note that although the MSP432P4111 is not officially supported if you change the msp.h to a msp432P411 header file it works fine.

    P.S Thank I love the platformio extension as it allows me to avoid using code composer studio, a classically bad eclipse based IDE.

    opened by CraftBreadth 0
  • library.json Schema - incorrect type of

    library.json Schema - incorrect type of "examples"

    What kind of issue is this?

    • [X] PlatformIO Core. If you’ve found an inconsistency between documentation and code, please provide an information below.

    Description of problem

    The library.json schema that came in PR #4476 says that "examples" is of type "Object". However, the documentation (https://docs.platformio.org/en/latest/manifests/library-json/fields/examples.html) says that "examples" is of type "Array".

    bug package management 
    opened by nkaaf 0
  • compile merlin with Visual Studio 6.1.5

    compile merlin with Visual Studio 6.1.5

    I am trying to compile a Merlin project using Visual Studio 6.1.5 on Windows 10. This project compiled OK in previous versions of Visual Studio(8 months ago). I finally got the file to compile OK but when I copy it to another folder I get the following error code.

    QUOTE Marlin\src\gcode\feature\runout../../../feature/../module/stepper/../../feature/../lcd/../feature/pause.h:33:10: fatal error: ../inc/MarlinConfigPre.h: No such file or directory #include "../inc/MarlinConfigPre.h"

          ^~~~~~~~~~~~~~~~~~~~~~~~~~
    

    compilation terminated. Compiling .pio\build\rambo\src\src\gcode\feature\trinamic\M906.cpp.o *** [.pio\build\rambo\src\src\gcode\feature\runout\M412.cpp.o] Error 1 UNQUOTE

    the following is the #include fro M906.cpp

    QUOTE #include "../../../inc/MarlinConfig.h"

    #if HAS_FILAMENT_SENSOR

    #include "../../gcode.h" #include "../../../feature/runout.h" UNQUOTE

    The error message includes MarlinConfigPre.h but the m906.h file has MarlinConfig.h. Hoe is the "Pre" getting added and how do I prevent it.

    Bill Lynn

    opened by williamlynn 1
  • Support more Espressif boards

    Support more Espressif boards

    Feature Request for Custom Boards

    I've had issues trying to add a custom board. I followed the instructions for adding a custom board as best I could but I have doubts about some of what I put in.

    It would be really, really great if there were a tab or similar, accessible from PIO Home or the menu bar that brought up a Form that could populate a custom board json file. Additional helpful functionality would include:

    • Ability to load values from existing custom board jsons
    • Error checking in some form which could be extended based on usage patterns
    • Creating a location, if needed, for the file to be saved to and saving it there
    • Possibly connecting to repo of community made boards

    opened by ChrisJones79 0
  • WMI failures in getting local drive list show no indication of failure

    WMI failures in getting local drive list show no indication of failure

    What kind of issue is this?

    • [ ] Feature Request.

    When going to Devices->Logical, indicate an error in getting the drives list instead of being entirely blank.

    Similarly for when trying to start a new project or open an existing one. With WMI failing, unchecking "Use default location" loads an empty list under Devices, instead of indicating an error getting the device list.

    edit: This also occurs using CLI command "pio device list --logical". It just returns nothing instead of indicating an error parsing from wmic.


    Configuration

    VSCode in Windows 10, probably Windows in general:

    Description of problem

    WMI initialization issues cause "wmic logicaldisk get name,VolumeName" to return "invalid namespace" instead of the list of drives.

    A Windows problem for sure, but there's no indication from PIO what's actually going on.

    Steps to Reproduce

    1. Force Windows Update to break WMI?

    Additional info

    https://learn.microsoft.com/en-us/answers/questions/684166/failed-to-initialize-all-required-wmi-classes.html

    opened by foxtechnica 0
Releases(v6.1.5)
  • v6.1.5(Nov 1, 2022)

  • v6.1.4(Aug 12, 2022)

    • Added support for accepting the original FileNode environment in a "callback" function when using Build Middlewares (pull #4380)
    • Improved device port finder when using dual channel UART converter (issue #4367)
    • Improved project dependency resolving when using the pio project init --ide command
    • Upgraded build engine to the SCons 4.4.0 (release notes)
    • Keep custom "unwantedRecommendations" when generating projects for VSCode (issue #4383)
    • Do not resolve project dependencies for the cleanall target (issue #4344)
    • Warn about calling "env.BuildSources" in a POST-type script (issue #4385)
    • Fixed an issue when escaping macros/defines for IDE integration (issue #4360)
    • Fixed an issue when the "cleanall" target removes dependencies from all working environments (issue #4386)
    Source code(tar.gz)
    Source code(zip)
  • v6.1.3(Jul 18, 2022)

  • v6.1.2(Jul 18, 2022)

  • v6.1.1(Jul 11, 2022)

    • Added new monitor_encoding project configuration option to configure Device Monitor (issue #4350)
    • Allowed specifying project environments for pio ci command (issue #4347)
    • Show "TimeoutError" only in the verbose mode when can not find a serial port
    • Fixed an issue when a serial port was not automatically detected if the board has predefined HWIDs
    • Fixed an issue with endless scanning of project dependencies (issue #4349)
    • Fixed an issue with LDF when incompatible libraries were used for the working project environment with the missed framework (pull #4346)
    Source code(tar.gz)
    Source code(zip)
  • v6.1.0(Jul 6, 2022)

    • Device Manager

    • Unit Testing

      • Updated "Getting Started" documentation for GoogleTest testing and mocking framework
      • Export Unit Testing flags only to the project build environment (projenv, files in "src" folder)
      • Merged the "building" stage with "uploading" for the embedded target (issue #4307)
      • Do not resolve dependencies from the project "src" folder when the test_build_src option is not enabled
      • Do not immediately terminate a testing program when results are received
      • Fixed an issue when a custom pio test --project-config was not handled properly (issue #4299)
      • Fixed an issue when testing results were wrong in the verbose mode (issue #4336)
    • Build System

    • Package Management

      • Fixed an issue when library dependencies were installed for the incompatible project environment (issue #4338)
    • Miscellaneous

    Source code(tar.gz)
    Source code(zip)
  • v6.0.2(Jun 1, 2022)

    Source code(tar.gz)
    Source code(zip)
  • v6.0.1(May 17, 2022)

  • v6.0.0(May 16, 2022)

    A professional collaborative platform for declarative, safety-critical, and test-driven embedded development.

    Please check the Migration guide from 5.x to 6.0.

    Source code(tar.gz)
    Source code(zip)
  • v5.2.5(Feb 10, 2022)

    • Improved support for private packages in PlatformIO Registry
    • Improved checking of available Internet connection for IPv6-only workstations (pull #4151)
    • Better detecting of default PlatformIO project directory on Linux OS (pull #4158)
    • Respect disabling debugging server from "platformio.ini" passing an empty value to the debug_server option
    • Fixed a "module 'asyncio' has no attribute 'run'" error when launching PIO Home using Python 3.6 (issue #4169)
    Source code(tar.gz)
    Source code(zip)
  • v5.2.4(Dec 15, 2021)

    • Added support for a new headers field in library.json (declare a list of header files that can be included in a project source files using #include <...> directive)
    • Improved tab completion support for Bash, ZSH, and Fish shells (issue #4114)
    • Improved support for projects located on a network share (issue #3417, issue #3926, issue #4099)
    • Improved PIO Remote setup on credit-card sized computers (Raspberry Pi, BeagleBon, etc) (issue #3865)
    • Upgraded build engine to the SCons 4.3 (release notes)
    • Fixed an issue with the CLion project generator when a macro contains a space (issue #4102)
    • Fixed an issue with the NetBeans project generator when the path to PlatformIO contains a space (issue #4096)
    • Fixed an issue when the system environment variable does not override a project configuration option (issue #4125)
    • Fixed an issue when referencing *_dir option from a custom project configuration environment (issue #4110)
    • Fixed an issue with the CLion template that generated a broken CMake file if user's home directory contained an unescaped backslash (issue #4071)
    • Fixed an issue with wrong detecting Windows architecture when Python 32bit is used (issue #4134)
    Source code(tar.gz)
    Source code(zip)
  • v5.2.3(Nov 5, 2021)

    Source code(tar.gz)
    Source code(zip)
  • v5.2.2(Oct 20, 2021)

  • v5.2.1(Oct 11, 2021)

    • Clean a build environment and installed library dependencies using a new cleanall target (issue #4062)
    • Override a default library builder via a new builder field in a build group of library.json manifest (issue #3957)
    • Updated Cppcheck v2.6 with new checks, increased reliability of advanced addons (MISRA/CERT) and various improvements
    • Handle the "test" folder as a part of CLion project (issue #4005)
    • Improved handling of a library root based on "Conan" or "CMake" build systems (issue #3887)
    • Fixed a "KeyError: Invalid board option 'build.cpu'" when using a precompiled library with a board that does not have a CPU field in the manifest (issue #4056)
    • Fixed a "FileExist" error when the platformio ci command is used in pair with the --keep-build-dir option (issue #4011)
    • Fixed an issue with draft values of C++ language standards that broke static analysis via Cppcheck (issue #3944)
    Source code(tar.gz)
    Source code(zip)
  • v5.2.0(Sep 13, 2021)

    • PlatformIO Debugging

    • Package Management

      • Improved a package publishing process:

        • Show package details
        • Check for conflicting names in the PlatformIO Trusted Registry
        • Check for duplicates and used version
        • Validate package manifest
      • Added a new option --non-interactive to pio package publish command

    • Build System

      • Process "precompiled" and "ldflags" properties of the "library.properties" manifest (issue #3994)
      • Upgraded build engine to the SCons 4.2 (release notes)
      • Fixed an issue with broken binary file extension when a custom PROGNAME contains dot symbols (issue #3906)
      • Fixed an issue when PlatformIO archives a library that does not contain C/C++ source files (issue #4019)
    • Static Code Analysis

      • Updated analysis tools:

        • Clang-Tidy v12.0.1 with new modules and extended checks list
        • Cppcheck v2.5.0 with improved code analysis and MISRA improvements
        • PVS-Studio v7.14 with support for intermodular analysis, improved MISRA support and new diagnostics
    • Miscellaneous

      • Ensure that a serial port is ready before running unit tests on a remote target (issue #3742)
      • Fixed an error "Unknown development platform" when running unit tests on a clean machine (issue #3901)
      • Fixed an issue when "main.cpp" was generated for a new project for 8-bit development platforms (issue #3872)
    Source code(tar.gz)
    Source code(zip)
  • v5.1.1(Mar 17, 2021)

  • v5.1.0(Jan 28, 2021)

    • PlatformIO Home
      • Boosted PlatformIO Home performance thanks to migrating the codebase to the pure Python 3 Asynchronous I/O stack
      • Added a new --session-id option to pio home command that helps to keep PlatformIO Home isolated from other instances and protect from 3rd party access (issue #3397)
    • Build System
      • Upgraded build engine to the SCons 4.1 (release notes)
      • Refactored a workaround for a maximum command line character limitation (issue #3792)
      • Fixed an issue with Python 3.8+ on Windows when a network drive is used (issue #3417)
    • Package Management
      • New options for pio system prune command:
        • --dry-run option to show data that will be removed
        • --core-packages option to remove unnecessary core packages
        • --platform-packages option to remove unnecessary development platform packages (issue #923)
      • Added new check_prune_system_threshold setting
      • Disabled automatic removal of unnecessary development platform packages (issue #3708, issue #3770)
      • Fixed an issue when unnecessary packages were removed in update --dry-run mode (issue #3809)
      • Fixed a "ValueError: Invalid simple block" when uninstalling a package with a custom name and external source (issue #3816)
    • Debugging
      • Configure a custom debug adapter speed using a new debug_speed option (issue #3799)
      • Handle debugging server's "ready_pattern" in "stderr" output
    • Miscellaneous
    Source code(tar.gz)
    Source code(zip)
  • v5.0.4(Dec 30, 2020)

    • Added "Core" suffix when showing PlatformIO Core version using pio --version command
    • Improved .ccls configuration file for Emacs, Vim, and Sublime Text integrations
    • Updated analysis tools:
      • Cppcheck v2.3 with improved C++ parser and several new MISRA rules
      • PVS-Studio v7.11 with new diagnostics and updated mass suppression mechanism
    • Show a warning message about deprecated support for Python 2 and Python 3.5
    • Do not provide "intelliSenseMode" option when generating configuration for VSCode C/C++ extension
    • Fixed a "git-sh-setup: file not found" error when installing project dependencies from Git VCS (issue #3740)
    • Fixed an issue with package publishing on Windows when Unix permissions are not preserved (issue #3776)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.3(Nov 12, 2020)

    • Added an error selector for Sublime Text build runner (issue #3733)
    • Generate a working "projectEnvName" for PlatformIO IDE's debugger for VSCode
    • Force VSCode's intelliSenseMode to "gcc-x64" when GCC toolchain is used
    • Print ignored test suites and environments in the test summary report only in verbose mode (issue #3726)
    • Fixed an issue when the package manager tries to install a built-in library from the registry (issue #3662)
    • Fixed an issue when pio package pack ignores some folders (issue #3730)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.2(Oct 30, 2020)

    • Initialize a new project or update the existing passing working environment name and its options (issue #3686)
    • Automatically build PlatformIO Core extra Python dependencies on a host machine if they are missed in the registry (issue #3700)
    • Improved "core.call" RPC for PlatformIO Home (issue #3671)
    • Fixed a "PermissionError: [WinError 5]" on Windows when an external repository is used with lib_deps option (issue #3664)
    • Fixed a "KeyError: 'versions'" when dependency does not exist in the registry (issue #3666)
    • Fixed an issue with GCC linker when "native" dev-platform is used in pair with library dependencies (issue #3669)
    • Fixed an "AssertionError: ensure_dir_exists" when checking library updates from simultaneous subprocesses (issue #3677)
    • Fixed an issue when pio package publish command removes original archive after submitting to the registry (issue #3716)
    • Fixed an issue when multiple pio lib install command with the same local library results in duplicates in lib_deps (issue #3715)
    • Fixed an issue with a "wrong" timestamp in device monitor output using "time" filter (issue #3712)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.1(Sep 10, 2020)

    • Added support for "owner" requirement when declaring dependencies using library.json
    • Fixed an issue when using a custom git/ssh package with platform_packages option (issue #3624)
    • Fixed an issue with "ImportError: cannot import name '_get_backend' from 'cryptography.hazmat.backends'" when using Remote Development on RaspberryPi device (issue #3652)
    • Fixed an issue when pio package unpublish command crashes (issue #3660)
    • Fixed an issue when the package manager tries to install a built-in library from the registry (issue #3662)
    • Fixed an issue with incorrect value for C++ language standard in IDE projects when an in-progress language standard is used (issue #3653)
    • Fixed an issue with "Invalid simple block (semantic_version)" from library dependency that refs to an external source (repository, ZIP/Tar archives) (issue #3658)
    • Fixed an issue when can not remove update or remove external dev-platform using PlatformIO Home (issue #3663)
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Sep 3, 2020)

    Professional collaborative platform for embedded development

    Release Notes

    • Integration with the new PlatformIO Trusted Registry

      • Enterprise-grade package storage with high availability (multi replicas)

      • Secure, fast, and reliable global content delivery network (CDN)

      • Universal support for all packages:

        • Libraries
        • Development platforms
        • Toolchains
      • Built-in fine-grained access control (role-based, teams, organizations)

      • New CLI commands:

        • pio package – manage packages in the registry
        • pio access – manage package access for users, teams, and maintainers
    • Integration with the new Account Management System

    • New Package Management System

      • Integrated PlatformIO Core with the new PlatformIO Registry
      • Support for owner-based dependency declaration (resolves name conflicts) (issue #1824)
      • Automatically save dependencies to "platformio.ini" when installing using PlatformIO CLI (issue #2964)
      • Follow SemVer complaint version constraints when checking library updates issue #1281)
      • Dropped support for "packageRepositories" section in "platform.json" manifest (please publish packages directly to the registry)
    • Build System

    • Project Management

      • Added support for "globstar/**" (recursive) pattern for the different commands and configuration options (pio ci, src_filter, check_patterns, library.json > srcFilter). Python 3.5+ is required
      • Added a new -e, --environment option to pio project init command that helps to update a PlatformIO project using the existing environment
      • Dump build system data intended for IDE extensions/plugins using a new pio project data command
      • Do not generate ".travis.yml" for a new project, let the user have a choice
    • Unit Testing

      • Updated PIO Unit Testing support for Mbed framework and added compatibility with Mbed OS 6
      • Fixed an issue when running multiple test environments (issue #3523)
      • Fixed an issue when Unit Testing engine fails with a custom project configuration file (issue #3583)
    • Static Code Analysis

      • Updated analysis tools:

        • Cppcheck v2.1 with a new "soundy" analysis option and improved code parser
        • PVS-Studio v7.09 with a new file list analysis mode and an extended list of analysis diagnostics
      • Added Cppcheck package for ARM-based single-board computers (issue #3559)

      • Fixed an issue with PIO Check when a defect with a multiline error message is not reported in verbose mode (issue #3631)

    • Miscellaneous

    Source code(tar.gz)
    Source code(zip)
  • v4.3.4(May 23, 2020)

  • v4.3.3(Apr 28, 2020)

  • v4.3.2(Apr 28, 2020)

    • New Account Management System (preview)
    • Open source PIO Remote client
    • Improved PIO Check with more accurate project processing
    • Echo what is typed when send_on_enter device monitor filter is used (issue #3452)
    • Fixed PIO Unit Testing for Zephyr RTOS
    • Fixed UnicodeDecodeError on Windows when network drive (NAS) is used (issue #3417)
    • Fixed an issue when saving libraries in new project results in error "No option 'lib_deps' in section" (issue #3442)
    • Fixed an incorrect node path used for pattern matching when processing middleware nodes
    • Fixed an issue with missing lib_extra_dirs option in SRC_LIST for CLion (issue #3460)
    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(Mar 20, 2020)

    • Fixed a SyntaxError "'return' with argument inside generator" for PIO Unified Debugger when Python 2.7 is used
    • Fixed an issue when lib_archive = no was not honored in "platformio.ini"
    • Fixed a TypeError "super(type, obj): obj must be an instance or subtype of type" when device monitor is used with a custom dev-platform filter (issue #3431)
    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Mar 19, 2020)

    • Initial support for an official PlatformIO for CLion IDE plugin:

      • Smart C and C++ editor
      • Code refactoring
      • On-the-fly code analysis
      • "New PlatformIO Project" wizard
      • Building, Uploading, Testing
      • Integrated debugger (inline variable view, conditional breakpoints, expressions, watchpoints, peripheral registers, multi-thread support, etc.)
    • Device Monitor 2.0

      • Added PlatformIO Device Monitor Filter API (dev-platforms can extend base device monitor with a custom functionality, such as exception decoding) (pull #3383)
      • Configure project device monitor with monitor_filters option
      • Capture device monitor output to a file with log2file filter (issue #670)
      • Show a timestamp for each new line with time filter (issue #981)
      • Send a text to device on ENTER with send_on_enter filter (issue #926)
      • Show a hexadecimal representation of the data (code point of each character) with hexlify filter
    • New standalone (1-script) PlatformIO Core Installer

    • Initial support for Renode simulation framework (issue #3401)

    • Added support for Arm Mbed "module.json" dependencies field (issue #3400)

    • Improved support for Arduino "library.properties" depends field

    • Fixed an issue when quitting from PlatformIO IDE does not shutdown PIO Home server

    • Fixed an issue "the JSON object must be str, not 'bytes'" when PIO Home is used with Python 3.5 (issue #3396)

    • Fixed an issue when Python 2 does not keep encoding when converting ".ino" (issue #3393)

    • Fixed an issue when "libArchive": false in "library.json" does not work (issue #3403)

    • Fixed an issue when not all commands in compilation database "compile_commands.json" use absolute paths (pull #3415)

    • Fixed an issue when unknown transport is used for PIO Unit Testing engine (issue #3422)

    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Feb 17, 2020)

    • Improved VSCode template with special forceInclude field for direct includes via -include flag (issue #3379)
    • Improved support of PIO Home on card-sized PC (Raspberry Pi, etc.) (issue #3313)
    • Froze "marshmallow" dependency to 2.X for Python 2 (issue #3380)
    • Fixed "TypeError: unsupported operand type(s)" when system environment variable is used by project configuration parser (issue #3377)
    • Fixed an issue when Library Dependency Finder (LDF) ignores custom "libLDFMode" and "libCompatMode" options in library.json
    • Fixed an issue when generating of compilation database "compile_commands.json" does not work with Python 2.7 (issue #3378)
    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Feb 12, 2020)

    • PlatformIO Home 3.1:

    • PIO Check – automated code analysis without hassle:

      • Added support for PVS-Studio static code analyzer
    • Initial support for Project Manager CLI:

    • Generate compilation database "compile_commands.json" (issue #2990)

    • Control debug flags and optimization level with a new debug_build_flags option

    • Install a dev-platform with ALL declared packages using a new --with-all-packages option for pio platform install command (issue #3345)

    • Added support for "pythonPackages" in platform.json manifest (PlatformIO Package Manager will install dependent Python packages from PyPi registry automatically when dev-platform is installed)

    • Handle project configuration (monitor, test, and upload options) for PIO Remote commands (issue #2591)

    • Added support for Arduino's library.properties depends field (issue #2781)

    • Autodetect monitor port for boards with specified HWIDs (issue #3349)

    • Updated SCons tool to 3.1.2

    • Updated Unity tool to 2.5.0

    • Made package ManifestSchema compatible with marshmallow >= 3 (issue #3296)

    • Warn about broken library manifest when scanning dependencies (issue #3268)

    • Do not overwrite custom items in VSCode's "extensions.json" (issue #3374)

    • Fixed an issue when env.BoardConfig() does not work for custom boards in extra scripts of libraries (issue #3264)

    • Fixed an issue with "start-group/end-group" linker flags on Native development platform (issue #3282)

    • Fixed default PIO Unified Debugger configuration for J-Link probe

    • Fixed an issue with LDF when header files not found if "libdeps_dir" is within a subdirectory of "lib_extra_dirs" (issue #3311)

    • Fixed an issue "Import of non-existent variable 'projenv''" when development platform does not call "env.BuildProgram()" (issue #3315)

    • Fixed an issue when invalid CLI command does not return non-zero exit code

    • Fixed an issue when Project Inspector crashes when flash use > 100% (issue #3368)

    • Fixed a "UnicodeDecodeError" when listing built-in libraries on macOS with Python 2.7 (issue #3370)

    • Fixed an issue with improperly handled compiler flags with space symbols in VSCode template (issue #3364)

    • Fixed an issue when no error is raised if referred parameter (interpolation) is missing in a project configuration file (issue #3279)

    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Nov 7, 2019)

    • PIO Check – automated code analysis without hassle:
      • Potential NULL pointer dereferences
      • Possible indexing beyond array bounds
      • Suspicious assignments
      • Reads of potentially uninitialized objects
      • Unused variables or functions
      • Out of scope memory usage.
    • PlatformIO Home 3.0 and Project Inspection
      • Static Code Analysis
      • Firmware File Explorer
      • Firmware Memory Inspection
      • Firmware Sections & Symbols Viewer.
    • Added support for Build Middlewares: configure custom build flags per specific file, skip any build nodes from a framework, replace build file with another on-the-fly, etc.
    • Extend project environment configuration in "platformio.ini" with other sections using a new extends option (issue #2953)
    • Generate .ccls LSP file for Emacs cross references, hierarchies, completion and semantic highlighting
    • Added --no-ansi flag for PIO Core to disable ANSI control characters
    • Added --shutdown-timeout option to PIO Home Server
    • Fixed an issue with project generator for CLion IDE when 2 environments were used (issue #2824)
    • Fixed default PIO Unified Debugger configuration for J-Link probe
    • Fixed an issue when configuration file options partly ignored when using custom --project-conf (issue #3034)
    • Fixed an issue when installing a package using custom Git tag and submodules were not updated correctly (issue #3060)
    • Fixed an issue with linking process when $LDSCRIPT contains a space in path
    • Fixed security issue when extracting items from TAR archive (issue #2995)
    • Fixed an issue with project generator when src_build_flags were not respected (issue #3137)
    • Fixed an issue when booleans in "platformio.ini" are not parsed properly (issue #3022)
    • Fixed an issue with invalid encoding when generating project for Visual Studio (issue #3183)
    • Fixed an issue when Project Config Parser does not remove in-line comments when Python 3 is used (issue #3213)
    • Fixed an issue with a GCC Linter for PlatformIO IDE for Atom (issue #3218)
    Source code(tar.gz)
    Source code(zip)
Owner
PlatformIO
A professional collaborative platform for embedded development :alien:
PlatformIO
The official binary distribution format for Python

wheel This library is the reference implementation of the Python wheel packaging standard, as defined in PEP 427. It has two different roles: A setupt

Python Packaging Authority 368 Dec 23, 2022
The Meson Build System

Meson® is a project to create the best possible next-generation build system. Status Dependencies Python (version 3.6 or newer) Ninja (version 1.8.2 o

The Meson Build System 4.4k Jan 02, 2023
A pynt of Python build.

A pynt of Python build. Raghunandan Rao Features Easy to learn. Build tasks are just python funtions. Manages dependencies between tasks. Automaticall

Raghunandan Rao 154 Jan 04, 2023
Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo.

redo - a recursive build system Smaller, easier, more powerful, and more reliable than make. This is an implementation of Daniel J. Bernstein's redo b

1.7k Jan 04, 2023
Package, distribute, and update any app for Linux and IoT.

Snapcraft Package, distribute, and update any app for Linux and IoT. Snaps are containerised software packages that are simple to create and install.

1.1k Jan 02, 2023
bitbake tool

Bitbake ======= BitBake is a generic task execution engine that allows shell and Python tasks to be run efficiently and in parallel while working wit

openembedded 336 Dec 27, 2022
The Pants Build System

Pants Build System Pants is a scalable build system for monorepos: codebases containing multiple projects, often using multiple programming languages

Pants Build 2.5k Jan 07, 2023
Python-based continuous integration testing framework; your pull requests are more than welcome!

Buildbot The Continuous Integration Framework Buildbot is based on original work from Brian Warner, and currently maintained by the Botherders. Visit

Buildbot 5k Jan 05, 2023
Python program for installing many tools automatically

Tool Installer is a script made with python which help user in installing tools automatically

Spider Anongreyhat 6 Mar 13, 2022
the blessed package to manage your versions by scm tags

setuptools_scm setuptools_scm handles managing your Python package versions in SCM metadata instead of declaring them as the version argument or in a

Python Packaging Authority 671 Jan 08, 2023
Pythonic task management & command execution.

Welcome to Invoke! Invoke is a Python (2.7 and 3.4+) library for managing shell-oriented subprocesses and organizing executable Python code into CLI-i

3.8k Jan 06, 2023
Python-based project scripting.

Paver - Easy Scripting for Software Projects Web: https://pythonhosted.org/Paver/ Download: https://pypi.python.org/pypi/Paver/ Source: https://github

Paver community 452 Dec 09, 2022
Utilities for interacting with PyPI

twine Twine is a utility for publishing Python packages on PyPI. It provides build system independent uploads of source and binary distribution artifa

Python Packaging Authority 1.4k Jan 05, 2023
Buildout is a deployment automation tool written in and extended with Python

Buildout Buildout is a project designed to solve 2 problems: Application-centric assembly and deployment Assembly runs the gamut from stitching togeth

buildout 552 Nov 26, 2022
PlatformIO is a professional collaborative platform for embedded development :alien: A place where Developers and Teams have true Freedom! No more vendor lock-in!

PlatformIO Quick Links: Web | PlatformIO IDE | Project Examples | Docs | Donate | Contact Us Social: LinkedIn | Twitter | Facebook | Community Forums

PlatformIO 6.5k Jan 08, 2023
This is a simple tool for bootstrapping Chimera systems from binaries. For source builds, you want cports.

chimera-bootstrap This is a simple tool for bootstrapping Chimera systems from binaries. For source builds, you want cports. Simple usage: $ # run as

Chimera Linux 7 Feb 11, 2022
SCons - a software construction tool

SCons - a software construction tool Welcome to the SCons development tree. The real purpose of this tree is to package SCons for production distribut

SCons Project 1.6k Jan 03, 2023
Program for convert py & js file to exe

Converter JS & PY to Exe Converter Coded by Lamp Requirements : Node.js Python How to Use : Install latest python Dont forget to add path Install node

5 Oct 04, 2021
Ninja is a small build system with a focus on speed.

Ninja Ninja is a small build system with a focus on speed. https://ninja-build.org/ See the manual or doc/manual.asciidoc included in the distribution

8.9k Dec 30, 2022
A small clone of GNU Make based on file checksums

Pyke This weekend project is a small clone (most of the code is in a single file of just about 200LoC) of GNU Make with the twist that it rebuilds a t

Antonio De Lucreziis 3 Nov 24, 2021