marlin tft display factory

In this video, I am showing you how to connect Bigtreetech TFT35 touch displays to your SKR 1.3 or 1.4 mainboard, why it has two different modes to use it and what to configure in Marlin 2.0 for it.

So, you might have noticed, there is multiple different shapes and sizes of this Bigtreetech TFT35 display available. This one is the TFT35 E3 3.0, which has the knob underneath the display and this fits also in the Ender 3 stock display mount, there is also the regular TFT35 with the knob on the side but they technically absolutely work the same.

The first one is the touch screen mode, where you have a nice color touch display to control your printer, start printing for example, set the temperature and see the status of your printer.

The second mode is the "Marlin" or 12864 simulation mode, which will show the original printer menu from the Marlin firmware running on the SKR mainboard.

But you might ask, why is there two modes in the first place? Is the 12864 simluation or "Marlin" mode there to give you a nice retro feeling if you want it? Well, yes and no. You actually need the 12864 simulation mode in some cases and I"m going to tell you why.

So the display itself has no further logic beyond interpreting and showing that information - being just a dumb monitor. It also sends back the button pushes and controller knob turns to the mainboard but that"s it.

The TFT35 and all other models of this display on the other hand have a full 32bit microcontroller with it"s own memory on board that has it"s own firmware and can be upgraded and programmed independently from the printer mainboard.

The information that is sent back and forth over that serial connection is not pixels. It"s just GCODE commands and GCODE reponses. That makes this display more or less act like a raspberry Pi that runs Octoprint on it or a computer that runs Pronterface for example. And what is shown on the display to you is not controlled by the printer mainboard firmware if you"re in touch mode.

But being independent from the printer also means that the TFT touch display is agnostic to what kind of printer you exactly have. So for example it doesn"t know and it also doesn"t care what kind of stepper motor drivers it has or what kind of firmware it"s running.

The serial cable that comes with your display will have a plug that fits into the RS232 or TFT slot at the back of the display. So let"s plug that in here.

It might be that the display orientation is swapped, that also depends on how you like to mount the display to your printer. So if you need to change the display orientation, you can do this from the touch display by tapping Settings → Screen → and then rotate UI. Then you will need to run through a screen calibration tapping the red dots that appear in the corners and then finally the center.

The next issue you might have could be that the display shows "no printer attached" so that it cannot communicate to the printer. That"s actually normal when you freshly turn the printer on and it should then disappear after a few seconds. If this error persists any longer, your baudrate setting for the serial connection is most probably different from what you have set in Marlin firmware.

This can be fixed by going into the settings menu of the display and then tapping the baudrate setting to switch it between 115200 and 250000. I have set my serial connection speed in Marlin firmware to 250000 at the beginning of Configuration.h, so 250000 should be working. And after a few seconds, the error disappears for mw.

If you find that also setting both sides to 250000 still doesn"t solve the communication issues, you should try to lower the speed in Marlin firmware to 115200, then flash a new build to the mainboard and try again to set the speed to 115200 on the display.

Now, let"s see if we can use the 12864 simulation mode already. Push the dial for three seconds and then select Marlin Mode and confirm the selection.

Sometimes it needs a turn of the knob to get it to work but mine stays black. The reason might be that I have configured the ANET FULL GRAPHICS DISPLAY in Marlin firmware. So I am going back to my Marlin Configuration.h, I am going to comment that out.

Then I am looking for the REPRAP DISCOUNT FULL GRAPHIC SMART CONTROLLER, this is the right setting to enable for the 12864 simulation with the TFT35 and I am uncommenting this line. Don"t confuse this with the REPRAP DISCOUNT SMART CONTROLLER, that"s not the right setting to enable.

Now, I am building and uploading this new firmware for the SKR mainboard with Auto Build Marlin and if you"ve missed my full guide how to do this, I"ve linked that particular video up here for you.

And finally, we can use the print menu to print something from the SD card slot of the display. So let"s insert an SD card with some models here at the side and start a print.

So you can see, that the display immediately changes to a new dialog that shows the printing progress, the current temperatures and we also have access to babystepping and speed adjustment settings from here.

Next up in this series, I am going to show you how to flash the latest bigtreetech firmware to the TFT35 display and also how to customize the UI to show more useful information on the start page, and to be more colorful with custom icons and logos.

marlin tft display factory

