New TFT release

I updated the TFT files today, Releases · V1EngineeringInc/BIGTREETECH-TouchScreenFirmware · GitHub

Biggest change is all BTT screens are now included. Dump all the unzipped files onto your SD card and reboot the screen will pick the right files by itself. (mine all flash upside down and boot correctly, so don’t panic).
The last update we did was the end of Dec, here is the BTT changelog, nothing stands out to me. Commits · bigtreetech/BIGTREETECH-TouchScreenFirmware · GitHub

5 Likes

To my surprise two of my printers are running “GD” screens. I have flashed them many times with no issues…I suspect they will be better now somehow, running the right firmware. For this reason, if you are on the fence, I would update in case you also have a GD chip.

1 Like

I’ve just updated my TFT to this latest version. I am now getting the error ‘Unknown command: “M420”’ at the end of each homing cycle. Not sure whether I am the only one? Any known fix for this?

How are you triggering that homing cycle?

I have used it on all the printers and my LR3 (headless) no sign of it for me.

There are settings in the screen for bed leveling, maybe you mistakenly turned them on?

I am using a fresh clone of your repo, including bmp’s, fonts and your default config.ini. I compiled the firmware with PIO from your sources without any changes. I trigger the homing cycle in TFT mode via Move/Home/Home. Maybe you should try your LR3 with the TFT. It happens when I home all axes at once and also after homing an individual axis.

1 Like

Don’t know how to do that. I’ve just flashed the image, and after reboot I directly home my LR3. I tried multiple times with the same outcome.

How, what exactly are you doing to “home”? I want to replicate your issue.

I think this might be the issue. Try just using my zip package, don’t clone anything as I pick and choose files for the package from one of the three repo’s I keep going. https://github.com/V1EngineeringInc/BIGTREETECH-TouchScreenFirmware/releases/download/3-2023/CNC.TFT.Package.zip

How, what exactly are you doing to “home”? I want to replicate your issue.

(1) Touch “Home” in the main menu:

(2) Touch “Home” in the Home-Menu:

(3) Enjoy the message:

Try just using my zip package, don’t clone anything as I pick and choose files for the package from one of the three repo’s I keep going.

I cloned your ‘CNC_Version’ branch and I assumed that this would be the source for the firmware in CNC.TFT.Package.zip. Isn’t that right?

Will use your zip package as next step and come back …


Not my firmware.

Correct. But it demonstrates the steps to get the error message as requested. It happens with your firmware as well.

My firmware as flashed does not cause that on either version. The firmware you are flashing must have that built in.

To be extra sure I just reflashed my CNC and homed, everything worked as expected no error.

For troubleshooting it is best to stick with the exact firmware you are saying you have an issue with. One single change can cause lots of trickle down errors, and swapping buttons takes extensive edits.

I suspect since you have flashed something over mine that is showing the same revision date it is not getting overwritten.

Hmm, I’ve just reflashed all files from your CNC.TFT.Package.zip. The update process worked flawlessly. All files get the ‘.cur’ extension as expected. The menu structure after this reflashing is your standard structure, i.e. without my modifications. But Homing results in the same error.

I’m getting this error now 1) Using your compiled firmware from the ZIP 2) Using the repo sources from ‘CNC_Version’ and compiling them myself 3) Using my adapted software (which bases on the repo sources from ‘CNC_Version’).

I suspect since you have flashed something over mine that is showing the same revision date it is not getting overwritten.

This may explain it and I’ll check the version information after updating the tft in detail tomorrow. For my modifcations I changed the FLASH_SIGN dates for icons and languages to a later date in settings.h, maybe a downgrade isn’t possible anymore. I seem to be the only one with the problem anyway, so I might have created the problem myself.

Thanks anyway for your help!

Take a look through your config.ini file and make sure there aren’t any M420 in there. You can configure special gcode to be played at certain times.

So, I’ve checked the source code and I think I’ve found the root cause of the M420 message issue.

On 10 Feb 2023 BTT changed the behaviour of the ‘G28’ (Homing) command:

They changed it in a way that whenever a ‘G28’ is received, an ‘M420’ is executed. In the previous version, i.e. prior to 10 Feb 2023, an ‘M503 S0’ was executed instead. This is the reason why I am seeing the M420 message after each homing cycle with the new tft firmware release and did not see it with the previous tft firmware release as per December 2022. I neutralised this change, compiled again and the M420 message disappeared. I’m aware that this is not a reliable fix as 3D printers may require the newly introduced behaviour.

BTW: I am getting the same error message when sending the M420 command manually to Marlin via the terminal, i.e. not via the tft menu.

What I am not getting is that you @vicious1 cannot reproduce this issue. The sources I can see in your 3 repos (CNC_Version, Repeat_Version, fresh; plus the 3-2023 release) have the above change incorporated…

2 Likes

That has to be alongside something else, neither of those commands home or do a G28. So there is an “if” above that somewhere. The home button does work, for some reason you are also getting the add on command.

If you scroll up, there is a lot going on, I really have no idea what actually brings it to the switch commands but there is more to it since for both of us G28 does actually work, for some reason yours also sends M420. BIGTREETECH-TouchScreenFirmware/interfaceCmd.c at 699c49475a44510fdd7c0673ace3048463b74ea4 · bigtreetech/BIGTREETECH-TouchScreenFirmware · GitHub

To me if you look at Marlin, Bed Leveling State | Marlin Firmware, M420 So, is a command to keep leveling on. So that leads back to your config must have leveling turned on , either in your board firmware…or the screen config. Are you sure your control board firmware does not have bed leveling turned on?

1 Like

If you scroll up, there is a lot going on

Yep, agree. I don’t understand the code 100% either. Removing the ‘storeCmd(“M420\n”)’ makes my problem disappear, so this is definitely where my problem starts.

for some reason yours also sends M420

Are you sure your tft software doesn’t? Maybe it is our Marlin firmwares that react differently on that command from the tft.

…or the screen config

Nope. Definitely not. I’ve checked multiple times, and used your standard config file:
‘auto_load_leveling:0’

I also couldn’t find any sign that my tft software or config are corrupt; the compilation works properly, the software does what I am telling it to do, flash memory is updated whenever I want it to update.

Are you sure your control board firmware does not have bed leveling turned on?

No, I am not. I flashed the firmware for my SKR Pro 1.2 from V1CNC_SkrPro_DualLR_2209-2.1.1.zip months ago and have never touched it since then. Is there an easy test to find this out?

Thanks again for your help.

1 Like

This code is (I think) performing actions based on when the gcode is sent from the tft. There is some stuff at the top related to where the gcode came from. Then a gigantic switch to get only G28.

I agree with Avatorio though. If you’re running this code, Ryan, I would expect it to send M420 whenever G28 goes into the sendQueueCmd. Maybe the G28 X is not using the queue and G28 is? Or maybe there is still some difference between the marlin firmware you two are running.

M420 by itself is not setting anything, it is a query to set the state of the tft to the state of Marlin.

The best way to know for sure is to hook up another usb uart connector on the tx line from the screen to the skr. Then watch what commands go from the tft when you hit the home button.

At any rate, this is a bug introduced 1 month ago. That M420 command should be gated on the bed leveling parameter and it isn’t.

1 Like

I’ll do a few more tests in a bit.

3 Likes

I messed with all my screens yesterday and even a bunch that I flashed for orders. None had any error message when homing, and the headless one shows no errors or any sign of M420 in the terminal window when homing.

1 Like