Arduino for Visual Studio - Release Notes

Download from inside the IDE via "Tools>Extensions and Updates". Work in progress, previous releases, alternative download and/or email notifications

VS 2019!! Tool windows (serial, explorer) might not render correclty in VS2019. We are redeveloping our tool windows, in the meantime please Switch off "Tools>Options>Environment>General>Optimize rendering for screens with different pixel densities" if you have issues. 

Visual Micro Release 1908.7.4 - 7-15th August 2019 - VS 2017-2019

  • Added a build custom event hook "core.prebuild_if_changed". This event fires if the date/time of any core file has changed between builds.
  • Build library with dot_a_linkage: Archive was not rebuilt when changes to library sources had been detected.
  • Prevent attempts to resolve headers containing \ or / from resolving to libraries. Cause compile fail in deep search for libraries.
  • Prevent preprocessor #line numbers from being added to .h/.hh etc header files in temp build folder. The STM32duino core allows users to add compiler defines as -DtheDefine format. The header is not used as a header but instaed passed as compiler defines. Adding original source #line numbers causes sm32duino to pass an invalid define to the compiler.
  • This version replaces the gallery version from 7th August. The gallery contained the 1908.7 version of Visual Micro but delivered 1908.5. Microsoft have some gallery issues that they are looking into.

Visual Micro with GDB Release 1908.5 - 5th August 2019 - VS 2017-2019

  • STM32 F1 and F4 debugger update
  • Change default to False:- "vMicro>Compiler>Add Include -I for Shared Projects"
  • ESP32 Dev Kit Usb Programmer Update
  • Shared Library Projects: If we created a library called "LibraryA" that did  not have a "LibraryA.h" and we did not #Include <LibraryA.h> in our sketch then the build failed to find the library.
  • Deep search for libraries: The cache failed for some shared library projects causing longer compile times.
  • Update structure of "File>New>Project>Arduino Library" to Arduino v2 library format containing sources in the \src folder. Reminder: the \src folder of Arduino v2 libraries automatically become a compiler -I include path.
  • Remove default capability to qualify library #includes with library name for example: #include SPI\SPI.h is not supported unless "vMicro>Global>Options>Compiler>Add Libraries Folders (-i) Includes" is set to TRUE. Note: Deep search for libraries must also be switched off to use this feature. It is not recommended to qualify lib paths with the folder name, is not Arduino compatible and can cause conflicts with libraries that also have relative path#includes.
  • ESP32 might crash at startup if libraries are installed that use relatives paths which conflict with other libraries (two reports). This is the primary reason for the change descrived in the previous point.
  • Installing libraries from Library Manager automatically adds #includes to the current project. This feature can be switched on in "vMicro>General>Global Options>Contributions>Add Includes when Installing Libraries"
  • First build or re-build might have failed for some boards. We now run the "prebuild" hook before deep search (gcc-e) library discovery. This allows cores such as STM32duino to create a default options header (build_opts.h) in the build folder.
  • Shared project compiler include paths moved to before the includes for the core.
  • NOTE: Cracked, invalid or illegal use of Visual Micro will cause the IDE to periodically stop working. At that time a dialog will be displayed asking you to contact us.

Visual Micro with GDB Release 1907.29.3 - 29th July 2019 - VS 2017-2019

Update Summary: Solution and Project libraries with library versioning. Full range of hardware programmers. Debugger fixes and extensions for esp32.

  • Updated with fixes for ESP32 WROVER (DevBoard) debugging
  • Add compiler include paths for all shared code projects. To disable this functionality uncheck the new vMicro>Compiler>Add Include (-I) For Shared Projects". This change makes it easier to reference code in shared projects from code in sub folders of an Arduino project. (ie: #include <src/SharedCode1/CodeFile1.h> or #include "src/SharedCode1/CodeFile1.h"
  • Programmers now save per project and board.
  • "Use for Upload" menu renamed to "Enable Programmer"
  • "No Programmer (default)" will now show when a programmer is not selected.
  • Selecting "No Programmer" also switches off "Enable programmer"
  • Selecting a valid programmer also switches on "Enable Programmer"
  • Add Libraries Menu > Allow libraries to be cloned to Solution or Project with or without versioning
  • Disable ability for Serial debug to debug libraries because it caused some compiler issues. The feature will be reinstanted in future releases.
  • Preserve Code and Library Versions Together: Two new menu items on the "Add Library" menu options allows libraries to be copied locally (to below the Solution or current Project folders). When Including a library using the menus the library will be copied to Solution\Libraries\LibName or Project\Libraries\LibName. A shared project and project reference are automatically created and added to the current Solution Explorer. In some siutations the Solution exists in the same folder as the project. This is not a recommended configuration and means that both menu items will perform the same action. Normally we expect Solution in a parent folder to the project which works better with tfs source control.
  • Extend architecures logic so that more libraries with invalid library.properties.architectures will resolve. for example when "arm" is specified instead of sam,samd etc. then all arm platforms will accept the library.
  • Discover libraries that failed to be discovered using the current board architecture or any other of the discovery methods that Visual Micro applies (see previous point). In this case libraries will be dscovered by header file name (.h) regardless of any architecture. If found then an attempt will be made to compile the library. Therefore, it is now possible to encounter a build error for an invalid library when previous Visual Micro versions would report  missing #includes (.h files).
  • Improve intellisense for SAMD boards
  • Updated installer to only support VS2017 15.8 and above. Older versions of Visual Studio 2017 need to be updated to use Visual Micro. This is due to some inconsistances between some common Microsoft API's in VS2017 and Vs2019
  • Update default package and library index json files. The files are used by default in the Library and Board Manager tools. After clicking "Check for updates" the files are replaced, therefore it is new users who will benefit the most from this update.
  • Initial release with an extended range of programmers for various architecures.
  • Programmer selection is now saved with project and configuration if enabled via the vMicro>General menu, otherwise programmers are saved for the project
  • Programmers tool  bar has been added to the "Toolbar Auto Visibility" menu. Auto visbility is ON by default, switch it off and hide the tool bar if not required.
  • All hardware debugger have been refreshed and tested
  • Ignore Microsoft throwing exception when attempting to reset the VS2019 after a build
  • Initial hardware debugging release required additional support and testing for :-
    • STM32
    • SAM
    • SAMD
    • ESP32
  • Add support for the hooks.sketch.prebuild events to run before the core is compiled. Teensy3 uses the event to create an arduino.h.pch in the temp build folder. The .pch file is required when the core is compiled. In future releases of visual micro we will attempt to build the sketch code before the core and libraries,  then the event will fire in the same order as the arduino ide.
  • Caused by recent changes to Async extension for VS2019 but affects 2017 too because it is the same code. The workaround for other VS2019 tool window issues caused a delay creating the tool window frame on some machines causing an internal timer startup failure.
Known issues:
  • VS2019 tool windows still to be converted to WPF (see note at top of this page for workaround, planned next two weeks)
  • Deep search cache fails for some shared library projects (under investigation)
...

Visual Micro with GDB Release 1907.16.0 - 16th July 2019 - VS 2017-2019

  • Fix VS2019 status bar crash after build when the US/UK language is not installed into windows (language did not need to be active)
  • Many updates for hardware debuggers, all platforms
  • NOTE: We will be forcing more programmers into the Arduino programmers list so that, for example, programmers such as the Atmel ICE can also be used to upload to SAM boards.
  • NOTE V2019: The VS2019 GDB (MI) debugger requires the US/UK language pack to be installed into windows but the language does not need to be active
  • NOTE VS2019 Preview 2: We are currently converting our tool windows to WPF. Until the August release of Visual Micro we must switch off "Tools>Environment>General>Optimize rendering for screens with different pixel densities"

Visual Micro with GDB Release 1907.6.7 - 8th July 2019 - VS 2017-2019

  • Serial monitor draws correctly but did not work for some users. (related to recent vs2019 asnyc support)
  • Hardware Debuggers: Improved connection and usage example
  • Hardware Debuggers: Optimization options fully enabled for Arduino 1.6/1.8, Arduino 1.9 and Energia
  • Hardware Debuggers: Improvements after feedback for platforms:-
    • CC3200
    • Tivac
    • AVR
    • Esp32
    • Esp8266
    • SAMD
    • Stm32
    • StmF1
    • StmF4

Visual Micro with GDB Release 1906.30.2 - 1st July 2019 - VS 2017-2019

Visual Micro Status Update: Version 1906.30 of Visual Micro is a result of many weeks of testing and work by our new expanded development team. This release begins a higher degree of professionalism to Visual Micro and more advanced features, such as GDB debugging. Hardware debugging is now a one-click reality for everyone. The new context sensitive tutorial mode shows connection guides and other useful materials in the IDE when needed. 

This release of Visual Micro also allows the Visual Studio IDE to load without waiting for Visual Micro to load. This means that, for example, C# developers can use the IDE with Visual Micro installed but without being impacted each time the IDE starts. The key to Visual Micro late load is to hide the Visual Micro tool bars or to set their visibility to automatic.

During the coming weeks more granular library management, version control and automated testing will be introduced in the same simple, but powerful, manner as the debugging. We are also shortly to release a revamp of visualmicro.com with easier to access and clearer documentation.