I was rebuilding one of my 3D printers — again — and decided I needed a display upgrade. A color screen is nice, but there are some limitations. I also found there are ways around these limitations, so I wanted to share my thoughts on a dual-mode color touch screen LCD controller for your 3D printer. The screen in question is a TFT35 from BigTree Tech. It is similar to an MKS screen, but it can operate in two different modes, as you will see.

A few years ago, I picked up an Anet A8 which was very inexpensive, especially on sale. Not the best printer, though, because it has that cheap acrylic frame. No problem. A box full of aluminum extrusion later, the printer was reborn. Over time, I’ve completely reworked the extrusion system and the Y-axis, leaving only the motors, bearings, and the controller/display as the original.

I happened to have one of these lying around so when I installed a new motherboard — a Fysetc Spider if you are curious — I also wired in the new LCD. I had to recompile Marlin, of course, but that’s easy. It all worked, it just looked a little bland.

There’s another way to control a printer, and it’s one you may have thought of before. Since the printer accepts commands via a serial port, you could take a computer like a Raspberry Pi with a nice LCD and just have it issue commands to the serial port. Bonus points if the board has more than one serial port so you can still hook up a PC or a Raspberry Pi running Octoprint or similar. Turns out, you don’t have to build this. The MKS touchscreen uses an ARM chip (it isn’t a Pi, though) and has a touch screen that you can use to control the printer. These come in different sizes and are usually called something like TFT35 for 3.5 inch display.

The advantage isn’t just appearance. Having a bunch of touch screen buttons makes many things easier. For example, if the printer is at (0,0) and you want to jog the head to (100,200), that ends up being a lot of button pushes in Marlin. With the touch display, you can bring up a navigation screen that makes it easy. Or, you can bring up an entire terminal and enter G-code. When you press Send, it shows the results of the command, if any. You can set a temperature with the knob, on-screen buttons, or press the number and type in what you want with a virtual keypad.

These displays are colorful and nice, but there are a few things they can’t do. Marlin has some wizards and user interaction that insist on a proper, local LCD. But the Marlin code thinks the MKS display is a remote host computer, connected over serial. Displays that can act like both types of LCDs are a sweet hack, and here’s the part that was never clear to me before: these displays can switch modes during printer operation. In other words, it is not a case of selecting a mode and rebooting everything. You can be looking at the colorful touchscreen, then switch over to the stock display while printing and then switch back any time you want. The best of both worlds.

On the face of it, the display looks like an MKS TFT. You have colorful menus and a touch screen. The connection for that is a simple two-wire serial port, along with — of course — power, ground, and an optional reset connection. They provide a cable you can use or modify to connect to your setup. There is also an EXT3 port for boards that have that connector.

If all you want is an MKS display, you are done. Since the display looks like a host computer, you don’t even have to recompile Marlin if the serial port you used was active. In my case, the second serial port wasn’t set up, so I had to recompile, but I do that often enough, anyway.

However, if you wire the normal EXT1 and EXT2 ribbon cables to your printer, the display can emulate a normal 128×64 LCD. If you are already set up to use one of these displays, you should not need to recompile Marlin to use this display. However, if you are set up for a different type of display, you’ll need to tell Marlin to use the normal “REPRAP DISCOUNT GRAPHICS CONTROLLER.”

Here’s what I never understood about the device. Looking at the write-up about it on different vendor sites like Amazon, Banggood, or AliExpress, it sounded like you could use the screen in either mode as a static configuration choice. In other words, you might wire up EXT1 and EXT2 and then use the emulated mode until you decided to switch over to serial at some future date. But that’s not how it works. You can connect all the cables and switch back and forth between display systems on the fly.

That’s huge. It means you can have a nice user interface that lets you control the printer, print from an SD card or USB stick, and even make customizations to the menu with the source code provided on GitHub or with a simple configuration file edit. (And, yes, you can add custom menu items simply.) But when you need to do something very specific to Marlin, or a new feature shows up that the LCD doesn’t know about yet, you can simply switch to the Marlin display mode. Then you can switch back.

The process to switch is simple. Just hold down the encoder knob or push the screen for a few seconds. A screen will show up allowing you to pick the Marlin mode or the BTT mode. Just touch the one you want. In Marlin mode, the touchscreen does nothing except switch modes, so you might want to use that method. If you hold the encoder down in Marlin mode, the printer will also see the repeated enter keys until the LCD pops up the selection screen.

Installing the LCD was straightforward save a few problems. For some reason, the pin 1 designation for EXP1 and EXP2 are not consistent among vendors. A Geeetech display worked fine with the Spider board, but the TFT35 didn’t want to come up in Marlin mode at all. I applied power at the serial port and the board appeared hung. The answer was to snip off the alignment tabs on the ribbon cables and flip them 180 degrees.

