Erste Schritte

Introduction

The HDMI-Adapters can be used to connected TFT displays with RGB interface to a HDMI output and USB host for power supply and touchpanel mouse emulation.

The adapters are pre-programmed with the RTP or CPT firmware, but the EDID EEPROM is empty. If you want to make changes on the firmware then a new firmware can be uploaded using the Arduino IDE.

Display Connection

The HDMI-Adapter can be used with different displays and before connecting any display, please check the jumper settings on the adapter.

  • For a resistive touchpanel (RTP) the jumpers TP_SDA+TP_SCL+TP_INT have to be open.
  • For a capacitive touchpanel (CTP) the jumpers TP_SDA+TP_SCL+TP_INT have to be closed and VCCIO set to 3V3.
  • If the display has an on-board backlight boost regulator (most of the CTP displays) then the jumpers LED+ and LED- have to be set to 5V.
  • For the display cable orientation the pins of the backlight and touchpanel can be used:
    • Pin 1- 2 -> Backlight (BL)
    • Pin 37-40 -> Touchpanel (TP), on the display there is a small cable which directly connects to these pins (RTP) or via a touch controller (CPT)
    • The display cable contacts have to be to the top.
  • Further infos can be found in the schematics PDF files: v1.0, v1.1, v1.2, v1.3

HDMI Connection

The HDMI-Adapter can be connected to any HDMI output and in general the display is automatically detected via the EDID EEPROM as HDMI DISPLAY. WinXP Intel

Some operating systems ignore the EDID settings, because the display timings are not standard. In this case the HDMI display settings have to be set by hand and here are the settings for different systems:

USB Connection

The HDMI-Adapter is powered via USB and the touchpanel is emulated as standard mouse. Special drivers are not needed. There is also a serial port (VCP) to change different options like the backlight.

Here is a list of the serial commands (9600 baud, 8N1, Newline (NL)) and they can be sent with the Arduino Serial Monitor or under Linux with stty (CMD = command):

$ stty -F /dev/ttyACM0 9600 cs8
$ echo CMD >> /dev/ttyACM0
  •   AT -> Version and config information
  •   ATA -> Backlight on
  •   ATH -> Backlight off
  •   ATC -> Start Touchpanel calibration
  •   ATR -> Reset/Restart Touchpanel
  •   ATT -> Touchpanel on
  •   ATU -> Touchpanel off
  •   ATE -> Write default EDID to EEPROM
  •   ATF -> Write custom EDID (based on width+height) to EEPROM
  •   ATD -> Load default settings
  •   ATS4=x -> Time for Screensaver in seconds (0…65535, 0=always on)
  •   ATS5=x -> Backlight Power (0…255)
  •   ATS6=x -> Touchpanel Orientation
  •   ATS7=x -> Screen Width
  •   ATS8=x -> Screen Height
  •   ATSx? -> Read Register x

EDID EEPROM

To program the EDID (Extended Display Identification Data) into the EEPROM the switch next to the HDMI connector has to be set to EDID prog. (<=v1.1 close jumpers SDA+SCL) and a HDMI cable has to be disconnected.

The programming can be started by holding the tactile switch SW1 on power-up. Note, at first a calibration of the resistive touchpanel is done. See Optional Resistive Touchpanel Calibration.

The EEPROM can be also programmed by sending the serial command ATE (9600 baud, 8N1, Newline (NL)). If the command is executed successfully OK will be returned. Under Linux the command can be send like this:

$ stty -F /dev/ttyACM0 9600 cs8
$ echo ATE >> /dev/ttyACM0

Or the command can be also send with the Arduino Serial Monitor.

The firmware contains different EDID information and the respective data can be changed with the commands for screen width ATS7=x and screen height ATS8=x.

After the EDID programming the switch next to the HDMI connector has to be set not to EDID prog. (<=v1.1 jumpers SDA+SCL have to be opened) otherwise a connected device cannot read the EDID information.

Touchpanel Orientation

The touchpanel orientation (register 6) can be set via serial commands (9600 baud, 8N1, Newline (NL)) and the settings are working directly. If the command is executed successfully OK will be returned. Under Linux the commands can be send like this:

$ stty -F /dev/ttyACM0 9600 cs8
$ echo ATS6=3 >> /dev/ttyACM0
  •   ATS0=0 -> X offset for capacitive touchpanels
  •   ATS3=0 -> Y offset for capacitive touchpanels
  •   ATS6=0 -> normal X+Y
  •   ATS6=1 -> invert X
  •   ATS6=2 -> invert Y
  •   ATS6=3 -> invert X+Y
  •   ATS6=4 -> swap X+Y
  •   ATS6=5 -> swap X+Y, invert X
  •   ATS6=6 -> swap X+Y, invert Y
  •   ATS6=7 -> swap X+Y, invert X+Y
  •   ATS6=8 -> use screen coordinates
  •   ATS6=9 -> invert X and use screen coordinates
  •   ATS6=10 -> invert Y and use screen coordinates
  •   ATS6=11 -> invert X+Y and use screen coordinates
  •   ATS6=12 -> swap X+Y and use screen coordinates
  •   ...

Optional Resistive Touchpanel Calibration

  • Power off everything and connect the display with touchpanel.
  • Hold down the tactile switch SW1 and plug in the USB connector (power on).
  • The LED starts blinking.
  • Press the center on the left edge (x axis) about 5s till the LED blinking changes.
  • Press the center on the right edge (x axis) about 5s till the LED blinking changes.
  • Press the center on the top edge (y axis) about 5s till the LED blinking changes.
  • Press the center on the bottom edge (y axis) about 5s till the LED blinking changes.
  • Calibration done.
  • Note, after the calibration the EDID EEPROM is programmed with the default data.