I've done 5 or so Arduino projects now and am at the point where I think I'm outgrowing the whole pre-packaged platform/shield arrangement. It was great for lowering the barrier to entry of getting into microcontroller projects, and for quickly getting projects off the ground, but I'm really seeing the cost and implementation tradeoffs impacting me more and more these days.
One question that has been bugging me is, why do shield designers and manufacturers leave so little room for other circuit elements in their design? Who really does a project that is literally just an arduino and a shield? Doesn't everyone hook up other inputs and outputs to fully realize the vision behind their project?
If a shield only needs and uses 5 or so pins, why not omit the headers for the other ones, or better yet provide some blank through holes/pads connected to the unused underlying arduino pins for the user to utilize as they see fit?
I know some shields do this to some extent. The Speakjet/voice shield from Sparkfun for example has a relatively large open prototyping section.
It seems like shield designers almost go out of their way to make it more difficult than it needs to be to tap into the pins their design doesn't use, by calling for headers that seem to only serve as a mechanical connection to the arduino, surfacing with a tiny soldered nub you can tack a wire onto but can't make a solid mechanical connection? Or am I missing something basic in my soldering/construction skills? Is there a better way to utilize pins a shield doesn't need?
I know about stackable headers...but wouldn't it be better to provide a more directly solder-friendly set of through holes for tapping into the unused pins?
Again, maybe this is just reflective of where I'm at with my relationship with arduino right now...ready to get off the yellow brick road of arduino + shield = solution and into using the arduino strictly as a dev and prototype platform.