marlin tft display in stock

Instead of expanding existing 12864 graphical interface I"ve made a new implementation of MarlinUI class dedicated for color screen of particular resolution (128x128).

With MarlinUI class implementation, once you have a working status screen you need to implement about 5 drawing functions to get a fully functional menu.

With new UI working it was a matter of several night to implements new IO subsystem for FSMC and get new UI to MKS Robin TFT. Then I could start working on new display resolution and touch support.

marlin tft display in stock

WARNING: BTT does not officially provide MKS TFT hardware support. MKS TFT is maintained by open source contributors and BTT does not bear any risk of MKS TFT hardware using this firmware.

In case your mainboard provides EXP1 and EXP2, you have to connect 2 ribbon cables connecting EXP1 and EXP2 of the mainboard to EXP1 and EXP2 of the TFT. In the Marlin firmware of your mainboard, make sure that ONLY REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER is activated in Configuration.h and that all other controllers are Deactivated (especially CR10_STOCKDISPLAY).

In case you have an "E3" mainboard which provides a single EXP connector, you have to connect 1 ribbon cable connecting EXP of the mainboard to EXP3 of the TFT. In case your TFT does not provide an EXP3 connector but only two 10pin connectors (TFT24 v1.1 for example) you will need a "Y-split" cable with one 10pin connector on one side (for the mainboard) and two 10pin connectors on the other side (for the TFT). In the Marlin firmware of your mainboard, make sure that ONLY CR10_STOCKDISPLAY is activated in Configuration.h and that all other controllers are Deactivated (especially REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER).

Any binary file for an MKS firmware (e.g. MKS_TFT28_V4.0.27.x.bin) MUST be renamed to MKSTFT*.bin (e.g. MKSTFT28.bin, MKSTFT35.bin etc.) in order it can be recognized and installed by the TFT

A configuration can be uploaded without the need to upload the firmware or the TFT folder again, as long as the firmware and the configuration file are from the same version (see Configuration Update).

Copy the precompiled BIGTREE_TFT*_V*.*.*.bin or your self compiled firmware, plus the TFT* folder of your preferred theme along with config.ini to the root of a blank SD card not greater than 8GB and formatted as FAT32:

Optionally, copy one or more language_*.ini file(s) onto the SD card. Doing so, it will allow you to switch between English and the uploaded language(s) from the Language menu present in the TFT firmware. We recommend to upload the minimum amount of languages to keep the memory usage low. The language_*.ini file can be edited to change the text shown on the TFT:

Place the SD card with BIGTREE_TFT*_V*.*.*.bin, the TFT* folder, config.ini and the optional language_*.ini file(s) into the TFT"s SD card reader and reset your TFT (or optionally - power cycle your printer) to start the update process:

Unless the default hard coded settings have been properly configured (e.g. a self compiled firmware was installed), after an hard reset the TFT typically needs to be reconfigured with the proper config.ini file (see Configuration Update)

When the default hard coded settings are properly configured for a TFT and the TFT"s basic function such as surfing on the menus is working, in case of issues the user can opt to apply only a configuration reset (soft reset) instead of an hard reset.

A BIGTREE_TFT*_V*.*.*.bin file will be generated in the hidden .pio\build\BIGTREE_TFT*_V*_* folder. Follow the update process outlined in the Firmware Update section above to update your TFT to the latest version

TIP: In case there is a problem compiling the TFT firmware try to restart VSC. If this does not help and you are using macOS, delete the packages and platforms folders usually present under the folder /Users/***username***/.platformio/.

In case the TFT needs to be placed with a vertical orientation (e.g. 90°), the firmware needs to be compiled with the portrait mode support and installed following the procedure below:

NOTE: With only power supplied, you should be able to navigate through the menus using the touchscreen and even to switch to Marlin Mode (if available). Marlin Mode will not show any interface without a proper EXP connection (see Marlin Mode Setup).