Visual Studio 2019 still presents some small issues such as tool windows can fail unless "Tools>Options>Environment>Automatically adjust visual experience based on client performance" is disabled. We are working to redevelop our tool windows using WPF which will resolve the issue.

  • The add protection to async status bar animation to prevent older versions of Vs from crashing
  • The remove old manifest MEF dependency because the latest VS2019 point releases now prevent install of Visual Micro unless MEF is installed which VS2019 does not allow or need. VS2017 unaffected by the issue.
  • Hardware Debug > Custom/Advanced. Uses local debugger_launch.json if available otherwise simply allows for debug build.
  • Hardware debug adds a new compiler define:- -DVM_DEBUG_GDB
  • Hardware specific Reference and Connection guides expanded for all programmers.
  • File>New>Project includes a project template that shows how to use sub folders for source code in Arduino projects.
  • New "Tools>Options>Visual Micro>Tutorials" group includes a "Debugger Tutorials" property. Switching off this property will stop the context based help messages from being displayed when a debugger is selected or debugger option is changed.
  • Installing boards and libraries using the Platform Explorer now automatically reloads tool chains and makes the changes ready for use. Clicking 'Re-scan' or restarting the IDE is no longer required unless the changes are made outside of the IDE/platform explorer.
  • Added a warning when selecting the "Advanced/Custom" debugger to recommend using rhe built in one-click debuggers instead.
  • Custom debugger_launch.json file name can be prefix with "[configuration_name]." and "[board].[configuration_name]."
  • Add reference and image links to the output window when a debugger is selected. The reference explains how to connect the debugger and in some cases images to show pin out connection between debugger and mcu
  • Add support for upload property "upload.verbose_disabled=true". The property is set as default for esp8266 tool chains because the verbose output is every byte of the compiled program which is too large for an output window (which scans for clickable file paths).
  • When verbose compile or upload were not enabled custom build/upload events failed to show status messages. (ie: esp spiffs upload failed to show any status messages.
  • Added .lst extension to the allowed copy list when copying build files to local project intermediate folder
  • Removed obsolete note concerning the use of .cpp instead of .ino files from Atmel Studio when Atmel Studio debugging is enabled.
  • Add: New "vMicro>General>Global Options" menu enabling quick access to "Tools>Options>Visual Micro"
  • Add: Quick access to a new "Disable Optimizations" debug menu selection. Easily switch off optimization of   "Project" or "Project/Libraries" or "All" source code. For more granular settings the F4 project properties window gives control of each type. (note: It is not currently possible to switch off optimization for AVR projects that use HardwareSerial.
  • Add: One-click menu support enabling "GDB Stub" for most AVR mega chips such as Uno and Mega2560. The avr-debugger library is required to be #included in the project, use Library Manager to auto download and install the library from git.
  • Removed: Some obsolete tools>options
  • Added: New options "Tools>options>visual Micro>Shared Core Cache>Clear on Solution Clean". Clears the shared compiler cache when a Solution is cleaned. Defaults to True.
  • Support for older VS2017 installations that have not been updated for a while. The manifest will ensure a c++ version from 15.0 to 16.9 and c++ desktop of same version range. This should resolve installer issues that have been reported by some users but it is recommended to apply Visual Studio updates when they are released!
  • Teensy intellisense changes were missing from previous release
  • Atmel ICE debugger for SAMD
  • Unpaid users of this release must update prior to Aug 2020

Visual Micro with GDB Release 1906.26.0 - 26th June 2019 - VS 2017-2019

  • Intellisense improvements for Esp32 boards
  • One-click hardware debugging is now implemented for testing and feedback (Experimental). More platforms will be supported in future releases. Currently includes support for:-
    • STM32 based boards
    • Esp32 based boards
    • Arduino Due
    • Arduino Zero and all SAMD boards
    • Texas Instruments (Energia) 32 bit boards
  • The new debug menus (beta) are now implemented for arduino 1.6/1.8, Energia 1.6/1.8 and NoIDE Application types.
  • New hardware debug is now tested with Energia Tivac boards
  • Fix: Board properties failed to save for a project if the project was created using the last 1906 gallery release.
  • Tool bars failed to appear at startup in last release. Only applies to tool bars that are not set to automatic visibility.
  • Beta new debug menus
  • Programmer selection is also saved per config when "save board/port per project configuration"
  • Platforms that do not implement vid/pid for all boards will not "auto select board when device connects" if a board from the same platform is already selected
  • Opening the IDE Locations configuration window from the platform explorer often auto-selected the wrong application.
  • Added menu item: vMicro>Help>Report issue, ask question
  • Intellisense and library resolution for intellisense might have failed after closing an Arduino project. The issue would resolve when clicking commands such as "build clean" or "starting the ide

Visual Micro Release 1906.16.1 - 16th June 2019 - VS 2017-2019

Note: Sometimes when Visual Micro loads a notice appears to say it took up to 7 seconds to load. We have reported this to Microsoft because the delay of 5+ seconds is due to a single request that we make for visual studio c++ properties. Normally the properties ate returned in less than 300ms but sometimes they take 5+ seconds. Hopefully we only see this issue after vs is first run after machine restart or upgrade/install of any extension or vs settings.

It is now possible (optional) to have Visual Micro installed into Visual Studio without it causing any delay to the startup time of Visual Studio. Furthermore Visual Micro will not load until needed which means zero IDE impact. Read more below ...

NB: There is an important compiler cache fix to resolve slow compile in the previous 1905 gallery version.

1906.16.1

  • VS IDE now starts without loading Visual Micro unless bars are displayed that require Visual Micro to load.  This allows C++, VB.NET and C# developers to work with Visual Micro installed but without impacting the IDE until Arduino features are used (such as opening an .ino project)
  • Improved toolbar auto visibility when an .ino project is opened. Auto visibility toolbars will hide before the IDE closes so that when the IDE is next used it will start quickly. In previous versions toolbars would be hidden after the IDE is restarted if an Arduino project was not opened.
  • Added "Toolbar Auto Visibility" menu to the vMicro menu. All tool bar visibility commands have been moved from the "General" menu to the "vMicro>Toolbar Auto Visibility" menu.
  • Add toolbar visibility menu item > "Auto All", which enables auto visibility for all bars. This saves having to click each toolbar to enable auto-visibility for many bars. In VS2019 it is recommended that the vMicro menu toolbar be displayed all of the time. This is because VS2019 does not show extension on the master menu bar at the top of the IDE.
  • Minor fixes: Admin users: Auto roll out for large scale deployment. It is now possible to auto-configure all Visual Micro settings when a user first logs onto the IDE and uses Visual Micro.
  • All toolbars are now hidden after first install (excl. the vMicro bar).
  • Changed the default auto visibility to 'True' for the Boards, Project and Serial toolbars This allows  new users to find options more easily. The vMicro menu does not default to "auto visibility" because of the note above about the VS2019 menu bar.
  • Prevent build hook/event messages from being displayed unless verbose is enabled
  • New user first time experience improved. The IDE locations config window is not prompted until a Visual Micro feature is used.
  • Fix: New user IDE locations dialog failed to display on first run due to VS2017 InitializeAsync() failing to provide a valid win32WindowHandle.
  • Added "Micro Board Options" tool bar
  • Automatic hardware debugging configuration, GDB out-of-the-box.
  • Extensible GDB configuration
  • Fix: Removed Visual Micro settings from the Visual Studio "Help" menu. This was a mistake in recent versions, the same options are on vMicro>General and did not belong on the Help menu.
  • Serial monitor default font change to same font as output windows


1906.12

  • Fix: Slow compile. Recent changes for GDB caused project sources to always be compiled.
  • Long standing bug caused some/slight "slowness" when navigating between source code files
  • Fix: A shared project reference was not automatically added when adding a library as a shared project via the "Add Library" menu
  • Fix: Automatic adding of shared library project reference to the current project failed to add the reference (required late binding due to avoid VS shims)
  • Change!! Libraries included below the platform/core take priority over sketchbook/libraries. We made this change last year but had some complaints so rolled it back. However the Arduino IDE has applied this change therefore it is now applied to Visual Micro. This means that downloaded user installed libraries will be ignored if they exist below the installed board package platform. We have also extended visual micro to support a platform library override facilities "sketchbook/hardware/package_name/platform_name/libraries" and "sketchbook/hardware/package_name/platform_name/platform_ver/libraries" which provides a solution for people who do not want to use the library supplied by the author of the platform/core.


Reminder: Shared library projects can also be used which then allows specific location libraries to be selected per project. This means a library can exist anywhere, for example below the solution folder allowing source control check-in alongside the project code. Obviously this way of working also supports different versions of the same library.

Known issues:-

  • Since End of may 2019 (last month). Folder only mode fails. Note: Folder only mode is experimental and a very simplistic system compared to using normal Arduino/VS projects. It is recommended that the .ino file is opened at least once using File>Open Arduino Project so that a real Visual Studio project is created for you by Visual Micro.
  • Tool windows might not render in VS2019, especially on first run of the IDE after installing or upgrading. Restart of the IDE should resolve. For persistent problems switch off "Tools>Options>General>Optimize rendering for different screen densities". This is a problem for many extension authors and is a result of internal VS changes. We will release an update shortly with a complete fix. Please let us know in this/the forum if you continue to have difficulties with tool window rendering.

Visual Micro Release 1905.29.5 - 1st June 2019 - Vs 2017-2019

  • VS2019 tool window rendering issues improvements (see forum for 1906.12+ with more improvements)

Visual Micro Release 1905.29 - 29th May 2019 - Vs 2017-2019 + Atmel Studio 7

  • Fix: SoftwareSerial debugging
  • Fix: SoftwareSerial debugging
  • Fix: When using SoftwareSerial prevent changing of speed in the upload port serial monitor
  • Per Configuration: Facility to save the selected board and port (Debug/Release etc). Enable using "vMicro>general>Save board port per configuration".
  • Per Configuration: Switch off optimization for core, libraries and/or project (see project properties)
  • Per Configuration: Additional compiler flags for core, libraries and/or project (see project properties)
  • Microsoft VsCode compatible debugging. VsCode examples from the web also apply to Visual Micro in the full version of Visual Studio (Use the Add Code> Custom Debugger to build your own debugger, add natvis files for your own user types if required).
  • Sp5 contains minor cosmetic changes to the drop down lists on the serial monitor, IDE locations window and platform explorer to cater for high dpi monitors. Also contains a slight change to the loading of themes in the serial monitor to prevent a rendering failure for some users.
  • Show broken debug packets in the serial monitor so users know the serial is overloaded or their own serial is clashing. Suggest use alternate port for debug if this is the case or ignore the broken packets. We aee investigating a better reporting solution for this issue.

Tip for advanced compiler flags use: Switch off "vMicro>Compiler>Shared Cores" so that Build>Clean is more destructive.

Visual Micro Release 1905.24 - 24nd May 2019 - Vs 2017-2019 

  • Fix: Case comparison issue with json urls preventing urls with uppercase chars from being accepted when loading the boards list

Visual Micro Release 1905.22 sp2 - 22nd May 2019 - Vs 2017-2019 

  • Fix: When attempting to toggle.show hidden files an message appeared for users of cultures that use command as the decimal place

Visual Micro Release 1905.19 - 19th May 2019 - Vs 2017-2019 

known issue in this release: SoftwareSerial debug option will fail to build. This will be fixed in the coming few days.

  • Esp8266 verbose upload in the v2.5.1 core is not recommended because it sends huge amounts of trace data that will require a cup of tea before it finishes.
  • Esp8266 and esp32 spiffs is now compatible with esp v2.5.1 and also older versions
  • Fix: Renaming a non .ino or .pde master file incorrectly prompted rename of the current selected sketch (if one was active in the code editor). This was caused by a VS bug.... Visual Studio ProjectItems() incorrectly return the first item of the requested item name is not found.
  • Switch serial debugger to using a generic #define based on the Debugger>Remote Port (or the default Serial/Serial1 when not set). This allows many more board platforms to be supported by the soft debugger without need for changes to Visual Micro. It is still possible for the upload port to display in the ports list due to the fact that some usb ports can appear long after the upload process has completed (see windows device manager for usb status's)
  • When "Auto select board/port is selected, ignore usb port changes during upload to catarena type of boards. Previously undesirable port changes would occur for boards that temporarily boot into a different upload port.
  • When "Auto select board/port is selected, manually switching the com port will select the corresponding board. note: the auto select feature relies on the vid/pid values returned by the usb driver which must correlate to the vid/pid of a board definition. Some manufacturers share vid/pid within many different boards which renders this feature useless.
  • Themes for the platform explorer, debugger digital pin viewer and watch expressions
  • Ignore contributed board package index (json) files if they no longer exist in either the "arduino ide>preferences" or "visual micro IDE locations > board support urls" lists. Previously uninstalling a url would continue to show the package in the platform explorer unless the package_index.json was manually deleted using windows explorer.
  • Verbose upload is no longer affected by switching on "verbose compile"
  • Implement "No Verify" for older avr and sam boards that do not provide the switch via the platform config
  • Stop all builds if a user attempts to start another build when a build is already running. Assume they want to cancel and not start a new build.
  • The build is cancelled if an attempt is made to run another build. Example, F5 starts build, F5 again stops/aborts the build, F5 again starts a new build.
  • Fix: Board options menu failed to show options after menu #14
  • Minor UI improvements, syntax, spelling, charting etc
  • Debug tool will now inherit properties from the tool chain pre-commands and also support property tree ".debug" with the selected tool. For example upload.tool=openocd can also be debug.tool=openocd, with the tool supporting both .upload and .debug subtrees along with default properties at tool level.
  • Renamed vMicro>"Toggle Hidden Files" to "Show/Hide Hidden Files". Using this feature adds short cuts to external sources and often provides a better code navigation experience (especially when using GoTo Definition).
  • Support for board.txt foo_debugger.args which automatically transpose to microsoft gdb / MIDebuggerArgs in the debugger_launch.json. (nb: a debugger_launch.json is not required in the local project and should only be added by advanced users). Using the board.txt as per the following example if recommended.
  • The notification messages for missing tools within board support packages (index.json) were many and unhelpful. In the next release notifications and errors are informative and duplicate errors are prevented. This applies to clicking re-scan or using the Platform Explorer when a package index containing missing tools has been added to the IDE locations configuration window.
  • Change: Better code navigation into the core when using "Go To Definition": "Toggle Hidden Files" will also now add short cuts for ".c" files. These files will often cause many intellisense errors in the "Error List" window. To disable this option use "Tools>Options>Compatibility>Toggle Hidden C Files" = false (default is true). Note: We are shortly moving to the CLang intellisense engine which will improve things. Reminder: Click "Toggle Hidden Files" again to remove the code short cuts. 
    Fix: Intellisense for _AT boards that, for some reason, have a different mcu name (case) than that contained in the core of the boards. note: Visual Micro is moving its intellisense definition to a more intelligent system so hopefully this type of issue won't happen in the future.
  • Fix lack of case sensitivity in strings comparisons relating to UI and intellisense. Recent issue since release of vs2019
  • Automatically switch to "Show All Files" view when "Toggle Hidden Files" is clicked. This resolves a VS bug that causes "Toggle Hidden Files" to display incorrectly when used in "Show All Files" mode. To resolve the display issue the project needed to be closed and re-opened or the "Toggle Hidden Files" option needed to be clicked a few times.
  • Prevent status bar message for using fileAndForget. Possible contributor to vs2019 crash when visual micro attempts to set the DTE.StatusBar.Text
  • Change: Better code navigation into the core when using "Go To Definition": "Toggle Hidden Files" will also now add short cuts for ".c" files. These files will often cause many intellisense errors in the "Error List" window. To disable this option use "Tools>Options>Compatibility>Toggle Hidden C Files" = false (default is true). Note: We are shortly moving to the CLang intellisense engine which will improve things. Reminder: Click "Toggle Hidden Files" again to remove the code short cuts. 
    Fix: Intellisense for _AT boards that, for some reason, have a different mcu name (case) than that contained in the core of the boards. note: Visual Micro is moving its intellisense definition to a more intelligent system so hopefully this type of issue won't happen in the future.
  • Fix lack of case sensitivity in strings comparisons relating to UI and intellisense. Recent issue since release of vs2019
  • Automatically switch to "Show All Files" view when "Toggle Hidden Files" is clicked. This resolves a VS bug that causes "Toggle Hidden Files" to display incorrectly when used in "Show All Files" mode. To resolve the display issue the project needed to be closed and re-opened or the "Toggle Hidden Files" option needed to be clicked a few times.
  • Prevent status bar message for using fileAndForget. Possible contributor to vs2019 crash when visual micro attempts to set the DTE.StatusBar.Text



Example; Arduino_STM32 debug example: Black Magic Probe (BMP) and Serial/COM   (note: this is work in progress, we believe many of the ".args" are not required, more coming soon!

//local project board.txt example
Code:

debug.tool=bmp_upload
tools.bmp_upload.debug.args=-cd "{build.project_path}"  -ex "file {{{build.path}/{build.project_name}.elf}}" -nh -b 115200 -ex "target extended-remote \\.\{serial.port}" -ex "monitor swdp_scan" -ex "attach 1"
 

 

NOTE: This is an early BMP example. The following debugger arguments are just an example. Normally, the selected port might be resolved elsewhere and some of the arguments are not required. For example the symbol file should already have been loaded by the MI debugger.

Code:

debug.tool=BlackMagic

##### Black Magic Probe
# No Open OCD Required
tools.BlackMagic.cmd=arm-none-eabi-gdb.exe
tools.BlackMagic.path={runtime.tools.arm-none-eabi-gcc.path}/bin
tools.BlackMagic.ComPort=COM11
tools.BlackMagic.args= -cd "{build.project_path}"  -ex "file {{{build.path}/{build.project_name}.elf}}" -nh -b 115200 -ex "target extended-remote \\.\{ComPort}" -ex "monitor swdp_scan" -ex "attach 1"
tools.BlackMagic.pattern="{path}/{cmd}" {args} 

 

Visual Micro Release 1904.24 - 24th April 2019 - Vs 2017-2019 

  • The recent integration of GDB prevent .net core Debug>Start command from working.
  • The previous issue also applied to our older gdb beta extension which is now discontinued. If you have the older GDB beta extension installed then please uninstall it using tools>extensions and updates. The extension has been updated in the gallery so that users with auto update enabled will install a version that is rendered harmless.
  • Correct spelling mistakes where "Ide" was used instead of "IDE"

Visual Micro Release 1904.23 - 23th April 2019 - Vs 2017-2019 

  • Integrated GDB. VS2017+ includes the same Microsoft MI cpp debug engine that is used in vs code. Gdb is enabled automatically for some boards. Integration via arduino 3rd party hardware specification and/or mi debugger json properties.
  • Fixed an issue that sometimes caused the ide to load showing "Setup". Requiring IDE re-start to reolve. The issue relates to the recent change to 2async" loading to be compatible with vs2019
  • Support for custom debuggers (more info to follow or follow the in-app guide)
  • Support new noverify on upload key for boards that define upload.params.noverbose
  • The IDE Locations dialog opens showing the currently selected application + minor spelling changes Ide to IDE.
  • Added serial debug support for stm32f103. Same can be added to a local project board.txt (see below)

Release 1903.24 - 25th March 2019 - Vs 2017-2019 + AS7 + Vs2012-2015

Important: Due to breaking changes in VS2019 there is now a different version of Visual Micro for users of Vs2012-2015. If you are using Vs2012-2015 then please uninstall Visual Micro and re-install from the gallery or via tools>options>extensions and updates.

  • Due to breaking chages (for good reason) in Vs2019 there are now three versions of Visual Micro, when previously there were two.
  • "vMicro>Compiler>Add Include (-I) for Project"  - A more accessible switch for adding -I compiler include for the current project. The alternative switch is in tools>options>visual micro>compiler. NB: By popular request, the default for this setting is ON, set it to OFF for compatibility with the Arduino IDE.
  • The Visual Micro GDB extensions have been removed from the gallery and will shortly be replaced with inbuilt GDB in the Vs2017 and vs2019 version of Visual Micro.
  • Fix: Check for library manger updates caused an error in Re-scan due to incorrect processing of abnormal json data in library-index.json (RTCLib Zero).
  • Remove Visual Micro from Tools menu because we have a new vMicro tool bar containing a full vMicro menu. Reminder: Tool bars can be made visible or hidden by right clicking the tool strip or enabling auto-hide on the vMicro>general menu.
  • Additional VS2019 async fixes
  • Intellisense improvements for SAMD
  • Build property build.source.path was incorrectly set to the full sketch name instead of the folder path.
  • Inbound serial textbox buffer reduced from 500kb to 125kb. VS2019 can not currently handle 500kb in the textbox. (reminder:  this is a tools>options setting that users can override)
  • Microsoft have moved all top level extension menus such as the vMicro menu to the new "Extensions" menu. As a result Visual Micro has a new tool bar called "Micro Menu". The tool bar contains a single button called "vMicro" enabling single click view of the Visual Micro menu.
  • The Serial Port selection has been moved from the Uploader menu to the vMicro menu making the currently select port more obvious when tool bars are hidden
NOTE: Vs2019 preview 4 and rc have a known issue if the new vs2019 Startup Window is closed without opening or creating a project. If visual micro loads in "setup mode" then click Rescan or re-start the ide. 

Release 1902.17 - 17th Feb 2019 - Visual Studio 2012-2019

  • Fix: Re-build to resolve gallery download issues. Dowinload from "tools>extensions and updates" has been failing for the past few days. Download using browser from the visualstudio.gallery worked correctly.

Release 1902.15 - 15th Feb 2019 - Visual Studio 2012-2019

  • Support for VS2019 Preview 1 Fix: A Microsoft vsix creation bug caused dlls to be missing from the 1902.11 release. Visual Micro did not work correctly, board list and and dialogs were empty.

Release 1902.11 - 11th Feb 2019 - Visual Studio 2012-2019

  • ESP32 spiffs upload to use esptool_py
  • ESP32: Cater for updated esp32/espressif spiffs commands (Publish server data files from the project/data folder). Use upload.tool to discover esptool or esptool_py. Other minor spiffs updates to ensure that all required properties are available for either usb or network spiffs.
  • IMPORTANT: Revert esp32 intellisense to pre sept30th release. The intellisense error reporting for esp32 has not worked well since implementing the request in this forum post during the end of sept 2018
  • IMPORTANT: Better cater for boards that have menus with no values. This especially applies to the esp8266 which defines a crystal frequency of 26mhz with no build.extra_flags when the 40mhz crystal does define build.extra_flags.
  • Attempt to resolve missing contributed library sources from platform/hardware libraries. For example the nicoHood HID library uses HID.h from avr/libraries/HID.
  • Cache library dot a linkage output (.a). Prevent re-build of .a linkage archives for a library if it was previously built for the current board.
  • Note: VS2019 is Preview 1

Release 1812.22 - 22nd Dec 2018 - Visual Studio 2012-2019

  • Support for VS2019 Preview 1
  • Set working directory to the build folder during link so that the build path can be stripped from the .o object files. Allows for longer commands without hitting the windows size limit.
  • Note: VS2019 is Preview 1

Release 1811.24 - 24th Nov 2018 - Visual Studio 2012-2017 + Atmel Studio 7

  • Related library discovery (deep search) did not work for libraries are in the current solution as "shared library projects" and that had been "Referenced" from an Arduino project. Previously use of other libraries from within a shared library project would only have worked if the project code also contained #includes for the related libraries (vs only)
  • Fix last version:  Debug libraries failed to build  standard libraries unless they were "shared library projects" (vs only)
  • "Toggle Hidden Files" ignores libraries if they existing in the solution as shared library projects (vs only)
  • Update Esp32 intellisense paths (broken since last esp32 toolchain release) (vs only)
  • Debug support for Arduino Libraries. A new vMicro menu item enables library debugging. (note: that when this option is enabled, a copy of the library code is compiled from within the temp build folder, Compiler -I include paths will also point to the library code in the build folder) (vs only)
  • Roll-up of recent updates for AS7
arduino-library-debugging_003.png

Release 1810.4 - 4th Oct 2018 - Visual Studio 2012-2017

  • Revert library resolver path order to 1) sketchbook\libraries 2) platform\libraries 3) ide\libraries. This might cause a problem for some boards such as Teensy that prefer the ide libs in place of platform libs. However most other boards prefer platform libs as priority. Users should take care not to install a library into sketchbook\libraries that has the same name as a library they want to use from a platform. Recommendation: Copy/use shared library projects. Shared library projects are bormal Arduino libraries that can exist in any location, giving control to each project over which library version will be used.

