nopnop2002 / esp-idf-parallel-tft Goto Github PK
View Code? Open in Web Editor NEW8bit parallel TFT & 4-line resistance touch screen Driver for esp-idf using i2s paralell mode
License: MIT License
8bit parallel TFT & 4-line resistance touch screen Driver for esp-idf using i2s paralell mode
License: MIT License
Not sure how else to post this, so I hope this isn't too off-topic. Let's assume that I'm designing a new board (or two) based on an ESP32 module. I have one of the WROOM devboards - but the new design will likely use an S3 when they drop.
Assuming there are enough free GPIOs left, is parallel preferable over SPI? (I'm only enough to remember the days that we thought parallel was the Dog's Danglers and Serial was consigned to telephones. (Data skew? What's that?! Electrons will never travel that fast and IBM PCs will never penetrate the home!)
So yeah, serial has a place - but I'm curious, is there any particular reason to use SPI over parallel on a new design (one that I can just drop a TFT into?)
My only experience is with the Arduino framework and that largely insulates us from the nitty-gritty but this needs I2S and some serious beef so short of going full SBC with all the uses they come with, I figured the ESP32 is perfect.
I bought the ST7789 parallel port 8-bit screen on Taobao or AliExpress, and it was successfully lit.
This is my attempt on ESP32S2
My code comes from the official warehouse of Espressif which supports ST7789. I believe yours should also support it. I hope you can transplant it.
@nopnop2002 Hi, are there plans for ESP32S3 support?
I'm new at using the idf.py commands, i always use de GUI options from VSC through ESP-IDF extension, i want to use all functions to create a nice GUI but how can i add the config to menuconfig ?
On 3.5inch Arduino Display-UNO, the color 0xFFFF appears to be mint green.
First of all I wanted to thank you for your work.
I have a question.
I have a open smart 3.5 tft display with this setup.
(Screen pins-> ESP32 pins)
D0 -> 12
D1 -> 13
D2 -> 26
D3 -> 25
D4 -> 17
D5 -> 19
D6 -> 27
D7 -> 14
RD -> 2
WR -> 4
RS -> 15
CS -> 33
RESET -> 32
Which are the correct pins on each parameter for this to work? Especially the parameter adc_yp and adc_xm
Can you tell me how to display gif on tft screen?
https://github.com/JadedTuna/lcd-dma-issue
https://github.com/espressif/esp-idf/issues/8085
https://github.com/daumemo/IPS_LCD_R61529_FT6236_Arduino_eSPI_Test
https://github.com/moononournation/Arduino_GFX
@nopnop2002 Hello, I wonder if you have any plans for R61529 support?
I am a novice and want to use LVGL, but I don't know how to use it together. Hope to add some clarification
Error compiling i2s_lcd.c, when setting target to esp32.
Because esp32s2 has only one I2S, and the register and esp32 have changes, such as the lack of pdm_conf
i got a tft lcd ili9320
and Wemos D1 ESP32, i have changed RS CS RST pins from 35,34,36 to 15,33,32
menuconfig select 9320, but is doesn't work, always white.
Is it not suitable for OPEN-SMART Products? should i giveup to use another lcd or any recommend driver type?
Can i use for the usb camera live streaming on 8 bit parallel line interface ili9486 lcd
which function will be use for the live streaming of this library ?
You can't tell at a glance if your TFT has a 4-wire resistor touchscreen feature.
An easy way to find the 4-wire resistance touchscreen feature is to perform this sketch using UNO.
https://github.com/Seeed-Studio/Touch_Screen_Driver
#include <stdint.h>
#include <SeeedTouchScreen.h>
// for OpenSmart 16pin TFT
#if 0
#define YP A2 // must be an analog pin, use "An" notation!(LCD_WR)
#define XM A1 // must be an analog pin, use "An" notation!(LCD_RS)
#define YM 14 // can be a digital pin, this is A0(LCD_D7)
#define XP 17 // can be a digital pin, this is A3(LCD_D6)
#endif
// for OpenSmart Shield
#if 0
#define YP A1 // must be an analog pin, use "An" notation!(LCD_WR)
#define XM A2 // must be an analog pin, use "An" notation!(LCD_RS)
#define YM 7 // can be a digital pin, this is D7(LCD_D7)
#define XP 6 // can be a digital pin, this is D6(LCD_D6)
#endif
// for ELEGOO Shield
// for Generic ILI9341
#if 1
#define YP A3 // must be an analog pin, use "An" notation!(LCD_CS)
#define XM A2 // must be an analog pin, use "An" notation!(LCD_RS)
#define YM 9 // can be a digital pin(LCD_D1)
#define XP 8 // can be a digital pin(LCD_D0)
#endif
// For better pressure precision, we need to know the resistance
// between X+ and X- Use any multimeter to read it
// The 2.8" TFT Touch shield has 300 ohms across the X plate
TouchScreen ts = TouchScreen(XP, YP, XM, YM);
void setup(void) {
Serial.begin(115200);
}
void loop(void) {
// a point object holds x y and z coordinates
Point p = ts.getPoint();
if (p.z > __PRESURE) {
Serial.print("Raw X = "); Serial.print(p.x);
Serial.print("\tRaw Y = "); Serial.print(p.y);
Serial.print("\tPressure = "); Serial.println(p.z);
}
delay(100);
}
When can I see this item in the Component Manager registry?
pio run -t menuconfig
board_build.partitions = partitions_example.csv
According to the documentation
https://docs.platformio.org/en/latest/platforms/espressif32.html#embedding-binary-data
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.