Go Down

Topic: Repurpose Palm LifeDrive TFT (Read 2 times) previous topic - next topic

Far-seeker


And can the arduino read data from an external data source (there isn't enough to ram to store one frame on an arduino) and output the 24bit of colour data (or even 1bit) in 1 instruction clock?


Why does all this have to happen in 1 instruction clock?  ronalda's planning to make a GUI interface for a thermostat, not a high-end graphics workstation.:P  As long as you can write to the driver during a given clock tick you can change the output of the display.  The read time from the source file and any further processing aren't barriers, no matter how long they take the display will just stay at it's current state until given something else to display (the driver IC must have a system buffer of some sort, there's no way it's processing every pixel in parallel!).

The real time-related issue of concern is the refresh rate, long as the display is updated faster than ~24 frames per second (fps) most people won't notice delay for video.  I'm not suggesting that an arduino could pull-off those refresh rates with this display, but rates of single digit fps seem possible.  Unless this project includes live video feeds of ronalda's heater and AC equipment, even a few fps would probably be sufficient.

Again though, this is not something a novice should try cutting their teeth on, that's one of the reasons why I mentioned using an LCD.  Not only could a monochrome text or graphical LCD do the job, there are many that already have Arduino tutorials and/or compatible with exisiting libraries.  Also some are rather inexpensive if you don't need them to be very big, e.g. the 84 x 84 Nokia 5110 graphical LCD is ~10.00 USD at either Sparkfun or Adafruit.

Tom Carpenter

#6
Jul 16, 2012, 09:32 pm Last Edit: Jul 16, 2012, 09:38 pm by TCWORLD Reason: 1
You can't do that. Every clock cycle of the pixel clock that is in the valid display region will write the parallel data to the given pixel. If you set the output for one pixel clock, and don't then change it for the next clock, you will just end up with a long line. You can't just skip a pixel willy nilly.

Take the nokia 5110 LCD or my personal favourite the nokia6100 LCD. You have a serial bus which allows you to address a pixel. You say, i want to change pixel (a,b) then say what you wan't it to be. They have an high level controller and frame memory built in.

This display is for lack of better word dumb. You can't just address a specific pixel - there are no address lines! Its an all or nothing.
The only way you can do it is to slow the pixel clock down to a rate at which the arduino can be the frame buffer and offload every pixels worth of data. I have been messing around with this, and after some very heavy optimision, using a parallel SRAM, writing large parts in assembler, and heck even choosing certain IO pins as they are faster to write to... The absolute maximum i can get it to do is 333KHz for a similar sort of display. Now if i went down to 8 bits per pixel (256 colours), I can get that up to 500kHz. However that is a far cry from the absolute minimum of 5MHz that the specific display requires.

It CANNOT be done with an arduino alone. (period)
~Tom~

Far-seeker

Ok, I see and understand my mistake now.  I knew that this display didn't have any serial communication to the outside world, but I thought the driver had a more sophisticated addressing system.  Instead it works more like a basic CRT display.  Thank you for identifying and explaining my error to me, TCWORLD.

ronalda

Wow, you guys gave a lot of really helpful information. I am working on tracking down the information on the datasheet. Anyway to track down a connector for this little bugger to attach to a breadboard for a little proto work?

Docedison

EBAY look for a "Pin Board" there is one for sale in Electrodragon, I know with a number of different pad layouts/pin pitch's for sale for just a dollar or two, I've seen it a number of times, never bought one as I don't see that well any more unless I an in bright sunlight. I'm OK with a mm BUT some of those things have .2 to .5 mm pad/pin spacing. Nuts. Again at Electrodragon you can buy a 3.2" tft with library support in the playground as well as From both Adafruit and ITEAD Studios for less than $15.00 with touch too. Personally I prefer to get my lib's from Adafruit and parts too when they are unique enough, like that solderable breadboard, looks just like an 830 point bread board, with Plated Through holes and gold "Plated" (Gold Washed) too. make it work and transfer it to a board almost at the same time

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Go Up