Release 1810.3 - 3rd Oct 2018 - Visual Studio 2012-2017

  • Fix: Unable to compile "Shared library projects" that use "the old style" arduino library structure (without library.properties). These projects were incorrectly compiled as a merge project instead of as a library project. This fix assumes a library 1) if a library.properties file exists or 2) if the folder structure contains a folder named "\libraries".
  • Libraries for specific architecture are now the lowest priority to reflect the way the Arduino IDE works. This means that if a library exists in sketchbook\libraries it will be used, otherwise if it exists in ide\libraries that will be used otherwise the  platform\libraries folder is used.
  • Fix: Arduino versions less then 1.5.7 failed to compile in debug mode when "Deep search for libraries" was enabled
  • Usb debug support for Adafruit M0 boards that have native_usb set to true yet use Serial instead of SerialUSB as default port.
  • Library resolver order: 1) sketchBook\LIbraries 2) Platform\Libraries 3) Ide Libraries

Release 1808.30.4 - 30th Aug 2018 - Visual Studio 2012-2017

  • "Tools>Options>Visual Micro>Compiler>Project Folder -I" is now enabled by default. This allows local files to be #included using <foo.h>. Previously only #include "foo.h" was supported unless the above tools>option was enabled. The option as the project folder as a -I compiler include.
  • Fix: "Tools>Options>Visual Micro>Compiler>Project Folder -I" failed with deep search enabled (is now on by default, see previous point).
  • Fix: It was possible to cause a linker error (.o object already defined here xyz...) with local library sources especially with a conflicting shared library project of the same name but different location causing duplicate .o files to be linked. This could easily have caused much confusion!

Release 1808.30 - 30th Aug 2018 - Visual Studio 2012-2017

This release fixes missing project properties in yesterdays release. The problem was caused by updating our build system to VS 15.8. We have re-built the last update with VS 15.6 which rectifies the problem.

VS 15.8 Please note: We have varying reports concerning intellisense in VS 15.8. We will investigate and report to Microsoft. In the meantime if you have intellisense issues after upgrading your Visual Studio 2017 IDE to 15.8 downgrade Visual Studio to 15.6 (stable) or 15.7! We encountered other intellisense issues in the preview of 15.8 which we reported to Microsoft and they promised to fix. It seems they have fixed those issues but this suggests the C++ intellisense system has been radically overhauled in 15.8. So unfortunately we should expect some issues for a few months with 15.8. 

Release 1808.25 - 28th Aug 2018 - Visual Studio 2012-2017 (use 1808.30 or 1807.8 !)

  • Fix: Copy to Intermediate was using the Output Directory instead of the "Intermediate Directory" project property
  • Burn bootloader: Use programmer from any related platform (not just from the current platform)
  • Solve extremely slow load of projects with many files
  • Fix issue that prevented the sonoff project from building (also applies to other projects that use a more complex syntax for prototypes)
  • Automatically include all source code when an existing arduino project is first opened. This ensures new users can see header files in project sub folders (previously only \src and below where automatically added)
  • Atmel studio resolve board options for intellisense and also to ensure the correct mcu device is set for the project. Cores such as MiniCore resolve {board.mcu} from the variant specified by the board options.
  • + Validated against Visual Studio 2017 15.8.0 Preview 4. Previous "preview" versions of VS had many c++ bugs but preview 4 appears to work well.
  • Defaulted "vMicro>Compiler>Copy to intermediate" because that is what the default has been. The default was changed when the menu item was added a few weeks ago.
  • Added new "tools>options>visual micro>compiler>Build In Project Intermediate" which will use the build folder specified in "project property pages > intermediate directory". When switching board a "Build>Clean" will be required, This property is for advanced users or exceptional circumstances.

Release 1807.8 - 8th July 2018 - Visual Studio 2012-2017 + Vs2017 15.8 Preview 4

Compatible with Preview 4

Release 1807.7 - 7th July 2018 - Visual Studio 2012-2017

Important for some: Build output is no longer automatically copied to the project intermediate directory preventing unnecessary folders and files below each sketch project.  A new menu item allows this facility to be enabled. "vMicro>Compiler>Copy Output To Intermediate" 

Added a new tools>options property to enable toe cached cores folder to be overridden. "tools>options>visual micro>compiler>build cores path". Reminder: Cached cores can be enabled/disabled in the options or using the vMicro>Compiler menu.

Release 1807.1 - 1st July 2018 - Visual Studio 2012-2017

This release resolves a bug in the latest Visual Studio 2017 release which caused intellisense to fail and prevented the project property pages from being viewed. 

The problem is specific to each configuration (such as Release or Debug) but might affected all configurations.

When new Arduino projects are created the <PlatformToolset> in the project file is now populated with a value that VS 2017 updated 15.6+ is happy with. [i]Users of older visual studio versions are unaffected.[/i]

How to fix existing projects - Existing projects might suffer from this problem

Do one of the following:-

1) Delete the visual studio .vcx files from your project folder then use "File>Open>Arduino Project" to re-open the project which recreates the .vcx files with the <PlatformToolset> correctly populated. If you have a large list of sources in your project option 2) below might be a better alternative than setting up a new project.

or

2) Edit the [project_name].vcxproj file with a text editor and ensure there is a <PlatformToolset> in EVERY "<PropertyGroup Condition="'$(Configuration)" xml entry. just like the following example. The order of properties is unimportant.

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

    <ConfigurationType>Application</ConfigurationType>

    <PlatformToolset>v141</PlatformToolset>

more properties not shown here ....

  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

    <ConfigurationType>Application</ConfigurationType>

    <PlatformToolset>v141</PlatformToolset>

more properties not shown here ....

  </PropertyGroup>

Release 1806.2 Sp1 - 2nd June 2018 - Visual Studio 2012-2017 + AS7

  • Fix: Long standing issue that had been reported in various ways. The issue was that Libraries were  compiled and linked in alpha name order instead of the specified order. With this release of Visual Micro, the specified order is now as follows:-
       The order of the #includes discovered in the .ino project code
       If 'Deep Search Libraries' is enabled then the order of includes is returned via the Gcc-E compiler process
  • Fix: In the last Release we introduced shared core caching. The project cache was not cleared if a core was switched from Arduino 1.6 to, for example, Arduino 1.5. The result would be the compiled "project libraries" cache would be stale possibly giving linker errors.  (tip: Shared core cache is ON by default but can be controlled using the vMicro>Compiler menu).

