Options for FBSD support with LCD device - new project

Bernd Walter ticso at cicely7.cicely.de
Tue Mar 19 00:41:54 UTC 2019


On Tue, Mar 19, 2019 at 12:01:22AM +0000, Kaya Saman wrote:
> 
> On 3/18/19 11:25 PM, Bernd Walter wrote:
> >On Mon, Mar 18, 2019 at 08:57:28PM +0000, Kaya Saman wrote:
> >><snip>
> >>
> >>>>>I'm not sure what would give you that impression about i2c and
> >>>>>spi.  I
> >>>>>belive they're well-supported on virtually every arm SOC we have
> >>>>>any
> >>>>>support for at all (except maybe amlogic/odroid and exynos, both of
> >>>>>which are rapidly bitrootting from neglect).  We have command-line
> >>>>>tools to read and write data to i2c and spi devices from userland,
> >>>>>as
> >>>>>well as programmatic interfaces using ioctl() for higher-
> >>>>>performance
> >>>>>needs like a rasterized spi display.
> >>>>>
> >>>>>I'm the person who does most of the i2c and spi driver work for all
> >>>>>of
> >>>>>freebsd (not just arm), and it's something we use heavily in our
> >>>>>products at $work, so I tend to stay on top of it.
> >>>>>
> >>>>>To enable i2c or spi on any given platform, you usually do have to
> >>>>>touch some FDT code along the way.  That's because almost always,
> >>>>>the
> >>>>>pins used by i2c or spi can be used for other things as well, so
> >>>>>the
> >>>>>default config (which we get by importing fdt source code from
> >>>>>linux)
> >>>>>usually isn't set up to enable those devices.
> >>>>>
> >>>>>To enable them you typically have to write and compile a small dts
> >>>>>overlay and set a variable in /boot/loader.conf to have that
> >>>>>overlay
> >>>>>loaded at boot time.  None of that is hard, but there is quite a
> >>>>>bit to
> >>>>>explain, more than I can do right here in this email in the middle
> >>>>>of a
> >>>>>$work day.  I guess maybe I should write a wiki page for it.
> >>>>>
> >>>>>-- Ian
> >>Finding this thread: https://forum.pine64.org/showthread.php?tid=6232
> >>
> >>It seems that there is an official image for pine64 platform:
> >>http://ftp.freebsd.org/pub/FreeBSD/releases/arm64/aarch64/ISO-IMAGES/12.0/
> >>
> >>
> >>Would anyone recommend the Pine64?
> >>
> >>Also which model as there are several:
> >>http://wiki.pine64.org/index.php/Main_Page#PINE64_Devices
> >The Pine64 is an excellent board, but so far I've only used it with serial
> >console.
> >The Pinebook, which is based on very similar hardware, however works nicely
> >with it's screen, but not done any X tests yet, only console.
> >
> >If you want a smallscreen, which just works with FreeBSD then you should
> >try this one:
> >https://www.waveshare.com/3.5inch-HDMI-LCD.htm
> >I've tested it with FreeBSD in text mode.
> >The touchscreen is based on an XP2046 chip, which (AFAIK) we don't support,
> >but it shouldn't be difficult to write a driver for it.
> >It is an HDMI display and should work on other boards as well, but it is
> >mechanically designed to hook up to an Raspberry with a special HDMI
> >interconnect PCB.
> >I also had to define config.txt entries for many of their HDMI displays, 
> >which
> >is raspberry specific.
> >If you are located in Germany, you can buy it from me, I'm a distributor of
> >Waveshare.
> >That said, I can't suggest all of the Waveshare components for use with 
> >FreeBSD.
> >Especially the touchscreen support experience is mixed, some work out of 
> >the box
> >with wmt(4), some don't.
> >
> >The SPI based displays work by running HDMI as dummy output in a specific
> >resolution and then regularily grab the fbdev data and push it the the SPI
> >display.
> >It should be possible to write software for that, maybe even in userland, 
> >but
> >getting the display initialisation right requires some research.
> >On the display module they use shift registers to the parallel data input 
> >of
> >the panel.
> >They also have XP2046 base touch chips.
> >
> 
> That's fantastic! I will probably need the serial console more then the 
> HDMI display though I do want to add a character based LCD such the 
> Crystalfontz I referenced earlier in this thread as an example. Though 
> it looks like there are some alternatives on the site you mentioned too: 
> https://www.waveshare.com/product/modules/oleds-lcds.htm
> 
> 
> So I think that your reply and Emmanuel's response have clarified things 
> a lot for me and the Pine64-LTS is the one to choose.
> 
> 
> Looking through the RPi header documentation or the Pine64: 
> http://synfare.com/599N105E/hwdocs/pine64/index.html I should even be 
> able to add a DB9 connector for UART serial rs232c access for terminal 
> emulators like minicom,tip etc.

If you go for DB9, then don't forget that you need propper RS232 transceiver
to get the +- signals.
The console is 3.3V TTL only.
Also for the PINE64-LTS, the console is on the EXP connector, no idea if
the RPi compatible header has the same signals or not.

> Now I just need to find a DIN NS35 enclosure for it (or make one) and 
> then I can begin my project :-) :-)
> 
> 
> I'm getting excited now as this is going to be a lot of fun!
> 

-- 
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.


More information about the freebsd-arm mailing list