I have a spare Gameboy Advanced LCD and am wondering if anyone in this forum had luck interfacing w/ it. The schematic can be found here:
From what I hear from various searches, is that it is a very difficult undertaking.
I understand it might be a lot easier if I simpy purchased an OLED display from spartfun and used that for my display. But, it is the inner geek in me that is having me ponder the Gameboy route.
any pointers or suggestions would be much appreciated.
thank you in advance
Well, that schematic seems kinda basic, but it looks like you need to supply complete timing (data, clock, horizontal/vertical blank signals, etc) to the LCD to get it to function - but it doesn’t look impossible.
Assuming you have at least the information for the timing (descriptions and/or timing diagrams).
Do you have any of this? If you don’t, or don’t know of someone who does, then the road is going to be a long one to hoe, so to speak. If you have that information, then it -may- be possible to drive it with the Ardunio; whether there will be any clock cycles left over to do anything else is another matter. Your biggest problem is the fact that you don’t have the memory capacity for a frame buffer, which is something you would need to drive this display (if it doesn’t hold the data in memory, which it doesn’t look like it will - since you have to supply all the timing and such for each refresh cycle).
If you can get anything to display using that circuit, your timing diagrams, and other information (a simple checkerboard pattern would be ideal), then you would need to work on a memory system for a frame buffer - if you can get the Arduino to run the display, and you have enough cycles left over, then you could (in theory) develop a library to allow you to write to an SPI or I2C based serial RAM buffer, and communicate with the Arduino as well using I2C. The block diagram would look something like:
+<–>I2C/SPI–>Serial RAM buffer
Where the ATMega328 is a RBBB-style “Arduino” communicating with the LCD and RAM; essentially you would be building an LCD controller with the ATMega and some external RAM, then writing a library/interface system for the ATMega that could be used to communicate with another microcontroller (an Arduino or what-have-you). I would also consider clocking the ATMega acting as the controller at 20 MHz (which will bring on its own set of problems for serial communications, but you will need/want all the cycles you can get, too).
Hope this helps…