Stacking Seeed 2.8 TFT Shield with Seeed Bluetooth shield

First let me say I am very impressed with the TFT shield.
I have this connected to an Arduino Uno and have written a couple of applications that provide user interaction through the touch screen. And they work great.

At the weekend I bought the Seeed Bluetooth shield from Radioshack and decided to stack it with the TFT. I set the tx and rx to D0 and D1. I did not modify my software as I just wanted to see if the touch shield still worked.

here is a link to the bluetooth shield that I bought

Good news is that the display was good however the touch was not working.

I took the jumpers off the bluetooth shield so that no tx or rx were selected.

when I ran again the touch kind of worked but it’s scaling had changed dramatically.

I also noted that when the jumpers were on I could not upload to the board

Anyone have any ideas or experience with doing the same thing?

Is it a power issue? I had the board powered off the USB back to my host computer.

I searched the forum but did not find anything and that is why I am posting

Thanks in advance

I searched the

Dear customer,

Bluetooth shield use D0,D1 which is hardware serial port to transmission. But you can change it, might be your codes also used D0,D1 too. So change to software serial port and try again. If you upload the codes, use the board isolation without TFT or Bluetooth shield.

Hope can help you.

Best regards,


Thanks Yuri

You said to change to software serial port, how do I do that?
You also said use board isolation without TFT or Bluetooth, I don’t understand what tht means. Can you ore someone else clarify what that is?

Is there a tutorial somewhere on setting this up?

Since Radioshack is actively advertising the TFT, Bluetooth and Arduino I guess I won’t be the only one asking these questions.

I can help write a tutorial once I understand what to do :slight_smile:

Hi there,

About change serial port you can change the code.
As you see the WIKI told you there are 4 of pins which are unused D0,D1,A4,A5.

#include <SoftwareSerial.h> //Software Serial Port

#define RxD 6
#define TxD 7

This is from example code. You need to change to A4,A5 port.
#include <SoftwareSerial.h> //Software Serial Port

#define RxD 18
#define TxD 19

And then you just need to use jumper wire to connect pin A5, A4 to RX, TX that should be work.

Best regards,


Thanks again Yuri,

I will try that.

Just so I am clear…

I set up the software to use A4 and A5 by changing

#define RxD 6
#define TxD 7


#define RxD 18
#define TxD 19

Then put a jumper wire in A4 and A5 of the socket of the bluetooth shield and connect them to D0 and D1 of the bluetooth shield???
Do I remove the jumpers that are on the D0 through D7 rx/tx selectors?
and where does A4 go to D0 or D1 and A5 D0 or D1?

It looks like after you assign those two analogs as the software serial TxD and RxD you should jumper them to pins on the BT_RX and BT_TX header rows respectively.

In other words:
#define RxD 18 // (Arduino receives data on A4) --> BT_TX (BT Shield sends data on BT_TX)
#define TxD 19 // (Arduino sends data on A5) --> BT_RX (BT Shield receives data on BT_RX)

For more info on reusing analogs, see:
I personally have never used analogs as software serial pins, but I have used them as digitals and they behave fine.

You do not want to connect the software serial analogs or the BT TX/RX pins to D0 & D1 because those are in use by USB/the Arduino IDE.

See the diagram on the wiki page for wiring info:

In looking at the schematics of both products in Eagle it appears that the Bluetooth shield is using ADC1 for its status bit and the touch screen is using ADC1 for X-. This could be why the touchscreen is misbehaving. If you turn off the status bit switch on the BT shield does it behave any better?

Thanks Mikester,

I now have it working.

In the code have:

#define RxD 18 // A4 of Arduino jumpered to BT_TX row
#define TxD 19 // A5 of Arduino jumpered to BT_RX row

PIO[1] is set to N/C (No connection)

I removed the jumpers that connected BT_RX and BT_TX rows to 0 through 7 Pins
then jumped A4 of Arduino to BT_TX row and A5 of Arduino to BT_RX row

I first tested to make sure the bluetooth worked using the slave sketch and used my Apple Macbook pro as the master.
I then connected up the TFT and loaded my TFT sketch, the TFT worked.

I then combined the Bluetooth slave sketch with my TFT sketch and had the data received from the Apple displayed on the TFT

I then removed the USB connection to my Arduino Windows Dev platform and powered up the Arduino/Bluetooth/TFT with a 9v battery

It all worked.

My issue now is that the range on the Bluetooth is not what I had hoped for. I know it is advertised as 10 meters and that is about what I am getting.
For the project I am working on that may work if I have several slave units to receive but would need to keep pairing and unpairing.
Is there any way to increase bluetooth range?

I have a pair of RF boards on order and will see if they have better range.

If anyone wants the full details of how I got the TFT and Bluetooth working together post to this thread and I will put something together.

Thanks to Mikester and Yuri for your help.

Dear customer, … etooth_Bee
Here is Bluetooth Bee WIKI, you can view the codes or protocol to change baud rate with Bluetooth shield.

And good luck.

Best regards,