ATmega328 vs ATmega128

Can someone please tell me the different between the ATmega328 and the ATmega128. I have just tried to order an Arduino Pro Mini and seen that I was presented with a choice between the two.

I think you mean 168 not 128. The 328 has twice the memory (of all kinds) than the 168. Other than that, they're the same.

Thats what I meant :D thank you for your help.

Twice the memory. But, unless you are going to do some monster coding the 168 is perfctly fine for 99% of applications. Most people think they have go to go out and get the 328 just cos it's the latest chip (hence the global shortage of them right now) and probably only ever use about 40% of it's capacity.

Not necessarily monster coding. Look at the Nokia 6610 shield. One can barely fit the clock app on the 168. And this is just one shield. You cannot add an ethernet shield.

For $2 more, 328 takes the frustration away.

Sure I agree, using ethernet or large displays will require extra memory. But those make up only a small percentage of Arduino users. My point is that in most cases a 168 will do just fine.

No reason to throw the 168s away, they are still useful, however the 328 is standard now on the current Arduino and should be considered the 'base' selection for any new purchase in my opinion.

Lefty

Huge coding is not really the only reason to use the 328.. Take a look at Lady Adas GPS Shield. You cannot (not that i know at least) run GPS, Softserial and SD Writing at once on a 168.. on a 328 it works...

Can I take a 328 and put it in the socket on my Duemilanove in place of the 168 that is currently there?

Can I take a 328 and put it in the socket on my Duemilanove in place of the 168 that is currently there?

Yes you can, that's what makes it such a nice easy upgrade, plug and play as they say. You just have to remember to pick the 328 board selection on the Arduino IDE tools section.

Lefty

Can I take a 328 and put it in the socket on my Duemilanove in place of the 168 that is currently there?

I just did that with my 168 based boards. You'll either need to buy the chip with a bootloader already on it or read about the many ways you can get a bootloader onto the chip.

Note that you can go the other way too, plugging an ATmega8 into the same socket that had your 328 once you decide the code and features are sufficient (for some reason, ATmega8's seem to be especially inexpensive purchased from eBay. Hopefully they're not counterfeit...)

Note that you can go the other way too, plugging an ATmega8 into the same socket that had your 328

I tried that some time ago but couldn't get it working, perhaps you can help me? I used the FT232 Bitbang Method (http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html) to burn a bootloader on a blank ATmega168 and an ATmega88 in my Duemilanove Board. The 168 went fine, i can upload code to it and use it for standalone applications without problems. For the ATmega88 i used the ATmega8 bootloader which also gave me no errors from AVRdude. But which board should I choose in the Arduino IDE for programming an ATmega88 in a Duemilanove board? Is it possible at all? It's just this moment that I realize ATmega88 and ATmega8 could be incompatible...

Problem solved, writing about it got me interested again and I’m ashamed it was so easy to solve…

I made up a new entry in boards.txt:


##############################################################

atmega88.name=Arduino Duemilanove w/ ATmega88

atmega88.upload.protocol=stk500
atmega88.upload.maximum_size=7168
atmega88.upload.speed=19200

atmega88.bootloader.low_fuses=0xff
atmega88.bootloader.high_fuses=0xdd
atmega88.bootloader.extended_fuses=0x00
atmega88.bootloader.path=atmega
atmega88.bootloader.file=ATmegaBOOT_168_atmega88.hex
atmega88.bootloader.unlock_bits=0x3F
atmega88.bootloader.lock_bits=0x0F

atmega88.build.mcu=atmega88
atmega88.build.f_cpu=16000000L
atmega88.build.core=arduino

##############################################################


As a bootloader i used the one of the Ottantotto (the Ardist formerly known as CheapDuino → boards:ottantotto [Electronic Thingies for Fun Stuff]) and all the fuse and lock bits of the ATmega 168 for burning it.

After restarting the IDE and choosing “Duemilanove w/ ATmega88” as a board, everything seems to work (although i won’t do further testing until I try to implement the ATmega88 as a standalone somewhere…)

The Ottantotto-Wiki states, that some Arduino-core-files have to be modified, which I didn’t and it still works. Any ideas if this is really necessary?

Greets, Otacon2k