Using Code Explorers and Diagrams to Learn Arduino

Hello, I am sorry to hear that, I am struggling to understand how you can get "burned" downloading free software direct from the Microsoft web site? If you can please explain so that I can add a knowlege base article of your experiences.

If it helps, here is a link to a page published today by a new user that has happily installed Visual Studio and the Arduino plugin. The publisher has just joined the debug tool beta group so the article covers some extra stuff that you can ignore.

With regard to the print class diagramm: it makes it blindingly obvious that the design for print is somewhat screwed

It's very good to hear that seeing a graphical diagram can also be used to identify coding mistakes. In terms of understanding, it's just an example, maybe my 2nd example in this post is more relevent for experienced users.

I can say that we have good feedback from the people that are actually working with the 2nd example.

Microsoft's free offer or not aside, it just at first appearance to me looks like that the MS studio IDE is much more intimidating and complex compared to the the very simple and easy to use and understand arduino IDE. I came to arduino with a lot of hardware experience but limited software experience. My limited experience was with Borland's original Turbo Pascal IDE. I found the Arduino IDE very easy to figure out from the very start, I think because of the few choices one has to figure out to get a sketch entered and verified and/or uploaded. I suspect I would have passed on the whole arduino platform if I was first presented with the studio IDE to navigate on my own.

So ease of use for raw beginners compared to the arduino IDE? Color me very very skeptical of that claim, unless you have hard data to back that claim, rather then just an opinion?

Simplicity is one of the corner stones that made the Arduino platform the success that it has become. A professional IDE does not seem to me to met that objective.

Lefty

Hi Lefty,

I agree that without the plugin Visual Studio would be as impossible for new users as Eclipse, Netbeans or any other IDE than the Arduino.

However, the plugin does what the Arduino IDE does and is installed from a one-click installer. It makes things very easy yet provides intellisense suggestions and help.

Code completion suggestions as we type make it a must for anyone who does not know the Arduino syntax and especially for new users.

NB: If Eclipse is your preferred route then there is a great Eclipse plugin that also helps. As a Microsoft user I prefer Visual Studio but everyone has their own preferences

There is one click compile and upload, board selection, serial ports and a simple sketch creation system that just requires the name of a sketch. It's that easy!

There are plenty of articles on the web, not authored or associated to me, from people who are pleased to have this option instead of the Arduino IDE. I can provide some links if required but we all have google :slight_smile:

The plugin is free, there are no adverts on the visual micro web site and a forum/wiki is also provided free. It is a great option for many and this is the right place to tell people about it.

Below is an example that shows how we have, in Microsoft Visual Studio, the same simple options that are provided by the Arduino IDE. I know the image shows two Arduino projects open at the same time that some might consider confusing but this is an optional feature that I like to use in my testing. I also recognise some extra clutter on the tool bars which can be hidden using the right click menu. However, the "clutter" can be ignored, there are no options that need to be set other than a serial port (or programmer) and the board.

Finally, I do appreciate that there are many different types of "new users". I speak for the ones like myself a few years ago when I was suprised to find how little support the Arduino IDE provided. I had to search the web or open an example to learn every single command. I found it a painfully slow and fustrating process.

I'm happy to see you mention my "completely free open source plugin" (At least I hope it is eclipse.baeyens.it you are referring to). :smiley:
Not sure how it compares to the visual studio plugin so I can't confirm/deny that it "is not as easy as Visual Studio". I hope you know what you are talking about.

I have been in software development for decades now with lots of different IDE's (amongst them microsoft visual studio) and from my experience I'm completely with Lefty when he states

just at first appearance to me looks like that the MS studio IDE is much more intimidating and complex compared to the the very simple and easy to use and understand arduino IDE.

The Arduino IDE is extremely simple letting the newbie focus on the important stuff. Any real IDE is to complex for a newbie. There are to many windows; to many buttons; to many short cuts; to many menu items; ....
I considered (but rejected) to make an "arduino simple perspective" in eclipse to have the same simplicity in Eclipse as the Arduino IDE offers. I decided not to do so because I would have to spend lots of time and never get to the Arduino IDE simplicity. Even if I could I would lose the power of the IDE.
What I'm trying to say: You have developed (or are supporting) a very well written free plugin in one of the worlds best (commercial) IDE's. Which is great work which will be appreciated by many. However any statement in the sense of "as simple as the arduino IDE" is undermining your credibility amongst the more experienced of us.
This is what makes me say "I hope you know what you are talking about." in the first part of this response; cause I think you do not.

All the best to you
Jantje

Hi Jantje,

Well it's always interesting to hear the opinions of god members :slight_smile: I've looked at your eclipse plugin and as I said earlier it really helps but the install instructions alone are more complex to use.

I found installing Eclipse to be quite difficult so, unrelated to your plugin the Visual Studio install was easier.

As I have said before, what is a new user? I speak for people like myself that found the Arduino IDE very difficult to work with without intellisense. I also found that when loading existing Arduino projects it was very difficult to see how code was related. In Visual Studio we just right mouse click any code syntax to GoTo definition or to "Find all references". As a new user to any project this type of tool is VERY useful.

So this is a preference for some to have a full interface and good source navigation/help and for others an empty clean interface and no source code help. I don't think anyone can say which is the best. It is that all options are right but for different groups of users. It is up to each user to decide what they choose.

The Arduino Examples and Documentation explorer in Visual Studio allow users to easily open or clone existing Arduino examples which is great for new users. The Arduino IDE has some of this functionality I don't believe Eclipse has this yet.

Anyway I am not going to get into a bun fight. I am sure that Eclipse has some features that are not available in Visual Studio, I just found it a terrible pain to install and very difficult to use.

So I believe, from my perspective and many of the users of Microsoft Visual Studio perspectives that I do know exactly what I am talking about.

Thanks again for your feedback

Okay I have relooked at my words and altered them slightly. For fear of getting off point I have altered my statement to...

NB: If Eclipse is your preferred route then there is a great Eclipse plugin that also helps. As a Microsoft user I prefer Visual Studio but everyone has their own preferences

XD

Hello, I am sorry to hear that, I am struggling to understand how you can get "burned" downloading free software direct from the Microsoft web site?

Download a "free" version and ignore the fine print that says that you will have to pay for this "advanced" "free" version later on. Start to develop with said "free" version and figure out later to either

  1. pay
    or
  2. rework part of your stuff to work around the pay part.

With other words it is not free. Not like in "beer" and not like in "speech". More like in "drugs".

It's very good to hear that seeing a graphical diagram can also be used to identify coding mistakes. In terms of understanding, it's just an example, maybe my 2nd example in this post is more relevent for experienced users.

The coding mistakes where obvious from the code as well. Just not so graphic :wink:

I am sorry to hear of your experiences but they are not relevant to this discussion for the following reasons:-

  1. Our sketches in Visual Studio are always 100% compatible with the Arduino IDE so there will never be the re-work you experienced with your non-Arduino projects. This is already proven because users already have the option to switch between Arduino IDE and Visual Studio at any time

  2. There is no obligation to buy any software from Microsoft, my instructions about this offer have always stated VERY clearly that this is a 3 year free offer, as have Microsofts instructions. You do not have to read the small print to know this information. I always link to the same page about this free offer. The page title in bold states free microsoft software for 3 years, see for yourself, it is very clear.

  3. At the end of the 3 years all Arduino projects will continue to provide intellisense in the free express version of Visual Studio. At that time users will need to switch to Arduino to upload but this is common for other less capable plugins so nothing new. At the end of the 3 years users will have to switch to Arduino to burn boot loaders but most other plugins don't provide this feature anyway

Our community is currently expanding at approx. 70 new users per day and has done so for some time. We have great feedback from many very happy and relieved Arduino programmers. This includes both novices and experts. The free offer that I have brought to peoples attention has been appreciated publicly in various blogs by happy users.

I have ensured that every feature of the Arduino IDE is available in Visual Studio, I do not request donations in return for adding what I consider to be fundamental features to a fully compatible and easy to use Arduino alternative.

There is nothing that the Arduino IDE can do that Visual Studio can not do but there are lots of things Visual Studio can do for Arduino that the Arduino IDE can not do.

Our setup and installation motto says something that other plugins are unable to say:-

If it works in the Arduino IDE then it will work in a valid copy of Visual Studio Professional. It is that easy!

I accept this solution is of no interest to some people on this forum but many other people have and are benefiting every day. Many of these people have read this and other Visual Micro articles and have happily benefited.

My posts are for the people who want to benefit from this information. If you don't like it and have nothing positive to say then maybe I can politely ask you to go and be negative elsewhere.

http://www.visualmicro.com

Hello, I am sorry to hear that, I am struggling to understand how you can get "burned" downloading free software direct from the Microsoft web site?

I am sorry to hear of your experiences but they are not relevant to this discussion for the following reasons:

Seems your question was not relevant to this discussion in the first place. Sorry for answering it.

100% Arduino compatible Visual Studio Professional works in the same way that we expect other professional editors to work, such as the spell checker in Google Chome or Microsoft Word.

Modifying Arduino code will automatically display intellisense (code explorer) whilst at the same time highlight errors. Mistakes in code are automatically highlighted in red squiggles and suggested corrections are automatically displayed.

The image below demonstrates automatic error detection and correction in Microsoft Visual Studio 2012 for the Arduino ArduPilot drone project. Notice the letter 'x' has been mistakenly appended to 'handle_no_commands()'.

These features are a HUGE time saver for new and experienced Arduino users!

References

Download and read more about the free Arduino plugin for Visual Studio Professional

Visual Studio Professional can be downloaded for free using these instructions.

If you don't like it and have nothing positive to say then maybe I can politely ask you to go and be negative elsewhere.

Healthy attitude you have there.

Healthy attitude you have there

Yep, I have been very positive up until comments such as yours which was negative and misleading.

Yes, you are constantly pushing this 'free' offer, but not explaining that it isn't a free lunch

If you had bothered to click the link you would see a page with this title. It couldn't more clear!!!

Further more the url of the page also says it is a 3 years offer and this would be clearly visible when anyone hovers their mouse over the link .Here is the page url so that you can see my point Visual Studio for free for Arduino Development

I always have linked any mention of a free Microsoft offer to the same page with the same title. I went to the effort to create the page so that things are clear, however if you click onto the Microsoft WebSiteSpark page to read more everything is once again stated very clearly. There isn't even any "fine" print, all the print is clear as day. So from my point of view you were extremely negative for no good reason!

So my positive and informative post deserved more than false accusations of attempting to pretend something isn't free forever. I feel that if you haven't got anything good to say then you should not spoil it for others. I don't post very often, unlike some we might know, so again, to say that "I am constantly pushing" is clearly unfair. I'm not even selling anything for you or anyone else to take grievance against.

If you like I can post the messages I receive EVERY day from very happy users who are grateful for this information. It is clear from their messages that these users are both relieved and happy that they finally have an IDE that works with them instead of against them.

Features such as intellisense make a huge difference to speed of development. In the following example we see what we are prompted with the relevant Arduino syntax when we type "Ser" in Visual Studio

In this example prompted with the options for the "Serial" object

In this example we can easily see two errors in the code.

In this example we see that the Arduino files in our project can be expanded to show methods and more. If we double click we go to the code. We can also press F12 or right click any Arduino code in Visual Studio to "Go To Definition". We can also "Find all references" to ANY Arduino code.

I have said that there are many people who enjoy this solution who do not need the 3 year offer. The 3 year offer is often for newbies who also appreciate the easier to use tools (Their words not mine so please allow them their views).

The first 3 years of Arduino development is obviously learning intensive so why would anyone want to take this away by being negative. 3 Years is a long time, other solutions will be available by then. For example, Atmel Studio is created by the manufacturer of the Arduino AVR chips, we will have a Atmel Studio plugin within 3 years.

I know that the Arduino dev team are also working on a new IDE which I hope will provide many of the features I have described. So there will be no loss of enjoyment and no reason not to benefit right now.

So my positive and informative post deserved more than false accusations of attempting to pretend something isn't free forever. I feel that if you haven't got anything good to say then you should not spoil it for others. I don't post very often, unlike some we might know, so again, to say that "I am constantly pushing" is clearly unfair. I'm not even selling anything for you or anyone else to take grievance against.

  1. You are very agressive. I do not see how this implies positive.
  2. You are massively advertising.
  3. You seem to assume that we are not aware of the advantages of VS. Maybe you should learn that e.g. I am working with VS Ultimate AND Eclipse and other advanced (closed) tools as well. The point is not the quality of the tools. VS is a great tool. The point is that "free for 3 years" is a lot different from "free forever".
  4. If you do not like to hear valid points that are against you opinion then you better not post in official discussion forums. If you can not stand it then push your advertising into channels that do not allow replies.

With regard to the ultimate clear superiority of your VS solution: I am running Arduino under Linux. So there is some obvious thing that Arduino IDE can do that VS can not: it runs under Linux without any dirty tricks.

One more thought that you will not like: if your solution is so great and there are so many people that love it, why didn't we here their praise in this forum? Is it so that there are thousands of Arduino newbies that use your superior solution that never show up in this forum? Strange indeed. Or is it more that you are running mad and screaming and shouting at others if they do not share your view of the world 100%? Now rush and buy some praise to flood this forum in order to drive your light of knowledge straight into our tiny brains.

I'm with Udo here; except for....
... Given his experience with code development he should be using my eclipse plugin in Linux. ]:smiley:

Best regards
Jantje

  1. You are very aggressive. I do not see how this implies positive.

Eh? Here is the text of my post again. Your comments were the first aggressive comments.

The free Arduino Plugin for Visual Studio 2012 provides some very useful tools that makes learning Arduino a little bit easier. (Read how to get Visual Studio for free at the end of this post)

One of the tools is the "Class Diagram" which is available to all components of any Arduino project. Below you can see the relationship that exist in the Ardino core to the "Print" class.

Development of both simple and advanced Arduino projects benefit from being able to quickly visualize and understand the code.

The free Arduino pugin for Visual Studio 2012, 2010, 2008 is available from here.

Instructions of how to download a legal copy of Microsoft Visual Studio 2012 Professional for free from here

  1. You are massively advertising.

Eh? My post was accurate, positive and informative. I have changed my tone slightly after unrelated negative comments such as yours. If I encounter undue negativity it is natural for me (or anyone) to become louder.

  1. You seem to assume that we are not aware of the advantages of VS. Maybe you should learn that e.g. I am working with VS Ultimate AND Eclipse and other advanced (closed) tools as well. The point is not the quality of the tools. VS is a great tool.

Yes Microsoft Visual Studio is a great tool but look at the number of posts you have made on this site. You are an expert so obviously you know VS but it seems strange that you don't realize that many people who use these forums are not experts like yourself. So if a post is obviously not applicable to you then why make the above comment? Do you feel that every post has to be made with your skills in mind?

This might have been a better thing for you to say...

"Visual Studio is a great tool but be clear that the free offer is for 3 years after which time you must stop using it or buy it"

That would have been a positive thing to say but instead you suggested that someone can get "burned" on this offer which implies the possibility of financial loss or code loss. Neither are applicable here. So you made the strong negative comment before I had done anything other than made a simple post. It seemed to me that you were trying to undermine the post.

The point is that "free for 3 years" is a lot different from "free forever".

Eh? I've covered this and, as stated earlier, this is VERY clearly shown in the link that I posted I didn't just link to the Microsoft offer, which is also clear, I linked to a page entitled "Free for 3 years?".

  1. If you do not like to hear valid points that are against you opinion then you better not post in official discussion forums. If you can not stand it then push your advertising into channels that do not allow replies.

Eh? This forum is for sensible and constructive discussion, when there is some I will enjoy participating.

With regard to the ultimate clear superiority of your VS solution: I am running Arduino under Linux. So there is some obvious thing that Arduino IDE can do that VS can not: it runs under Linux without any dirty tricks

This is exactly my point! My post is for the millions of users of Microsoft Windows who do not want to use Linux and my post was for all the users that do not enjoy using the Arduino IDE because it is so limited. Again let's look at the number of posts you have made and the knowledge that you have about Arduino. It's huge, I am sure you could program Arduino using a text editor without the need for references! In this forum I bet you answer more questions that you ask?? Yep, so this means you are not the target audience doesn't it? Superiority of VS? Funny, it all depends on the audience. One happy new Arduino user today said this about moving from the Arduino IDE to Visual Studio 2012

This is quite powerful IDE, like going from a scooter to a Ducati.

Here is the blog, see for yourself

One more thought that you will not like: if your solution is so great and there are so many people that love it, why didn't we here their praise in this forum? Is it so that there are thousands of Arduino newbies that use your superior solution that never show up in this forum

