From eafa98e6f499eaf60aea2531faef378dc38d72c5 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 9 Jan 2015 17:52:23 +0100 Subject: [PATCH 1/5] added two black/white versions of the Marlin Logo for the LCD splashscreen --- Documentation/Logo/Marlin Logo LCD High.png | Bin 0 -> 392 bytes Documentation/Logo/Marlin Logo LCD Low.png | Bin 0 -> 249 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Documentation/Logo/Marlin Logo LCD High.png create mode 100644 Documentation/Logo/Marlin Logo LCD Low.png diff --git a/Documentation/Logo/Marlin Logo LCD High.png b/Documentation/Logo/Marlin Logo LCD High.png new file mode 100644 index 0000000000000000000000000000000000000000..81225c3de00dca37dd3722631a42070b753c0bdc GIT binary patch literal 392 zcmV;30eAk1P)=H3_~Rk_rJ2b zC=3Y^AD1LE?TSL;7u&Ki6aWCkq~9`?wgL%2L#!K5C~y?c5@RUOSPqQj8QU>hBx-}K ze(BPE9+&o!n(H*W+9sZalq|5U?IY00+5QuDNBaI$A5KJ7F#y1kV$jn|QK?{MxL zDbwXK)k|f@1L^vZQl0EbIH+nnH*>nGRvk4JS!L_VOV1YC_bPtsPY+O+LsYJW`HDOI z1^h=q&IIZqk$pwO;{alps0&ccE#d1Ns>_m$XnGMT4xPN46wj_h#mvt`0tjdtk$^yr m{2(>66*V!Y!U~+iTtOd{$5~U7{+xjT00001fdWB literal 0 HcmV?d00001 diff --git a/Documentation/Logo/Marlin Logo LCD Low.png b/Documentation/Logo/Marlin Logo LCD Low.png new file mode 100644 index 0000000000000000000000000000000000000000..34b80c49399e99476127fe95f2ee6bf4769c4977 GIT binary patch literal 249 zcmeAS@N?(olHy`uVBq!ia0vp^7CmbbNq%pe!D9B#o z>FdgVpOI5QgGXIbc_L6~hNp{Th{fr-A<=w?6?itUz5D;vJ@$taMPD$i++wjY$ytL} zK>RWDA@-kZI|`1xKAHZtZI+`7!*QF_Ujv#$v;L}0?iAm;O8a}I>xUC6bC$APICQ?^ z Date: Fri, 9 Jan 2015 18:48:30 +0100 Subject: [PATCH 2/5] adding string for bouts splash string to config --- Marlin/Configuration.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 9b77f96f4..dfc1965e6 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -24,8 +24,11 @@ // User-specified version info of this build to display in [Pronterface, etc] terminal window during // startup. Implementation of an idea by Prof Braino to inform user that any changes made to this // build by the user have been successfully uploaded into firmware. +#define STRING_VERSION "v1.0.2" +#define STRING_URL "reprap.org" #define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time #define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. +#define STRING_SPLASH STRING_VERSION " - " STRING_URL // will be shown during bootup // SERIAL_PORT selects which serial port should be used for communication with the host. // This allows the connection of wireless adapters (for instance) to non-default port pins. From c7632be5ccb9952ca875cc21c8a6f6898bfc7e16 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 9 Jan 2015 18:49:24 +0100 Subject: [PATCH 3/5] added high and low resolutions version of splash screen logo (saving code size) --- Marlin/DOGMbitmaps.h | 99 +++++++++++++++++++++++++++++++++----------- 1 file changed, 74 insertions(+), 25 deletions(-) diff --git a/Marlin/DOGMbitmaps.h b/Marlin/DOGMbitmaps.h index b149b7609..de5c8470c 100644 --- a/Marlin/DOGMbitmaps.h +++ b/Marlin/DOGMbitmaps.h @@ -1,28 +1,77 @@ -#define START_BMPWIDTH 60 //Width in pixels - http://www.digole.com/tools/PicturetoC_Hex_converter.php -#define START_BMPHEIGHT 64 //Height in pixels -#define START_BMPBYTEWIDTH 8 //Width in bytes -const unsigned char start_bmp[574] PROGMEM = { //AVR-GCC, WinAVR -0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0x30,0x00,0x00,0x00,0x00,0x00,0x3f,0xff, -0x40,0x00,0x00,0x00,0x00,0x00,0x1f,0xff, -0xc0,0x00,0x00,0x00,0x00,0x00,0x0f,0xff, -0x80,0x83,0x00,0x00,0x01,0x80,0x07,0xff, -0x83,0xef,0xc0,0x00,0x01,0x8c,0x03,0xff, -0x87,0xff,0xe0,0x00,0x01,0x8c,0x01,0xff, -0x8e,0x38,0x60,0x00,0x01,0x80,0x00,0xff, -0x8c,0x18,0x67,0xe0,0xf9,0x8c,0x7e,0x7f, -0x8c,0x18,0x6f,0xf1,0xfd,0x8c,0xfe,0x3f, -0x8c,0x18,0x6e,0x31,0x8d,0x8c,0xc7,0x1f, -0x8c,0x18,0x6c,0x39,0x8d,0x8c,0xc3,0x1f, -0x8c,0x18,0x6c,0x19,0x81,0x8c,0xc3,0x1f, -0x8c,0x18,0x6e,0x19,0x81,0x8c,0xc3,0x1f, -0x8c,0x18,0x6f,0x9f,0x81,0xef,0xc3,0x1f, -0x8c,0x18,0x67,0xdf,0x80,0xef,0xc3,0x1f, -0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x1f, -0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x2f, -0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xcf, -0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0x8f -}; +// BitMap for splashscreen +// Generated with: http://www.digole.com/tools/PicturetoC_Hex_converter.php +// Please note that using the high-res version takes about 0.5KB of +#ifdef START_BMPHIGH + #define START_BMPWIDTH 112 + #define START_BMPHEIGHT 38 + #define START_BMPBYTEWIDTH 14 + #define START_BMPBYTES 532 // START_BMPWIDTH * START_BMPHEIGHT / 8 + + const unsigned char start_bmp[START_BMPBYTES] PROGMEM = { + 0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff + ,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff + ,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff + ,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff + ,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff + ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff + ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff + ,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x3f,0xff + ,0xc0,0x0f,0xc0,0xfc,0x00,0x00,0x00,0x00,0x00,0x78,0x18,0x00,0x1f,0xff + ,0xc0,0x3f,0xe1,0xff,0x00,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x0f,0xff + ,0xc0,0x7f,0xf3,0xff,0x80,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x07,0xff + ,0xc0,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x03,0xff + ,0xc1,0xf8,0x7f,0x87,0xe0,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xff + ,0xc1,0xf0,0x3f,0x03,0xe0,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xff + ,0xc1,0xe0,0x1e,0x01,0xe0,0x1f,0x00,0x03,0xe0,0x78,0x3c,0x03,0xf0,0x7f + ,0xc1,0xe0,0x1e,0x01,0xe0,0x7f,0xc0,0x0f,0xf8,0x78,0x3c,0x07,0xfc,0x3f + ,0xc1,0xe0,0x1e,0x01,0xe1,0xff,0xe0,0x1f,0xfc,0x78,0x3c,0x0f,0xfe,0x1f + ,0xc1,0xe0,0x1e,0x01,0xe3,0xff,0xf0,0x3f,0xfe,0x78,0x3c,0x1f,0xfe,0x0f + ,0xc1,0xe0,0x1e,0x01,0xe3,0xf3,0xf8,0x3f,0x3e,0x78,0x3c,0x3f,0x3f,0x07 + ,0xc1,0xe0,0x1e,0x01,0xe7,0xe0,0xfc,0x7c,0x1f,0x78,0x3c,0x3e,0x1f,0x07 + ,0xc1,0xe0,0x1e,0x01,0xe7,0xc0,0x7c,0x7c,0x0f,0x78,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x7c,0x78,0x0f,0x78,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe7,0xc0,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe3,0xe0,0x3c,0x78,0x00,0x7c,0x3c,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe3,0xff,0x3f,0xf8,0x00,0x7f,0xbc,0x3c,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe1,0xff,0x3f,0xf8,0x00,0x3f,0xbf,0xfc,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe0,0xff,0x3f,0xf8,0x00,0x1f,0xbf,0xfc,0x0f,0x03 + ,0xc1,0xe0,0x1e,0x01,0xe0,0x7f,0x3f,0xf8,0x00,0x0f,0xbf,0xfc,0x0f,0x03 + ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07 + ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06 + ,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e + ,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c + ,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78 + ,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0 + ,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80 }; +#else + #define START_BMPWIDTH 56 + #define START_BMPHEIGHT 19 + #define START_BMPBYTEWIDTH 7 + #define START_BMPBYTES 133 // START_BMPWIDTH * START_BMPHEIGHT / 8 + + const unsigned char start_bmp[START_BMPBYTES] PROGMEM = { + 0x1f,0xff,0xff,0xff,0xff,0xff,0xff + ,0x60,0x00,0x00,0x00,0x00,0x01,0xff + ,0x40,0x00,0x00,0x00,0x00,0x00,0xff + ,0x80,0x00,0x00,0x00,0x00,0x00,0x7f + ,0x83,0xcf,0x00,0x00,0x0c,0x30,0x3f + ,0x87,0xff,0x80,0x00,0x0c,0x30,0x1f + ,0x86,0x79,0x80,0x00,0x0c,0x00,0x0f + ,0x8c,0x30,0xc7,0x83,0x8c,0x30,0xe7 + ,0x8c,0x30,0xcf,0xc7,0xcc,0x31,0xf3 + ,0x8c,0x30,0xdc,0xec,0xec,0x33,0xb9 + ,0x8c,0x30,0xd8,0x6c,0x6c,0x33,0x19 + ,0x8c,0x30,0xd0,0x6c,0x0c,0x33,0x19 + ,0x8c,0x30,0xd8,0x6c,0x0c,0x33,0x19 + ,0x8c,0x30,0xdc,0x6c,0x0e,0x3b,0x19 + ,0x8c,0x30,0xcf,0x7c,0x07,0x9f,0x19 + ,0x8c,0x30,0xc7,0x7c,0x03,0x8f,0x19 + ,0x40,0x00,0x00,0x00,0x00,0x00,0x02 + ,0x60,0x00,0x00,0x00,0x00,0x00,0x06 + ,0x1f,0xff,0xff,0xff,0xff,0xff,0xf8 }; // Here comes a compile-time operation to match the extruder symbols // on the info screen to the set number of extruders in configuration.h From b9cf1465a7b9eb517a6ff38cefcfbde6940ec4ff Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 9 Jan 2015 18:49:59 +0100 Subject: [PATCH 4/5] updated LCD bouts with new strings and bitmaps new version is pretty generic and should work in most scenarios --- Marlin/dogm_lcd_implementation.h | 66 ++++++++++++++++---------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index bcbe5f792..fdd68ec74 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -87,49 +87,51 @@ U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 static void lcd_implementation_init() { -#ifdef LCD_PIN_BL - pinMode(LCD_PIN_BL, OUTPUT); // Enable LCD backlight - digitalWrite(LCD_PIN_BL, HIGH); -#endif + #ifdef LCD_PIN_BL // Enable LCD backlight + pinMode(LCD_PIN_BL, OUTPUT); + digitalWrite(LCD_PIN_BL, HIGH); + #endif - u8g.setContrast(lcd_contrast); - // Uncomment this if you have the first generation (V1.10) of STBs board - // pinMode(17, OUTPUT); // Enable LCD backlight - // digitalWrite(17, HIGH); + u8g.setContrast(lcd_contrast); + // FIXME: remove this workaround + // Uncomment this if you have the first generation (V1.10) of STBs board + // pinMode(17, OUTPUT); // Enable LCD backlight + // digitalWrite(17, HIGH); + +#ifdef LCD_SCREEN_ROT_90 + u8g.setRot90(); // Rotate screen by 90° +#elif defined(LCD_SCREEN_ROT_180) + u8g.setRot180(); // Rotate screen by 180° +#elif defined(LCD_SCREEN_ROT_270) + u8g.setRot270(); // Rotate screen by 270° +#endif + // FIXME: whats the purpose of the box? Maybe clear screen? u8g.firstPage(); - do { + do { u8g.setFont(u8g_font_6x10_marlin); u8g.setColorIndex(1); u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight()); u8g.setColorIndex(1); - } while( u8g.nextPage() ); + } while(u8g.nextPage()); -#ifdef LCD_SCREEN_ROT_90 - u8g.setRot90(); // Rotate screen by 90° -#endif - -#ifdef LCD_SCREEN_ROT_180 - u8g.setRot180(); // Rotate screen by 180° -#endif - -#ifdef LCD_SCREEN_ROT_270 - u8g.setRot270(); // Rotate screen by 270° -#endif - - + // Show splashscreen + int off = (u8g.getWidth() - START_BMPWIDTH) / 2; + int txtX = (u8g.getWidth() - sizeof(STRING_SPLASH) - 1) / 2; + int txtY = u8g.getHeight() - 10; u8g.firstPage(); do { - // RepRap init bmp - u8g.drawBitmapP(7,7,START_BMPBYTEWIDTH,START_BMPHEIGHT,start_bmp); - // Welcome message + #ifdef START_BMPHIGH + u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp); + #else + u8g.setScale2x2(); + u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp); + u8g.undoScale(); + #endif - - - u8g.setFont(u8g_font_5x8); - u8g.drawStr(7,51,"V1.0.2 - marlin.reprap.org"); - - } while( u8g.nextPage() ); + u8g.setFont(u8g_font_5x8); + u8g.drawStr(txtX, txtY, STRING_SPLASH); + } while(u8g.nextPage()); } static void lcd_implementation_clear() From 905aab3b85d5dc7b0ba5a42450d59ba256b9ed4f Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 9 Jan 2015 20:23:38 +0100 Subject: [PATCH 5/5] added missing #endif --- Marlin/DOGMbitmaps.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Marlin/DOGMbitmaps.h b/Marlin/DOGMbitmaps.h index de5c8470c..b735477e3 100644 --- a/Marlin/DOGMbitmaps.h +++ b/Marlin/DOGMbitmaps.h @@ -72,6 +72,7 @@ ,0x40,0x00,0x00,0x00,0x00,0x00,0x02 ,0x60,0x00,0x00,0x00,0x00,0x00,0x06 ,0x1f,0xff,0xff,0xff,0xff,0xff,0xf8 }; +#endif // Here comes a compile-time operation to match the extruder symbols // on the info screen to the set number of extruders in configuration.h