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.
The HDMI-Adapter can be used with different displays and before connecting any display, please check the jumper settings on the adapter.
TP_SDA+TP_SCL+TP_INT
have to be open.TP_SDA+TP_SCL+TP_INT
have to be closed and VCCIO
set to 3V3.LED+
and LED-
have to be set to 5V.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
.
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:
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 informationATA
-> Backlight onATH
-> Backlight offATC
-> Start Touchpanel calibrationATR
-> Reset/Restart TouchpanelATT
-> Touchpanel onATU
-> Touchpanel offATE
-> Write default EDID to EEPROMATF
-> Write custom EDID (based on width+height) to EEPROMATD
-> Load default settingsATS4=x
-> Time for Screensaver in seconds (0…65535, 0=always on)ATS5=x
-> Backlight Power (0…255)ATS6=x
-> Touchpanel OrientationATS7=x
-> Screen WidthATS8=x
-> Screen HeightATSx?
-> Read Register xTo 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.
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 touchpanelsATS3=0
-> Y offset for capacitive touchpanelsATS6=0
-> normal X+YATS6=1
-> invert XATS6=2
-> invert YATS6=3
-> invert X+YATS6=4
-> swap X+YATS6=5
-> swap X+Y, invert XATS6=6
-> swap X+Y, invert YATS6=7
-> swap X+Y, invert X+YATS6=8
-> use screen coordinatesATS6=9
-> invert X and use screen coordinatesATS6=10
-> invert Y and use screen coordinatesATS6=11
-> invert X+Y and use screen coordinatesATS6=12
-> swap X+Y and use screen coordinates...