Arduino shield for Arduino. No, really.

posted Dec 2nd 2009 7:07am by
filed under: arduino hacks

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!



72 Responses to Arduino shield for Arduino. No, really.

  • tom says:

    You guys must have popped boners left right and center over this one.

  • Dan says:

    Sweet! Now my dim-an-LED-with-a-potentiometer project can be twice as (over)powerful!

  • tom says:

    @Caleb Kraft

    Oh my! I just got an extra life!!

  • rd says:

    Hackaday editor troll status: Confirmed. :D

    Anyway, this could be useful in some situations. For instance, a 20MHz ATMega is just barely fast enough to output VGA video, but there are very few clock cycles left over for other calculations. With this configuration, one Arduino could do all the heavy calculations while the other shifts out the pixel data.

  • tj says:

    If people did more with the Arduino than interface other prefab circuits, or do digital boy scout projects, people probably wouldn’t cringe at the mention of it. Nothing intriguing really comes from any of the projects it prototypes…

  • medix says:

    Props if they actually implement a good bus communication setup (ie. OTHER than I2C) to actually take advantage of the ‘doubled’ processing power.

    (minus)props if they just flash more LEDs. We shall see. ;)

  • Boudico says:

    Don’t let the door hit ya on the way out?

  • IceBrain says:

    This seems to me as those people who buy two crappy graphics cards and SLI them together, when a single card for the same price would be much faster. It’s not like the ATmegas used are the high end in µC computing.

    But this could have an upside: If there is a “master” and a “slave”, the master could switch the slave on and off dynamically, allowing for greater energy conservation even when the whole circuit can’t be put to sleep.

  • peter says:

    @bobob too far dude…

    somebody ban this n00b

  • Ben Ryves says:

    @rd: AVGA gets around 3.3 MIPS at 25MHz
    generating VGA 112x112x4bpp, and I get around 2.7 MIPS at 20MHz generating PAL (composite) 192x128x1bpp, which is quite sufficient for simple games. :-)

  • nave.notnilc says:

    @Icebrain
    not only multi-core but also green? :P

  • StrangeRover says:

    How ’bout this?: Arduino Farm!

  • Warren says:

    I don’t find myself posting comments often. But this article and all of the comments really made me laugh XD Thanks for making my day, hackaday :D

  • djlspider says:

    @strangerover
    to do what?

  • Marco says:

    It’s about time that Wiring got some SMP support !

  • octel says:

    why not just take another commercial arduino board, desolder the shield pins, and solder sockets in their place but on the opposite side?

  • victor says:

    @octel

    because there are no advantages of having extra pins if they all share common pins. Plus programming would be interesting…+

  • Reggie says:

    an extra cpu is useful but extra pins are also very very desirable, this is a very cheap and easy way to add extra pins, hardware uart etc.

  • Chris says:

    Arduinoaday

    NOW I CAN TWEET WHEN I TURN AN LED ON, AND PUT AN LED IN EACH DIGITAL IO PORT!1!!!one!

  • TheDude says:

    Hey everybody!

    Let’s jump on the anti-Arduino-on-hackaday bandwagon! I hate it when I see things I don’t want to see on free websites! Hurrrrr!

  • TheFish says:

    yo dawg i heard you like Arduinos so i put an Arduino on your Arduino so you can Process wile you Process.

  • Gilliam says:

    @djlspider and @StrangeRover
    to make the first(?) folding@home arduino folding group. the one group with the most users active and fewest fold points.

  • epicness says:

    Has someone banned bobob yet?!

  • SIKDIDIT says:

    ARDUINOISMYLIFE.COM

  • bobob says:

    maybe they’re all busy looking for a way to strap THREE arduinos together????

    (and dim an led with the whole mess)

  • mutant says:

    CANT WAIT TO USE THIS FOR MUH LEDS! NOW IF ONLY THERE WERE LEDS IN LEDS! HURR I FINK ARDUINOS R RANDUM!!

  • bobob says:

    i like where you’re going with that mutant!!!!

  • corvus says:

    Wow, I’m not sure if I am more amazed at some people’s hate for Arduino or at the fact that bobob spent more than 30 minutes posting this to hackaday, lol

  • bobobob says:

    bobob.. i gotta say you are one of the crappiest trolls of all time. youve spent almost an hour trying to troll in the comments here with little to no response. i mean, come on. step it up.

  • moo says:

    arduino 2 duo, is out i cant wait for quad cores!

  • Drone says:

    VRRPduino! This is triple-lame because they posted it on the now highly-restricted Instructables site.

  • Gnostus says:

    Arduinos are rad, if you people spent have the mental power putting together cool hacks and gizmos as you did bitching about arduino, hackaday probably would have some filler content to stick in between arduinos(Besides other arduino shields).

    For those of you who are so cool with the hackaday in-crowd that they have to live by the row row fight the arduino code of failatries/gayities, I bid you the award for being the biggest technosheep that was ever herded.

  • Ryan says:

    OH MY GAWD!!! Some people enjoy things that I do *not* enjoy! I must post to the internet making fun of them for it!!!!

    You guys are fucking sad.

    People who program in anything other than ASM are luzers, amirite!?!?

  • Lazlo says:

    Looking forward to this whole shebang being repeated with the mbed.
    then we can all flash leds in 32bit! with a RTOS!

  • Rollyn01 says:

    Hmmm….. If this holds any merits, this could be the gateway to a multi-core arduino. If so, that can definitely be useful in large-scale profects that need a lot of processing resources in a cheap fashion. My question is, can it be expanded to allow for it to use a task managerment system that can support Linux?

  • Rollyn01 says:

    @Lazlo

    Screw my previous post. A multi-shield mbed would kick all sorts of ass.

  • digi says:

    The Arduino is awesome because before it came out, technologists (non-engineers) would use computers and VB to perform trivial tasks. I’d rather see an Arduino post than a dummy talking about a 555 timer and posting a Core2 Duo solution to simple CLI & parsing problem. What is the point of my rant? Arduino is a tool for simple things for people who “should” use simple tools. (Yes, you can quote me on that)

  • Rollyn01 says:

    @digi

    I’m confused. You support Arduino posts but only if they contain simple uses for it? Uhhh… please clarify your statements because you sound almost hypocritical.

  • Rollyn01 says:

    Not hypocritical, illogical.

  • stunmonkey says:

    I can’t wait to see what the next generation Slothra powered by TWO Arduinos will do! ;)

  • yobyfed says:

    Good stuff, This is great for extending I/O pins.

    Oh, and please ignore the people that whine about Arduino’s, Its a fucking brilliant, cheap, easy, accessible development platform. Get us some more Arduino projects please!

  • ericwertz says:

    “Good stuff, This is great for extending I/O pins”.

    If everything looks like a nail to you, I suppose.

  • Jay Vaughan says:

    For us ArduinoSYNTH hackers, this represents a great deal of extreme power. Where once there was one voice of FM synthesis, now there may be 3 .. or 4 .. or ..

  • Ben Ryves says:

    For those claiming this is good for extending I/O pins, what’s wrong with regular I²C I/O expanders or even the old shift register solution?

  • tj says:

    I actually gave a decent justification to the anti-arduino movement in my last comment. Show me something innovative that is prototyped with the arduino and I’ll give it more credit.

    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.

  • therian says:

    Dont worry about too much arduiono. Arduino users just about to get a middle finger, Atmel barely financially stay alive, soon it will eather shift off low cost uC or go out of business.

  • Roly says:

    “Danny Hillis and Sheryl Handler founded Thinking Machines in Waltham, Massachusetts (it was later moved to Cambridge, Massachusetts) in 1983 and assembled a team to develop the CM-1 Connection Machine. This was a “massively parallel” hypercubic arrangement of thousands of microprocessors, each with its own 4 kbits of RAM, which together executed in a SIMD fashion. The CM-1, depending on the configuration, had as many as 65,536 processors. The individual processors were extremely simple, processing one bit at a time.”
    http://en.wikipedia.org/wiki/Connection_Machine

    Um, apart from being a bit of overkill, can anybody enlighten me about what is *wrong* with using a PIC as a smart I/O port?

  • Jlocke says:

    This is a great start to a RAIA system… A Redundant Array of Independent Arduinos.

  • lazlo says:

    @Jay Vaughan

    wErd.

  • drew says:

    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.

  • jm says:

    “Show me something innovative that is prototyped with the arduino and I’ll give it more credit.”

    a mustache-themed hi-striker with fireballs?
    http://www.jmillerid.com/wordpress/category/crushtoberfest-09/

  • Reggie says:

    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.

  • NemSim says:

    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?

  • duuuurp says:

    “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.

  • tj says:

    @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.

  • alt says:

    The Propeller micro-controller from Parallax has 8 cores. It laughs in the face of this mutant Arduino abomination.

  • tantris says:

    @rollyn01: running linux on an arduino cluster? unlikely. instead of stacking a dozen or more avrs, you might as well get an arm.

  • therian says:

    @tj
    Python for uC ?!!! I cant imagine act of such evil, it will be slower than lego windstorm

  • Rollyn01 says:

    @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.)?

  • Rollyn01 says:

    BTW, didn’t someone loaded CP/M on a BASIC stamp cluster? I know I saw it on HaD once.

  • cantido says:

    @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??

  • Roly says:

    @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. :)

  • Rollyn01 says:

    @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.

  • Rollyn01 says:

    @alt:
    I can’t beleive I misssed your comment. lol.

  • RAGE says:

    Well I got 73 Arduinos and some ducktape

  • rusty says:

    adruino cluster.

  • Gösta says:

    http://www.instructables.com/id/Core3duino/

    This is the right stuff. Everybody stop complaining and build something instead.

  • Leave a Reply

    XHTML: You can use these tags: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Hack a Day serves up fresh hacks each day, every day from around the web as well as hacking related news.

    Send us your hacks






         




    Hacks

    Resources