The serial port was also a mystery. With so little documentation on anything, I just soldered the power and ground wires and then hand twisted RX and TX so I could swap them until it worked. As I expected, the cable needed a cross on those lines to work. You also have to match the display’s baud rate to the port you are using.

After that, it all worked fine. The EXP1 and EXP2 connectors do connect to the board’s reset, so you don’t need to wire the serial port’s reset pin if you have those connected. However, I did notice that switching the mainboard to DFU mode will sometimes fail with the display plugged in. Reflashing the display requires an SD card that flashes a binary file and then reboots and loads fonts and icons. If it is connected to the Spider, it sometimes hangs when trying to reboot during an update. It also works sometimes, though, so I suspect it is just loading on the reset line. In any event, popping the connectors will make it work if you don’t want to try repeatedly.

The display has a number of other ports, but you probably shouldn’t use them. For example, there’s a port for a filament runout sensor. But if you connect it there, it will only work if you are printing using an SD card or USB stick in the display. A better option is to connect it to your printer and tell Marlin to notify the host if a filament break occurs. This will work with the display or something like Octoprint.

In theory, you should be able to connect Octoprint itself through one of the extra serial ports. However, I never got this to fully work. The subordinate port seems to work pretty well, but it never sends Octoprint acknowledgments so Octoprint waits forever or until you force it to continue — use the Fake Acknowledgment button in the terminal. Since the Spider has multiple serial ports, it isn’t a big deal, but in theory, the TFT should work a little better if it can intercept and filter the data stream between the printer and the host software. In practice, I don’t really notice any problems. Some Octoprint plugins like DisplayLayer can send status information to the TFT, anyway.

The truth is, I don’t switch over to Marlin mode very often, but it is nice to have it if I want it, and you can even change the colors to suit you. I really wanted the passthrough mode to work but couldn’t figure out what was going on without digging into the source code, and that might be a project for another day.

Another note: Using the jog keys sets the printer to relative mode. If you are used to popping codes into a terminal, you might want to get used to issuing a G90 before you send a move because the TFT will change it to relative anytime you do a jog.

These displays are inexpensive and easy to interface and since they can still work as a classic display, there’s no reason not to do this easy upgrade. There are plenty of mounting options you can print, of course. The finished result looks great and doing things like moving in both X and Y are much easier with the new display.

marlin tft display factory

Marlin deals with a variety of different displays and needs to display a lot of different languages in different scripts on them, within their capabilities. The system described here solves some of the related problems that need to be overcome with in a limited environment.

Marlin 1.0 and 1.1 currently support: HD44780 (and similar) with Kana charset A00 HD44780 (Page 17) These are very common, but sadly not very useful when writing in European languages.

On all these displays you can define 8 custom symbols to display at once. In Marlin these characters are used on the Boot Screen, and on the Info Screen for the Bed Temp, Degree symbol, Thermometer, “FR” (feed-rate), Clock, and Progress Bar. On the SD Card listing screens some of these characters are re-used again for Up-level, Folder, and Refresh.

Graphical displays provide complete freedom to display whatever we want, so long as we provide a program for it. Currently we deal with 128x64 Pixel Displays and divide this area into ~5 Lines with ~22 columns. So we need monospace fonts with a bounding box of about 6x10. Until now we’ve been using a custom Marlin font similar to ISO10646-1 but with special symbols at the end, which made ‘ü’ and ‘ä’ inaccessible at 6x10 size.

All these languages (except English) normally use extended symbols not contained in US-ASCII. Even the English translation uses some Symbols not in US-ASCII (e.g., ‘\002’ for Thermometer, STR_h3 for ‘³’). In the code itself symbols may be used without taking into account the display they’re written on.

The upshot of all this is that on Western displays you’ll see a ‘~’ while on Cyrillic an “arrow coming from top - pointing to left” (which is quite the opposite of what the programmer wanted). The Germans want to use “ÄäÖöÜüß”, the Finnish at least “äö”. Other European languages want to see their accents too. For other scripts like Cyrillic, Japanese, Greek, Hebrew, … you have to find totally different symbol sets.

The Japanese translator dealt with two scripts, introducing a special font for Graphical Displays and making use of the Japanese extended character displays. Thus he ended up with two pretty unreadable language.h files full of ‘\xxx’ definitions. Other languages either tried to avoid words that included special symbols or just used the basic symbols without the accents, dots… whatever.

