Adafruit 2.8" TFT Touch Shield for Arduino for Teensy 3.1

Not open for further replies.
Here the PCB ;

I have no need to use SD card.... touch screen cs(8) D10 D11 are connected !
or is this missing ?



  • PCB.jpg
    314.4 KB · Views: 598
  • PCB.jpg
    311.1 KB · Views: 358
  • SchT3.1-TS.png
    8.4 KB · Views: 550
  • MissingWirePCB.jpg
    313.8 KB · Views: 281
Last edited:
I did some more tests with Teensy 3.1 - Arduino 1.0.6 and I get following out from sketchbook/libraries/Adafruit_ILI9341;
-The screen color changes only ............
- at graphicstest schreen hangs at "waiting for Arduino Serial Monitor",....

Any tips ?


  • Tests.png
    416.2 KB · Views: 276
Last edited:
On graphictest did you ever plug your Teensy in to the USB port and start up the Arduino Serial monitor? That screen is done as part of the sketch setup:
void setup() {
  tft.println("Waiting for Arduino Serial Monitor...");

  while (!Serial) ; // wait for Arduino Serial Monitor
  Serial.println("ILI9341 Test!");
As for slider not sliding, again I mentioned, I could not see on your board if you have pin 8 hooked up. This is the chip select for the touch controller (I believe yours was the resistive touch).
You should try working through the steps up on the Adafruit learn site:
If yours is the capacitive touch, I have not done anything with that. But I know it requires I2C pins
Hello Kurt
I did the hook-up of pin 8 and I am getting better response now - slider is sliding now...
I follow and try to learn more from web indicated..
- at graphicstest schreen hangs at "waiting for Arduino Serial Monitor",....

That certainly seems to be working.

What happens when you select the serial port (Tools > Serial ports) and then open the serial monitor?
Another thing to test, if you can, is the output of IC5 (AXP803). It's supposed to create the reset signal for the display. If it's working, you should have 3.3V on the "TFT_RST" signal.

That AXP803 chip might have a delay, where TFT_RST is held low for a short time. On the Arduino shield, it connects to the Arduino's reset, to prevent the Arduino board from booting up. But Teensy will automatically boot up very quickly (much faster than any Arduino). Normally fast booting is nice, but if you have something like AXP803 keeping the hardware from being ready for a short time, you may need to add a delay before initializing the display. Usually such problems manifest as code working after you Upload in Arduino, but then they appear to not run when you power the board up without Arduino.
Dear Kurt & Paul,
I finally have everything working and thank you so much for your help.
I think I will go into new version of pcb, to which I will add missing trace to pin 8 & include the use of microSD on the backside of 2.8" display. I must say the TEENSY 3.1 DOES MAGIC !!
Thanks again for all the MAGIC!!
To add microSD card pins to Teensy from back side of 2.8LCD;
TFT display and SD card will share the hardware SPI interface / so pin 11 = MOSI, pin 12 = MISO, pin 13 = SCK , 5V & GRD is clear ***
but RES ?? Where to connect on Teensy3.1?
and is there 3V3 needed ??
Connect the chip select for the sd card, it's pin D4 on the shield. With A1/D15 from the Teensy 3.1 for example.
Last edited:
Thanks for your support !! :)
So here we go again - like this ?
Because TFT display and SD card will share the hardware SPI interface
pins; 11 = MOSI, pin 12 = MISO & pin 13 = SCK,
I do not need to wire-up TLT shield ICSP connector ? Correct ?

And the GND & 5V leading to TLT will be used as well for 3.3V power supply for miniSC_card -correct?


I have almost all wanted working, I can read the .bmp images from SD card and I can see them on TFT screen from .ino sketch file but I'm facing problem getting an .bmp from splashscreen.cpp ...
here is the code;

// START screen settings /

#ifndef SPLASHSCREEN_cpp
#define SPLASHSCREEN_cpp

#include "SplashScreen.h"
#include "BmpSD.h"

SplashScreen::SplashScreen(int xLoc, int yLoc, ILI9341_t3 *ptr_tft,
Adafruit_STMPE610 *ptr_ctp) {
this->xLoc = xLoc;
this->yLoc = yLoc;
this->ptr_tft = ptr_tft;
this->ptr_ctp = ptr_ctp;


void SplashScreen::drawMe(void){

int16_t color0 = ptr_tft->color565( 125, 204, 204); //?? color /
int16_t color1 = ptr_tft->color565( 125, 204, 204); //Logo Color /

ptr_tft->setTextColor(ILI9341_YELLOW); // Mike Oven text//
ptr_tft->setCursor(15, 15);
ptr_tft->println(F("Mike's Screen"));
ptr_tft->setCursor(6, 48);

// Logo to be replaced by .bmp image from SDcard
// for (int i = 0; i < 188; i+=1){
// int16_t color; // select the color according to the face // dark grey
// color=color1;
// for (int j = 0; j < 23; j+=1){
// for (int k=0; k<8; k+=1){
// if ((MM[i*23+j]&(1<<k))>0){
// ptr_tft->drawPixel((j+1)*8-k+26, i+yLoc, color);
// };//if
// };//for
// };//for
// }//for

bmpDraw("Logo.bmp", 10, 0, *ptr_tft); // logo image .bmp //

ptr_tft->setCursor(xLoc+4, yLoc+200);

ptr_tft->setCursor(xLoc+13, yLoc+220);
ptr_tft->println(F("TO SETTINGS"));

while (!ptr_ctp->touched());


#endif // SPLASHSCREEN_cpp

Could you please advice me what I doing wrong..

I get error :
Arduino: 1.0.6 + Td: 1.20 (Windows 7), Board: "Teensy 3.1"
SplashScreen.cpp: In member function 'void SplashScreen::drawMe()':
SplashScreen.cpp:43: error: 'bmpDraw' was not declared in this scope
Maybe one of those other files has the bmpDraw() function?

Could you please advice me what I doing wrong..

Well, you're doing 2 things wrong. There's some unknown issue with what you're doing with the code on your computer. But we can't see your screen.

The other wrong thing is not posting ALL the code. My guess is the missing function should be in "BmpSD.h", or perhaps a library containing that file. Maybe. But I don't have that code. You didn't provide a copy, or a specific link to the place you downloaded it. Can you see how this makes helping you so difficult? Really, I want to help, but you need to post more complete, more specific info about what you're actually doing, for anyone to be able to see what's wrong and offer useful help.
Hello Paul,
You are right - I'm not using "BmpSD.h" but funny thing is in base -.ino file bitmaps work but in splash screen not... - so can not be computer foulth...

Is this the latest version ? of "BmpSD.h"

//draw Bmp from SD card

#ifndef BMPSD_h
#define BMPSD_h

#include <SD.h> //SD Card Library
#include "Adafruit_GFX.h"
#include "ILI9341_t3.h"
#include "SPI.h"
#define CS_SD 15
#define BUFFPIXEL 20 // This function opens a Windows Bitmap (BMP) file and displays it at the given coordinates. It's sped up by reading many pixels worth of data at a time
// (rather than pixel by pixel). Increasing the buffer size takes more of the Arduino's precious RAM but makes loading a little faster. 20 pixels seems a good balance.

void bmpDraw(char *filename, uint8_t x, uint16_t y, ILI9341_t3 tft);
uint16_t read16(File &f);
uint32_t read32(File &f);

#endif // BMPSD_h

Not open for further replies.