Arduino for Visual Studio - Release Notes

This is an accumlative list of fixes and additions to the Visual Micro Arduino IDE for Visual Studio and Atmel Studio. The latest release includes many new features such as memory usage reporting and an Arduino educational reference center.,

Please download the visual micro plugin on the downloads page

notes: Upgrading from Arduino 1.6.5 and below? Please run Arduino 1.6.6+ once after install and update your hardware definitions as prompted.

Todo: 1) Implement ctags to better position prototype insertion point. (add them manually if an issue for you). 2) Fix: Local libarary automatic include discovery fails.

Known Bug: After installing new hardware in the board manager, the Rescan button needs to be clicked twice (or the ide restarted). New hardware will not show as available until that happens (sometimes crashes will be fixed asap).

Release 1610.04  - 4th October 2016 - Visual Studio

  • Fix: Serial window might not restart after re-open until connect button was re-checked
  • Compiler cache is cleared when switching between debug and release
  • Hide the many debugger compiler errors when a genuine code error causes compile to fail
  • Improvements to the serial window for both free and paid users
  • All files from the project folder and its sub directories are copied to the temp build folder regardless of inclusion in the solution explorer/project. This avoids confusion for users who are new to Visual Studio and do not realize that source code must be "included" in the project/solution. It is a half-way-house between arduino and visual studio allowing header files to be found more easily. NOTE: Only files included in the solution/project are compiled. Arduino normally supports only one sub folder chain called \src but Visual Micro supports multiple but only when sources are included in the solution explorer.

Release 1609.20  - 20th September 2016 - Visual Studio

  • Fix: Leonardo/native usb upload failed in last release (detected boot on new usb port but did not use it for upload)

Release 1609.18  - 18th September 2016 - Visual Studio

  • Fix: Ignore tools within board packages that had only partially been removed. In previous releases the tools folder below the users\...\arduino15\packages could cause compiler confusion if the tools folder remained
  • Support inherited bootloader commands (such as atmel xplained)
  • Improved verbose messages during burn bootloader

Release 1609.17  - 17th September 2016 - Visual Studio

  • Fix: Esp8266 OTA configuration via local project board.txt without Bonjour failed to upload (assumed serial instead of network)
  • Board.txt now reliably overrides the build and upload comands
  • serial.port= override via board.txt (useful for ip address without help from apple bonjour)
  • Ip addresses used to upload, that have not been discovered by Apple Bonjour, will appear in the Serial Ports list for the remainder of the current session.

Release 1609.15  - 15th September 2016 - Visual Studio

  • Minor intellisense update for SAMD boards

Release 1609.9  - 9th September 2016 - Visual Studio

  • Support Visual Studio Gdb using project_name.cpp or .ino files (when using .cpp a prject_name.ino must still exist in the project but it can be empty)
  • Reminder: When using a project_name.cpp libraries should be included in the usual Arduino way! #include <Mylib.h> without path qualifier. Same applies to #includes with other .cpp files within the project.
  • New menu item when a board is configured for gdb debug - "vMicro>Debugger>Microsoft GDB Debugger". When the menu item is checked gdb will start when debug is requested. When the menu item is unchecked the visual micro debugger will start unless the "Release" configuration (see documentation for variations)
  • Stm32 Nucleo St Link - Gdb debug tested.
  • NOTE: To use the Stm32 Nucleo with the Visual Micro software debugger the TX (optionally RX) pins from the board need to be connected to the pc via usb using ftdi or ano adapter. This is because the nucleo Serial is not connected to the usb socket on the board. Without the connection the board will appear to hang if/when it reaches debugger breakpoints. Ensure the Visual Studio configuration on the tool bar is set to Release or use the default Microsoft GDB/ST Link debugger

Release 1609.04 Sp2 - 4th September 2016 - Visual Studio and Atmel Studio 7

  • The recent changes to support importing of libraries caused a number of issues with library resolution which are now fixed.
  • Toggle Hidden Files had also suffered from the changes and is now working correctly.
  • This is an important release in terms of stabalization of changes from arduino 1.6.11, atmel studio (affects VS) and new functionality surrounding the use of .cpp instead of .ino files
  • Note about arduino 1.6.11. It seems to be deleting the package_index.json from the contributions folder at times. This causes compiler errors with tools failing to be resolved. You can repair the issues by opening the visual micro board manager (via the Visual Micro Explorer) and click the Rescan button (sometimes twice).
  • Recommended update for all users.

Outstanding items

1) Compiler cache is recompiling too often 2) Platforms with any ToolDependancies (such as as Adafruit Trinket which uses the latest Arduino 1.6.11 core, its own variants and requires a later gcc) resolve to the wrong gcc tool (version) depending on what other hardware is installed. 3) Deleting previously compiled code without remiving #includes. The objects files are still found by the compiler until a "Clean" or "Rebuild" event occurs. Can be confusing and will be fixed asap 4)The issue will only affect certain installations but could surface after using the arduino or visual micro board manager to install new hardware. 
3) There will be a minor update later this week with these issues resolved and it is hoped we are then back onto a stable release. 

Release 1609.04 - 3rd September 2016 - Visual Studio 

  • Very important fixes for Arduino 1.6.11 in relation to loading and download the package_index.json for downloaded hardware discovery.
  • The 1.6.11 issues were prone to cause a variety of confusing compiler issues. Furthermore after opening and closing the arduino ide different issues could arise. Uggh!
  • Toggle Hidden Files, Compiler Warnings etc all moved to the free version but with a random nag screen to purchase. (feedback welcome, it's a fine line to walk)
  • Resolve issues compiling local libraries
  • Resolve issues resolving compiler include paths in certain situations
  • Resolved a VM_DBG.h include error that would cause compiler errors in certain configurations
  • Resolved issues using the "Toggle Hidden Files" command
  • Improved compiler auto detection of changed files.
  • Reinstate - Automatically add .ino (and project_name.cpp if it exists) to sketches when using the "visual micro file>open>arduino project" command (can be disabled in the options)
  • Some important overall fixes for issues that have crept in during the past months of high volume Arduino and Visual Micro IDE changes.
  • Menu visibility improvements. Some menus items such as "Publish Server Data" appeared even if a board without wifi support (such as esp8266, yun) was being used.

Stable Release 1609.02 - 2nd September 2016 - Visual Studio and Atmel Studio

  • Resolve issues that caused the compiler to attempt to compile files that has been moved around or removed. Mainly affected single project solutions. Required ide restart in some cases.
  • Added support visual micro serial debug when using a project_name.cpp instead of .ino files
  • Fix: Failed to import when importing Arduino v2 format libraries (causes compiler errors)
  • Auto detect v2 format Arduino libraries that are missing a file
  • Fix: deep search libraries-in-libraries failed in local project libraries
  • Automatically use temp build folder if building .ino files or if using the visual micro serial debugger. Otherwise compile project sources directly from the project.
  • Local libraries now fully working

Release 1609.01 - 1st September 2016 - Atmel Studio

  • Support [project_name].cpp as an alternative to .ino files. NOTE: A project_name.ino MUST still exist in the project folder and project. The ino can be empty and is ignored by the compiler when a project_name.cpp exists in the project. Visual Micro requires the project_name.ino to determine the project is an Arduino project.
  • When using a project_name.cpp instead of .ino files, the build is performed on the live project sources instead of a copy in the temporary folder. The compiler include paths will contain the path of the project folder instead of the path of the temp build folder. by popuar request :)
  • To make use of the "vMicro>Debugger>Use Atmel Studio Debugger" facility it is hightly recommended that a project_name.cpp is used instead of .ino files. The Atmel debuger doesn't work well with projects that contain .ino source code and will display code from the temp folder during a debug "step/break" operation which is highly confusing for users.
  • When using a "project_name.cpp", all the arduino build rules remain in place. Libraries must be #included using the standard Arduino #include <lib.h> syntax (no qualified paths). 
  • When using a "project_name.ino", the "Add Library" facility will add demo #includes to the "project_name.ino". The #includes are ignored because the .ino is ignored, however it is useful to see the correct #include syntax for each library which can be copied into .cpp files as required.
  • Support new Arduino property called "includes". The "includes" property enables library developers to control which headers are #included when the "Add Code>Add Library" command is used.
  • When using a project_name.cpp it must serve the most basic of arduino code for the project to compile correctly. 1) #include "Arduino.h" 2) void setup() {} 3) void loop() {}. The setup() and loop() must have prototypes. To find a "ready made" project_name.cpp with the correct code for the current Arduino project switch on "vMicro>Compiler>Show Build Folder" then build. The build output will contain a link to the build folder and in the folder will be a project_name.cpp. Copy the project_name.cpp into the current project and the .ino files will no longer be used during builds.

Release 1608.31 - 31st August 2016 - Visual Studio

  • The core variant objects are no longer archived into a core.a, instead are passed as .o files to the linker before the core.a
  • Compiler - Library source modification always uses .d dependancy scanning and more relianbly detects changes to #included headers
  • Serial more robustly uses the DTR and RTS settings even when testing to see if a port is busy/available or not. The usb driver of the WICD stm32 board hangs if this doesn't happen. The WICED board needs DTR and RTS ON
  • Serial Monitor open/close more resiliant (feedback in forum appreciated)
  • General compiler cache improvements
  • Toggle Hidden Files now includes all variant files (previously just showed headers)
  • Honour libraryproperties.includes to determine which headers are added when using "Add LIbrary"
  • Fixed issues that caused board settings such as defines to fail to refresh when switching between configurations such as Debug/Release
  • Reintroduced new version dialog notification for major updates (if check for new releases has not been disabled)
  • Tested with various STM32 boards such as Adafruit WICED
Release 29th August 2016 - Visual Studio Versions and Atmel Studio 7
  • Debug in Atmel Studio using JTAG, Segger, ICE. All Atmel debuggers and the avr simulator are supported
  • AS7 > New menu item "vMicro>Debugger>Atmel Studio Debugging". Launch Atmel Debugger after upload instead of the Visual Micro debugger.
  • Important fixes for Arduino 1.6.11
  • Resolve compile error for Arduino default avr definitions since 1.6.10.
  • Single project solutions over cached the upload port making it difficult to change to a different port or IP and upload again.
  • Serial Monitor cleaner close/stop debug
  • Added new application called Energia 1.6 compatible with the latest Energia IDE which is based on Arduino 1.6.10. The Energia 1.6 option has its own Boards Manager and Library Manager accessible via the Visual Micro platform explorer.
  • Delete the relevant arduino15\packages\package_name_.json when removing hardware from the Board Manager.
  • Add board to Recent Boards List when selecting via the "Micro Explorer>Installed" list
  • Ignore and continue to load if uninstalled downloaded hardware had not been fully removed
  • File>Open>Arduino Project automatically adds any cpp\c\h\s sources from the src folder. Recently Arduino finalized support for code in sub folders within the [project]\src folder so it makes sense for Visual Micro to automatically add the code if it exists. Some new users reported that Visual Micro did not appear to work with code in sub folders therefore this change should make it more oabious how this is done and allow the sketch to compile without having to include the sources manually into the project.
  • NOTE: The Arduino IDE no longer supports code in sub foldesr except as described above using the \src folder. Visual Micro compiles the files included in each project (via the solution explorer right click) regardless of which folder they exist in. Visual Micro also reads short cuts to code outside of the current project if the code has been included in the project (see best practise in docs for mroe info). Therefore, Visual Micro users decide if a project will remain comatible with the Arduino IDE by the location of source code. We recommend staying within the Arduino guidelines.

Release (1608.25) - 25th Auguest 2016 - Visual Studio

  • Support for libraries below additional cores (WiringIDE)

Release (1608.24) - 24th Auguest 2016 - Visual Studio

  • Fix: Wiring Ide compile failed in recent builds
  • Support serial/usb debug for the Wiring Ide
  • Add compiler support for the WIRING constant. The value is set to the Ide version similar to the ARDUINO constant. Both constants are defined allowing a single source code to be be compiled for either platform:- 
  • Code:
    #if defined(WIRING) && (WIRING >= 100)
    #include "Wiring.h"
    #elif defined(ARDUINO) && (ARDUINO >= 100)
    #include "Arduino.h"
    #include "WProgram.h"

Release (1608.18) - 18th Auguest 2016 - Visual Studio

  • Detection of old and new Arduino library format has been changed to cater for 3 types: 1) Libraries without without treated as old style 2) libraries with library properties but no \src folder treated as old style 3) Libaries with and with \src folder treated as new style. With new style libaries, the \src folder and recursive \src\sub folders are candidates for compilation. With old style libraries, the files directly in the library folder and optional \utility sub folder are compiled. Hopefully this caters for people who have really old arduino libraries as well as newer libraries.
  • Automatic Gdb support for Energia > LaunchPad (Tiva C) w/ tm4c123 (80MHz)
  • Automatic Gdb support for Energia > LaunchPad (Tiva C) w/ tm4c129 (120MHz)
  • Automatic Gdb support for Energia > LaunchPad (Stellaris) w/ lm4f120 (80MHz)
  • Local project board.txt support for override of openOCD cfg script:- build.openocdscript=board/[cfg file name].cfg
  • Tested with Energia IDE v0017

