Arduino Forum

Development => Suggestions for the Arduino Project => Topic started by: mikehiow on Mar 14, 2012, 01:19 am

Title: Will we ever see higher spec chips in the Arduino
Post by: mikehiow on Mar 14, 2012, 01:19 am
I can't help but notice that even the cheapest of .NET Micro based boards tend to have far more powerful chips with a lot more ram and often 32bit.

Will we ever see a board with more powerful microcontrollers, like Atmel's 32 bit offering?
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: RuggedCircuits on Mar 14, 2012, 01:23 am
Have you considered the Maple?

http://leaflabs.com/devices/maple/

--
The Ruggeduino (http://ruggedcircuits.com/html/ruggeduino.html): compatible with Arduino UNO, 24V operation, all I/O's fused and protected
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: pYro_65 on Mar 14, 2012, 01:26 am
Yes, there is a 96Mhz 32 bit arduino in development, its release is currently unknown I'm pretty sure. But it will be here eventually.
Search the forum for 'Arduino Due' and you might get an interesting read.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: mikehiow on Mar 14, 2012, 09:00 am
Thanks for the replies.

So the Maple essentially looks like an Arduino port to 32bit?

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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Mar 14, 2012, 11:52 am
Quote
I like the idea of a proper 32bit Arduino if I'm honest.

Then the solution is to wait for the ARM based Due. It was promised for last December but it hasn't made it yet.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: RuggedCircuits on Mar 14, 2012, 03:10 pm
Quote
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 (http://ruggedcircuits.com/html/quadram.html): add 512 kilobytes of external RAM to your Arduino Mega/Mega2560
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: pjrc on Mar 14, 2012, 09:11 pm
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....
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 14, 2012, 11:24 pm
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
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Mar 15, 2012, 12:05 am
I can't see why pin mapping should be any problem at all. Am I missing something?
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Mar 15, 2012, 12:59 am

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
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 15, 2012, 04:39 am
Quote
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

Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Mar 15, 2012, 05:31 am
Quote
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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 15, 2012, 10:28 am
Yep. IO can easily be added, grunt cannot.

______
Rob
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: pjrc on Mar 16, 2012, 05:40 pm

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.

Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Mar 16, 2012, 06:22 pm
Quote
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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: westfw on Mar 16, 2012, 06:31 pm
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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: kf2qd on Mar 23, 2012, 05:31 pm
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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Mar 23, 2012, 05:51 pm

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
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: pjrc on Mar 23, 2012, 06:03 pm

...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?
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Mar 23, 2012, 06:24 pm
Quote
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
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 24, 2012, 01:19 pm
Quote
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 :)

Quote
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 :)

______
Rob
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Mar 24, 2012, 04:34 pm
Quote
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
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 24, 2012, 11:32 pm
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 :)

______
Rob
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: kf2qd on Mar 29, 2012, 11:25 pm
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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: westfw on Mar 31, 2012, 02:29 am
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.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 31, 2012, 02:41 am
I just asked this question here

http://arduino.cc/forum/index.php?topic=99072.new;topicseen (http://arduino.cc/forum/index.php?topic=99072.new;topicseen)

As you can see there's been little response and so far not one single concrete idea. Maybe the thread in is the wrong section, or is it just that nobody needs such a beast?

So if we assume that the new Due should NOT run Unix, HDMI etc etc because there are plenty of boards that do this very well that means it should probably be a "Mega on steroids", but the question remains, "What will it do?".

______
Rob

Title: Re: Will we ever see higher spec chips in the Arduino
Post by: CrossRoads on Mar 31, 2012, 03:09 am
"Which could be most compatibly addresses by adding some external RAM to a MEGA. " and likely solved in many cases by just moving up to a '1284, and picking up some more IO pins in the process.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: nickgammon on Mar 31, 2012, 08:03 am

As you can see there's been little response and so far not one single concrete idea.


Well let me tell you why I like the Arduino. It might not be the fastest thing in the world, but remember the original IBM PC ran at 4.77 MHz. So at 16 MHz it's not too shabby,

You don't have to download DLLs onto it. You don't get viruses. You don't have an operating system so complex no-one can comprehend what it does. It boots in about a second, or less. It shuts down by yanking out the power cord. It's powerful enough to talk to SD cards for massive data storage. You can interface LEDs, motors, rotary encoders, LCDs, a huge amount of things. It's cheap. The Arduino IDE in particular makes it very easy to program. Properly configured, it can use a tiny amount of power when inactive.

You compile with a "real" language (C++). You can, if you wish, use fancy features like templates, the STL, classes, dynamic memory and so on. You can extend it with extra RAM, EEPROM, and port-expanders. You can use I2C, SPI, serial, 1-wire, and so on. You can connect USB and Ethernet. With a few extra chips you can have radio communications, or RS485.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Mar 31, 2012, 08:35 am
Nick, I think you have expressed well one of the real advantages to both the success and popularity of the Arduino platform and that is the total lack of having to deal with a operating system when working down at the sketch level. Just me and the chip, and with a little help from the datasheet. I don't have to learn or remember stuff that doesn't have anything to do with what I'm working on.

