Having bought a number of parts for my home made Geeetech GT2560 controlled 3D Printer, about a week ago, while browsing the web, an advert of an item some A.I. thought “I would like” came up on my feed. I looked at the specs, and 10 minutes later it was in my shopping basket. The item, a BIGTREETECH TFT35-E3 V3, arrived a couple of days later.
Since I am always tinkering around with my printer, I keep a spare GT2560 board running around the workshop to use it for experiments. I opened the touchscreen package and connected it to the board.
The screen has two working modes, the “traditional” or “Marlin” mode, which works exactly like the good old 12864 LCD, with the added bonus of allowing you to change font and background colours (but without the touchscreen features). And the “touch screen” mode, which is exactly what the name implies. To switch between the two modes, all you have to do is press and hold the rotary encoder for a couple of seconds and select the mode you require.
In Marlin mode, the screen is a drop in replacement to the 12864 LCD. All you have to do is connect the EXP1 and EXP2 connectors to the back side of the screen, select “Marlin” mode and you are good to go.
Getting the “Touchscreen” mode to work with the GT2560 though requires some hacking.
In touchscreen mode, the board requires access to a serial port the printer control board (in this case the GT2560). Basically the touch commands are converted into G-Code, and transmitted to the printer.
A quick look at the GT2560 schematics show that 2 serial ports are available on the LCD connector of the board TXD / RXD 1 and TXD / RXD 2.
Getting it to work
At this point I figured, that all I needed to do was to enable the correct serial port in Marlin, upload the firmware and voila.
I defined SERIAL_PORT_2 1 in configuration.h compiled and uploaded the firmware … and … It did not work !
Apart from this, the buzzer of the board would not stop beeping. A quick look at the schematics of the LCD Controller board revealed the problem. The TXD1 pin on the GT2560 board is connected to the BEEPER pin of the LCD Board.
The schematic also shows that using serial port 2 would also not work, since the RXD2 pin is required by the LCDE pin in Marlin mode.
Working with Touchscreen Mode (only)
In order to get the bigtreetech board to talk to the GT2560, all we need to do is connect the TXD / RXD / GND pins of the touch screen to the RXD2 / TXD 2 / GND of the GT2560. This would make the board work in touchscreen mode, provided the correct baud rate is selected on both boards. However the “Marlin” mode would not be available.
In order to have both modes working, we need to do some easy soldering, and require 1 external component, a 1n4148 or similar diode. We will take a look at how in part 2 of this post