{"id":923,"date":"2016-01-13T05:55:49","date_gmt":"2016-01-13T12:55:49","guid":{"rendered":"http:\/\/fallows.ca\/wp\/uncategorized\/visual-arduino-moving-next-level\/"},"modified":"2016-12-13T19:34:19","modified_gmt":"2016-12-13T19:34:19","slug":"visual-arduino-moving-next-level","status":"publish","type":"post","link":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/","title":{"rendered":"Visual Arduino &#8211; Moving to the Next Level"},"content":{"rendered":"<p><a href=\"http:\/\/fallows.ca\/wp\/wp-content\/uploads\/2016\/12\/visual-arduino.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"visual arduino\" src=\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg\" alt=\"visual arduino\" width=\"762\" height=\"452\" border=\"0\" \/><\/a><\/p>\n<p>Visual Arduino is the way to go for serious projects. Here\u2019s how.<\/p>\n<p><!--more--><\/p>\n<p>Let\u2019s take a step back. If you are doing anything with an Arduino, you have likely been using the <a href=\"https:\/\/www.arduino.cc\/en\/Main\/Software\" target=\"_blank\" rel=\"nofollow\">Arduino IDE<\/a> (Integrated Development Environment.) The Arduino IDE is free, fast and friendly. It is a great tool for developing programs (what Arduino community calls \u201csketches\u201d) and uploading them into your Arduino hardware.<\/p>\n<p>But the Arduino IDE has limitations which can be quite noticeable on a serious or large project, like my recent Arduino-based signal generator. These limitations are as follows:<\/p>\n<ul>\n<li>Limited developer assistance and error checking. While the Arduino IDE is smart, and got even smarter in its latest Version 1.6.7 release, it\u2019s developer tools fall short of what is found in professional-grade development environments. This is particularly so in the areas covered by \u201cIntellisense\u201d features, where the IDE actually helps you write the code and prevent errors.<\/li>\n<li>No debugging. Debugging is a process where where you can track what is happening in your code as it runs on a computer or microcontroller like Arduino. Normally, Arduino developers do debugging by using the serial port to send messages back while the program runs. This does not allow features like \u201cbreakpoints\u201d where you can stop the program at certain places and under certain conditions to examine what is going on. Since computers run at high speeds, the ability to stop and examine helps humans cope.<\/li>\n<li>No version or source control. When you are writing software, you are constantly making changes to your source code \u2013 additions, deletions, modifications. The ability to store and compare with previous versions of your code is called source control or version control. This feature is not available in the Arduino IDE.<\/li>\n<\/ul>\n<p>The good news is that all of these limitations can be defeated easily and cheaply with a solution I call Visual Arduino.<\/p>\n<h2>Visual Arduino Rocks!<\/h2>\n<p>You can set up a professional yet easy to use Visual Arduino development environment as follows. There are four simple steps.<\/p>\n<p>First, make sure that you have the latest version of Arduino IDE (1.6.7) installed. This contains many of the core compiling and uploading tools used with any Arduino board.<\/p>\n<p>Second, install Microsoft\u2019s <a href=\"https:\/\/www.visualstudio.com\/en-us\/products\/visual-studio-community-vs.aspx\" target=\"_blank\" rel=\"nofollow\">Visual Studio 2015 Community Edition<\/a>. It\u2019s free and is shown above. It\u2019s many features might seem overkill for Arduino, but that\u2019s okay because of what comes next in the Visual Arduino solution. After you install Visual Studio, make sure that you also download and activate the Visual C++ language, as this is required for Arduino development.<\/p>\n<p>Third, install <a href=\"http:\/\/www.visualmicro.com\/\" target=\"_blank\" rel=\"nofollow\">Visual Micro<\/a>. This is an extension that that creates a simple and effective Arduino programming environment within Visual Studio. The easiest way to install and activate Visual Micro is through the Visual Studio extensions manager. Once running, Visual Micro gives you a separate toolbar to select version of Arduino, the type of board and the serial port being used. Most important, it includes a high performance debugger!! (Note that after the 45 day trial period you need to purchase a license for the debugger, but at $23 it is worth the price. In the picture above, you can see the Visual Micro debugger examining the value of a variable at a breakpoint in the source code.)<\/p>\n<p>Fourth, install a version control extension in Visual Studio. I am using a free extension called <a href=\"https:\/\/ankhsvn.open.collab.net\/\" target=\"_blank\" rel=\"nofollow\">AnkhSVN<\/a> Subversion support for Visual Studio. My software repository sits on a different computer which runs <a href=\"https:\/\/www.visualsvn.com\/server\/\" target=\"_blank\" rel=\"nofollow\">VisualSVN Server<\/a>. Whenever I want to save my work, I just commit the latest source code to SVN. You can see in the picture above (lower right) that I have already made seven revisions to my signal generator software and saved them to the SVN.<\/p>\n<p>That\u2019s it! You can set the whole thing up in less than an hour. With this \u201cVisual Arduino\u201d solution you now have an industrial strength development environment for your Arduino sketching.<\/p>\n<p>As a final note, there are many different ways to do source control using SVN or the alterative GIT. There are also many online solutions where you can establish code repositories and share your development efforts with others. But in the simplest case, you can just run VisualSVN on either your development computer or another PC. Also, make sure you create regular backups of your code repository \u2013 you don\u2019t want to loose your work!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Arduino is the way to go for serious projects. Here\u2019s how.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Visual Arduino - Moving to the Next Level #Arduino #SVN #VisualMicro #VisualStudio","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[6],"tags":[25,104,105,106],"series":[],"class_list":["post-923","post","type-post","status-publish","format-standard","hentry","category-software-projects","tag-arduino","tag-svn","tag-visual-micro","tag-visual-studio"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Visual Arduino - Moving to the Next Level - Living On The Horizon<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Visual Arduino - Moving to the Next Level - Living On The Horizon\" \/>\n<meta property=\"og:description\" content=\"Visual Arduino is the way to go for serious projects. Here\u2019s how.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/\" \/>\n<meta property=\"og:site_name\" content=\"Living On The Horizon\" \/>\n<meta property=\"article:published_time\" content=\"2016-01-13T12:55:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-12-13T19:34:19+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg\" \/>\n<meta name=\"author\" content=\"John VE6EY\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@VE6EY\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"John VE6EY\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/\",\"url\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/\",\"name\":\"Visual Arduino - Moving to the Next Level - Living On The Horizon\",\"isPartOf\":{\"@id\":\"https:\/\/fallows.ca\/wp\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg\",\"datePublished\":\"2016-01-13T12:55:49+00:00\",\"dateModified\":\"2016-12-13T19:34:19+00:00\",\"author\":{\"@id\":\"https:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945\"},\"breadcrumb\":{\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#primaryimage\",\"url\":\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg\",\"contentUrl\":\"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fallows.ca\/wp\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"http:\/\/fallows.ca\/wp\/category\/projects\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Software Projects\",\"item\":\"https:\/\/fallows.ca\/wp\/category\/projects\/software-projects\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Visual Arduino &#8211; Moving to the Next Level\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fallows.ca\/wp\/#website\",\"url\":\"https:\/\/fallows.ca\/wp\/\",\"name\":\"Living On The Horizon\",\"description\":\"Blogs and Stuff\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fallows.ca\/wp\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945\",\"name\":\"John VE6EY\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fallows.ca\/wp\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g\",\"caption\":\"John VE6EY\"},\"sameAs\":[\"https:\/\/x.com\/VE6EY\"],\"url\":\"https:\/\/fallows.ca\/wp\/author\/play\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Visual Arduino - Moving to the Next Level - Living On The Horizon","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/","og_locale":"en_US","og_type":"article","og_title":"Visual Arduino - Moving to the Next Level - Living On The Horizon","og_description":"Visual Arduino is the way to go for serious projects. Here\u2019s how.","og_url":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/","og_site_name":"Living On The Horizon","article_published_time":"2016-01-13T12:55:49+00:00","article_modified_time":"2016-12-13T19:34:19+00:00","og_image":[{"url":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg","type":"","width":"","height":""}],"author":"John VE6EY","twitter_card":"summary_large_image","twitter_creator":"@VE6EY","twitter_misc":{"Written by":"John VE6EY","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/","url":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/","name":"Visual Arduino - Moving to the Next Level - Living On The Horizon","isPartOf":{"@id":"https:\/\/fallows.ca\/wp\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#primaryimage"},"image":{"@id":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#primaryimage"},"thumbnailUrl":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg","datePublished":"2016-01-13T12:55:49+00:00","dateModified":"2016-12-13T19:34:19+00:00","author":{"@id":"https:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945"},"breadcrumb":{"@id":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#primaryimage","url":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg","contentUrl":"http:\/\/play.fallows.ca\/wp\/wp-content\/uploads\/sites\/4\/2016\/01\/visual-arduino_thumb.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/fallows.ca\/wp\/projects\/software-projects\/visual-arduino-moving-next-level\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fallows.ca\/wp\/"},{"@type":"ListItem","position":2,"name":"Projects","item":"http:\/\/fallows.ca\/wp\/category\/projects\/"},{"@type":"ListItem","position":3,"name":"Software Projects","item":"https:\/\/fallows.ca\/wp\/category\/projects\/software-projects\/"},{"@type":"ListItem","position":4,"name":"Visual Arduino &#8211; Moving to the Next Level"}]},{"@type":"WebSite","@id":"https:\/\/fallows.ca\/wp\/#website","url":"https:\/\/fallows.ca\/wp\/","name":"Living On The Horizon","description":"Blogs and Stuff","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fallows.ca\/wp\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/fallows.ca\/wp\/#\/schema\/person\/9750e0ab227030255d9806757525f945","name":"John VE6EY","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fallows.ca\/wp\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e4048edfe09efff51033c48b4fb951e8ac0a4dc84a25c96b25e5ae9f5b7069a5?s=96&d=mm&r=g","caption":"John VE6EY"},"sameAs":["https:\/\/x.com\/VE6EY"],"url":"https:\/\/fallows.ca\/wp\/author\/play\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6wKKr-eT","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts\/923","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/comments?post=923"}],"version-history":[{"count":1,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts\/923\/revisions"}],"predecessor-version":[{"id":926,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/posts\/923\/revisions\/926"}],"wp:attachment":[{"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/media?parent=923"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/categories?post=923"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/tags?post=923"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/fallows.ca\/wp\/wp-json\/wp\/v2\/series?post=923"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}