Arduino shield for Arduino. No, really.

We’ve been accused on more than one occasion…okay, pretty much every single day…of harboring some kind of creepy Arduino love affair. The topic does come up an awful lot here, we’re not oblivious to that, and had been patiently waiting for April Fool’s Day to post an article lampooning the whole situation, both ourselves and critics alike, so that everybody could have a good laugh (or possibly annihilate the entire planet in the resulting flame war, we’re not sure). And what could possibly make for a more self-referential joke than an Arduino shield…for Arduino?

Truth, as it turns out, is stranger than fiction. “Core2duino” is — seriously now, no joke — an Arduino shield containing a second ATmega microcontroller and full complement of I/O pins. The two chips in this Young Frankenstein-esque assemblage coordinate over the I2C bus, providing, at least in theory, more processing power, more I/O, and perhaps a degree of fault tolerance. In reality, we’re pretty skeptical, but do have to give them props for a great Instructable, detailing the whole process start to finish with Eagle CAD files, board etching and drilling, and advice on where to score free Cosmopolitan magazines (it helps “if you know any women,” we’re told).

There’s no indication whether this works with stacking headers to allow for an Arduino shield for Arduino shield for Arduino, or perhaps some Möbius strip-like endless stack of Arduinos. Feel free to discuss in the comments. We’ll be waiting in our concrete bunker 37 miles away!

74 thoughts on “Arduino shield for Arduino. No, really.

  1. the FAT libraries used to interface to an SD card take up almost all the available program space of a 168. I know we’ve got 328s now, so you can have your FAT and still more left over than the 168 had, but still, write up a 168 to be the go-between for an SD and your 328, and you’ve got all your 328’s room back.

    Or use the second chip as intelligent storage.

    ThingM has a couple of smart LED products that run on ATTinys, interfaced over I2C. This opens up that kind of off-loading to beginners, by being able to program both chips in the Arduino environment.

    You can use multiple I2C devices on one bus, but you can’t (as far as I know) do the same with SPI. So use your first Arduino to interface with the Ethernet shield, your second to interface to the SD card, and you can use the two together by passing stuff over I2C.

    This may all be a bit kludgy from the standpoint of an expert, but to beginners, two ATMegas together open up a few possibilities.

  2. Of course there are shift registers and port expanders, that’s fine for all the real pretty people with all the brainz in non-arduino world that know how to squeeze the nutz out of their fpgas and arm9 chips and interface them with every esoteric IC out there.

    For us arduino numpties its just as easy to add another atmega chip and have done with it, all the code is familiar etc etc. It might be a sledgehammer to some but to others its just plain easy.

  3. Would your lives truly be better without an Arduino existing? If you don’t like something like this just don’t buy it. It’s not gonna make AVR use illegal. Sure circuits that just blink LEDs are lame, whatever. Does that mean you think sharpies shouldn’t exist because the bathroom at your Wal-Mart is covered with genitals?

  4. “People who can’t code assembler aren’t “luzers”..they just produce poor quality software because they don’t understand how compilers and hardware execution work.”

    Untrue. I can code assembler but I don’t *like* to. I code in C because it makes a hell of a lot more sense for lots of applications.

    Arduino seems to me to be a higher powered BASIC Stamp…and good for use in applications requiring such a device. I got my intro to uCs with stamps, and I probably would have picked up an Arduino if I was just starting out again. Having such a HUGE online user base and followers willing to help n00bs is easy to find attractive.

  5. @duuuurp: Me too, I actually use python though because I work with a lot of data sorting and database conversion as of lately.

    I do stuff in ollydbg sometimes though.

    I liked the $7 board showed here recently because it makes more sense than a $30 board that does the same work load.

  6. @tantris:
    I just figure if linux can be shoved into even the most esoteric of uC-powered devices, then why not a cluster design with a bios that mimics the ones used for most PCs? I mean, isn’t the bios the source of info needed to run any OS( with the ROM providing the specific commands for the OS to use the PC’s arc.)?

  7. @Rollyn01

    >Hmmm….. If this holds any merits,
    >this could be the gateway to a
    >multi-core arduino.

    That would be for Atmel to decided.. “Arduino” make PCBs and some munged up IDE, there’s no serious R&D going on there.
    Atmel have perfectly capable parts for bigger projects.. and they have such a wide range of parts that you can pick the right one for “the specific project”.

    >If so, that can definitely be useful in >large-scale profects that need a lot of >processing resources in a cheap fashion.

    If you need “lots of processing resources” you don’t use a “micro controller”.

    >My question is, can it be expanded to allow
    >for it to use a task managerment system
    >that can support Linux?

    Eh? You make zero sense. To run a reasonable UNIX you need a 32bit processor, an MMU etc.. the ATmega is an 8bit microcontroller. If you want to run a multitasking, multiuser unix operating system why would you use a microcontroller??

  8. @drew, @duuuurp – excellent points.

    It’s a stupid argument because boards have been populated with communicating sub-systems since the Altair. Programming a second slave CPU is simpler than learning to drive an SIO (&c) from a Z-80 CPU. At the price of PIC’s it makes sense to use one for each logical function and let them intercommunicate, perhaps through a boss processor.

    Never mind what you can do with two, how many can be reasonably stacked together?

    You can write crap code in any language. My first love is assembler, but I write in high-level languages where they are more suited to the task. BASIC was an introduction that people grew out of as they understood its limitations, and so it will be with the Arduino.

    The micro computer in its various forms is now available to anybody with the slightest interest, effectively free. People like dancers who want lights to flash when they move, who know nothing about electronics or programming generally, are having a go, so its bound to be chaotic and unsettling to older hands.

    The “problem” of a popular component or system is always only temporary. :)

  9. @cantido:
    Your first point, I can accept that. Your second point, maybe. While it may be true that for powerful applications, micro-controllers aren’t the way to go. Then again, Google uses low-end processors and micro-controllers for their search engine servers, scale is more about how you’re applying the power to the problem than what power you apply.
    Lastly, I said Linux, not Unix. Unix has a more strict requirement on the specs a chip needs to run it. Linux, on the other hand, is being run on things that have below less-than-low specs that would be choked by an even more crippled version of windows 98. As such, a task management system that can keep track and assign threads and commands to different chips in a stack that can look as if it’s running a program concurrently, would make the OS run like it would on a single, more powerful chip with better resource handling.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s