Arduino for Visual Studio - Release Notes

Recommended download method is from inside the IDE via "Extensions and Updates".

For older releases please register on our Forum, with downloads available on the Beta Releases, Older Releases and Beta Notifications.

If install does not run then > Right click Open With > Visual Studio Version Selector. If you are using Arduino 2x IDE backend with Visual Micro and are looking for the libraries that arduino.cc install with the 1x IDE? Look in Library Manager for the "Built-in Libraries" node, installing the "built-in" will install the libraries.

Tip: VS Users: New projects will use a new project format but are still just standard .vcxproj files. The new format provides excellent intellisense. Visual Micro now installs the Linux Workload into Visual Studio. Older Visual Micro projects still require the Windows desktop C++ workload that must be manually installed via Tools>GetTools. New projects show the text "(Arduino)" to the right of the project name in the solution explorer. To convert old projects to the new format please see the instructions on this page.

Visual Micro Release 2024.0223.00 - 5th March 2024 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: Improved message for dual use of verbose compiler message "Library Include Paths"
  • Fix: Hardware Debugging: STM32F4x Boards now use correct OpenOCD Config for Upload/Debug (generic_f407v/stm32f4stamp/netduino2plus/blackpill_f401) (Reported Here)
  • Fix: Debugger Menu Items showed "Option 5" in some cases, and could confuse the list for "Hardware Debugger" with "Compiler Optimization" in some scenarios.
  • Fix: Compiler Deep Search: Relative Include Working Directory could fail to be set to the compiler path due to the override being set incorrectly (Reported Here)

Visual Micro Release 2024.0102.03 - 12th January 2024 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: Archive file linkage fixed so it works with all toolchains (e.g. ESP32) when command is > 30k.  This functionality can be forced on for all builds using board.txt property:- vm.linker.dot_a_create=true. The caching can be disabled with this property:- linker.dot_a_cache=false
  • Fix: Linker includes changed to use relative paths (Reported Here)

Visual Micro Release 2024.0102.01 - 4th January 2024 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: Use archive files if the link command is > 30k. Prior to link, creates objs.a archives for the object files in each folder. This functionality can be forced on for all builds using board.txt property:- vm.linker.dot_a_create=true. The caching can be disabled with this property:- linker.dot_a_cache=false
  • Improvement: ConvertToLinuxProject now shows clear error message when a configuration is available in a project and not in the solution (Reported Here)
  • Fix: Resolved one area where creation of Temporary Folders could replace "." with "_" in usernames causing Library Installation to fail.
  • AS7 Only: Inclusion of VM_MemCheck_Sam.cpp to ensure all Serial Debugging Features work as expected
  • Fix: CompilerStringReplacer Final Fix to ensure there is no crash as part of Deep Search if debug.tool has not been set  (Reported Here and Here)

Visual Micro Release 2023.1212.00 - 14th December 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: Ensure compiler.optimization_flags cannot infinitely recurse when using Alpha Arduino IDE Features for Release/Debug Configuration seen in STM32 v2.7.0 Package (Reported Here)
  • Fix: Ensure vMicro > General > Global Options functions although won't land user on correct property page with this change (Reported Here)
  • Improvement: Increased ErrorMessage counter from 500 to 2k when received in error pipeeline from compiler process, added warning message when this limit is reached (Reported Here)
  • Update: Board Installation: Added compatability for *.xz compressed files for future Teensy Board Packages
  • Build Messages: Removal of Tip to convert project intellisense as it can be shown in some scenarios when it should not be (Reported Here)
  • Improvement: ConvertToLinuxProject improved handling when there are no Shared Property Sheets (Reported Here)
  • Improvement: ConvertToLinuxProject now shows clear error message when a configuration is available in a project and not in the solution (Reported Here)
  • Fix: Resolved one area where creation of Temporary Folders could replace "." with "_" in usernames causing Library Installation to fail.

Visual Micro Release 2023.1103.00 - 13th November 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Update: Debug: Addition of "Arduino" option to Debug selection, to allow use of the same debugging tools and parameters as used in the Arduino IDE (Documentation).
  • Update: Hardware Debug: Addition of CMSIS-DAP Debugger for the Arduino Uno R4 Board
  • Fix: Serial Debug: Addition of PinMonitoring/FreeMemory/Wifi/Serial Debugging for the Arduino Uno R4 Board

Visual Micro Release 2023.1006.02 - 1st November 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: SerialDebug: Teensy Boards: Addition of PinCounts for Digital/AnalogPinMonitoring, and FreeMemory code added (Reported Here)
  • Fix: SerialDebug: Additional Code for RP2040 Core for Memory Monitoring and Digital/Analog Pin Counts
  • Fix: Hardware Debug: Ensure 2s delay present for All SAMD boards between Upload and Debug Session Starting (Reported Here)
  • Fix: Hardware Debugging: Pause/Stop/Add-Break weren't working when target is running, under multiple configurations  (All ESP32S2/S3/C3 Configurations, and all others using the debug.toolingsystem=gdbscript board.txt override) (Reported Here and Here).
  • Fix: ConvertToLinuxProject: Ensure non-VCXPROJ project files are skipped, and that multiple projects can be converted together (Reported Here)
  • Update: Add global  option to keep project and solution in same folder. (Tools > Options > vMicro > User Interface > Keep project and Solution Together)

Visual Micro Release 2023.1006.00 - 6th October 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: Change Property "upload.use_1200bps_touch.SetDTRFalse" to "vm.1200bps_touch_SetDTRFalse"
  • Fix: Arduino 1.6 failed to load in vm if teensy is installed into the ide and also in appdata
  • Fix: Updated library and board index for vs2022
  • Fix: Avoid Serial monitor error in background when the serial port is not initialized
  • Fix: Teensy pretty port name showed incorrect value
  • Fix:Teensy console failed unless port address started with usb:
  • Fix:Verbose compiler library info shows "by maintainer/author"
  • Fix:Resolve port to pretty name: If a discovery port is found the boardport info is used and a win32 wmi lookup is not attempted. The port might not be found (teensy for example) and that caused a > 7 second error state to be recorded in the SerialPorts class.
  • Fix: Arduino 1.6 teensy console and ports boardPort includes console class type.
  • Fix: Plugin discovery hack for teensy so that teensy console is used even if the portAddress contains a ".". Previously attempted Network.
  • Fix: Prevent Serial Port from Opening when GDB is stopped on a break point (to prevent VS Hang forcing restart of entire GDB session)
  • Fix: Ensure functions which have prototypes already defined are skipped (when in same code file) (Reported Here)
  • Fix: Ensure vMicro Debugger is selected when launching Debug if user has selected "Remote GDB Debugger" in Project Properties  (Reported Here)
  • Fix: Project Converter fixed to handle renamed projects and other variants of Arduino Compatible Projects (Reported Here)
  • Fix: Switch to using DTE.ExecuteCommand("File.SaveAll") instead of DTE.Documents.SaveAll (Reported Here)
  • Update: Project Converter now more resilient with further logging added for when issues are encountered (Reported Here)

Visual Micro Release 2023.0915.00 - 15th September 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Fix: Upload Using Programmer: The programmer resolution in the app.CompileAndUpload partly used the older single programmer per ide system. The correct programmerName is now evaluated during creation of the build wrapper (with other properties) which simplifies and brings up to date the "get programmer name" code (Reported Here)
  • Fix: COM Port Selection: Port was not resolved and saved to project correctly when network discovery is off. This is since we added support for arduino discovers, that means networkdiscovery can be off but we will always still believe general discovery is enabled. The old test when selecting a port from toolbar or menu meant friendlyserial ports were never evaluated.
  • Fix: COM Port Selection: Other post monitor, local and remote debug port selection caters for network disovery=false
  • Update: Project Converter now more resilient with further logging added for when issues are encountered (Reported Here)

Visual Micro Release 2023.0731.07 - 8th September 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Update: Improve warning prompt when users attempt to enable share library projects or clones etc.
  • Update: Improve help links when users attempt to enable library clone and shared libraries. Show/Hide hidden files.
  • Update: Refresh library_index.json and package_index.json for new installs
  • Fix: Compiler: Shorten -I include paths only when they exceed the 32k limit (Disable with vm.settings.shorten-include-paths=false)
  • Fix: Compiler: ESP32: Remove Double Slashes in commands by default to keep paths as short as possible (Disable with vm.settings.use-single-backslashes=false)
  • Fix: Compiler: Change to char limit (32767 to 31000) to trigger path shortening (all cases) and double backslash replacement (ESP32 Only).
  • Update: Exposure of whether the project is a Linux Project (vm.settings.IsLinuxProject)
  • Update: Addition of Tip at end of Build Output to upgrade the project if it isn't already
  • Hardware Debugging: (gdbscript only) Addition of Logging for GDB Level of commands to Build Folder.
  • Hardware Debugging: (gdbscript only) Inversion of OpenOCD Logging so it produces logs unless specified not to
  • Fix: Increase Timeout for compiler commands to run to 5m to reduce issues on slow/busy systems (Reported Here)

Visual Micro Release 2023.0731.03 - 15th August 2023 - VS 2017, 2019, 2022

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro

  • Libraries: Refactor of Advanced Clone Features to vMicro > Add Library > Library Advanced, and disable these options until explicitly enabled again. A warning is now shown with better alternative route to using fixed library sources (See Documentation). However, for most users, we recommend to use "vMiro>Show Hidden Files" to view underlying lib and core sources in the solution explorer. The hidden files are automatically updated by visual micro when libraries are updated and/or board selection changes. 
  • Fix: Hardware Debugging: Fix to ESP32S3-USB Debugging ensuring Flash Size is set to 0 (Reported Here)
  • Fix: Hardware Debugging: Links shown in Output Window updated to point to specific pages where appropriate
  • Fix: Portability: Solution folder "\Arduino-Portable\Sketchbook " overrides the sketchbook unless "\arduino-solution\Sketchbook" folder exists.
  • Fix: Relative Paths in compiler -I includes to shorten paths below the 32k Windows Limit.  Local Board.txt flag can be set to enable this functionality should it be needed vm.settings.shorten-include-paths=true (Reported Here).

Visual Micro Release 2023.0507.14 - 26th July 2023 - VS 2017, 2019, 2022 and Microchip Studio (AS7)

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro
  • This version of Visual Micro provides the ability to dramatically reduce build times. Future releases will provide control via the user interface. See the docs for how to control cache settings on a per project basis. 
  • Fix: New user experience! The "Linux and embedded development with C++" Workload that is used for intellisense is automatically installed correctly now.
  • Fix: New user experience! The first configured IDE is automatically selected
  • Fix: Improved Text in IDE Locations Dialogue
  • Fix: Ensure double wrapped defines in a command are unwrapped so they are used correctly by the compiler (Reported Here)
  • Fix: Upload: Arduino Uno R4 WiFi Upload fixed, by not disabling DTR as part of the upload.use_1200bps_touch=true setting.  Affects ALL boards using the upload.use_1200bps_touch setting (Reported Here)
  • Fix: Bootloader Merge: Ensure Bootloader path has merge properties resolved.
  • Fix: Bootloader Merge: Ensure error message is shown when bootloader path cannot be found (Reported Here)
  • Fix: Improved error message if scanning library path fails (Reported Here)
  • Update: Addition of new board property to show the Solution Build Configuration "vm.solution.configuration_name" e.g. Release or Debug (Reported Here)

Visual Micro Release 2023.0507.1 - 11th May 2023 - VS 2017, 2019, 2022 and Microchip Studio (AS7)

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro
  • Fix: Implement options to control cache creation at all stages. The defaults are a happy medium beween ease of use and speed. Cache can be slowed down to work or can speed up. Most projects will be able to use super-fast mode. Doc to follow on release. Ask in this forum if you need guidance.
  • The simple "File>New>Arduino Project" and "File>Open>Arduino Project" will show on the recently opened projects and solutions lists in VS. These functions will also attempt to create sketches in a sub folder so that the solution file (.sln) can be placed in the parent folder. For example "sketch1\sketch1". 
  • Boards that use files such as build_opt.h will correctly recompile core and libraries when the options change.
  • This version of Visual Micro provides the ability to dramatically reduce build times. Furture releases will provide control via the user interface. 
  • This release provides control "per project", using a local project board.txt.
  • The information below gives examples.
  • In future releases, some of the settings below might be enabled by default. However, a local board.txt will always be the final override, and therefore can be relied on to continue working with future visual micro versions.
  • The following settings make greater use of cache. Over use of these options might cause build errors because libraries are not discovered fully. Enabling these settings might require a "Build>Rebuild" after making changes to deep underlying sources. 
  • Combined together, these settings are designed to allow for the minimum of time taken to build an arduino ide compatible project. After a 1st build of a core or project, build times for some packages might reduce 10 or 15 fold.
  • Download Cache Settings board.txt from here

  • Fix: Vs2019 Command Buttons failed due an issue loading the Project Converter in the previous release.
  • Update: Added support arduino portable folder functionality below a solution in a folder called arduino-portable. (NOTE: If the arduino-portable folder is created when the solution is open, then the solution needs to be closed and reopened.)
  • Update: Added support for solution libraries either in arduino-ide\libraries or arduino-solution\libraries. The only difference is ide has higher priority than ide libs and solution has higher priority than sketchbook\libs. Tool chain and libs are auto rescanned only if required after solution is loaded, when an .ino project is activate or detected. Does jnot affect normal operation.
  • Update: New Menu option to convert old projects to latest Arduino project format (only shown when an old project is opened)
  • Update: Icons added for "Use Programmer" and "Publish www data files" foe easier use when added to Toolbars
  • Update: Added "Show/Hide Hidden Files" to toolbars
  • Project Templates: Reintroduction of Blink Example Template
  • Hardware Debug: Addition of "Rpi Debug Probe" to Support official debugging probe, for RP2040, MBED_NANO and MBED_RP2040 Boards (Reported Here and Here).
  • Fix: Improved build speed by using improved code for build/board properties (Add board property vm.settings.mapping-replacer-v1=true to revert)
  • Fix: Prevent deep search from ignoring cache after ide restart or platform toolchain reload. To revert to previous functionality ... "vm.settings.gcc-e.cache-per-app-load=true"
  • Fix: Ensure Build Folder is correct when using Library Debugging with Shared/Cloned Libraries (Reported Here)
  • Fix: MicroExplorer Failed to render "installed" tab when library names contained "{}".  Additional output message added to explain to users' to fix library paths.
  • Fix: Default Show Build folder to ON

Visual Micro Release 2023.0220.5 - 2nd March 2023 - VS 2017, 2019, 2022 and Microchip Studio (AS7)

  • NOTE: Ensure Visual Studio is up to date when installing this version of Visual Micro
  • Fix: A suprious programmer selection error would be displayed if a solution contained non-arduino projects and an arduino project was not active
  • Fix: A confusing error message was displayed when export fails for the compiled binary (with merged bootloader). A message is now only dislayed when verbose messages are enabled.
  • Fix: Correct a spelling mistake of the word "bootloader" in the compiler output when an export merges the bootloader.
  • Fix: Some uploaders only displayed messages after the upload finished. For example esp32 OTA (Reported Here)
  • Fix: Esp32 OTA Upload Hang (Reported Here)

Visual Micro Release 22.11.28.24 - 27th February 2023 - VS 2017, 2019, 2022, VS2022 and Microchip Studio (AS7)

  • Fix: Escaping build hook paths in recent releases caused some build hooks to fail. (eg: deletion of esp32/m5stack build_opts.h)
  • Fix: When starting the gdb debugger for teensy, the VM_DEBUG_GDB compiler define was not set.
  • Fix: When running commands from cmd_exec.bat ensure the file is created with utf8 encoding (e.g. Build Hooks)
  • Fix: .hex being locked after a build due to merge with bootloader (Reported Here)
  • Fix: Hardware Debug: STM32L4x.cfg incorrectly set for Nucleo-64 Boards in STM32 Official Core (L476RG/L452RE-P/L452RE/L433RC_P) (Reported Here)
  • Fix: Hardware Debug: Olimex ARM-USB-TINY-H Debugging Configuration to use correct *.cfg file (affects Board Packages ESP32, Mbed_Nano, Mbed_RP2040). (Reported Here)
  • Fix: Hardware Debug: Adafruit SAMD: Cortex M4 (SAMD51) Boards to use correct config as not packaged with board package (Reported Here)
  • Fix: Project Templates: Aligned to use $projectname$ instead of $safeprojectname$ to prevent over-replacement of chars (e.g. -)
  • Fix: Microchip Studio (AS7): Unable to select a programmer
  • Fix: Microchip Studio (AS7): missing the license page help
  • Hardware Debug: Addition of Teknic ClearCore Board Configuration for Debugging (Reported Here)
  • Hardware Debug: Addition of "FT2232H Single" Interface Debugger alongside "FT2232H Dual" (ESP32, MBED_NANO, MBED_RP2040, RP2040, STM32, STM32F1, STM31F4) )(Reported Here)

Visual Micro Release 22.11.28.24 - 28th December 2022 - VS 2017, 2019, 2022, VS2022 on Windows ARM64 (Apple Mac) and Microchip Studio (AS7)

  • If a path contains utf8 chars we were unable to drill down (dbl-click) into the code from compiler error messages.
  • Show clearer warnings if the current app is configured with invalid IDE Location. (Only applies to using Visual Micro alongside Arduino 1x IDE)
  • Intellisense library includes were missing after a failed build.
  • New project format intellisense: Added shared paths as includes. They are required to support include <> alongside #include ""
  • VS2022: Prevent escaping of gdb args. Escaping of compiler args was added in recent versions, inadvertntly affected debug args.
  • VS2022 Update causes debugger sources to be loaded from the temp build folder: Add a source file mapping list to the gdb debugger launch json.
  • Add the 'additional board support urls' to the verbose output so that support is easier.

Visual Micro Release 22.11.28.15 - 22th December 2022 - VS 2017, 2019, 2022, VS2022 on Windows ARM64 (Apple Mac) and Microchip Studio (AS7)

  • Show clearer warnings if the current app is configured with invalid IDE Location. (Only applies to using Visual Micro alongside Arduino 1x IDE)
  • UTF8 paths: Double click drill down from compiler error to source code failed for .ino files other than project_name.ino. All other files worked correctly.
  • Intellisense library includes were missing after a failed build.
  • New project format intellisense: Added shared paths as includes. They are required to support include <> alongside #include ""
  • VS2022: Prevent escaping of gdb args. Escaping of compiler args was added in recent versions, inadvertntly affected debug args.
  • VS2022 Update causes debugger sources to be loaded from the temp build folder: Add a source file mapping list to the gdb debugger launch json.
  • Known Issue: Unable to set a hardware debugger breakpoint in INO code other than the project_name.ino. Other INO code can be "stepped into" and "stepped out of" but without break/trace features. (Under investigation)

