Search by Tags

Atmel MaXTouch NVRAM Configuration With TorizonCore

 

Article updated at 11 May 2021
Compare with Revision


Attention: the features and instructions contained in this article are not guaranteed to be maintained by Toradex. If they don't work, please contact our support.

Introduction

The Atmel MaXTouch controllers have a configuration file saved in their internal NVRAM. On rare occasions, one may need those files for some purpose. One valid example when you want to do this is if your display is facing performance issues.

Attention: it is very likely that you don't need to get the configuration from the controller. Unless you have a reason to do so, avoid messing up with it, so you avoid permanently damaging the controller.

This article focuses on specifically how to retrieve and update the configuration from the Capacitive Touch Display 10.1" LVDS and Capacitive Touch Display 7" Parallel on Torizon. We use the mxt-app and you should read the README.md of the repo for further details.

This article complies to the Typographic Conventions for Torizon Documentation.

Prerequisites

Build and Run the mxt-app Container

Build a container named mxt-app using the Dockerfile below:

Tip: the Dockerfile provided in this article does not comply with the Torizon Best Practices Guide. It is acceptable for this use case since reading and writing to the display is something that you will only want to do manually. Avoid using --privileged when building your application containers that will be deployed to your final product.

Dockerfile
# Use the FROM according to your SoM architecture
# linux/arm for 32-bit and linux/arm64 for 64-bit
# FROM --platform=linux/arm64 ubuntu
FROM --platform=linux/arm ubuntu
 
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
    git \
    wget \
    build-essential \
    autoconf \
    libtool \
    i2c-tools
 
RUN git clone https://github.com/atmel-maxtouch/mxt-app.git && \
    cd mxt-app && \
    git checkout v1.32 && \
    ./autogen.sh && \
    make && \
    cp mxt-app /usr/local/bin/
 
CMD ["/bin/bash"]

Tip: It's recommended to use the v1.32 version of the mxt-app, which was tested.

Deploy the container to the Computer on Module as explained on Deploying Container Images to TorizonCore. Once done, run with:

# cd /home/torizon
# mkdir mxt
# docker run --rm -it --privileged -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ -v /sys:/sys -v /home/torizon/mxt:/mxt <username>/mxt-app

You'll later either save the config file to the bind-mount /home/torizon/mxt, or load your existing configuration file from it.

Find the Display I2C Address

In the interactive bash session inside the container, find the i2c controller and address:

## ls /sys/bus/i2c/drivers/atmel_mxt_ts/
4-004a  bind  uevent  unbind

In this case, it is 4-004a. If the path does not exist, make sure that you have properly followed the instructions from Setting up Displays with Torizon.

Dump the Configuration to a File

Tip: even if you don't need the existing configuration, it may be a good idea to create a backup before loading a new configuration.

In this section, you will learn how to dump the config to a file using the previously found address:

Dump the Xcfg file

## cd /mxt
## mxt-app -d i2c-dev:4-004a --save mxt.xcfg
Version:1.28-25-g927e026
Registered i2c-dev adapter:4 address:0x4a
REPORTALL command issued
Timeout
Read config from device
Saved config to mxt.xcfg in .xcfg format

Dump the Binary file

## cd /mxt
## mxt-app -d i2c-dev:4-004a --save mxt.bin
Version:1.28-25-g927e026
Registered i2c-dev adapter:4 address:0x4a
REPORTALL command issued
Timeout
Read config from device
Saved config to mxt.bin in OBP_RAW format

Save the File to Your Computer

Exit the container and copy the file to your PC from /home/torizon/mxt/mxt.xcfg using, for instance, scp:

# scp /home/torizon/mxt/mxt.xcfg <user>@<ip>:<path to save file on your PC>

Load the Configuration From a File

In this section, you will learn how to load the config from a file.

We provide as examples the configuration files that must be used by customers affected by performance issues. The files provided are safe to use, you just have to make sure you load the file for the correct display model that you are using.

Get a Valid Configuration File

All you have to do is download the existing configuration inside the running container. If you want to keep the files around, save them to /mxt, since it is bind-mount to /home/torizon/mxt on the board outside the container.

Choose your display from the tabs below:

The files are mxt_10.xcfg and mxt_10.bin. Run the commands directly on container session:

## cd /mxt
## wget -O mxt_10.xcfg https://docs.toradex.cn/109460-mxt_10.xcfg
## wget -O mxt_10.bin https://docs.toradex.cn/109459-mxt_10.bin

Load the Xcfg File on the Capacitive Touch Display 10.1" LVDS

## mxt-app -d i2c-dev:4-004a --load /mxt/mxt_10.xcfg

Load the Binary File on the Capacitive Touch Display 10.1" LVDS

## mxt-app -d i2c-dev:4-004a --load /mxt/mxt_10.bin

The files are mxt_7.xcfg and mxt_7.bin. Run the commands directly on container session:

## cd /mxt
## wget -O mxt_7.xcfg https://docs.toradex.cn/109462-mxt_7.xcfg
## wget -O mxt_7.bin https://docs.toradex.cn/109461-mxt_7.bin

Load the Xcfg File on the Capacitive Touch Display 7" Parallel

## mxt-app -d i2c-dev:4-004a --load /mxt/mxt_7.xcfg

Load the Binary File on the Capacitive Touch Display 7" Parallel

## mxt-app -d i2c-dev:4-004a --load /mxt/mxt_7.bin