So while of course the Arduino IDE is very dependent on a PC OS to operate in, once I'm working down at the sketch and hardware level of the arduino, there is a much simpler, approachable, and controllable universe at my control.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Mar 31, 2012, 08:51 am
Yes I think that's why most of us like this sort of platform. I know when I have a problem with say a VB.NET program there are so many levels of complexity that I don't even know where to start some times. And even if you do narrow it down to a framework or system call what are you going to do about it? Raise a support ticket with M$ and wait 6 months?

That's not to say you don't have problems with embedded stuff but as Lefty put it so well it's "Just me and the chip, and with a little help from the datasheet."

Of course all that can still be true of an ARMduino, as long as the feature creep is kept in check (something I find very hard to do :))

______
Rob
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Mar 31, 2012, 07:43 pm
Quote
as long as the feature creep is kept in check

Yes that is the trick. There is so much of "this is easy to do so let's do it" mentality. There is not enough of stepping back and thinking how useful is this and does it complicate matters.

Having said that I don't see why an ARM based arduino has to look very different at the C level than we have at the moment. Sure if you want to stray away from the basics it is a whole different ball game but it doesn't have to be.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Apr 01, 2012, 12:39 am

Quote
as long as the feature creep is kept in check

Yes that is the trick. There is so much of "this is easy to do so let's do it" mentality. There is not enough of stepping back and thinking how useful is this and does it complicate matters.

Having said that I don't see why an ARM based arduino has to look very different at the C level than we have at the moment. Sure if you want to stray away from the basics it is a whole different ball game but it doesn't have to be.


Well I haven't researched it but I get the impression that a typical ARM chip needs quite a bit of initialization code to configure it's I/O, internal buses, and other peripherals. Assuming that is true then that is another level of abstraction and or complexity that a user either has to accept the board designers default or learn. While the Atmel AVR chips do have a little of this (timer0 setup) it's rather simple to understand and or change. Maybe that's overstating something I really haven't seen, but I suspect the reason for the overDue's lateness is all software/firmware/support library/IDE issues rather then hardware problems.

Lefty
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: graynomad on Apr 01, 2012, 01:21 am
Quote
a typical ARM chip needs quite a bit of initialization code to configure it's I/O, internal buses, and other peripherals.

True, I don't know if it's more complicated or that there's just more of it. For example here's some startup code to set the SPI pins

Code: [Select]
/* Configure SPI pins */
#ifdef CONF_BOARD_SPI
gpio_configure_pin(SPI_MISO_GPIO, SPI_MISO_GPIO_FLAGS);
gpio_configure_pin(SPI_MOSI_GPIO, SPI_MOSI_GPIO_FLAGS);
gpio_configure_pin(SPI_SPCK_GPIO, SPI_SPCK_GPIO_FLAGS);

#ifdef CONF_BOARD_SPI_NPCS0
gpio_configure_pin(BOARD_SPI_NPCS0_GPIO, BOARD_SPI_NPCS0_GPIO_FLAGS);
#endif

#ifdef CONF_BOARD_SPI_NPCS1
gpio_configure_pin(BOARD_SPI_NPCS1_GPIO, BOARD_SPI_NPCS1_GPIO_FLAGS);
#endif

#ifdef CONF_BOARD_SPI_NPCS2
gpio_configure_pin(BOARD_SPI_NPCS2_GPIO, BOARD_SPI_NPCS2_GPIO_FLAGS);
#endif

#ifdef CONF_BOARD_SPI_NPCS3
gpio_configure_pin(BOARD_SPI_NPCS3_GPIO, BOARD_SPI_NPCS3_GPIO_FLAGS);
#endif
#endif


In a quick test program I setup there's about 150 lines of this in init.c and another 550 in sam3u_ek.h, that's a lot but it's all done automatically by environment and so can largely be ignored I guess.

