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.
  • axillentA Offline
    axillentA Offline
    axillent
    Mod
    wrote on last edited by
    #1

    The idea of this topic is to have a discussion on a best way of doing MS projects
    Sure the basic one is to use "native" arduino IDE
    This is very common, very simple and cross platform solution

    Major disadvantage is poor editor - missing suggestions, missing substitutions, error highlighting, online error checking etc. most of modern helpful things you will find in other IDE
    If you will try atmel development studio v6 (based on microsoft visual studio) for example you will find arduino IDE very ugly and less efficient while programming and debugging

    so, atmel studio is the next one, Both arduino and atmel studio are using AVR-GCC toolchain. The toolchain is a set of files and tools for you to compile your C/C++ and to create HEX binary ready to be uploaded to MCU.
    But there is a significant difference. The difference between atmel studio and arduino is on how things are running during project build.
    Mostly this related to a special arduino hardware configuration, there all required arduino board attributes are defined.
    this makes use of atmel studio directly for arduino builds very complicated.
    The most easiest way is to integrate arduino build subsystem using a plugin visualmicro (can be downloaded from visulmicro.com)
    You can apply visualmicro to Microsoft VS or to atmel DS. I'm also used to develop plain AVR projects, so for me there is a reason to apply visual micro to atmel studio. Plugin itself is free of charge. You can pay a fee for so called USB debugger. It is some kind of software debugger. I've tried and actually did not find it useful, but may be you will.
    The benefit of visual micro is compatibility with "native" IDE. You can switch between this two at any time without braking your project.
    Comparing to arduino IDE you are getting the following advantages:

    • modern C++ editor with online error checking, substitutions and suggestions
    • more convenient serial monitor (it is not disappeared while uploading)
    • native support of original atmel AVR ISP
    • USB debugger (free for a limited period)
    • simple way to change arduino project home folder
    • limited support of version control (not tested by me)
      the biggest disadvantage is a single platform, only windows is supported

    With visualmicro your sketch will be still not compatible with plain AVR but you will get a single IDE for both.
    I'm using visual micro for a while and finding it very useful
    I'm running it on native windows and on my macbook pro through parallels

    I also have a sufficient experience to run native atmel debugger with arduino sketch
    but this way is not that convenient

    the next one I see is eclipse. there is a new arduino plugin http://playground.arduino.cc/Code/Eclipse
    not tried yet, but looking for this
    eclipse is more advanced for C++ development than visual studio
    and also it supports much more platforms (hosting and target)
    if you have an experience please share

    sense and drive

    b0rmannB 1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by
      #2

      The Sublime text editor with Stino plugin is also an option.

      http://www.sublimetext.com/
      https://github.com/Robot-Will/Stino

      1 Reply Last reply
      0
      • D Offline
        D Offline
        Dirk_H
        Contest Winner
        wrote on last edited by
        #3

        @axillent
        do you know anything how debugging in Eclipse with Arduino is supported?
        I find major disadvantage of Visual Studio with Arduino/Visualmicro is that "real" HW-debugging through JTAG/1Wire is not possible easily. I'm not sure if this is really that complicated or if visulmicro just wants to sell their SW debugging tool.

        axillentA 1 Reply Last reply
        0
        • D Dirk_H

          @axillent
          do you know anything how debugging in Eclipse with Arduino is supported?
          I find major disadvantage of Visual Studio with Arduino/Visualmicro is that "real" HW-debugging through JTAG/1Wire is not possible easily. I'm not sure if this is really that complicated or if visulmicro just wants to sell their SW debugging tool.

          axillentA Offline
          axillentA Offline
          axillent
          Mod
          wrote on last edited by
          #4

          @Dirk_H the problem came not from visualmicro, it came from arduino
          atmel studio need proper ELF file for the debugging
          to debug arduino you will need to create a separate atmel studio DEBUG project
          I use a second instance of studio for this

          the only none convenient thing here is that on each build you will have to choose right locations of the source files before launching debugging

          sense and drive

          1 Reply Last reply
          0
          • YveauxY Offline
            YveauxY Offline
            Yveaux
            Mod
            wrote on last edited by
            #5

            I recently bumped into PlatformIO.
            Seems like a very powerful build system for various hardware platforms.
            Frees a user from having to install a build system and libraries by hand.
            Does not include an editor, but I think this is a good thing as everyone has his own preferred editor, right?
            Anyone have experience with it?

            http://yveaux.blogspot.nl

            rb3rgR 1 Reply Last reply
            0
            • TD22057T Offline
              TD22057T Offline
              TD22057
              Hardware Contributor
              wrote on last edited by
              #6

              I normally use xemacs at work so I've been using that at home. I just tried Sublime and it looks really nice... right up until I read that they want $70 for a license. I'm not sure I want to invest in switching editors to something that probably won't be free in the future. Eclipse almost seems ideal but the learning curve is really steep. And it seems to want to "own" the project and I'd rather just have something that sits on top of the file/build structure I choose.

              I'm at the point now where I'm ditching the Arduino IDE for building code. There doesn't seem to be any way to handle external libraries, my personal libraries, etc. well in that at all so I'm going to start looking at alternate build systems.

              This also ties into what is a good, general source code directory structure for Arduino projects. I'd like to hear what other people are using as a good way to handle dependencies which include:

              1. Arduino libaries
              2. 3rd party libraries
              3. MySensors libraries (which is really just an example of 2)
              4. My personal libraries
              5. Sketches (main programs)

              I'm trying to figure out the best structure for these such that a build system can find them and they can each be kept up to date individually using git/github. Things like should each of my personal libraries be a separate git repository? What if they have intra-dependencies, or dependencies on other libraries? Same with sketches - separate repositories? One giant repository? I've started reading about git submodules which might be a solution.

              1 Reply Last reply
              0
              • axillentA axillent

                The idea of this topic is to have a discussion on a best way of doing MS projects
                Sure the basic one is to use "native" arduino IDE
                This is very common, very simple and cross platform solution

                Major disadvantage is poor editor - missing suggestions, missing substitutions, error highlighting, online error checking etc. most of modern helpful things you will find in other IDE
                If you will try atmel development studio v6 (based on microsoft visual studio) for example you will find arduino IDE very ugly and less efficient while programming and debugging

                so, atmel studio is the next one, Both arduino and atmel studio are using AVR-GCC toolchain. The toolchain is a set of files and tools for you to compile your C/C++ and to create HEX binary ready to be uploaded to MCU.
                But there is a significant difference. The difference between atmel studio and arduino is on how things are running during project build.
                Mostly this related to a special arduino hardware configuration, there all required arduino board attributes are defined.
                this makes use of atmel studio directly for arduino builds very complicated.
                The most easiest way is to integrate arduino build subsystem using a plugin visualmicro (can be downloaded from visulmicro.com)
                You can apply visualmicro to Microsoft VS or to atmel DS. I'm also used to develop plain AVR projects, so for me there is a reason to apply visual micro to atmel studio. Plugin itself is free of charge. You can pay a fee for so called USB debugger. It is some kind of software debugger. I've tried and actually did not find it useful, but may be you will.
                The benefit of visual micro is compatibility with "native" IDE. You can switch between this two at any time without braking your project.
                Comparing to arduino IDE you are getting the following advantages:

                • modern C++ editor with online error checking, substitutions and suggestions
                • more convenient serial monitor (it is not disappeared while uploading)
                • native support of original atmel AVR ISP
                • USB debugger (free for a limited period)
                • simple way to change arduino project home folder
                • limited support of version control (not tested by me)
                  the biggest disadvantage is a single platform, only windows is supported

                With visualmicro your sketch will be still not compatible with plain AVR but you will get a single IDE for both.
                I'm using visual micro for a while and finding it very useful
                I'm running it on native windows and on my macbook pro through parallels

                I also have a sufficient experience to run native atmel debugger with arduino sketch
                but this way is not that convenient

                the next one I see is eclipse. there is a new arduino plugin http://playground.arduino.cc/Code/Eclipse
                not tried yet, but looking for this
                eclipse is more advanced for C++ development than visual studio
                and also it supports much more platforms (hosting and target)
                if you have an experience please share

                b0rmannB Offline
                b0rmannB Offline
                b0rmann
                wrote on last edited by
                #7

                @axillent the best ide is vim + Arduino-Makefile

                1 Reply Last reply
                0
                • TD22057T Offline
                  TD22057T Offline
                  TD22057
                  Hardware Contributor
                  wrote on last edited by
                  #8

                  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.

                  YveauxY I 2 Replies Last reply
                  0
                  • TD22057T TD22057

                    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.

                    YveauxY Offline
                    YveauxY Offline
                    Yveaux
                    Mod
                    wrote on last edited by
                    #9

                    @TD22057 said:

                    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.

                    Seems like I got stuck at the same problems as you and also decided to ditch it.
                    I experimented in the past with Arduino-Makefile, which worked fine at that time, but was not working on Windows (which is my main dev platform)

                    http://yveaux.blogspot.nl

                    1 Reply Last reply
                    0
                    • TD22057T Offline
                      TD22057T Offline
                      TD22057
                      Hardware Contributor
                      wrote on last edited by
                      #10

                      My "normal" job is large scale C++ development so I'm thinking more long term in how I want my code structured - especially when I come back to this in 5 years and can't remember what I was doing.. I tend to think of "library" as something I can build once and put somewhere. It took me a little while to realize that that doesn't work well when you're changing boads, etc so in Arduino land, "library" means directory with some source code. Even so, I feel like the IDE's/build systems I've tried assume that I'll either put the source code for something all in one directory or that I'll only ever have one library with a given name.

                      I've got my own versions of Switch, Led, Timer, etc libraries now and I'm sure there are 1000's of Arduino libraries with those same names available. So I want something where I can use directories to identify which library I actually mean (#include "TD/Timer.h") and tags/labels in my CM system to identify which version of that library I actually deployed. If anyone has a better suggestion for handling this, feel free to chime in. I think my problem is that the Arduino build systems I've tried assume a very flat library directory structure which I don't want. I want a nested directory structure where I can keep all the libraries I've found useful and then select which one I want via include path.

                      I'll probably try Arduino-makefile and Arduino-cmake next. FYI @Yveaux, I think Arduino-makefile will work on windows, buy you need cygwin. I'll probably try that first since I'm used to Makefile's and already have cygwin installed.

                      FYI I've temporarily given up on SublimeText because it was taking forever to get the indentation style I want in my code defined. That's one thing that is incredibly easy in Eclipse. And it doesn't parse gcc output so you can't jump to errors after a compile step. So back to emacs for me...

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        smilvert
                        wrote on last edited by smilvert
                        #11

                        Interesting discussion!

                        Has just started to try to create some nodes, but find it difficult to put up a decent environment.
                        When I test platformio who want to have the following structure:

                        MyNode
                        ├── lib
                        │ ├── DHT -> /my_arduino_libs/DHT
                        │ └── MySensor -> /my_arduino_libs/MySensor
                        ├── platformio.ini (config file That specifies the platform and settings)
                        └── src
                            └── MyNode.ino
                        
                        

                        Platformio makes it very easy to build on different platforms, but from version 1.6 of mysensors works platformio bad. It can be solved with a lot of #ifdef but is not easy.

                        Also tested with (Have steal it from the jenkins-server :) )

                        Arduino --verify -v --board Arduino: AVR pro --pref build.f_cpu = 8000000 --pref build.mcu = ATMEGA328P --pref compiler.warning_level = all --pref sketchbook.path = libraries/mysensors MyNode/MyNode.ino
                        

                        but then it becomes very inflexible. (Has built a small bashscript for this)

                        How do you others to keep track of your code and to build in a smooth way with a nice IDE?

                        1 Reply Last reply
                        0
                        • TD22057T TD22057

                          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.

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

                          @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, *.S files. If this behaviour isn't good for your project, then you can control it via http://docs.platformio.org/en/latest/projectconf.html#src-filter

                          I 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 are What 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)

                          http://www.ikravets.com

                          Regards Ivan,
                          The PlatformIO Team

                          1 Reply Last reply
                          1
                          • S Offline
                            S Offline
                            smilvert
                            wrote on last edited by smilvert
                            #13

                            @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
                            
                            
                            YveauxY I 3 Replies Last reply
                            1
                            • 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
                              
                              
                              YveauxY Offline
                              YveauxY Offline
                              Yveaux
                              Mod
                              wrote on last edited by
                              #14

                              @smilvert I'd be very interested in a short howto, once you succeed!

                              http://yveaux.blogspot.nl

                              1 Reply Last reply
                              1
                              • S Offline
                                S Offline
                                smilvert
                                wrote on last edited by
                                #15

                                @Yveaux I just uploaded the first version on github but currently I lacks sensors so I haven't verify the build_script but it seams to work in the console.

                                (I should also add a howto when I get time :) )

                                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
                                  #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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          8

                                          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