Release (1608.14 Sp4) - 14th Auguest 2016 - Visual Studio

  • Improved compiler warning and error output. (full error display, line numbers show in any errors that can be drilled into ++)
  • Improved verbose output so that core, lib, project, link, final output stages are clearer.
  • Prevent Arduino Mkr1000 and Arduino Zero/M0 on NativeUSB from attemtping GDB debug. They now default to using the USB debugger. (Override with debug.tool=)
  • Arduino Due Support - Live Free Memory viewer (previously failed for SAM boards). The SAM free memory calculation is a combination of static, dynamic, stack.
  • Removed setting of build include paths and object files environment variables. Unused and cause a build error if the lengths are too long for windows env vars. (ArduPilot build error
  • Debugger "Gauge visualization example" failed to load since move to .net4.5.1. Attempting to use would show an error each time the debugegr started and it wasn't possible to switch ot off again!

Release (1608.1) - 11th Auguest 2016 - Visual Studio

  • Support {program.verify} when uploading using a programmer. This was a new arduino property released about 8 weeks ago that was over looked. Newer toolchain and bard defintions might have failed to upload with error.
  • Fix creation of new projects in VS 2012 and 2013 on compauter that have never had VS2015 installed.  (Using .vcxproj ToolsVersion="4.0")

Release (1607.31) - 31st July 2016 - Visual Studio

  • Fix debugger visualizations broke since update to .net 4/4.5
  • Fix - Digital Pins Live View
  • Fix - Analog Pins Live View
  • Fix - Free Memory Live View

Release (1607.25) - 25th July 2016 - Visual Studio

  • Fix: Arduino 1.0 upload for sketch projects that use the .pde file extension
  • The "Board List" on menu and tool bars shows the name/description of the platform. User installed sketchbook/hardware platforms also show the source location relative to the hardware folder. The board names are tabbed below the platform names for easier reading.
  • Board list shows recently used boards at the top. The list and max list item count can be overridden in tools>options>visual micro>mc general
  • Gdb is now automatically provided in any visual micro project if the Android Tools for Visual Studio are installed and a Gdb capable board is connected. Older/existing Visual Micro projects must be edited or re-created. New docs will be available soon (see notes below for more info)
  • Removed "File>New>Project>Cross Platform Templates" used in the gdb beta. The projects are still supported but Visual Micro no longer requires a "special" project format for gdb.

Any visual micro project, with the android tools installed, can now run gdb debug without need for the cross platform projects used previously (still supported). For Gdb, automatic debugging can remain at default state (on).

Selecting the Arduino Zero/M0 (or board with debug.tool defined) and clicking "Debug>Start debugging" will start a GDB debug session. "Debug>Attach To Process" will start gdb without build/upload.

The Visual Micro new project templates now contain two new properties in the .vcproj files. However existing visual micro .vcxproj files currently need to be updated manually (or deleted and re-created using "file>open>arduino project") before GDB will work.

To edit a .vcproj users can right click a project in the solution explorer then click Unload. Then right click again and click "Edit project.vcxproj". Adding the ItemGroup and PropertyGroup shown below will allow gdb to work. fyi: I added them just prior to the existing <ItemGroup> entries.

Right click the project in the solution tree and select Reload project to reload the project again.

Old .vcxproj update to support gdb. Add the following xml:-
    <ProjectCapability Include="VisualMicro" />

Boards Menu - Eeasier to Use

The board menu combobox shows an indented list of boards below the relevant platform title. Each platform title shows a version for platforms installed with the Ide (or via Boards Manager). For user installed hardware the sketchbook\hardware location is displayed next to the platform title.

The recently used boards list is stored in new tools>options properties under heading Mcu General. The number of entries to show on the recent boards list is also in the same options area.

The end of the list of boards contains a shortcut to board keyword search and board manager / installer

Toggle Hidden Files

Links are now added to:-


Release (1607.22) - 22th July 2016 - Visual Studio

  • -E build cache - Intellisense now uses the results of "deep search lib/include discovery" removing the need to #include libs in the project_name.ino when only used in .cpp sources.
  • Many fixes and updates over the initial release of Visual Micro for AS7
  • Workaround ESP8266 2.3.0 missing escaped quotes: Auto change -D="{build.board}" to -D=\"{build.board}\" prior to compile
  • Debug local libraries
  • Caching of library and includes paths from the -E deep search/pre-compile (used to bolster intellisense)
  • GDB debug out of beta. No longer requires the Microsoft GDB extension. Still requires the Android tools (or MS MI Debugger for VS)
  • GDB debug resolved issues with breakpoint positions in .ino files
  • GDB debug support for "Debug>Attach To Process". Starts debug without need for recompile and upload.
  • GDB debug is only active if a project is the "Startup Project"
  • GDB debug improved logging under "[ProjectOutputDirectory]/logs/gdb"
  • GDB debug no longer prompts win32 build
  • Min .NET version increased to 4.5.1
  • Using the new Microsoft Visual Studio Project api to capture build events
  • Known issue: To use gdb debug "vMicro>Automatic Debugging" must be switched off

Release (1607.7) - 7th July 2016 - Atmel Studio 7

  • Many fixes and updates over the initial release of Visual Micro for AS7
  • Import local core, variants and libraries (Beta - Paid Version Only)
  • Debug local libraries (Paid Version Only)
  • Intellisense automatic discovery of libraries that are in .cpp files but not in .ino source
  • Caching of library and includes paths from the -E pre-compile (used to bolster intellisense)
  • Visual Studio update coming soon.

Release (1606.17 Sp 1-10) - 24th June 2016

  • Intellisense fixes for the Arduino Due (SAM)
  • Intellisense fix for the ESP8266 (there was an error in the vsarduino.h intellisense file)
  • Added the esp8266FSupdater.exe back into the release. Adding an .exe icon and license info seemed to satisy all but one (uncommon) virus scanner. Please email if you receive a virus warning for the file. It is sfe but has caused some false positives
  • Removed the esp8266updater.exe from the install because some virus scanners were raising a false positive Trojan report. It is an incorrect report but we will find a solution then re-implement. In the meantime if you would like the source code the the .exe then please email. It will be posted to git shortly.
  • esp8266 file system spiffs uploader caused a false positive with Norton Anti-virus. This release contains a refresh of the exe in the hope that the problem goes away
  • The number of maximum number of Additional Options for each Board has been increased from 10 to 20. The ESP8266 hit the limit causing the ESP "Debug" options list to be empty
  • Improved error and message capture from external processes which improves the messages returned from the compiler and also the esp8266 spiffs upload
  • Atmel Studio 7 is back in our core build system. Thanks to Atmel Corp. who helped us fix the Microsoft vsix installer issue.
  • The ESP8266/YUN SPIFFS/SSH data file upload command has been moved to the "vMicro>Publish Data Files" menu (use sub folder project\data or project\www)
  • Intellisense fixes for ESP8266 (feedback appreciated in the forum)
  • Fix: Local project Board.txt was ignored unless Verbose was enabled (oops)
  • Fix: Arduino 1.0.x - Was not possible to switch off Verify during Upload

Release (1606.17) - 17th June 2016 - for Visual Studio 2012 -> 15

  • Using updated SharpZipLib which solves issues installing tool chains from tar and gzip files (such as ESP8266 via Boards Manager)

Release (1606.14) - 14th June 2016 - for Visual Studio 2012 -> 15

  • Added "conditional/deep search includes" support for older format Arduino libraries that have a private "\utility" folder

Release (1606.11) - 11th June 2016 - for Visual Studio 2012 -> 15

  • More robust JSON package loader
  • Adafruit M0 feather - Debug Support
  • Support RedBear Duo + Debug (todo: still some intellisense errors in the errors list)

Release (1606.8) - 8th June 2016 - for Visual Studio 2012 -> 15

  • Minor intellisense update for avr boards ( F("string") raised an error in some usage cases)
  • Intellisense - Removed invalid definition of cli() from all hardware defs (was a hang over from a less intelligent intellisense past)
  • Added support for "Micro Platforms\intellisense.core.redefs.code.h" allowing core definitions that intellisense doesn't fully understand to be redefined (for intellise sense purposes only)

Release (1606.6) - 6th June 2016 - for Visual Studio 2012 -> 15

  • Fixed: Failed to read board index files that contained only a single package (for example redbear)
  • Fix: Incorrectly default to avr objcopy if the platform did not define an epp or hex output.
  • Fix: Intellisense ensure library include paths come before core paths. example: In the case of teensy the libarry EEPROM.h will be used instead of the avr\eeprom.h. The library version is used during compile therefore this change makes intellisense work the same way.
  • Changed error when build fails from "Error creating .elf" to "Error compiling for board [board name]"
  • Important Arduino sam/due intellisense fixes. Still not perfect but shortly moving to using the VS Clang system which will be much better for Arduino intellisense (does not affect compile)
  • Board Manager - Removing packages shows an informative error if the tools can not be deleted (ie: permissions issue)
  • Startup - Package discovery ignores empty tool folders. Previously, builds would failed with tool not found errors if empty tools folders existed (ie: If a package uninstall had previously not completed fully due to file system permissions)
  • Moved arduino.h insertion point to the top of the temp.cpp file created with the combined .ino sources. Some libraries fail to compile with "macro redefined errors" if the arduino.h is not #included before the libraries.
  • Fixed a lot of intellisense errors with various 32 bit hardware such as Arduino Due
  • Intellisense search paths: Give library paths have a higher priority than the core
  • Intellisense search paths: Add missing low level tool chain paths
  • Intellisense Arduino Due: #include sam3x...h before Arduino.h
  • Restructuring of vMicro menu with new additions reflecting existing global and project options. Use the "Customize" feature of Visual Studio to place Visual Micro (vMicro) commands on menus of choice and/or to set Shortcut keys.
  • Save programmer selection per project.

Release (1605.28) - 28th May 2016 - for Visual Studio 2012 - 15

  • Minor update to add the paths of any source code "short cuts" to the intellisense path list. This enabled linked source code to be included in the sketch/project.ino without path qualification #include "myheader.h"
  • Support debug using alternative hardware serial ports for Teensy:- Serial1, Serial2, Serial3

Release (1605.14) - 14th May 2016 - for Visual Studio 2012, 2013, 2015

  • Support the new "upload.verify" board property introduced in the Arduino SAM 1.6.8 core (resolves bossac.exe error with Arduino Due)
  • Fix: Attempt to deep search for lib-in-libs caused issue with older Arduino releases such as 1.5.x ad
  • New release of the old Visual Micro VS 2010 and AS 6.2 add-in for (Windows XP users only) with basic support for Arduino 1.6.9. Must be upgraded before May 1st 2018.(see alternative visual studio gallery entry)

Release (1605.12) - 12th May 2016 - for Visual Studio 2012, 2013, 2015

  • Fix. yesterdays version containing Arduino Ide 1.6.9 and Esp8266 support (auto creation of the deep search command) caused a very long pause when compiling with the hardware and also with version below 1.6.6

Release (1605.11) - 11th May 2016 - for Visual Studio 2012, 2013, 2015

  • Important additions for Arduino 1.6.9 - Auto create missing preproc.macros from compiler command. (Boards such as esp8266 reply on this new feature to provide "deep search" discovery of libraies in libraries. This feature would have been missing for users who had updated to the latest esp8266 core and build errors would have resulted for any library that was not #included in the [project_name.ino].
  • Fix: Change {build_path}\sketch to {build_path} when loading hardware which ensures that there is a compiler include path for the correct build folder.
  • Better compiler error message when "deep search" fails as a result of linked sources (chared code shortcuts, not libs) outside of the current project. (for example include "..\..\foo\foo.h")
  • Debug support for ChipKIT Fubarino Mini. Support for Serial, Serial0 and Serial1 should be available. Some intellisense work is outstanding and will be completed shortly. For example Serial0 shows an intellisense error but builds correctly.
  • The "vMicro>Debugger Settings" menu has a "Local Port", "Remote Port" and "Monitor" options. They are beta and will be joined by more options. All of thje debug settings in project properties are still valid. These new options are designed to make it simpler for users to configure different defaults for the debugger.
  • Creation of new project from existing sketch has reverted to only adding sources from the sketch/.ino folder. In the last few versions sub folders were scanned for source code. The feature has been removed pending further testing and was possibly responsible for a crash opening new projects from existing code.

Release (1605.10) - 10th May 2016 - for Visual Studio 2012, 2013, 2015

  • Only request password once when opening the serial monitor for an ssh connection. If an empty password or the cancel button is pressed the monitor does not connect and displays a connection error. This is in contrast to how serial normally works where by it will attempt to connect to the hardware for some seconds before displaying an error.
  • Support Stm32 serial debug
  • Serial Monitor for an Ip address that does not support Ssh shows an error after a single password request (previously looped until a password was entered)
  • Fix: Linked/shared sources failed to compile. Shared Source Code Rules/Tips:- It is important to bear in mind that linked sources are copied to the temp build folder and then compiled. Linked source code should be treated as if the code exists in the current project folder (same place as the [project_name].ino). #includes in the code can be relative or fixed however because the source code is copied to the build folder the compiler will actually find the code in the local build temp folder and include the path specified in the #include. This means that it is only intellisense and not the build that uses the path of an #include statement.
  • There is a new menu item "vMicro>Debugger Settings". The menu "Debug Trace Only" has been moved to the menu and renamed to "Trace Only (No Break)". The "Automatic Debugging" menu has also been moved to "Debugger Settings". In the next release the "Debugger settings" menu will also provide quick access to the debug > "LocalPort, RemotePort, RemoteSpeed" project properties.

Release (1605.06) - 6th May 2016 - for Visual Studio 2012, 2013, 2015

  • Ignore DotALinkage library spec if AR Pattern is not provided. This allow for older Arduino 1.5.x builds with newer libraries designed with .a linkage (see
  • Added "AVR Dragon as ISP" programmer for AVR boards when using Visual Micro alongside 1.6.x, 1.5.x and versions of the Arduino Ide.
  • Serial port list - Manually enter ip address/port. Allows Ip addresses to be entered without need for install of Apple Bonjour for Windows which auto discovers ip addresses.
  • Added support for discovered network properties such as port, auth - Esp8266 OTA. Includes the same authentication features as the Arduino Ide such as auto prompt password if one has not been specified and auth_upload=yes.
  • Full/pro users can avoid using Apple Bonjour auto discovery and use the local project board.txt to provide missing network upload properties. For example:-
  • An Ip address can be manually entered into the ports list. The feature should only be used for ip addresses, serial, bluetooth ports should always be visible if they are available for use.
  • Full/pro users can switch off Tools>Options "Upload Verify" (default=off/false)
esp8266 authenticated network tip: setPassword() must be called before ArdunoOTA.begin()
void ArduinoOTABegin(String &hostname)
// Set port

// set hostname

// No authentication by default
ArduinoOTA.setPassword((const char *)"test");

// start OTA Server

Release (1604.28 Sp1) - 28th April 2016 - for Visual Studio 2012, 2013, 2015

  • Fix: The menu items "Add Board.txt" and "Add New Arduino Library" were incorrectly disabled for all users. Now available in the Full/Pro version
  • Fix: Build buttons confused with multiple projects in a single solution. (Build and upload worked okay). This was a new bug in 1604.27 yesterday.
  • Fixed: "Invalid compiler cache" error when attempting to build (happened sometimes after switching tool chains)

Release (1604.27 Sp1) - 27th April 2016 - for Visual Studio 2012, 2013, 2015

  • Removed the "Buy pro" nag screen that appeared every 45 days to users of the free version (if ide fast start is enabled - see below)
  • Serial Monitor - DTR checkbox is no longer ignored. The only time Dtr should be ignored is if project property "Startup Delay or Dtr" is True
  • Added message to build "Using Visual Micro Free version"
  • Added a new "tools>options>visual micro>system" property to disable pro features (for testing)
  • Added a new "tools>options>visual micro>compiler>upload verbose" allowing only upload commands to be viewed in the output instead of all build commands when using the existing "Verbose" option.
  • Board options are now saved per board and project. This allows, for example, two projects to use the esp8266 but with different options.
  • Added menu item Help>Release Notes
  • If the trace is the active output pane when debugging ends, switch the output window back to "micro build"
  • Added "Tools>options>visual micro>system>ide fast start" as a new option forcing visual micro to load in a new thread after the ide has fully loaded. The current default is OFF but it would be great if you can switch it on and try it out. Does the ide load faster and become usable earlier when ON? Please comment in the forum thank you. The regedit can be used to switch it off if it has caused a startup issue for visual studio (not expected). [HKCU\Software\Visual micro\System\Ide Fast Start]
  • Serial Monitor logging. Date times are no longer Utc, Date formats should now be correct. Line terminator is always added to the conversation.txt log.
  • Serial Monitor Logs - Changed the conversation status from "Received" to "Message" and from "Send" to "Sent" which more accurately describes the current long entries.
  • Each build process has been isolated from the ide. This means that parallel builds are now supported and the build will no longer fail if the ide board is changed part way through a build.
  • The Visual Micro "build and upload" buttons will now build and upload the current project instead of the "startup project". This change is a result of the default value of "Tools>Options>Visual Micro>Upload>Debug Active Code" changing from False to True. 
    If you prefer the older functionality where the "Startup Project" is the main target for debug instead of the active code editor project then set the option to False. Regardless of the setting, the "Startup project" is always responsible for determining the functionality of the standard Visual Studio Debug/Start commands. This includes menus and F5 etc.
  • When working with Multiple projects in the same solution Visual Micro should respond more intuitively than previous versions. For example, in the same solution, a windows (or android) project can be debugged at the same time as an Arduino project. To achieve this the non-arduino project will be the "Startup project".
  • Micro Explorer Installed Boards - Keyword search has been improved. Boards can be filtered by common board properties such as:- Name, Architecture, Platform, Bootloader, build.coreore, build.board,, build.vid +++
  • Removed ../ProjectFolder/ from relative paths in the vsarduino.h intellisense header
  • Added message to start of build in the free version:- "Using the free version of Visual Micro. Please help by reviewing or buying"

Release (1604.18) - 18th April 2016 - for Visual Studio 2012, 2013, 2015

  • Renamed the Visual Micro menu to vMicro so that it takes less space
  • Moved "unsupported hardware for debug" error message to the end of the compiler output so it is easier to see.
  • Improved board search on the first tab of the Micro Explorer.
  • Serial debug support for stm32 (adafruit feather) boards that use USBSerial + HardwareSerial
  • Local project build system property overrides. Pro users may add a board.txt to the root of an Arduino project. There is also a new menu item "Project Item>Add new board.txt" which adds a board.txt. To see current build properties switch on "Tools>options>visual micro>compiler>show build properties". The feature can be disabled in the "Compatibility" section of the same options. Example property would be:- upload.8dot3=false
  • Serial monitor commands user interface has changed to using top and bottom toolstrips. The previous layout made handling different high dpi settings almost impossible. The new layout should work with all dpi settings.
  • Serial monitor log to file - New feature for pro users
  • Added "New" project item context item "Add Board.TXT"
  • Improved tool bar and serial monitor tool tips
  • Micro Explorer - Easier to see "Installed" platforms
  • More obvious tool tips (or comments) when a feature is available in Pro and not available in the free version
  • More obvious final build error message if the selected hardware does not support the serial debugger default configuration.
  • Moved Project>Show Arduino Core and Librray Sources menu item to menu item "Micro>Toggle Hidden Files". The menu item will add/remove code short cuts to the core and library sources for the current project. The short cuts should be treated as readonly unless designing core or lib code. If significant changes or edits are made to the underlying source codes then click "Tools>Visual Micro>Reload toolchains" to let Visual Micro know about them (or restart the ide).
  • Serial Monitor Reconnect failed in yesterdays release
  • Logging currently provides two logs per log session. 
  • The RAW inbound (received) data log uses the following name format: "[port/ip]-[start datetime]-inbound.txt"
  • The COMMUNICATION log contains both "sent" and "received" (inbound and outbound) data along with a date stamp. The first two columns of each entry in the log contain the "[datetime] TAB [data direction (send/receive)]". The log file name format is:- "[port/ip]-[start datetime]-communication.txt

Serial monitor window - Update for high dpi and switched to using toolbars with overflow capabilities

Options: View logs or override default save location. The default save location is also available in "Tools>Options>Visual Micro"

Release (1604.12) - 12th April 2016 - for Visual Studio 2012, 2013, 2015

  • Boards manager - New option in the tree view "Board Package Auto-Discovery". provides a list of urls from the official Arduino git page along with descriptions.  The auto discovery section can be searched in the same way and at the same time as the boards using the "Find" box. Click package names to make available to the "Install" section. Adding/removing from auto-discovery simply adds urls to the ide location board support url list. Unknown urls are not displayed in "Boards Manager>Auto-Discovery" but are available for Install. The Rescan button must be clicked after adding board package urls and after installing hardware.
  • Fix: Cosa debugger live digital pin report/viewer
  • Board Manager - Installing packages works reliably. Uses a new version of SharpZipLib open source library. (Previous versions failed to properly unpack downloaded toolchains for some packages such as Esp8266)
  • Boards Manager - Checks for updates once per day or when new urls are added via the Ide locations window or via the Auto-Discovery list in the tree view.  (only happens if the Board Manager or Library manager are opened)
  • Library manager checks for updates once per day (only happens if the Board Manager or Library manager are opened)
  • Added intellisense patch for the Digistump Oak boards.
  • Added a clear error message (with fix suggestions) when a Debug build fails due to unsupported hardware. Instruction is given to switch to Release, switch off debug or use SoftwareSerial. Please open a forum log and let us know about any unsupported/debug hardware.
  • Serial monitor high dpi fixes (more to follow)
  • Create 0 byte .sig.tmp when downloading board support .json urls that do not have a valid .sig file. Most board support urls appear not to have a .sig. However the Arduino IDE allows them and it will not start if the sig.tmp files are missing.

Release (1604.9 sp1) - 9th April 2016 - for Visual Studio 2012, 2013, 2015

  • Fix: Project such as MultiWii override the Arduino .ino file system because a MultiWii.cpp exists within the project source code. This facility failed in Visual Micro since October 2015 unless "tools>options>visual micro>Compatibility>Compile Files in Project" was set to False (Default is true).
  • Add - More informative error message is Serial debugging is not support by some hardware such as MultiWii (HardwareSerial vector15 error is trapped and users are prompted to switch the build to 'Release' mode)

Release (1604.7) - 7th April 2016 - for Visual Studio 2012, 2013, 2015

  • mega 2560 -relax flag was missing from builds past 2 months! Prevented large program compilation :-
    ibc.a(isprint.o)*:In function `isprint
    (.text.avr-libc+0x6)*:relocation truncated to fit: R_AVR_13_PCREL against symbol `__ctype_isfalse' defined in .text.avr-libc section in c:\program files (x86)\arduino\hardware\tools\avr\bin\..\lib\gcc\avr\4.8.1\..\..\..\..\avr\lib\avr6\libc.a(cty_isfalse.o)
    collect2.exe*:error: ld returned 1 exit status
    Error creating .elf

Release (1603.30) - 30th March 2016 - for Visual Studio 2012, 2013, 2015

  • Fix: The 'Scroll' checkbox was missing from the Serial Monitor window.
  • Serial Monitor - Ultra high dpi fix + splitter controls enabled again

Release (1603.28) - 28th March 2016 - for Visual Studio 2012, 2013, 2015

  • Improved compiler error and warning messages (and drill down into source code still works)
  • Fix: Cosa core 1.2.0 debug
  • Serial monitor: High dpi buttons
  • Serial monitor: Rts checkbox
  • Compiler output summary text changed from "Binary sketch size =" to "Program size ="

Release (1603.27) - 27th March 2016 - for Visual Studio 2012, 2013, 2015

  • Temp build folder has been moved to the window temp "VMicroBuilds" folder from AppData\Local. This is because some boards, such as Arduino 101, define build paths as non-quoted commands. The AppData folder is prone to contain the windows user name which often contains spaces and unicode chars. (tip: The temporary build path can be overridden in "tools>options>visual micro>compiler>temp build path")
  • Fix Serial monitor button position in high dpi mode.

Release (1603.25) - 25th March 2016 - for Visual Studio 2012, 2013, 2015

  • Serial monitor - High dpi display correction for the send button position
  • Serial monitor - Tool tips added for all buttons and controls
  • Gdb debugger failed to launch if sketch/program path contained spaces
  • #Included "Local libraries" caused "previous definition error" compiler error if a lib of the same name also existed under an Arduino ide\libraries, hardware\libraries or sketchbook\libraries folder.
  • Paid version: "Serial auto reconnect" and "Local Program Libraries"

Release (1603.20) - 20th March 2016 - for Visual Studio 2012, 2013, 2015

  • Support escape chars in Serial Monitor outbound data (see example 1). \u0000 (4 digits) \U00000000 (8 digits, first 4 must be 0000), \x0000 HEX (1-4 digits), \\, \a, \b, \f, \n, \r, \t, \v, \0 ... (Free new feature for all pro users)
  • Fix - Live free memory chart failed when using {@ReportFreeMemory} breakpoint syntax instead of the "Report>FreeMemory" project property
  • Add - Additional standard serial monitor speed - 74880 (reminder: any speed can be entered manually without selecting from the combo box of speeds)
  • Remove - Annoying beep when pressing ENTER in the "Serial Monitor > Text to send box". (tip: the ENTER key is an alternative way to click "send")

Example 1 -  CStr escape chars


arduino code for this example - echo back to pc

Code (C++):

void setup() { Serial.begin(115200); } void loop() { while(Serial.available()) Serial.write(; }

Release (1602.13) - 13th February 2016 - for Visual Studio 2012, 2013, 2015

  • Fix: Local project libraries failed to compile when the "Deep search includes" feature was enabled.

Release (1602.7 Sp1) - 7th February 2016 - for Visual Studio 2012, 2013, 2015

  • Sp1 - "Deep library search" failed to find inherited preprocessor recipe for boards such as AtTiny. Platform.txt from the Ide hardware folder was applied to early overriding the merged inherited avr platform.txt from the ide\arduino\avr folder.
  • Older arduino 1.0 definitions, when used with Arduino 1.6+, are automatically adjusted to use the 1.6 avr\toolchain configuration
  • Support digital and analog debugger visualizations for new boards:- arduino 101, teensy (2.x, 3.x , LC), chipKIT boards, and more...
  • Build output.BIN before.EEP
  • Fix - Upload using programmer is now using the new .hex/elf naming convention of "project_name.ino.hex", "project_name.ino.elf", "project_name.ino.bin" etc.
  • Fix: Upload failed for older Arduino board definitions that were merged with Arduino 1.6+ definitions
  • Fix: Avrdude config path was discovered incorrectly for some older format custom hardware definitions
  • Pro users free upgrade to extended {@plot} charting. 
  • Fix: Debugger "automatic free memory report" failed unless the manual {ReportMemory} breakpoint syntax was used.
  • Live charting, triggers, tick marks, colors, curves, digital and analog type views, auto save settings, freeze, capture/save images, zoom, adjust sweep and more. examples - read more

Release (1602.3) - 3rd February 2016 - for Visual Studio 2012, 2013, 2015

  • Moved core temp build folder to "build_folder\core". This is how arduino cores are defined since Arduino 1.6.6. If this causes issues for some cores a new configuration property can be provided on request via the forum. nb: ide "M0 and Due" have special handling for syscalls.c.o
  • Fix: Bridge and dot-a-linkage: Corrected the order that object files are passed to the linker. The order is now:- [project.o] [lib_dot_a_archives.a] [core.a]

Release (1601.31) - 31th January 2016 - for Visual Studio 2012, 2013, 2015

  • Support for boards that define a non existent "upload.tool" and that have an "upload.pattern" assigned directly to the boards or platform (ie: navstar)
  • Exclude debugger memory check headers if memory reporting is not enabled (memory reporting is currently incompatible with some platforms such as navstar and teensy)
  • Verbose mode displays output from tool chain commands if available (ie: navstar tools)
  • Removed icon from "Always upload using programmer" to avoid confusion. When the option is on a tick will show against the menu item. The tool bar button has shorter text and highlights entirely if enabled.

Release (1601.30) - 30th January 2016 - for Visual Studio 2012, 2013, 2015

  • Fix - Deep search library discovery failed for libraries that were included by name (ie: #include <LibName1\LibName1.h>. The current solution is for named libraries to be excluded from "deep search" requiring any dependent libraries to be #included in the .ino sources
  • Compiler include paths sequence changed. Core includes have been moved to the end of the list in all compiler and library discovery methods. (required for esp8266 and pjrc Time library)
  • note: When using "Deep Search Includes" (lib-in-lib discovery) with esp8266 and the prjc Time library either #include <TimeLib.h> or #include <Time\Time.h>. This avoids a conflict with the time.h in the esp core.
  • Automatically clean project compiler cache when switching between "Deep search" and "Standard" library discovery.
  • Adjust core.a to build into the build folder. Previous release allowed Teensy to build the core.a into the build_folder\core directory which caused a linker problem.

Release (1601.25) - 25th January 2016 - for Visual Studio 2012, 2013, 2015

  • Separated build folders so that core now has its own directory. This resolves an issue with esp8266 and the time.h conflict between core and libraries. (NOTE: To use the Time library with esp8266 the "Deep search includes" menu item must not be ticked)

Release (1601.21) - 21st January 2016 - for Visual Studio 2012, 2013, 2015

  • Fix - SoftwareSerial debug compile failed when the new "Deep Search Includes" was enabled on the Visual Micro menu
  • Intel Boards - Support new format libraries that are located under the "hardware\[platform]\libraries" regardless of the architecture defined in the file. The Intel libraries have an architecture that does not match any of the hardware properties (eg: Intel\WiFi library was not available for compile)

Release (1601.11 Sp4) - 18th January 2016 - for Visual Studio 2012, 2013, 2015

  • Support Arduino 101 serial debugging (Serial or Serial1)
  • Support for Arduino M0 Pro Serial debugger using the debug port
  • Tested M0 Pro with Gdb debugger - OK (3 breakpoints max)
  • Fix - Intellisense includes all defines from the platform .cpp recipe. A de-duplication bug caused some to be missing (such as -DESP8266)
  • Support new output file names when uploading via programmer (The output formay changed in sp3). Visual Micro aligned with the arduino ide output file names via the {project_name} variable. (ie: we now use project.ino.hex instead of project.hex.)
  • Fix - Compile sizes and dis-assembly broke in last build for some boards such as Ti Launchpad, Tiva etc.
  • OpenOCD 9.0 is included with install
  • .Ino gdb debugging support for Energia and Stellaris LM4F120
  • Gdb can be now be configured by third party hardware providers in platform.txt (more info to follow, forum for questions)
  • Fix Gdb debug- .ino line numbers were sometimes incorrect. (note: if you do not switch of optimization stepping will jump about sometimes)

Release (1601.11 Sp3) - 15th January 2016 - for Visual Studio 2012, 2013, 2015

  • Visual Micro is now compatible with Arduino 1.6.6+ "library in library" auto discovery. Auto discovery is much slower than the older regex system, especially with libraries that contain a lot f source code. There is a new "Visual Micro>Deep Search Includes" menu item that allows the old system to be enabled for the current project. This will then mean that libraries will only be compiled if they are also #included in the [project_name].ino (ie: works the way pre-arduino1.6.6 works). A simple test is to select the Zero board and the AzureIoT library. The AzureIoT library is huge and also uses Wifi101, RTCZero and SPI. The compile time of an empty sketch with arduino 1.6.6 style discovery is approx 7 seconds compared to sub one second using the older .ino/regex system.
  • Fix compiled failed if path contained "\."
  • Added proxy settings to the Pro activation window
  • Fix compiler cache confusion which sometimes allowed object file date.time comparison even when for rebuild.
  • Add - Verbose build messages clearly show the name, version and location of each compiled library.

Release (1601.11) - 11th January 2016 - for Visual Studio 2012, 2013, 2015

  • Improved support (total) for .windows build definition overrides
  • Remove quotes from upload pattern commands and convert to 8.3 file and path names if they exist. It is not clear why some third party hardware definitions have been created a way that requires this functionality but they can't work without it ??!! One example that requires this change is Simblee board
  • Optional new board/platform build property upload.remove_quotes=true (required for Simblee "{project_name}" )
  • Support Arduino nightly builds without version numbers. Assume 1.6.6+ and the appdata/local folder instead of appdata/roaming
  • New GDB project templates (beta - Arduino Zero). Requires android cross platform tools for VS  (see VSSetup)+ "Visual Studio GDB Extension (see Gallery)". Gdb for other boards coming soon
  • Gdb max 3 breakpoints. If gdb hangs kill the MicroGdb and openOcd processes
  • New Gdb projects will default to "Local GDB" debugger. The "Remote GDB" debugger is not yet supported by Visual Micro and will raise an error if it is not manually configured (see tools bar and project properties for more info).
  • No Gdb support for Zero clone yet ( is supported)
  • "Tools>Application features" has new options to disable the new gdb functionality. If enabled, Gdb is only active in NMake projects that have a "Local Debugger" rule/property set.
  • Force gdb breakpoints if none are set (otherwise the debug will hang)
  • Better cache cleanup when clicking "Rebuild". .o and .d files are deleted.
  • New project templates auto open source code when they first open
  • The arguments of upload using bootloader are converted to 8.3 and stripped of double quotes. This feature can be disabled with board or platform property upload.8dot3=false
  • fprintf intellisense confusion removed for all boards
  • Fix/Support Arduino Zero for Arduino intellisense for Arduino 1.6.5+
  • Support/Fix Serial/Usb debugger on Arduino Zero Programming port (previously debug only worked on Native Usb)

Release (1601.04 Sp1) - 4th January 2016 - for Visual Studio 2012, 2013, 2015

  • Fix: Support for Teensy (3rd party) alternative avr libraries

Release (1601.01 Sp1) - 1st January 2016 - for Visual Studio 2012, 2013, 2015

  • Note: Project hardware/board re-selection might be required after applying this update. Multiple boards of the same name but in different packages are now supported. 
  • Multiple platform architectures are support allowing platforms such as Teensy3 to support "avr" libraries. This support had broken in recent updates due to a change in arduino 1.6.x formats
  • The properties of platform.local.txt,, platform.txt etc. are combined. Previously only one of the first file discovered was used. This affected various platforms such as Marlin.
  • Arduino 1.6.7 released and supported (does not yet support automatic 'related' library discovery or the new prototype discovery system, this means you might have to continue to #include <spi.h> or other related dependencies)
  • More robust support for current and historic 3rd party hardware definitions
  • Better integration with other projects types within the same solution. Visual micro will not attempt to build when the windows debugger is active for a different project in the solution.
  • Build output (hex,elf,map,bin) are copied to the projects configuration build folder. This is the first "real" visual studio c++ project property that Visual Micro supports (as opposed to it's own set of custom project properties). The build folder default to "ConfigurationName" such as "[project]\Release", "[project]\Debug". Final build properties are also written to a "build-board.boardinfo" text file in the output folder. (more about the reason for this output file later!)
  • Debug support for default Marlin Serial port (tip: To use Serial1 set project>Transport=HardwareSerial and project>RemotePort=Serial1)
  • ATMEL SmartEverything full support and also serial/bluetooth debug support which defaults to Serial1 (because the board doesn't have Serial)
  • Auto detect esp8266 and fix the .ar config so that compiler cache works correctly.
  • Beta - Support for Visual Studio Linux Makefile project types
  • More boards supported by the digital and analog pin viewers (zero, teensy 3.x ++ )
  • Cleaner Visual Studio shutdown - The extension version of Visual Micro was missing shutdown detection and could have attempted intellisense updates and other background tasks during shutdown causing a crash or hang.
  • Gdb beta release countdown - 3 days remaining!! Register your interest in the debug section of the forum.

Release (1512.28 ) - 28th December - for Visual Studio 2012, 2013, 2015

  • Improved inherited hardware discovery
  • Support hardware tools installed in clone but inherited from core (SmartEverything/OpenOCD >><< Arduino Zero - note: In previous versions compile and intellisense would fail if SmartEverything was installed before Arduino Zero)
  • Discover tools from other packages. Support/share tools installed in a different package. This ensures that multiple packages do not need the same tool installed. Please Note:- this is how Arduino currently works and can cause breakages when uninstalling hardware that includes a shared tool. Uninstalling and reinstalling the affected hardware uysing the Board Manager tool will fix the problem.
  • Better backward support for various combinations of tool chain installation locations

Release (1512.23 Sp1 ) - 23rd December - for Visual Studio 2012, 2013, 2015

  • Intellisense and build failed in Visual Studio 2015 for users who have never previously installed VS2012 or VS2013. This problem has existed since 20th December

Release (1512.23 ) - 23rd December - for Visual Studio 2012, 2013, 2015

  • Fix debug compile error: Conditional breakpoints in multiple source files might have caused a "definition/already defined" error.
  • First compile would fail for first time users until a board had been selected. (changed default to first board in boards list)
  • Debug compile - master.ino - Injected header code insertion point now detects first line of actual code. Previously debug compile would fail if a method in the .ino source code referenced a type defined in a library. This was because injected headers were inserted at position 0 causing auto prototype generation to insert immediately after the debugger code.

Release (1512.20 ) - 20th December - for Visual Studio 2012, 2013, 2015

  • Fix: Debug compile with "hit counter/breakpoints" failed for some languages (ie: German language users)
  • Fix: Switching on/off the various debugger reports such as digital pin reports and analogs often failed to be recognized. (Only "Build>Rebuild" would fix the problem)
  • Initial support for NMake projects (Gdb to follow shortly for vs2015)
  • Fix: Vs2012 and 2013 - "File>New>Project" uses a generic C++ platform (previously used VS2015 format C++ projects which raised an error)
  • Switch off compiler warnings for debugger source code
  • Fix: Sam/Due intellisense
  • Fix: Samd/Zero build/upload
  • Added new optional Arduino look-a-like syntax color theme - Use via "Tools>Options>General>Theme>Arduino IDE (Blue)". More themes to follow shortly, please post your themes in our forum.

Release (1512.14 ) - 14th December - for Visual Studio 2012, 2013, 2015 ( vs2015 with C++ Recommended )

  • Debug support for Teensy when set to MIDI (By default uses Serial1 and Hardware serial)
  • Debug support for Cosa in Arduino. Change RTC to RTT, implemented statis IOStream, changed #includes (thanks user 'guilus')
  • Debug for digispark/tiny serial. The serial is transmit only so the debugger is trace and expression watch only, no break, no change variable values during debug)
  • Support Pololu upload + improvements to verbose out for 1200 baud touchable boards
  • Default bootloader upload - Use "build.tool" in preference to "build.uploadUsing" when both are defined.
  • Removed sketch and library -I paths from "Core" compiler includes
  • Added additional Sam/Due intellisense paths
  • a) Build & upload buttons on the Visual Micro bar and menu compile the active editor project if the "startup project" is not an arduino project. b) New "tools>options>application features>start/upload active code" forces the behavior all the time.
  • Leonardo/usb type uploads wait for reset of port does not exist. + better messages during auto-reset and port discovery.
  • As an experiment there is also a new "tools>options>visual micro>Application features>Upload/debug active code" setting that can be enabled which always ignores the startup project if Arduino code is open and active for edit. The functionality of this setting might be more obvious when multiple Arduino projects are in the same solution and one is the  startup project. In this case the F5/continue shortcut key during debug sessions might be more intuitive with the setting switched ON/true.
  • Fix: Multiple breakpoints in different source files failed to compile if a millis based HitCount was used as a breakpoint Condition (debug compile failed with __VM_GlobalMillis__ error)
  • Tested with Arduinop 1.6.7 nightly

Release (1512.10 ) - 10th December - for Visual Studio 2012, 2013, 2015

  • Support library dot_a_linkage
  • Arduino intellisense support regardless of VS platform (x64, x86, win32 etc)
  • Convert compiler -DARDUINO version number to the new format (ie: 1.6.7 becomes 10607)
  • Support libraries such as HID-Project (note: mst also #include <HID.h> in the sketch_name.ino
  • Project includes are only updated when changed. (reduces source control auto-checkouts)

Release (1511.23 ) - 23rd November - for Visual Studio 2012, 2013, 2015

  • Fix: Arduino 1.0x failed to compile libraries due to missing include paths
  • Support: Esp8266 OTA - Previously failed because ssh transfer was expected. Now uses Python 2.7 so please make sure it is installed.
  • release

Release (1511.21 ) - 21st November - for Visual Studio 2012, 2013, 2015, As7

  • When compiler optimization "Compare source date/times" is off Libraries remain cached but the local sketch sources are always re-compiled (functionality to match builds prior to 1511+).
  • Atmel Studio 7 sometimes crached when attempting to update the recent MRU file list.
  • Compiler cache more resilient. Please report any abnormal situations when "Build>Clean Solution" or "Build>Rebuild" was required for successful compile.
  • Intellisense failed for Teensy3 and Arduino 1.6.2 + because the platform simulates avr whilst using an arm core. A new build property forces visual micro to use a property of the boards.txt configuration data as an assumed platform name purely for intellisense purposes. Example:- By default the Teensy package is enabled in Visual Micro as follows:- create_platforms_from_boardsTXT.teensy=build.core
  • Added support for standard arduino platform configuration key "rewriting=disabled" which is used by some board configurations
  • Removed the name of the project from the debugger window titles
  • release

Release (1511.12 ) - 12th November - for Visual Studio 2012, 2013, 2015, As7

  • Implemented full dependancy walker to determine rebuild requirements
  • "Solution>Clean" and the "Rebuild" commands will clear cache but should not be required even after major project changes or restructuring
  • release

Release (1511.11 ) - 11th November - for Visual Studio 2012, 2013, 2015, As7

  • Added: "Visual Micro>Rebuild" menu - Clears the compiler cache for all project sources (exc core and libs) and then build
  • Fixed: Added more intelligence to the compiler cache. Tip: 1) Switch off parts of the cache in the project properties or 2) Click Rebuild/Clean after making significant changes. Hopefully Visual Micro gets it right so these tips will not be required:) Interested to hear feedback about it in the forum thanks!
  • "Build>Rebuild Solution" and "Build>Rebuild [ProjectName]" perform the same function as the "Rebuild" menu item.
  • More intelligent dropping of compiler cache
  • Reminder - Switch off the new extended compiler cache in the project properties "Project Settings>Compiler Optmisation>Source date/time later than object file date/time"
  • Compile reports which job has failed (core, libraries or project). Does not continue to the next job if an error is encountered
  • A linker error causes the project compiler cache to be cleared so the next compile is cleaner (has no effect if "Source date/time" cache=false)
  • release

Release (1511.10 Sp1 ) - 10th November - for Visual Studio 2012, 2013, 2015, As7

  • More intelligent compiler cache when build project properties are modified such as extra flags and additional defines
  • More intelligent compiler cache when core source code is modified, libraries and sketch are recompiled
  • More intelligent compiler cache when library sources are modified sketch sources are recompiled
  • Build order change. The build order is now 1) Core,  2) Libraries, 3) Sketch
  • Change of default: Recompile library and project sources when project property defines are changed. Project setting "Micro Compiler Optimization>Recompile libraries" defaults to True/On.Reminder: 
  • Fixed a problem cuased by running arduino 1.6.5 after arduino 1.6.6 has been run once. 1.6.6 migrates from "Users\appdata\Roaming" to "Users\appdata\Local". Running 1.6.5 recreates the Roaming folder which confused Visual Micro and in some situations caused compile errors.
  • Sp1 supports rewrite=disabled in platform.txt
  • release

