Lots of shields and not enough pins


Kind of a noob here so please be gentle. :-)

I'm throwing around ideas for a project that'll require 4 different sheilds on an Arduino Uno. My problem is the shields take far more pins than the Uno has available and they step all over one another. Here is a list of the sheilds that I'm thinking about using.

Practical Maker PWM Shield: Will be used for LEDs, motor control, and firing relays http://practicalmaker.com/products/arduino-shields/pwm-shield-assembled

SeeedStudio LCD Shield: General display output. http://www.seeedstudio.com/depot/28-tft-touch-shield-p-864.html

SeeeStudio SD Card Shield: Will be used for data logging http://www.seeedstudio.com/depot/sd-card-shield-p-492.html?cPath=109

Arduino Ethernet Shield: Will be used for remote access and monitoring. http://arduino.cc/en/Main/ArduinoEthernetShield

For example the LCD shield takes nearly every digital and analog pin on the Uno which leaves nothing for the other shields. My thought was to use a Mega 2650 since it has enough digital and analog pins for all of this and connect the shields to it with wire jumpers. I assume I'll have to go into the libraries and remap the pins in order for this to work.

Is this even possible???

Otherwise the only thing I can think of is I'll have a Uno for each shield and then I'll have to use something like wireless networking or RS485 between them so they can talk to one another. That'll greatly complicate the project and programming involved which is something I'd rather avoid.

Any thoughts would be greatly appreciated.

Best regards, The Dude0901

There are LCD modules that are driven via a serial line or i2c bus.

I remember seeing an Arduino clone designed for use on a quadrotor, which included an LCD and SD card. From memory it was not that much more expensive than a UNO, but I've never bought/used one and may be mistaken about the price.

There are H-bridge motor drivers available which are free-standing boards rather than shields and would be connected up by wires. As long as you use an Arduino with enough pins available, you could use something like that. Or use a shield but, instead of stacking it, connect it entirely by wires so that you can use arbitrary pins.

One thing you might think of doing is to step a little outside the Arduino inner circle, and go to a 3rd party main board with more capability built-in. Eg, the Netduino Plus can mount Arduino shields, and has both ethernet and SD card built-in, but unfortunately it's programmed in the .NET, rather than Arduino, framework. There are probably several other choices, if you look around.


As others have mentioned, the LCD can be handled by using an I2C board, which only takes 2 pins, and is a bus, so you can hang other I2C devices off of it.

Another thought is the Mix UP: http://smartmaker.org/wiki/Products:MIX_UP. The folks who made Mix UP, also make a larger system that Mix UP is a part of: http://smartduino.com/.

There was some dust-up during the initial kickstarter campaign for smartdunio that the Arduino folks disputed some claims in the original literature that implied the people founding smartduino were employees of Arduino. Hopefully things are settled, and this post mentioning them won't disappear....

It may make sense depending on the project, to break things up so that you don't have one microprocessor trying to control so much stuff. Perhaps having one brain micro-processor, and several slaves, one for the lcd, one for the SD card, and one or more for the motors/pwm.

My two cents, it seems you have stepped away from the UNO and realized the Mega is the proper choice for number of pins you need.
Look at TIP120s for motor control, replacing replays, and LED control. Try adafruit’s 2.8" TFT with an SD card slot. Ethernet you are stuck. You will need an impressive power supply.

If you have pins you want to secure outside of the headers, don’t forget my screw shield kit. $40 includes mailing to US locations.