prusa3d / Prusa-Firmware-Buddy

Firmware for the Original Prusa MINI, Original Prusa MK4 and the Original Prusa XL 3D printers by Prusa Research.
Other
1.12k stars 219 forks source link

[BFW-5600] [BUG] Flashing screen on MINI 5.1.0 alpha #3277

Open Erik262 opened 11 months ago

Erik262 commented 11 months ago

Printer type - MINI

Printer firmware version - original

Original or Custom firmware - 5.1.0 alpha

Optional upgrades - Filament Runout Sensor

USB drive or USB/Octoprint USB and also same happens via PrusaConnect

Describe the bug Right after the Warning message about Alpha Firmware, the whole screen keeps refreshing every 3 second

How to reproduce This error happened right after flashing the alpha firmware

Expected behavior No permanent flashing screen UI

G-code Not necessary

Crash dump file The printer keeps printing fine without any issues.

Video https://github.com/prusa3d/Prusa-Firmware-Buddy/assets/11977647/d3cedbca-3a62-4501-be4d-6dd3035e3af1

diminDDL commented 11 months ago

I have the exact same issue. I believe it's a signal integrity issue, as I have scoped out the data lines during the bootloader/alpha firmware warning screens (when this issue is not present) and then the main home screen.

Boot screen signals:

boot_screen

Boot screen signals, zoomed in:

boot_sreen_zoom

Home screen signals:

home_screen

Home screen signals, zoomed in:

home_screen_zoom

Home screen signals, zoomed in (different section):

home_screen_zoom_2

As can be seen above, the display updates during the boot screen phase all have pretty good edges no overshoots and in general you can clearly see a digital signal there. The home screen updates show a very ringy and triangular looking signal. So it appears that during an effort to either increase the screen refresh rate or while porting from a different display, some clocking settings have been set slightly too high where it works fine on some machine, but breaks on certain others.

Ferrugius commented 11 months ago

Same here.

https://github.com/prusa3d/Prusa-Firmware-Buddy/assets/16562546/e92f2e83-7b68-4016-9bde-4aaa6ab138f2

D3nkis commented 11 months ago

Hi folks, the issue is same.

PhilippeGalid commented 11 months ago

Hi after Update to MINI 5.1.0 alpha Firmware i have the same problem, Flashing Screen, i go now back to the old Firmware

crazy-hair commented 11 months ago

Same here. Printer seems to operate normally other than the fact that it constantly refreshes the screen. It's interesting how it doesn't happen in certain menus, like the z adjust or the alpha warning.

R4ynor commented 11 months ago

I have the same problem, but in my case when a motor is running I can here it glitching. The worst case is the extruder motor:

https://github.com/prusa3d/Prusa-Firmware-Buddy/assets/9499061/5cb1af4c-beb1-4422-be97-9e76044ef2ae

Lino77 commented 11 months ago

I have this problem only on the display, 3.2" and on the 2.8"from Fysetec. On the 2 original from Prusa LDO A01 and A03 that I have and one from Bigtreetech I do not have this problem.

CuriousTimo commented 11 months ago

So @R4ynor seems to be running an original Prusa Mini. But are the others running an original printer or a Fysetc clone? And if it's a clone, what screen? The 3.2" or 2.4"?

fabry-68 commented 11 months ago

I have the same problem on 2 x Fysetc clones with 3.2" LCD.

ZeekWorld commented 11 months ago

Same, Fysetc 3.2".

Audiard-Jerome commented 11 months ago

Same, Fystec 2.8"

Ferrugius commented 11 months ago

Fysetc 3.2" here.

CuriousTimo commented 11 months ago

So it looks like this issue is mainly seen on Fysetc displays.

@R4ynor I can see that your X-axis is using a Prusa Stepper motor. Are you running a replacement Fysetc display? Or is there anything else special our your Mini? Is it an original Prusa Mini?

KR4DIO commented 11 months ago

Are you running a replacement Fysetc display? Or is there anything else special our your Mini? Is it an original Prusa Mini?

I'm not the OP, but I have the same issue with the fysetc 3.2" display. It's the only non-Prusa part on a bone stock original Prusa Mini. I think I still have the original display board around here somewhere, so I plan to compare to see if there's any difference in signal termination. I'll also try a ferrite choke around the ribbon cable.

xXNoceboXx commented 11 months ago

I have the same issue with Fystec 2.8 screen

https://github.com/prusa3d/Prusa-Firmware-Buddy/issues/3301#issue-1908538040

nolookjones commented 11 months ago

same issue with a Fysetc 2.8 screen...the printer still works though except for this

Gabri988 commented 11 months ago

Same problem...Fysetc 3.2 lcd

EnnjiBennji commented 11 months ago

same issue with a Fysetc 2.8 screen

g8toparadise commented 11 months ago

Any news from Prusa on this issue ? Since it seems to happen mainly on clone do you think we can hope for a correction ?

SteynGuelen commented 11 months ago

Same issue here with 2.8 Fysetc screen.