Make output functions that count the number of chars written and switch the font to Marlin symbols and back when needed. (ultralcd_impl_DOGM.h) (ultralcd_impl_HD44780.h)

Make three fonts to simulate the HD44780 charsets on dogm-displays. With these fonts the translator can check how the translation will look on character-based displays.

Split ‘dogm_font_data_Marlin.h’ into separate fonts and delete. (+dogm_font_data_6x9_marlin.h, +dogm_font_data_Marlin_symbols.h, -dogm_font_data_Marlin.h)

If you make extensive use, your file will look like language_kana.h and your language file will only work on one of the displays (in this case DISPLAY_CHARSET_HD44780 == JAPANESE).

If you want to make use of more than a few symbols outside standard ASCII or want to improve the portability to more types of displays, use UTF-8 input. Which means defining another mapper.

The mapper_tables do their best to find a similar symbol in the HD44780fonts (for example, replacing small letters with the matching capital letters). But they may fail to find a match and will output a ‘?’. There are combinations of language and display which simply have no corresponding symbols - like Cyrillic on a Japanese display or _vice-versa. In those cases the compiler will throw an error.

In short: Choose a mapper that works with the symbols you want to use. Use only symbols matching the mapper. On Full Graphic Displays all symbols should be fine. Using the graphical display, you can test for bad substitutions or question-marks that would appear on character displays by defining SIMULATE_ROMFONT and trying the different variants.

If you get a lot of question marks on the Hitachi-based displays with your new translation, maybe creating an additional language file with the format language_xx_utf8.h is the way to go.

