Driving an Adafruit 2.8 with a Jetson Nano

I am trying to use an Adafruit 2.8" TFT w/ Touch Screen with a Jetson Nano. The device is based on SPI interface so I connected the device to a Jetson board using 5 cables. Cables are connected to 5V, GND, MOSI, MISO, and SCLK ports. After connecting, I observed that there are two framebuffers listed under dev: /dev/fb0 , and /dev/fb1. In modern linux kernels, fbtft_device module can be used with modprobe by default in many cases. I suspect that the current linux distribution in Jetson Nano doesn’t have this module compiled. Therefore, I can’t use the device with a Jetson Nano at the moment. Any pointer or comment towards making the device work with a Jetson Nano will be much appreciated.

@kaanaksit
Not really understand the relative the /dev/fbx with the touch screen driver?
Can you explain more to us.

Hey @ShaneCCC

This LCD uses SPI interface, and Raspbian OS for Raspberry Pi typically recognize this LCD as a framebuffer device. Therefore, it has to be listed something like /dev/fbX. For more see here: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/easy-install-2

Raspbian OS uses this driver: https://github.com/notro/fbtft . Modern linux kernel should have that driver preinstalled, unless it wasn’t chosen to be enabled during a compilation of a kernel. Jetson Nano’s Ubuntu based distro doesn’t have it at the moment.

@ShaneCCC this is also relevant: https://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2015/11/24/bbb-fbtft-linux-44-kernel

Any chance we can get these modules to Jetson Nano?

@ShaneCCC do you also have a pointer on how to enable/use SPI or I2C with a Jetson Nano?

@ShaneCCC I have also echoed the question on Adafruit’s forum: https://forums.adafruit.com/viewtopic.php?f=50&t=150330.

For the SPI below link should be helpfully.

https://elinux.org/Jetson/TX1_SPI

Thanks @ShaneCCC, any chance we can get fbtft_module in the next build or update?

So I tried to follow the link @ShaneCCC posted but the debug stuff needed dose not excited. I want to try and compile a new kernel with the fbtft but the doc really are not clear. I am going to post a second forum post that it not clear. I am wondering if there is a way to load it as a module.

@andelhie there is a way to make this happen without compiling the entire kernel. I once did that with a different platform and it is a very dirt methodology. This has some ingredients to sign a module without an entire kernel compilation: https://askubuntu.com/questions/773734/how-to-install-module-ko-module-without-kernel-signature-or-kernel-rebuild-in-ub

But I agree Kernel has to be recompiled, @shaneccc may hint if fbtft be available in their next build at least. In the case of a Kernel build, it is just as easy as setting a flag to true…

Sorry for just running into this topic. May I know current situation?

In fact, we don’t have any SPI panel for tegra.

If you want to compile kernel, please follow up the L4T document -> kernel customization.

I am making a kernel right now.

I know your do not have a panel but it would be nice to support the Adafruit TFT touch.

@WayneWWW all we need is fbtft module in the current OS of Jetson Nano?

fbtft is a 3rd party driver. You could try to install it by yourself.

@WAYNEWWW It is already in Linux tree, what do you mean by third party? Any driver in Linux tree is third party in your definition :) geeezzz you can do anything to avoid doing your job

Hi kaanaksit,

Sorry for my previous comment.

To clarify what is so-called “3rd party”, What I can help are those drivers that are created by nvidia or already maintained by nv. For example, the nvdisplay driver is only for tegra and written by nv. I I can help resolve bugs for you if you hit any on those drivers.

However, fbtft is even not enabled once on tegra. Nobody knows if it would work or not. You could try to enable it in kernel defconfig by yourself.

Also, we even don’t know if such display pipeline would work on tegra or not.

@WayneWWW all the devices that are connected to a Jetson Nano/TX1/TX2 or any other future product relies on 3rd party. I suggest dropping even keyboard mouse drivers if you want to stick to what you can maintain…

Think of it like this, there are peripheral devices that works with a Rpi, why not bringing these devices to Jetson Nano realm? Jetson Nano’s pin header is even the same as Rpi. Just saying we don’t support won’t get Nvidia an ecosystem. As Jetson Nano’s ecosystem grows, your value grows, and next thing you are likely to get is more resources because more people are using your product in their work…

At least, can you please direct me to a bug tracker/bugzilla or similar so that I can request this module at next version?

kaanaksit,

Sorry for that again. This was not what I meant. What I wanted to point out, at least for this topic, is that you could enable fbtft in your side. If you hit any error after enable that, please let us know. The fact is we don’t have such panel in hand now, even if we enable fbtft on our side, there is nothing to verify and it may delay your work if you want to wait for our development(get a panel, debug and bring up…).

As for something like keyboard/mouse drivers which are already enabled in current kernel config/module , we would definitely handle your request if you hit any error on it.

Some other forum users also have similar topics. You could refer to their work too.

https://devtalk.nvidia.com/default/topic/1049917/jetson-nano/7-inch-panel-integration-lt070me05000-panel-jdi-lt070me05000-c-/post/5329707/#5329707

My point in this thread is that it was announced at GTC by the CEO that Adafruit hardware would be supported. I never saw the list of supported devices but this is an Adafruit device.

it should be possible to use the scripts from here to build kernel and modules, enable those you require and modprobe them https://github.com/JetsonHacksNano/buildKernelAndModules