diminDDL commented 11 months ago

Any news from Prusa on this issue ? Since it seems to happen mainly on clone do you think we can hope for a correction ?

Prusa does not actually develop in this repository, this appears to be just a mirror they push to every major release, so we will likely see/hear about it after the next release.

CuriousTimo commented 10 months ago

As a quick test, I have ordered a new LCD screen made by Bigtreetech.

I can confirm that swapping over only the LCD from a Fysetc one to a Bigtreetech fixes the issue. Everything else including the ribbon cable was left in place.

So the flashing issue seems to be with the Fysetc screens.

I doubt that Prusa will fix a clone hardware-related issue. So in my personal situation, this will be my permanent fix.

KR4DIO commented 10 months ago

I can confirm that swapping over only the LCD from a Fysetc one to a Bigtreetech fixes the issue. Everything else including the ribbon cable was left in place.

Did you swap the LCD panel onto the fysetc board? Or swap the whole assembly? If the latter, are there any obvious differences in the components between the pin header and FPC connector?

ZeekWorld commented 10 months ago

As a quick test, I have ordered a new LCD screen made by Bigtreetech.

I can confirm that swapping over only the LCD from a Fysetc one to a Bigtreetech fixes the issue.

Everything else including the ribbon cable was left in place.

So the flashing issue seems to be with the Fysetc screens.

I doubt that Prusa will fix a clone hardware-related issue. So in my personal situation, this will be my permanent fix. Can you share the link for the screen?

g8toparadise commented 10 months ago

@CuriousTimo Thanks for the head up !!!! Can you confirm the screen I linked is suitable ?

@ZeekWorld https://fr.aliexpress.com/item/4001267632446.html?spm=a2g0o.productlist.main.21.3134dT0MdT0MHB&algo_pvid=fd49074d-0f17-481f-a8d9-02704fd9cf50&algo_exp_id=fd49074d-0f17-481f-a8d9-02704fd9cf50-10&pdp_npi=4%40dis%21EUR%2119.11%2112.8%21%21%2119.64%21%21%40211b440316974778766633708e93f8%2110000015531261574%21sea%21FR%21731355889%21&curPageLogUid=eAsfLLECGhkn

CuriousTimo commented 10 months ago

I can confirm that swapping over only the LCD from a Fysetc one to a Bigtreetech fixes the issue. Everything else including the ribbon cable was left in place.

Did you swap the LCD panel onto the fysetc board? Or swap the whole assembly? If the latter, are there any obvious differences in the components between the pin header and FPC connector?

I only swapped the LCD. Nothing else. I will have to check if I can find any obvious differences between the two.

@g8toparadise Yes it is item 4001267632446.

PhilippeGalid commented 10 months ago

Did we have to buy the bigtreetech Display to fix the Problem on the Prusa Mini Clone, or you think Prusa will fix the Problem with a New Firmeware for the Display, did we have to what or buy now a new Display is cost 20euro. Bescause Impute Shaping is a very cool future in the New Firmware,50% faster Print.

https://biqu.equipment/products/clone-prusa-mini-buddy-control-board-integrated-tmc2209-driver-mini-lcd28-v1-0-switch-3d-printer-parts-for-prusa-mini-printer

R4ynor commented 10 months ago

In my case I put this Bigtreetech display in my original Prusa as a replacement and couses the flashing problem. I'll try tomorrow to swap the LCD in the original board with this one like @CuriousTimo.

R4ynor commented 10 months ago

I can confirm that the problem is related to the PCB and not with the LCD from bigtreetech, my printer now works flawlessly.

CuriousTimo commented 10 months ago

Update with bad news:

My BTT LCD worked flawlessly for about three days. Last night I noticed it started flashing.

It keeps flashing now every time.

Unfortunately, I do not have the equipment to do any further in-depth measuring. But I think that @diminDDL is on the right track that in the newer firmware something has changed causing issues on the data lines and clock signal.

The clone LCD screen seem to be less tolerating.

PhilippeGalid commented 10 months ago

There is a New Fireware out now did the Fysetec LCD problem fix it now with the New Firmware ? Did some tested ?

KR4DIO commented 10 months ago

There is a New Fireware out now did the Fysetec LCD problem fix it now with the New Firmware ? Did some tested ?

No change here with the Fysetc 3.2 LCD

RasmusLauritsen commented 10 months ago

There is a New Fireware out now did the Fysetec LCD problem fix it now with the New Firmware ? Did some tested ?

No change here with the Fysetc 3.2 LCD

It's the same for me. Still flashing the Fysetc 3.2 LCD.

PhilippeGalid commented 10 months ago

I'm not a programmer but my idea is perhaps if you know better and also have a clone, you can't compare the source code of the old firmware with the new one, what the frequency of the firmware is for the display and the new one with the old one Switching over and then creating a firmware file is just an idea. I would like to print faster but don't want to buy an original board and display for 150 euros. Maybe someone has an idea. Or an adapter between the cable and display fixes it with transistors,... there must be a solution, or Fysetc should find a solution.

