Options for FBSD support with LCD device - new project

Kaya Saman kayasaman at optiplex-networks.com
Tue Mar 19 00:01:27 UTC 2019


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.


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!


Thanks everyone for all the responses.


Kaya




More information about the freebsd-arm mailing list