Review/comparison: Arduino Duemilanove and Arduino Uno - Page 1
Forum section: electronics / general

author: NiHaoMike
author_rank: Super Contributor
timestamp: October 22, 2011, 02:00:55 am
content: I got an Arduino Duemilanove last month or so (found it in the "free" bin in the university lab) and a friend of mine has an Arduino Uno that I had borrowed to debug a project. The two are really similar, but I felt that I should do a review/comparison anyways.Differences:* The only difference between the two is that the Duemilanove uses a FTDI USB chip while the Uno uses a second Atmel. Unless you need another Arduino or you're planning to do advanced USB hacking, no reason to upgrade.* I had to recompile my kernel to use the Uno, but that's probably because I build my kernels like Tiffany Yep - really slimmed down.Good:* It's a very popular platform, so support is excellent and there are plenty of examples.* IDE is very easy to use.* Socketed chip can be replaced if accidentally damaged, but there is a big catch to be mentioned later.* I/O headers accept common jumper wires.Bad:* Stock Arduino only runs the 20MHz-rated chip at 16MHz. Crystal cannot be replaced because the libraries expect a 16MHz clock.* Design is very unfriendly for breadboarding. Bad design since it is very likely that an Arduino would be used with a breadboard.* Nonstandard pin pitch is unfriendly for prefboard designs.* Cannot program blank chip. Really limits usefulness of socket. Bootloader can be loaded using another Arduino or a serial hack, but no reason to not include functionality on the board itself. Really disappointing for a $30 board given the $4.30 MSP430 LaunchPad can program blank chips.

