This is a small project to create an adapter to use with the Arduino UNO and the TFT shield.
The adapter is needed because the TFT shield covers all the UNO GPIO headers. This means that those GPIO pins that are available for some other use are not accessible, so the TFT shield cannot be used with any other components, such as sensors. In this case the adapter was needed to use the shield with a GPS receiver.
Although the shield covers all the UNO headers, it does not use all the pins. This particular shield does not use digital pins 2, 3 and analog 4,5. Also, pin 12 is available if not using the micro SD. Of course, the ground and power pins can be shared with other devices. So it is useful if these pins (or some of them) can be brought out to headers on an adapter. In this example I have chosen to bring out D0, D1, D2 and D3, as well as +5v, +3.3v and two Gnd.
Note that the unused pins are different on different models of the TFT shields, so the adapters can be customised to the particular TFT shield in use, as well as the project requirements.
The adapter is built from a prototyping board that supports double stacking. Long-pin female headers are installed as usual to provide the through connections for the TFT, and two 4-pin, 90-degree male headers are installed at the end of the board for the external connections. Wiring is then run from the 90-degree headers to the corresponding points on the prototyping board.
This project mounted the headers to the last row of the prototyping board, providing a total of 8 pins using two 4-pin headers. There are more spaces available on this row, but using them creates some issues: they will interfere with the ICSP header, they might interfere with the mounting holes, and D0 (Rx) is the last hole on the end row and can't be used for anything else. These problems could be overcome, and a total of 11 pins brought out, if the headers are set back from the end by a row or two. This makes the connector pins slightly less accessible. An additional 4 pins are available in the end row if access to the ICSP header is not going to cause a problem.