Is there any way to connect to LCD display modules through SPI as can for example be done with the Rapberry Pi through the use of https://github.com/notro/fbtft/wiki. I would also like to use one with touch capabilities. I know that there are already capes with touch screens on but they are far more expensive than the LCD module that I want to use. The capes also seem to use a parallel connection instead of an SPI one which will of course give a better refresh rate but take up a lot of pins and I do not really need a fast refresh rate, just the pins.

UPDATE: I should be able to manage without the pins used by the capes and I was thinking about using the http://za.rs-online.com/web/p/lcd-colour-displays/7812992/ module, would this be possible with any OS for the Beaglebone, I don't mind using Debian or Ubuntu, I would actually like to use Ubuntu considering the nice gui.


Electrically it is possible, the only thing you'll need to do is level-shifting from 1V8 to 3V3 since most of the displays use that voltage; the problem is that you won't have the image from the OS framebuffer appearing on the display, unless you find a display driver that does that (which AFAIK doesn't exist). Even if you find such driver, its refresh rate would be so slow that it wouldn't be useful for most typical uses (command line and GUI), not to mention it'd hog the processor to do that. But you could write a small program to transfer the framebuffer to the display when you want, or generate the images you want to show directly in the display from your program.

The capes use the DSS pins, which doesn't require work from the processor to periodically transfer the framebuffer to the display and is natively supported by the OS; also the fact that it uses parallel lines for each color bit and is intended to be wired with short length connections result in a throughput much higher than SPI can handle. To better understand the DSS interface, check out this material (it's for VGA, but the concepts are the same).

If you want to connect via DSS, you'll need to level-shift the VSYNC, HSYNC, DOTCLOCK and ENABLE pins, the 24 color pins, (R0-7, G0-7, B-07); those will be connected to the corresponding pins at the BeagleBone. And the CS, SDI, SDO and SCL pins for initialization; those would be connected to CS, MOSI, MISO and CLK of an SPI port. To initialize the display you'll have to output the init sequence that the display manufacturer dictates (you'll have to look at their website or ask them for it). You'll also need to read the display spec for other requirements and mode programming pins, and for instructions on how to drive the backlight.

For the touchscreen, notice that the display you mentioned doesn't have one, but there's a version with touchscreen for the same product. You'll need either that or to buy a separated touchscreen. To interface with it you'll need two ADC lines and an IRQ line, check out this reference.

  • \$\begingroup\$ The github link that I posted is a framebuffer driver for the Raspberry Pi which does exactly that, but how hard will it to be to port it to the Angstrom Linux on the BBB. I guess one of the BBB compatible Debian distros could also be used if it would be easier to port the driver. \$\endgroup\$ – Gerharddc Nov 6 '13 at 12:37
  • \$\begingroup\$ Theoretically not much, since you are circumventing the DSS which is heavily processor-dependent. To make things easier, maybe you could use Debian instead of Angstrom. I've been using Debian with BeagleBoard C3 and found it much easier to handle than Angstrom. \$\endgroup\$ – fceconel Nov 6 '13 at 12:41
  • \$\begingroup\$ Please see the update in my answer for more details but using Debian and or the capes pins would not be a problem. \$\endgroup\$ – Gerharddc Nov 6 '13 at 12:45
  • \$\begingroup\$ For that particular display you don't need to use SPI mode, since it exposes the VSYNC/HSYNC/DOTCLOCK pins, the only thing you need is level-shifting for all the pins. In that case any OS you choose will work. The SPI interface is mandatory sometimes because most of the small (less than 3.5in) displays don't expose the VSYNC/HSYNC/DOTCLOCK pins and force you to use the SPI (or MCU parallel) interface. But not that one (fortunately for you). But what you will have to do is to init the display first via SPI. \$\endgroup\$ – fceconel Nov 6 '13 at 12:51
  • \$\begingroup\$ Sorry but have absolutely no official training in interfacing displays, could you possibly just direct me to some reading material or give me some more thorough steps of exactly what I should do to get the BBB displaying to this panel. Also, what should be done in order to get touch working? \$\endgroup\$ – Gerharddc Nov 6 '13 at 12:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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