Klipper3d / klipper

Klipper is a 3d-printer firmware
GNU General Public License v3.0
9.5k stars 5.32k forks source link

BigTreetech TFT 24 not working #2231

Closed erik23de closed 3 years ago

erik23de commented 4 years ago

Hi,

Tried to set up Klippy on an skr 1.3 (from the example- configs), copy & pasted the Preprap GLCD into the config. Usually, testet with 3 Boards, Marlin and Repetier, the BigTreetech TFT 24 (and 35) works as a 12864 GLDC like a charm (First Display I'm really happy with). But it does not with Klipper, Screen stays empty (but reset switch works). Wiring is okay, it works with Marlin on the same board. What did I wrong?

klippy.zip

Vybramo commented 3 years ago

Realy thank @Sineos and @teeminus I do confirm that TFT24 is working as per your instructions. At first (maybe very tired eyes) I did not find/saw the st7920.py in klipper/klippy/extras/display.

Modded and now it's showing clearly the screen text:

TFT24 For testing purposes I warmed the nozzle to 50°C but the TFTscreen remained at 21°

moreover The mainsail webgui is reporting me dirty Klipper version,I Suppose cause of the editing: Schermata 2021-01-17 alle 11 20 59

How you let ur display work ? Its will be good for me just use it in marlin mode.

SmartFabian commented 3 years ago

Hello,

the mod is working for me, but I have the same flicker during printing as @teeminus. Only during printing 80% of the display turns black for 1 sec and then show again everything for 1 sec during the hole print. Is there a workaround?

EDIT: I have the same issue if I now use the original ender 3 display. and again only during a printjob

Greetings from Germany

pixeldoc2000 commented 3 years ago

@teeminus

Did a Test on my BIQU B1 with the stock "BIGTREE TFT35 V3.0 B1 Touchscreen" flashed with your NoTouchFW v1.3 .

grafik

It works fine. Thank you for your awesome work!

fluidd: v1.15.0 klipper: v0.9.1-586-g8bce8924 moonraker: v0.6.0-160-gd3df568

printer.cfg

[display]
lcd_type: st7920
cs_pin: EXP1_4
sclk_pin: EXP1_5
sid_pin: EXP1_3
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2

EDIT: The Display does not react to Input and does not Update after starting a print.

ihrapsa commented 3 years ago

Is anyone actively working on adding TFT35 support (native BTT touch firmware) to Klipper?

If anyone's interested in adding TFT touchscreen support for Klipper, check Desuuuu's work on the runtime-uart branch. He's been working on a sort of serial pass-through implementation that will allow dynamically control of TFTs from the klippy host through mainboard's secondary serial interface (in the same way Klipper already works with I²C and SPI). Maybe someone could use that to finally port the btt touchscreen TFT in Klipper 😄

Plaethe commented 3 years ago

oooh, exciting! I'm a long-time Marlin user who converted his Artillery Sidewinder X1 to Klipper today, and the "idle" display really bothered me. Marlin Mode by itself is better than a touchscreen that's showing only wrong info.

AFAIK the SWX1 has a MKS TFT28 3.2 in there, i'm going to try your FW as soon as i'm done with all the Klipper tuning instructions.

Could please share the config for klipper? I am using the stock mks gen l and the stock tft screen. Many thanks!

atomadog commented 2 years ago

@teeminus

Did a Test on my BIQU B1 with the stock "BIGTREE TFT35 V3.0 B1 Touchscreen" flashed with your NoTouchFW v1.3 .

grafik

It works fine. Thank you for your awesome work!

fluidd: v1.15.0 klipper: v0.9.1-586-g8bce8924 moonraker: v0.6.0-160-gd3df568

printer.cfg

[display]
lcd_type: st7920
cs_pin: EXP1_4
sclk_pin: EXP1_5
sid_pin: EXP1_3
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2

EDIT: The Display does not react to Input and does not Update after starting a print.

Use this

[display] lcd_type: emulated_st7920 spi_software_miso_pin: EXP2_1 spi_software_mosi_pin: EXP1_3 spi_software_sclk_pin: EXP1_5 en_pin: EXP1_4 encoder_pins: ^EXP2_5, ^EXP2_3 click_pin: ^!EXP1_2

pixeldoc2000 commented 2 years ago

@atomadog

Thanks atomadog, but I have isssus with Both lcd_type: st7920 and lcd_type: emulated_st7920 on my BIQU B1 as the Display freezes or shows corrupted Image at random after starting a Print.

See https://github.com/teeminus/NoTouchScreenFirmware/issues/47 and https://github.com/teeminus/NoTouchScreenFirmware/discussions/43

hapklaar commented 2 years ago

@pixeldoc2000

Currently I have the screen on the B1 working almost without issue (as in freezes or screen corruption). I use v 1.3.1 and the following config in printer.cfg.

[display]
lcd_type: emulated_st7920
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP1_3
spi_software_sclk_pin: EXP1_5
spi_speed: 1000000
en_pin: EXP1_4
encoder_pins: ^EXP2_3, ^EXP2_5
click_pin: ^!EXP1_2
pixeldoc2000 commented 2 years ago

@hapklaar

You are using a different spi_software_miso_pin: EXP2_1. I guess this is not by accident? How did you discover it?

With v1.3.1 you mean NoTouchFirmware i guess?

I will give it a try and Report back.

hapklaar commented 2 years ago

@pixeldoc2000 Can't remember where I got the miso_pin config. I do indeed mean the NoTouchFirmware 1.3.1

teeminus commented 2 years ago

There has been a discussion of on how to choose the MISO here: https://github.com/teeminus/NoTouchScreenFirmware/issues/25

pixeldoc2000 commented 2 years ago

@hapklaar Still the same issus with NoTouchScreenFirmware FW 1.3.1 and different pins.

Starting to think it is an issus with my Printer or my Hardware Setup.

What Hardware Setup do you have?

I have an original BLTouch 3.1 and the Stock Filament Runout Sensor connected to the Mainboard instead of the Display. Latest Klipper and Firmware with fluiddpi.

hapklaar commented 2 years ago

@hapklaar Still the same issus with FW 1.3.1 and different pins.

Starting to think it is an issus with my Printer or my Hardware. What Hardware do you have connected? I have an original BLTouch 3.1 and the Stock Filament Runout Sensor connected to the Mainboard instead of the Display.

Also original BLTouch 3.1, filament runout sensor still connected to display. I replaced the tmc2208's at some point with 2209's. I run all the latest klipper software and firmware (updated with kiauh)

pixeldoc2000 commented 2 years ago

Tried BIGTREETECH-TouchScreenFirmware in Marlin Mode. I get the same issue as with NoTouchFirmware, so looks like it is a problem with my setup/hardware on my BIQU B1, not the Display Firmware.

mlaci001 commented 2 years ago

The same is true with the E3 turbo and TFT35-E3-v3. The screen is blank. If the TFT button is held down for 3 seconds, the mode selection window will appear, here you have to select the Marlin mode (no matter what mode the screen is in). The screen will still be blank, but if you press the button again, the menu will appear and work from there. You have to do it again every time you start. I don't know why it's not good at startup. I can't use emulated_st7920 mode, the motherboard only has an EXP1 connector.

pixeldoc2000 commented 2 years ago

@mlaci001 Did you try NoTouchFirmware with your Display ? Sound like you are still running the "Default" Firmware or BIGTREETECH-TouchScreenFirmware.

mlaci001 commented 2 years ago

@pixeldoc2000 [Original firmware]: The screen is blank. If the TFT button is held down for 3 seconds, the mode selection window will appear, here you have to select the Marlin mode (no matter what mode the screen is in). The screen will still be blank, but if you press the button again, the menu will appear and work from there. [NoTouchFirmware]: Cold boot ok, but after firmware restart (klipper) garbage characters come up.

r00t4rd3d commented 2 years ago

This is kinda unbelievable that the TFT35 and Klipper cant work together in touch screen mode. I dont get why the devs dont fix this themselves? BTT has their own version of Klipper so why the hell dont they fix this crap?

lucasromeiro commented 2 years ago

Any new about this. I have the same problem 😞

miracuruzrh commented 1 year ago

Hello

I had the same issue like others with the BTT TFT50v3 display. I use it together with the BTT SKR v1.4 turbo mainboard. The issue was the same like the first screenshot with the cryptic lines and dots. What helped for me is to update the firmware of the TFT using the git firmware repository. After the update it suddenly worked.

Here is the printer.cfg section which works for me:

[board_pins]
aliases:
    # EXP1 header
    EXP1_1=P1.30, EXP1_3=P1.18, EXP1_5=P1.20, EXP1_7=P1.22, EXP1_9=<GND>, # XXX
    EXP1_2=P0.28, EXP1_4=P1.19, EXP1_6=P1.21, EXP1_8=P1.23, EXP1_10=<5V>, # XXX
    # EXP2 header
    EXP2_1=P0.17, EXP2_3=P3.26, EXP2_5=P3.25, EXP2_7=P1.31, EXP2_9=<GND>, # XXX
    EXP2_2=P0.15, EXP2_4=P0.16, EXP2_6=P0.18, EXP2_8=<RST>, EXP2_10=<NC>  # XXX
    # Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp0"

    [display]
lcd_type: emulated_st7920
encoder_pins: ^EXP2_3, ^EXP2_5
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP1_3
spi_software_sclk_pin: EXP1_5
en_pin: EXP1_4
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
spi_speed: 1000000

# #display_group:
menu_timeout: 1
Minims commented 1 year ago

@KevinOConnor Is it possible to run Klipper on this screen using a stm32 chip (I think yes) and use it like in [mcu] as display like the Voron V0 display does ? Maybe the issue is on lcd_type here ? Thanks.