Visual Micro Release 22.11.28.15 - 22th December 2022 - VS 2017, 2019, 2022, VS2022 on Windows ARM64 (Apple Mac) and Microchip Studio (AS7)

  • Compiler defines - Quoted strings were not escaped since the recent path \\ escaping changes.
  • Compiler -D defines that contain quoted strings will now enclose the entire define with quotes. Previously only the value of the define was double quoted.
  • These changes are important but certainly required for SAM and STM32 toolchains that reply on quoted strings in compiler defines.
  • If an uploader attempts to run java the entire command will be prefixed with "cmd /c"

Visual Micro Release 22.11.28.12 - 20th December 2022 - VS 2017, 2019, 2022, VS2022 on Windows ARM64 (Apple Mac) and Microchip Studio (AS7)

  • Full escape all strings in build commands. Previously only quotes strings were escpaped
  • Upload comands only switch to 8dot3 file names if specified for the platform or board (upload.8dot3=true). Previouly visual micro switched to 8dot3 too easily, some toolchains do not support it.

Visual Micro Release 22.11.28.10 - 16th December 2022 - VS 2017, 2019, 2022, VS2022 on Windows ARM64 (Apple Mac) and Microchip Studio (AS7)

  • Color coding and intellisense and red squiggles were missing from .ino code in the latest Vs2022 IDE (+ bumped version for vs2022)
  • Blank platform explorer. Platform explorer dpi scaling failed for scaling above 100%
  • Fix: Use utf8 when reading the arduino 2 cli settings (yaml). Support international chars in paths.
  • Utf8 in paths caused the new intellisense format to fail (vs)
  • Potential hang in the intellisense engine after creating a new project using the File > New > Project templates.
  • Use utf8 when reading the arduino 2 cli settings (.yaml). Support international chars in paths.
  • Roll up of all changes since last release for Microchip
  • Arduino 2.0 support
  • Option to use Visual Micro without any backend IDE such as Arduino 1x or 2x
  • Moved the "Always use Atmel Debugging" toggle menu to work inline with the standard Visual Micro "debugger types" menu. Selecting "Hardware Debugger" will use the Microchip Studio hardware debug tools.
  • Prevent Microchip from attempting a build when attempting to attach a hardware debugger. Previously, users has to uncheck "Build>Configurations>Build/Deploy". (The Microchip build will always fail for Arduino projects, Visual Micro has to manage the build)
  • Project Names: Creating new projects will show "(Arduino)" after the project name in the solution explorer.
  • Release of the 1st version of Visual Micro for ARM64 devices. To create projects in the ARM version use "File>New>Arduino Project" or, to open .ino code for the first time use "File>Open>Arduino Project". This is because the Visual Micro templates in the standard Visual Studio "File>New wizard" can not be used until Microsoft release the Linux Workload for arm devices. In this release for ARM, the Visual Studio Desktop C++ workload is required. Normally Visual Micro only requires the Linux workload that provides better intellisense.
  • Potential crash accessing Visual Micro tool bars to automatically control visibility.
  • Potential crash when reloading tool chains via the Platform explorer
  • Potential crash when not loading Visual Micro on demand. Tool bar access while the Start Page Window is open prevented the ability to confugure the UI.
  • Potential crash if Visual Studio is not open and a solution (.sln) shortcut is clicked in windows. The IDE loads and loads the solution before the Visual Studio UI has initialized. Visual Micro will delay the load of its UI customizations until the IDE has sent it's first UI message.
  • VS 2022 on Windows ARM64. Apple Mac users please join our forum to download the new version for the Mac. It has some slight intellisense workaround while we wait for Microsoft to release the Linux Workload for ARM devices.

 

Visual Micro Release 22.11.28.2 - 2nd December 2022 - VS 2017-2019, VS2022

  • ESP32: Fix to ensure additional Filesystem Upload options are shown (Reported Here)
  • Micro Explorer: Added resiliency and logging to help identify rendering issues (Reported Here)
  • Hardware Debugging: Improvement to ensure no conflicts between Board Package Debug configurations and vMicro Debug configurations (Reported Here)

Visual Micro Release 22.11.28.0 - 29th November 2022 - VS 2017-2019, VS2022

  • Intellisense: Major improvements for new Linux projects resolving a wide range of intellisense issues for all boards
  • File>New/Open Arduino project now use the newer Microsoft Linux project type instead of the older VC++ project type. This means that only te smaller Linux C++ workfload is required to be installed. The C++ desktop workload is no longer required except for use with older projects.
  • Serial Monitor: Improved for high volumes of data to prevent freezing/crashing.
  • Serial Monitor: Button Highlights fixed to work accross all Windows Versions/VS Themes
  • Board Manager: Fix ensuring all dependant monitors and discoverers are installed as needed (e.g. Teensy Board Manager Package)
  • Board Manager: Teensy Package now available at the top of the Auto-Discovery List
  • Teensy: Fix ensuring ports are discovered and Serial Monitor works when using Board Manager Package
  • Open Arduino Project: Fix ensuring all files are rediscovered correctly when using File > Open > Arduino Project (or vMicro > Open Existing Arduino Project)
  • Fix: Opening and closing a project without making changes caused save dialog to appear
  • Changing board options has immediate affect on intellisense.
  • Intellisense uses the actual code. In Visual Micro 1x releases the intellisense was not fully GCC compatible. For some boards, this provided a less than ideal experiene. Please let us know if you intellisense in Visual Micro 2.0 to be less than excellent!
  • Using a new intelligent intellisense engine,  previously "Unknown to Visual Micro" architecures are now fully supported. Previous to the 2.0 release, support for some less well known (or very new) architecures was weak.
  • Platform specific plugins, such as for Teensy, have been implemented. This means that packages, such as Arduino 2.0 and Teensy for Arduino 2.0, can provide architecure specific menu suggestions for users of Visual Micro. An example being the different security and debugger options for Teensy 2x, 3x and 4x. This combined with support for "extended board properties" provides a simplerwayt to access some of the more advanced features of Teensy.
  • Serial debugger in tutorial mode: Default breakpoint example trace message changed from 1hz to 4hz.
  • First Use After Installation: Defaults to "Arduino 2" IDE (If using Arduino 1.x the location can still be filled in on the IDE Locations screen)
  • Teensy: Fix to use correct GDB and Security tools across all Teensy Installations (Hardware Folder or Board Manager Package)

  • Prototype Generation: Fix for #define expansions within function variables (Reported Here)
  • Teensy4x: Fix to Encryption Fuse Sketch Compilation (Affected Teensyduino v1.5.6 + 1.5.7)
  • Teensy 2x: Addition of boards.append.txt to ensure Teensy2 Board options show up correctly (Reported Here)
  • Teensy Encryption: Added "ON" to "Lockable" Menu item to help users remember when this has been enabled for a project
  • Version Determination: Fix to ensure full version 0.1.0 is used when installing board packages (e.g. Dragino) for Arduino IDE compatability
  • Version Determination: Now Correctly determines versions for items with "extra" bits on the end (e.g. 4.8.1-arduino5 results in 4.8.1 instead of 4.8.15) 
  • Annual Licenses: Output message shown at end of build for last 45 days of the licenses validity e.g. Annual License of Visual Micro (Expires in 15 days, on 15 October 2022)
  • InheritedBoardPackage: Amendment to setting of runtime.tools for build/upload/bootloader to come from inherited core instead of tools specified in board's package index (Reported Here)
  • Activation: Amendment to error message when activation fails to point to background page instead of "Try/Buy Web Page"
  • Intellisense: Fix for blank line at end of Intellisensecode.h for ESP32, RP2040, SAMD, ESP8266
  • Add Library to Solution: Reversed ordering of headers as added to sketch to ensure they end up in the correct order (Reported Here)
  • InheritedBoardPackage: Fix for e.g. Arrow Boards (SAMD) to use the Contributed Board Package if it is not found in the IDE folder
  • Show/Hide Hidden Files: Fix to ensure correct thread used when Showing/Hiding to improve reliability (Reported Here)
  • Build: Fix for when multiline macros are used to ensure no erroneous space is added after backslash (Reported Here)
  • IncludePaths: Fix to prevent erroneous include paths causing header suggestions to be incorrect (Reported Here)

Visual Micro Release 22.09.05.7 - 14th September 2022 - VS 2017-2019, VS2022

  • Update VS2022 packages to ensure they are compatible with VS2022 17.0 onwards, instead of being reliant on VS2022 17.2+

Visual Micro Release 22.09.05.4 - 12th September 2022 - VS 2017-2019, VS2022

  • In some cases the UI startup would be unresponsive until the focus of the app changes. A workaround has been to prevent information messages from appearing during startup. The issue will be reported to Microsoft.
  • Resolve project detection issues. The latest VS2022 version creates an empty project in background at startup. (Visual Micro incorrectly assumed it was a folder only project).
  • Update VS2022 packages. Some Microsoft packages have still not been converted fully to VS2022. However this updates uses their latest packages which no longer rely on some older 16x references.
  • Update: Serial Debugger now works on Portenta H7 Board (on M7 Core)

