With vMicro integrated into Visual Studio, you can continue to use your Version Control and Work Management systems as normal, including your IoT projects.
Below is some general guidance on setting up your environments to work easily with vMicro and Arduino, as part of your normal Visual Studio based Development Workflow.
Local Development Tools
For all development machines we reccomend the same relative locations are used for the below items to keep deployment, configuration and support aspects as simple as possible.
- All IDE's (e.g. Arduino IDE installed in C:\IoTDevelopment\Arduino)
- All Libraries
- All Sketchbook folders
- All Version Control Roots (though this is likely already set for your organisation.)
If these tools are to be installed for the whole machine and not for specific users, then follow our relative path setup guide
To install vMicro accross a number of machines using your Enterprise license, please see our guide here.
Project Folder Structure
As a principle it is best to create a \projName\src\ folder within each project folder.
This reminds the developers to add any further *.cpp/*.h files in here to keep it Arduino Compatible (further info)
If the libraries in use in the project need to remain static / tightly controlled alongside the main code, we suggest the "Include Library In Solution/Project" is used, along with the "Include Version Number".
Normally Solution level satisfies most requirements. If multiple projects in the solution need to share the library then the "Create Shared Solution" checkbox should also be enabled.
If the libraries are to remain flexible and be updated from each development machine, then standard includes can be used in the INO.
A Shared Project include of a library will avoid the need for this, but remain flexible, and more visible in the solution than specific includes in an INO file.
NOTE If using conditional includes (e.g. X-platform code) then ensure "Deep Search for Libraries" is enabled on the vMicro > Compiler Menu.
Shared Code / Libraries
If developing a large scale or multi platform project there is often the need to share code between them, without creating a formal library, and its associated supporting properties files.
This can easily be achieved with Shared Projects, and ensures all projects are tracked together.
IDE Versions (e.g. Arduino, Energia)
For development machines a variety of IDE's may be needed, for use with vMicro, and the common install path is recommended to ease configuration and support issues.
This bundle could also be hosted locally to allow any pre-configuration to be done, and to ensure all development is done on the same software platforms.
Some boards' USB interfaces and hardware debuggers and require additional drivers to be installed.
We reccomend at least a reference to the locations of these is included for developers to access easily, if they are not bundled within the IDE installation in use.
The safest way to handle your own core branches, or tightly controlled versions, is to create your own clone of the core.
Ensure the necessary references in the JSON point to where you are hosting the files (this could again be your VC depending on access available), or on GitHub.
Then this can be included in the list of URLs on development machines.
When it comes to debugging the software, we reccomend the Serial Debugger in the first instance.
If a Hardware Debugger is needed, there are many pre-configured, and further custom debugger configuration can be completed by advanced users to allow any debugger to work with vMicro.
vMicros Serial Debugger allows performance monitoring in only a few clicks on any board with a Serial interface.