Colibri imx6ull 256 NAND device tree modification to support 7 inch touch display resolution and touch

Hi,
I am working on Colibri iMX6ULL SoM with 256MB NAND flash, currently on Colibri Eval board v3 and then on Viola board. I have earlier worked on colibri imx7 using torizon core. But now I am using yocto. How can I do -

  1. Change the display resolution and enable touch for colibri imx6ull on colibri eval board ?
  2. Change the display resolution and enable touch for colibri imx6ull on colibri viola board ?
  3. If these require changes in device tree, how do I do that and compile the device tree in yocto?

Frankly yocto is a bit difficult as I am using it for the first time.
Thanks in advance.

Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

To modify the device tree for your Colibri iMX6ULL to support a 7-inch touch display on both the Colibri Eval and Viola boards using Yocto, you can use Device Tree Overlays (DTO). This method allows you to make specific changes without recompiling the entire device tree, which is particularly useful for adjusting display settings and enabling touch functionality.

Steps to Modify the Device Tree:

  1. Understand Device Tree Overlays (DTO):

    • DTOs are small fragments of the device tree that can be added or removed as needed. They allow you to enable or disable hardware components dynamically.
  2. Identify the Required Changes:

    • Determine the specific changes needed for your display and touch controller. This typically involves setting the correct resolution and enabling the touch interface in the device tree.
  3. Create a Custom DTO:

    • Start by examining existing overlays for similar hardware in the Toradex device-tree-overlays repository.
    • Create a new overlay file (e.g., my_display_overlay.dts) with the necessary modifications for your display and touch controller.
  4. Compile the DTO:

    • Use the Device Tree Compiler (DTC) to compile your .dts file into a .dtbo file. This can be done using a command like:
      dtc -I dts -O dtb -o my_display_overlay.dtbo my_display_overlay.dts
      
  5. Deploy the DTO:

    • Place the compiled .dtbo file in the appropriate directory on your boot partition.
    • Edit the overlays.txt file on the boot partition to include your new overlay:
      fdt_overlays=my_display_overlay.dtbo
      
  6. Reboot the System:

    • After making these changes, reboot your system to apply the new device tree settings.

Compiling and Deploying in Yocto:

  • If you are integrating these changes into a Yocto build, you will need to add your overlay to the Yocto project. This involves creating a custom layer or modifying an existing one to include your overlay.
  • Use the bitbake tool to build your image with the new device tree settings.

By following these steps, you should be able to adjust the display resolution and enable touch functionality on your Colibri iMX6ULL using Yocto. If you encounter any issues, ensure that your overlay is correctly formatted and that all necessary hardware components are enabled in the device tree.

Best regards,
Toradex AI Assistant.

Please, also check if these links can help you solve your problem:

imx6ULL custom device tree.

I think device tree overlays are not allowed on NAND flash. It is only used for imx6ull with emmc. Please let me know the device tree modification details.

Hi @mansijc

Sorry, but can I first ask about what is your project goals here?
Are you working on a new product or are you upgrading an existing product that’s already on the market?
Not sure if I understood correctly, but are you replacing the colibri imx7 modules with Torizon OS for the Colibri iMX6ULL NAND? :upside_down_face:

I’m asking this because both the Colibri iMX6ULL and the Viola Carrier Board are relatively old products and are not indicated for the development of new products. And from the description of your issue, it seems that you are quite early in the development phase.

Hi @allan.tx,

Thank you for responding to my query. Here is a brief about the project -
It is a Nurse Call System for hospitals and Care Homes. The company that has contracted me for this development is mainly a marketing company selling medical instruments to hospitals. This is their first venture in product development. This product will have 4 versions. The one that I am working on now is the basic version. Linux SoMs are being used for two modules that are connected over Ethernet/WiFi to the IP network and one of these is connected to other smaller micro controller based units over RS485. Colibri iMx6ULL was selected to meet the hardware cost factor. While selecting Colibri iMx6ULL, there was no information stating that this should not be used for new product development. Even Toradex team did not mention this to me.

I work as an independent consultant with companies that want to develop products in embedded domain in India and outside. I have used Linux SoMs offered by companies and zeroed in on Toradex because of quality of hardware and support. I have directly worked with local Toradex team earlier where I used Colibri iMx7 and it was a success. Apart from that I have used Colibri iMx6. In both case (iMx7/6) I used Torizon Core. I am facing a bit of challenge with Yocto. That is where I need some guidance. I need links that give me exact direction to use Yocto for -

  1. changing device tree and including those changes in the build.
  2. auto launch my application on boot.
    I received pointers this morning from Toradex team. I will try those now and update the results here.

Regards,
Mansij

Hi @mansijc

Thanks for providing the context.

Sorry if I misunderstood, I think it makes sense for your use case.

I didn’t mean to say that “it should not be used”, but that you may want to also evaluate other low-end modules such as the Verdin AM62.
The Verdin family offers a better scalability to higher-end devices and using Torizon OS makes it easier and faster to develop your application.

But now with the context, I understand that you have already evaluated it.


In this article, under Kernel Compilation you can find the instructions to compile the device tree for the imx6ull

and in this article under Customize the Kernel you can find how to integrate it with your Yocto project.