Hello everyone, I know this is not exactly the appropriate place for this question (as it is related to hardware other than an Arduino), but I have an open smart 2.0 TFT which I cannot use with any of my Arduinos (as it uses 3.3v logic levels and the Arduinos I have are all 5v).
I know I can just use level shifters/voltage dividers to compensate, but I also have a raspberry pi (zero) and a different MCU made by another company (called the CHIP by nextthingco), and both are 3.3v by default, so I was wondering if anyone may be able to point me towards the appropriate Arduino drivers/libraries off of which I can base my own, to write in python (as the drivers are not currently available in this format).
I don't need any sort of hand holding through the process, I am new to python and fairly new to arduinos, c++, and electrical engineering in general, but I'd just like to start by looking at the available drivers and what they do and how, then trying to replicate this in python as best I can (with resources from elsewhere, though I will still update my progress in respect to the forums).
Thanks!
Here is the actual screen I am using, purchased through a different vendor: http://www.dx.com/p/open-smart-2-0-touch-screen-expension-board-w-touch-pen-for-arduino-450742#.WswGo5MpA0N
But the vendor i got it from has pictures of the board with a different driver IC number, and the board i actually received has a third different driver IC number (st7775), and I believe the last number to be the one which is most likely available (though I'm not sure from where).
Your link shows a video of the screen working with a 3.3V switchable Uno clone.
The Uno has enough GPIO pins to drive the TFT (and read the Touch Panel).
I have never used a Raspberry Pi. As far as I know, there are not enough GPIO pins.
If you buy any 3.3V Arduino, you can connect the display safely. The video shows it hand-wired via a breadboard. I use a hand-soldered Protoshield Adapter.
The link has UTFT library. UTFT supports ILI9225. UTFT does not support ST7775, RM68130, ... or other variants.
MCUFRIEND_kbv supports ILI9225. I can support the other variants if required. Those controllers are fairly similar.
David.
Yeah, a lot of what I was coming up with when searching for drivers involved the ili9225, I just wasn't sure how similar it might be. So as far as any drivers for this actual part goes, it seems I'm just SOL.
And yeah, the raspberry pi might be limited with its headers (I'm honestly not sure, ive still been trying to just get the thing working) but this other MCU I have has somewhere between 60-80 headers in total, so I figured I may be able to make something work with that. But since I have nothing to base it off of, that certainly sets me back a bit.
I have managed to locate the st7775 data sheets, it's just beyond my current understanding at the moment, but if I can begin by deciphering it then that should give me some basis to work from (and perhaps something I can turn into an Arduino library/driver later on down the road as well, provided the voltage levels are correct). Thanks!
From memory, the ST7775 is very similar to the ILI9225.
Open-Smart have specific code for each of their displays. I would guess that it is just different initlcd.h files for the UTFT library.
From a brief glance, the initlcd.h files are different. There is no specific ST7775/initlcd.h file but UTFT treats ST7775 as if it is a RM68130 clone.
If you are running MCUFRIEND_kbv, I am happy to help you with ST7775 / RM68130. After all, there are datasheets for both.
I presume that you have downloaded and installed the [OPEN-SMART] TFT2.0inch Breakout include S6D1121 ST7775 ILI9225 RM68130.rar file.
David.
Actually, terribly sorry for being so grossly misinformed before, but now that I’ve gotten a chance to look at the pins on the breakout board Vs the pins in the gpio (referencong each respective manual) it’s painfully apparent what seems to go where. I won’t make any assumptions that I’m sure, but I’ll update here shortly in regards to the wiring, and show the particular pages/paragraphs/parts, and once I do know if I’m right (or how I’m wrong) I can start looking into the programming.
I don't mean to bother you about your library then refuse the advice, the documentation and pinouts of the board and screen I'm using are just a lot more thorough than I expected. But once I know for sure, I'll move my question over to the appropriate forum (and hopefully it'll help me better understand what I'm.doing on an Arduino board as well, on a more fundamental level). Thanks!
Okay, seems that it seemed simpler in my head than it rightly should have (as these things usually go, right? Ahaha) so now I'm not so sure at all.
From what I've found, the SPI of the chip is
SPI2 clock- CSICK
SPI2 miso- CSIVSYNC
SPI2 miso- CSIVSYNC
SPI2 CS- CSIPCK
As referenced in this thread: https://bbs.nextthing.co/t/official-documentation-for-enabling-spi/13866/6
But...
My resistive touch screen pins are labelled on the breakout board as follows:
GND
3V3
CS
RS (x-)
WR(y+)
RD
RST
LED
DB0
DB1
DB2
DB3
DB4
DB5
DB6(x+)
DB7(y-)
And the only documentation regarding the driver printed on the IC is here:
https://wk.baidu.com/view/884cc96db84ae45c3b358c58?pcf=2
And mentions SPI on pages 41, and 73-81, in varying context, and I'm not entirely sure how to correlate the two. I've reviewed all of this intermittent documentation and each page as well, so I can somewhat get a grasp of what to do with each part/in what order (but only somewhat, because the documentation and pins don't match completely) so, I'm just not entirely sure I understand where the SPI pins themselves should be connected to the breakout board, or in what format (power, gnd, and cs seem fairly obvious, but as for the rest I'm completely unsure).
And to answer a question I overlooked before, I've been unable to locate the .rar file, just this standalone reference manual (sent to me from the supplier)
Also, because c++ is so embedded (and object oriented) I'm not sure it'd make sense for me to try to look at the Arduino libraries (especially if it treats it like another part) but if theres anything in it you think could clarify any of my confusion/misunderstanding, please let me know.
Aha, I've found referenced on GitHub here:
That the is based off this: http://www.inhaos.com/product_info.php?products_id=77
So let me compare and try to re evaluate
In #4 I suggested that you try the software provided by Open-Smart.
They made the board.
I also offered to help you get the display running with MCUFRIEND_kbv
Your GitHub link refers to a 40-pin display from Inhaos.
Normally 40-pin displays use parallel 8080-16 interface.
The GitHub code is using SPI.
Your Open-Smart board uses 8080-8 interface.
David.
Ahh, thanks for the clarification. Sorry to dredge up such a mess of information, theres just lot of conflicting information around regarding this and I wasn't sure how to sort it out. Didnt mean to just disregard the help you offered with the MCUfriend library either, if I was just wiring this on an Arduino that would be my first choice, I just wasn't sure how closely it resembled what I'm trying to do in python, since you said that it is slightly different and I'm doing this from scratch, I just didn't want to confuse myself even more (which I did anyway, of course).
But I didn't realize that open smart had their own specific software as well, the supplier I got this from has just been giving me half-assed incomplete information. But I'll definitely look into that for additional reference now, and I'll certainly have to look more into 8080(-8 and -16) interfaces as well.
Thanks so much for the help! And sorry for such a headache
Okay, it seems that I've found resources here:
And here (a thread you had posted in the past) further clarifies a lot of what your already told me (sorry to make you repeat yourself): TFT 2.0 Smart open - Displays - Arduino Forum
I've settled on using the pi as opposed to the CHIP MCU, because the chip is too behind in the developmental stages to make SPI connections more accessible (takes a lot of back door work arounds), so im just gonna go ahead and sketch out the ideas a little better and come back, hopefully with some form of a solution. Thanks!