Btt tft3.5-e3 v3.0

As I’m in the debugging stage, #4 would be quite nice, just to verify connectivity and that the firmware made it to the board. I have a TFT35 V2 and a SKR Pro 1.2.

1 Like

I thought baby stepping was on the cut screen. I don’t have it enabled in the Marlin FW though Or I do and it doesn’t work.

1 Like

Right now I just have the latest but firmware. I will try out Lokis version within a couple days.

1 Like

I’m seeing it in the code. My desk setup won’t let me run code ATM, so I still need to test it.

This is an interesting project. I’m still in the middle of my move but expect my MPCNC and programming computer back in a couple weeks.

Some of the BTT changes are pretty destructive. They do add a lot of functionalit but lots of if/then statements to try and maintain backwards compatibility.

My version was before the knob did anything. The big one to pay attention to is making sure M00 works and the gcode from SD card on the TFT doesn’t include the M84 command. It is buried in there and causes the Z to fall.

Babystepping wouldn’t work for me even though I have it on the TFT because I disabled auto-level which killed off all the auto level related features like babystepping.

Hi Jeff,
I’m really proud you found my work intresting!
As explained in the thread MPCNC BTT touchscreen firmware for TFT35 2.0 my intention was to port @blomsd project to the latest FW by BTT trying to keep all my modifications under some specific configuration defines (#define CNC_MENU and #define CNC_LASER).
Moreover I have added:

  1. CNC specific icons and labels in order to avoid to change icons and labels already used by BTT standard FW (solution used in blomsd baseline)
  2. CNC specific menu functions (laser.c and spindle.c) in order to avoid to deeply modify other menù functions developed by BTT for other purposes (e.g. blomsd was using fan.c to drive the laser)

My target was to modify the printing screen (the one with real time informations) in order to show only information relevant for CNC machines, I succeed removing the 3dprinting relevant infos but with my limited programming skills I wasn’t able to reorganize the icons in order to fill the available space.

@dart1280 have done some progress on my baseline, mainly adapting the laser management to his machine requirements but I didn’t have the time to integrate his modifications in my project till now.

I hope that working all together we will succeed having a TFT 100% configured for MPCNC.

1 Like

So since I wrote this, I have been deep diving, trying to do to loki’s FW what loki did to blomsd’s firmware :stuck_out_tongue:

I had it basically ported, but the CNC_LASER isn’t quite right yet. I am looking at that now.

Since 26, they have added a config.ini file that can turn a bunch of stuff on and off, including the unified menu, which is super annoying, but if we managed to push all of our CNC and laser stuff under a config option, we might have a chance of getting it merged back upstream. I have zero faith that they will keep it maintained, but there is a chance it will be a tad easier if we do get it upstream. So I am working on replacing CNC_MENU with an option in the .ini for cnc_mode and laser_mode.

I definitely need to follow through and verify these two features are still functional. Thanks for pointing that out. I have honestly jumped straight to loki’s version, because it already had 26 in it. I need to go back and look at yours to see if there’s anything that loki missed.

This is still a WIP, but you can see what I’m working on here:

The changes upstream have certainly been destructive. I definitely can’t spend a day on this whenever they do an update. It is not nearly as stable or as friendly to updates as Marlin is. So there’s a good chance this version will also remain on a version near this for a long time.

1 Like

This is where I want to keep it for today. I didn’t do any jobs with it, but I can poke around and it seems to work pretty well.

I’m curious to see what @dart1280 is doing.

I do like the new config.ini capability. It would just mean that someone could change the config.ini file, and install the same binary files and they could change things like the cnc_mode or laser_mode on or off. I would also like to turn the spindle control off until someone actually activates it. Needs work though to make it a bit easier to use.

I like the config.ini’s ability to do custom gcode too, but I don’t have room on the cnc menu for a custom menu button. So I need to think about what I could remove to get that to fit in there. Maybe combine the spindle and laser into one menu.

1 Like

Man this is very over my head so any improvements to make is a little easier would be awesome.

I see two main issues, over complicated file structure on the firmware, hidden commands (eg M84) built in that are not optional in config.ini. The bummer about the built in commands is the same options are in Marlin already Specifically M84) if we chose not to use them in Marlin it should not be in the TFT. The third minor is it is not well suited for anything other than printing but seems like if the first two things were cleaned up a bit it could be easy to fix the third.

The screen seems like it has a lot of possibilities but I have put some time into trying to figure it out and I get lost real fast.

This is definitely going to be a pain to work on, but if we get it working well enough, you could just treat it like the reprap lcd, and just keep the firmware constant. There’s nothing that says you can’t flash the firmware I just posted on an lcd and sell it as is, for years. I think we will want to do some updates to fix minor bugs as they arise, and I’d like to push the limits a little to do more, but the bar should just be set at “better than the reprap one” anything over that needs to justify the extra work needed to do it. Including extra time to test it.

I don’t see any reason you need to understand this as well as you understand Marlin.

BTW, you could probably connect this to a rambo too. We just need to enable the uart in the rambo firmware. It isn’t an skr screen.

Cool, Agreed!

1 Like

Dang that took a minute. You used a different config file. I could not figure out where I was going wrong.

That looks very promising. I want to dig through a little more to make sure we are not missing anything but I think that is the ticket!

1 Like

“I’m curious to see what @dart1280 is doing.”

Got about as far as I can with this, I have hacked it about to get what I wanted…not sure it will be of any help for those wanting to provide continuity to the firmware.

tft35.zip (1.9 MB)

Also note I have the BTT TFT35 v2,0…not v3 although I also compiled it for a v3.0 and a E3 v3.0 and the display wouldn’t re-flash so it see’s the v3 firmware the same as the v2…

Did you change any of the source code? I can’t do anything with just the .bin.

Just added my comments on the falling z axis problem here.
Please chime in if you can and maybe we can get some action on this.

1 Like

I just tried the homing menu is not working right. Home X homes Z, and the others don’t seem to work at all.

Something is up with my firmware or the tft. I tried a few things m119 from the tft terminal is inconsistent. m119 will either work or not with the same endstop triggered. But dual homing works fine in the old school LCD mode.

Nope Baud rate made no difference.

Hi Jeff,
hi had a look to your integration and I think that the configuration by variables instead of compilation switch probably can be integrated in the machinesettings.c (that could allow on the fly modification without TFT fw recompiling).
I would suggest, laso, to integrate @cmenard commit G92 Touchplate making the touchplate offset configurable by settings.c menu instead of define assignemnt in Configuration.h file.

Allowing machine configuration on the fly @vicious1 could sell the TFT with a general purpose firmware that can by re-configured by the final user just by switching on/off features in configuration menus instead of recompiling it.

What’s your opinion?

1 Like

That’s really dumb to have a hard coded M18. I don’t see any reason for that. It makes no sense to me. I will disable it in our branch. But a better solution is to probably change that line to be something from the config.ini file. If I get some time, I will make a PR for it.

Yep. I see the issue there. Will fix. Thanks for finding that.

Like, you can change it on the fly in the settings menu? That would be neat.

We always do that G92 thing. This makes me think that we should be doing this with M851, but I think it is reasonable to do this configuration for us. I’ll see how quick I can add that. I might also check out the machine settings first, which would give us a chance to change it from the screen itself.