Visual Micro Release 22.09.05.0 - 6th September 2022 - VS 2017-2019, VS2022

  • Update: Serial Debugger now works on Raspberry Pi Pico W Board
  • Fix: Intellisense improvements for STM32 boards
  • Fix: Defaulted "Compiler > Always Copy Build Output to Intermediate" to FALSE
  • Fix: ESP32 Compiler Pattern did not have -MMD removed causing erroneous *.d files to be created as part of Deep Search for v2.0.0++ (Reported Here)
  • Update: Added a global option "Communications > Serial Read Frequency" (Default:75ms) to refresh the entire Serial Monitor. (Previous default was 100ms. Min allowed is 15ms)
  • Update: Added a global option to set the "Communications > Serial Read Timeout". Default changed from 100ms to 200ms.
  • Update: Upload property upload.pause_before_ms defaulted to 200ms if not set in board.txt (Reported Here)
  • Fix: Intellisense: MegaAVR Fix for missing String.h functions e.g. memset (Reported Here)
  • Update: Startup for clearer messaging regarding loading toolchains, and delays registering c++>.ino file extension
  • Update: Minor changes to messages and menu caption for non-activated use
  • Fix: IDELocations: Trims Double Quotes from Paths when entered
  • Update: Added a board property to try out pause before upload. set to milis:- upload.pause_before_ms= (Reported Here)
  • Update: Try/Buy Screen cleaned up for clearer explanation of Visual Micro to new Users
  • Fix: ESPExceptionDecoder - Ensure #line is included for both Debug:Off and Debug:Hardware (Reported Here)
  • Fix: ESPExceptionDecoder parses lines with "(discriminator x)" correctly to jump to code line correctly
  • Fix: HardwareId Generation improved to ensure this is calculated as early as possible
  • Fix: Correct environment font measured for presentation of boards list
  • Fix: Startup messaging improved
  • Fix: Shutdown stability improved
  • Fix: Intellisense improvements for SAMD Standard C functions e.g Memcpy (Reported Here)
  • Update: ESP32/ESP8266 no longer requires Bonjour Service to be installed to perform network discovery of boards.
  • Fix: Activation Form now removes leading & trailing spaces when submitting license key to reduce accidental errors in activation.
  • Fix: IDE Locations checks ensuring the same paths are not used for IDE Location / Sketchbook / Downloaded Board Packages (Reported Here)

Visual Micro Release 22.06.11.0 - 14th June 2022 - VS 2017-2019, VS2022

  • Compiler and lib search improvements
  • Advanced users: "Build into project intermediate" now suffixes the "board id" to the "build folder". Also now allows "copy to intermediate" work in tandem. This allows cahing to work correctly with different boards on the same code.
  • "Cpp only" projects will build faster than .ino projects for advanced users. (reminder: Non-ino cpp only projects lack automatically created prototypes + serial/wifi debugger)
  • Cores that do not create .d dependency files will now allow caching if the source has not altered. In verbose mode a warning is displayed in the build output stating the .d files are not available. note: Without .d dependanty files recompile of source code does not happen if the source has not changed but an #included source has changed. Normally we would expected a change to #included source to cause recompile of all other source that uses it.
  • Improved cleanup of teensy virtual serial port scan

Visual Micro Release 22.06.07.0 - 8th June 2022 - VS 2017-2019, VS2022

  • Fix to ensure Prototypes are not generated if they are already in the sketch (when Deep Search for Libraries + Accurate Prototype Insertion (Gcc-E) is enabled)
  • Cpp only projects failed to build when deep search for libraries is enabled
  • Prevent creation of prototypes for CppOnly projects. (fyi: The prototypes are not auto inserted for Cpp projects therefore this change simply improves build speed)
  • Portenta intellisense improved.
  • Intellisense moved to Cpp17/C11
  • Project property to disable prototypes was not applied when using CTags to extract the prototypes. It was only possible to switch off extraction of prototypes via the board.txt setting vm.ctags=false.
  • Fix: BuildProjectInIntermediate: Solution Clean to clean correct build folder (Reported Here)
  • Fix: BuildProjectInIntermediate: Files no longer recursively copied one layer deeper every compilation (Reported Here)
  • Fix: BuildProjectInIntermediate: CPP Files not being recognised as cached on second build (Reported Here)
  • Fix: RP2040: Conflict with rp2040_rpipicopicoprobe board for Upload Tools
  • Update: UploadUsingProgrammer: mbed_rp2040 board Package has all programmers available for use
  • Fix: Library Installer - Comparison of Dependency Lib Names now includes spaces to match 3rd Party Spec (Reported Here)
  • Update: HardwareDebug - Addition of RasPiPico "PicoProbe" Debugger to options (Reported Here)  (PicoProbe Documentation)
  • Update: PlatformSupport - Addition of support for RP2040 Core, and debug tools (GitHub: Board Package)   (Debug Documentation)
  • Update: LicensingUI - Expiry Message now contains date string for annual licenses (e.g. 29 April 2022)

Visual Micro Release 22.04.29.3 - 14th May 2022 - VS 2017-2019, VS2022 and AS7

Visual Micro Release 22.04.29.2 - 6th May 2022 - VS 2017-2019 and VS2022

  • Fix: GDB: GdbScript Tooling which was incorrectly replacing adapter_khz in the pattern (Reported Here)
  • Fix: Build: ZWave Uno, ensuring SketchName.cpp.interim is copied to SketchName.ino in Build folder (Reported Here)
  • Fix: Serial Debug > FreeMemory Chart fix for Dark Theme wasn't reliable, now fixed in all scenarios to a Blue Line
  • Fix: Correction to Information in VS>Help>About to reflect VMicro Version Installed (2019/2022)
  • Fix: Licensing: Removed reliance on needing available network device once activated succesfully
  • Fix: Intellisense: Added MBED_Portenta paths to resolve issues (Reported Here)
  • Fix: ESP32: Exception Decoder Fixes for new ESP32 Core 2.0.0++ (Reported Here)
  • Fix: Hardware Debugging: ESP32S2+S3: Updated GDB Paths + OpenOCD Configs (Documentation)
  • Fix: Hardware Debugging: ESP32C3: Added USB Debugger entry (Documentation)

Visual Micro Release 22.04.29.0 - 29th April 2022 - VS 2017-2019 and VS2022

  • Fix: Licenses incorrectly showing expired in the below (22.04.26.0) version in VS2022 for machines with a corrupted WMI database. Upgrade from the forum, or from Extensions > Manage Extensions within Visual Studio.

Visual Micro Release 22.04.26.0 - 27th April 2022 - VS 2017-2019 and VS2022

  • Fix: Build: Major fixes removing conflicts between packages of same architecture (e.g. ESP32/M5Stack/Sparkfun ESP32)
  • Fix: Build: Core.a archive is rebuilt if build cancelled during the archive creation
  • Fix: ESP32 Programmer Upload (< v2.0.0) - Improved to remove injected prebuild hook #9 to ensure correct bootloader is available for JTAG Upload Using Programmer
  • Fix: Intellisense: PortentaH7M7 RTOS.h path (Reported Here)
  • Fix: Build Hooks: SaveHex pattern now works as specified (recipe.hooks.savehex.presavehex / recipe.hooks.savehex.postsavehex)
  • Improvement: Board List UI: Fully qualified Board name is now shown on the right hand side of the boards list
  • Fix: High Speed Parallel build option not enabling on click (Reported Here)

Visual Micro Release 22.02.18.5 - 24th March 2022 - VS 2017-2019 and VS2022

  • Fix: Micro Explorer > Reference now linked to online documentation when local files missing, e.g. Arduino IDE 1.8.16 onwards (Reported Here)
  • Improvement: board.txt supports additional prefixes:
    
    # standard board.txt property. lowest level of priority. a fallback value.
    #
    # test1=
    
    #
    # avr.test1=(board.target_architecture)
    # atmega328p.test1=(board.mcu)
    # AVR_UNO.test1=(board.boardname)
    # uno.test1=(boardid)
    
    # configuration name release/debug (case must be same)
    #
    # Release.avr.test1= (board.target_architecture)
    # Release.atmega328p.test1= (board.mcu)
    # Release.AVR_UNO.test1= (board.boardname)
    # Debug.uno.test1=(boardid)
    
    
  • Fix: Prototype Generation now correctly handles Teensy FLASHMEM declaration on functions (Reported Here, Alternate Example TSynth Project on GitHub)
  • Fix: UI: Improved scaling fixes for MicroExplorer and IDELocations windows on High Resolution Monitors with scaling applied 
    NOTE: This should allow the DPIAwareness Registry key to be set to 1 or removed (shown on the 4K Monitors tab on this page)
  • Fix: Build: Library Caching updated to cater for Cloned Versioned Libraries
  • Fix: Build: Library Caching only outputs cached entries when using vMicro > Compiler > Verbose
  • Fix: Intellisense: MBED Nano Boards fixed for RTOS code (Reported Here)
  • Fix: Line Endings made consistent when Adding Libraries (Reported Here)

Visual Micro Release 22.02.18.0 - 22nd February 2022 - VS 2017-2019 and VS2022

  • Fix: Build: Library Caching fix added to greatly speed up second and consequent builds 
  • Fix: Serial Debug: Memory Monitor added for ESP32/ESP8266 boards (Reported Here)
  • Fix: Serial Debug: Memory Monitor Line not displaying in Dark Theme resolved
  • Fix: Intellisense: ZWave Uno Beta Boards (Reported Here)
  • Updated Fix: Hardware Debugging approach updated for newer ESP32 Modules e.g. WROVER-E (Reported Here, and here)
    NOTE: This is currently behaving differently to our standard installations in the following ways:-
    - You must set one breakpoint in your code before starting the debugging session.
    - Breakpoints can only be added/changed when you are stopped on a breakpoint.

    Add below Local board.txt entries to try this:
    debug.toolingsystem=gdbscript
    # Most stable OpenOCD Version for newer ESP32 Boards 
    tools.openocd.debug.path={runtime.tools.openocd-esp32-0.10.1-2021.07.21.path}
    # Very Latest OpenOCD (seems less stable than the above)
    # tools.openocd.debug.path={runtime.tools.openocd-esp32-0.10.1-2021.11.11.path}
    
  • Fix: Teensy COM Ports cleared down after disconnect (within 10s) (Reported Here)
  • Fix: Project Caching for all configurations, ensuring CPP and INO files are cached correctly
  • Fix: Improved Project Caching when Hardware Debug disabled, ensuring Project CPP files are cached correctly
  • Fix: Improved handling for hook patterns ensuring UTF8 characters are handled fully in Sketch/Core/Library paths
  • Added new board.txt property to disable Deep Search vm.runtime.compiler.auto_discover_includes=false
  • Optimization: Override Hardware Debugging Optimization using board.txt property ide.compiler_flags_debug (default is -Og) (Reported Here)
  • Fix: Teensy4 Board Options not showing on older TeensyDuino installs (pre 1.54)
  • Fix: Improved Debug/Upload for STM32 (Official) Boards (STM32 G0/1 L0/1/4 WL WB Boards) (Reported Here)
  • Fix: Clarified Menu Options for Advanced Library Usage
  • Fix: Encoding and Quoting of Disassembly/Hex/Compiled Binary output paths 

