Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Apr 2015 14:13:07 +0200
From:      Milan Obuch <freebsd-arch@dino.sk>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: using libgpio to bitbang LCDs!
Message-ID:  <20150427141307.46630f07@zeta.dino.sk>
In-Reply-To: <20150427124841.7b8a59bc@zeta.dino.sk>
References:  <CAJ-Vmo=n=Lfh_XqkxwAA43jUi7suoPjWV1uSv4VnKNncw3%2BPfw@mail.gmail.com> <CAJ-VmonT1FvoNUAAY1JeHM9LopaCiWvPBjw_ubP5Ktm0FYZBvA@mail.gmail.com> <20150427124841.7b8a59bc@zeta.dino.sk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 27 Apr 2015 12:48:41 +0200
Milan Obuch <freebsd-arch@dino.sk> wrote:

> On Sat, 11 Apr 2015 23:45:55 -0700
> Adrian Chadd <adrian@freebsd.org> wrote:
> 
> > Hi,
> > 
> > The library source code and a demo program is available here:
> > 
> > https://github.com/erikarn/freebsd-liblcd
> > 
> > It includes the wiring needed to hook the example OLED board up
> > (http://www.adafruit.com/products/684) to a Carambola 2 evaluation
> > board.
> > 
> > Anything you can get 5v and 5 GPIO pins from will work. (Well, as
> > long as there's also libgpio / gpio API support for your device..)
> > 
> > 
> > 
> > -adrian
> >
> 
> Hi,
> 
> I downloaded master.zip from github and now I am trying to modify it
> for my hardware - Raspberry PI and TFT display with ILI9341 chip
> https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi
> My original attempt to use SPI failed probably because ILI9341 does
> not use pure SPI, but there is one extension - DC pin. I did not
> manage to satisfy chip's timing/bit sequence/whatever, so I would
> like to try bit banging.
> 
> I found two small issues with archive downloaded -
> freebsd-liblcd-master/src/beastie_ili9340c_320x240/Makefile seems to
> ba a copy of
> freebsd-liblcd-master/src/beastie_ssd1351_128x128/Makefile, I think
> there should be a difference, after my fix
> 
> --- beastie_ili9340c_320x240/Makefile   2015-04-23 21:40:10.693847000
> +0200 +++ beastie_ssd1351_128x128/Makefile    2015-04-13
> 00:58:06.000000000 +0200 @@ -3,7 +3,7 @@
>  
>  .include <bsd.own.mk>
>  
> -PROG=beastie_ili9340c_320x240
> +PROG=beastie_ssd1351_128x128
>  SRCS=main.c
>  CFLAGS+=-I../../lib/liblcd
>  LDFLAGS+=-L../../lib/liblcd
> 
> 
> The second issue is when doing 'make install' binaries produced are
> being installed into / directory. While both are not fatal for me,
> they are annoyances at least.
> 
> I found following in source files:
> 
>         /* Configured for the carambola 2 board */
>         cfg.gpio_unit = 0;
>         cfg.pin_cs = 19;
>         cfg.pin_rst = 20;
>         cfg.pin_dc = 21;
>         cfg.pin_sck = 22;
>         cfg.pin_mosi = 23;
> 
> I see there no 'pin_miso', so does this mean only one directional
> communication is being used, no status reading, or both reading and
> writing are being carried over one pin? If the former, then all I
> should to do is change pin numbers in above given excerption to ones
> valid for Raspberry Pi, if the later, I can't use this without more
> modifications.
> 
> Also, I have simple monochrome display with PCD8544 chip, which should
> use basically the same bus design, so it could be used for this too,
> with some modification.
> 
> Regards,
> Milan
>

I decided just to try it. I copied
freebsd-liblcd-master/src/beastie_ili9340c_320x240 to
freebsd-liblcd-master/src/beastie_ili9340c_320x240-1, just to keep
things clean (and be able to revert easy if I screw something too much)
and changed configuration lines mentioned above to

        /* Configured for the Raspberry Pi board */
        cfg.gpio_unit = 0;
        cfg.pin_cs = 8;
        cfg.pin_rst = 0;
        cfg.pin_dc = 25;
        cfg.pin_sck = 11;
        cfg.pin_mosi = 10;

and it works, a bit slowly, but this could be expected. Also note there
is no reset pin connected in my display, so I put there 0, which may
not be the best value, but it works. One more issue here - picture is
turned upside down, I have four buttons below screen and I need to turn
the display to be normally readable so they are on top... but this is
not hard to solve... I can use this display now, it is slow, but works.

Regards,
Milan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150427141307.46630f07>