The AVR-based Arduino is now ten years old, and I think it's time for the AVR's retirement. It was a good controller in its day, but now it's hopelessly passé. The future (AND the present!) is ARM. There is an ARM-based Arduino Due, but what I mean is a Uno replacement. Same price of even cheaper. For instance the NXP LPC824 has:
more I/O
more I2C buses
more SPI buses
more USARTs
a 30 MHz clock
12 A/D channels
12-bit A/D resolution
etc. etc.
yet it's 30% cheaper than the ATmega328P. (It doesn't have EEPROM, but you can throw one in for 20 cents.)
The ATmega328P is dead, or should be. I really hope you'll consider an ARM M0/M0+ for the next Uno version/replacement.
The LPC824 has less I/O pins than a 328P and the same 32kB memory, so those are no advantages.
When you want a board with more I/O pins just for connecting stuff, the 328P is better.
Yes you can have a I2C expander or such on a LPC824, but that's an extra IC...
It all depends on what your project needs.
The UNO is an UNO, and a ARM M0/M0+ board is what it is, all with it's own advantages and disadvantages.
The LPC824M201JHI33 has 29 GPIO, ATmega328P has 23. And I mention half a dozen other points on which the LPC824 is better, at a lower price! Would I want all these extras on a board the same price? You bet.
Advantages and disadvantages, true, but my point is that IMO the ATmega328P is outdated. There's such a thing as progress, right? Today you don't drive the car you had 20 years ago, or watch the TV set you had 20 years ago, do you?
Maybe the Arduino team needs more visionaries...
imho Arduino is the "high level" programming abstraction of the real low level register stuff. And not to forget the shield pin layout.
It is made popular on the AVR series but available on faster AND slower (e.g. tiny) processors and there are several "Arduino" compatible boards that run the software and/or can use the shields. These include ARM processors based boards.
I say YES.
My view is even a bigger in that I think it is time to start moving away from all the AVR parts given that there are alternatives that offer significantly more and better resources at similar and sometimes even better price points.
Also moving away from the AVR allows starting to phase in processors that are not only faster but easier to use for novices since only the AVR has the split memory address spaces that requires special user coding to deal with.
Also, the other processors have significantly more ram.
I place a high value on having const work correctly and more ram.
This means that novices don't have to learn proprietary AVR specific kludges like the progmem macros and their corresponding declarations and access routines since const "just works" as it should on all the other processors.. They also won't have to play games or learn optimizing techniques just to make fit into the part nearly as soon as there are so many more resources available on the other parts. And finally, there are many types of additional applications that start to become possible once there is more ram available.
I think that a board based on the pic32 PIC32MX250F128B would be a great replacement for the m328p based boards.
To me, this processor is what would be used if Arduino were starting all over again.
This part is also a 28 pin DIP so it works great for hobbyists and DIY projects.
There are many advantages of this part over the 328p
A few of the biggest ones being faster, lots more flash and ram, 3v with 5v tolerant inputs, and no more AVR PROGMEM crap to deal with. const works like it should.
Given that it is basically the same cost as a m328p I see little reason to continue on with the 328p.
Here are some more of the advantages of this pic32 part over the m328p AVR:
const "just works" vs having to use the AVR proprietary progmem support
32 bit vs 8 bit
40mhz vs 16mhz (typical values not the absolute max possible on each)
128k flash vs 32k
32k ram vs 2k
DMA capability
native USB support
2 uarts vs 1
2 spi vs 1
2 i2c vs 1
3v with 5v tolerant inputs
About the only big downside to using many of the newer processors including the pi32 over the AVR is that that output drive capability of the pins is significantly lower. While this can be deal breaker for some applications like driving LEDs, for many applications the additional and faster resources are more than worth the price of losing that capability.
My strategy would be to eliminate production of m328p boards, along with releasing a pic32 DIP based board.
There are other AVR based boards for those that still want the AVR.
The clone market beats the crap out of the margins anyway for the m328p boards and a new pic32 DIP based board could open up and new markets with higher margins than the existing m328p boards can offer.
Then, over time, start to phase out the other AVR based products based on shipping volumes.
Eventually moving everything over to the better micro-controllers and leave the 8 bit AVR world behind.
One huge advantage of the ATmega328P is that it's available in a through hole package which means a beginner can prototype with an Arduino board and then be able to easily solder the same MCU in their finished project. Sure there are faster and cheaper ARMs, but the ATmega328P is sufficient for most Arduino applications. For a hobbyist the price difference really doesn't matter.
pert:
One huge advantage of the ATmega328P is that it's available in a through hole package which means a beginner can prototype with an Arduino board and then be able to easily solder the same MCU in their finished project. Sure there are faster and cheaper ARMs, but the ATmega328P is sufficient for most Arduino applications. For a hobbyist the price difference really doesn't matter.
Not over the pic32 part I described in post #4:
The PIC32MX250F128B is also a 28 pin DIP
For the same price as a 8 bit AVR, you get a 28pin DIP package with a much faster 32 bit processor with tons more resources including 128k of flash with 32k of ram and none of the progmem crap to deal with since const works as it is supposed to.
Yes I agree that is an excellent choice for an ATmega328P replacement. It's nice to see there are still some good microcontroller options in a DIP package. I was referring to the NXP LPC824 ARM the OP was recommending, I should have made that clear.
In the bigger picture I think that the free market will resolve this.
If people stop buying the AVR based products, then those products will self retire.
There are many other options available out there, including in DIP packages, so if you want something faster with more resources, buy that instead.
bperrybap:
There are many other options available out there, including in DIP packages, so if you want something faster with more resources, buy that instead.
Use the old "Vote with your Wallet" method.
If you want to buy an Arduino then those options are not on the ballot and voting for the ARM candidate will make a much larger dent in your wallet. So most people will continue to vote AVR. But really the Arduino buyer's vote is insignificant compared to other microcontroller buyers who I'm sure are overwhelmingly moving away from AVR so I think that it is inevitable that the ATmega328P will be retired in the near future. Unfortunately I see the same thing happening to through hole packages.
pert:
If you want to buy an Arduino then those options are not on the ballot and voting for the ARM candidate will make a much larger dent in your wallet. So most people will continue to vote AVR.
I'm not understanding what you are trying to say about the alternatives to m328p AVR based "..duinos" not being "on the ballot".
What I'm saying is if you don't want the 8 bit AVR based stuff and want something better while still using the "arduino" programming environment, just vote with your wallet and buy something else that you percieve to be better.
There are other alternatives to the m328p based duinos.
For example here are 2 alternatives you could buy:
Teensy LC (arm based and DIP compatible) for under $12 USD.
28 pin dip based pic32 PIC32MX250F128B chips pre-programmed with bootloaders for $3.80 USD quantity 1 for DIY solutions.
Both of those offer significant speed and resource improvements over the 8 bit m328 and also have support for an arduino IDE.
And neither of them requires jumping through all the progmem hoops required by the AVR to use constant data.
I think the ZERO accomplishes this... provided it gets sold at a reasonable cost. Only down side is of the ZERO in relation to UNO for me is the lack of EEPROM space to store calibration constants* and older 5V shields.
*Although I just read the note about using a few pages of flash memory as nonviolatile storage. Which is probably sufficient to occasionally write offsets/slope data for calibrating sensors....
Problem of ATMEL ARM is they are not 5V tolerant as all STM32 and NXP.
DIP package are completely obsolete.
Buy a micro in DIP package is more expensive than buying a mini board ready for use with a form factor mini-pro or nano.
This is due to the fact that the manufacturer of these mini board purchased the IC by thousands.
Baloney.
If they were obsolete, the distributors would all have them listed as "Discontinued", "End of Life", etc. and they are not:
with >40,000 pieces in stock.
You want to buy a mini board that is assembled by thousands using underpriced labor and gov't subsized free shipping to undercut the rest of the world, and sure, you can get one cheaper.
Is Atmel will continue to make avr ?
IMHO answer is YES.
Anyway when Atmel will announce the end of avr there will be the possibility of buying millions of units in a last order. It's always the way it happens.
Is the avr technology obsolete ?
IMHO answer is difficult because there is a technical side, a practical side and an irrational dimension.
Technical side:
IMHO answer is NO.
It is often enough to think and avoid costly programming methods in time and memory usage.
Practicality.
IMHO answer is difficult. How long will it continue to exist foundry for 90nm ?
It is an economic problem. I can't answer.
Irrational side:
Much buyers of Arduino board, or other board, are not specialists.
They tend to choose the biggest, the strongest, even if it is useless.
For advanced users still use the same component ends up being boring.
Consequences:
If a board manufacturer (Arduino or NXP or ST or Chinese), mostly sells boards based on ARM it will stop to make boards based on 8 bits micro-controler. Keep a single product line is the solution that allows maximum profits.
Another point: all products created in US or in Europe are copied in China and sold for a very low price.
The only solution is to always introduce innovative products even if they are not really necessary.
If they were obsolete, the distributors would all have them listed as "Discontinued", "End of Life", etc. and they are not:
I think we do not give the same meaning to the word "obsolete".
Probably our culture are not the same side of the Atlantic.
Here, "obsolete" does not mean "not found", it means that it's products or methods of the past.
To day you can always write your mail with a typewriter even it is "obsolete", there always exists that work but I think you're using a PC with a word processor and printer.
adjective
1.
no longer in general use; fallen into disuse: an obsolete expression.
2.
of a discarded or outmoded type; out of date: an obsolete battleship.
3.
(of a linguistic form) no longer in use, especially, out of use for at least the past century.
Compare archaic.
4.
effaced by wearing down or away.
5.
*Biology. *imperfectly developed or rudimentary in comparison with the corresponding character in other individuals, as of the opposite sex or of a related species.
You are correct, my understanding of the word as it relates to electronics does not fit any of those definitions. If a part is still being manufactured & consumed by the mass market and the manufacturer continues to supply and support it, it is not obsolete.
The PIC has some disadvantages - 3.3V output and only 10mA supply current, so of limited use for driving LEDs (could be limited to Red only), small motors, transistors, couldn't drive small telecom relays - so all the stuff that the '328P is good for in embedded projects without needing extra components.
More expensive - $3.15/100 vs vs $2.71/100 (digikey pricing)
Does have nice features for software projects, if you're into writing big software projects.
robtillaart:
For me there is one issue that the AVR does not solve
support for double (64 bit) math - preferably in HW.
I have seen many posts (esp GPS related) where floats just are not precise enough.
I was thinking of writing a library for that sort of thing, but the coding would likely be too complicated for me.
As for myself, I wonder whether floating-point arithmetic really belongs on an AVR. If it were up to me, I would just use fixed-point arithmetic and be done with it.