In this file specify the mapper (e.g., MAPPER_NON) and font (e.g., DISPLAY_CHARSET_ISO10646_1) and translate some of the strings defined in language_en.h. (Remove #ifndef #endif from the defines.)

If there’s no existing mapper for your language then things get a bit more complex. With the Hitachi-based displays you can’t make something useful without a matching charset. For graphical display… let’s take the example of Greek: Find a matching charset. (Greek and Coptic)

If you want to integrate an entirely new variant of a Hitachi-based display. Add it to Configuration.h and define mapper tables in utf_mapper.h. You may need to add a new mapper function.

The length of strings (for menu titles, edit labels, etc.) is limited. “17 characters” was a crude rule of thumb. Obviously 17 is too long for a 16x2 display. So, language files are free to check the LCD width and provide shorter strings in the following manner:

On 16x2 displays, strings suited to a 20x4 display will be chopped to fit. So if shorter string isn’t provided, at least make similar strings different early in the string. (‘Someverylongoptionname x’ -> ‘x Somverylongoptionname’)

All translatable strings are first declared in language_en.h and then language maintainers follow up by providing translations in their own languages. Marlin includes a script named findMissingTranslations.sh which list the strings needing translation for one or more languages.

To find out which character set your hardware uses, set #define LCD_LANGUAGE test and compile Marlin. In the menu you’ll see two lines from the upper half of the character set: JAPANESE displays “バパヒビピフブプヘベペホボポマミ”

If you get an error message about “missing mappers” during compilation - lie about your display’s hardware font to see at least some garbage, or select another language.

MAPPER_C2C3: This is a mapper set by some language files, and indicates that Marlin should use the mapper for Unicode pages C2 and C3. In this mapper, strings are converted from raw UTF-8 input to single ASCII characters from 0-127, and indexes from 0-127 within the combined two 64-glyph pages C2 and C3.

SIMULATE_ROMFONT: Languages can opt to use the HD44780 ROM font special characters on graphical display. This method can be used for accented Western, Katakana, and Cyrillic if they don’t supply their own fonts, or just for testing character-based mappers on a graphical display.

DISPLAY_CHARSET_ISO10646_1: To support a graphical display, a language file must specify either SIMULATE_ROMFONT or a display character set. This specific option selects the Western font for use on graphical display. Others include ISO10646_5, ISO10646_KANA, ISO10646_GREEK, ISO10646_CN, ISO10646_TR, and ISO10646_PL. If no character set is specified, Marlin assumes ISO10646_1.

MAPPER_ONE_TO_ONE: Most character sets on graphical displays (including SIMULATE_ROMFONT) map the character index directly to its position in the upper half of the font. This is possible for character sets that have only 2 contiguous pages of Unicode containing all the special characters. Other mappers use logic or a lookup table to locate the glyph.

marlin tft display factory

The Artillery Sidewinder X1 is awesome and the firmware it comes with is properly configured, but unfortunately it uses an older variant of the Marlin firmware and it lacks some features.

As you can see, my TFT connector was full of glue so I had to remove the cable including the connector. Carefully remove any glue that might be around the connector, then using the included USB cable, connect your printer to the computer.

Bonus tip! You can also remove this red and black wire from the screen. By removing this wire you will be able to flash the screen without needing to open the printer again. If your main TFT cable is full of glue like mine, you can just remove this wire and continue with the firmware flashing.

marlin tft display factory

Most FDM 3D printers will use an open-source firmware, Marlin. Marlin firmware runs on the main board of the LCD 3D printer, manages all real-time activities of the machine, and coordinates all operations of heating devices, stepper motors, sensors, LCD displays, and other devices. Marlin’s control language is G-code. After the 3D model is created, it will generate a file in .gcode format through the slicing software. The .gcode file will be transparently transmitted to Marlin through a memory card or U disk. Marlin will parse the .gcode file to obtain G-code, and then use G-code to control heating. It also uses G-code language to communicate with LCD screens. The G-code language is published on the open-source website:

Marlin is a code written in C and C++. The translation code is added to Marlin so that after receiving the instruction at the beginning of A5 5A, it can translate into G-code language by itself, and then it can recognize it, and then convert the content that needs to be fed back to the LCD screen into Languages beginning with A5 5A are sent to the touch screen for communication interaction.

Multiple customized interface images:You can storage over 10K interface images in the flash memory of STONE TFT LCD. This will support you to add as many pages or functions as you want for your 3D printer.

•   Audio & video play: TheSTONE TFT module will provide the audio interface. You can storage the audio and video files in the flash memory, to play tutorial videos.

STONE TFT LCD modules are using high-quality components and have high performance on anti-interference ability. This will make sure your big project success in longtime working.

marlin tft display factory

Having different sockets for all types of displays, specific BLTouch/3DTouch connectors, ease of use with TMC drivers without external wiring, specific connectors for LED strips, removable protection fuses and a few other things are just some examples of how it has targeted BigTreeTechthe market quite successfully.

In fact, in our Telegram channel of 3DWork often enough people with this type of electronics enter to ask questions. So I had in mind for some time to prepare a guide to configure Marlin 2.x with SKR v1.4 / SKR v1.4 Turbo electronics + TMC2209 Sensorless drivers. And, of course, its splendid TFT35 V3.0 hybrid display, which seems to me a real virgin if I am honest.

In today’s article we are going to focus on how to configure our SKR V1.4 / V1.4 Turbo electronics, along with TMC2209 Sensorless drivers and the new hybrid TFT35 V3.0 display.

I am aware that you may not have the same display or your drivers are different. However, even if this were the case, quite a part of the article will be useful to you, and you only have to skip the component and find your own configuration.

However, although these tables extracted from official SKR support indicate that it does not have WiFi support, this does not in any way imply that you cannot install one if you wish. It simply means that the v1.3 versions do not have a specific port to connect them to, but you could plug your WiFi module into the TFT connector and remap it into Marlin (for example).

Before starting to edit Marlin, I recommend that you install a good code editor. For this purpose, the ideal – and recommended by me – is that you install Visual Studio Code. Not only is it a powerful code editor, but it also has a large number of extensions, and you can even compile Marlin directly from it.

Visual Studio Code can be freely downloaded (completely free) from your project’s website at next link. And once you have edited Marlin and the necessary parameters – which you will find a little later – you can compile it and upload your new firmware to the printer.

The next thing you should do, of course, is download the Marlin sources – or source code – to your computer. To do this we will go to its official website and access the download section.

Marlin Builder offers you two possibilities. The first is to directly configure the firmware with the desired parameters from your browser and download it later. In this way, you will save a lot of work in this regard and then you will only have to finish configuring your SKR electronics with TMC drivers with the information in this article.

Before starting with the Marlin configuration, if you are starting from scratch to prepare your new firmware, I recommend that you read this other article before:

The reason is that in this article I am only going to explain how to configure the SKR v1.4 and SKR v.14 Turbo electronics to use all the power that the TMC2209 (Sensorless) drivers offer us, configuring themselves “intelligently” and their “hybrid” display TFT35 v3.0

The rest of the components of the printer such as the number of extruders, speeds, printer size, temperature parameters and many other things we already explained previously in the article that I indicated a few lines above (Complete guide of Marlin).

This file is located inside the Marlin firmware, exactly in the root directory. Here you have the values ​​depending on which of the two we are going to install on your printer.

Now we are going to tell Marlin exactly what type of electronic board our printer has. I leave you a list here of the different SKR models and on your right the parameters that you must enter:

And to finish with the edition of the file “Configuration.h” we will edit two other very important parameters that we cannot forget. The first of them will help us to activate the Marlin emulation on our display.

This means that if you are using a “hybrid” display, you can change from TouchMode to marlin (text) mode by pressing the main button for 3 seconds. It is an incredible function, I personally hate touch screens and I have always preferred the original Marlin menu, so it goes to my hair as they say.

It is the turn of the file “Configuration_adv.h”. If you have done your homework and read our previous article on how Configure Marlin 2.x from scratch, you will know that this file stores more advanced configurations on Marlin, as well as more experimental or in development ones.

Now we are going to indicate to Marlin what voltage our power supply offers us, and the most common is 12V or 24V. As in my case it is 24V, I indicate it to Marlin in the following way:

We proceed to activate the StallGuard ™ option in our Marlin firmware. StallGuard™ is a Trinamic patented technology that allows load measurements to be made on our stepper motors.

And well, so far everything is ready in the Marlin side. As you can see there have not been excessive changes, but now we must modify the “hardware” part of our drivers, and depending on the manufacturer it may vary a little. We explain it in the next section.

After having left Marlin completely configured, we will proceed with the changes at the hardware level of our electronics (SKR board) and TMC drivers. In this way, we will make our electronics able to communicate intelligently (UART), and have each and every one of the advantages of working with TMC drivers.

There is a very simple way to determine if we already have UART smart communication. If you remember correctly, while configuring our Marlin firmware, we activate an option called MONITOR_DRIVER_STATUS.

To send the M122 command I usually use Repetier. Not that it is better or worse than Pronterface (another alternative), but I used it for many years as a Slicer and I use it when I need to send some g-code command. You can also use the g-code emulator offered by the TFT35 hybrid display, but it shows so much information that it is not recommended.

In this image you can see the output of the M122 command on the Repetier log screen. It shows you a multitude of parameters and their assigned values, such as the configured voltage, the established micro steps, the StallGuard configuration and its Marlin values ​​and many other interesting things.

I have to confess that the “hybrid” BIGTHREETECH screens are truly spectacular. I have always preferred the Marlin menus on my MINI12864 Displays and have the possibility to activate / deactivate any firmware option without waiting for odious display updates that either arrive late or simply do not arrive. This is something that usually happens on TouchScreen displays.

I remember some time ago trying to activate the BabyStepping function with G-Code commands on TouchScreen displays and not being able to. And although it is hard to believe, that function exists since version 1.x.x of Marlin!. Something vital to calibrate the prints on the first layer correctly.

When I first read that these displays emulated both modes, I was pleasantly impressed, so I decided to purchase one for myself SKR electronics without hesitation. What don’t you want to complicate yourself and you’re only going to print? You choose TouchScreen mode. What do you want all the power and versatility of Marlin? You switch to the Marlin emulator, it’s that simple.

And this does not mean in any way that the TouchScreen mode is not complete, vice versa. It has almost all the functions that Marlin offers and that you need to use every day. The support from the programmers is noteworthy.

Because we are going to use both modes, we will need to make 3 connections on our display board, which are the ones you can see in the image above (click to enlarge). The 2 typical serial 12864 connections, which are the EXP1 and EXP2 connectors. And then the TouchScreen connector that SKR will use to communicate with the display, marked as TFT in the image.

In the video below you can see how to switch between MARLIN modes (text mode) to TOUCHSCREEN mode (touch screen). As you can see, simply press the main button for 4 seconds and it will give us the option to change to the desired mode.

It is likely that after compiling the Marlin firmware and uploading it to your electronics, an Eeprom error may appear on your Touchscreen or the Marlin emulation screen. If this is the case, don’t worry as it is normal.

Another problem that usually appears when we use the Touchscreen mode is that it indicates that there is no communication with our printer. That is because we have different communication speeds selected in our Marlin Firmware and on our display.

If you have followed this manual to the letter you will remember that we set the communication to 250,000 baud in Marlin (#define BAUDRATE 250000). Now you must locate on the display where the communication is configured and indicate this same value.

Remember that you have to do this from the “Touch mode”, not from the Marlin emulation (text mode). To make your task easier, I put the route to follow: