Skip to content

Instantly share code, notes, and snippets.

@MazeW
Last active October 17, 2024 19:08
Show Gist options
  • Save MazeW/80cbdd4476d27a4e29491c8038855849 to your computer and use it in GitHub Desktop.
Save MazeW/80cbdd4476d27a4e29491c8038855849 to your computer and use it in GitHub Desktop.
Connecting an IPS TFT display (ST7789) to an arduino nano and testing image output.

Guide on connecting a ST7789 display to an Arduino Nano.

I recently decided to order an arduino nano and a tft display from AliExpress. When I looked up online it took me some time to find a clear guide how to connect the display to the arduino, either the display had different pins or it was a slightly different model, but with some trial and error, I managed to get it to work.

What you'll need for this:

  • 1x Arduino Nano
  • 1x AdaFruit 1.3" 240x240 ST7789 display
  • 6x jumper wires or whatever else you can use to connect

Connecting display to the arduino

Connect the display pins to arduino like so:

  • GND to GND
  • VCC to 3V3
  • SCL to D13
  • SDA to D11
  • RES to D7
  • DC to D9
  • BLK to GND if you for some reason want to turn off the backlight, I left it as is

alt text

Testing the display

Go to Tools->Manage Libraries and search for gfx install the AdaFruit graphics library and then search for ST7789 and install the display library.

#include <Adafruit_GFX.h> // graphics library
#include <Adafruit_ST7789.h> // library for this display
#include <SPI.h>
#define TFT_CS 10 // if your display has CS pin
#define TFT_RST 8 // reset pin
#define TFT_DC 9 // data pin

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);

void setup() {
  tft.init(240, 240, SPI_MODE2); 
  tft.setRotation(2); // rotates the screen
  tft.fillScreen(ST77XX_BLACK); // fills the screen with black colour
  tft.setCursor(10, 10); // starts to write text at y10 x10
  tft.setTextColor(ST77XX_WHITE); // text colour to white you can use hex codes like 0xDAB420 too
  tft.setTextSize(3); // sets font size
  tft.setTextWrap(true);
  tft.print("HELLO WORLD!");
}
void loop() {
  
  }

And that's basically it! You've successfully connected a ST7789 display to an arduino nano!

@MazeW
Copy link
Author

MazeW commented Oct 17, 2024

I am using an Arduino Nano ESP32, is the wiring the same?

Not quite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment