I added a custom boot screen to marlin by adding _Bootscreen.h to the project root folder and it works fine. The problem is that the custom screen shows quickly and disappear then the marlin boot screen is then displayed for a longer time. I want to remove the marlin boot screen.

I dug around in the source code and found a void lcd_bootscreen function in the ultralcd_impl_HD44780.h header. This seems to be the function that is loading the marlin's boot screen due to the comments in the code. I added return; to the first line of code in this function but the marlin's boot screen is still loading.

How can I remove the marlin boot screen. How can make my custom boot screen wait for more time?

The marlin version is 1.1.8.

  • $\begingroup$ Not working with marlin, but I'd better set #undef SHOW_BOOTSCREEN in Configure.h per documentation to disable the marlin boot screen than messing with any other header. $\endgroup$
    – Tensibai
    Jan 3, 2018 at 15:18
  • $\begingroup$ @Tensibai SHOW_BOOTSCREEN is also used to control the custom bootscreen. If I do this, my custom bootscreen will not display. $\endgroup$
    – Programmer
    Jan 3, 2018 at 16:57
  • $\begingroup$ I'd have to dig in the header more to see which part loads the custom boots screen and which replace it with the marlin one then. The file in dot h are headers (declarations) so modifying the function return is not very likely to help, there's probably a better approach to drive that $\endgroup$
    – Tensibai
    Jan 3, 2018 at 17:15
  • $\begingroup$ I know it is a header file and mentioned that in my question. There is no corresponding .cpp file for the ultralcd_impl_HD44780.h file. They put the code in the .h file. Check it out when you have time $\endgroup$
    – Programmer
    Jan 3, 2018 at 17:38
  • $\begingroup$ It doesn't need a corresponding cpp file, just that the various headers are defined, there's various code in this header called somewhere in the code 'main' function to really do something... I feel there's something not properly overridden in your custom file, but I can just guess without it and the documentation you follow $\endgroup$
    – Tensibai
    Jan 3, 2018 at 17:51

3 Answers 3


You can add return; command in the ultralcd_impl_DOGM.h file.

  void lcd_bootscreen() { 
    return;  // Add this line  

So after some search:

  1. You can't (at least should not) remove the Marlin bootscreen according to this issue SHOW_CUSTOM_BOOTSCREEN hides Marlin logo, quote:

    We wanted an additional logo - not a replacement of the Marlin logo.

  2. According to the code here there's a constant CUSTOM_BOOTSCREEN_TIMEOUT taking the default value of 2500 which is 2.5 seconds but you can redefine it in your _Boostrap.h file.

This constant is only available for DOGM lcd screens which is chosen by the code here in ultralcd.cpp and without more details on your machine it's hard to tell from Conditionals_LCD.h which will be used.


I was able to remove the Marlin bootscreen and still retain the custom one by commenting out the following line in marlinui_DOGM.cpp (Marlin/Marlin/src/lcd/dogm/marlinui_DOGM.cpp):

void MarlinUI::show_bootscreen() {
    TERN_(SHOW_CUSTOM_BOOTSCREEN, show_custom_bootscreen());
    // show_marlin_bootscreen();

Tested and working as of Marlin 2.0.x.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .