Which Arduino Should I Buy?

Hi everyone, I'm a grade 11 student in computer engineering. We are using the PICAXE 28x1 and I don't much care for it:
Question 1: What is a micrcontroller do you recommend for me?
Question 2: What microcontroller do professionals use?

I've been doing research and there are so many times. I've been looking at the Arduino Uno Rev3 and then there is this other one that seems like the exact same thing for cheaper. What is the difference? See the links below
http://www.aztecmcu.com/catalog/i53.html
http://www.aztecmcu.com/catalog/i55.html

Then there are all these other ones etc. etc. complicated, ugh. Help would be greatly appreciated!!

Those are the same - just a different package for the microcontroller.
Use the first one - when you damage it, you can replace the chip & still use the board.
Buy a spare 20 MHz Atmega328P-PU at the same time if you can.

I use that chip and Atmega1284P-PU (DIP) and -AU(quad flat pack) in a lot of boards - browse my signature link.

You can find it for less elsewhere as well.
http://www.nkcelectronics.com/

Woah, big words there, heh.

I suppose the Atmega328P-PU is the actual microcontroller. This is the 20MHz one right? See link.
http://www.nkcelectronics.com/arduino-uno-ready-avr-atmega328p-microcontrol328.html

And the Atmega1284P-PU is just a bigger, better microcontroller that professionals use correct? Can install it on the board that comes with
Arduino Uno Rev 3 package? Link to purchase it please? I couldn't find it.

The quad flatpack I have no idea what that is. Wikipedia was confusing, heh.

And I'm new here so I don't know what a signature is and how to browse it. Sorry.

But other than that, thanks a lot for your help. I will definitely buy the Arduino Rev 3 if you suggest it.
I suppose the only difference between the two links is that the Rev 3 can be easily "repaired" if you break it, correct?

Yes, Atmega328P-PU is the actual microcontroller. They are available as 10MHz and 20MHz parts.

Note that this one does not have a bootloader installed.
You can use the Arduino you buy to install one.
Or you can buy one with the bootloader installed.

The DIP package can be easily replaced, the quad flat pack not so much. Quad flat package just describes the part package.

"Professionals" use both. Depends on the project need. I use both. I use the ATmega2560 also, you can find that microcontroller on the Mega board.
Board examples I've made are here Cross Roads Electronics

And the Atmega1284P-PU is just a bigger, better microcontroller that professionals use correct?

Professionals use whatever device is best suited to their needs and time/cost constraints.

Heh, wow. Your answers just keep sparking more questions. Sorry, I look them up and I think I have the general idea but I feel the need to repeat myself. Let me know if I got it right.

The bootloader is just the preloaded firmware on the microcontroller, that translates a specific high-level code to machine language.

The quad flat pack has "pins" on all four sides that do not go into sockets but rather is soldered directly onto... what do you call the metal conductive strips on boards. Matter o' fact, what do you call that board with thin strips of metal? Like a mother board. Heh.

And professionals would use the cheapest microcontroller that can do the job, I would suppose.

As for the microcontrollers, I see you got a website there that is even cheaper than the previous link you got for me for the Arduino Rev 3 (where I found the Atmega328P-PU for $6). Thanks a lot for that. $2.40 is amazing. The picaxe 28x1 cost $15!

I have another question: If the actual micrcontroller is only $2.40, why can't I just buy that and put it into my breadboard. What is the purpose and benefits of the actual board. It'd be a lot neater with my wiring as well.

Finally, with the mega boards and boards link you sent me, it all just went straight over my head. Sorry. Any link for a starter tutorial on professionally making prototypes with those types of boards (the ones I asked about above.The permanent ones). I only have worked with breadboards to make prototypes cutting and stripping wires and putting them into sockets.

"The bootloader is just the preloaded firmware on the microcontroller,"
It is a program that runs after a reset that listens to the serial port for a few secons, if no message is coming in from the PC (saying "here is a new sketch to install") then the bootloader starts up the existing sketch.

The quad flat pack is just one way of packaging the microcontroller (there are 3). It is soldered to pads on the printed circuit board (PCB).

