Page 1 of 1
Lolin D32 Pro with an ST7735S 1.4 128x128 SPI TFT display
Posted: Sun Dec 16, 2018 10:16 pm
by ldaponte
I've been unable to get the ST7735S TFT display to work with the D32 Pro board. I've found a few ST7735 python drivers but none of them seem to work. Last driver I've tried is
https://bitbucket.org/thesheep/micropyt ... /st7735.py.
from machine import Pin, SPI
import st7735
display = st7735.ST7735(128, 128, SPI(2, baudrate=20000000, sck=Pin(18), mosi=Pin(23), miso=Pin(19)), rs=Pin(27), cs=Pin(14), rst=Pin(33))
display.fill(0x7521)
display.pixel(64, 64, 0)
Display remains white. I'm using a WEMOS TFT cable between the D32 and the TFT.
The driver chip in the TFT is the ST7735S. I've found ST7735 and ST7735R drivers but neither work. Have not tried getting this to work with Arduino yet, would rather use MicroPython.
I've tried slower and faster baud rates.
Thanks
Larry
Re: Lolin D32 Pro with an ST7735S 1.4 128x128 SPI TFT display
Posted: Mon Dec 31, 2018 7:02 am
by echoshack
I have modified the Adafruit Arduino code, tried to direct msg you but did not get a link. It works well may be easiest to test to make sure your devices & wiring are OK. Can send to you if we can connect.
Regards Tony
Re: Lolin D32 Pro with an ST7735S 1.4 128x128 SPI TFT display
Posted: Mon Dec 31, 2018 9:15 am
by fdufnews
ldaponte wrote: ↑Sun Dec 16, 2018 10:16 pm
baudrate=20000000,
I've tried slower and faster baud rates.
You surely shall slower the baudrate. ST7735 datasheet gives a serial clock not shorter than 66ns (that's 15MHz).
While testing (maybe on breadboard) you'd better slow down to 4MHz just to be sure.
Re: Lolin D32 Pro with an ST7735S 1.4 128x128 SPI TFT display
Posted: Mon Dec 31, 2018 12:05 pm
by OutoftheBOTS_
I use a ST7735 160x128 spi screen on Lobo port with his display module. see
https://github.com/loboris/MicroPython_ ... ki/display
Although his display module does have a st7735 driver it didn't work with my screen so I uses dis custom setup and it work great
here's my custom setup code but you might have to make so small mods for your screen.
Code: Select all
from ustruct import pack
import time, display
#constants used for accessing registers on screen
_SWRESET = const(0x01) # Software Reset
_SLPOUT = const(0x11) # Sleep Out
_COLMOD = const(0x3A) # Colour Mode
_DISPON = const(0x29) # Display On
_MADCTL = const(0x36) # Memory Data Access
_CASET = const(0x2A) # Column Address Set
_PASET = const(0x2B) # Page Address Set
def tft_setup(disp):
disp.tft_writecmd(_SWRESET) #Software Rest
time.sleep(0.2)
disp.tft_writecmd(_SLPOUT) #sleep out
time.sleep(0.2)
disp.tft_writecmddata(_COLMOD, bytearray([0x05])) #set 16 bit color
disp.tft_writecmd(_DISPON) #Display on
disp.tft_writecmddata(_MADCTL, bytearray([0b10110000])) #this is orienation for my screen
disp.tft_writecmddata(_CASET, pack(">HH", 0, 159)) #set width from 0 to 159
disp.tft_writecmddata(_PASET, pack(">HH", 0, 127)) #set height from 0 to 127
#setup screen
tft = display.TFT()
tft.init(tft.GENERIC, width=160, height=128, miso=19, mosi=21, clk=18, cs=5, dc=22, color_bits=16)
tft_setup(tft)
#adjust value of duty to change backlight
backlight = PWM(23, freq=200, duty=25)