Will we ever see higher spec chips in the Arduino

I like this, although I'd be weary committing time to something potentially problematic - how developed are these, and how wide is their use?

I like the idea of a proper 32bit Arduino if I'm honest.

Don't know the answers to the above, but I'm not sure a "proper 32-bit Arduino" will be any less "problematic". Most likely you are worried about compatibility with libraries and existing code. The Due will have incompatibilities, I am sure, because it is fundamentally a different processor under the hood, plus it is a 3.3V processor so will have a basic hardware "incompatibility" right out of the gate.

This isn't to say it's going to be a problem -- it's a new product going in a new direction and it shouldn't really be expected to be 100% compatible with everything that's come before it. That would just weigh down development like an anchor.

I would view the Maple (and others...) the same way. It's different, but similar. It takes some learning to appreciate the differences, but Arduino takes learning no matter what!

--
The QuadRAM shield: add 512 kilobytes of external RAM to your Arduino Mega/Mega2560

Indeed, just because it's an official Arduino board doesn't mean it will be 100% compatible.

Consider Arduino Mega. For nearly a year, almost no major 3rd party libraries supported it. Even some of the ones shipped with Arduino didn't work.

Arduino Mega support in many of the more complex libraries is a result of my porting efforts for Teensy. Firmata, which now ships pre-programmed on all Arduino boards, would be a good example of a library which became compatible with many other boards only because I added a hardware abstraction layer in the process of porting it to Teensy. I've ported several others over the last couple years, when clearly nobody else intended to do so.

That's just slightly different AVR chips. The situation will be much harder for a completely different chip. Look at the library compatibility lists for Maple and ChipKit. They're short lists. It's not impossible, but it does take a lot of time and effort to port so much code to very different hardware. Believe me, I know....

In fact the Due can never be 100% compatible, even if they can map pins to the correct place (unlikely but maybe) and boost them to 5v (easy with digital IO but unlikely they will, probably impossible for analogue IO without a lot of external HW) there is the current-handling ability of the ARM pins, most are only a few mA and nowhere near the 20+mA we expect from an ATmega.

I'm dying to see how they handle this. The photo shows a Mega look-alike so maybe they have got a workable pin mapping, but the other issues may cause a fork in the product line.


Rob

I can't see why pin mapping should be any problem at all. Am I missing something?

Grumpy_Mike:
I can't see why pin mapping should be any problem at all. Am I missing something?

I agree, other then voltage and current level differences, pin mapping should be among the more easy things they will have to deal with to make the Due more Arduino like. I'll try and keep an open mind, but I suspect I will not be an early adopter of the Due board, assuming it does ever get released.

Lefty

I can't see why pin mapping should be any problem at all. Am I missing something?

I think the SAM has fewer PWM pins (10?) but you're right everything else should map easily, as long as you dumb it down to be similar to a Mega.

That said, if for example you use the external RAM interface (even just for 8-bit access) you lose some ADC inputs, likewise with using PWM pins, there goes more ADCs.

Also, I haven't counted but if you dedicate the SD interface to an SD card (and you would be crazy not to) you will lose 6 IO pins and I think that (along with the XRAM) brings it down to < the 54 a Mega has.

TXD2 and ADC12B0 are both on the same pin and not muxed to any others, I guess that's not any different to A4/5 and I2C on a standard Arduino, you have on or the other but if you want to say put an RS232 transceiver on the TX pin you have a problem.

Anyway, I doubt the Due will have any of the above features and as I said if you just create a simple Mega-look-alike it should work well.


Rob

doubt the Due will have any of the above features and as I said if you just create a simple Mega-look-alike it should work well.

Yes I would agree with that.

But to my mind the Due is not about sheer numbers of GPIO pins, it is about the speed and internal memory. This opens up the possibility of using it for projects that currently beginners think the Arduino is capable of doing. Stuff like MP3 decoding, web cam interface, audio record and playback, image processing, LCD graphics display driving, digital signal processing, FFT and recognition and so on. The sort of stuff young people think a computer should do easily.

Yep. IO can easily be added, grunt cannot.


Rob

Grumpy_Mike:
But to my mind the Due is not about sheer numbers of GPIO pins, it is about the speed and internal memory. This opens up the possibility of using it for projects that currently beginners think the Arduino is capable of doing. Stuff like MP3 decoding, web cam interface, audio record and playback, image processing, LCD graphics display driving, digital signal processing, FFT and recognition and so on. The sort of stuff young people think a computer should do easily.

Yes, indeed. But it's going to take so much more than just a chip to make these things happen.

At the very least, Arduino Stream and Print classes will need to support some way to connect together like "pipes" (probably leveraging DMA), so data incoming on a stream gets automatically pushed into a mp3 decoder and/or signal processing library, and its output stream gets automatically pushed to a I2S output.

An incredible amount of software work is needed. Nothing impossible, but a huge amount of tough work and much of it focused on good performance. That seems very unlike the current pace of Arduino software development.

But it's going to take so much more than just a chip to make these things happen.

Yes it will take the community so when we have the basic hardware you can go with all your fancy pipes if you need them. Personally I don't think you do, you just need to know how to program properly.

Maybe y'all should just port Processing to Rasberry Pi/beagleboard/beaglebone/pogoplug/etc instead.
I'd somewhat prefer Arduino to own the niche of doing things that people have forgotten than computers can do.

It is possible that some of the folks that want more power/memory/etc really need to look to something in a MICROPROCESSOR and a more complex system.

Personally, for a system needing a bit mire power I would actually look into using a Z80/Z180 processor. I have a background in Z80 so they would be a nice fit.

When you start needing more power your precise needs are going to be very different from the next person because of the specifics that you need. Maybe you need a bunch of analog I/O, then next guy has no need for analog but wants a bunch of didtal I/O.

The Arduino is so useful because it brings out all the power of the 328 in a simple layout. There are very few trade-offs (dedicated reset and serial pins) and we have access to the chip with very inexpensive tools thanks to the Arduino team and Atmel.

westfw:
Maybe y'all should just port Processing to Rasberry Pi/beagleboard/beaglebone/pogoplug/etc instead.
I'd somewhat prefer Arduino to own the niche of doing things that people have forgotten than computers can do.

I'm in this line. I have a bad feeling that the whole Due concept could pull the arduino platform into a direction away from what made it so successful in the first place. If they can support two rather independent IDE platforms then maybe they can pull it off, but if it's somehow shoehorned into a larger single IDE I think we could be in for a rough ride ahead. I can easily ignore the Due when released if I choose to just by not buying one, but I can't ignore the existing 8 bit IDE if its drastically changed to support the Due.

Lefty

retrolefty:
...but if it's somehow shoehorned into a larger single IDE I think we could be in for a rough ride ahead. I can easily ignore the Due when released if I choose to just by not buying one, but I can't ignore the existing 8 bit IDE if its drastically changed to support the Due.

If we ignore its many bugs, the MPIDE used my ChipKit is a pretty good example of repurposing the Arduino IDE to work with a 32 bit boards and remain compatible with 8 bit Arduino boards.

Even on Arduino, there's lots of projects, shields and libraries that do fairly complex stuff, usually assisted by off-chip hardware. How is that so much different from the IDE supporting a more powerful chip which can do some of those things in its own software?

Even now, the Ethernet library is being extended with better support for protocols like DHCP and probably soon a library for HTTP.... on 8 bit Arduino.

I just don't understand these doom-and-gloom predictions. Maybe you could elaborate in more detail?

I just don't understand these doom-and-gloom predictions. Maybe you could elaborate in more detail?

Not a predictions, we have not had enough information provided to do that. Just a case of a feeling that the Due project could have unintended consequences of the existing adruino platform. This is not my first rodeo and one shouldn't criticize the soup before tasting it, but in a vacuum of information one can be concerned.

Lefty

more power I would actually look into using a Z80/Z180 processor.

I used to love Z80s, dream about the Z180s and built a large board with a 64180, banked memory and the lot. I often think of making a retro board but I wouldn't do it to get more power (unless you mean the 20Amps the board would draw :slight_smile:

but I can't ignore the existing 8 bit IDE if its drastically changed to support the Due.

Yes you can Lefty, just use one of the better options that currently exist. I downloaded AV Studio 6 the other day and that's fantastic (at first glance anyway, but of course no preloaded Arduino libs etc) but even a good editor and a make file is better that the IDE.

I can't imagine the current IDE can survive ARMageddon unless they fork the dev tools and keep 8-bits separate to 32-bits, that would be a mistake I think.

I guess we just have to wait to find out, hopefully it will be in this life :slight_smile:


Rob

Yes you can Lefty, just use one of the better options that currently exist.

Actually for me the arduino IDE is the best method for me to program my projects. As 'best' is hopelessly a subjective opinion that depends on ones objectives, experience, and preferences. As I'm an experienced hardware type that has learned just enough programming skills to get along, the arduino IDE is something I feel comfortable with and don't wish to learn or adapt to a more 'powerful' IDE. Choices are nice as long as I get to choose using the criterias most important to me.

Lefty

Yes I shouldn't knock the IDE too much, it's simple and clean and appropriate for it's target audience I think. While environments like those I mentioned are "better" that doesn't mean they are right for the typical Arduino user, TBH if they used Notepad++ and a makefile Arduino would not be the turn key app is currently is and I suspect it would not have gone very far :slight_smile:


Rob

The Arduino environment is a small, fairly clean and uncomplicated tool for prototyping with some of the Atmel chips. It doesn't require a whole lot of setup, (I remeber trying to use the old Microsoft tools under CPM on a Z80, there were a number of other tools that were developed that made it a lot easier and less frustrating...) and does one thing rather well. I don't think it would take a whole lot of modification to make it work with other processor families, some modification/changes to the boards file such as the identification of the compiler to use for the chip being programmed. On the other hand, if it were to make the Arduino IDE harder to use thenit would probably be a real negative. The only other microcontroller I have worked with was Basic Stamp and the Arduino Environment was a whole lot more usable, and a lot less limiting, in my opinion.

Perhaps the Due should have a DueDuino enviromnment that would be similar, but dedicated to the Due. A clean, dedicated environment in parallel with Arduinio.

All things considered, it's not clear to me what applications NEED a "higher spec chip"

I've become somewhat depressingly aware that there are a lot more Arduino-like clones that are "possible" and "interesting", but not really "necessary" or even "good for the Arduino community as a whole. Xmega; MSP430; PIC24; Coldfire; 8051(in several versions); half-a-dozen different ARMs (CM3, CM4, CM0, CM0+. Not counting the ones that already exist); Renesas...

I can't think of a compelling reason for most of them. The most common limitation that current Arduino users seem to run into is RAM. Which could be most compatibly addresses by adding some external RAM to a MEGA. Which is sort of boring.