Release 1806.1 - 29th May 2018 - Visual Studio 2012-2017 + AS7

  • Intelligent Core Shared Build Cache: There is a new menu item that enables control of the "Cores Cache". The menu item is called "vMicro>Compiler>Shared Cache for Cores" (the same is available in global settings "Tools>Options>Visual Micro>Compiler"). This option increases build times enormously, especially when building examples and new projects. (note: Verbose mode provides additional messages such as cache location)
  • Intelligent Core Shared Build Cache: Defaults to "On". Each type of core (distinguished by its variable build params) is then used by any project that resolves the exact same core/params. note: The cache is cleared/reset when switching this feature switched OFF.
  • Some file:/// paths in the verbose compiler output, such as '# Export' messages, did not support spaces. This caused CTRL+Click GoTo to fail.
  • Fix: "Build>Clean Solution" cleans the build temp folder for all arduino projects in a solution (previously only cleaned the active project)
  • Added new "Micro Application" option for "Arduino 1.9 (beta)" making it possible to configure both "Arduino 1.6/1.8" alongside "Arduino 1.9" and quickly switch between them.
  • Increase serial monitor terminal left margin. (reminder: the terminal font can be set using the lower tool bar on the serial monitor.

Release 1805.25.0 - 25th May 2018 - Visual Studio 2012-2017 

  • Use regex to determine .INO #includes for intellisense regardless of "Deep Search for Libraries" setting. This ensures intellisense is immediately updated when adding libraries and switching boards. Previously a build was required before library intellisense was updated fully (caused some confusion)
  • Right click -  Publish Local Library. Copies a library to "[sketchbook]/libraries". Saves a backup of the replaced lib in "sketchbook/_libs_bak/libName/time/LibName". After publish the library is ready for use in other arduino projects. Building other projects that use the library will update intellisense
  • Added a clear example of a self-contained project structure with source code sub folders and a local/private library. "File>New>Project>C++>Arduino Project With Local Library"
  • Fix: Debugger Min/Max values failed to display for float/decimal data
  • When Deep Search for Libraries is enabled the older arduino regex expression is no longer also used. This prevented libraries conditional #includes in .INO source code from having any effect, the library would be linked regardless of #condition. note: Switching off deep search and adhering to the restrictions of the older regex system dramatically improves some compile times.
  • Correction to last release: Auto detect usb connect now defaults to OFF
  • Correction to last release: Added optional menu item: vMicro>Compiler>Local Files Override Library Files - Ignore library source files if a file of the same name exists in the project
  • Changed visualmicro.com (help/reference) links from http:// to https://
  • Fix: Support CTRL+Click shortcuts (file:///) paths that contain spaces in the build output
  • Export exports to the path resulting from "Visual Studio Project > Property Pages > Output Directory"
  • After a build, the build output can be found in "Visual Studio Project > Property Pages > Intermediate Directory"
  • Added verbose output messages for "export binary" and "final build output location"
  • Serial Monitor uses Visual Studio color theme (requires restart for changes to apply if the theme changes)
  • Serial terminal font has always defaulted to standard visual studio Text font. A new button has been added to the Serial Monitor bottom tool strip called "Terminal Font". This button enabled the serial monitor font to be changed. The setting is retained in Tools>Options>Visual Micro>Communications>Terminal Font
  • The "pre release / work in progress" of the past week, always ignored core .o files in a cached build, if the same name file was also included in the project. We now use the setting from tools>options, the default is to allow both core and project files of same name to be compiled.

Release 1805.14.1 - 14th May 2018 - Visual Studio 2012-2017 + AS7

  • Fix problem with the new compiler warnings in arduino 1.8.5 built in avr or any toolchain that does not specify a "default" warnings.
  • Fix intellisense for arduino 1.0 boards. Intellisense had gradually broken after the huge arduino architecture changes over the past year or so.
  • Fix build process for arduino 1.0 boards when more recent custom hardware definitions are installed in my sketchbook\hardware folder. Only hardware that has boards.txt but does NOT have platform.txt is loaded for Arduino 1.0
  • Add source code #line numbers and original source code file name to code in the temp build folder. This enables external tools and debuggers to work with the compiled .elf and object files.
  • Added a new menu item "vMicro>General>Auto Select Board/Port When A Device Connects". This feature is enabled by default which causes visual micro to select a newly found serial port and to use the usb vid/pid to resolve the connected board (if vid/pid is known in boards.txt). Some usb devices share a common vid/pid/driver so this feature only applies to certain boards. Most Arduino boards support this feature. Esp8266 and Esp32 do not.
  • Added ESP32 SPIFFS support to "vMicro>Publich Server Data". With or w/out password auth supported.
  • Resolve intellisense issue when toolchain and project are on different  drives
  • Implement newer "compiler warnings" syntax for the arduino framework : {compiler.warning_flags}
  • Change "menu "vMicro>Compiler" to support separate warnings for :- Project, Libraries and Core.
  • Fix: RTS was not enabled/disabled in the serial monitor. Will have affected some esp8266 users if their usb driver defaulted to RTS on
  • Support local project source code override for library and core. Skip compile and link of core or library source codes that have the same name as the project source code. This allows selected core and library sources to be used locally in the project for testing or redesign. (The Arduino IDE already supports this feature). For example creating a main.cpp and then click "Build>Rebuild". This provides complete control over the micro-controller outside (or with modification) of the Arduino framework. tip: When the Solution explorer is not "Showing all files", use "vMicro>Toggle Hidden Files" to easily see/copy "core and library" sources.
  • Show more informative error during debug if a break-point message has invalid syntax such as a missing brace
  • Fix: Serial debug support for expressif esp32 boards
  • Serial debug support for nRF boards
  • Resolve Arduino 1.5 avr intellisense issues
  • Slow toolchains such as arduino 1.5.8 might have timed out at the start of the first build of the session
  • Examples show examples for the current board under an easy to see separate tree node in the micro explorer
  • GDPR - Removed anon telemetry at start-up which was used to monitor vs version usage. It might be re-implemented in the future with more obvious user controls.
  • Energia 18 new boards required some additions (java.exe location for RunActions, more to follow)
  • Add new config property and default to ON for Energia which uses a custom action to add a main.cpp to the build folder. In this case, if visual studio is set to "compile files in project", as opposed to "compile files found on disk" then the main.cpp will be forced into the list of files to be compiled  := ide.actions_result_in_maincpp=true
  • New menu item 'vMicro>Compiler>Always Export Binary' saves the hex/bin to the project folder after each build. tip: The output files are available in the folder specified in "Project>Property Pages>Final Build Output Folder"
  • Tools>Options>Telemetry>Check for Updates is no longer read only for non-educational users. The tool tip of the property has also been extended to explain some Telemetry information (no personal info) is sent during check for updates. reminder: Microsoft Visual Studio also provides an update notifications facility configured in "tools>extensions and updates".
  • When there are new major releases of Visual Micro. Check for updates will show new release messages in a "quiet" output tool window instead of an annoying on top dialog.
  • Minor changes to the text of menus to make them more readable
  • "File>New>Arduino Project" creates a project with more informative comments in the new .ino file but only when "vMicro>General>Tutorial" Mode is enabled.
  • "vMicro>Compiler>Always Export Binary" - Verbose mode reports file names as clickable links
  • Changing "vMicro>Compiler>Deep Search for Libraries" for a project also changes the "default" setting that is applied to new projects and projects when "Deep Search" has not been specifically set.
  • The reason for debug build failures is better reported
  • The FAQ on visualmicro.com is more obvious and has been updated
  • The Pro version has been merged into a single product. All features available to all users. The license model has changed to provide free download and evaluation for 90 days. After that time the software continues to work but should be purchased. Thank you

Release 1804.21 - 21st March 2018 - Visual Studio 2012-2017

  • Fix: Boards with "Board_" in their internal name failed to allow selection in the ide. Visual Micro now uses a unique internal board id prefix!
  • Intellisense: Arduino Primo/NRf boards - #undef _WIN32 is required because the platform ignores the nrf headers if it believes it is building WIN32. VS #defines _WIN32 for Cpp projects so we undefine when working with arduino
  • Intellisense: SAMD improvements
  • Intellisense: Esp8266 improvements
  • Fix: Escape single quotes in patterns to double quotes. Resolves upload issue with Microsoft MXChip AZ3166 boards
  • Intellisense: STM32 improvements
  • Add: "vMicro>Help", a short note about automatic updates of Visual Micro in some VS versions

Release 1804.16 - 17th March 2018 - Visual Studio 2012-2017

  • Release mode no Debug by default. Removes much confusion for new users!. When opening Arduino projects for the first time (or using "File>Open>Arduino Project") "Release" mode is selected instead of the default Visual Studio "Debug" mode.
  • IDE Locations dialog - Support high dpi monitors
  • Improved support for intellisense (non-build) fixes. Creating a vs-intellisense-fix.h in the project\__vm folder allows for user code to override intellisense without affecting compile.
  • Improved intellisense for samd maths.h
  • Removed AVR uint8_t intellisense fix because other intellisense updates resolved the issue.
  • Fix: Int64 cast error reading .jason package index if the package index fails to define a platform download "size". (Why: Some packages incorrectly define an empty string for the platform.size property instead of an integer)
  • Intellisense support for Aurix hardware
  • note: Users of this free version must update to the latest free version before April 2019

Release 1803.26 - 26th March 2018 - Visual Studio 2012-2017

  • Architecture/platform libraries now have priority over custom and ide libraries
  • Custom libraries only have priority over IDE libraries (NOTE: Remove and re-add shared libraries if they exist and you expect the path to change!!)
  • Revert serial reader to UTF8 (incorrect change in last point release)

Release 1803.6 sp3 - 4th March 2018 - Visual Studio 2012-2017

  • Added yield() to all Esp8266 debug packets. Prevents the esp from crashing if the serial buffer fills up.
  • Changed Serial reader from Encoding.UTF8 to Encoding.Default so that unicode characters display correctly in the serial monitor.
  • Extend serial monitor exception detection so that the "try resolve stack trace" ! icon appears more often.

Release 1803.4 - 4th March 2018 - Visual Studio 2012-2017

  • Fix: Library architecture resolution failed for some libraries due to an incorrect string case comparison resolving architecture= for library.properties
  • Add: PostUpload hook for standard upload. Previously was only applied to programmer/tool uploads. Syntax is:  recipe.hooks.deploy.postupload.1.pattern=
  • New pro feature: Support serial exception and stack reporting with dbl click drill down into code. A new icon appears on the serial monitor when an exception is detected. 

...

 


  • Visual Micro is pre-configured for esp8266 exception handling but can easily be implemented for other platforms/boards with the following properties in project, platform or board config files:-
    note: exceptions.serial.messages can be a file path or a , sep list of exceptions. Text file is line terminated. Each line or item # represents the full error message.ie: Exception(29) relates to line or item 29.

    exceptions.serial.enabled=true
    exceptions.serial.messages=[path to]/exceptions.txt
    exceptions.serial.regex.exception_number=Exception \(([0-9]*)\):
    exceptions.serial.regex.stack_addresses=40[0-2][0-9a-f]{5}\b
    exceptions.serial.resolve.addr2line.args=-aipfC -e"{build.path}/{build.project_name}.elf"
    exceptions.serial.resolve.addr2line.cmd=xtensa-lx106-elf-addr2line
    exceptions.serial.resolve.stack_addresses.pattern="{compiler.path}{addr2line.cmd}" {addr2line.args} {stack_addresses.list}
     
    


Release 1801.27/28 - 27-28th Jan 2018 - Visual Studio 2012-2017 + Atmel Studio 7.0

  • Workaround Visual Studio VSIX bug that suddenly refuses to include newtonsoft.json dll in the VSIX. This is the reason the last release was retracted.
  • Copy sub folders when copying/cloning library examples
  • Support the creation of projects with name containing period (dot)
  • Allow libraries to compile even if they specify an incompatible architecture= in the library.properties settings. Many libraries specify only "avr" when they actually do work with other architectures. The supposedly incompatible libraries will not be displayed on "Add Library" menus but adding #includes will enable intellisense and compile.
  • Add clearer messages when library headers can not be resolved.
  • Code efficiency: Prevent various internal code exceptions with better validation
  • Fix: Upload failed for Boards that did not use a programmer or a com/ip port to upload when a user had never previously connected a COM port whilst using Visual Micro.
  • Fix: Certain STM32 cores (any core that included both a wpogram.h and an arduino.h) would fail to compile. Visual Micro will now use the "arduino.h" if it exists in preference to the "wprogram.h". This applies to the automatic #include created in the temp folder during compilation. If neither file exists in the core folder then the "arduino.h" is #included (and would be expected to be resolved via the automatically discovered include paths).
  • NB: Visual Micro uses the standard C# SerialPort object in the serial monitor. Some USB/Serial drivers are specified for Windows10 Universal only will fail with C# in WinXp, Win7, Win8 and Win10. Confusingly the arduino ide java serial access works better with Win10 universal drivers than Microsoft's own C# serial port object! Rule of thumb is use the correct driver for the OpSys that you are using.
  • Improved intellisense for SAMD boards (_asm_(x) and _Pragma(x))
  • Free Use: To keep support to a minimum, unlicenced users must update this software before Feb 2019

Release 1801.14 - 14th Jan 2018 - Visual Studio 2012-2017

  • Teensy 3 - An intellisense fix has been added for all functions found in the teensy3 wiring.h. Intellisense will show the following but the compiler will use the real teensy code.
  • Resolve most Nrf52 intellisense issues.
  • Added: vMicro>Delayed Startup (visual micro will load in background. The IDE will not be delayed during startup.
  • NB: This release was widthrawn due to an installer issue. These changes have been combined into the 1801.27 release.

Release 1711.19 - 19th November 2017 - Visual Studio 2012-2017, Atmel Studio 7.0

  • Add support Arduino 1.9
  • Minor fixes as per forum threads
  • Add support for pre-compiled files in each project\libs folder (.a). .a files in \libs will automatically be linked.
  • Esp8266 debug no wait at start. Esp8266 needs to do as little as possible before the wifi connects!!

Release 1709.3 - 3rd September 2017 - Visual Studio 2012-2017 

  • Fix: Order of files passed to linker ensures libraries can be overriden with local project code
  • Fix: Re-instate the "Create a shared project when adding libraries" check box menu
  • Fix: (Arduino Primo) Ensure that files with a lowercase ".s" extension are not compiled. (Must only use uppercase ".S" extensions for assember)
  • Fix: Better intellisense support for core variations (such as Sandeep Mistry Nrf52 cores)
  • Fix: "Toggle Hidden Files" was slow due to an attempt to workaround a VS2017 bug. If using VS2017 then ensure the latest service pack is installed Microsoft have fixed the issue in 90% of cases. If toggle hdiden files refuses to work correctly by showing an error in the output window then close the project, delete the .vcxproj, .vcxuser, .vcxfilters files and then reopen the project using "File>Open>Arduino Project>Your_Project.ino". NOTE: Backup the files before deleting them if you are using a non-arduino compatible project file structure or shared references.
  • Fix: Show board selection for the "Active code" editor as opposed to the "active solution explorer item" when "vMicro>General>Active code has priority over solution explorer" menu item is checked.
  • Add: Serial monitor has a new checkbox button called "Clear On Send". This feature clears the terminal receive window when data is SENT from the PC to the Arduino.
  • Add: When a shared library project is created automatically a vs-readme.txt is added with instructions of how to use and how to "add a reference" from master Arduino projects to shared projects
  • Tip: When an Arduino library is configured as shared project the library can be debugged using the Visual Micro debugger.
  • Fix: Revert to VSProject and VCProjectEngine v11
  • Fix: Prevent VSSDK via NuGet for the production of the .vsix installer

Release 1707.30 - 30th July 2017 - Visual Studio 2012-2017 

  • Debug support for adafruit nrf feather boards > 6.0 tool chain (debug compile failed because the name of the Serial class has changed, older nrf feather toolchains are no longer supported for serial debug) 
  • Merge properties from related platforms where missing. A custom arduino hardware folder that shares a platform such as avr can provide additional programmers and build/programmer properties that are not defined in other platforms of the same name.
  • Add more obvious error when the properties of a programmer can not be found. (previously the error was: index is outside of bounds of array)
  • Remove erroneous board with the same name as the platform. Affected some platforms only.
  • Fix: Add custom project -D defines to GCC-E library auto discovery.
  • Fix: Insert custom build flags and defines before the first -D or -I of a recipe. This prevents prep-processor errors during library discovery.
  • Fix: Issue compiling if a board option changed the variant file name. The stm32 discovery boards use a board option to switch between F4 and F7. This would fail unless tool chains were reloaded or the ide restarted after switch between options.
  • Test STM32 boards from https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_ind...

Release 1707.14 - 14th July 2017 - Visual Studio 2012-2017 and Atmel Studio 7

  • Reinstalled VS and re-built project to rectify Microsoft installer issues

Stable Major Release 1706.25 - 8th July 2017 - Visual Studio 2012-2017 and Atmel Studio 7

  • Fix: Prevent compile and upload when sketch reaches the max size specified for the board. This important test was ignored in the last few versions of visual micro which allowed programs to be uploaded when they should not have been. Sorry.
  • Add option to automatically open the Serial monitor after upload. This feature has existed when debugging for a long time but now it is also available when uploading a Release version of a program to a micro-controller. Menu item : 
    "vMicro>Uploader>Auto Open Serial"
  • Add more obvious setting that prevents boards from being Reset when debug starts. This mainly only affects boards that respond to the DTR serial property. The default is and has always been ON, switch OFF to jump into a running Arduino debug session when debug starts. Menu item "vMicro>Debugger>Reset or Delay When debug Starts"
  • Minor change in resolving tool dependencies. Tools that exist directly below a package are given priority when resolving tools for each platform. An example being that esp8266 might be installed under the \Sparkfun package and also under the \EspCommunity package. In this case espcommunity will use espcommunity tool versions and sparkfun will use sparkfun tool versions. In previous releases one or the other was used for all esp boards regardless of package ownership. This might have causes the Esp community boards to fail to upload.
  • Debug improvements for esp8266 UDP debugging. Visual Micro will no longer use delay(), will yield() and will poll for OTA updates more frequently when stopped in breakpoints.
  • Free users must update this release by 30th June 2018.
  • Refresh of free version for VS2010 and AS6.2 (but still compatible only with Arduino 1.6.9 and below)

Stable Release 1705.8 - 8th May 2017 - Visual Studio 2012-2017 and Atmel Studio 7

  • Reversed the new user experience changes from Feb 2017. First time usage prompts the Ide locations window. Advanced users who wish to work without an Arduino Ide can cancel and continue working with the "Visual Micro (No IDE)" option. The "No IDE" option supports board manager, library manager and sketch book custom hardware and libraries but will be missing the built-in hardware and libraries that are installed with an Arduino IDE (or clone).
  • Removed nag screens from atmel studio device programming except for the one, as described above.
  • Tested Atmel Studio Simulator with Uno and Mega 2560. nice!.
  • Esp32: Intellisense fix. Followi the esp32 arduino ide install guide. If using Symatec anti-virus, the esp32 tools give a false positve and will not work. change the platform.txt to use the linux python .py instead of .exe files. Make sure python is installed (see esp9266 community docs). Ask in the forum if you need help.
  • Fix: Shortcuts to library sources are added to the project if Toggle Hidden Files is enabled when adding libraries. note: This does not happen if "create a project when adding libraries" is enabled.
  • Board and library managers moved into the standard version of Visual Micro
  • High speed build moved into the standard version of Visual Micro
  • All local and custom library development moved into the standard version of Visual Micro
  • All shared project functionality moved into the standard version of Visual Micro
  • Board and Library Manager speed improvements
  • Board and Library Manager - Added new button 'Check for Updates'
  • Board and Library Manager - New global setting "tools>options>visual micro>contributions>update indexes". When 'True', Board and Library Managers will automatically check for updates when the managers are used. The default is False which requires the "Check for updates" button to be pressed before new BSP package_index.json and library.index.json urls are fetched/downloaded.
  • Added 14 day count down before the free version must be upgraded to the latest free. To help with support we force everyone using the free version of visual micro to upgrade at least once every 9-12 months.
  • Toggle Hidden Files - Due to bugs in Vs2017 the behavior has altered slightly. Variant shortcuts are combined with "Core". Library source shortcuts are grouped together for each library in a "Library Name" folder. The main difference is less virtual folders which can cause VS2017 to crash/hang.
  • Fuller and better defined experience for users of the unpaid free version. Nag screen once per day on first build. Software "required update by date" shown in "tools>options>visual micro>version". 14 day count down message in build output prior to the date. Free users must upgrade approx. every 9-12 months.
  • A trial is no longer automatically started for free users allowing the free software to be tested and used prior to starting a trial.
  • All types of shared project (in libraries) are available in the free version.

Stable Release 1704.30 - 30th April 2017 - Visual Studio 2012-2017, Atmel Studio 7

  • Fix issues with shared projects!
  • Added "New Arduino Library" and "New Arduino Shared Project" to the File>New>Project wizzard
  • Implemented debug in the code of Shared Library Projects
  • Free version Nag screen appears only once per day regardless of how many new instances of visual studio are opened.
  • Shared library projects failed to compile
  • The 'Help' with Visual Micro menu has been moved to the vMicro menu
  • Install GDb has been added to the Help menu. The comand opens a page that points to the various different supplementary gdb extensions.
  • Auto create shared project from a library has been added to the free version of visual micro. Libraries can exist in any location allowing for unlimited different versions selectively shared between multiple Arduino projects
  • Debug support for Shared Project code is fully available. Arduino library debug is also available with gdb and coming soon for usb/wifi/rf/bluetooth.

 

Important notes about maintaining Arduino compatibility in the code

  • solution example folder structure :-

  • > Shared Project A: solution/shared_stuff
  •    > solution/shared_stuff/bar.h
  •    > solution/shared_stuff/bar.cpp
  •    > solution/shared_stuff/src/foo2.cpp
  •    > solution/shared_stuff/src/foo2.h

  • > Arduino Project A: solution/breakpointtest/
  •    > solution/breakpointtest/breakpointtest.ino

  • > Arduino Project B: solution/example
  •    > solution/example/sketch2/sketch2.ino
  •    > solution/example/sketch2/src/foo.h

In the above example foo.h could "#include "foo2.h" and foo2.h could include foo.h. During compilation they will both be in the same folder! foo.h would have to step up one folder to access bar.h #include "../bar.h"

The Arduino IDE supports the project root and the \src sub folder and any sub folders below it.

When working with more than one arduino project in a solution that also has shared projects. The intellisense in the shared project code will be based on the "Startup Project". That's the project that shows in bold in the solution explorer. Right click an Arduino project to "set as Startup Project"

Adding a reference to a shared project from an Arduino project automatically makes all code from the shared project available to the Arduino project.

Release 1704.28 Sp2 - 28th April 2017 - Visual Studio 2012-2017

  • This release drops back to using older Microsoft visual studio api's avoiding bugs and also giving a better experience to vs2012 and 2013 users. 
  • One important fix as a result of using older api's is that "vMicro>Toggle Hidden Files" was prone to crash.
  • Gdb has also been removed from the main visual micro extension because come important Visual Studio components require different code and api versions for each version of Visual Studio. Instead the are some new optional extensions that work along side visual micro and provide gdb debugging. Working with these new version specific gdb extensions will provide a much more reliable basis for us to build better gdb functionality. If the visual micro gdb extension is not installed then visual studio will show an error message warning that debug can not be started for an unknown reason.
  • There have been some avr and adafruit nrf intellisense improvements

Release 1704.20 Sp1 - 24th April 2017 - Visual Studio 2012-2017

  • Fix - Serial ports list might have been empty sometimes. Workaround/protect against Windows 10 bug of  duplicate serial ports that caused visual micro not to display any serial ports.
  • Fix - When using the Gdb Command Window - Debug.MIExec commands the returned output will correctly show in the command window where as previously the output showed in the "Debug" output window. For example Debug.MIExec help and Debug.MIExec list will show the resulting help or code in the command window below the command that was entered.
  • Beta - Download GDB Debugging in Visual Studio 2017. A new light weight extension is available that simply launches the Visual Micro GDB debugger for projects that have a debugger flavor of "VisualMicroDebugger". Launching the debugger in Visual Studio is different for each version which therefore we will produce a separate extension for each version. The main Visual Micro Arduino IDE extension will remain compatible with all supported versions of Visual Studio. gdb aslso requires Android tools for Visual Studio to be installed.
  • Fix: Arduino as ISP - Burn bootloader passes serial port to command.
  • Fix: Removing all breakpoints from a .cpp (without making any edits to the source) failed to recompile and used the previously cached .o object files instead. A more efficient comparison is now made during file.copy and the LastModifiedDateTime is updated if the latest version of a source file is different from the cached build version.
  • Updated: avr intellisense to detect gcc 4.6.2 and 4.6.3. 4.8.1 is also still supported.
  • Added: intellisense redefines for the avr pgm_read defines which VS does not understand
  • Added: intellisense sense only preprocessor define _VMICRO_INTELLISENSE
  • Change: Enclose the vsarduino.h intellisense header source with if defined(_VMICRO_INTELLISENSE) read more
  • Automatically disable visual micro in project configurations that contain any of the following defines _WINRT_DLL; _WIN_IOT; _VMICRO_DISABLE
  • The above changes ensure that windows IoT projects containing a .ino course file can be compiled without interference from Visual Micro. Creating a new empty project configuration without the above defines will allow visual micro to build a windows 10 IoT project when the configuration is selected.
  • New draft documentation guide to cross-compiling Windows 10 IoT and Arduino projects. How to optionally enable Visual Micro for a specific Configuration and how to create code that arduino.cc or Microsoft IoT will compile.
  • Change: Automatic debugging will only be started for projects that have an active configuration name containing the text 'Debug' (not case sensitive). Previous version would enable debug unless the configuration name contained the text "Release". This is designed to prevent users who do not know what debugger is from accidentally enabling debugging.
  • 1704.18 - Reversed >> Updated to the latest SharpZip. Hopefully that solves some reported issues unpacking/installing new hardware. (issue report)
  • Workaround: Esp8266 debug failed to connect to wifi. If the esp8266 has a 2-3 second delay at the start of the setup() it fails to connect. Visual Micro no longer enforces this delay for esp boards. In fact the delay is only useful for boards such as the Uno which start almost instantly preventing the serial monitor (and debugger) from capture the earliest serial messages.
  • Missing last char when reading serial during debug. If serial.print() was used in the arduino code without line terminator the last printed char was missing from the display
  • Known bug: Unprocessed debugger packets can sometimes appear in the serial output window. Improved slightly in this release.
  • Intellisense and serial debugger support for Adafruit Feather/nrf52 type boards

new gdb hooks - examples

Code:

# Gdb override target_selected: fires after the target is selected and prior to halt
#

recipe.hooks.gdb.post_target_selected.1.pattern=monitor arm semihosting enable
recipe.hooks.gdb.post_target_selected.2.pattern=set mem inaccessible-by-default off
recipe.hooks.gdb.post_target_selected.3.pattern=monitor arm reg
recipe.hooks.gdb.post_target_selected.4.pattern=monitor arm semihosting_fileio enable 

 

Release 1704.3 - Due 3rd April 2017 - Visual Studio 2012-2017, Atmel Studio 7

  • Roll up of all recent changes
  • Much improved handling for missing or superceeded board manager tool chains
  • Important release for users of Arduino 1.8.2

Release 1703.31 - 31st March 2017 - Visual Studio 2012-2017

  • The Visual Micro entry in Platform Explorer did not draw correctly if an Arduino version was selected in the editor.
  • The Visual Micro entry did not show some tabs
  • Added support for boards that do not #define an ARDUINO version in the compiler syntax of platform.txt.
  • Added support for boards that incorrectly hard code the archive file name (core.a)
  • Added support for sparkun beta PSoC Dev Board

Release 1703.30 - 30th March 2017 - Visual Studio 2012-2017

  • Important update for Arduino 1.8.2 tool chain discovery
  • UTF8 in the Serial Monitor / Console. (tip: To create utf-8 source code click "File>Save As>With Encoding"
  • Fix: Tool chain discovery: Ignore discovered hardware source folders that are empty. Causes build errors if a package\version folder existed that was empty. The arduino.h and other sources would fail to be found by the compiler.
  • Add - New CLI tool. Compile Arduino folder structure or compile visual studio project structure. overview: Supports the same build as visual micro, all build properties can be overridden, final output can be copied to specified location. (the tool is beta, the output format is likely to change prior to release)
  • Handle situations where discovered tools are not listed in json index files and installed hardware references a similar but missing tool. The recent arduino 1.8.2 release was an example with hardware version 1.6.18 and a new unlisted atmel/avr tools version. Also now resolved by arduino.cc in board manager

Release 1703.25 - 25th March 2017 - Visual Studio 2012-2017, Atmel Studio 7

  • Support for Arduino 1.8.2 which defines the avr platform as 1.6.18 but that core has not yet been published to their Board Manager!! It also defines an atmel avr tool version that has also not been published to Board Manager. Neither are required but caused a breakage for Visual Micro. The new release of Visual Micro will find the highest tool and core based on version when missing items are encountered. (this issue only affected built in arduino ide avr boards)
  • Fix: Version comparison for platforms. (previously arduino 1.6.9 was considered higher than 1.6.17, oops!)
  • Allow discovered tools found on disk to be contained in the index even if they are not declared in the package.json
  • Note: It is recommended to use "Visual Micro" without the Arduino IDE. The Explorer > Board Manager and Library Manager can be used to install all hardware and libraries making the Arduino IDE redundant. Visual Micro is less susceptible to breakages when the Arduino IDE is not being relied upon.
  • Removed obsolete programmer entries from the Atmel Studio 7 version. The "Atmel Studio Device Programming" programmer is the only option required to use any Atmel studio hardware programmer (then set your prefered programmer using the standard Atmel Studio project properties. tip: make sure your as7 project type 8bit/32bit matches your hardware!)

Release 1703.20 - 20th March 2017 - Visual Studio 2012-2017

  • Fix: Support for shared (linked) .ino source code
  • Clearer tool tips on the Serial Monitor DTR and RTS checkboxes. NB: For esp8266 users the checkboxes must be OFF
  • Fix: Intellisense paths failed to be updated if an invalid path format was encountered in existing c++ project paths
  • Add: Custom hooks/actions for upload events. pre/post/error
    Example: paste the following into a board.txt that can be created via the Visual Micro "Add Code" menu. This examples gives a few useful properties. Switch on vMicro>Compiler>Verbose to see and "Show Build Properties" to see other property_name= {variables}

    these hooks are just examples and will produce error outputs
    Code:
    # project build property overrides (board.txt)
    #
    
    # before upload event - example
    recipe.hooks.deploy.preupload.pattern=cmd.exe /c "c:\hooks_test\test_pre.bat" "{build.path}  "{build.project_name}" "{build.project_path}"
    
    # upload failed event - example
    recipe.hooks.deploy.errorupload.pattern=cmd.exe /c "c:\hooks_test\test_error.bat" "{build.path}  "{build.project_name}" "{build.project_path}"
    
    # upload complete event - example
    recipe.hooks.deploy.postupload.pattern=cmd.exe /c "c:\hooks_test\test_post.bat" "{build.path}  "{build.project_name}" "{build.project_path}" 

Release 1702.25 - 25th February 2017 - Visual Studio 2012-2017

  • Burn boot-loader now works for boards that have a bootloader.pattern but do not specify a bootloader.file
  • Setup: Prevent output window error warnings when arduino projects are opened (or created) before hardware has been installed. This mainly applies when working without an arduino ide location and before the first package has been installed. In this case there are "0 installed or available boards"
  • When there are 0 installed boards the boards lists show a command to open the Visual Micro Explorer where the "Board Manager" tab can be used to install boards. (reminder: click Rescan or restart the ide after making changes to boards within visual micro or externally in windows explorer).
  • Also works with the windows store version of the arduino ide (tip: You do not need to configure an ide in visual micro when using window store arduino ide)
  • Visual Micro no longer requires the Arduino IDE to be installed. Existing users will notice no difference but new users will no longer be prompted to configure an Ide location. In all cases a new "Ide/Application" called "Visual Micro" automatically provides the Arduino environment. When using the Visual Micro option, Help/references will not be available. The standard AVR (Uno etc) tool chains and libraries can be downloaded/installed via the Board and Library Managers.
  • Fix: Shared library projects would fail to compile if the library_name.h was not #included before other headers from the same library. This only applied if "library deep search (conditional lib-in-lib auto discovery) was enabled on the vMicro>Compiler menu.
  • New users will find the arduino, esp8266, adafruit board packages are ready to be installed (as required). (atmel studio has arduino, chipKIT, sparkfun, adafruit)  To enable auto-check for package updates each package must be enabled in the auto-discovery list at the top of the Visual Micro Explorer > Board Manager.
  • The new "Folder Only" mode in VS2017 is still beta

Release 1702.18 - 18th February 2017 - Visual Studio 2012-2015 (+ 2017 RC4 beta)

  • Upload defaults to using a short windows 8.3 build path to avoid issues with unquoted build definitions and folders with spaces. (affected intel 101 upload for some users)
  • Add support for Arduino preferences to exist in the "SketchBook\ArduinoData" folder. The ArduinoData folder is created by the Arduino IDE when installed from the windows app store. Visual Micro does not support windows app store versions of Arduino because the default permissions prevent us from accessing the IDE. note:   If the ArduinoData folder exists it takes priority over the Users\Appdata\Local\Arduino15 folder. If [ArduinoIdeFolder]\portable exists then it takes priority.
  • Tool chain discovery improvements. Some hardware failed to build or upload.
  • Platforms with missing tools have more intelligence to find tools in other packages. If the correct version can not be found then the latest installed version of the same tool name is used.
  • Discover and mark as installed tools that exist below the downloaded package folders but that are not declared in any indexes (packageindex.json)
  • Better discovery of tools for packages that were designed for an older version of the Arduino IDE than is currently installed (mainly applies to AVR boards)
  • Updated support to VS2017.RC4 which required all visual studio dte references to be reset.

Release 1702.15 Sp1 - 15th February 2017 - Visual Studio 2012-2015 (+ 2017RC beta)

  • Platforms that referenced tools using a version format with less than 4 segments failed to discover tools resulting in compiler or uploader "{runtime.tools.path} errors. This also affected the installation of hardware via board manager where by tools would not be installed if the version number format was less than 4 segments (v1.1 failed but 1.1.1.1 was ok). If hardware has been recently installed and the problem persists after applying Sp1 then use Board Manager to uninstall and reinstall the hardware/platform.

Release 1702.15 - 12th February 2017 - Visual Studio 2012-2015 (+ 2017RC beta, Atmel Studio 7)

  • Serial usb debug support for many more variations of samd based boards (atmel boards etc.)
  • Atmel Studio version sync with latest release.
  • Atmel Studio bug fix: Menu item "vMicro>Atmel studio  debugging" is not available in the free version again. Reminder: Setting the programmer to "Atmel Studio Device Programming" and switching on "Use for uploads" enables native Atmel Studio devices and settings to be used for upload.
  • Library searcher discovers all library paths for a source file and then resolves all discovered libraries. This fixes issues compiling some libraries that inter-relate such as Microsoft Azure libraries and mqtt samples.
  • Make more accurate insertion point for prototypes in .ino code
  • Various compile issues related to code formatting
  • Serial debug commands are no longer added to .c files (caused compile errors)
  • Gdb and Atmel hardware debuging is now free (applies to visual studio and atmel studio 7)
  • Shared projects improved
  • Shared libraries edit and debug, libs in any location, ideal for large development teams and advanced users
  • Cross-platform intellisense in shared projects (see the correct intellisense for the architecture of the currently selected master project)
  • The "Parallel builds" feature is now out of beta and speeds up large builds by 100's of % (for paid users)

Release 1702.11 Sp1 - 11th February 2017 - Visual Studio 2012-2015 (+ 2017RC beta)

  • Fix - Board and Library Manager. Platforms and libraries that contain versions defined in reverse or ad-hoc order will now suggest the correct "Latest Release" (for example: esp8266 will prompt v2.3.0 (newest) instead of 1.6.5 (oldest).
  • Board Manager - Tested installing and building 400+ boards. Installing 3rd party board packages can no longer break other packages due to incorrect tool chain specification in 3rd party indexes. This protects packages, such as Adafruit, that inherit tools and cores from other packages.
  • Fix - Prevent board manager tool chains from overriding the arduino.cc original. It was possible that a working build system would break after installing board manager packages that use the same tool versions as the currently installed arduino package. This could be a serious issue for some users by causing the build system to appear unstable.
  • More resilient and more intelligent  tools discovery for all 3rd part boards. Especially avr boards.
  • IoT device discovery failed if mdns properties were not available. For example connecting an esp8266 without using ArduinoOTA would fail to automatically discover the device. (applies only to apple bonjour for windows users)
  • Removed invalid #prama warnings from arduino 1.0.x debug builds. Did not cause a build to fail.
  • Added new build property {deploy.transport_type} to distinguish between normal and programmer upload types.   deploy.transport_type=upload and  deploy.transport_type=program (gdb debug forum)
  • Downloadable packages that contain platforms using the same named tool but of different versions could cause the wrong tool path to be available. This issue surfaced for the Intel Galileo gen2 boards that use a tool called sketchupload.exe. The intel package also contains the Genuino 101 definition which uses a different version of sketchupload.exe. Gal Gen2 boards would show {runtime.tools.sketchuploade...r} error when upload was attempted.
  • Assembly view - Added support for the latest "Teensy" style compiler path definitions (used to find -objdupmp.exe)
  • Added a new tools>options>visual micro>compiler property. "Disassembled View Auto Activate". If disassembled view has been enabled for a project then automatically display it after each successful build (defaults to OFF/false). tip: The view automatically converts temp build locations to correct source locations (dbl click to go to source).
  • Discover downloaded tools that exist on disk but that have not been registered in a package index.json. (example: Samsung Artik 10 linuxuploader.exe)
  • Use PnP serial device discovery instead of win32. This allows for more port properties to be discovered from WMI. The VId, PID and iSerial variables are now correctly populated. Build/upload properties include the {serial.port.iserial} which contains the unique serial device id and is used by boards such as Samsung Artik 10 during upload.
  • Project name showed as "Sketch". After creating a new project using "File>New Arduino Project", the project name would revert to "Sketch" when it was next opened. This was caused by users clicking "No" to the visual studio prompt "save changes to the project (vcxfilters)". This release of Visual micro forces projects to be saved immediately after creation.
  • Fix: "Key already in dictionary" error during load of hardware that contains key/values for properties that are normally set by the IDE at run time. Caused some hardware to be excluded from the available/installed boards list
  • Improved threading and status bar animation
  • Improved status messages during Esp8266 SPIFFS upload "vMicro>Upload Server Data Files"
  • Append Vid/Pid specific build properties for the currently selected serial port (does not apply to Net/WiFi/OTA uploads).
  • Show USB/Serial discovery properties in outputs when "Show Build Properties" is enabled. Properties are shown as Serial.[propName]=[value]
  • Nucleo Fxx type boards using the mass storage upload method incorrectly define the disk volume in the upload command with quotes. For example "tools.nucleoFlasher.upload.pattern=-O "{node}" produces an invalid volume name of "NODE_F103RB". Visual Micro strips the quotes so that mass storage upload completes successfully.
  • Allow Visual Micro to be used while board manager is downloading/installing packages. Currently, only one package can be downloaded at a time (more board manager improvements coming soon).
  • Usb debug support for ARM_CORTEXA
  • Usb debug support for STM32L4
  • Implement better resolution of tool chain locations for hardware that inherits tools from other packages (boards that were designed for older gcc tool chains (but that inherit the core from packages such as arduino) will now use the version of tools (such as avrdude) that matches the core.
  • Resolve the correct variants location for downloaded packages that use arduino ide\hardware variants. Caused certain boards such as "arcode" avr boards to fail to compile due a missing pins_arduino.h
  • Fix: Platforms with index.json without dependencies now resolve to the latest arduino gcc. (attiny and other platforms would fail to compile)
  • Network Esp8266 spiffs failed if authentication was not used unless an empty network.password= was provided via board.txt (tip: spiffs is the upload of files from the "project\data" folder to the esp8266 file system)
  • Intellisense improvements for the latest arduino samd tool chain.
  • Board Manager - Download and install multiple packages at the same time
  • Board Mnanager - Allow project edit and upload during while new hardware is being downloaded and installed
  • Board Manager - New hardware installation progress "Number of packages remaining"
  • Arduino 1.6 and above only: -The default working directory when running build and upload processes has been changed from the arduinoide folder to arduinoide\java\bin. This enables .bat files that use java (such as some variations of serialuploader.bat and mapleuploader.bat stm32 and maple) to run without error.
  • Board Manager - Improved installation of new package url index files via the 3rd party Board "Auto Discovery List". Instant download of new index.json files when clicking auto discovery nodes. Select as many as you want and then click the Re-scan button to view install-able platforms (will appear as in the available platforms list)

Release 1701.19 Sp1 (Release) - 19th January 2017 - Visual Studio 2012-2015 (2017RC beta)

  • Sp1 fixes a plugin startup issue in the previous 1701.19 release 6 hours earlier. Affected all users unless Visual Studio 2017RC is also installed.
  • Fix intellisense bug in last few releases mainly for users with nas drives
  • Improve verbose compiler output proving CTRL+Click to view a directory that is shown in the output
  • Fixed (reverted) intellisense bug with forced includes. .ino and other source file names have been removed. Only the .project-name.vsarduino.h is applied. This will in the short term have a detrimental effect on intellisense when the new VS2017RC beta feature "File>Open Folder" is used. Wiill be resolved in the next release.

Release 1701.17 (Release) - 16th January 2017 - Visual Studio 2012-2015 (2017RC beta)

  • Arduino 1.8.1
  • Fix: Removed debug message from GDB startup
  • Sp2 fixes an intellisense issue with the new relative paths used during auto update of the c++ forced includes. The problem was a result of the work to support the new Visual Studio 2017RC "File>Open Folder". There are no longer any fixed intellisense paths in Visual Studio Arduino projects.
  • New version with many Team improvements
  • Edit and debug libraries from any location (add them as shared c++ projects) read more
  • New checkable menu item > Add Library>Create a shared project when adding libraries. When ON, a shared project is automatically created when a library is added to an Arduino project. Adding a refeference to the library project from a master project in the same solution provides cross-platform intellisense and debug.
  • Non-library shared projects are also now fully supported (vs 2015 and 2017 only)
  • Gdb board paramaters can now reference selected programmer properties
  • beta>The new "File>open Folder" feature of Visual Studio 2017 RC is supported for edit and build (no debug)
  • If project board, libs or settings had changed but users clicked "cancel" to the save changes dialog when closing the project intellisense would be incorrect after next open. Intellisense would correct itself after various events such as board, libraries, adding .ino source, adding methods to .ino files. The impact was unrecognized  #defines such as ARDUINO
  • Added initial beta support for the new "Visual Studio 2017 RC > Open Folder" command. Allows edit and upload of Arduino programs without need for a project file. Debug and project settings are not yet supported for this type of project. Visual Studio requires a CppProperties.json in the root of the project for intellisense to work in "Folder" mode. Visual Micro creates a CppProperties.json if it does not exist. A configuration called "Visual Micro" is maintained in the CppProperties.json. Arduino intellisense will only work when the "Visual Micro" configuration is selected. VS RC has a few minor bugs. IE: Re-opening a "Folder" can fail to show any source code, requiring an ide restart.
  • Fix: Stop debugging did not always manage the gdb kill command correctly. Start/stop gdb debug should be improved
  • The automatic project include (for intellisense) .vsarduino.h now uses a relative path.
  • Initial blog about shared c++ projects and arduino libraries

Major New Release 1701.3 - 3rd January 2017 - Visual Studio 2012-2015 (2017RC beta)

draft - more to follow

  • More intelligent compiler cache managment, less rebuilds, faster compile times.
  • Pro/paid users please try the new vMcro>Compiler>Parallel Build feature. Build all the files in each folder at the same time.
  • Fix crash when clicking "Create New Local Arduino Library"
  • Fix possible program freeze during build > library search. An example would be if a header or code file #included itself. In this case the gcc tool chain might never return from an infinite loop causing visual micro to freeze. A 3 second timeout is now imposed on library discovery commands and 90 seconds for compiler commands. Under normal use the timeouts should never be hit.
  • Limit compiler error messages to max 250. Huge errors would cause extreme sluggish ide performance.
  • Support C++ shared projects as References. The code from shared projects is compiled as if it were part of the main project therefore all source file names must be unique within the build. (tip: If using sub folders in shared projects it is recommended that only one first level sub folder called \src is used. This will make it easier to recombine sources into a single arduino ide compatible project. The arduino ide only recognize the src\ sub folder branch.)
  • Read more from Microsoft about C++ shared projects. Visual Micro applies the same rules to Arduino as is defined  here for Cross-Platform and Android
  • Seemless development in a shared c++ project. Upload, debug exactly the same as when developing in the main project.
  • When editing code in a shared project, intellisense will be provided based on the the Visual Studio "Startup Project". The build and upload controls will also assume the current Solution Startup Project.
  • When the F4 project properties of a shared c++ project are viewed a "Micro" option allows the folder path of the shared project to be added as a -I compiler included. The setting is not required to successfully build projects based on shared projects. The setting is for advanced users that understand clearly what adding compiler -I includes does.
  • Intellisense: C++ includes are now relative to the project folder and the $(ProjDir) macro is used to specify the root.
  • Opening a project does not cause automatic check out.
  • Many improvement for shared development teams. (More to follow)
  • Build progress messages and progress.
  • Free users: Try buy nag screen opens one time, on the first build after each start of visual studio. Clicking Cancel allows the build to proceed.
  • Tip for Arduino AVR users only: The Arduino IDE moved to a new avr tool chain that runs slower than the older versions. If compile speed is slow then point visual micro to a slightly older version of the Arduino Ide.
  • Open (and create if it doesn't exist) board.txt when "Create board.txt" is clicked
  • More intelligent auto detect when a rebuild is required as a result of board options value change.
  • Fix bug introduced in 1612.20 - Library search was cached too heavily. The latest release has a high degree if intelligence for all build cache phases. Tp: The cache defaults to "preserved between ide sessions". "Build>Rebuild" always clears the cache and performs a clean build.
  • Free users must update prior to 25th Jan 2018

Release 1612.24 - 24th December 2016 - Visual Studio 2012-2015 (2017RC beta) 

  • The Arduino 1.8.0 IDE has been released and is supported. The release works the same way as the Arduino 1.6.x versions. The Visual Micro application
  • Fix problem for first time users, after entering an arduino location visual micro would not operate until the ide had been restarted.
  • Compiler speed improvement
  • Using the Visual Micro 'Add Code' or 'Create Project' menu commands prevent illegal characters in file names (especially applies to Atmel studio which does not allow spaces in file names (unlike the Arduino Ide). Visual Micro supports spaces for new files in Visual Studio
  • The "Debug>Attach to process" command (attaches to an existing debug session is available) has been improved and is more responsive to a change of port or ip
  • Opening visual studio no longer shows the visual micro 14/45 day nag screen to buy visual micro. Instead the window opens the first time an Arduino build happens in the session. This will happen once every 14 days. (Feed back suggested it didn't make sense to nag visual studio users when not working with arduino projects. makes sense to us, thanks!)

Release 1612.20 Sp2 - 21st December 2016 - Visual Studio 2012-2015 (2017RC beta) 

  • Last update before the holiday. 
  • Fix debugger trace messages slow or non existent refresh
  • minor: Display trace updates before visualization updates (@plot, analog, digitial viewers) are refreshed

Release 1612.20 Sp1 - 21st December 2016 - Visual Studio 2012-2015 (2017RC beta)

  • SP1 - Fixes a startup crash for some unlicensed users. The prompt that appears every 14 days for free users was causing the problem. The prompt will now appear at the start of compilation once every 14 days.
  • AVR intellisense fix for arduino 1.6.10+
  • Esp8266 intellisense improvements.
  • Compiler cache defaults to per configuration causing compile to be much faster when switching between release and debug. (Switch this feature off in tools>options>visual micro>debug advanced)
  • vMicro>Debugger menu extended so that Digital Pin, Analog Pin and Free Memory viewers can be enabled without needing to edit the project properties.
  • Default debugger "In-Break Live View" to ON giving status updates while paused at a break point.
  • Improvements to default @plot chart viewer.
  • "Serial Monitor>Wrap" released in previous version didn't work properly. With wrap switched off clicking into the received data text box will show horizontal scroll bars.
  • Clearer status bar messages during debug
  • Prevented "vMicro>Toggle Hidden Files" from adding .c shortcuts because they cause the VS intellisense to break. This issue is under investigation.

Release 1612.12 - 12th December 2016 - Visual Studio 2012-2015 (2017RC beta) 

  • Enhanced support for OTA upload with Arduino Linux (Bridge) boards.
  • Improved handling of Ssh commands for Arduino Yun
  • Ssh password dialog auto focuses to the password field. (enter key presses the OK button)
  • Fixed a bug that prevented the Ssh password from being cleared when an Authentication error is encountered during a connection attempt (a restart was required to set a new password)
  • Merge bootloader for linux boards if a noblink.hex is defined for the board (yun)
  • Fix a problem that prevented the evrdude .config path from being overriden by the hardware/board
  • Force each package to use tools from within its own folder location (if installed), otherwise fall back to similar tool from other package.
  • Opening and closing of Serial/Network monitors improved. Also the handling of port auto-reconnect/errors has been improved.
  • Many debugger improvements...
  • Extended the hardware support for the Live memory viewer to all SAM, SAMD, ESP, 101 boards.
  • "vMicro>Debugger>In-Break Live View" - Optionally provides updated watch and charts during a breakpoint hit/pause event.
  • "vMicro>Debugger>Performance Stats" - Proves the mcu "up time" and time taken to execute code between two breakpoints.
  • A new notification system when a breakpoint is paused allows the debugger to more easily connect to and continue debugging for a micro-controller without need for reset (previously a blank monitor appeared requiring the 'c' char to be sent to the remote device)
  • Better status messages during a debug session
  • Known bug/todo: Ssh/Console debug does not yet support sending from pc to the remote device.

Release 1612.07 SP1  - 7th December 2016 - Visual Studio 

  • Fix - Last 3 releases the debugger failed to override the Dtr (for qualifying boards) during startup
  • The "tutorial" break-point in new projects has been changed to a trace-point. A message is printed every 250ms. This ensures the mcu will not stop in code unexpectedly for new users. tip: Switch off the "Continue Execution" break-point property to make the code pause and wait for a "Continue" command.
  • Fix: Rts is used more intelligently. The toggling of Rts is required for some boards but causes other boards, such as esp8266 to switch mode.
  • Debug message throttling is no longer applied to breakpoints that have "conditionw" and/or "hit count". This means a 250ms breakpoint will now be sent every 250ms. tip: To disable all debugger message throttling use the "vMicro>Debugger>Full Speed" setting but make sure the amount of trace and/or plot messages are limited to what your pc can handle (otherwise display falls behind real-time).

Release 1612.07  - 7th December 2016 - Visual Studio 

  • Esp8266 WiFi Debugging Beta (beta might cause the esp/network (uses udp ports 10112 and 10113 ) to require reset)  - Automatic when an ip address is the upload port. otherwise set project properties RemoteTransport=Udp and LocalPort=IpAddress. (NB: Update of debugger variables (=?) is not yet supported and will cause the esp to hang when attempting to change a variable value in the watch window)
  • All other features in this version are normal release (non-beta)
  • When using Esp9266 OTA Upload and Debug it is not required to configure the project properties (LocalPort/Ip and RemoteTransport/Udp)

Release 1612.01  - 1st December 2016 - Visual Studio 

  • Esp8266 SPIFFS uses apple bonjour dns info when available
  • Fixed bug that caused the project to be un-selected from the VS build process. Not normally a problem for Arduino builds but the same setting allows custom build events to be executed. Please recheck the the build option for your project in "Build>Configuration Manager" if you want to use Visual Studio build events alongisde Arduino builds.
  • Support "network.password=" in each projects board.txt (pro users)
  • Added new menu item vMicro>Debugger>Full Speed. This switches off the default debugger  message throttling allowing the micro-controller to run at full speed (approx). Enabling this property causes the advanced project property "Throttle Enabled" to be ignored and provides a more obvious setting for users who do not like to read the documentation. This setting is also required to debug in ISR handlers subject to a compatible debugger Serial/Pin configuration (example: if Serial does not work because the timer is being used then we have to select different port or pin for debug)
  • Captured the "Debug>Attach to process" event allowing debug to be resumed without need to for upload. This is the same as opening the serial monitor on the debug port. Useful when using Net/IP upload but debugging using a different port or pins.
  • Board Manager will warn/ask to run "post_install.bat" bat files if they exist with the tools installed during package installation. This allows usb drivers to be installed. The warning states the package must have come from a known reliable url (from a known package on a secure system).
  • Debugger - Fix for esp8266 free memory graph: {@ReportFreeMemory)
  • Updated to latest ICSharp.Zip api. Improves Board Manager package installer for GZip and TAR packages
  • Improve detection for new network/IoT devices when using the Apple Bonjour Printer Service for discovery (esp8266 + Arduino Yun).
  • Removed compiler delay in free version but removed the 'recently used boards' instead
  • Added menu item "Upload Last Build" to the vMicro>Uploader menu and removed from the Visual Studio "Project" menu
  • Removed all Visual Micro menu items from the standard Visual Studio "Project" menu. This applies to the "Add Code" and "Add Library" menu items. These items are available on the visual micro menus and bars, on the visual studio>solution>project right mouse context menu and on the visual studio "Add Items to Project" menus.
  • The dtr setting in the serial monitor defaults to False for boards such as esp8266

reminder esp8266 network config with or without apple bonjour print discovery services (as per arduino ide OTA guide)

local project board.txt

network.port=8266

network.auth_upload=yes

network.password=123


Release 1611.20  - 20th November 2016 - Visual Studio and Atmel Studio 7

  • Added intial support for Visual Studio 2017 RC
  • Intellisense fix for most tool chains. Stray )" in intellisense primer
  • Esp8266 debugger > digital pin, anlog pin and free memory visuals

Release 1611.18  - 18th November 2016 - Visual Studio (excl. 15 preview)

  • Deep search libraries supported for older tool chains. For example: Discover spi library for the Intel Galilao
  • Fix: Assembler .S and .inc files were not supported correctly

Release 1611.5 Sp1  - 5th November 2016 - Visual Studio (excl. 15 preview)

  • Fix: Missing "arduino15\packages\arduino\hardware" folder caused package load to fail. Applied to machines that had never used "board manager" to install genuine Arduino platforms (such as 32 bit). 

Release 1611.5  - 5th November 2016 - Visual Studio (excl. 15 preview)

  • Fix: Gdb debug failed in builds of the past 30 days note
  • Gdb uses localhost:3333 by default
  • Add: Optional Gdb debug property to control connection (ie: tools.gdb.tcp=localhost:4444):­ tools.gdb.tcp=

Reminder of gdb board.txt/platform.txt config properties

#board specific

[board_id].build.openocdscript=board/[board openocd].cfg

# platform general

debug.tool=gdb

tools.gdb.pre_init.tool=openocd

tools.gdb.cmd=arm­none­eabi­gdb.exe

tools.gdb.path={runtime.tools.arm­none­eabi­gcc.path}/bin

tools.gdb.pattern="{path}/{cmd}" ­interpreter=mi ­d "{build.project_path}"

tools.gdb.openocd.cmd=bin/openocd.exe

tools.gdb.openocd.path={runtime.vm.ide.platforms.path}/default/tools/openocd­0.9.0

tools.gdb.openocd.params.verbose=­d2

tools.gdb.openocd.params.quiet=­d0

tools.gdb.openocd.pattern="{path}/{cmd}" ­s "{path}/scripts/" ­f "{path}/scripts/{build.openocdscript}"

Release 1610.27  - 27nd October 2016 - Visual Studio (excl. 15 preview release)

  • Board Manager Urls: Support local package index files that start with file://
  • Removed restrictions for package index file names that do not start with "package_"
  • Display package index.json "not found" errors (if encountered) when opening the Visual Micro Explorer.
  • Display package index.json parser errors (if encountered) when opening the Visual Micro Explorer.

known bug: Boards Manager - After adding new package urls or installing new hardware versions, the Re-scan button needs to be clicked twice or the ide restarted.

Release 1610.25  - 25nd October 2016 - Visual Studio (excl. 15 preview release)

  • Support library auto-discovery in the \utility folder of old format libraries. Example: SoftwareSerial will automatically be compiled for the Firmata library because "\Utility\SerialFirmat.cpp" relies on it.

Release 1610.23  - 23nd October 2016 - Visual Studio (excl. 15 preview release)

  • Support arduino.org 1.7.11 - Uses roaming/arduino17 prefs folder if it exists otherwise uses roaming/arduino15
  • Automatic library resolution extended to include all project sources. Previously only the .ino and library sources were scanned for library #includes)
  • ESP8266 SPIFFS upload detects changes to property overrides in the local board.txt
  • Better detection of new and moved libraries after clicking Reload Toolchains or Rescan. Applies to projects where a board had never specifically been set, the default/last board selection was being used. In previous version the Ide might have required restart before the current project would recognize library installation changes.
  • +Micro Explorer Installed Tab: Keyword search improved
  • +Micro Explorer Installed Tab: Added an 'Libraries List' node. Click a library name to use the library in the current Arduino project.
  • +Micro Explorer Installed Tab: Keyword library search.
  • +Micro Explorer References Tab: Keyword help/reference document name search.
  • +Micro Explorer References Tab: Help/references show from a higher folder level, catering for all Arduino/clone IDE versions
  • +Micro Explorer References Tab: Tool tips show the physical location of the source files and folders
  • +Micro Explorer Reference and Examples Tabs: 'Refresh' button
  • ESP8266 SPIFFS (upload data files) upload support for network.port, network.password
  • Add support for "Tools>Options>Stop asking me to buy stuff". Configured via administrator .xml (see educational use/mass-roll out instructions)
  • nb: Visual Studio 2012-2015 are fully supported but Visual Micro for the new Visual Studio 15 Preview can not currently be uploaded to the gallery due to a bug that Microsoft will resolve within the next 30 days. Contact us if you need an update for "vs15"
  • Using in "Free" mode? To reduce support, this version must be updated before August 2017

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.
  • Using in "Free" mode? To reduce support, this version and previous 2016 releases must be updated before April 2017

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 library.properties when importing Arduino v2 format libraries (causes compiler errors)
  • Auto detect v2 format Arduino libraries that are missing a library.properties 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 library.properties 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"
    #else
    #include "WProgram.h"
    #endif
     

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 library.properties treated as old style 2) libraries with library properties but no \src folder treated as old style 3) Libaries with library.properties 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 https://www.visualmicro.com/forums/YaBB.pl?num=1471016969)
  • 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.
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:-
  <ItemGroup>
    <ProjectCapability Include="VisualMicro" />
  </ItemGroup>
  <PropertyGroup>
    <DebuggerFlavor>VisualMicroDebugger</DebuggerFlavor>
  </PropertyGroup>

Boards Menu - Eeasier to Use