About the Project Properties Window

Project Properties are settings that control Visual Micro's behavior. Project Properties are project specific, whereas Tools > Options Settings are global.

To open the project properties window, click on the Project Properties Toolbar Icon icon in the Micro Project toolbar.
The list of project properties will appear.

Note Icon Note:

The following list in this documentation is ordered according to the categorized view of the Settings list.
To set your project properties window to this to this categorized view, use this icon on the top left of the window:

Project Properties Categorized View

 

The numbers in the following list indicate:
 Grey Number 1These settings are configuration specific (Read more about build configurations).
 Grey Number 2These settings are specific to your project, but apply to all configurations

 

Micro Build Statistics  Grey Number 1
Disassembled View
Make the disassembly listing available after compilation. The listing is displayed in the "Micro disassembly" pane of the Output Window.
Disassembly Switches
If the disassembly view is enabled then this setting provides the required switches for the output. If this setting is empty, then it defaults to "-s".
Memory Usage Report
Show detailed memory usage reports after compilation
Micro Debug  Grey Number 1
Hit Counters
Specifies how "hit counters" use the value returned by the millis() function, or individual hit counters.
Read  more on this page to learn about hit counters and this setting.
Inc. Disabled Breakpoints
When false, disabled breakpoints are not included in the compilation and use less memory. When true, disabled breakpoints are compiled and upload allowing them to be disabled/enabled during program runtime without recompilation. (Read more)
Jump To Source
Setting this value to "True" will cause Visual Micro to jump to the corresponding source code line if a breakpoint is hit.
Local Port
The serial port or IP address the local computer uses to debug. (Read more)
Local Speed
The serial port speed that the local computer uses to debug. This value can be any valid baud rate. Leave blank for default 115200 baud. (Read more)
Remote Pin RX
The pin to use for software serial transmissions that an Arduino will receive. This value can be a pin number or global constant name. (Read more)
Remote Pin TX
The pin to use for software serial transmissions from an Arduino. This value can be a pin number or global constant name. (Read more)
Remote Port
The serial port that the board uses to debug. (Read more)
Remote Speed
The serial port speed that the remote device uses to debug. This value can be any valid baud rate. Leave blank for default 115200 baud. (Read more)
Remote Transport
The type of transport from the installed transports list. The default is HardwareSerial. Other examples are HardwareSerial,SoftwareSerial,BlueTooth,FastSerial. (Read more)
Startup Delay (ms)
An optional delay when the board starts to give the debugger window time to open. If you are using the main serial port and DTR is enabled then this delay can be disabled. Default is 4 seconds unless using the main serial. 0 uses default.
Startup Delay or Dtr
Enable/disable optional delay when the board starts to give the debugger window time to open. Set to '0' for default. When enabled and debugging using main serial DTR is automatically forced ON, when using any other serial port or transport the delay (ms) is enforced
Startup Message
An optional startup message to transmit from board to your PC.
Startup Wait
If set to "True", the board does not start the program automatically after upload, instead it waits for a "Go" command from the PC. In this case, a message is displayed notifying you that the board is waiting for a "Go".
Throttle (ms)
Specifies the minimum time gap between two debug data packets sent to your PC if "Throttle Enabled" is set to true (see below). A value of 0 means the Default of 80 ms.
Throttle Enabled
Throttles the transmission of debug data packets from your board to the PC. This ensures that there is no overflow of packets which would cause the PC's debugging windows to lag behind.
See this article for more information.
Validation Skip
The Default setting is "False", which causes two compilation stages, the first without and the second with debugging code inserted. The first stage ensures that your code is correct before Visual Micro inserts breakpoint code, otherwise strange error messages would occur. If you change this setting to "True", all compilation is done in one stage which speeds up compilation. The resulting program code is the same regardless of this setting.
Micro Debug Reporting  Grey Number 1
Report Analogs
Enables reporting of the analog I/O lines in a report window. It is recommended that you use analogs reporting selectively by using the method described on this page.
Report Digitals
Enables reporting of the digital I/O lines in a report window. It is recommended that you use digitals reporting selectively by using the method described on this page.
Report Frequency
Set the frequency of automated reports. The default is every 150 milliseconds. The time unit (milliseconds, seconds etc.) is depending on the "Report Frequency Type" field below.
Report Frequency Type
Set the unit type for the frequency of automated reports, see the "Report Frequency" setting. The Default is milliseconds. Example: Report Frequency Type=Seconds and Report Frequency=2 will give a new report data packet every 2 seconds. Setting to "NoFilter" will report as fast as possible, which is only useful if your loop() function is not "free running" but has a controlled timing behavior.
Report Free Memory
Enables reporting of the amount of free memory in a report window. It is recommended that you use free memory reporting selectively by using the method described on this page.
Scan I2C at Startup
Enables reporting of the I2C devices connected to your board. It is recommended that you use I2C reporting selectively by using the method described on this page.
Micro General (Current Configuration)  Grey Number 1
Defines
Semi-colon separated list of configuration specific additional preprocessor constants. This setting applies to all compilations for the current configuration only (Debug, Release...). If you compile the project using the original (Arduino) IDE again, it will not know about these constants.

