Best IDE to use for MySensors projects
-
I spent part of this afternoon trying sublime text + platformio. What a pain in the a$$. The problem with all these "auto" systems is that when they break, they don't tell you enough to figure out how to fix it. I can't get platformio to include a custom include path and it's not obvious how it's managing build directories so I can't even get it to find include files that seem like they should be visible.
I guess I'm going to try stino, Arduino-Makefile, or Arduino-cmake with sublimetext next.
@TD22057 thanks a lot for your feedback. If you have any problems with software (including open-source), don't forget to report them to developers.
I'm a founder of PlatformIO and will try to answer on the all questions.
I can't get platformio to include a custom include path and it's not obvious how it's managing build directories
See documentation for it http://docs.platformio.org/en/latest/projectconf.html#build-flags
The problem with all these "auto" systems is that when they break, they don't tell you enough to figure out how to fix it.
The default behaviour of PlatformIO's builder is to build all
*.c, *.cpp, *.Sfiles. If this behaviour isn't good for your project, then you can control it via http://docs.platformio.org/en/latest/projectconf.html#src-filterI understand that developers like to "adopt" own source code (libraries) for the specified builder and then claim other builders that they
What a pain in the a$. If someone like car which works using petrol, then it doesn't mean that people who use diesel cars areWhat a pain in the a$.
I've just added to PlatformIO FAQ the answer for question Can not compile a library that compiles without issue with Arduino IDE.
P.S: Friends, we spent our spare time to improve this embedded world. Our users don't understand that we do it totally FOR FREE and share all efforts via OPEN-SOURCE. Let's respect each other.
Regards, Ivan Kravets
- Ph.D, Researcher and Software Architect
- "Creativity comes from talent and never from knowledge" (c)
-
@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 -
@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 -
@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@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/*.cfiles from building process using library.json. -
@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 = MySensorsRelated issue https://github.com/platformio/platformio/issues/331
@smilvert I've just re--tested without
lib_ignoreoption and it works! Please don't placeMySensorslibrary to thelibdirectory.platformio.ini[env:uno] platform = atmelavr framework = arduino board = uno src_build_flags = -I/Users/ikravets/Downloads/Arduino-development/libraries/MySensorsProject➜ / tree /tmp/111 /tmp/111 ├── lib │ └── readme.txt ├── platformio.ini └── src └── GatewaySerial.ino 2 directories, 3 filesTerminal(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) -
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) -
-
@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 mbedmodule.json).PlatformIO 3.0 has not been finally released. We released the first public alpha version. How to use it?
- Install PlatformIO IDE or PlatformIO CLI and switch it to development version.
Menu: PlatformIO > Initialize new project- Open
platformio.iniproject configuration files (will be created in the project) - Specify project dependencies. See docs for lib_deps option.
- 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 = MySensorsYou can also specify Semantic Versioning rules and depend on the specific version or range of versions. For example,
lib_deps = MySensors@~2.0.1-betameans that any version of2.0.x(including beta and higher) is allowed for your project. -
@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 mbedmodule.json).PlatformIO 3.0 has not been finally released. We released the first public alpha version. How to use it?
- Install PlatformIO IDE or PlatformIO CLI and switch it to development version.
Menu: PlatformIO > Initialize new project- Open
platformio.iniproject configuration files (will be created in the project) - Specify project dependencies. See docs for lib_deps option.
- 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 = MySensorsYou can also specify Semantic Versioning rules and depend on the specific version or range of versions. For example,
lib_deps = MySensors@~2.0.1-betameans that any version of2.0.x(including beta and higher) is allowed for your project. -
You've done a great job on plaformio :thumbsup: , finally a decent library manager with dependency handling.
@hek thanks a lot for the feedback :+1:
-
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?
@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
-
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 !!! -
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 !!!@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
srcfolder, then it will build only source files from the root of library (other folders are ignored). Ifsrcdirectory exists, then only the source code fromsrcshould 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.

