I have a small 3.5 in TFT LCD display from a Chinese manufacturer. It doesn't have an integrated LCD controller. The documentation claims it is a "16 bit RGB/parallel interface" and it uses a Renesas R61581B0 driver chip.

These types of displays are very common and cheap. They sell for less than $15 a pop on Alibaba.com, but I don't really have a high esteem for these manufacturers since they do not provide any good / consistent documentation, and their English is riddled with mistakes! But I did get the display, and the product looks and feels like it will do the job!

My question now is, how do I get started ? I have looked on the internet and cannot find a good starting point. I have a 32MHz microcontroller in mind, but I am stumped on how to interface it with the LCD.

Most display projects online that I've seen assume that the LCD module comes with an integrated controller , so the MCU's job becomes pretty simple.. Provide image updates when necessary, and the controller will do the job of refreshing the LCD module at the required 60hz (or so)

This LCD module that I have has raw data lanes that I need to drive myself at 60hz. Are there any good documents on how to interface an MCU directly with such an LCD module?

I'll be happy with any info that points me in the right direction, whether it be an answer on stackexchange or a reference to any good documentation online.

  • 1
    \$\begingroup\$ Looks like you got what you paid for. You bought this knowing there wasn't any data on it, so now you have the unit and no data, apparently just as advertised. \$\endgroup\$ Apr 26, 2013 at 20:34
  • 2
    \$\begingroup\$ The display board you describe does have an integrated controller. The Renesas LCD controller is pretty common among embedded low-cost LCD displays. The 3.5" display from Seiko uses this controller, and you might well have the OEM version of the same display. It is a pretty decent serially controlled TFT controller and display. The datasheet I use is here. Basically you feed RGB data in through D0 .. D17, clock it in, and use serial commands via its SPI interface for mode settings etc. \$\endgroup\$ Apr 26, 2013 at 21:02
  • 1
    \$\begingroup\$ There are also open source drivers available for some microcontrollers: Don't look for the complete Renesas part number, many drivers seem to refer to only "Renesas R61581" - but they work with this controller. Perhaps if you had stated the question a bit better, this site would not have been in such a hurry to close it down. \$\endgroup\$ Apr 26, 2013 at 21:03
  • \$\begingroup\$ Anindo, Thanks much for your response. Can you elaborate on your statement "Basically you feed RGB data in through D0..D17, clock it in"... Typically, what IO method/pins on an MCU would be capable of sending this parallel data fast enough to keep up with the 60hz refresh requirement of the LCD? \$\endgroup\$ Apr 27, 2013 at 6:50

1 Answer 1


The Renesas R61581 is an intelligent display controller that handles all of the high bandwidth tasks needed to refresh the display. The control interface allows a microcontroller to send commands and data to load the in-built video RAM. It is an ideal choice to drive with a medium scale microcontroller.

The datasheet can be downloaded here.

Much of the datasheet refers to connecting the controller to the LCD glass, which you won't need to worry about. The controller has a multitude of host (microcontroller) interface options, but the simplest and easiest way to start is probably by configuring it for 8-bit parallel data access (so long as the display gives you access to the IM pins to set this up, otherwise use what's provided by the display interface). The datasheet includes a comprehensive command reference.

When you can initialise the controller and write a few pixels, then you're up and running and can develop your graphics code incrementally.

Have fun!


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.