OctoPrint, ESP3D, Pronterface etc, connected to a TFT"s serial port, can browse files on both the TFT"s and mainboard"s media devices and start a print that will be handled by the host (TFT or mainboard). The following actions and the related triggering G-codes are currently supported by the TFT fw:

OctoPrint, ESP3D, Pronterface etc, connected to a TFT"s or mainboard"s serial port, can host a print (print handled by the host) and optionally can trigger some actions to the TFT sending specific G-codes. The following actions and the related triggering G-codes are currently supported by the TFT fw:

The remote host must properly handle the received notifications. For example, if //action:notification remote pause is received then the remote host must effectively pause the print and send M118 P0 A1 action:pause in order to trigger the pause action to the TFT.

With the exception of TFT70, the maximum number of displayable layer count is 999 (there"s no space to display layer number and count if the layer count is above 999)

The most recent version of the standard bigtreetech TFT firmware has built in support for RepRap firmware. The pre-built images have this enabled by default.

The TFT35 E3 V3.0 has 3 cables to connect to the mainboard. Two 10 pin ribbon cables and one 5 pin serial cable. The 2 ribbon cables connect to the EXP1 and the EXP2 connections on both the TFT35 E3 V3.0 and the MKS mainboards.

NOTE: On the MKS mainboards there is an issue that involves at least the MKS GEN_L, MKS SGEN, and MKS SGEN_L models. The EXP1 and EXP2 connections have the socket shell installed wrong way around. The notch that indexes the cable should be facing towards the mainboard. If you get a blank screen on the TFT35 E3 V3.0 touchscreen after connecting the two EXP cables and turning the printer on, turn printer off and disconnect the 10 pin cables from either the touch screen or the mainboard and using small diagonal cutters trim the tab down to be as close to flush as you can get on both cables (and only on one end) and plug them back in with the trimmed tab now facing the mainboard.

Edit the Configuration.h file and enable (uncomment) REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER. Rebuild and deploy the Marlin firmware to your 3D Printer.

In case filament data is not present in the G-code, the filament length data is calculated during print. Length is calculated regardless of using the TFT USB, TFT SD or the onboard media. Calculations are done in both absolute or relative extrusion mode. Filament data takes into account the flow rate also but with a caveat. It has to be the same flow rate during the entire time of the printing, because the end result is calculated based on the flow rate at the time the print has finished. If flow rate changes during the print the results will not be accurate anymore.

marlin tft display in stock

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 in stock

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 in stock

In addition to a serial/usb/host interface, Marlin also includes a menu-based user interface for inexpensive character and graphical LCD controllers. Rotate a knob or use buttons to navigate menu items, edit values, and make other adjustments. Click the knob or press a button to choose menu items, exit adjustment screens, and perform other actions.

Note: In low-level contexts we refer to the first extruder as E0, the second as E1, etc. However, at “user level” in the LCD menus, we refer to the first extruder as E1, the second as E2, etc. (Marlin 2.0 includes an option to show the first extruder as E0.)

The move axis sub-menu was reorganized for Marlin 1.1. To use the move commands, first select the axis to move, then select the move distance. Use the controller wheel (or arrow buttons) to adjust the axis position. For larger move sizes, Marlin waits until you stop moving the controller for 1/2 second before it starts the move, giving you an opportunity to catch overshoot. Item Description Requirements Free XY Move Z down to safe-zone DELTA (above safe zone)

marlin tft display in stock

Select the .bin file that matches your display-version and the display folder. For example, TFT35 V3.0 would select BIGTREE_TFT35_V3.0.25.1.bin and the TFT35 folder.

Note; the TFTxx folders have the fonts (.fon) & icons (.bmp) used; if you don"t copy this folder, you will not be able to read the prompts and the icons will be scrambled after the update. The reason is when flashing; the location to these files has changed, but the previous files don"t start at that new location.

Power up and wait, You will see some kind of updating status % if this doesn"t happen or fails; try another SD card. I think FAT32 works the best for these displays.

If you plan to use this SD card for printing Gcode files, then delete the .bin file; if not, then on each powerup or reset, the display will update as long as that file is in the root. No issues leaving the TFTxx folder since these files are only used when updating the firmware.

My TFT 24 from bigtreetech woun"t update, hangs in config.ini and stays in that screen. I tryed to flash with sw-link connection but that don"st work, also woun"t update.0

If you are having trouble flashing new firmware, ie the screen dpes not change after powering up, and you have a " printer not attached" error, the following shows settings to be followed, and is a good overview of the Marlin code issues that can arise.

Still missing 1 bmp file. U_DISK.bmp. I have checked all of the bmp files in all the directories and it is not there. The TFT will not update without it. Help!0

I have a BTT TFT35 v.2.0 and can´t find my screen in BTT github directory, only the v.3.0. But it also stands "support TFT35 V1.0/V1.1/V1.2/V2.0/V3.0, TFT28, TFT24 V1.1, TFT43, TFT50, TFT70" to the right of the codes. What should i do?0

Excellent instructions for updating the display. Thank you for taking the time to make this instructable. I Would not have figured it out on my own.ReplyUpvote

I was going to toss my BTT TFT 35 3.0 card because the screen was just like the one in your description. I followed your instructions and now my display works perfectly. thank you

marlin tft display in stock

Marlin 2.0.6.1 is a maintenance release with many performance and stability improvements, some nice new features, and support for a small batch of TFT displays and Touch controllers. Enjoy!https://github.com/MarlinFirmware/Marlin/releases/tag/2.0.6.1…

marlin tft display in stock

Replacing the LCD screen of your Creality Ender 3 with a touchscreen is a very simple upgrade. If you find yourself with a lot of free time while social distancing making sure your printer is running a peak efficiency is a nice constructive way to pass the time. Following these easy steps you can swap your Creality screen for a BigTreeTech TFT screen with minimal fuss. Your Ender 3 will be looking great in no time.

This upgrade is mostly cosmetic as the default screen on the Ender 3 isn’t much to look at. That is not to say that there isn’t added functionality with a new screen. The interface for options like the movement control are far easier to use on a touch screen. If you wanted to jog your nozzle 10mm to the right in X, -5 to the back in Y, and then 2 up in Z you would be jumping through multiple menus back and forth. With the touchscreen all those controls are displayed in one menu making it a lot easier.

The Bigtreetech TFT35-E3 v3.0 also has a full sized SD card slot, a USB slot, and connections for a filament runout sensor (if you have or want one) so there are some additional improvements to be had as well. The TFT35-E3 v3.0 also has a gcode terminal so you can run commands direct on the printer without the need of connecting it to a PC or Raspberry Pi. The TFT35-E3 v3.0 also has a spot to install a dedicated WiFi moduleif you want your printer hosted on your network.

The back of the stock Ender 3 LCD is connected to the printers mainboard by a single ribbon cable. Unplug this cable but try not to damage it. The cables that shipped with my TFT35-E3 were too short to reach from the screen to the board so I needed to reuse the original.

It does take a minute for the LCD to detect your printer and connect over serial so don’t worry if it says “No Printer Attached!” for a few seconds. If you long hold the dial/button you will be brought to a touch screen interface which allows you to select between the touch screen interface and the legacy Marlin interface. It is a nice option to have and if you are running with a stock Creality board then you will be using the legacy interface.

Compiling the firmware is not hard but Marlin 2.0 on a 32 bit board requires different software then was used previously. Atom was a popular editor but recently they have announced that it will not support Marlin going forward so our best choice is Microsoft Visual Studio Code. Download it and then install the PlatformIO extension.

The TFT-35 touch screen is a nice addition to my modified Ender 3. It allows for easier movement of the stepper motors from a single screen. I now have filament Load and Unload buttons which is an improvement to saying gcode files on the SD card and printing them to load filament.