Visual Micro Release 21.11.08.9 - 2nd December 2021 - VS 2017-2019 and VS2022

  • Fix: Addition of C++ Core Desktop Features to ensure C++ Workload is prompted for install in VS2022
  • Fix: Warning improvements when sketch does not use an src folder
  • Fix: Removal of internal build file from previous release which could cause compilation issues
  • Fix: Serial Debugging improved for when US-English Language Pack is not installed in Visual Studio
  • Fix: Improvements to ANSI/UTF-8 Handling of paths and code files experienced by international users (default now UTF-8) (Reported Here)
  • Fix: Build output > Disassembly view file:/// path is now surrounded by quotes (Reported Here)
  • Fix: Caching of library (.a) archive when a library specifies (dot_a_linkage)
  • Fix: Z-Wave Uno Build fixed so now correctly pre-processes files for external build (Reported Here)
  • Fix: Portenta H7 - Configuration available for M7 and M4 Cores, additional JLink (No OpenOCD) to allow dual core debugging simultaneously
  • Fix: Portenta H7 - improved intellisense for LEDR/G/B and bootM4() calls
  • Fix: STM32F4 (Stmduino): Fix to Uint8 intellisense issue (Reported Here)
  • Fix: ESP32 FSUpload sets chip correctly for e.g. ESP32C3 module
  • Fix: VS installer confuses 32 bit and 64bit versions of the same extension. Internal version number change between 32 (2017-2019) and 64 (2022) bit versions of Visual Micro.
  • Fix: VS2022 - Fix various crashes in platform explorer (board manager and library manager). Related to the use of the recycle bin when installing, updating libraries and boards.
  • Fix: "IDE Locations Config Dialog" > Problems setting Optional Board Manager Urls.
  • Fix: Duplicated platform names showing as available boards in the boards list. A cosmetic issue that happened under some circumstances.
  • Feature: Initial release of Teensy 4x Encryption (Read The Docs)

Visual Micro Release 21.11.08.0 - 8th November 2021 - VS 2017-2019 and VS2022

  • ESP32: FatFS Fixes for partition offset
  • ESP32: Addition of LittleFS and FatFS Tools and Board Menu Options (Read The Docs)
  • ESP8266: Addition of FatFS Tools and Board Menu Options (Read The Docs)
  • Libraries: Addition of Auto Pre-Compiled Header Functionality (Read The Docs)

Visual Micro Release 21.09.17.5 - 24th October 2021 - VS 2017-2019 and VS2022

  • VS2022: Serial Debug: Resolution of Multiplot DLL Load Error
  • Portenta H7: Pre-configured Hardware Debugging for M7 Core with Segger JLink integrated for "Arduino Mbed OS Portenta Boards" platform)
  • Build: Fix to Library discovery process to avoid conflict with different architecture libraries (Reported Here)
  • Build: Ensure creation of Merged Sketch+Bootloader HEX & BIN for e.g. Arduino Zero (Reported Here)
  • Build: Fix for Pre-Compiled Library Archives when in sub-folder of Architecture Folder (Reported Here)
  • Build: Addition of combined INO to allow compilation for the ZME Z-UNO G2 (Reported Here)

Visual Micro Release 21.09.17.0 - 17th September 2021 - VS 2017-2019 and VS2022

  • Licensing: Fix for Activation in VS2022 where Hardware Id could not be generated
  • Project Templates/Load: Adjusted for interoperability with VS2019 and VS2022
  • Intellisense: Fixes for SAM Platform
  • ESP32: Removal of partitions.csv automatically for each build ensuring board option partition scheme is applied correctly
  • ESP8266: Exception Decoder Fixes to ensure addr2line exits correctly and reports errors as expected (reported here)
  • ESP8266: Added Board Menu Option for SPIFFS/LittleFS FSUpload options instead of local board.txt entry
  • ESP8266: Added Board Menu Option for Automatic FSUpload on Build & Upload completion
  • ESP8266: Serial Monitor Closed If Open when using SPIFFS/LittleFS Uploads
  • All Debug: New vMicro > General > "Visual Studio Start Commands Use Active Code Instead of Startup Project" option for Debug > Start/Attach events
  • Hardware Debug: Removal of Serial Debug Automatic Breakpoint if present to avoid conflicts
  • Hardware Debug: AVR GDBStub Configuration updated to force GDB Serial Baud to 115200 in line with JDolinay Avr-Debug Library
  • Hardware Debug: Fix for Portenta H7 MRI Debug > Start Action, ensuring it attaches correctly

Visual Micro Release 21.06.06.17 - 19th July 2021 - VS 2017-2019

  • Multi Project: Fix ensuring Active Code Has Priority Over Solution Explorer (Reported Here)
  • Default JSON URLs: Amended to use latest STM32 JSON
  • Uploader: Portenta H7 - Defaulted use 1200 touch to false to prevent upload issues for DFUUtil
  • Serial Debug: Removal of *.h File Debugging due to errors created being ambiguous when used
  • Hardware Debugging: Fix for Portenta H7 MRI Debug > Start Action, ensuring it attaches correctly
  • Hardware Debugging: Correction to Portenta MRI Debugger Name
  • Hardware Debug: Addition of DAPLink Debugger to STM32 Platforms (Official and STM32Duino)
  • Hardware Debug: Fix to Portenta H7 Configuration for MIR Debugging COM Port specification (mbed_portenta v2.0.0 Platform)
  • Hardware Debug: Addition of all working SWD Debuggers to the Nano 33 BLE board (mbed_nano v2.0.0 Platform)
  • Hardware Debugging: Addition of Raspberry Pi Pico Debuggers (read more here)
  • Hardware Debugging: Addition of Portenta H7 (M7 Core) Built-In MIR Debugging  (read more here)
  • Intellisense: Improvements to Portenta H7 ThreadDebug, and Core Switching now updates intellisense correctly
  • Intellisense: Fixes for updated MBED Packages now available to split out Nano 33 BLE, Portenta, Edge and Raspberry Pi Pico Boards
  • Intellisense: Arduino MBED RP2040 fixes for Raspberry Pi Pico Board (Reported Here)

Visual Micro Release 21.06.06.4 - 22nd June 2021 - VS 2017-2019, AS7

  • IDE Configurations: Added "Arduino 2.0" for Arduino IDE 2.0 (beta) users
  • Cloned Shared Library Projects: Library.properties file created if one is not present in the cloned library
  • STM32: Alignment of Hardware Debug Tool to XPack Arm Toolchain supplied with "STM32 MCU based boards" Core
  • ESP32: Serial Debug: Prevention of Serial.begin() replacement by default (Reported Here)

Visual Micro Release 21.06.06.0 - 6th June 2021 - VS 2017-2019, AS7

  • Optimization: Major Fixes ensuring projects always use the optimization option selected on new and existing projects
  • Hardware Debugging: Arduino SAM, STM32F3 & Energia CC3200/LM4F/MSP430 removal of incorrect static default debug tool
  • Intellisense: Fix to Arduino JSON for ESP32 / STM32F1 cores
  • Build: Fix for build hooks that use the dos /c command. Affects users that have a space in the temp build path

Visual Micro Release 21.05.27.0 - 28th May 2021 - VS 2017-2019, AS7

  • Serial Debug: Fixed issue where it did not launch unless Debugging > Automatic Debugging was enabled
  • Serial Debug: Off correctly in new Project in Release Mode, and additional warning regarding Automatic Debugging effects
  • ATMega2560: Removal of auto injected --relax compilation parameter.
  • Intellisense: Minor Improvement for ESP32 Core
  • Intellisense: Improved for ESP8266 v3.0.0 Core
  • Intellisense: Improved for STM32 and STM32F1 Cores
  • Intellisense: Improved for STM32Duino Cores with correct XPack Arm None Eabi Toolchain Selection
  • INO File Discovery: Fixes for Atmel Studio
  • INO File Discovery: Now allows ProjectName.INO to be moved to Virtual "Folder Source Files"
  • DeActivate License: Improved Feedback to User if an issue is encountered

Visual Micro Release 21.04.27.0 - 28th April 2021 - VS 2017-2019, AS7

  • Serial Debug: Off correctly in new Project in Release Mode, and additional warning regarding Automatic Debugging effects
  • Build Process: Improvements for HPP file compilation
  • Upload: ESP32 Fix for ESP32 Beta 2.0 Core
  • Added resiliency around changes for any Read Only VM System Files related to project

