I have made as much of this plugin (all the arduino stuff) a separate api and have ensured that all the Arduino/Project settings are not tied to any Visual Studio settings. So actually it could work with any IDE in the future.
Although Atmel Studio lacks a lot of the nice features of normal Visual Studio systems it isn't that far away in terms of what it might do for us. Much of the user interface provided by the plugin would probably work "as is" with Atmel Studio it might only be the areas that modify VS CPP properties (to detect Arduino sources and set board properties) that would need to change. This is an easy change because VS 2008 and VS 2010 use different CPP systems so the code is already conditional in this area. However with the proper support from Atmel we could really tap this stuff into their IDE and integrate it fully.
The problem is that Atmel are not a proactive company and their developer support is poor. I only have a few questions for them and have approached them a number of times. Each time I have been promised that developer support is planned for some future time. Not very helpful! I am sure I could work it out by myself but time is the limiting factor.
If anyone would like to help with the understanding of the Atmel side of things I would be more than happy to give it a go sooner rather than later.
So far, this project has cost a lot of time and money which makes it difficult to justify the addtional time for Atmel studio right now. For obvious reasons there is no support for this project from Arduino or Microsoft This is why the new Arduino debugger tool is not going to be free (but is free and in beta at the moment). I hope the revenue from the debugger funds the time and provides the motivation to make this plugin work with Atmel Studio.
The example I tested, it does compile correctly. BUT, it produces so many warnings it looks like a bad error. but is not
message.h : Warning: only initialized variables can be placed into program memory area message.h : Warning: only initialized variables can be placed into program memory area parsetools.h : pBuf will be initialized after nStage parsetools.h : arLenCntdn will be initialized after arLen confdescparser.h : : In member function 'void ConfigDescParser<CLASS_ID, SUBCLASS_ID, PROTOCOL_ID, MASK>::PrintHidDescriptor(const USB_HID_DESCRIPTOR*)': confdescparser.h : Warning: only initialized variables can be placed into program memory area confdescparser.h : Warning: only initialized variables can be placed into program memory area confdescparser.h : Warning: only initialized variables can be placed into program memory area .. .. .. Compile OK
NB: You will see the same output in the Arduino IDE if you switch on "ArduinoIDE>File>Preferences>Verbose". So this library is best used without these settings in both Visual Studio and the Arduino IDE
As you know the problem with Visual Studio Pro is that it's only free for the first 3 years and it is not open source. So it is very nice, easy to use and customize but will always be for a smaller community.
It would be really great to find a simple to install and well featured Eclipse system that we could all contribute to. I'll be watching with interest at both your solution and the Arduino Plugin for Eclipse
It would be great if we found an easy to use but powerful open source alternative. Eclipse is a great candidate but always seems to be focused on the less Arduino side of things. Really great for real experts but can be difficult/cumbersome for others.
Is this really Arduino or AVR?
Does your suggestion support multiple pde/ino files and handle the associated Arduino pre-processing?
Does it read the same configuration as the Arduino IDE to establish the locations of new board definitions, cores and variants or does this info have to be entered manually for each project/board that we create (or download from the web)
Can it, without modifications, work with all existing Arduino 1.x open source projects from the web?
What about user installed libraries in the sketch folder? Can it find them easily?
Making the IDE work better for you by adding your own quick access Arduino tool bars, buttons, menus and shortcut keys to automate the various Arduino IDE functions can be a lot of fun.
The Visual Studio Plugin automatically provides every Arduino command, serial port, board and programmer as standard Macros that can be used to customize or automate the IDE.
An example might be adding a button that burns a bootloader or uploads using a certain ISP/Serial port to a particular Arduino Board. Any single Arduino command or combination of commands can be assigned to buttons, menus and keys
The Arduino plugin for Microsoft Visual Studio provides 100% compatibility with the Arduino IDE, is very easy to install, very solid and reliable to use and is designed for both new Arduino users and experts. This plugin removes all of the complexities of using a professional development tool, it makes Arduino development very easy!
This thread will be used to make a number of exciting new feature announcements over the coming weeks. You can read reviews from all types of users on the web, a collection of reviews from our forum members can be found here
A short summary of some distinguishing features is shown below, many features are currently unique to this plugin:-
Simple install, just enter the location to an arduino.exe
Supports ALL Arduino projects
Switch Arduino board without configuration changes
Supports multiple pde/ino (arduino sources) files per sketch (same as the Arduino IDE)
Compiles projects that contains multiple pde/ino sources in the correct order
Immediate and automatic update of intellisense at all times. (eg: add library, switch board, add method to .pde/cpp etc..)
Ultra fast compilation. The Arduino IDE has started to adopt some of our speed improvment ideas. Cool!
Provides double click drill down from compiler errors into all source code (multiple .pde/ino, libraries)
Compiles exactly the same way as the Arduino IDE. Ensures projects adhere to the same rules as the Arduino IDE.
Full help and examples system (more than the Arduino IDE)
Supports additional non-arduino cores (same as the Arduino IDE)
Additional option to clone an Arduino example or open a single example source code
Automatically provides examples for all libraries (where available)
Optionally toggle visibility of Arduino libraries in each project (for easy edit and/or learning)
Automatic project creation and detection of Arduino sketch files
Automatic validation of sketch projects each time they are opened
Multiple Arduino projects per solution
Supports both usb and programmer (isp) upload
Option for a unique and fully integrated breakpoint debugger. No additional hardware required.
Well documented with a professional forum. Please join
The plugin works only with Microsoft Visual Studio Professional and above which can be obtained free for 3 years from here
The unique debugger option is currently being beta tested by approx. 250 users. Join our forum and request a free copy!
The plugin is free and works with Visual Studio 2008,2010 and 2012. Visual Studio 2012 is recommended because it opens very quickly, it opens faster than the Arduino IDE!