Skip to content
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. Best IDE to use for MySensors projects
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

Best IDE to use for MySensors projects

Scheduled Pinned Locked Moved Development
atmel studioeclipsedebugvisualmicroide
48 Posts 16 Posters 22.1k Views 18 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S smilvert

    @ivankravets Thanks a lot!! :)

    Now I think that it works with the latest commit on github->dev-branch.
    I will try it to night and if I got time I will publish my node code/building structure as well.

    Here was my platformio.ini file that I tested with:

    [env:pro8MHzatmega328]
    platform = atmelavr
    framework = arduino
    board = pro8MHzatmega328
    build_flags = -I/(PATH_TO_MYSENSORS_GITHUB)/libraries/MySensors
    lib_ignore = MySensors
    
    
    I Offline
    I Offline
    ivankravets
    wrote on last edited by
    #16

    @smilvert we have an issue Handle specific extra build flags from library.json which should resolve your problems. In this case, you will need to skip *.cpp/*.c files from building process using library.json.

    Regards Ivan,
    The PlatformIO Team

    1 Reply Last reply
    0
    • S smilvert

      @ivankravets Thanks a lot!! :)

      Now I think that it works with the latest commit on github->dev-branch.
      I will try it to night and if I got time I will publish my node code/building structure as well.

      Here was my platformio.ini file that I tested with:

      [env:pro8MHzatmega328]
      platform = atmelavr
      framework = arduino
      board = pro8MHzatmega328
      build_flags = -I/(PATH_TO_MYSENSORS_GITHUB)/libraries/MySensors
      lib_ignore = MySensors
      
      
      I Offline
      I Offline
      ivankravets
      wrote on last edited by ivankravets
      #17

      Related issue https://github.com/platformio/platformio/issues/331

      @smilvert I've just re--tested without lib_ignore option and it works! Please don't place MySensors library to the lib directory.

      platformio.ini

      [env:uno]
      platform = atmelavr
      framework = arduino
      board = uno
      src_build_flags = -I/Users/ikravets/Downloads/Arduino-development/libraries/MySensors
      

      Project

      ➜  /  tree /tmp/111
      /tmp/111
      ├── lib
      │   └── readme.txt
      ├── platformio.ini
      └── src
          └── GatewaySerial.ino
      
      2 directories, 3 files
      

      Terminal

      (develop)➜  origin git:(develop) ✗ platformio run -d /tmp/111
      [Fri Nov 27 19:38:03 2015] Processing uno (src_build_flags: -I/Users/ikravets/Downloads/Arduino-development/libraries/MySensors, platform: atmelavr, board: uno, framework: arduino)
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------
      avr-g++ -o .pioenvs/uno/src/tmp_ino_to.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -DPLATFORMIO=020306 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant -I.pioenvs/uno/SPI -I/Users/ikravets/Downloads/Arduino-development/libraries/MySensors src/tmp_ino_to.cpp
      avr-ar rcs .pioenvs/uno/libFrameworkArduinoVariant.a
      avr-ranlib .pioenvs/uno/libFrameworkArduinoVariant.a
      avr-g++ -o .pioenvs/uno/FrameworkArduino/CDC.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/CDC.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/HardwareSerial.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/HardwareSerial.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/HardwareSerial0.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/HardwareSerial0.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/HardwareSerial1.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/HardwareSerial1.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/HardwareSerial2.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/HardwareSerial2.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/HardwareSerial3.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/HardwareSerial3.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/IPAddress.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/IPAddress.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/PluggableUSB.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/PluggableUSB.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/Print.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/Print.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/Stream.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/Stream.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/Tone.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/Tone.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/USBCore.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/USBCore.cpp
      avr-gcc -o .pioenvs/uno/FrameworkArduino/WInterrupts.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/WInterrupts.c
      avr-g++ -o .pioenvs/uno/FrameworkArduino/WMath.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/WMath.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/WString.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/WString.cpp
      avr-gcc -x assembler-with-cpp -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant -c -o .pioenvs/uno/FrameworkArduino/_wiring_pulse.o .pioenvs/uno/FrameworkArduino/_wiring_pulse.S
      avr-g++ -o .pioenvs/uno/FrameworkArduino/abi.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/abi.cpp
      avr-gcc -o .pioenvs/uno/FrameworkArduino/hooks.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/hooks.c
      avr-g++ -o .pioenvs/uno/FrameworkArduino/main.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/main.cpp
      avr-g++ -o .pioenvs/uno/FrameworkArduino/new.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/new.cpp
      avr-gcc -o .pioenvs/uno/FrameworkArduino/wiring.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/wiring.c
      avr-gcc -o .pioenvs/uno/FrameworkArduino/wiring_analog.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/wiring_analog.c
      avr-gcc -o .pioenvs/uno/FrameworkArduino/wiring_digital.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/wiring_digital.c
      avr-gcc -o .pioenvs/uno/FrameworkArduino/wiring_pulse.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/wiring_pulse.c
      avr-gcc -o .pioenvs/uno/FrameworkArduino/wiring_shift.o -c -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant .pioenvs/uno/FrameworkArduino/wiring_shift.c
      avr-ar rcs .pioenvs/uno/libFrameworkArduino.a .pioenvs/uno/FrameworkArduino/CDC.o .pioenvs/uno/FrameworkArduino/HardwareSerial.o .pioenvs/uno/FrameworkArduino/HardwareSerial0.o .pioenvs/uno/FrameworkArduino/HardwareSerial1.o .pioenvs/uno/FrameworkArduino/HardwareSerial2.o .pioenvs/uno/FrameworkArduino/HardwareSerial3.o .pioenvs/uno/FrameworkArduino/IPAddress.o .pioenvs/uno/FrameworkArduino/PluggableUSB.o .pioenvs/uno/FrameworkArduino/Print.o .pioenvs/uno/FrameworkArduino/Stream.o .pioenvs/uno/FrameworkArduino/Tone.o .pioenvs/uno/FrameworkArduino/USBCore.o .pioenvs/uno/FrameworkArduino/WInterrupts.o .pioenvs/uno/FrameworkArduino/WMath.o .pioenvs/uno/FrameworkArduino/WString.o .pioenvs/uno/FrameworkArduino/_wiring_pulse.o .pioenvs/uno/FrameworkArduino/abi.o .pioenvs/uno/FrameworkArduino/hooks.o .pioenvs/uno/FrameworkArduino/main.o .pioenvs/uno/FrameworkArduino/new.o .pioenvs/uno/FrameworkArduino/wiring.o .pioenvs/uno/FrameworkArduino/wiring_analog.o .pioenvs/uno/FrameworkArduino/wiring_digital.o .pioenvs/uno/FrameworkArduino/wiring_pulse.o .pioenvs/uno/FrameworkArduino/wiring_shift.o
      avr-ranlib .pioenvs/uno/libFrameworkArduino.a
      avr-g++ -o .pioenvs/uno/SPI/SPI.o -c -fno-exceptions -fno-threadsafe-statics -g -Os -Wall -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_ARCH_AVR -DARDUINO_AVR_UNO -DARDUINO=10606 -I.pioenvs/uno/FrameworkArduino -I.pioenvs/uno/FrameworkArduinoVariant -I.pioenvs/uno/SPI .pioenvs/uno/SPI/SPI.cpp
      avr-ar rcs .pioenvs/uno/libSPI.a .pioenvs/uno/SPI/SPI.o
      avr-ranlib .pioenvs/uno/libSPI.a
      avr-g++ -o .pioenvs/uno/firmware.elf -Os -mmcu=atmega328p -Wl,--gc-sections,--relax .pioenvs/uno/src/tmp_ino_to.o -L.pioenvs/uno -Wl,--start-group -lm .pioenvs/uno/libFrameworkArduinoVariant.a .pioenvs/uno/libFrameworkArduino.a .pioenvs/uno/libSPI.a -Wl,--end-group
      avr-objcopy -O ihex -R .eeprom .pioenvs/uno/firmware.elf .pioenvs/uno/firmware.hex
      "avr-size" --mcu=atmega328p -C -d .pioenvs/uno/firmware.elf
      AVR Memory Usage
      ----------------
      Device: atmega328p
      
      Program:   13988 bytes (42.7% Full)
      (.text + .data + .bootloader)
      
      Data:        697 bytes (34.0% Full)
      (.data + .bss + .noinit)
      

      Regards Ivan,
      The PlatformIO Team

      1 Reply Last reply
      0
      • lrtsenarL Offline
        lrtsenarL Offline
        lrtsenar
        wrote on last edited by
        #18

        Hi,

        I use Source Insight. Sure it's not free but it's a full featured tools never equaled (like Visual Assist plug in for Visual Studio).

        1 Reply Last reply
        0
        • barduinoB Offline
          barduinoB Offline
          barduino
          wrote on last edited by
          #19

          HI

          I've been trying vs code

          It has GIT integration, Arduino file format and some auto complete.

          vs_code_A.png

          It is also capable of verifying and uploading the sketch

          vs_code_b.png

          Cheers

          1 Reply Last reply
          1
          • axillentA Offline
            axillentA Offline
            axillent
            Mod
            wrote on last edited by
            #20

            atmel added arduino support to their latest atmel studio v7
            not tested yet, but it should be also an option

            sense and drive

            1 Reply Last reply
            0
            • marceltrapmanM Offline
              marceltrapmanM Offline
              marceltrapman
              Mod
              wrote on last edited by
              #21

              I've (very) recently moved from Eclipse to IntelliJ for my Java and PyCharm for my Python development.
              I am really happy and have a subscription for the whole IDE ecosystem from JetBrains.

              With that comes CLion which also has an Arduino Plugin.
              I have not tried using it yet but it looks good.
              And CLion also works with PlatformIO (http://docs.platformio.org/en/latest/ide/clion.html)

              Fulltime Servoy Developer
              Parttime Moderator MySensors board

              I use Domoticz as controller for Z-Wave and MySensors (previously Indigo and OpenHAB).
              I have a FABtotum to print cases.

              1 Reply Last reply
              0
              • Daniel OliveiraD Offline
                Daniel OliveiraD Offline
                Daniel Oliveira
                wrote on last edited by
                #22

                Hello,

                @smilvert I would like to know if you succeed using PlatformIO.

                Thank you

                MySensors rules my home :)

                I 1 Reply Last reply
                0
                • hekH Online
                  hekH Online
                  hek
                  Admin
                  wrote on last edited by
                  #23

                  MySensors is on plaformio, so I guess it should work.

                  http://platformio.org/lib/show/548/MySensors

                  1 Reply Last reply
                  0
                  • Daniel OliveiraD Daniel Oliveira

                    Hello,

                    @smilvert I would like to know if you succeed using PlatformIO.

                    Thank you

                    I Offline
                    I Offline
                    ivankravets
                    wrote on last edited by ivankravets
                    #24

                    @Daniel-Oliveira We have some problems with previous PlatformIO 2.0 Build System and MySensor Library structure. All these issues are resolved in PlatformIO 3.0 where are introduced new build system and library manager with support for 3-rd party manifests (Arduino's library.properties, ARM mbed module.json).

                    PlatformIO 3.0 has not been finally released. We released the first public alpha version. How to use it?

                    1. Install PlatformIO IDE or PlatformIO CLI and switch it to development version.
                    2. Menu: PlatformIO > Initialize new project
                    3. Open platformio.ini project configuration files (will be created in the project)
                    4. Specify project dependencies. See docs for lib_deps option.
                    5. Press build/upload button.

                    For example, the final project configuration file for the Arduino Uno will look like:

                    [env:uno]
                    platform = atmelavr
                    framework = arduino
                    board = uno
                    lib_deps = MySensors
                    

                    You can also specify Semantic Versioning rules and depend on the specific version or range of versions. For example, lib_deps = MySensors@~2.0.1-beta means that any version of 2.0.x (including beta and higher) is allowed for your project.

                    Regards Ivan,
                    The PlatformIO Team

                    tbowmoT 1 Reply Last reply
                    3
                    • hekH Online
                      hekH Online
                      hek
                      Admin
                      wrote on last edited by
                      #25

                      @ivankravets

                      You've done a great job on plaformio :thumbsup: , finally a decent library manager with dependency handling.

                      I 1 Reply Last reply
                      1
                      • I ivankravets

                        @Daniel-Oliveira We have some problems with previous PlatformIO 2.0 Build System and MySensor Library structure. All these issues are resolved in PlatformIO 3.0 where are introduced new build system and library manager with support for 3-rd party manifests (Arduino's library.properties, ARM mbed module.json).

                        PlatformIO 3.0 has not been finally released. We released the first public alpha version. How to use it?

                        1. Install PlatformIO IDE or PlatformIO CLI and switch it to development version.
                        2. Menu: PlatformIO > Initialize new project
                        3. Open platformio.ini project configuration files (will be created in the project)
                        4. Specify project dependencies. See docs for lib_deps option.
                        5. Press build/upload button.

                        For example, the final project configuration file for the Arduino Uno will look like:

                        [env:uno]
                        platform = atmelavr
                        framework = arduino
                        board = uno
                        lib_deps = MySensors
                        

                        You can also specify Semantic Versioning rules and depend on the specific version or range of versions. For example, lib_deps = MySensors@~2.0.1-beta means that any version of 2.0.x (including beta and higher) is allowed for your project.

                        tbowmoT Offline
                        tbowmoT Offline
                        tbowmo
                        Admin
                        wrote on last edited by
                        #26

                        @ivankravets

                        Great work.. One question, is it possible to install your own hardware profiles? For example for the Sensebender Micro, or the new Gateway device I'm working on?

                        I 1 Reply Last reply
                        1
                        • hekH hek

                          @ivankravets

                          You've done a great job on plaformio :thumbsup: , finally a decent library manager with dependency handling.

                          I Offline
                          I Offline
                          ivankravets
                          wrote on last edited by
                          #27

                          @hek thanks a lot for the feedback :+1:

                          Regards Ivan,
                          The PlatformIO Team

                          1 Reply Last reply
                          0
                          • tbowmoT tbowmo

                            @ivankravets

                            Great work.. One question, is it possible to install your own hardware profiles? For example for the Sensebender Micro, or the new Gateway device I'm working on?

                            I Offline
                            I Offline
                            ivankravets
                            wrote on last edited by ivankravets
                            #28

                            @tbowmo Sure, it is possible in PlatformIO 2.0 too. However, we don't recommend to make integration with it. PlatformIO 2.0 has not been changed since 2014 year. It was as hobby/experimental project.

                            PlatformIO 3.0 is a new PlatformIO where all hardware related parts were moved to separated repositories. PlatformIO 3.0 is closer to open source. You don't need to contact with The PlatformIO Team (as you need to do it with PlatformIO 2.0) because you can create own development platform, clone existing or just add an own board to the existing development platform. Feel free to make PR and we will merge it.

                            We will create "Development Platforms Registry" later. It will 3-rd party developers to register own development platforms and hardware in the public registry.

                            The core idea of PlatformIO 3.0 is to provide professional cross-platform build system without dependencies with powerful library manager. It will allow others developers/companies to create awesome software basing on PlatformIO Tools.

                            P.S: Here is docs (beta) how to create development platform or integrate custom embedded board: http://docs.platformio.org/en/latest/platforms/custom_platform_and_board.html

                            Regards Ivan,
                            The PlatformIO Team

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              stedew
                              wrote on last edited by
                              #29

                              Hello Mr Kravets,
                              Can you give a hint/short explanation why Mysensors 2.0 Compiles ok in the upgraded version (the development branch). I can understand its maybe one off your internal secrets but i think that it can be benificial for others. I love a lot one off the "concurrent" IDE (Arduino Eclipse) and the (for my case) Problem is that it doesn't compile Mysensors 2.0. I assume with my limited knowledge and observations off the compiler errors the problems there are related..
                              -I Also tested the build and it took severall attempt to get it compiling. Unfotunatly i cannot reproduce it (Windows usr ;-) ) I had to fiddle severall times in the PATH var and settings and restart the IDE ....

                              Anyway I hope that Arduino ide sees one day the Light and gets some inspiration on a project like this or even better start co-operating....
                              Good work !!!

                              I 1 Reply Last reply
                              0
                              • S stedew

                                Hello Mr Kravets,
                                Can you give a hint/short explanation why Mysensors 2.0 Compiles ok in the upgraded version (the development branch). I can understand its maybe one off your internal secrets but i think that it can be benificial for others. I love a lot one off the "concurrent" IDE (Arduino Eclipse) and the (for my case) Problem is that it doesn't compile Mysensors 2.0. I assume with my limited knowledge and observations off the compiler errors the problems there are related..
                                -I Also tested the build and it took severall attempt to get it compiling. Unfotunatly i cannot reproduce it (Windows usr ;-) ) I had to fiddle severall times in the PATH var and settings and restart the IDE ....

                                Anyway I hope that Arduino ide sees one day the Light and gets some inspiration on a project like this or even better start co-operating....
                                Good work !!!

                                I Offline
                                I Offline
                                ivankravets
                                wrote on last edited by
                                #30

                                @stedew said:

                                Can you give a hint/short explanation why Mysensors 2.0 Compiles ok in the upgraded version (the development branch). I can understand its maybe one off your internal secrets but i think that it can be benificial for others.

                                This is not a secret. PlatformIO 2.0 doesn't support 3-rd party library manifests. These different manifests are suitable for the own builders. For example, Arduino IDE builder has own behaviour. If library doesn't contain src folder, then it will build only source files from the root of library (other folders are ignored). If src directory exists, then only the source code from src should be built. The another story is with ARM mbed compiler.

                                PlatformIO 3.0 is an unique cross-platform ecosystem that replaces all builders above and allows you to build different project in the same manner. We wrote different extensions for PlatformIO 3.0 Build System that allow handling 3-rd party manifests and "configure" build system on-the-fly. What is more, we don't depend on Arduino IDE, Java or ARM mbed yotta. PlatformIO is written in pure Python and doesn't depend on OS software. The only 1 requirement is Python interpreter (that is installed everywhere except Windows).

                                -I Also tested the build and it took severall attempt to get it compiling. Unfotunatly i cannot reproduce it (Windows usr ;-) ) I had to fiddle severall times in the PATH var and settings and restart the IDE ....

                                Could you explain in details? Thanks.

                                Regards Ivan,
                                The PlatformIO Team

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  stedew
                                  wrote on last edited by
                                  #31

                                  Hmm tnx for the clarification
                                  I have a small party here (Wife birthday) so I will try to reproduce it later.
                                  Otherwise the automatic script Divorse now will start...
                                  regards,
                                  Stefan.

                                  I 1 Reply Last reply
                                  0
                                  • S stedew

                                    Hmm tnx for the clarification
                                    I have a small party here (Wife birthday) so I will try to reproduce it later.
                                    Otherwise the automatic script Divorse now will start...
                                    regards,
                                    Stefan.

                                    I Offline
                                    I Offline
                                    ivankravets
                                    wrote on last edited by
                                    #32

                                    @stedew my congrats for your wife :blush: :bouquet: :birthday:

                                    Regards Ivan,
                                    The PlatformIO Team

                                    S 1 Reply Last reply
                                    0
                                    • tbowmoT Offline
                                      tbowmoT Offline
                                      tbowmo
                                      Admin
                                      wrote on last edited by tbowmo
                                      #33

                                      @ivankravets

                                      One more question about the framework..

                                      Right now, we only have a very minimal hardware definition setup for the Sensebender Micro / Gateway boards, and rely on arduino to have installed their board files for the mcu architecture that we are using (for example, by choosing SenseBender GW, SAMD board, you also need to have arduino zero installed as a target in Arduino IDE, to get arduino core files)

                                      Can we do the same in platformio? Or do we need to include the complete arduino samd framework in our mysensors hw repositories, to be able to build in platform.io?

                                      I 1 Reply Last reply
                                      0
                                      • tbowmoT tbowmo

                                        @ivankravets

                                        One more question about the framework..

                                        Right now, we only have a very minimal hardware definition setup for the Sensebender Micro / Gateway boards, and rely on arduino to have installed their board files for the mcu architecture that we are using (for example, by choosing SenseBender GW, SAMD board, you also need to have arduino zero installed as a target in Arduino IDE, to get arduino core files)

                                        Can we do the same in platformio? Or do we need to include the complete arduino samd framework in our mysensors hw repositories, to be able to build in platform.io?

                                        I Offline
                                        I Offline
                                        ivankravets
                                        wrote on last edited by
                                        #34

                                        @tbowmo said:

                                        There is no problem to add your custom board to existing development platform. What MCU is used in the board?
                                        See existing SAM/SAMD manifests https://github.com/platformio/platform-atmelsam/tree/develop/boards

                                        In PlatformIO you have to specify platform type for the build environment in platformio.ini. board and framework options are optional. You don't need to keep framework/SDK code within library. Development platform depends on it. See

                                        See project examples:

                                        • https://github.com/platformio/platformio-examples

                                        Regards Ivan,
                                        The PlatformIO Team

                                        1 Reply Last reply
                                        0
                                        • I Offline
                                          I Offline
                                          ivankravets
                                          wrote on last edited by ivankravets
                                          #35

                                          @hek , @tbowmo would you like to integrate you project with Travis CI and PlatformIO? See example. The config for this example is very simple.

                                          Here is documentation for multiple continuous integration systems. If you want, I can prepare PR for you. It will allow you to test examples or unit tests over more than 250+ embedded boards without additional steps.

                                          Regards Ivan,
                                          The PlatformIO Team

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          18

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular