Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Biqu BX TFT stuck on marlin splash screen after flashing firmware. #24353

Closed
1 task done
Antibodyarmy opened this issue Jun 14, 2022 · 34 comments · Fixed by #24383
Closed
1 task done

Biqu BX TFT stuck on marlin splash screen after flashing firmware. #24353

Antibodyarmy opened this issue Jun 14, 2022 · 34 comments · Fixed by #24383

Comments

@Antibodyarmy
Copy link

Did you test the latest bugfix-2.1.x code?

Yes, and the problem still exists.

Bug Description

After compiling the latest bugfix firmware, and flashing firmware.bin the TFT display is stuck on the marlin splash screen.
Configuration.zip

IMG_20220614_003626406

Bug Timeline

No response

Expected behavior

finish flashing firmware, and enter the printer TFT printer idle display.

Actual behavior

finished flashing firmware, got hung/stuck on marlin splash screen.

Steps to Reproduce

compile firmware with biqu/bx config from examples. flash firmware.

Version of Marlin Firmware

latest bugfix

Printer model

Biqu BX

Electronics

Stock - Biqu BX tft 70 and BTT_SKR_SE_BX

Add-ons

No response

Bed Leveling

ABL Bilinear mesh

Your Slicer

Cura

Host Software

OctoPrint

Don't forget to include

  • A ZIP file containing your Configuration.h and Configuration_adv.h.

Additional information & file uploads

No response

@hcet14
Copy link

hcet14 commented Jun 14, 2022

@contributors
This is just a question and I hope nobody gets me wrong. There are a lot of issues connected to intelligent displays with a µC. Those displays have certainly their own FW. Shouldn't the companies selling those display adapt their FW to new versions of Marlin? To me it sounds like a classical chicken or the egg causality dilemma.
Kind regards, hcet14

@thisiskeithb
Copy link
Member

There are a lot of issues connected to intelligent displays with a µC. Those displays have certainly their own FW. Shouldn't the companies selling those display adapt their FW to new versions of Marlin?

@hcet14: The BX’s TFT is not a standalone TFT. Marlin is fully in charge of controlling it, so this bug is on the Marlin side.

@hcet14
Copy link

hcet14 commented Jun 14, 2022

The BX’s TFT is not a standalone TFT.

Electronics: Stock - Biqu BX tft 70 and BTT_SKR_SE_BX

@thisiskeithb: Sorry, probably my fault. I understand, Antibodyarmy is using a Biqu BX tft 70 "https://www.biqu.equipment/products/btt-tft43-v3-0-tft50-v3-0-tft70-v3-0-display-touch-screen-two-working-modes".

@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 14, 2022

I understood Antibodyarmy is using a Biqu BX tft 70

They are and as I stated above, it is not a standalone TFT. The TFT70 used on the BX is directly controlled/connected to the motherboard via a 40pin cable.

Biqu/BigTreeTech also makes a standalone TFT70 in your link and that is not the same one used on the BX. The one in your link connects via two 10-pin IDC + 5-pin serial cables. Those simply external computers / G-code senders.

Shouldn't the companies selling those display adapt their FW to new versions of Marlin?

Yes, but Biqu/BigTreeTech does keep up their TFT firmware (and provides instructions on what to enable in Marlin so they can communicate / work properly), so you should post there instead: https://github.com/bigtreetech/BIGTREETECH-TouchScreenFirmware

At any rate, this is causing unneeded noise and not related to the reported bug.

@hcet14
Copy link

hcet14 commented Jun 17, 2022

At any rate, this is causing unneeded noise and not related to the reported bug.

Sorry, I apologize. Thanks for the explanation. I read a little around and think I understood.

@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 19, 2022

Thanks to some detective work by @rhapsodyv, this is the breaking commit:

@rhapsodyv
Copy link
Member

try change the file:
Marlin/src/HAL/shared/Marduino.h
code:
#define FTOP(S) (reinterpret_cast<const char*>(S))
to
#define FTOP(S) (reinterpret_cast<const char* const>(S))
and let me know if it works for you

@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 20, 2022

try change the file: Marlin/src/HAL/shared/Marduino.h

A stock bugfix-2.1.x BX config (with corrected serial ports) doesn't work, but a minimal bugfix-2.1.x config works:

#define MOTHERBOARD BOARD_BTT_SKR_SE_BX
#define SERIAL_PORT 1
#define SERIAL_PORT -1
#define TFT_COLOR_UI
#define BIQU_BX_TFT70

@rhapsodyv
Copy link
Member

try disable SDSUPPORT to test

@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 20, 2022

@Antibodyarmy: Please try the attached firmware: Biqu-BX-bugfix-2.1.x-firmware.zip

It bootloops on my BX, but works for rhapsodyv & may work for you.

@Antibodyarmy
Copy link
Author

@thisiskeithb It did not work, but now there is a strange behaviour where it boot loops turning on and off

@thisiskeithb
Copy link
Member

now there is a strange behaviour where it boot loops turning on and off

That's the same thing I see on my setup.

@Antibodyarmy
Copy link
Author

just to clarify my initial issue when I posted, there wasn't a boot loop behavior, but it was stuck on the marlin boot splash screen. the boot loop was introduced with the changes in that firmware you posted and with the changes suggested by rhapsodyv .