This page shows what you can do with defines.
Extra flags
Additional compiler flags that are only used for the current configuration (Debug, Release...).
Separate flags with blanks in this setting (e.g. "-c -g -Os")
Micro General (Project Global)  Grey Number 2
Define _DEBUG Constant
Automatically #defines a configuration specific _DEBUG constant. You can enter an integer here, 0 means "do not define". Do NOT use this option if you do not know how it works. This setting applies to all compilations for the current configuration only (Debug, Release...). If you compile using the original (Arduino) IDE it will not know about this constant. This constant does not affect the Visual Micro debugging system but is intended for our own use.
Defines
Semi-colon separated list of project specific additional preprocessor constants ("#defines"). This setting applies to all configurations (Debug, Release...). If you compile using the project using the original (Arduino) IDE again, it will not know about these constants.

This page shows what you can do with defines.
Extra ar flags
Extra flags that will be used when the 'ar' tool is invoked. 'ar' is the gcc archiving tool.
Extra c flags
Extra flags that will be used when the C compiler is invoked. This compiler is used for files with the ".C" file extension.
Extra c.elf flags
Extra flags that will be used when the 'gcc' tool is invoked to build the final .elf file.
Extra cpp flags
Extra flags that will be used when the C++ compiler is invoked. This compiler is used for files with the ".CPP" file extension.
Extra eep flags
Extra flags that are used when generating the .eep output file
Extra elf2hex flags
Extra flags that are used when generating the .hex file from the .elf file. The .hex file is the input file used by the uploader
Extra flags
Extra compiler flags that will be applied to all gcc tools
Extra s flags
Extra compiler flags that will be used when the gcc assembler is invoked
Generate Prototypes
Enables the generation of so-called "function prototypes". Function prototypes are needed to tell the compiler that a function exists and what parameters and return value type it has. If set to "true", then Visual Micro generates prototypes for .INO files in the background, and the user does not have to care about them. If set to "False", .INO files behave like .CPP files, and the user must write the prototypes himself.
Learn more about source file types here.
Includes via Gcc
Automatically search for library includes within underlying sources. Use gcc deep search instead of simple regex (see Arduino I .6.6+). This option will increase build times considerably. It is recommended to switch this option off after adding *includes for any required libraries to the "ino" source code.
Micro Optimise Build (Project Global)  Grey Number 2
Compare Dates and Times

Re-compile individual source code if the date/time is greater than the object file data time. If other conditions have forced compile of sources then this property is assumed False.

Mcu Defines Affect Core
If set to "True", causes the Arduino core files to be recompiled when known mcu #defines are changed in this project property list or using a menu item such as Teensy Speed.
Mcu Defines Affect Libs
If set to "True", causes the libraries to be recompiled when known mcu #defines are changed in this project property list or using a menu item such as Teensy Speed.
Project Defines Affect Core
If set to "True", causes the Arduino core files to be recompiled when #defines are changed in this project properties list.
Project Defines Affect Libraries
If set to "True", causes libraries to be recompiled when #defines are changed in this project properties list.
Source Defines Affect Libraries
If set to "True", causes libraries to be recompiled when #defines are changed in the project source codes. Compilation of sketches that include libraries will be slower if the projects macros/#defines have altered since last compile. This is a global project property
Misc  Grey Number 1
(Name)
The name of your project. If you want to change your project's name here, then you can do so, but it much more convenient to use the method described here.
In any case, the main source file containing the setup() and loop() functions must have the same name as your project.
(Micro Debug)

Controls whether the debugging functions of Visual Micro are used or not for the chosen configuration. (There is also a system wide switch that controls whether debugging is on or off, Read more)

Warning 16 Note:

This setting allows you to switch debugging on/off for configurations you have created on your own, in addition to the default "Debug" and "Release".
As long as you only use the default "Debug" and "Release" configurations, it is not recommended to change anything to this setting. Otherwise this documentation won't match the behavior of Visual Micro on your PC.

Micro Project Id
An automatically generated unique Visual Micro project id, do not change
Project Dependencies
(For internal use only, do not change)
 
Project File
This read only field shows where the project file is stored
Root Namespace
(For internal use only, do not change)
 
Upload Port
The fixed port name this project will use when uploading via bootloader/usb. This property can also be set by altering the toolbar port when this project is active
In special cases, you can also enter an IP address here, and thus you can avoid to require Apple Network Discovery