Skip to content

making it mine

making it mine published on No Comments on making it mine

So, the last post was about 3d printering. Specifically a small FDM machine I’m rebuilding/upgrading. One of the really cool things about this repair/rebuild/upgrade process, is switching to Marlin firmware.

Sure, there are other firmwares out there, and you might have great reasons to use them. I chose Marlin because it’s what was recommended for a RAMPS 1.4 setup such as I’m building.

Marlin is easy enough to configure, and that leaves some time for further tinkering. Here are a couple of quick things you can do that make your 3d printer yours.

Custom Boot Splash
You can do this by including _Bootscreen.h in your build, and uncommenting #define SHOW_CUSTOM_BOOTSCREEN in your Configuration.h

Now, _Bootscreen.h is included in the Hephestos 2 examples that come with the Marlin sources. The byte-array that it includes is the logo/splash screen for a Hephestos 2 printer.

We want to do something a little different… so we need to make a black & white bitmap of suitable dimensions for our screen. Turns out 112 wide, 64 high is perfectly fine for the screen I have. Export/save your bitmap in .jpg or .png format and then visit

The web app will convert your picture (if it’s formatted correctly) into a byte-array. Here’s an example with my favorite foul-mouthed robot:

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc7,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x87,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x11,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0xff,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xfe,0x0f,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0x00,0x03,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x01,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0xff,0xff
,0xfe,0x1d,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x7f,0xff
,0xfe,0xef,0xbf,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x7f,0xff
,0xfe,0xed,0x0c,0xfc,0x4d,0xdf,0xff,0xff,0xf8,0x00,0x00,0x00,0x3f,0xff
,0xfe,0x1d,0xbb,0x7d,0xb5,0xdf,0xff,0xff,0xf8,0x00,0x00,0x00,0x3f,0xff
,0xfe,0xed,0xb8,0x7d,0xb6,0xbf,0xff,0xff,0xf8,0x00,0x00,0x00,0x3f,0xff
,0xfe,0xed,0xbb,0xfd,0xb6,0x3f,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff
,0xfe,0x1d,0x8c,0x7d,0xb7,0x7f,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff
,0xff,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff
,0xff,0xff,0xff,0xff,0xfc,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff
,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff
,0xff,0xf7,0xdf,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff
,0xff,0xf7,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x7f,0xff
,0xfe,0x30,0xd8,0x5d,0xff,0xff,0xff,0xff,0xf0,0x11,0xff,0xfc,0x03,0xff
,0xfe,0xf6,0xdb,0x5d,0xff,0xff,0xff,0xff,0xf0,0x20,0x00,0x00,0x00,0xff
,0xff,0x36,0xdb,0x6b,0xff,0xff,0xff,0xff,0xf0,0x40,0x00,0x00,0x00,0x3f
,0xff,0xb6,0xdb,0x63,0xff,0xff,0xff,0xff,0xf0,0x80,0x7f,0xff,0xff,0x8f
,0xfe,0x36,0xdb,0x77,0xff,0xff,0xff,0xff,0xf0,0x81,0x80,0x70,0x0f,0xc7
,0xff,0xff,0xff,0xf7,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x20,0x07,0xe7
,0xff,0xff,0xff,0xcf,0xff,0xff,0xff,0xff,0xf0,0x02,0x00,0x10,0x03,0xe7
,0xff,0xff,0xff,0xff,0x7f,0xff,0xff,0xff,0xf0,0x02,0x00,0x10,0x03,0xf7
,0xff,0xff,0xff,0xff,0x7f,0xff,0xfd,0xff,0xf0,0x02,0x00,0x00,0x01,0xf7
,0xff,0xff,0xfd,0xff,0x7f,0xff,0xfd,0xff,0xf0,0x02,0xc0,0x01,0x81,0xf7
,0xfe,0x27,0x98,0x67,0x7e,0x71,0x8d,0xff,0xf0,0x02,0xc0,0x01,0x81,0xf7
,0xfe,0xdb,0x6d,0xfb,0x7f,0xb7,0xbd,0xff,0xf0,0x02,0x00,0x00,0x03,0xf7
,0xfe,0xdb,0x0d,0xe3,0x7c,0x39,0xcd,0xff,0xf0,0x82,0x00,0x10,0x03,0xf7
,0xfe,0xdb,0x7d,0xdb,0x7d,0xbd,0xef,0xff,0xf0,0x82,0x00,0x00,0x07,0xe7
,0xfe,0xdb,0x8c,0x43,0x7c,0x31,0x8d,0xff,0xf0,0x41,0x00,0x30,0x0f,0xc7
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x20,0x80,0x78,0x1f,0x8f
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x08,0x00,0x00,0x00,0x1f
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x03,0x00,0x00,0x00,0x7f
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x3f,0xfc,0x07,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x07,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x07,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x0c,0x00,0x00,0x0f,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x28,0xff,0xd6,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x88,0x08,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x88,0x08,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0,0x68,0x08,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0x0b,0xc8,0x0f,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0x08,0x0f,0x48,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0x08,0x08,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xc8,0x08,0x00,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x1c,0x08,0x01,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x88,0x7f,0xf8,0xff,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x48,0x08,0x00,0xbf,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x38,0x08,0x00,0xbf,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x01,0xc8,0x0e,0x3f,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0x00,0x0f,0xe0,0x3f,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x86,0x00,0x00,0x00,0x3f,0xff
,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x01,0x80,0x00,0x00,0x27,0xff

This byte-array gets plugged into _Bootscreen.h (you should be able to tell where)

Pro-tip: make sure that you update the dimensions in _Bootscreen.h, else you may get odd lines with seemingly random breaks in them, and no discernible picture.

Lastly, depending on what language you selected when configuring, you can look for the relevant language_xx.h file (mine is language_en.h for english). This contains various strings the printer uses to build the menu system and notices on the screen. Have fun, but be sure not to render your printer unusable.

Leave a Reply

Your email address will not be published. Required fields are marked *