@thisiskeithb
Copy link
Member

What about this one? Biqu-BX-bugfix-2.1.x-firmware-w-24319.zip

It includes the fix from #24319

@Antibodyarmy
Copy link
Author

that one is also just stuck on the boot screen, but no on/off loop.

@thisiskeithb
Copy link
Member

@rhapsodyv must have a special / different board, but knowing it doesn't work for you helps. I thought it may have been my board 🙂

@Antibodyarmy
Copy link
Author

Antibodyarmy commented Jun 20, 2022

I know there are several board/screen-board revisions floating around out there, given the pre release boards(with pi issues) and post Kickstarter changes. My printer is from the later USA Kickstarter rounds. when I get the chance, I'll dissasemble the board cover/remove my screen to update this thread with the revision numbers on the silk screen if there are any.

@rhapsodyv
Copy link
Member

rhapsodyv commented Jun 20, 2022

We probably have boards with different bootloader version.

Mine doesn’t flash properly when I use a sdhc (32gb). I only can flash firmware with a 2gb SD. But Keith can use a sdhc to flash his board.

@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 20, 2022

I was a beta tester and had an earlier revision board & TFT, but I've been working with rhapsodyv & testing with “retail" components.

The hardware I am now testing with are:

  • SKR SE-BX 2.0 (Motherboard)
  • TFT70-BX V2.2 (TFT)
  • TFT70-BX HDMI V2.1 (HDMI Breakout board)

There's also some confusion on the proper serial ports since Biqu uses 1 & -1 in their BX fork, but Luke/looxonline uses 4 & -1 in his popular fork (both Marlin 2.0.6). See below:

  • Serial port 1 is for the TFT
  • Serial port -1 is for the micro usb
  • Serial port 4 is for the WiFi header

@Antibodyarmy
Copy link
Author

tft (screen pcb)v2.2, tft-hdmi(the smaller board on stand offs on the tft) v2.1, main printer board v2.0.

@rhapsodyv
Copy link
Member

I just tested another big SD card (32gb too) and it worked. So, marlin always works for me, except for one sd card, that might indicate a sd problem, not the code.

@Antibodyarmy my hardware is the same. I suspect that we have different bootloaders only.

@thisiskeithb
Copy link
Member

The features breaking the BX build are SDSUPPORT and TOUCH_SCREEN. Disable both of those and you'll have a working printer again.

h/t to @rhapsodyv for figuring that out since both of use were using minimal configs & getting different results 🥴

@thisiskeithb
Copy link
Member

thisiskeithb commented Jun 21, 2022

More follow-up: Cherry picking changes from #24319 fixes SDSUPPORT on the BX.

This only leaves the broken TOUCH_SCREEN support. I've submitted a PR to disable it in the BX config for now until that can be tracked down: MarlinFirmware/Configurations#757

@rhapsodyv
Copy link
Member

I think I fixed touch bootloop / freeze (build with sd disabled to test touch)
firmware.bin.zip

@rhapsodyv
Copy link
Member

Fully working with sd, touch and latest bugfix-2.1.
firmware.bin.zip

@thisiskeithb
Copy link
Member

Fully working with sd, touch and latest bugfix-2.1. firmware.bin.zip

Everything works! You're a wizard! 🧙

@thisiskeithb
Copy link
Member

Closing since there's now a PR open to fix this #24383

@Antibodyarmy
Copy link
Author

IMG_20220624_113721897

do you guys get a media init fail and no loading of the UI theme after this fix?

@thisiskeithb
Copy link
Member

do you guys get a media init fail and no loading of the UI theme after this fix?

The photo above is TFT_COLOR_UI which looks correct. You will not see the original / square UI from Biqu/BigTreeTech since that was not ported upstream. If you prefer that theme, then you will need to use Biqu/BigTreeTech's BX firmware.

As for the "Media Init Fail", I do not see that. Try reformatting your microSD card.

@Antibodyarmy
Copy link
Author

I still get the fail, with several sdcards all reformatted. it will only detect SD cards with the mainboard SD not the screen SD and it cuts in and out with connection on the mainboard

@thisiskeithb
Copy link
Member

it will only detect SD cards with the mainboard SD not the screen SD

That is also an expected behavior if you are using the stock BX config from our Configurations repo since it defaults on ONBOARD SD. I would not recommend using the TFT's USB or SD card slots due to possible communication corruption.

and it cuts in and out with connection on the mainboard

That shouldn't be the case. Are you sure your SD card is fully seated? I started putting my BX back together, so I'll be able to test more this weekend.

@Antibodyarmy
Copy link
Author

the cards are fully seated. If I enter the SD menu, then back out it appears to lose connection with the SD card. If I either re-insert the card or enter/exit the sd menu a few times it will reconnect to the card after spitting the "Media init fail" error.

@thisiskeithb
Copy link
Member

the cards are fully seated. If I enter the SD menu, then back out it appears to lose connection with the SD card. If I either re-insert the card or enter/exit the sd menu a few times it will reconnect to the card after spitting the "Media init fail" error.

I never saw that behavior while testing the BX board & TFT on my desk, but I'll see if I can reproduce it once installed in the printer this weekend.

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Aug 24, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants