A power tools license boosts an existing installation of the free "Arduino for Visual Studio" plugin to provide exceptional debug and communication tools. Power tools ensures that your arduino code is clean and free of all debug and diagostics code allowing simpler project development.

Breakpoint management will be provided as part of the power tools pack. Below is a glimpse of how the "Break Point Manager" will be configured. Users may define a list of standard or intelligent breakpoints.

In Arduino terms we might not actually be "breaking" at a breakpoint (optional but not recommended) but, instead, we use breakpoints to allow program flow, variable comparison, variable change reports etc. and status window(s) updates. In short, we get to automatically see what an Arduino is doing just by clicking lines of source code to add breakpoints.

Visual Micro Power Tools for Visual Studio is due to be released in March 2012. I think the power tools should cost $29 and will provide a range of features not available in the Arduino IDE or in any other Arduino development tool/plugin. The price should be reviewed based on feed back once a document describing all of the features of the power pack is released.

Some features

Debug output uses specified serial ports of choice. Automatic messages can be configured, variable outputs at breakpoint locations can be returned to a "watch" monitor.

Execution trace window shows what your arduino is doing and much more.

Carefully considered breakpoints can also be used to automatically open and highlite the line of running source code in almost real-time.

Execution trace window shows what your arduino is doing and much more.

Custom code injection at any break point (auto added during complation)

How

When a debug session starts a secondary high speed background "debug" compile is performed adding efficient C++ serial breakpoint reporting to a temporary copy of the current sketch code. Other code such as break point comparisons and hit counters are also added automatically (program space allowing).

Summary

The debug tools alone are a great way to see what your arduino program is doing without users having to add any messy debug code!

The Visual Studio addin is free, it provides all of the Arduino IDE features and much more. The power tools are not required to program and upload to an Arduino using Visual Studio. The revenue generated by the power tools will fund development of the free plugin.

Interesting facts about Visual Studio BreakpointsExisting Visual Studio plugin users not familiar with Visual Studio breakpoints can start to learn and think about Breakpoints/Debugging right now. The breakpoint features of the new debug tools rely on the standard Visual Studio breakpoint features. So open the Visual Studio Breakpoint window using "Debug>Windows>Breakpoints" and add a few breakpoints to your Arduino sketch. Right mouse click a breakpoint in visual studio to set conditions/hit counters etc. Breakpoints will be retained by Visual Studio until you clear them but you can also export/import breakpoints using the tool bar on the breakpoints window. The import/export of breakpoints provides other quite exciting possibilities!

Add breakpoints to any line of code and optionaly set a range of properties that enable conditional return of information to the Visual Studio debug listener. This solution removes the need to add debug code to arduino source files and works seemlessly alongside normal serial transmissions.

There are many features that will be documented shortly, but a crude example of some features is pictured below. It is not the best screen shot, the trace doesn't reflect the serial viewer because the view is scrolled for the example

In the example the sketch has "i" as an accumlated sum of Serial.bytesAvailable() and millis() being used both conditionally and as data passed back to Visual Studio. A snippet of arduino code can be entered as a condition or a simple variable (as shown above).

The example shows that some breakpoints are configured to show messages that include {variables} $specialFields allowing quite complex messages to be created very easily.

The variables in the "Variables" window are automatically deduced from the {variables} defined in breakpoint "When Hit". If only {variables} are entered into the "When hit" then no message is produced but we still see an update to the variables window. The number of times a variable has been hit is also recorded. Nb: The variables window will be extended to include details of the function the variable relates to.

Summary

Variables and/or messages are optionally sent from the arduino simply by altering the properties of each breakpoint. Code comparison/conditions and hit counter measurement are an example of features that enable us to control the frequency of individual debugger updates. Only the variable data is sent from the arduino, all other message text is outputed by Visual Studio.

A standalone version of the debugger and serial tools will also be released but later this year. The standalone version will be a simple application that allows arduino projects to be compiled in debug or release modes and to enable breakpoints to be configured. This means that the debug tools will be available to use alongside other arduino IDEs. There is no reason why the tool will not be "mono" compatible, allowing other non-windows platforms to benefit

This arduino debug solution is simple enough to operate over wireless such as xbee and can be used in conjunction with wired (or wireless) arduino programming

The Arduino debugger has been in beta for the past few days and so far user feed back has been very good. A release version will be available within the next 14 days. The debugger now supports HardwareSerial, SoftwareSerial and FastSerial (Arduplilot/Arducopter)

This is a link to 15 initial tutorials showing some of the Arduino Debugger features

The video was produced without a script or trial run but is a live working example . It does not do justice to the many useful Arduino features of Visual Studio. The next video will show how intellisense automatically appears when pressing the "." after "Serial.", will also show features such as "Find all references", how to place breakpoints in C/CPP files, how to use the Break/Pause and Continue, how to debug a huge program such as ArduPilot without changing a single line of code, and more...

The Arduino debug tool has many features so we start with a very basic overview aimed at new arduino users. The page requires HTML5 aware browsers such as IE9, Chrome, Safari etc.

The debugger will be an upgrade to the free arduino plugin for visual studio which is already available.

The debugger appears to be working well, the final beta will be out in a few days so the full release is only a week or two away (time permitting)

The debugger is currently with the beta testers, anyone can apply to beta test. If you are interested, please register for the forum via visualmicro.com. Include a note requesting access to the beta in your forum application and download/install the latest version of the plugin.

If you do not have a copy of microsoft visual studio professional you might find this free microsoft offer of interest.

Hi, Yes it is available in beta. The only thing stopping the launch is documentation. The project has grown slightly and now includes open source debugger visualizations, memory usage graphs, digital, analog and i2c reporting.

Currently about 50 people have emailed to join the beta program. Feel free to join, the more testers the better, it seems quite mature now so it isn't really a raw unworking beta

Register for forum at http://www.visualmicro.com and include a request to beta test the debugger. If you don't have Microsoft Visual Studio then here is how to get a legal copy for free

Read more about the open source arduino visualizations. Below you can see working analog and digital real-time views optionally provided by the debugger and also a custom C# "graphical gauge" which is supplied as a part finished control example (ready for you to configure as required).