Using Atmel Visual Studio as opposed to Arduino IDE.

Up to now I have essentially been using the Arduino IDE for programming my Arduinos.
A while ago I did install Atmel Studio 6 and the Visual Micro Arduino plug-in.
Problem with the Atmel web site made me stop because I could not download updates.

In any case I now want to use Atmel Studio 7 (AS7) without the Visual Micro Plugin.
I'm trying to wrap my head around the difference in programming language I will be faced with.

A few questions:

  1. With the Arduino IDE I have been using a USBasp programmer - will this work with AS7 or do I need a different one?

  2. When using vanilla AS7 is the programming language C++?

  3. Arduino is of course easy with all the dedicated libraries.... is there some sort of comparative list of libraries available?

I now want to use Atmel Studio 7 (AS7)

Why? After experiencing the all-to-common problems with installation and updates, why bother with this poorly-designed piece of bloatware?

/dev:
Why? After experiencing the all-to-common problems with installation and updates, why bother with this poorly-designed piece of bloatware?

Not that you answered the questions asked....

  1. It's free.
  2. I want to progress to a "higher" level of programming - language wise anyway.
    So what would you recommend?
  1. It's free.

As opposed to the horrendous cost of the IDE?

  1. I want to progress to a "higher" level of programming - language wise anyway.

It's C++ in the IDE. It's C++ in Visual Micro. It's C++ in Atmel Studio.

So what would you recommend?

Using the IDE.

I can think of many indispensible reasons to choose the AtmelStudio over the IDE:

  1. Reduce code size.
  2. Easy to integrate assembly routines.
  3. Easy to manipulate compile/link options.
  4. Ability to debug.
  5. Ability to run code in a simulator (alter registers, time code, manipulate ports, etc).
  6. Easy translation to standalone ATMega328 family and/or other Atmel chips.
  7. Studio works with entire Atmel line of chips.

You can use the arduino libraries.
You can program the arduino via Avrdude and the USBasp, however, I'm not certain you can accomplish this inside the Studio.
If you install the studio but not the framework, the bloat isn’t as bad.

The editor in the IDE is nothing to brag about.

I'm trying to wrap my head around the difference in programming language

The difference in programming language is not determined by the IDE but by the variation of AVR-GCC.

  1. I want to progress to a "higher" level of programming - language wise anyway.
    So what would you recommend?

Neither are a programming language (the language is C++). Both are a higher level of programming...

http://forum.arduino.cc/index.php?topic=150299.0

I don't have any problem with editing in the IDE since it was explained to me how to use the tabs feature to split larger programs up.

I can think of many indispensible reasons to choose the AtmelStudio over the IDE:

  1. Reduce code size.
  2. Easy to integrate assembly routines.
  3. Easy to manipulate compile/link options.
  4. Easy translation to standalone ATMega328 family and/or other Atmel chips.
  5. Studio works with entire Atmel line of chips.

@aisc, your time would be better spent learning how to use makefiles to build, instead of using the IDE. Makefiles are powerful, very customizable, and orders of magnitude faster than AS. Startup time on that thing is ridiculous.

Items 4 and 5 are only available (easily) under AS:

  1. Ability to debug.
  2. Ability to run code in a simulator (alter registers, time code, manipulate ports, etc).

...although you will have trouble finding support for anything but on-chip devices.

And I'm not sure @JimEli can say "indispensable" when most AVR projects succeed with "only" the Arduino IDE. I would suggest getting a Logic Analyzer or 2-channel oscilloscope as better tools, given that they monitor the real hardware and are not susceptible to incomplete simulations or JTAG configuration nightmares.

From forum responses (e.g., EEVBlog), AS seems almost universally reviled, except by Atmel evangelists. I think I've seen one responder say that he used it successfully. I spent a little time trying to get it up and running, and I couldn't believe how archaic the design is. It reminded me of C programming in the 80's. :stuck_out_tongue:

Another possibility for you is the Cosa framework. It is an alternative to the built-in libraries of the Arduino IDE. It is a true object-oriented design, and is light-years ahead of any other AVR solution. It can use the IDE to edit and build, and it supports additional processors. You can also use makefiles for building. There are many, many examples, and more devices are considered "built-in". Should I mention its code size and performance? Stellar, probably the fastest you can find, without dropping into assembly.

Cheers,
/dev

when most AVR projects succeed with "only" the Arduino IDE

That is certainly an overstatement. I have been programming AVR processors for about 15 years, and I rarely use the Arduino IDE except for a very quick test of something. It seems very limiting.

I much prefer Atmel Studio. I recently switched to Studio 7, and admit that it did take a few minutes to get accustomed to it. Studio IV is still available, and works very well. Forget about versions 5 and 6.

For advice on usage and difficulties, the AVRFreaks forum is very responsive.

That is certainly an overstatement.

I guess I wasn't clear. Are you claiming there are more AS-based projects than Arduino IDE projects?

From forum responses (e.g., EEVBlog), AS seems almost universally reviled, except by Atmel evangelists.

I think that's ASF (Atmel Software Framework) rather than AS itself. As an IDE, Visual Studio (including AS) seems to be moderately well respected. Awful startup time, a huge disk footprint, Windows-only, and too many buttons, but pretty powerful. (also very customizable, though.) (tiled windows by default. Eww.)

(A lot of people, including myself, are relatively anti-IDE, in general. Use your favorite editor and a makefile!)

(Where'd my other response go? Rats.) Note that to use debugging in AS will require better hardware than a USBasp. Atmel ICE or maybe an Xplained Mini 328p. (or the simulator, I guess.)

I can't imagine that many professional engineers, who design and code for Atmel processors in commercial products, would even consider using the Arduino IDE.

If they would, they would also have to rewrite many of the libraries, as most are not up to any sort of reliability standard and many are downright buggy, to the point of being useless in some situations.

The IDE is just fine for hobbyists, though!

PS: I agree with westfw that the footprint and window tiling of Visual Studio (AS7) really, really sucks.

Thanks for all the input. There were helpful snippets of info in each of them.

jremington:
I can't imagine that many professional engineers, who design and code for Atmel processors in commercial products, would even consider using the Arduino IDE.

My main reason for wanting to change from the IDE; I want to develop a commercial product.

/dev:
@aisc, your time would be better spent learning how to use makefiles to build, instead of using the IDE. Makefiles are powerful, very customizable, and orders of magnitude faster than AS.

Started reading up on Makefiles today :slight_smile:

westfw:
A lot of people, including myself, are relatively anti-IDE, in general. Use your favorite editor and a makefile!

Since I am still having problems logging in to my Atmel account, I cannot download AS7, I could well be starting with my newly acquired favourite editor Notepad++ - just as I used to program PHP a very long time ago in Windows Notepad.

However, before I resort to that level, I started reading some tutorials and they recommended 3 free IDE's.

  1. Code::blocks
  2. Visual Studio Express 2013 (think I read somewhere free for personal use only)
  3. Dev-C++

Anyone with any experience using the above IDE's? - any recommendations/comments/pointers?

Code::Blocks is very nice and easy to use. I use it mostly for creating straightforward console programs for PCs. I know that others have successfully used it to cross compile AVR projects, as well.

I installed Code::Blocks.
Still trying to figure out a few things.

Anyway found this article on alternative IDE's which I thought others may be interested in reading.