Yes, $2.40 is good price. Helps to know where to look.

You can buy just a blank chip and install it onto your board. If you connect 6 pins (+5, Gnd, Reset, SCK, MISO, MOSI) to a 2x3 header (in a specific order) than you connect an AVR ISP (such as Atmel AVR ISP MKii) and download your program into the chip. The Arduino board provides an easy to way to connect things up for development/testing prior to moving to a board like yours.

Browse sparkfun.com, they have a tutorial series on using Eagle PCB software. A free hobbyist version is availale to download from www.cadsoftusa.com

Really sorry for wasting your time like this.

I attempted to look up those pins you described, "SCK, MISO, MOSI" but could not find a definition or even the meaning of the acronym. Is there an index I can look this stuff up in?
The 2x3 header looks like a serial connector. So I can sort of infer what the pins you talked about up there are.
And the AVR ISP is a chip whose sole purpose is to program micrcontroller. It programs in FLASH and EEPROM, which is a rewrittable data storage code, which I suppose would be what the bootloader is programmed in. And the bootloader IS NOT the firmware.
I don't completely understand how the Arduino PCB would make things "easier." -- Don't feel a need to explain this. Not that you have to explain any of this. I really appreciate your help.
Finally, the bootloader I understand is an initial program that is run before the actual code we download into it. It's purpose is to quickly check for a new code the user might want to download, but one must "Reset" the controller first. Correct? However with the picaxe, you could just download it whenever you wanted. So I'm not sure.
Finally finally, I really appreciate the link.
And finally lastly in the end, I would need to purchase an AVR ISP chip and the 2x3 header to program the Atmega328P-PU? (There is always a catch!) I don't mean programming labs, I mean the program to "setup" the microcontroller so you can program it to do labs. I guess I mean programming the firmware onto the chip. I found some tutorials on how to program micrcontrollers; however, are there any tutorials you suggest?

I should add that I've been doing research and I discovered that the picaxe and the pic differ in that the firmware (I think) is already downloaded into the picaxe to make it easier.

So by getting a blank microcontroller, I will learn a lot more in terms of hardware and how these microcontrollers work.

Additionally, I'm not sure but one can setup a pic chip or a blank atmega or whatever kind of microcontroller one buys to be able to read programs in C?
I personally hate BASIC because of the limitations. No arrays and a limit of variables so one cannot do static functions or methods if he/she is making a more complex lab.
My question is, the firmware one installs onto the microcontroller, where is it acquired from, and can any microcontroller take any firmware? Or do induvidual companies publish them with their own editors?

[see answers mixed in below]

I attempted to look up those pins you described, "SCK, MISO, MOSI" but could not find a definition or even the meaning of the acronym. Is there an index I can look this stuff up in?
[SPI - Serial Peripheral Interface. SCK - serial clock, MISO - Master In Slave Out, MOSI - Master Out Slave In]