Visual Micro Release 21.01.16.18 - 20th April 2021 - VS 2017-2019, AS7

  • Fix for all Debugging Probes when used with any Arduino Core which has Experimental Debugging (e.g. SAMD)
  • Further Fix for Encoded characters in path names, with pre/post build hooks (e.g. ESP32 Partitions CSV and Hungarian User Names, Error on Partitions.csv)
  • Fix for any Read Only VM System Files related to project, e.g using TFS Version Control without Checkout.
  • Further Fix for Encoded characters in path names, with pre/post build hooks (e.g. ESP32 Partitions CSV and Hungarian User Names, Error on Partitions.csv)
  • Fix for Encoded characters in path names, with pre/post build hooks (e.g. ESP32 Partitions CSV and Hungarian User Names)
  • Prototype Generation: Fix for CTags issue with namespaces and functions

Visual Micro Release 21.01.06.10 - 17th March 2021 - VS 2017-2019, AS7

  • UI: vMicro Menu: Removal of "Try" from "Try, Buy Activate" as trial auto-starts on installation
  • Boards List: Removal of duplicate entries for e.g. MightyCore and ATTiny Cores
  • Snippets: Addition of ESP32 OTA Example Snippet
  • Intellisense: Fixes for Clear Core SAM Board Package
  • Intellisense: Improvements to SAMD MKRZERO
  • Intellisense: Improvements for SAMD (Seeeduino WIO Terminal)
  • Intellisense: Fixes to add CubeCell Platform Intellisense Definitions(https://www.visualmicro.com/forums/YaBB.pl?num=1610984995/2#2)
  • Libraries: Additional prompt for dependency auto-installation
  • Serial Monitor: Resolved Crash when data sent to disconnected port
  • Prototype Generation: Prototypes no longer generated when CTAGS output is misaligned between Signature and Code
  • Build Process: Fix to #line additions for {build.opt.name} file included in STM32
  • Build Process: Fix to Comment Stripping which may cause issues in some builds with mixed string delimeters
  • Build Process: MBED: Fix to 8dot3 paths to ensure they do not affect the Portenta Boards
  • Upload Process : Atmel Studio: Fix for upload.verify setting so it is correctly set
  • Serial Debug: Addition of WifiNINA Compatible Boards for Wifi Serial Debugging (Arduino UNO WiFi Rev.2, Arduino NANO 33 IoT, Arduino MKR 1010, Arduino MKR VIDOR 4000 WiFi)
  • MicroWebServer: Expanded to Handle DTR/RTS additional params via script (for e.g. Nano33BLE as doenst work when disabled)
  • GDB: New Local Board.txt property to reset the program when Debug > Stop is pressed, instead of leaving the program stopped (vs-cmd.Debug.ResetOnStop=true)
  • GDB: Fix when debugging Project *.h files, ensuring correct project file is opened (instead of buildFolder file)
  • GDB: StepOver can now skip all but first iteration of loops/conditionals, with added board.txt property "vs-cmd.Debug.StepOverGDB=until"
  • GDB: Fix for STM32 Core, Nucleo F030R8 config corrected to f0x.cfg
  • GDB: Additional Break All Property to for custom GDB Stop Commands, forcing BreakAll to run before any custom commands (tools.<toolname>.midebugger.stop.break=true)

Visual Micro Release 21.01.06.0 - 15th January 2021 - VS 2017-2019, AS7

  • Intellisense: Fixes for Portenta H7 Intellisense (Reported Here)
  • Library Complilation: LD Flags Fix to ensure Library *.a folder is added to Linker Path (Reported Here)
  • GDB: Fixes for NRF5x Debuggers STLinkv2, JLink, BMP to remove upload selection reliance
  • Intellisense: Improvements for ESP32, NRF52 Boards to reduce errors
  • GDB: Addition of NRF5x Debuggers STLinkv2, JLink, BMP
  • License Management: Addition of General > Deactivate License, allowing transfer to another machine
  • Intellisense: Improvements for SAMD and MBED Boards
  • Prototype Generation: Fixes for incorrect detection of rawliteral() JS code in prototype generation
  • Intellisense: SAMD: Fixes for __disable_irq() / memcpy() etc..
  • IDE Location Screen: Hints updated for clarity
  • Library Compilation: When StopOnError is Enabled stops on first library compliation failure
  • Build Hooks: now fires "hooks.deploy.postupload", as well as vmdeploy (https://www.visualmicro.com/forums/YaBB.pl?num=1605708425/3#3)
  • Prototype Generation: Fixes for template<> definitions causing error on compile
  • Micro Explorer - Manage Libraries: Updating a library no longer automatically adds the library to the project
  • Build Core Caching: Fix for potential core caching issue in last two forum releases (20.09.10.12 + 20.09.10.13)
  • Serial Debug: Correction to datatype error seen in compilation for DigitalPinWrite (caused issues on ESP32)
  • License Expiry Message: Amended to be clearer as to causes, and solutions when this happens
  • Intellisense: Reduction of errors shown for Arduino Portenta H7 Board
  • Library Build: Processing of sub folders improved to remove conflicts reported (e.g. Sparkfun Artemis)
  • Switched to a new SSH library. Fixes Arduino Yun R2 network upload, www files upload and terminal. Also applies to other boards that use more recent ssh encryption.
  • Compiler: Comment Stripper Improved to ensure division broken over two lines is not treated as a comment (as seen in TensorFlow Hello_World Example)
  • Prototype Generation: Further improvements to ensure prototypes aren't generated when datatype matching fails (e.g. vector<string>  from this report)
  • Prototype Generation: Improved prototype code derivation to resolve Multi Line Signature Issues
  • License Expiry: Output Window message to remind users now added when Licenses have expired
  • Disasssembly View: Additional fixes to quoting of command run in background to generate the objdump output + logfile
  • GDB: Addition of BBC MicroBit (+Other NRF5 Boards) for BuiltIn CMSIS-DAP Debugging via GDB + OpenOCD
  • GDB: Debug Menu > Optimization: "Default Optimization" now works for Debugging, and passes -Og parameter to compiler
  • ESP8266 UDP Debug: Cleanup of Socket Closure, ensured working in conjunction with ESP8266Webserver

Visual Micro Release 20.09.10.2 - 18th September 2020 - VS 2017-2019, AS7

  • Esp32 multi ino intellisense fix (.2)
  • Libraries: Architecture tie up between STM32F1 and STM32 for compatability between Official and Roger Clarke Cores
  • Libraries: Additional support for library.properties ldflags integration into compiler.libraries.ldflags
  • Intellisense: Fix for STM32 Intellisense for datatype issues and toolchain paths
  • GDB: Addition of Blackpill STM32F401CCU6 to Debugging Configurations
  • Prototype Generation: Fixes for single and multiline template usage, with improved insertion accuracy.
  • Disassembly Output: Fix for erroneous quoting encountered in previous releases
  • Intellisense support for MEGAAVR toolchain
  • Intellisense: Improved parameter merging to resolve board properties into board specific defines (e.g. MegaAVR Core)
  • Disassembly Output: Improved messaging and exposure of command when errors are encountered
  • Default Toolbars now excludes the Debug Toolbar for faster loading times.
  • Disassembly View: Improved Messaging and execution speed, resolves issues for ESP32,ESP8266,Portenta H7 (Enabled via Project Properties)
  • Serial Debug: Fix for Compilation error when non-UDP debugging for SendUserMessage() introduced in previous release.
  • Intellisense Improvement for Malloc() on SAMD Platforms (including MKR1000)
  • ESP32/ESP8266 UDP Debug: Addition of MicroDebug.SendUserMessage() to allow custom user messages to be sent to the UDP Serial Monitor
  • Library Discovery: Ensure potentially matched libraries contain *.h file expected before matching (bug in last two versions).
  • Improvements to "library name" from "header file name" matching.
  • These changes ensure that revision 2.2 of the Arduino Library Specification is fully implemented.
  • Build Paths: Fixes to ensure short paths are only used on platforms / paths where known to improve builds
  • CTags Prototype Generation: Improved to handle templates correctly when generating prototypes

Visual Micro Release 20.07.08.0 - 8th July 2020 - VS 2017-2019, AS7, CLI

  • Resolve library paths improved to fully meet the Arduino specification. Libraries with architecure matching the current platform have higher priority. Included header files that that 'start with', 'end with' or 'contain' the name of a library are matched correctly.
  • Added the ability to select an alternative COM port when using any hardware debugger that has the capability.
  • Library Discovery: Fixed to ensure correct library discovery process is followed with all Location and Architecture depandancies
  • GDB: *New* Local Debug Port selection shown when using Hardware -> GDBStubs / Black Magic Probe, to select Debugging Port separately to Serial Monitor
  • Build Paths: Fix for short paths to only be used on specific platforms for sketch code
  • Upload Verification: Fix to ensure if Upload > Verify is disabled, that "upload.verify=" to avoid errors
  • Change: Sketchbook/libraries have priority over architecure/libraries
  • Build Paths: Improvement to use shorter 8dot3 filenames as part of build process (reduces path length issues with multiple libraries)
  • ESP8266 UDP Debug: Fix ensuring connections handled correctly for this variant
Visual Micro Release 20.06.30.0 - 30th June 2020 - VS 2017-2019
  • Intellisense: Improvement when adding Libraries to Project
  • GDB: Teensy 3/4 GDB Stub Integration
  • GDB: Fix for DUE Native USB Uploads via Atmel ICE and JLink to set correct GPNVM Bits after Erase Reported Here
  • GDB: Seperation of Start Debugging and Attach to Process commands for all OpenOCD Debuggers, ensuring Start Debugging resets board, and Attach To
  • GDB and error reporting line number were 1 line wrong. Applied to the project_name.ino only.
  • CLI new property to override build path -builder.build_temp_path=
  • The NoIDE option was missing all hardware debuggers.

Visual Micro Release 20.06.18.0 - 18th June 2020 - VS 2017-2019

  • Fix: Compiler error line number reporting when deep search for libraries was enabled was wrong if the setup() or loop() were the first methods in the .ino code. This issue applied to .ino code only.
  • Fix: Zip file was not created during the build process when Export Sketch was enabled.

Visual Micro Release 20.05.18.9 - 17th June 2020 - VS 2017-2019 (pre)

  • Fix: AVR Intellisense Fix for __cplusplus (Reported Here)
  • Fix: Comment Stripping improved for quoted quotes (Reported Here)
  • Fix: Teensy Serial Monotor - Now works without line terminators being received from board (Reported Here)
  • Improvement: Project File Validation only occurs when using File > Open > New Arduino project for faster loading of large projects (e.g. Marlin Firmware)
  • Fix: Prototype Generation improved to accomodate scope operator in function parameters ("::")
  • Fix: Automated parrallel builds of the same project could raise an error saving the build settings.
  • Fix: SerialDebug: SerialUSB Detection when no RemotePort set (Reported Here)
  • Fix: Addition of JLink GDB  Configs for Adafruit Itsy Bitsy M4 (SAMD51) Reported Here)
  • Fix to Prototype Generation so Setup() and Loop() prototypes are not auto generated with the new CTAGS system.
  • Fix: SoftwareSerial debugging failed in builds from the past 60 days.
  • Fix Serial debugger failed to locate the debug libraries if "deep search for libraries" had been disabled.

Visual Micro Release 20.05.18.1 - 18th May 2020 - VS 2017-2019

  • Platform explorer improvements. There were many refresh issues since Microsoft introduced DpiAwareness into Visual Studio over the past 9 months.
  • Fix for the latest STM32. Results of build hooks improved discovery.
  • Fix const strings were not always ignored when stripping comments pre-gccE
  • Updated SharpZip library used by board manager to expand downloaded toolchains.
  • .1 fixes an issue reading the sketchbook path from the arduino ide preferences when a \portable folder is not being used.

Visual Micro Release 20.03.21.21 - 12th May 2020 - VS 2017-2019

  • Fix: Board Package Resiliency added to ensure package.json files are available for Additional Board URL toolchains
  • Addition: "Add > New Item" Templates updated to allow code to be added into specific folders (and subfolders) directly from Solution Explorer view
  • Fix: Board Package Install / Discovery improved, ensuring tools are installed beneath the packager folder (e.g adafruit nRF52 Core)

Visual Micro Release 20.03.21.11 - 1st May 2020 - VS 2017-2019

  • Fix: Prototype Generation: Improved to avoid conflicts with ISR / extern C code (reported here)
  • Fix: Code Snippet Refactor (usage video)
  • Fix: Menu Options Clean for Auto-Reporting per-breakpoint (See Debugger Menu for additional Options)
  • Fix: Code Snippet Content Fixes, now listed as vMicro in snippets list
  • Fix: Prototype Generation updated for additional cases
  • Fix: GDB Arduino Zero
  • Fix: Compiler missing prototype generation failed for method signatures that contain ...
  • Fix: Automatically clear {upload.verify} property when the toolchain does not specify a default value for the property and verify is OFF (default)

Visual Micro Release 20.03.21.2/3 - 21st March 2020 - VS 2017-2019/AS7/CLI (STABLE)

  • sp3 Fix: Resolve a compile issue with shared projects (prevent duplicate compilation of shared project code when deep search and ctags are enabled). Applies to Visual Studio shared projects.
  • Deep search lib discovery:- Escape -D defines in compiler patterns if they have quoted literal values. An example being esp32 which has a -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" property. Esp32 also does not defined the recipe.preproc.macros variables which causes Visual Micro to use the the cpp compiler recipe.  Deep search will now add missing chars and escpape defined in the same that it already does when compiling. In this case the Esp32 define becomes "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"".  Whilst deep search has always worked without the correct escaped command line the new ctags based prototype generation could not function because it can't ignore compiler errors caused by invalid -D defines. In short, recent releases of visual micro would have failed with some esp32 boards (and possibly others) unless ctags was disabled in a local board.txt
  • When prototype generation via ctags is off the older prototype generation system should have been used.
  • Fallback to using older system to generate missing prototypes if the new gcc based system fails. An information message should state this has happened and ask for report.
  • Remove error message when ctags parsing fails but the fallback has worked. (we will mature the ctags system during the next few weeks!)
  • ctags failed to generate prototypes under various situations! I think we finally nailed the new prototype discovery which is required to be compatible with the arduino ide. Sorry for the pain during the past week.

Visual Micro Release 20.03.21.0 - 21st March 2020 - VS 2017-2019/AS7/CLI

  • When prototype generation via ctags is off the older prototype generation system should have been used.
  • Fallback to using older system to generate missing prototypes if the new gcc based system fails. An information message should state this has happened and ask for report.
  • Remove error message when ctags parsing fails but the fallback has worked. (we will mature the ctags system during the next few weeks!)
  • ctags failed to generate prototypes if there was a space anywhere in the path to .ino sources

Visual Micro Release 20.03.18.1 - 20th March 2020 - VS 2017-2019/AS7/CLI

  • An important fix for the background daily check for updates. Was checking way too often in recent builds (if enabled)!

Visual Micro Release 20.03.18.0 - 18th March 2020 - VS 2017-2019/AS7/CLI

  • Fix build errors in recent release: Comments in code could cause the "auto insert of missing prototypes" to be inserted in the wrong position. This is part of the new ctags system that better caters for user types in .ino code.
  • Reminder: The new way that visual micro generates prototypes can be switched back to way previous releases worked with the following local project board.txt property:- vm.ctags=false

Visual Micro Release 20.03.1 - 17th March 2020 - VS 2017-2019/AS7/CLI

  • sp7 fixes an issue (in sp6) adding missing prototypes when the .ino code does not have any #includes
  • Standalone shareable Web debugger updated (Experimental) (Read More Here)
  • GDB debug disconnect forces gdb to exit. Cleaner shutdown.
  • Support precompiled=true, link .a/.so files discovered in the library [mcu name] folder.
  • Extend check to ignore special case missing prototypes for setup() and loop() where (void) is declared as an argument to the two methods.
  • Fix: Resolve new python location for recent changes in the esp8266 package. Visual Micro spiffs (web server data files) upload now supports both older and newer esp tool chain versions.
  • Fix: Unabe to create new Arduino projects in Atmel Studio 7. Either failed or caused a hang/lockup of the IDE.
  • Insertion of the auto generated missing prototypes (using CTags) is updated to also cater for 1st method in an .ino other than the project_name.ino. This will avoid many compile issues when user types are defined in the .ino code and subsequently used in method sigantures that have missing prototypes. Reminder: CTags are only used for missing prototype generation if "deep search for libraries" (Gcc-E) is enabled.
  • Inserting soft debug breakpoints on 1st line of the setup() or loop() is now supported.
  • CLI fixes and new properties
  • GDB Hardware Debugging - Programmer/Upload Config updates (check selections after update), OpenOCD Updated to 2020-02-13
  • Experimental - Export local web debugger. pre-alpha option to export a self contained portable debugger. Allow a board that is already programmed with visual micro soft debugger break and/or trace points to be connected to another pc that does not have an IDE  (visual studio or visual micro) installed. Applies to software debug only! "vMicro>Debugger>Export Web Debugger". tip: Close the serial terminal after soft debug starts and review the Micro Build output window for usage instructions. Read More Here
  • new - Esp32 OTA UDP software debugging (Video Demo)
  • new - Teensy virtual usb port discovery
  • new - Teensy virtual usb Console
  • new - Teensy virtual usb software debugging for all USB Types (Read More Here)
  • Fix: Automatic prototype insertion before first method in .ino files (in previous releases the prototypes were inserted before the first code line which required manual insertion of prototypes)
  • Fix: Software debugging did not work if the setup() and loop() methods were not in the project_name.ino
  • Fix: Software debugging breakpoints were ignored if placed on the first line of a method (on the method name or the line with the methods opening brace)
  • Hardware Debuggers: SAM - Improved support (+ JLink)
  • Add GDB support (hardware debugging) for the MXChip Azure IoT Board
  • Teensy 1.5 changes for intellisense.
  • STM32duino intellisense paths and fixes for latest toolchains
  • Ability to exclude certain unneeded variant files from intellisense intellisense.excludes=[semi-colon; sep list of file names without paths]. STM32 is preconfigured with this property.
  • Fix: SPIFFS: Manually installed esp8266 core under the "ArduinoIDE/hardware" folder failed to resolve python path

Visual Micro Release 1912.28 - 14th January 2020 - VS 2017-2019

  • Esp8266 publish server data files: The latest esp8266 platforms has capability to use the built in python tools. If users had not installed python an error would be encountered when attempting to publish server data (spiffs upload)
  • Fix to support Stm32duino 1.8 (Prebuild event hook allows compilation of output)
  • Esp8266 Publish Server Data Files (spiffs): Automatic detection of Esp32 2.6.2+ and older versions. The Esp8266 2.6.2+ core requires this change.
  • STM32 GDB debug improvement.

Visual Micro Release 1911.17 - 21th November 2019 - VS 2017-2019 + AS7

  • 1911.17.5 update has been released 24 hours after the previous update wich was missing the newtonsoft json dll used to discover hardware packages. We no longer use the Microsoft Nuget system for our software management because it conflicts with the Microsoft Visual Studio Extension Creator! Sorry for the double update within such short period of time.
  • Add new menu item "vMicro>Compiler>Always Export Zip". This feature uses the new CLI command to export and combine shared projects into a single sketch zip file. Libraries are not included. This simply makes a standard Arduino sketch from project code
  • New release prompt moved to output window instead of dialog.
  • Many minor fixes for Atmel Studio 7. (note: There are a few errors displayed in the Atmel Studio output window after startup. These errors can be ignored and are an Atmel Studio internal issue of no significance.
  • Atmel Studio users are notified that for hardware debug either Visual Studio is required or the Atmel tools should be used via the "vMicro>Debugger>Use Atmel Debugging" menu
  • CLI to support all recent Visual Micro additions such as shared libraries
  • CLI simpler command line that only requires path to project (vcxproj), unless more control is rquired.
  • Prevent unwanted serial output when pressing F5 to continue a break-point. (VMDPC_ message)
  • Improve new user experience. Also improves experience when there is no hardware (boards) or reference to the Arduino IDE location.
  • Added out-of-the-box STM Generic F0 and F4 debuggers (Vs Only)
  • New user experience improvements
  • Improved messages when board packages or ide location is not available
  • Users must start a full trial or activate with a license key
  • Changed yellow to blue in the Platform Explorer Mini Preview Pane
  • Added new menu item "vMicro > Toolbar Auto Visibility > Manual All". A quick way to set all Visual Micro bars to be under manual control via the standard "Visual Studio > Customize" commands.
  • Corrected issue with missing newtosoft.dll in last pre-release for AS7
  • Add a Start Trial button to the Try, Buy, Activate window. Starts a 30 day trial.
  • Improved digital pin viewer (see docs)
  • Improved breakpoint @plot functionality (see docs)
  • Serial debugger "full mcu speed mode", more obvious menu to enable/disable
  • Fix: Crash in Micro Explorer, expescially in the Examples area as a result of recent DpiAwarness changes for vs2019. Also applied to vs2017 because we use the same code base for both IDEs.
  • Added new tools option "Application Features>Show/Hide Core - Max Levels" (defaults to 4). The mbed framework has thousands of files that take too long to load as shortcuts. This property restricts the number of folder levels discovered when adding src\_micro-api-reasonly\core to a project
    Yield and refresh the display when using show/hide and when adding project spources during the 1st time open of an existing sketch. Prevnts the ide from appearing locked.
  • Add status bar messages with the path of files processed during 1st open of a sketch and when usong show//hide hidden files.
  • Add new arm tool chain paths to  SAMD intellisense
  • Force activation error dialog to on top. It could previosuly be hidden behind the IDE causing the IDE appear locked/frozen.
  • CLI : -builder-close=false
  • CLI : -builder-closeonerror=false
  • CLI : -builder-export_sketch=true  (combine shared project code into a sketch zip that is Arduino IDE compatible)
  • CLI : -builder-export_dest_file=[a zip file name to create]
  • CLI : -builder-export_delete_if_exists=true

Visual Micro Release 1909.27.0 - 27th September 2019 - VS 2017-2019

  • This release is required if working alongside the Arduino IDE v1.8.10
  • Fix: Resolve deep search library discovery when using 1.8.10 Arduino IDE with Visual Micro
  • "Tools>Options>Compile all folders" - Change default to False. Enforces project, project\src and sub folders below the \src only. (Arduino compatible). When opening existing Arduino sketch projects for the first time only sources in the project folder, the \src sub folder and all folders below \src. Ignore all other sources.
  • Fix: Once per day nag screen showed invalid html page since 1909.15

Visual Micro Release 1909.15.1 - 15th September 2019 - VS 2017-2019

  • Fix potential cross-thread crash: Switch to main thread before accessing the VCC Compiler tool. Required for VS2019 as a result of recent conversion to async Visual Studio extension.
  • Fix: In Release mode, the software debugger might have defaulted to "On".
  • Support for tool windows with Visual Studio 2019 without need to switch off "Optimize rendering for screens of different pixels densities". nb: We are still using windows form controls in our tool windows which means they might be a little blurry on some high res displays. We will move to Wpf tool windows during the coming months which will remove any blurr.
  • Fix: Corrupted packets that sometimes appear dyring serial
    debug
  • Serial debugger supports user code serial that is not line terminated. This makes it easier for new users and students to use the serial output alongside breakpoints, charts and watch expressions.
  • Leading and trailing whitespace is no longer removed from serial when using serial debugging.
  • Changed .NET version 4.5>4.7

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.

Creating new Arduino projects in Visual Studio. About the various types of projects.

 

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 - 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

Editing or copying Arduino libraries using shared c++ projects.

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

A menu selection from all installed Arduino boards. Recently used Arduino boards appear at the top of the list.

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

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

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

Toggle Hidden Files

Links are now added to:-

src\_micro-api-readonly\core
src\_micro-api-readonly\librraies
src\_micro-api-readonly\variants\variant_name

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// set hostname
ArduinoOTA.setHostname(hostname.c_str());

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

// start OTA Server
ArduinoOTA.begin();
}

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

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

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

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

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

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

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

Serial Monitor for Arduino - Options

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

Serial monitor wide window example.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Example 1 -  CStr escape chars

...

arduino code for this example - echo back to pc

Code (C++):

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

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

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

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

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

Live plot of multiple charts from Arduino micro-controllers.How to live plot Arduino charts in a single window or in multiple windows.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Arduino GDB Traffic Light Example.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Added support for Arduino 1.6.6
  • release

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

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

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

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

Release (1510.26) - 26th Oct

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

Release (1510.22) - 22th Oct

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

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

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

Release (1509.14) - 14th Sept

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

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

Release (1509.9) - 9th Sept

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

Release (1509.08) - 8th Sept

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

Release (1508.31 Sp1)

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

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

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

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

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

Minor Update 1508.19 for Vs2015 - 19th Aug

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

Release (1508.14) 

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

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

Release (1508.14) - 17th Aug Sp3

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

Release (1508.14) - 14th Aug - Sp2

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

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

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

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

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

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

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

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

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

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

Release (1507.26) - 26th July - Beta

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

Release (1507.05 Sp6) - 24th July - Stable

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

Release (1507.05 Sp1) - 18th July

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

Release (1507.05 Sp1) - 6th July

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

Release (1507.05) - 5th July

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

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

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

Release Ready (1505.19 Sp4) - 30th May 2015

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

Release Ready (1505.19 Sp3)

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

Release Ready (1505.19 Sp2) - 24th May 2015

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

Release Ready (1505.19 Sp1) - 23rd May 2015

  • Energia build fix

Release Ready (1505.19) - 19th May 2015

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

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

Release Candidate (1505.17) - 17th May 2015

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

Full support for Arduino and third party board option menus

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

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

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

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

Release Candidate (1505.15) - 14th May 2015

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

Release Candidate (1505.13) - 13th May 2015

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


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

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

Release Candidate (1505.12) - 12th May 2015

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

Release Candidate (1505.11) - 10th May 2015 

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

Release Candidate (1505.10) - 10th May 2015 

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

Release Candidate (1505.04) - 4rd May 2015 

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

Release Candidate (1505.03) - 3rd May 2015 

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

Release Candidate (1505.01) - 1st May 2015 

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

Release Candidate (1504.20 Sp3) - 26th April 2015

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

Release Candidate (1504.20 Sp2) - 25th April 2015

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

Release Candidate (1504.20 Sp1) - 25th April 2015

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

Release Candidate (1504.20) - 20th April 2015

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

Board Manager

Library Manager

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

Release Candidate (1503.18 Sp1) - 21st March 2015

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

Release (1503.18) - 18th March 2015

  • Support for Arduino 1.6.1

Release Candidate (1503.07) - 7th March 2015

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

Release (1502.14 Sp4) - 3rd March 2015

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

Release (1502.14 Sp3) - 28th March 2015

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

Release (1502.14 Sp1) - 15th Feb 2015

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

Doc note: Arduino Error List management in 1502.14

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

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

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

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

Beta (1502.14) - 14th Feb 2015

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

Beta (1412.10 Sp7) - 2nd Feb 2015

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

Release (1412.10 Sp6) - 22th January 2015

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

Beta (1412.10 Sp5) - 15th January 2015

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

Release 1412.10 Sp4 - 15th January 2015

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


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

Beta (1412.10 Sp2) - 22th December 2014

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

Beta (1412.10 Sp1) - 20th December 2014

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

Release (1412.10) - 10th December 2014

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

  • Serial Monitor Toolbar Stop Button

    ...or press Shift+[F5]

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


Tools>Visual Micro - Menu changes and additions

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


Dis-assembly View

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

Version 1401.12

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

Features released in 1208.19

Many minor bug fixes and enhancements

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

Libraries Refresh

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

Free Memory report

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

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

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

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

...

Open source debugger visualizations

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

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

...

Re-Compile Libraries When Project Macros Change

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

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

"Project Properties>Macros Affect Libraries=False"

Adding new Arduino files to a project

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

Adding new Arduino CPP File

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

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

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

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

Code:

MyButton.init(); 

 

Opening pde/ino files in an empty visual studio

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

Serial Window

Font Size and Family set from VS Text Editor Properties

New Project Property Options

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

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

Added Breakpoint Expression Symbols

@ReportDigital
@ReportAnalog
@ReportI2C

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

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


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

 

1207.19 - Fixes and debug beta 2

 

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

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

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

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

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

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

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

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

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

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

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

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

Debug beta testers notes

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

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

 Summary of changes in Version 1.1207.02

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

 

Summary of changes in Version 1.1206.30 Arduino 1.0.1

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



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

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