BTT TFT and MKS TFT advanced firmware
thingiverse
An enhancement of [BIGTREETECH TFT firmware](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/tree/master). It contains many additional enhancements and bugfixes. Among others it contains FW for the Artillery printer TFTs also with the new GD processor. This addition of GD processors is a work of [Christian Bianciotto](https://github.com/ciotto/BIGTREETECH-TouchScreenFirmware). Another big difference from the original firmware is the implementation of the feature I call "Hesitation Guard". It is fundamentally different from the ADVANCED_OK present in the original firmware. ADVANCED_OK is deprecated, no one really uses that, it only mitigates the outcome of a problem and creates other issues. On the other hand Hesitation Guard deals with the root of the issue and it does it dynamically, based on the momentary load of the TFT. As the name suggests, this feature guards against hesitations during printing (resulting in blobs) from TFT media (SD Card, USB). Full description about the FW and downloadable files here: https://github.com/kisslorand/BTT-TFT-FW If you like the extra work done or if you want to contribute to further improvements you can buy me a coffee here: [paypal.me](https://paypal.me/paypalkisslorand) <br> ### Changelog: <br> __2023.X.9:__ - fixed the issue with thumbnails disappearing when going through files - fixed the issue with some TFT variants where the text in the "Info" menu was shifted downwards so the lower lines were not legible <br> __2023.X.8:__ - __IMPORTANT:__ DMA based serial transmission implemented. It brings an even more stability improvement, it gives a speed boost of at least 20% to the TFT during print. ([PR #2844](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2844)) - reworked the buzzer handler, it is purely interrupt based with the benefit of more consistent sound patterns and no interference with other tasks ([PR #2846](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2846)) - fixed some bugs in the numpad ([PR #2856](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2856)) - rework of the "Corner Leveling" menu to accomodate more printer setups to the latest Marlin changes ([PR #2825](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2825)) - Please note that this change made the "config.ini" file to have some parameters removed ("Machine size") and some new parameters added ("Motion limits" and "Bed size"). Update your "config.ini" according to your printer's setup. - removed "Disarm" button from the manual leveling menu (there was no practical use of it there) ([PR #2825](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2825)) - there's no submenu there anymore, "Distance" and "Shim" buttons are visible in that menu - removed "M48" button from "Corner Leveling" menu (had no reason to be there) and replaced it with a button for "Home Z" function ([PR #2825](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2825)) - some slight speed improvement due to a rework of the OS time IRQ handler ([PR #2833](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2833)) - cosmetic rework of the "Move" menu ([PR #2834](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2834)) - there's a print abort procedure rework making it react even more faster than before - fixed a bug where upon inserting or removing the SD card or the USB stick a permanent message was shown in the title area ("Busy processing, please wait...") - added an uploader for the original bootloader for the Artillery MKS TFT28 with GD32F305VCT6 (v3.05) <br> __2023.VIII.24:__ - __IMPORTANT__ more stability improvement during print. The hesitation guard is no more static, it is dynamic now, it constantly adapts to the situation. (for ex. it adapts to the situation where in a very busy print job the user start pressing buttons, moving across menus; it adapts to external commands (ESP3D, terminal, etc) perturbing the print job and so on...) - added an uploader for the patched bootloader for the Artillery MKS TFT28 with STM32F107VCT6 MCU, this bootloader replaces the annoying long "beep" at boot with a short "chirp" Just copy the file to the SD card and update your FW as usual. While flashing the patched bootloader there's a red dot and a progress bar. When the bootloader flashing is finished the progress bar gets filled and the red dot changes to a blinking green dot. After this you can proceed to upload your favorite regular firmware. - fixed some issues with MKS TFT28 for Artillery printers equipped with GD32F305VCT6 MCU: - the connected WiFi (ESP3D) was assigned to UART3 instead of the port labeled "WiFi", it's been fixed - if "mkstft28evo.cur" file already existed on the SD card than upon a FW update the "mkstft28evo.bin" FW file is not renamed to "mkstft28evo.cur" and on the next rebood the FW update process would execute again; it is a bootloader bug but it was fixed in the firmware <br> - includes [PR #2825](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2825) (fixes some issues due to some Marlin updates) <br> __2023.VIII.13:__ - added an uploader for the patched bootloader for the Artillery MKS TFT28 with GD32F305VCT6. Just copy the file to the SD card and update your FW as usual. While flashing the patched bootloader there's a red dot and a progress bar. When the bootloader flashing is finished the progress bar gets filled and the red dot changes to a blinking green dot. After this you can proceed to upload your favorite regular firmware. The newly flashed bootloader is the one that does the following: 1. no more need for the "mks_font", "mks_pic" folders and "mks_config.txt" file for the FW update to be executed 2. FW update doesn't erase the SPI flash anymore, no need to update fonts, icons and config at every FW update 3. replaces the annoying long "beep" at boot with a short "chirp" <br> __2023.VIII.11:__ - added patched bootloader for the Artillery MKS TFT28 with GD32F305VCT6 ("GD32F305VC BootLoader v3.0.5 Patched.bin") - no more need for the "mks_font", "mks_pic" folders and "mks_config.txt" file for the FW update to be executed - FW update doesn't erase the SPI flash anymore, no need to update fonts, icons and config at every FW update - removed the annoying long "beep" at boot, replaced with a short "chirp" __-Attention!-__ With this bootloader it is not possible to restore the original FW from SD card. The original bootloader is needed for that. <br> - added patched bootloader for the Artillery MKS TFT28 with GD32F305VCT6 ("GD32F305VC BootLoader v3.0.5 Chirp.bin") - removed the annoying long "beep" at boot, replaced with a short "chirp", it retained all other original functionality <br> - fixed some Artillery TFTs not having touch sounds - a new build was necessary as it is caused by HW differences (the file is: "MKS_GD_TFT28_V4_0.27.x Sound_Fixed.bin") <br> - added boot logo for Artillery printers - to use the Artillery logo at boot, replace "Logo.bmp" file in the "bmp" folder <br> __2023.VII.31:__ - [PR #2591](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2591) included - [PR #2701](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2701) included - [PR #2778](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2778) included - [PR #2793](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2793) included - [PR #2798](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2798) included - [PR #2799](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2799) included - [PR #2805](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2805) included - [PR #2807](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2807) included - [PR #2817](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2817) included - [PR #2818](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2818) included - [PR #2822](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2822) included - eliminate some frequent casting thus reducing the size and increasing the speed of the FW - rework of [PR #2788](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/pull/2788) (which is a partial fix only and introduces a new bug) - bugfix of [issue #2789](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/issues/2786) - huge print stability enhancement as per fixing [issue #2761](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/issues/2761) - added support for the Artillery MKS TFTs with GD32F305VCT6 MCU (all credits go to @[ciotto](https://github.com/ciotto/BIGTREETECH-TouchScreenFirmware)), a feature request discussed [here](https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware/issues/2391), an addition with some extra fixes as follows: - RAM increased to 96K (from 64K) - fixed flash size (originally was defined to 256K but the bootloder is taking up 28K space so only 228K remains for the FW) - removed serial port 4 as this MCU has only 3 USART ports (the TFT would freeze in certain circumstances when trying to acces serial port 4) - There is an issue right at the beginning of the RAM, whatever variable is there, their values are altered (probably by the bootloader). The compiled FW in [ciotto](https://github.com/ciotto/BIGTREETECH-TouchScreenFirmware)'s repository has an issue in the variable "fanCmd[]"; "fanCmd[4]" points to '\0' (the address is one value lower) and "fanCmd[5]" points to "106 P5 S%d\n" instead of "M106 P5 S%d\n" (the address is one value higher). It has been fixed in the linker script reserving a few bytes (0xF0) at the beginning of the RAM. - added some [instructions](#special-notes-for-artillery-mks_gd-tfts) for this TFT's FW upgrade - added bootloader v3.0.5 for the MKS TFT28 with GD32F305VCT6 <br>
With this file you will be able to print BTT TFT and MKS TFT advanced firmware with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on BTT TFT and MKS TFT advanced firmware.