Just how the IDE (I'm using AVR Studio 6) decided I wanted SPI instead of GPIO for those pins I haven't figured out yet although maybe that's what SPI_MISO_GPIO means, set to GPIO. Now that I think about it that's probably what's happening and that would make sense, set everything to GPIO until told otherwise.

EDIT: Thinks again, #ifdef CONF_BOARD_SPI probably means that in another file the SPI has been enabled, not GPIO.

But as you can see it's standard C, the constants are different but I guess the Arduino environment will hide a lot of that in the same way that most people don't currently have to know about SPDR, COM2A1, OCR1BH etc.

So presumably the Arduino IDE will hide all this as well and the average punter will just do the normal 2-3 pinMode()s in setup() and carry on.

Quote
the reason for the overDue's lateness is all software/firmware/support library/IDE issues rather then hardware problems.

I would say that's the case, the hardware looks pretty simple. Porting all the libraries would be a big job with many gotchas I think.

Quote
accept the board designers default or learn.

This might be an issue, for example I'm wondering if external RAM is required because as soon as you add one you lose about 30-odd GPIO pins. Does the designer add a chip and screw those that really need the IO or just make the addition of an XRAM board easy?

______
Rob
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Apr 01, 2012, 11:39 am
Quote
So presumably the Arduino IDE will hide all this as well and the average punter will just do the normal 2-3 pinMode()s in setup() and carry on.

Yes that is my point, the hardware abstraction can take place under the hood like it is done now and most users will be non the wiser. There is already the "removal" of the data direction register in the abstraction we have now. The choice of if pins get switched to alternative functions like SPI will be made when you initialise the SPI or use it for the first time.

Quote
Does the designer add a chip and screw those that really need the IO or just make the addition of an XRAM board easy?

No in exactly the same way that this is not done in the Mega at the moment. You can add extra memory as a shield if you want. There is no reason to go adding extra RAM to the base processor, it just adds expense that not everyone will want or need.

The alternative approach is taken by the Raspberry Pi, out of the 56 GPIO pins only 14 of them are brought out the rest are used for internal functions like the SD card, you never get to see those pins. That is why I think the Pi will be for software intensive applications and the Due for physical computing.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: pjrc on Apr 01, 2012, 01:38 pm

Yes that is my point, the hardware abstraction can take place under the hood like it is done now and most users will be non the wiser.


Sadly, the Arduino world is filled with sketches and libraries that directly manipulate the timers and ports.

While pinMode, digitalWrite and digitalRead do provide a nice hardware abstraction, lots of authors are dissatisfied with their sluggish performance.  Several libraries, like Capsense, Ping, OneWire and others legitimately need the performance and can't work well with the 50-some cycles taken by digitalWrite.  But in many other cases I've seen, authors are simply familiar with directly manipulating the ports and do so, even if their code spends much of its time in delay().

Even with the Arduino functions are used, a very AVR trick is used to activate the pullup resistors.  All ARM chips, and even AVR XMEGA, use a separate register to control the pullups, rather than repurposing the output register when the pin is using input mode.  Arduino 1.0.1 will finally provide INPUT_PULLUP with pinMode(), but there is already a vast amount of code written which depends on the AVR register behavior.

When it comes to timers, Arduino provides nothing other than polling with millis() or micros().  A good portion of all Arduino libraries directly manipulate one or more hardware timer, with lots of AVR timer register assumptions built in.  If you look at ChipKit and Maple, very few libraries are compatible.  Usually it's timers.

Arduino has also been long missing a number of other important features.  In their absence, authors have resorted to direct hardware access.  For example, I recently worked on porting (only to Teensy with non-UART "Serial", not a non-AVR chip) a sketch that allowed a specific software package to control several stepper motors.  It was based on a big polling loop that depending on non-blocking access to Serial and the motors.  Of course, Arduino's Stepper library is a fully blocking API (only 1 stepper can move at a time).  Until very recently, transmitting on Serial also blocked if more than 2 bytes were sent.  So the author wrote his own stepper control code, using direct port manipulation, and wrote all the output to a buffer, with direct access to the UART registers to incrementally transmit the buffer contents only when the UART was ready for another byte.  Had Arduino offered something like Serial.available() to know if writing would block, that sketch probably wouldn't have directly hit the UART and might be portable to a future ARM-based board.  But like so many Arduino application, the gaps in Arduino's functionality required direct hardware access.

Eventually Arduino is going to need to provide a more complete API.  It's so very unfortunate that the motivation to design the API with forward thinking towards future platforms hasn't been present all these years.  So many very compelling sketches and libraries have been written over the last couple years.  A great number that do anything "interesting" are unable to use only the Arduino functions without resorting to AVR-specific direct hardware manipulation.

Even today, lots of sketches work on Uno but not Mega.  When/if Due is released, certainly simple LED blink examples will work, but it's going to be take a lot of work for many of the compelling libraries and sketches are ported.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: Grumpy_Mike on Apr 01, 2012, 07:58 pm
Quote
Even today, lots of sketches work on Uno but not Mega.

Yes that is my point. You can't expect to see someone convert all the libraries  ever been written, that is never going to happen. Look how many have not survived the move to IDE 1.0 and correction for that is simple enough.

All they need do is to write equivalent ones to the ones that ship, at the moment, with the basic IDE.
Title: Re: Will we ever see higher spec chips in the Arduino
Post by: retrolefty on Apr 01, 2012, 08:07 pm

Quote
Even today, lots of sketches work on Uno but not Mega.

Yes that is my point. You can't expect to see someone convert all the libraries  ever been written, that is never going to happen. Look how many have not survived the move to IDE 1.0 and correction for that is simple enough.

All they need do is to write equivalent ones to the ones that ship, at the moment, with the basic IDE.


What is clear is that the 'Arduino world' has become much larger then what the Arduino development team and company can completely control for good or bad, that is the nature of popular open source projects. It's certainly understandable for newcomers to the arduino world to be confused why problems like outdated libraries even exists. But I consider that a feature rather then a bug for the arduino platform.  ;)