I recon they all stay away for fear of being jumped on by Microsoft haters :slight_smile: I don't think that many of the users need to use this forum, it is more for people who are working in the dark with a text editor called an IDE.

There are 90+ followers on codeplex, many more signed up for email notifications, 400 in the forum and 20,000 + downloads per year.

Here is a post from the web, you can find many more if you search but I am not going to bother. All the stats are visible to the public.

When I first ran the Arduino IDE, I was a little bit disappointed but I thought It was the only one development environment to write "sketch" (Arduino program). It's evident that the Arduino environment allows you to do what has to be done, but let's say that I did not had a good feeling with it.

Surfing the web, I discovered a solution which could better meet my demands.

Visual Micro
Visual Micro is an Add-In for Microsoft Visual Studio allowing you to write, compile and upload Sketches to your Arduino board. Visual Micro exists for Visual Studio 2005/2008 and Visual Studio 2010.

http://www.funnyrobotics.com/2011/02/programming-arduino-from-visual-studio.html

I won't bother with the rest of your comment because it doesn't serve any purpose.

Arduino plugin for Visual Studio

@Jantje

Given his experience with code development he should be using my eclipse plugin in Linux

Only if he pays you a donation so that you can hook up the "utility" folders for libraries :slight_smile: I must remember to shove a donate button under peoples noses sometime.

When I do something for money then you can complain!

100% Compatible Arduino Plugin for Microsoft Visual Studio

I couldn't help verifying my gut feeling.
I did a search for "visual micro" and "arduino eclipse plugin" (include the " when googling) . I got my gut feeling confirmed. I advice anyone who is interested in this discussion to do the same.
I also found the post you referred to (actually there are several very similar ones). The authors of these articles have names I also find back on in-correct denigrating remarks on my plugin.
Anyway one of the posts that starts with

When I first ran the Arduino IDE, I was a little bit disappointed but I thought It was the only one development environment

also contains the following

Conclusion
If you are used to write your code in Visual Studio, you may feel more confortable to work from within VS than from within the standard Arduino IDE.

This is not really the message you are giving.

Best regards
Jantje

You seem to be combining two different things here.

I gave one example of someone who likes the VS plugin. So what has the message got to do with anything other than someone has publicly stated they like the plugin?

You might say that most of the 90 followers on http://visualmicro.codeplex.com also like the plugin. And a large proportion of the 20,000 people that have downloaded it over the last 11 months might also like it. But who cares how many, this is a useful tool for anyone who wants to use it. I say that because I find it useful.

I don't understand. Why include Eclipse in the search? What has Eclipse got to do with "Class Diagrams" and development tools for new users (other than IT propeller heads). That is what this post is about!

Many windows users tend to prefer msi installers and as you have said yourself, your Eclipse plugin is for advanced users. The Visual Studio plugin is for all levels of user. But again what has this got to do with this post? You are free to post about what eclipse can do for people, just as I am free to post about VS.

  1. The Visual Micro plugin is an Arduino and a Microsoft solution. Users will look to both Arduino and Microsoft web sites to find this product so this is one or two places where I should tell people about this plugin.

..

Actually, I don't really know what we are discussing here. The Arduino plugin for Visual Studio is immensely useful for a wide range of users. There are other plugins for other users which yourself and others have the same opportunity to announce. As I have said the xcode multi platform design really works well for some, your Eclipise plugin will work for advanced users. I know there are other plugins all at different stages of maturity but they are all well advertised and not my concern.

One thing is for sure, the Linux and Eclipse users are extremely vocal for their cause, whilst the Microsoft users seem to stay a little quieter. Time will show us what this means.

So back to my original post...

The Visual Studio plugin is very easy to use and provides great features such as the "Class Diagram" tool that I outlined at the start of this post (sigh). Visual Studio also provides some very useful code explorer tools such as the ability to right click any Arduino code and see a list of locations where the code is being used/referenced.

Features like this are a crucial aid for users who are new to any open source Arduino project (but maybe not the blink sketch). This is because code explorers make the code more visible and reduce the learning curve by a huge factor.

In some ways, for new users to any project, tools like this are the difference between being able to make code changes and not being able to make changes. The reason being is that we have to be sure of the the impact of any changes. This is usually a more difficult task using conventional code search such as "Find in files".

Class Diagram of the ArduPilot pressure sensor libraries using the free Arduino Plugin for Visual Studio