<p>You can add return; command in the <code>ultralcd_impl_DOGM.h</code> file.</p>
<pre><code>  void lcd_bootscreen() { 
    #if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
      lcd_custom_bootscreen();
    #endif
    return;  // Add this line  
</code></pre>

CC BY-SA 4.0
2018-04-02T21:11:37.750Z
2022-12-27T22:12:02.367Z
2022-12-27T22:12:02.367Z
ParadoX
<p>So after some search:</p>
<ol>
<li><p>You can't (at least should not) remove the Marlin bootscreen according to this issue <a href="https://github.com/MarlinFirmware/Marlin/issues/8186" rel="nofollow noreferrer"><code>SHOW_CUSTOM_BOOTSCREEN</code> hides Marlin logo</a>, quote:</p>
<blockquote>
<p>We wanted an additional logo - not a replacement of the Marlin logo.</p>
</blockquote>
</li>
<li><p>According to the <a href="https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd_impl_DOGM.h#L282-L306" rel="nofollow noreferrer">code here</a> there's a constant <code>CUSTOM_BOOTSCREEN_TIMEOUT</code> taking the default value of 2500 which is 2.5 seconds but you can redefine it in your <code>_Boostrap.h</code> file.</p>
</li>
</ol>
<p>This constant is only available for DOGM lcd screens which is chosen by the code here in <a href="https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd.cpp#L95-L100" rel="nofollow noreferrer"><code>ultralcd.cpp</code></a> and without more details on your machine it's hard to tell from <a href="https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Conditionals_LCD.h" rel="nofollow noreferrer"><code>Conditionals_LCD.h</code></a> which will be used.</p>

CC BY-SA 4.0
2018-01-04T09:25:22.813Z
2022-12-27T22:14:05.073Z
2022-12-27T22:14:05.073Z
Tensibai
<p>I was able to remove the Marlin bootscreen and still retain the custom one by commenting out the following line in <code>marlinui_DOGM.cpp</code> (<code>Marlin/Marlin/src/lcd/dogm/marlinui_DOGM.cpp</code>):</p>
<pre><code>void MarlinUI::show_bootscreen() {
    TERN_(SHOW_CUSTOM_BOOTSCREEN, show_custom_bootscreen());
    // show_marlin_bootscreen();
  }
</code></pre>
<p>Tested and working as of Marlin 2.0.x.</p>

CC BY-SA 4.0
2022-12-27T21:35:47.957Z
2022-12-27T22:14:26.927Z
2022-12-27T22:14:26.927Z
KabobAndRice
<p>I added a custom boot screen to marlin by adding <code>_Bootscreen.h</code> 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.</p>

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

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

<p>The marlin version is 1.1.8.</p>

CC BY-SA 3.0
2018-01-03T15:18:16.320Z
Not working with marlin, but I'd better set `#undef SHOW_BOOTSCREEN` in Configure.h per [documentation](http://marlinfw.org/docs/configuration/configuration.html#firmware-info) to disable the marlin boot screen than messing with any other header.
Tensibai
CC BY-SA 3.0
2018-01-03T16:57:25.353Z
@Tensibai `SHOW_BOOTSCREEN` is also used to control the custom bootscreen. If I do this, my custom bootscreen will not display.
Programmer
CC BY-SA 3.0
2018-01-03T17:15:31.757Z
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
Tensibai
CC BY-SA 3.0
2018-01-03T17:38:37.830Z
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](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd_impl_HD44780.h) out when you have time
Programmer
CC BY-SA 3.0
2018-01-03T17:51:22.640Z
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
Tensibai
<marlin>
Remove the Marlin Boot screen
Programmer
# Remove the Marlin Boot screen

(Asked by: username_0 on 2018-01-02)

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.

**Tags:** marlin

> **Comments:**
> **username_1**: Not working with marlin, but I'd better set `#undef SHOW_BOOTSCREEN` in Configure.h per [documentation](http://marlinfw.org/docs/configuration/configuration.html#firmware-info) to disable the marlin boot screen than messing with any other header.  
> **username_0**: @username_1 `SHOW_BOOTSCREEN` is also used to control the custom bootscreen. If I do this, my custom bootscreen will not display.  
> **username_1**: 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  
> **username_0**: 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](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd_impl_HD44780.h) out when you have time  
> **username_1**: 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  

---

## 3 answers

### Answer by username_2 on 2018-04-02. Score: 4

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

```
  void lcd_bootscreen() { 
    #if ENABLED(SHOW_CUSTOM_BOOTSCREEN)
      lcd_custom_bootscreen();
    #endif
    return;  // Add this line  

```


---

### Answer by username_1 on 2018-01-04. Score: 2

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](https://github.com/MarlinFirmware/Marlin/issues/8186), quote:

   > We wanted an additional logo - not a replacement of the Marlin logo.
2. According to the [code here](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd_impl_DOGM.h#L282-L306) 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`](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/ultralcd.cpp#L95-L100) and without more details on your machine it's hard to tell from [`Conditionals_LCD.h`](https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Conditionals_LCD.h) which will be used.


---

### Answer by username_3 on 2022-12-27. Score: 2

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.


---