author: westfw
author_rank: Super Contributor
timestamp: October 22, 2011, 09:45:55 pm
content: QuoteAgreed.You CAN run a 20MHz board. You'll need a new bootloader, and you'll have to define it as a different type in the Arduino's configuration files to pass the frequency on to the compiler. In any case, 20MHz vs 16MHz is seldom relevant...QuoteYour existing Arduino can program a blank chip in a breadboard or on a board with an ISP connector. But yeah, it has occured to me that with the uno design, they could have put a full ISP programmer into the second AVR. (at some cost in compatibility and complexity of the interconnection, though.)But the LaunchPad is a subsidized board used as a marketing tool by a chip manufacturer, while the Arduino is an independent product whose $30 price tag allows it to be sold by retailers (MicroCenter, Radio Shack, Fry's, etc !) You might as well complain that "in ones" price of a chip bought from digikey is "infintitely more" than the zero cost of free samples... (now, Atmel could give away Arduino-clones in a similar manner, which would be an interesting move. Though I'm not sure it would be good for Arduino to be undersold by a manufacturer, and manufacturers tend to be sensitive to that nuance...)

author: amspire
author_rank: Super Contributor
timestamp: October 22, 2011, 10:31:48 pm
content: Quote from: NiHaoMike on October 22, 2011, 02:00:55 amYou breadboard on shields on the Arduino Duemilanove and Uno boards.If you want to add an Ardunio to a breadboard or proto board, you would use a RBBB board instead ($13 assembled, $2 for the bare board, and about $8 if you source the parts yourself). Why would you try and use the full Arduino at a cost of almost 3 times the price?To connect to the computer, you use a modified Nokia CA-42 cable or similar ($2-$3 on ebay including postage), so the RBBB board does not need a USB chip. The RBBB board is compatible with the full sized Arduino boards, so you can use exactly the same programming.The board is designed so you can cut off the parts you don't need. So if the breadboard supplies the 5V, you don't need the regulators on the RBBB.You can get them from places likewww.moderndevices.comIt looks like this kit comes with the ATMEGA168 processor, but you can use the ATMEGA328 instead.Richard

author: NiHaoMike
author_rank: Super Contributor
timestamp: October 23, 2011, 04:31:41 am
content: QuoteThere's no reason to not include bootloading capability given that it's possible to do it with the parts already on the board. Just add a set of jumpers to make the required connections, or use a FTDI adapter.http://arduino.cc/forum/index.php/topic,75658.0.htmlQuoteIt's for an old machine (Dell 1700) and probably won't run on anything else. It's quite easy to make a custom kernel that only includes what is really necessary. Actually, it's time to compile an updated kernel, but I'm going to hold off until senior design is over since I need the machine to work correctly for development.

author: amspire
author_rank: Super Contributor
timestamp: October 23, 2011, 06:21:21 am
content: Quote from: NiHaoMike on October 23, 2011, 04:31:41 amDo you mean that if an Ardino had a 4 pole dip switch or 4 jumpers, it could switch between normal mode, and programming a totally blank chip?Why didn't they add that then? That would be a great addition.If it is that easy, then I have to agree with you that it is a negative mark for the Arduino's to leave that feature off.Richard.

author: ejeffrey
author_rank: Super Contributor
timestamp: October 23, 2011, 10:58:44 am
content: At least one claim I have heard is that they don't really want to enable direct ISP programming because it makes it much easier for users to brick their AVR (by setting the wrong fuses I guess). Adding jumpers / DIP switches to toggle between ISP and bootloader programming seems unnecessarily complicated given that you can always buy the AVRISP or use one arduino to program another.If all you are worried about is reprogramming the bootloader if you burn out a chip and have to replace it, Sparkfun sells replacement chips with the bootloader pre-programmed. Socketed arduinos are going to be going away eventually anyway. They are already having trouble keeping the DIP packages in stock. The surface mount packages are cheaper, smaller, and more readily available.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: October 23, 2011, 11:25:53 am
content: Quote from: ejeffrey on October 23, 2011, 10:58:44 amI think it was really dumb that they didn't link pins from the USB chip on the Uno to the AVRs ISP pins - I can understand reasons for not using ISP as the default way of programming, but the ability to do thinks like program a new chip with a bootloader would have been a useful facility. Not breaking out some of the USB chip pins onto pads was also dumb, as it would allow the board to be used for developing code for teh USB chip, although ISTR they did this on later versions.

author: amspire
author_rank: Super Contributor
timestamp: October 23, 2011, 01:00:52 pm
content: Quote from: mikeselectricstuff on October 23, 2011, 11:25:53 amAt least my Arduino Deumilanove has the ICSP header.So if you can drive that with a RS232 port rather then a dedicated ICSP programmer, then I should be able to modify one of my CA-42 Nokia USB to serial cables to add a ICSP header termination and then do full chip program with something like AVRDUDE.I will have to try it. It would be a very cheap solution if it works.Richard

author: Bored@Work
author_rank: Super Contributor
timestamp: October 23, 2011, 05:30:25 pm
content: Quote from: amspire on October 23, 2011, 01:00:52 pmThe latest avrdude has drivers for some few USB-RS232 chips, because timing wise a USB-RS232 adapter is different than a native RS232 connection. USB is a packet protocol introducing delays which in turn breaks the programming timing or at least makes programming very slow.By the way, it is ISP, not ICSP. Using the term ICSP is one of the many things the Arduino designers got wrong. ICSP is Microchip's name for programming PICs. Atmel uses the term ISP for AVRs (and a bunch of others, for special AVR programming protocols).If you need a reliable AVR ISP programmer, buy an original AVRISP MkII. Or, as a minimum, an ISP programmer with some own controller, not a dumb programming cable.

author: amspire
author_rank: Super Contributor
timestamp: October 25, 2011, 04:17:22 am
content: Quote from: BoredAtWork on October 23, 2011, 05:30:25 pmThanks. That is very useful information. On one of the pages about building a very simple AVR programmer via a USB\rs232 interface, they mentioned a programming time of something like 20 minutes. I was wondering why it was so slow.Richard

author: westfw
author_rank: Super Contributor
timestamp: October 26, 2011, 08:30:27 am
content: QuoteIn the 1.0 Arduino IDE release, SHIFT- will do a device-programmer based upload, instead of the verbose upload you would have gotten in earlier versions (turning on verbose mode for compile or upload is now a setible option in the preferences dialog.) So "they don't want" would seem to be a bit of an overstatement :-)