KR4DIO commented 10 months ago

what the frequency of the firmware is for the display and the new one with the old one

I spent a little time looking through the source, but couldn't find where the SPI frequency was changed. However, as far as I can tell, the flashing doesn't actually affect printing. If I'm printing with the enclosure open and the flashing is annoying, I just go to Live Z Adjust mode, where the screen doesn't flash. It's not ideal, but at least for now the inconvenience is worth it for fast smooth prints.

pchrist commented 10 months ago

I finally got hold of a Fysetc display, I hooked up a logic analyzer to the SPI signals between the MCU and the display controller. I found out that a read command to the display is issued every 2 seconds (on the SDA line). On a Prusa display the response is seen on the SDO line. On the Fysetc display the response is seen on the SDA line.

It looks like the Prusa display is running in full duplex mode and the Fysetc display is running in half duplex mode. As long as nothing is read back from the display this does not matter. Since release 4.6.1 a LCD communication check is executed every 2 seconds. The check will fail when running half duplex mode, resulting in a display reset, seen as a white screen.

The half/full duplex configuration is done on the display by pulling some configuration pins high or low. These pins are not easily accessible on the Fysetc display.

diminDDL commented 10 months ago

@pchrist could you share what the pins are even if they aren't easily accessible? Unless they are not broken out to the flat flex altogether.

CuriousTimo commented 10 months ago

I'm looking at the st7789 datasheet and I think it has to do with IM3 pin.

SDA: -When IM3: Low, SPI interface input/output pin -When IM3: High, SPI interface input pin

So IM3 should be pulled high

CuriousTimo commented 10 months ago

I compiled and flashed version 5.1.0-alpha2

In file: src/gui/display_hw_checks_MINI.cpp I commented out line 21.

void check_lcd() {
    uint8_t data_buff[ST7789V_MAX_COMMAND_READ_LENGHT] = { 0x00 };
    display::ReadMADCTL(data_buff);

    if ((data_buff[1] != 0xE0 && data_buff[1] != 0xF0 && data_buff[1] != 0xF8)) {
        //reinit_lcd_and_redraw();
    }
}
} // anonymous namespace

My Fysetc 3.2" LCD is not flashing anymore.

The disadvantage is that you have to break out the tab on the Buddy board to run self-compiled firmware for this to work.

PhilippeGalid commented 10 months ago

Thanks for your Info and Help,I hope Pruse see this and fixe this in the next Update.

Gabri988 commented 10 months ago

I compiled and flashed version 5.1.0-alpha2

In file: src/gui/display_hw_checks_MINI.cpp I commented out line 21.

void check_lcd() {
    uint8_t data_buff[ST7789V_MAX_COMMAND_READ_LENGHT] = { 0x00 };
    display::ReadMADCTL(data_buff);

    if ((data_buff[1] != 0xE0 && data_buff[1] != 0xF0 && data_buff[1] != 0xF8)) {
        //reinit_lcd_and_redraw();
    }
}
} // anonymous namespace

My Fysetc 3.2" LCD is not flashing anymore.

The disadvantage is that you have to break out the tab on the Buddy board to run self-compiled firmware for this to work.

would you be so kind as to post your modified fw? I have the same fystec LCD and would like to solve the flashing problem

CuriousTimo commented 10 months ago

Mini 5.1.0-alpha2-no_reinit_lcd.zip

To force a firmware update on the Mini:

Gabri988 commented 10 months ago

Mini 5.1.0-alpha2-no_reinit_lcd.zip

To force a firmware update on the Mini:

* Push the reset-button, immediately followed by double-pressing the selector-knob.

* On the new screen, confirm the update by selecting the "FLASH" button and pressing the knob.

A thousand thanks! Just installed on buddy clone board without needing to cut the jumper. it seems to work

PhilippeGalid commented 10 months ago

Mini 5.1.0-alpha2-no_reinit_lcd.zip To force a firmware update on the Mini:

* Push the reset-button, immediately followed by double-pressing the selector-knob.

* On the new screen, confirm the update by selecting the "FLASH" button and pressing the knob.

A thousand thanks! Just installed on buddy clone board without needing to cut the jumper. it seems to work

Thanks for your Work and Help

PhilippeGalid commented 10 months ago

Mini 5.1.0-alpha2-no_reinit_lcd.zip

To force a firmware update on the Mini:

* Push the reset-button, immediately followed by double-pressing the selector-knob.

* On the new screen, confirm the update by selecting the "FLASH" button and pressing the knob.

Thanke for your Work and Help

diminDDL commented 10 months ago

Can confirm that this fixes the flashes completely.

hreality commented 10 months ago

Cofirmed.. flashing resolved with posted firmware

ZeekWorld commented 10 months ago

Amazing work!

Lino77 commented 10 months ago

press ignore

Lino77 commented 10 months ago

@CuriousTimo The IM3 pin which is the one on the Fysetec display, I would like to use the 3.2 display, but I don't want to break the seal, it´s on original Mini.