tip: "Build>Clean Solution" clears the compiler cache

Release (1511.8-Sp2 ) - 8th November - for Visual Studio 2012, 2013, 2015 

  • Optional compile cache for local project code (default=On, see "Project Settings>Compiler Optmisation>Source date/time later than object file date/time". Other rules might invalidate the cache such as switch board options, changing project defines, adding libraries etc. Tip: "Build>Clean Solution" clears the compiler cache.
  • Output is displayed during upload. In previous versions all output would appear at once after upload succeeded or failed.
  • Fix debugger compile error when using integer hit counts
  • Improved accurancy of double click drill down into compiler error messages
  • Optimized background build for intellisense. More intelligent source code change comparisons, less disk activity in temp build folder.
  • Fixed an intellisense bug that affected some hardware. Additional include paths and macros are correctly extracted from the platform.txt cpp.recipe
  • Fixed DUE intellisense with versions 1.6.2+
  • @Plot tickmarks default to Off when not specified in the breakpoint command
  • Board and Serial bars default to visible. Tip: "Micro" bars can be hidden by right clicking the tool strip or can be intelligently hidden/displayed via the Window menu.
  • Sp2 - Project property "Compare Dates and Times" failed in initial release.
  • release

Release (1511.3) - 3rd November - for Visual Studio 2012, 2013, 2015

  • Added support for Arduino 1.6.6
  • release

Release (1511.1) - 1st November - for Visual Studio 2012, 2013, 2015

  • Fixed: Boards such as "Sparkun Pro Micro" unable to determine different cpu flavors and failed to compile.
  • Attempt to implement esp8266 reset command syntax by disabling DTR/RTS and waiting for the port. Will wait up to 5 seconds. (note: If this solution doesn't work a different mechanism to toggle dtr/rts will be used in future releases, this is an area of windows where the usual SerialPort Api is weak)
  • Extended the @plot window to include a combo box of marker symbols. The symbol of all plots that have not been assigned a breakpoint symbol can be changed using the combobox.
  • Extend plot syntax to allow plot point symbols. The full list of symbol names is shown in the combo box on the plot window(s). for example: 
    {@plot.Thunderbird-4.Altitude.Triangle iHeight}{@plot.Thunderbird-4.SeaLevel.Square iSeaLevel}
  • Increased the @Plot memory to cater for a higher volume and frequency of trace messages before the tail drops off the end of the time line.
  • Show expression names and values in the @Plot curve labels. Ie: Altitude (gps.alt=67)
  • release

Release (1510.30) - 30th Oct - for Visual Studio 2012, 2013, 2015

  • Fixed: Build failed when there were no open source code documents. Applied only when positioned on the Solution node of the solution explorer
  • Fixed: Compiler cache failed to detect changes to build #defines
  • Faster debug. Just one compile. (Removed the validation compile, prior to the debug compile)
  • Removed tutorial messages from compiler output
  • More informative compiler errors when breakpoint syntax might be the cause of the error.
  • When the debugger is active, all build commands will perform a debug build. This ensures that breakpoint syntax to be validated without requiring an upload.
  • Intellisense improvements
  • The Visual Micro build command has been changed to build the "Start Up Project" instead of the active editor project. This falls in line with the "Build & Upload" command. Applies to multi-project solutions

Release (1510.26) - 26th Oct

  • Fix: Missing compiler errors!!
  • Fix: Debug if the sketch path name or source file names contain a single quote.
  • .ino source code can be placed in sub folders or linked from other locations. Only the master sketch.ino must be located directly in the sketch folder.
  • Local sketch copies of arduino libraries that exist under folder "src\_micro-api\libraries" override installed user or core libraries. For example this means that the eeprom library can be copied locally and edited without affecting other projects that use the eeprom library
  • Project structure - Local libraries, source code in sub folders and "Linked" shortcuts to code outside of a project. Initial documentation
  • Debug local project libraries. Create local libraries or copy existing libraries to the local project. For editing or simple debug
  • Added new application list entry for 1.7. This allows one of each arduino major version + to be installed and used together.
  • note: Internal version number is 1510.22.1

Release (1510.22) - 22th Oct

  • High cpu usage when selecting items in the solution explorer
  • Changed Ide names to avoid confusion between the latest Arduino 1.6 version and older versions. The entry applies to all historic versions prior to 1.6.2 and all versions. The Library Manager tool is available for all versions, the Board Manager tool is currently only available when using " 1.6"
  • Added Application specific help/hint text to the Ide locations dialog
  • Improved intellisense 32 bit boards
  • Support for Mpide 150 and also the beta of the new chipKIT-core. Install either Arduino 1.6 or 1.7 to use the chipKIT-core
  • Boards and serial bars no longer automatically hide. The auto hide is optional. Enable it using the Window menu

Release (1510.12) - 12th Oct - for Visual Studio 2012, 2013, 2015

  • Resetting and flushing of the serial port prior to upload is no longer the default. In earlier versions of the arduino ide flushed the port but it no longer does. This means a historic option for boards.txt "upload.disable_flushing" is now discontinued. (Optional: Visual Micro now supports upload.enable_flushing=true should the older functionality be required). This should resolve a few forum reports whereby upload fails sometimes for some boards.
  • Build, Build & Upload buttons attempt to discover an Arduino project from the "Startup Project". If an Arduino project is not found then the project of the Active Editor Document is evaluated. If the active document provides an Arduino project it is used. Otherwise if an Arduino project is not found the buttons, if visible, will not perform any function.
  • Removed the word "Tools" from all in program help text and tips.
  • New C++ project template called "Arduino Library" that demonstrates how to create or develop arduino libraries
  • Debugger supports Cosa again (failed a few versions ago, when esp8266 debug was implemented)
  • Visual Micro tool bars default to only showing when an arduino project is open. Control this setting via the Window menu. Un-tick to always show Arduino bars
  • Tool bars default to Row 3
  • Including/showing Arduino core and library files in a sketch projects might cause compilation failure.
  • Added intellisense define for  __AVR__ or __ARM__ depending on hardware. (fixes intellisense problems with libraries such as TimerOne)
  • Added "Debug Continue" tool bar button. The button is hidden when debug is stopped, disabled when the arduino code is running, enabled when stopped at a breakpoint. Performs the same function as F5/Continue.

Release (1509.14) - 14th Sept

  • Bug Fix: The 'Window - Auto Hide' commands failed (tip: Toolbars can be switch off fully using the right-click menu of the empty tool strip areas)
  • Add: Project Properties icon to the 'Micro Project' toolbar and the 'Visual Micro' menu
  • Toolbar button - Tool tip improvements
  • Will support Arduino 1.6.6 new documentation location (when released by
  • Bug Fix: Cpp files in the sketch/project folder failed to compile unless "tools>options>visual micro>compatibility>compile files in project" was set to False (default is true which looks at the project to determine the files to compile as opposed to looking in the physical sketch folder). This was a bug that existed only in the .9 release from earlier this week. Note: Cpp files in sub folders compiled correctly.
  • Bug Fix: Using "Show arduino core and libraries sources also was affected in the same way as the bug described above.
  • The 'Compile & Upload' tool bar button now performs a debug upload if debugging is enabled

note: Intellisense will shortly be improved when we add support for the new arduino 1.6.6 ctags pre-processing. This will especially benefit non-standard arduino boards.

Release (1509.9) - 9th Sept

  • Ignore _core and _libraries folder during compile (Last version incorrectly attempted to compile these folders of "Project>Show arduino code and library sources" had been used
  • Ensure only .cpp, .ino, .h and .hh files are copied to temp during build
  • Move debug stop button to be next to the upload button
  • Please Note: The Visual Micro "Upload" toolbar button currently performs a non-debug compile, use Windows debugger, F5 etc to debug
  • Increased the length of the trial of the Pro version to 90 days

Release (1509.08) - 8th Sept

  • Project folder is always added as compiler include path unless disabled with board property "compiler.always_include_sketchfolder=false"
  • Pro version supports local sketch libraries in "[sketch\_micro-api\libraries"
  • Tools>Options>Compatibility provides settings to restrict the build process to Arduino Ide compatibility
  • New menu item  "Items>Add>Arduino Library" will create a new local library within the current project. The library will be #included into the .ino source code in the same way as a standard library would be #included.
  • 'Tools>Options>Compatibility>Compile Files In Project' - Support sub folders for each sketch, compile the files included into the visual studio project (except the "_micro-api" folder). Switching to False compiles on the files in the sketch folder (same as Arduino Ide)
  • 'Tools>Options>Compatibility>Compile ALL Project Folder Sources' - Regardless of which files are tagged into the project, compile all files found in the root of the project folder (ino,cpp etc) (Default=True for compatibility with the Arduino Ide)
  • 'Tools>Options>Compatibility>Allow Local Libraries' - Allows local project libraries to be placed or created under each project in folder "_micro-api\libraries\[theLibName]"
  • Added "Compile" button to the "Micro Project" tool bar and Visual Micro menu
  • Added "Compile & Upload" button to the "Micro Project" tool bar and Visual Micro menu
  • Moved "Install library from zip" to the libraries menu
  • Added "Refresh" to the libraries menu which is the same as Rescan in the micro explorer. Refreshes the installed library and hardware views without need to close and reopen the ide.
  • Prevent VS from creating annoying ipch folder below each sketch. Automatically set c++ intellisense to use fallback location. Automatically switch off C++ intellisense "using fallback" notification. Disable this feature via "Tools>Options>Visual Micro>User Interface>Use Intellisense Fallback Location". When the fall back location is being used the \ipch folders below each sketch will no longer be used and can be deleted. BY default the "fallback location" us windows temp but the path can be altered in "Tools>Options>Text Editor>C++>Advanced"

Release (1508.31 Sp1)

  • Both versions of Visual Micro are now on the same release
  • Support Arduino version up to and including 1.6.6
  • Fix installer failing for some vs2010 and Atmel 6.2 users

Release (1508.30) - The latest extension version of Visual Micro now supports 2012, 2013 and 2015

  • Tool bars have been renamed from "Arduino" to "Micro". Any bars remaining that start with the text "Arduino" can be deleted using the "right mouse>customise" command on the tool strip. If any "Arduino" bars do exist they will be from the older add-in version of Visual Micro that was unable to uninstall as well as the new Extension version.
  • NOTE: If you are upgrading 2012-2013 then uninstall the older version of Visual Micro from "Control>Panel Add Or Remove Programs"!!
  • Visual Studio 2010 and Atmel Studio 6.2 are now obsolete but still available via the downloads page. Support for Atmel Studio 7 will be a released as a new "extension version" of Visual Micro shortly.
  • SP1 - Esp8266 intellisense improvement (include sdk path in intellisense discovery)

Minor Update 1508.20 for Vs2015 / 1508.14 Sp5 for Vs2013 and below - 20th Aug

  • Fix: Debugger Visualizations failed
  • Remove Debugger.dll from windows GAC and install locally with each installation

Minor Update 1508.19 for Vs2015 - 19th Aug

  • "Serial Monitor>Echo" crashed. It is now possible to use the Visual Micro port echo facility in Visual Studio 2015

Release (1508.14) 

  • Support for Arduino preferences.txt in appdata\local
  • Support for Arduino preferences.txt in appdata\roaming (default if \local is not found)
  • Support for Arduino preferences.txt in [arduino_ide_folder]\portable (default if exists)
  • Location of Arduino preferences.txt is the default for all downloaded contributions
  • Downloaded contributions storage location also has a master override in the Visual Micro options

Arduino 1.6.6 has re-located preferences and contributions folder from appdata\roaming to appdata\local. The list above ensures that Arduino 1.6.6 and earlier versions are supported. Visual Micro will switch from roaming to local after the arduino ide 1.6.6 or greater has been run once.

Release (1508.14) - 17th Aug Sp3

  • FIX - VS crash starting up if Visual Micro was pointing to an invalid Arduino Ide location path

Release (1508.14) - 14th Aug - Sp2

  • New Breakpoint Command language, free upgrade for Pro users
  • @Add your own commands to open source visualizations or use the provided @Plot example 
  • @Plot to a single graph per window or multiple graphs per window.
  • @Plot single or unlimited windows.
  • @Plot in colors of choice or that make sense (eg: same as wiring colors)
  • @Plot with labels
  • @Plot also includes automatic sliding time window and automatic min/max Y axis
The example below shows the Breakpoint "When Hit" syntax required to display a graph or Motor1 and Motor2 in a "Motors" window and a single @Plot into a window called MyAnalog
Plot unlimited graphs without hacking any Arduino code. Add graphs names, single or multiple plots per window, unlimited windows

Release (1508.14) - 14th Aug - Release - All Visual Studio Versions ( vs2015 Recommended )

  • Support Arduino 1.6.6 and below
  • Ignore pre and post build events that are defined but empty
  • Add compiler switch "-relax" for the mega2560. It was missing from 1.5+ Arduino builds
  • Implemented new arduino ide pre and post build events (sketch, library, core, objcopy etc.)
  • Free memory graph and Analog graphs failed in Vs 2015 (minor update 1508.14.1)

Release (1508.10) - 10th Aug - Release - New Version for Visual Studio 2015

The first full release of Visual Micro as a Visual Studio Extension. Currently only supports Visual Studio 2015

Install from the Microsoft Gallery, no more silly .msi installer issues! Yipee!

  • Toolbar>debug->stop closes all debugger windows including the serial monitor
  • Open source debugger visualizations have been implemented, working examples include:- Digital Pin viewer, Analog Graphs and other examples
  • All functions that were available in the add-in are now available in the Extension

Release (1508 +) - 1st Aug - Beta - New Version for Visual Studio 2015 - Recommended

  • Visual Micro has been released as an Extension in the Visual Studio Gallery. It is recommended over the previous version which are in add-in format.
  • Much easier installation. None of the problems associated with the windows installer used by previous Visual Micro versions
  • Improved User Interface
  • Works faster, smoother and very robust
  • Download and Install

Previous add-in releases for earlier versions of Visual Studio and Atmel Studio

Release (1507.26) - 26th July - Beta

  • Intellisense for Arduino 1.0 was broken in the past few releases of visual micro
Release (1507.25) - 25th July - Beta
  • Fully implemented upload and/or debug for Arduino Zero NativeUSB or Programming Port. Supports debugging over usb, bluetooth, radio
  • Tutorial mode messages are more informative and appear less often. (tip: switch off tutorial mode using the "tools>visual micro" menu
  • The "Burn boot loader" is now also available in the free version of Visual Micro.
  • Improved integration with Atmel Studio

Release (1507.05 Sp6) - 24th July - Stable

  • Programmers list only showed avr programmers unless the board had additional menu options
  • "Tools>Upload using programmer" renamed to "Use programmer for upload"
  • Selecting a programmer automatically switches on "Use programmer for upload"
  • Programmer can now be toggled on/off with less clicks.... If "Use programmer for upload" is ON, then clicking the selected programmer on the "programmers" menu un-selects the programmer and switches OFF "Use programmer for upload"
  • Validation and fix of Visual Studio C++ intellisense and syntax color for Arduino .ino and .pde source code is performed each time Visual Micro starts. Some users report that the installer sometimes fails to configure the code editor for C++ intellisense and color syntax code
  • In Atmel Studio, selecting the "Arduino Zero or Due" boards and then clicking "File>New>Arduino Project" creates an armgcc project instead of an avrgcc project.
  • Tip: If you switch between atmel 8 bit and 16 bit boards then delete the .cppproj from the sketch folder and re-open the [sketch].ino. This will cause a new project (cppproj) to be created of the correct type. This only applies to Atmel Studio and not Visual Studio. In future releases Visual Micro will prompt when changing board if the project needs to be re-created. (This is how Atmel Studio works and out of our control)
  • .net4 Installer fixes and improvements!

Release (1507.05 Sp1) - 18th July

  • Fixed tool chain load issues with versions of arduino below 1.6.2
  • Project property - Extra flags is included in the compile of all cpp/c/s files
  • New project properties:- extra cpp flags, c flags, s flags, ar flags, c.elf flags, elf2hex flags ++
  • Programmers menu refreshes and shows a full programmers list when platform is changed
  • Atmel Studio new programmer option "Atmel Studio Device Programming". This open opens the atmel device programming dialog allow users to manually upload. The location of the compiled .elf will be pre-filled allowing upload within a few clicks. If Visual Micro debugging is configured the debugger will start after the device programming windows closes (regardless of successful upload)
  • Tested digital and analog debugger charts using break-point "When Hit" watch expressions {@ReportDigital} {@ReportAnalog}
  • Installs outside of the default "Program Files (x86)" folder sometimes failed to load in Vs2013 and other Ide's. More so for 32 bit systems.

Release (1507.05 Sp1) - 6th July

  • Removed esp8266 from Atmel Studio (appreared by mistake in previous versions. use visual studio for the esp8266)
  • Fixed Maple builds

Release (1507.05) - 5th July

  • Compatibility improvements
  • Automatic breakpoint insertion on loop(), when Tutorial mode is enabled (see tools menu)
  • Digital and analog pin viewers .net4 compatibility
  • Removed board options 'tool bar' (you can delete the bar if it remains in the ui). Board options are now only available via the Tools menu due to a bug in VS
  • Full paid version has new features:- Install hardware from zip, install library from zip, explore installation folders, view toolchain source code, burn bootloader, library manager, view/explore the full Arduino core and library source code in each project
  • New project properties - "Extra build flags" for the project and also for the currently selected configuration. Works similar to the extra defines option but allow a standard list of compiler flags and include folders such as -I"c:\additonal\linclude"

Release (1505.19 Sp7) - 30th May 2015 - Required for Arduino 1.6.2+ and also for esp8266

  • Workaround for bug in sharpziplib. Failed to unpack esp8266 tar.gz tools correctly. If have installed a 1.6.4 8266 tool chain it is recommended to use boards manager to uninstall then re-install. The last download will be used to reinstall so the time to install should be short.
  • All hardware version numbers are now calculated correctly including version numbers such as "1.6.4+1.0". If you have previously installed an Intel or Esp8266 core using the visual micro boards manager you should uninstall and re-install again.
  • Compile would fail if the arduino ide was used to install hardware due to version number issues. This release will compile all hardware installed ether using the arduino ide or visual micro boards managers.
  • Support for contributed hardware packages with duplicate names but in different index.json files. Platforms of the same architecture  are merged where the same version does not already exist, tools are merged where the same version does not already exist
  • The previous addition is required to support the esp8266 supplied by both the adafruit and esp8266_community index files. Previously visual micro would load the adafruit version 1.6.1 and 1.6.2 but fail to load the esp_community 1.6.4 version. This caused a compiler error if esp1.6.4 was installed.

Release Ready (1505.19 Sp4) - 30th May 2015

  • Strip illegal // from include paths (caused intellisense config to fail esp8266)
  • Note: esp8266 latest release makes use of additional info after the version number which confused visual micro to believe that 1.6.4-673-g8cd3697  is version 1.6.0. 1.6.0 is older than previous releases thus some confusion can arise. Please ensure that only one esp8266 package is installed in 'c:\users\[username]\appdata\roaming\arduino15\packages\esp ...'
  • Note: visual micro uses sharpzip to unpack the board manager tar balls. This sometimes fails for the esp8266 package. We will move to using 7zip in the next release of visual micro which will fix the problem. for now use the arduino ide boards manager to download and install the esp8266 core
  • Hide empty board options menus. Menus are hidden for the board and platform that contain unused menu definitions (esp8266)
  • Intellisense - Auto discover include paths from compiler recipe Previously paths were hard coded per "known" platforms
  • Esp8266 extended intellisense paths
  • Atmel studio updated to the same level as Sp2-4. The changes of the last two service packs had not been applied to the Atmel Studio features of Visual Micro.

Release Ready (1505.19 Sp3)

  • Can now Activate the Pro version on networks that use a proxy
  • Install of arduino in root of a drive caused intellisense issues due to some confusion with the old 1.0.x support

Release Ready (1505.19 Sp2) - 24th May 2015

  • Intellisense fix for all non-avr boards when the arduino ide was installed in a location such as "c:\program files". (Caused by an attempt to invoke Arduino 1.0 compatibility for Arduino 1.5+ ide's, has existed in most versions since mid 2014). Sorry!

Release Ready (1505.19 Sp1) - 23rd May 2015

  • Energia build fix

Release Ready (1505.19) - 19th May 2015

  • Compiler cache ignores files with names that start with a "."
  • 1st compile of each project (after opening the ide) re-uses previous compiler cache if it is valid (this was a bug in the previous RC)
  • Applications config .txt file has been renamed because the Microsoft installer sometimes failed to overwrite it

Todo: add an sha1 .sig file after downloading .json index files. tip: you can change the downloaded contributions path in tools>options. this will provide visual micro with a different set of downloaded hardware in boards manager compared to the Arduino IDE

Release Candidate (1505.17) - 17th May 2015

Includes board menu options, 3rd party intellisense fixes, change build and/or contributions folders, education/all_user install improvements and more ...

Full support for Arduino and third party board option menus

  • Intellisense defines are now calculated automatically from the build definition which provides a better level of intellisense for 3rd part boards.
  • Files in the variants folder with name starting with a full stop are now ignored. Previously caused intellisense to fail on boards such as the esp8266. (This rule already applied to all other folders)
  • Compiler cache auto detects a Boards Manager version update and also detects changes to any of the new Board options menus.
  • The first option of a board is automatically selected if no selection has been made by the user.
  • Ability to reassign the temp build folder location using "Tools>options>visual micro>compiler>temporary build path"
  • Ability to reassign the downloaded contribution folder using "Tools>options>visual micro>application locations>contributions path". NB: Useful for educational use in conjunction with the standard remote admin deployment features of visual micro (all users installs)

The Board Options are also implemented as an optional tool bar. The tool bar will appear automatically for new Visual Micro users. Existing users need to click "tools>visual micro>reset user interface" before the bar will appear.

As with all tool bars, this bar can be hidden or removed if required (right click>customise) it will not re-appear until you unhide it or use the reset command described above.

Arduino board options menus are also available as an optional tool bar (click to view a larger picture)

Release Candidate (1505.15) - 14th May 2015

  • Intellisense working again for 3rd party boards
  • Intellisense fix - Prevents intellisense from reading files with names that start with a "." (which are invalid and caused VS intellisense to fail)
  • Library Manager is now also available for Arduino 1.0.x and 1.5.x Ide's
  • If a project's normal compile completes correctly but debug compile fails a message box is displayed informing the user that either the board is currently unsupported for Visual Micro debugging or there is an error in a breakpoint (such as an invalid condition). For unsupported boards the message recommends switching off debugging by switching the configuration from "Debug" to "Release" (the configuration can be changed using the tool bar)

Release Candidate (1505.13) - 13th May 2015

  • Correct a number of issues loading additional board support urls
  • Additional urls per app can be specified on the Ide locations window (see below)
  • Quick lookup link to the official arduino unofficial board support url repository Smiley

Arduino board options menus are also available as an optional tool bar

  • Coming soon - the ability to use different contribution storage locations per ide

Release Candidate (1505.12) - 12th May 2015

  • New format libraries with a \src folder did not show as installed on menus or in the Library Manager.
  • Auto detect new Arduino ide format - Remove need for users to change the visual micro app paths from, for example, Arduino 1.5 to Arduino 1.6. Previously, until the selected Application was changed in the 'Visual Micro Ide Locations' window, compiler errors would have been encountered such as:- missing property {}

Release Candidate (1505.11) - 10th May 2015 

  • Fix: Ide libraries were not resolved correctly in the previous Release Candidate
  • NOTE: Intellisense for third party non avr/sam hardware is failing for Arduino 1.6+. Fix to follow within next week.

Release Candidate (1505.10) - 10th May 2015 

  • preferences.txt boardsmanager.additional.urls switched from ';' separator to ','
  • Support for Arduino 1.6.4
  • Support for third party programmers that inherit tools from another package (IE: Pololu etc.)
  • Core compiler - ignore sources with names that start with a "."
  • Fix - #Includes that were not libraries and not sketch source code would cause a compiler error (applied to current RC/beta only)
  • A comma sep list of additional contributed board supports urls can be specified in the ide locations window. They will only be used if the ide supports Boards Manager. Tip: The adafruit package includes the esp8266 we suggest you ignore and do not use the package until it becomes stable.

Release Candidate (1505.04) - 4rd May 2015 

  • Visual Studio 2012 and 2013 "New C++ Project" template called "Arduino Project" (as an alternative to "File>New>Sketch Project")
  • Visual Studio 2013 has an Arduino IoT Project in the windows Windows IoT section. The project can be used to allow the Arduino to communication with a windows 10 IoT device.
  • Visual Studio 2013 has a new "Visual Micro" section in the C++ templates section with a new project template called "Blink Led"
  • The Arduino examples list in the Micro Explorer scans additional folder levels for examples

Release Candidate (1505.03) - 3rd May 2015 

  • Version 1 format libraries that do not contain a matching header.h were incorrectly resolved as Version 2 format causing compile to fail with a missing header files error or a compiler cache error.
  • Libraries from inherited hardware are available to 3rd party hardware. For example: Arduino>Hardware>AVR>EEPROM available to Pololu because the boards.txt build.core is set to arduino:arduino
  • Installed contributed hardware takes precedence over ide/hardware when resolving 3rd party inherited cores (unless the 3rd party core is installed in "Arduino>Hardware" and not "Sketchbook/Hardware"
  • PSTR intellisense error resolved. Please report any other intellisense errors so we can add them to the master list or investigate (nb: compile should always be the accurate truth)
  • Moved installer and shared api from .NET3.5 to .NET 4.0
  • Visual Studio 2008 is no longer supported (reminder: visual studio 2013 community is free and is supported by visual micro)
  • Library Manager and Boards Manager included in the free tool

Release Candidate (1505.01) - 1st May 2015 

  • Many intellisense fixes when using arduino 1.6.3. AVR and SAM now good, Intel and others still need work
  • Boards Manager will look for multiple package_[vendor]_index.json files. This allows 3rd party hardware vendors to provide their own indexes for the Boards Manager. The new hyperlinks on the Boards Manager such as 'View packages folder' provide one click access to the location where the index files need to be stored.
  • Multiple http urls can be provided using the arduino preferences.txt property "boardsmanager.alternative.urls"
  • The full list of programmers now show correctly for 3rd party hardware such as Adafruit Trinket
  • 3rd party hardware with Arduino 1.6.3+ compiles and uploads correctly when using a programmer.
  • The new AVR tools are now discovered and by the compiler after installing updated AVR firmware using the boards manager. This failed previously because the avr tools and cores are both downloadable and installed with the arduino ide. Visual Micro was defaulting to using the version installed with the ide.

Release Candidate (1504.20 Sp3) - 26th April 2015

  • The compiler will now use an installed contribution in preference to the platform that might have been installed with the ide (IE: [ide]/hardware/[package]/[platform])
    • Example: Allows Arduino AVR 1.6.2, 1.6.4 or 1.6.5 to be installed using the Boards Manager alongside an Arduino 1.6.3 Ide. (note: Upward version support might break in the future if Arduino (or another package author) make breaking changes to a new release. Keep Visual Micro up to date)
  • Boards Manager: The latest package version was calculated incorrectly causing the "Info Panel" display to suggest earlier versions of hardware instead of later versions. 
  • Boards Manager: Info panel of Latest versions, when a package is installed it will show "INSTALLED" in green (with older versions showing in gray). Where a newer version is available to the installed version "INSTALLED" will always show in red.

Release Candidate (1504.20 Sp2) - 25th April 2015

  • Use of the RecycleBin by the Boards and Library Managers is now silent and does not prompt to delete temporary index files.
  • To determine the format of an Arduino library, test to see if a [Libname].h exists in the route of the libarry folder. Previously the test was for the /src folder which broke the compile for libraries such as ArduinoJson which is "Format 1" but uses a "Format 2" /src folder for auxillary sources.

Release Candidate (1504.20 Sp1) - 25th April 2015

  • A demo debugger breakpoint is no longer created automatically if no breakpoints exist in the current sketch. The feature can be re-enabled by setting "tools>options>micro debug - automated>loop() - Auto Create Breakpoint" to True. (tip: mass install/all users can all achiever options globally)
  • Micro explorer: Sketchbook folder added to the list of shortcuts
  • Micro explorer > "Installed" tab: Removed tooltip message "Rescan required" from the "one-click board or library selector" links
  • New advanced build property added: {build.source.path}

Release Candidate (1504.20) - 20th April 2015

Known issues
1) No progress is displayed when downloading large tool chains (see file size in info panel prior to clicking install)
2) Some of the library "new release" version reporting is slightly confused suggesting an older version is now available
3) Library and Board Manager fail to load index in Visual Studio 2008
4) Uninstallingtool chains that have files in exccessivly long paths causes an error when attempting to reinstall. This is because some files fail to delete during uninstall. You can delete them manually by clicking the link in the info panel to the "download folder>packages>platform>release". Or use the Arduino ide to reinstall the package (which ignores the problem).

Board Manager

Library Manager

  • Fully compatible with Arduino 1.6.2+ which introduces some significant but useful changes. (Complete compatibility with previous Arduino versions is still provided by Visual Micro)
  • Micro Explorer - Boards Manager - Downloadable hardware with version management
    • Auto notification of new releases of board packages
    • Download and install any version
    • Controlled download once to staging area
    • Automatic install of core and tool  chains
    • Graphical keyword searchable view of packages
    • Info panel with package details and hyperlinks to view sources, tools or downloadable internet content
    • Auto discovery of new packages from the package_index.json in the repository happens once per session (or after a re-load/re-scan) when the Board Manager tab is clicked. If download fails the existing index is used but  of course downloading any new hardware will fail
  • Micro Explorer - Library Manager - Downloadable libraries with version management
    • Auto notification of new releases of board packages
    • Download and install any version
    • Controlled download once to staging area
    • Automatic install of core and tool chains
    • Graphical keyword searchable view of libraries covers library name, maintainer name, author, category ++
    • Info panel with package details and hyperlinks to view sources, tools or downloadable internet content
    • Groupings with counts auto filtered by search results (ie: Category, Library Author, Library Maintainer
    • Auto discovery of new packages from the library_index.json in the repository happens once per session (or after a re-load/re-scan) when the Board Manager tab is clicked. If download fails the existing index is used but  of course downloading any new libraries will fail
  • Compiler defines ARDUINO_ARCH_ and ARDUINO_[BOARD] replace invalid chars with underscores
  • Tested the Esp8266 Ide and found to be working. The 8266 ide now appears in the ide configurations list so both Arduino 1.6 and the Esp version can be used in the same solution. Esp8266 is a very cheap option!
  • The "Micro Explorer" has been rename to "Visual Micro Explorer" and has been given an overhaul
    • Searching for board names
    • One click add board or library to the active editor sketch (if a sketch is open)
    • Direct access to Ide Locations Configuration tool
    • Re-scan button reloads the current editor tool chains
    • Installed platform and boards list (first tab) provides overview panel with hyperlinks to install paths such as sketchbook folder, install library from zip (beta), install hardware from zip (beta).
    • An "All boards list" now appears above the list of packages in the tree. When searching the "All boards list" filters based on board name, platform name and/or package name.
    • Many more tool tips to explain what is being viewed and what can be done
    • No apps or misconfigured application paths are reported in the explorer view in red. The explorer can be used to configure or remedy the problem
    • When no apps are configured the Micro Explorer displays the setup guide.
    • Green and purple VM Documentation toggle button on tool bar
  • Import library from Zip has been added to the "Project/Add/Import Library" menu (above the refresh button)
  • Support for new Arduino build properties that provide tool and core locations to the build process. Older versions of Arduino are still supported
  • In platform.txt, pre and post build hooks can now be specified. Example: recipe.hooks.prebuild.0.pattern=mycommand.exe "Hello {build.source.path}"
  • "Start Debugger Trial" prompt removed for first time users. A trial is automatically started

Release Candidate (1503.18 Sp1) - 21st March 2015

  • Support for the new Teensy 121 with Arduino 1.0.x (Arduino 1.6.1 with Teensy is not yet supported)
  • See the Teensy page for instructions
  • There will be no forum support about how to configure Teensy in any other way than described in the above article. Advanced users who understand the boards.txt config system can also configure their own boards but Visual Micro will not support the discussion in the forum

Release (1503.18) - 18th March 2015

  • Support for Arduino 1.6.1

Release Candidate (1503.07) - 7th March 2015

  • Support for Energia 0014
  • New build properties allowing for more flexible build processes in addition to full support for the Arduino 3rd party (custom hardware) build process
  • Support for the "Wiring Ide", which provides an alternative compile for a wide range of hardware such as:-

Release (1502.14 Sp4) - 3rd March 2015

  • Support for the new TeensyDuino beta
  • Added (serial.port.num} to the automatic build vars (used by Energia cc3200 upload)

Release (1502.14 Sp3) - 28th March 2015

  • Breakpoints on comment lines are ignored
  • Fix: Breakpoints on empty lines were not hit in the 14th feb release

Release (1502.14 Sp1) - 15th Feb 2015

  • Auto detect gcc version for Visual Studio intellisense improvement
  • Right click in the Visual Studio "Error List" tool window to toggle intellisense in/out of view
  • Added additional intellisense and custom programmers to the Arduino 1.6 Ide (missing from the initial release)
  • Roll-up of all 1412.10 beta service packs
  • Show compiler errors and warnings clearly in the "Error list"

Doc note: Arduino Error List management in 1502.14

In previous versions the "Error List" was not so useful. In the latest release warnings can be filtered out of view, making it easy see the real compiler errors. right click the Error List.

tip, right click the "Error List" to remove intellisense errors and see only compiler errors.

The image shows how Arduino compiler errors and warnings can be viewed in a variety of ways, intellisense errors can be excluded

tip: in the ide all tabs can be dragged and moved. By default the compiler output and the Error List share the same tab bank which makes it difficult to see both at the same time. In the above example the output window has been dragged to a new position below the "Error List"

Beta (1502.14) - 14th Feb 2015

  • New Arduino 1.6 configuration option. (Currently works the same as 1.5 because they are the same)
  • Rename 1.5.x to 1.5+
  • When possible retain board selection when switching between ide's

Beta (1412.10 Sp7) - 2nd Feb 2015

  • Debugger - Modify variables defaults to ascii if a format has not been supplied. 
    For example: setting the value of 123 into a watched expression of {myInt=?} would set the value of myInt to 123. Previously {myInt=?,DEC} would have been needed. Use {myInt=?,HEX} or {myInt=?,BIN} to force a different format.
  • Fix for error 'DBG_Millis undefined' during debug compile. (issue in last service pack for some non-atmel hardware)
  • Compile assembler files that exist in the sketch folder
  • Do not auto create sketch code prototypes if they already exist. The signatures must match based on a string comparison for example void foo(int bar) must prototype as void foo(int bar);   (see
  • Tested with Arduino 1.6 which is just 1.5 with a new name :)

Release (1412.10 Sp6) - 22th January 2015

  • Fix: Ensure that all compiler error messages are shown in the output window!!
  • Debug support for Cosa custom core
  • Source code with .hh extensions are now displayed when toggling "Sketch core and library sources" into a project

Beta (1412.10 Sp5) - 15th January 2015

  • A new project property has been added to the "Misc" section called "Upload Port". The property enables users to see and manually change the port used when uploading the current project. The property is the same property that is configured when using the tool bar or ports menu to specify a project port so this modification simply makes the property visible and editable.
  • Network upload without Apple Bonjour for windows is now possible. Use the "Upload Port" project property to specify the ip address of the Arduino Yun or yun compatible SSh hardware. tip: Without Bonjour, ip addresses will not be displayed in the Visual Micro ports lists but are reachable if specified for the project.

Release 1412.10 Sp4 - 15th January 2015

  • Added sketch path to project "include paths"
  • Removed fully qualified #includes from vsarduino.h, not sure if this is right because macros like F() become an issue
  • Redfined F for intellisense purposes
  • Removed __DOXYGEN__ define from intellisense extra defines list
  • #Include arduino prior to adding prototypes to vsarduino.h, ensures datatypes are defined first
  • Platform intellisense.h mods
  • Ignore invalid wmi objects/ports
  • Resolve friendly Bluetooth device names
  • Ignore duplicate ports when .NET gets confused with its ports list. (Bluetooth tests showed duplicate ports (COMx,COMx) were sometimes displayed
  • Fixed: Visual micro raise an error and disabled port name discovery when duplicate or invalid/disabled ports where found
  • Serial monitor: Support special time-stamp serial syntax, sent to the pc (example below)
  • Ignore debugger breakpoints in commented code
  • Fix - Arduino 1.5.8 compile/upload failed if winavr (or ano) is installed on the same pc
  • Fix - Support for dis-assembly view for 1.5.x platforms
  • Fix - Debugger break "jump to source" often failed to activate the correct source window

Serial monitor will automatically detect <<dt>> and <<t>> replacing with current pc date/time
Serial.println("<<dt>> Hello world");
Serial.println("<<t>> Hello again");
15-01-01 02:55:35 Hello world
02:55:35 Hello again
nb: For this to work the entire <<>> string must be received by the pc in one packet. Force this using Serial.flush or a small delay

Beta (1412.10 Sp2) - 22th December 2014

  • Fix - Compiler Cache for Arduino 1.5 format libraries
  • Fix - "Project Add/Import Sketch Library" - #Include Arduino 1.5 format library headers

Beta (1412.10 Sp1) - 20th December 2014

  • Graphical Visualizations failed in recent releases
  • I2C discovery - Debug status reports limited to "when values changed" in the message output window and every 15 seconds or "when values change" in the trace window
  • Start/continue existing debug session by opening a project then opening the serial viewer - Auto sets the correct port speed
  • Reduced amount of garbage that is sometimes displayed when a Serial connection opens
  • Prevented 7 second delay that could happen when the serial monitor opens and if the serial port was initially missing or busy

Release (1412.10) - 10th December 2014

  • Fix: Compile sketch files with "-" in the name.
  • Allow libraries with dashes in the name to be available on "project>add/import sketch library"
  • Prevent library folders without header files from appearing on the "project>add/import sketch library" menu
  • Arduino REV2 format library \src is now buildFolder\LibraryName. Previously this was buildFolder\src which caused a "multiple definition" error during some compilations
  • Visual Studio: "Project>Show Sketch Core and Library Sources" library sources are now displayed recursively in the project explorer
  • Tighter Atmel studio SDK integration
  • Debugger attempts to auto-discover if a sketch is already using the serial at a different speed to the Visual Micro default of 115200. If discovery is successful then Visual Micro automatically uses the discovered speed. 
  • Mass rollout/install instructions for enterprise/educational users. Includes auto-activation license keys + ability to configure any Visual Micro config option at global machine scope
  • Full support for third party hardware that shares definitions with the arduino 1.5 core (such as Pololu)
  • Implemented Atmel Studio "Show all sketch core and library files" (core and libraries). This already worked in VS but not As6. Allows Arduino core and libs to be linked to the project (with auto update). Also includes facilities to remove items again. Linked sources wil be located in src/sketch-api-readonly. note: Import sketch-api coming soon.
  • "Project>Show all sketch files" collapses the core and library sources in the solution explorer.
  • "Project>Show all sketch files" correctly displays links to all Arduino library versions REV0, REV1, REV2
  • TI, CC3200 platform.txt, uploader command name added
  • Compiler 1.5x platform.txt changes for MpIde (Aug 2014)
  • MpIde "sizer command" and "regex" in platform.txt changed to return correct amount of used memory
  • Internal changes to support running as a Visual Studio extension instead of an add-in (not active in this release)
  • Texas Instruments lm4f intellisense improvements
  • Added support for Energia cc3200 boards
  • Add/Import Library no longer collapses the solution explorer
  • Removed obsolete prompt ('master sketch not found') when adding/importing a library
  • All builds refreshed with a fix for some intellisense errors in Visual Studio 2012 and 2013
  • Burn boot loader via COM port:- failed if a sketch compile or upload attempt had not been made in the current session
  • Atmel Studio - Create sketch project includes the sketch.ino instead of adding it as a short cut
  • Sketch/Visual Micro folder defaults to collapsed state
  • Atmel Studio - "Open sketch project" adds source codes that exist in the sketch folder but are not found in the project (auto configure).
  • Library header files discovery - If the same header.h exists in two different libraries. The first library that is resolved will be used. Reminder: Library resolution can be controlled by the order of #included headers. Alternatively #imports can be prefixed with a library name. Libraries that contain a matching #imported LibName.h will be resolved first.
  • "Project>Add/Import Arduino library" to native gcc projects that have imported or linked Arduino sources
  • Otherwise users must still set the speed via "project properties>remote speed"
  • Edited sketches are saved to the recently used files on the Atmel Studio Start Page
  • Third party hardware architecture specific libraries are combined with, but take priority over, other architecture specific libraries of other related ide packages. For example: the "Pololu A-Star" will support Ide/avr libraries with the SoftwareSerial override that is installed with the custom hardware core found here
  • Custom hardware:- Programmers list is combined with the matching core architecture programmers.
  • Tools>Visual Micro> "Auto hide boards list" and "Auto hide ports list". Normally Visual Micro tool bars can be hidden/displayed by users via a right mouse click. These two optional new settings cause Visual Micro to only display the tool bars when an Arduino sketch is open. Useful for hard-core gcc developers that rarely use Arduino but have Visual Micdro installed
  • Coming soon. Import Arduino sketch, core and/or library code into native Gcc project.
  • Prevent warnings in Atmel Studio switching between SAM and AVR
  • Support Atmel Studio ArmGcc project format as alternative to AvrGcc
  • Atmel Studio 'File>New>Project' and 'File>New>Project>Visual Micro' include alternative 32 bit projects (use with Arduino Due)
  • Rebuild Atmel syntax color code registry keys if missing when the Ide starts. Allows for automated mass role out to many users and also prevents AS6 from destroying our keys!)
  • New build property (mainly for intellisense) allows custom hardware to override mcu device name in Atmel Studio {}
  • note: know crash workaround in atmel studio when switch hardware in CMSIS projects
  • Fixed annoying messages in Atmel Studio when using Teensy 3.1 boards
  • Tool chain tools/command locations added to runtime PATH along with Arduino Ide path. Both paths take priority which prevents programs like winavr causing compilation errors for Visual Micro.
  • Build variant support for drill down to alternative core (ie: arduino:leonardo)
  • Atmel Studio no longer shows unknown processor warning when a teensy 3.1 project is opened. (note: Existing projects require switch to any other board and then back to teensy 3.1 again to resolve this issue)
  • Sketch names that contain a '.' are now supported subject to the tool chain supporting the naming convention. (not really allowed for arduino but the arduino ide seems to build okay so we should!)
  • Serial Monitor Encoding switched from utf-8 to 1252
  • fix: Arduino 1.5.x 3rd Party Hardware now resolves manufacturer:core correctly in all situations
  • Project defines support {build properties} merge fields
  • Arduino 1.5.7 compile and upload paths force Arduino folder as a priority in the PATH statement (only affects the current process does not write back to global pc settings)
  • add: {serial.port} config variable provided to hardware programmer upload for Arduino as ISP
  • add: support {runtime.platform.path} config variables
  • mod: Serial viewer encoding from ascii to utf-8
1407.10 - Fixes & Additions (10th July 2014) - Release
  • Fix: Contributed/User library compiler error for some users 'The given path's format is not supported Exception' c:\avr
  • Support for Arduino versions up to and including 1.5.7
  • Support for avrgcc8
  •  click the blue "Stop" icon to stop the debugger

  • Serial Monitor Toolbar Stop Button

    ...or press Shift+[F5]

  • Better verbose messages for compiler -I includes and library location discovery
  • Verbose compiler messages and/or warnings switches are now available from both "Tools>Visual Micro" and "Tools>Options"
  • Debugger break point "Hit Count" "Equal To" will now execute only once.
  • Fixed some confusion in the last beta regarding break point "When Hit" handling.
  • Compiler error pre-processor offsets + headerCount is now consistently used to resolve .ino/.pde source locations (Previously errors in code towards the end if a .ino file resolved to the wrong .ino/.pde file)
  • The correct .ino/.pde source code names and line numbers are automatically resolved (where applicable) for compiler error:- "Error : In function 'void foo()'"
  • Ignore obsolete 'options>tool chain locations>avr' for arduno 1.5.x uploads. Entering a location caused an avrdude upload error 'can't open config file "path": Permission denied'
  • The Arduino Due gets it's first programmer (beta)!
  • Atmel Studio - Support the new ATMEL-ICE programmer for SAM and AVR (beta)
  • Closing and then re-opening the same project/solution without re-starting the ide caused visual micro to become temporarily disabled (bug was only in 1406.16 beta)
  • Added support for pre-arduino 1.5 libraries that contain the new format Arduino file
  • Change - When debug Trace Mode is Off, Disabled breakpoints will continue to display debugger trace and messages, When Trace Mode is On, messages for disabled breakpoints will not be displayed. (the vs breakpoint dialogs do not provide enough facilities for Visual Micro, so we have tried to find the most useful combination. Feed back welcome as usual)
  • Debugger will always break/pause unless in "Trace Only Mode" or a break point has a "When Hit Message/Expression(s)" with "Continue Execution" ticked.
  • More reliable notification when the Arduino is stopped at a break point (in Break/Pause waiting for F5)
  • Shift+F5 to stop debug or click the blue square icon on the serial ports bar
  • F5 can no longer be used to stop debugging. F5 will only step when the debugger is active it will never prompt to build.
  • Fixed the debugger failing to start fully when reconnect was Off
  • In Automatic Debugging mode any configuration with a name that does not contain the text 'Release' will start the debugger after compile and upload.
  • Added "Debugger has been activated" message to the serial window when debugging starts. Previously the serial window just showed the usual "Port Open" which could be confusing for new users
  • New users defaults: Trace Only Mode = Off, Tutorial Mode = On, Automatic Debugging = On.
  • Trace Only Mode - Replaces the Enable Break/Pause project property. Defaults to Off, allowing breakpoints to break/step
  • Fix - Serial window correctly resets after upload
  • Fix - Incorrect build output was copied to Atmel Studio configuration build folder
  • Fix - Arduino Due debug with Native USB port
  • Change - Automatic debugging will only debug when the configuration name does not contain the text "release" (previously all configurations allowed debug including Release, this was confusing and prevented simple non-debug F5 upload)
  • New - Stop button (red dot) appears on the Serial Port tool bar when debug starts. The button is a quick way to terminate debug
  • Change - Only the F5/Debug command will now "Continue" at a break point. All other "build" and "debug" commands will stop the current debug session (where applicable).
  • Fix - A Visual Studio bug caused some menu items to be duplicated for some users. This affected the debug and help menu. The items have been removed or moved.
  • Fix - Some optimizations where failing during editing of sketches. This might have impacted slower pc's by causing more cpu usage then needed
  • Fix - Status bar highlighting and the "F5 Continue" message disappeared from the status bar too quickly and could be missed by users.
  • Fix - Prevent 'Upload via programmer' from resetting the serial terminal (if it is open)
  • Updated support for all micro-controller versions
  • More intelligent diagnostics with auto-fallback
  • Fix - Port discovery error stuck in loop (if a Yun was connected and no ide application paths where configured)
  • Support for lm4f and msp40 in Energia Ide released Mar 2014
  • Application locations - Warning if invalid location is specified (forum)
  • Application locations - Ensure valid folder provided by user, ignore .exe file name in paths (forum)
  • Extended verbose messages during upload
  • fix - #includes in comments are ignored
  • 'Help>Visual Micro Documentation' menu item with alpha of new help system
  • Menu Icons use less memory
  • Improved upload error reporting
  • Debugger breakpoint/trace throttle delay is now factored by PC Cpu speed
  • Bitmap for Atmel new project templates
  • Installer configured color syntax for Vs versions in line with Atmel Studio
  • Installer prompts for .net 3.5
  • Compiler errors in .ino sources displayed incorrect line numbers (drill down into source code was correct)
  • Windows wmi database errors are silently ignored until the database is repaired. then it will be used again
  • Improved status messages
  • Verbose compile reports #included paths
  • On-screen warning and additional diagnostics if the Ide application list can not be loaded from the installed Visual Micro files. Usually a virus checker preventing install or access to "micro platforms/applications.txt"
  • Users with a corrupted wmi database were unable to load Visual Micro. The windows wmi database should be fixed using advice from Microsoft however we only read from it and we can work without it!
  • Arduino versions up to 1.5.6 and 1.0.6
  • Atmel Studio 6.1/6.2 and Visual Studio Pro 2008>2013
  • Support for #import <LibDir/Header.h>
  • Include paths contains root libraries folder
  • More intelligent library compiler cache
  • Faster compiler
  • Faster debugger
  • More trace diagnostics reports such as Port and Library discovery
  • New icons
  • Atmel New project templates (same for vs coming soon)
  • Better intellisense and support for custom hardware (1.0.x and 1.5.x)
  • Galileo high speed compiler
  • More robust syntax color code
  • Fix, existing users had to uninstall the previous release and then install 1403.03 before Atmel Studio 6.2 was configured correctly.
  • Support for custom boards with bootloader.hex files stored in bootloaders root (sparkfun MegaPro).
  • Installer refresh which failed to register Visual Micro for Atmel Studio 6.2
  • Support for Atmel Studio 6.2
  • Atmel Studio new project templates
  • Arduino 1.5.6-2 + all lib formats
  • Debugger hit count bug fixes
  • TI LaunchPad Stellaris compiler bug fix
  • Many other fixes will be posted in the new releases section of the forum
  • Atmel Studio options to use Jungo Usb drivers with programmers (JTAG ICE3, AVRISP MkII)
  • Large improvements for MpIde, Pic32 and ChipKIT. Intellisense and compiler fixes/additions. Much of the Pic32 lower level sources are now available to intellisense.
  • Mpide Arduino and Pic32 will include -l the SketchFolder for both intellisense and compilations. This allows #include <foo.h> from the current sketch folder as an option instead of #include "foo.h" . Mpide supports this but the Arduino Ide does not. So Visual Micro does either depending on the selected Ide.

Tools>Visual Micro - Menu changes and additions

  • New items - Quick access to existing global options, some items renamed
  • New - "Tools>Visual Micro>Tutorial Mode" places additional messages around the UI to help new users
  • New - Verbose compiler and compiler warnings can be enabled via the Tools>Visual Micro menu.

Dis-assembly View

  • Added double click Go To source in the dis-assembly view
  • Resolve temp folder paths to sketch path
  • Resolved sketch.cpp line numbers and file names to the correct .ino/.pde sources
  • Resolve gcc format line numbers (:line) to Visual Studio (line)
  • Added support for all platforms (including All Arduino, Teensy, SAM, Intel, ChipKIT, LaunchPad, FraunchPad etc)
  • Changed default obj-dump switches to include source line numbers -l. The default is now " -h -S -l"
  • Tip: Alternative obj-dump switches can be specified in the project properties. -D is useful but might be slower to calculate the report (all)

Version 1401.12

  • Visual Studio 2013 no longer required Visual Studio 2012 to be installed!
  • Error messages now show correctly, also allowing drill down into sketch, library and Arduino source code
  • Updated VM_Boards.h to the latest firmata release. This means better support for Leonardo, Teensy3 and Sam/Due in the debugger digital pin viewer. Also provides a platform to add pwm and servo visualizations. Sam digital pin viewer is still not working!
  • Serial Auto-Reconnect which was introduced in the last version of Visual Micro now defaults to OFF. Use the Communications section of Tools>Options>Visual Micro to switch it back ON. The default will be changed back to ON after we have conducted more testing and introduced additional options/timings for certain micro-controllers (such as with the Leonardo can cause upload to fail sometimes)
  • Serial port descriptions are shown when available. This feature can be disabled in tools>options. Read more
  • Arduino Yun IP discovery. (Must have Apple Bonjour service installed)
  • Fixed Arduino Yun serial upload with wrong usb driver name (resulted from additional single quotes in the arduino boards.txt). Network upload using the Arduino Ide was required to restore the serial connection.
  • Fixed 'Burn Bootloader', it failed in last two versions with Arduino 1.5
  • Improved intellisense by switching the order of the automatic header includes
  • New - Yun network upload
  • New - Yun network terminal window (serial/ip)
  • New - Yun www upload
  • Added - Debug using network (Bridge/Console) alternative of Serial (recommend Serial upload it is faster)
  • Added - Support for Apple Bonjour Service (required to discover Arduino Yun over the network)
  • Fixed -Project>Import Sketch Library>Refresh

Features released in 1208.19

Many minor bug fixes and enhancements

In this version there are numerous minor changes to improve intellisense and general useabliblity that are not worth documenting. There have also been improvements in the Visual Studio 2008 system.

Libraries Refresh

There is a new refresh option on the "Project>Add Arduino Library" menu that, when clicked, will make any new arduino libraries that you have installed available to your visual studio project. Previously a visual studio re-start was required

Free Memory report

Optionally enable a free memory report after compile. Very useful to help see how close you are to the arduino stack limit. So many arduino projects crash because of high volume string usage or other memory consuming code. The debug beta version also includes a real-time graph of memory usage.

Disassembly View + Detailed avr-size reporting (all thnaks to Jo Sto)

New project properties allow optional disassembly and/or memory reporting during the build process. The properties are relative to the current configuration name such as "Debug" or "Release" etc.

Micro Explorer - Reference and examples explorer. A tool that makes viewing arduino help and opening or copying arduino examples much easier. Click the new help button next to the boards list on the tool bar (see below) to open the explorer


Open source debugger visualizations

Build your own instrument controls to display debug data using any .NET language and drop the resulting dll(s) into the Visual Micro Visualizations Plugins folder.

Digital and Analog Visualizations are included with the upgrade. Full source code will be available on codeplex.


Re-Compile Libraries When Project Macros Change

The next version forces libraries to re-compile when project #defines and macros are changed.

If you are frequently changing macros and are using standard Arduino libraries that do not need to be re-compiled then compilation times can be improved by disabling this feature for a specific project.

"Project Properties>Macros Affect Libraries=False"

Adding new Arduino files to a project

The default extension of new files (pde/ino) is applied based upon the current arduino version

Adding new Arduino CPP File

The resulting new cpp/h files will contain basic arduino syntax such as #ifndef, simple class definition and #include arduino.h (or wprogram.h) in arduino versions earlier than 1.0).

An extern object is automatically created within the new .cpp and .h files.

The name of the object is the UPPERCASE version of the class name or, if the class ends with the text "Class" then the object becomes the class name without the "Class" text.

For example:
1) User creates a new Cpp called MyButtonClass
2) Visual Micro creates a new .cpp and .h containing a class called MyButtonClass and an object called MyButton. MyButton will be ready for immediate use in a .pde/ino file and will include a single method called init()




Opening pde/ino files in an empty visual studio

When drag/dropping a pde/ino from window explorer, if there is no solution open in vs, prompt to open/create a new arduino project. Same applies to "File>Open File"

Serial Window

Font Size and Family set from VS Text Editor Properties

New Project Property Options

Micro Debug
Hit Counters Frequency Type (Counter,millis,seconds,hours)

Micro Reporting
I2C Scan at Startup (Auto #incude wire.h)
Read Analog Pins (default 2Hz)
Read Analog PinsFrequency
Read Analog PinsFrequencyType
Read Digital Pins (default 2Hz)
Read Digital Pins Frequency
Read Digital Pins Frequency Type

Added Breakpoint Expression Symbols


Adding this syntax to the breakpoint "when hit" property will show the values of all digital and/or analogs in the debugger expression watch window.

This allows us easily compare the difference between the values at different breakpoints and also to force an update of digital and analog values at a specific point in the code

Reminder: The more debug options you switch on, then the more arduino memory that will be used!


1207.19 - Fixes and debug beta 2


Existing Users Note: If you encounter a load error when upgrading from a previous addin version then please run the uninstall then re-install the latest version

1) Fix: Undo change to compiler prototype extraction
A change to the last two version caused compilations to fail in some multi-sketch projects. The change was due to some confusion as to why the compile failed for projects such as ArduPilot.

In this release that change has been undone which involves using the extact same prototype extraction system that the arduino ide uses. This means that projects such as ArduCopter will now compile again correctly.

2) Fix: Combine/compile pde/ino files in the correct "Arduino" order.

In all previous version of visual micro the .pde/ino files were sorted alphabetically with main sketch always first.

This was an oversight because arduino sorts the files with all the uppercase named files first and then the lowercase named files.

Example of the correct Arduino compile order:-
  • AFile.ino
  • ZFile.ino
  • aFile.ino
  • zFile.ino

This change allows projects, such as ArduPlane, that make use of this sort order to compile correctly.

3) Fix: Intellisense appeared to fail for certain libraries such as EEPROM
VS intellisense failed because the arduino avr sources include different versions of files such as eeprom.h.

Visual Micro has been altered to ensure that the avr "includes" are given less priority than arduino libraries and sketch files.

4) Fix: Improvements to the compiler cache
The compiler cache failed, under certain circumstances, to detect missing library object files resulting in the need to manually clear the visual micro temp compiler (cache) folder. The cache is now dropped if the .o (object) files are missing.

5) F12 Goto Definition now works on avr syntax
For example F12 on TCCR1A, TCNT1 now works correctly (Thanks for the report Grayble)

Debug beta testers notes

1) Note: Multiline strings are still not supported as breakpoint "when hit" watch expressions

2) Fix: Removal of comments failed sometimes during a debug compile. A new comment removal system has been implement thanks to help from Heinz Kessler.

 Summary of changes in Version 1.1207.02

  • Intellisense wasn't working correctly for cpp files
  • Fixes to the Debug Menu on the Serial window:-
  • "Stop" did not close the debug session
  • "Pause" displayed garbage in the serial viewer


Summary of changes in Version 1.1206.30 Arduino 1.0.1

  • Add: Build->Solution/Project Clean Support
  • Beta test compiler errors - Show both avr and vm (short term change)
  • Add: Leonardo upload. Upload automatically switches between COM ports
  • Change: Intellisense redesign. Huge improvement
  • Fix: Some arduino projects failed to compile (such as ArduCopter)
  • Fix: Many minor fixes in both VS 2008 and 2010
    Change: Project->Show all Arduino Files groups .h and .cpp files together
  • Change: App version numbering system
  • Add: Debug button to serial tool (beta testers only)
  • Add: Project Properties (beta testers only)
  • More info to follow shortly via
  • Tested with Arducopter and Arduplane (Huge Complex Arduino projects!)

Some historic changes from year 2010>2012, most have now been removed

  • Change: More efficient serial communications, with priority given to outgoing data
  • Change: Serial "AutoScroll" works the same way as Visual Studio output windows by detecting mouse click or keystroke position. Set the text cursor to the end of the textbox to re-start autoscroll. Starts automatically in response to certain events such as PortOpen,Clear etc.
  • Add: "Compiler Warnings" option. Switch on to see warning messages during compilations. For libs and core it is best used with compiler optimisation/caching switch off.
  • Add: Serial "send" textbox changed to combobox with commands added to a type and search suggestions list. Most recent at the top.
  • Fixed: Upload failed when the solution node was selected in the Solution Explorer
  • New: A ".vmprogram" folder will appear under sketch folders. (more info to follow shortly)



Other Pages