Stacking multiple shields.

Hi, is it possible to stack multiple shields. for example I want to stack a ethernet shield, and xbee shield from spark fun on top of an arduino uno. Didn't find anything on google. Thanks!

caleb121341: Hi, is it possible to stack multiple shields. for example I want to stack a ethernet shield, and xbee shield from spark fun on top of an arduino uno. Didn't find anything on google. Thanks!

That's the point of shields - but just because you can, doesn't mean it will work.

The problem depends on whether and what pins each shield uses, and how they are used. If two shields share the same pin, then there might be problems. Ground and power pins are generally ok (so long as you don't exceed the Arduino's current supply capability - which isn't much), but pins for data and such can be problematic, depending on how they are used by the shields in question.

So before you stack shields, it is best to look and see what pins are being shared, how they are being shared, and why. It may be possible (depending on the board and your hacking skills) to modify one or the other shields to move that pin's function to a different pin, if needed (you would also need to update the code). This won't work for everything (certain pins have special functions that can't be replicated by other pins, for instance), but it can work for a lot of things.

Worst case scenario, if the pins can't be easily remapped (but if it looks likely to work if it could) would be to connect the boards via jumper wires instead of stacking (that way you can route the pins however you need them to be). Of course, this isn't "plug-n-play" nor is it compact, but it is an option.

Another caveat to watch for: Depending on the shield and how it is constructed, be careful as you stack the shields, especially the first shield on the Arduino; because the Arduino uses a regular-size USB connector, sometimes shield that go on top can "short-out" on the USB connector's metal case (this was common with prototyping shields). This issue can crop up on any shield, though; just make sure parts below aren't coming into contact with the bottom-side of the shield above.

Finally - some shields can't be stacked (or need to be the top-most in the stack); these generally include LCD shields, and some motor shields. There are, for instance, some motor shields out there that have heatsinks on the motor driver ICs that prevent you from stacking anything on top. There are also motor driver shields that, while things can be stacked on top, may have ICs that dissipate a lot of heat, and that heat could get trapped between the layers, so to speak - and cause overheating (you may need or want forced-air blowing through the stack, then).

You might have to connect the second one with cables, but yeah that's kinda the whole point. You should be able to stack them. (see 4th photo - that might as well be sitting on top of the ethernet shield.)

caleb121341: Didn't find anything on google.

That's a surprise. I would have thought stackable shields is one of the most significant features of the Arduino sytsem.

It pays to carefully plan the pin allocation. A colourful Excel sheet helps a lot.

Using Google is a skill... part of becoming a good programmer is learning that skill. Part of the skill of Google is knowing when you've asked a complicated question, and it's time to start reading. To fully answer the OP's question on Google, that's all you have to do - lots of reading of the results. It's not like asking Google for the time in London. Google can't just give you the answer to a question like this. Knowing how to troll through the information and get what you need to solve your problem is why programmers make pretty good money. Everyone should do what they can to develop that skill - don't be afraid of reading, possibly for hours on end. (works good I think, some silly image results too) (also worked pretty well) (exact text from the first post, also works kinda well)

The answer is there, but it might take a few hours to understand it.