The 2x3 header looks like a serial connector. So I can sort of infer what the pins you talked about up there are.
[2x3 header is just 6 male 0.025" square pins for plugging the AVR ISP programmer onto.]

And the AVR ISP is a chip whose sole purpose is to program micrcontroller. It programs in FLASH and EEPROM, which is a rewrittable data storage code, which I suppose would be what the bootloader is programmed in. And the bootloader IS NOT the firmware.
[Yes - it interfaces to a PC that sends data, and typically acts as the USB interface. It programs the Flash. Maybe EEPROM - usually you would write a sketch to do that. Bootloader gets installed into a special area of Flash, and is allowed to write the rest of Flash. Bootloader as firmware/special sketch - kind of fuzzy line there. You're writing code for an embedded processor that a user could not change - technically that's firmware.]

I don't completely understand how the Arduino PCB would make things "easier." -- Don't feel a need to explain this. Not that you have to explain any of this. I really appreciate your help.
[Provides a means for you to easily connect wires & make design changes before committing to the final design. ]

Finally, the bootloader I understand is an initial program that is run before the actual code we download into it. It's purpose is to quickly check for a new code the user might want to download, but one must "Reset" the controller first. Correct? However with the picaxe, you could just download it whenever you wanted. So I'm not sure.
[How is the picaxe to know when you want to start downloading? I am sure it has something to clue it in. Arduino just uses Reset.]

Finally finally, I really appreciate the link.
And finally lastly in the end, I would need to purchase an AVR ISP chip and the 2x3 header to program the Atmega328P-PU? (There is always a catch!) I don't mean programming labs, I mean the program to "setup" the microcontroller so you can program it to do labs. I guess I mean programming the firmware onto the chip. I found some tutorials on how to program micrcontrollers; however, are there any tutorials you suggest?
[Yes, you need an AVR.
I used this one for a long time
http://www.mdfly.com/index.php?main_page=product_info&cPath=5&products_id=415
before I got one of these (needed for larger chips)

Both will need to access the AVR ISP header, or you connect them to whereever the signals are available in your design. Having a header is convenient.]

I should add that I've been doing research and I discovered that the picaxe and the pic differ in that the firmware (I think) is already downloaded into the picaxe to make it easier.
[Could be - the Arduino IDE is what makes it easy to use.]

So by getting a blank microcontroller, I will learn a lot more in terms of hardware and how these microcontrollers work.
[Agreed.]

Additionally, I'm not sure but one can setup a pic chip or a blank atmega or whatever kind of microcontroller one buys to be able to read programs in C?
I personally hate BASIC because of the limitations. No arrays and a limit of variables so one cannot do static functions or methods if he/she is making a more complex lab.
[Read programs in C? Or, create programs in C to download? Yes. Arduino]

My question is, the firmware one installs onto the microcontroller, where is it acquired from, and can any microcontroller take any firmware? Or do induvidual companies publish them with their own editors?
[You write the C/C++ code that is compiled by a C compiler and turned into the hex file that is downloaded into the card. It may downloaded via a bootloader, or it may be downloaded directly with no bootloader and start running immediately after a reset. The IDE is nice because it has libraries for functions that are used a lot, like the Serial interface, so you don't need to figure out for every program, allowing you to easily interface with a serial monitor for instance.
It also lets you easily port your code from one Atmel device to another. C is pretty common code, I would think C code could be moved to other uCs with tweaking for whatever hardware differences there where, and letting the other uC's compiler taking care of adapting the C code to the instuction set.

See here

and the AVR LIBC link at the lower right.
You may also use other programming environments such as Atmel's Studio 6, see links here

The IDE also addresses programming the 'fuses' that set things like the clock source, bootloader size, etc. that are independent of the firmware/sketch that runs after a reset.
]

[Okay. Phew, I'm learning more here than I did through 5 months of grade 11 "computer engineering."]

[So IDE = the editors. Like the picaxe programming editor. Integrated Development Environment.]

[And each IDE is made by the companies to go with their own chips. That is to say, although technically you can program in any language, but the IDE must be "tweaked" in order for one's intentions to be properly broken down into machine language that correspond with the pins and everything. So really, each chip can only be programmed in the language it's IDE is built to handle. ]

[I have more questions (sorry) but I gotta go to work. I will try to figure out for myself the exact method of actually setting up a blank micrcontroller so that I can use an IDE to just download code into it. I'm sure there are tutorials online. And examples are the best way to learn imo. I'm still not sure about what you said with needing a bootloader or downloading code without a bootloader. That doesn't make sense to me. I thought you download the bootloader first, and then download code. How can one download code w/o the bootloader when the bootloader is required to read the code? Additionally, what is uC? And porting my code?]

012anonymousxyz:
Additionally, what is uC?
And porting my code?]

I'll let more qualified individuals than my self answer the rest of your questions. uC is shorthand for "Microcontroller". 'u' is generally used as an easy way to write the micro SI prefix, ?.

How can one download code w/o the bootloader when the bootloader is required to read the code?

Go read the datasheet,Section 28.8
It desribes how to use an AVR ISP to program a blank chip.

Thanks a lot for your help.

I'll definitely look into all my options and read up on everything