Merge pull request #1348 from stv0g/LogoLCD

Adding new Marlin to splash screen
This commit is contained in:
Bo Herrmannsen 2015-01-10 16:08:03 +01:00
commit 1d4af46496
5 changed files with 120 additions and 60 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

View File

@ -24,8 +24,11 @@
// User-specified version info of this build to display in [Pronterface, etc] terminal window during // 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 // 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. // 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_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes. #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. // 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. // This allows the connection of wireless adapters (for instance) to non-default port pins.

View File

@ -1,28 +1,78 @@
#define START_BMPWIDTH 60 //Width in pixels - http://www.digole.com/tools/PicturetoC_Hex_converter.php // BitMap for splashscreen
#define START_BMPHEIGHT 64 //Height in pixels // Generated with: http://www.digole.com/tools/PicturetoC_Hex_converter.php
#define START_BMPBYTEWIDTH 8 //Width in bytes // Please note that using the high-res version takes about 0.5KB of
const unsigned char start_bmp[574] PROGMEM = { //AVR-GCC, WinAVR #ifdef START_BMPHIGH
0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff, #define START_BMPWIDTH 112
0x30,0x00,0x00,0x00,0x00,0x00,0x3f,0xff, #define START_BMPHEIGHT 38
0x40,0x00,0x00,0x00,0x00,0x00,0x1f,0xff, #define START_BMPBYTEWIDTH 14
0xc0,0x00,0x00,0x00,0x00,0x00,0x0f,0xff, #define START_BMPBYTES 532 // START_BMPWIDTH * START_BMPHEIGHT / 8
0x80,0x83,0x00,0x00,0x01,0x80,0x07,0xff,
0x83,0xef,0xc0,0x00,0x01,0x8c,0x03,0xff, const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
0x87,0xff,0xe0,0x00,0x01,0x8c,0x01,0xff, 0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
0x8e,0x38,0x60,0x00,0x01,0x80,0x00,0xff, ,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
0x8c,0x18,0x67,0xe0,0xf9,0x8c,0x7e,0x7f, ,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff
0x8c,0x18,0x6f,0xf1,0xfd,0x8c,0xfe,0x3f, ,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff
0x8c,0x18,0x6e,0x31,0x8d,0x8c,0xc7,0x1f, ,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff
0x8c,0x18,0x6c,0x39,0x8d,0x8c,0xc3,0x1f, ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff
0x8c,0x18,0x6c,0x19,0x81,0x8c,0xc3,0x1f, ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff
0x8c,0x18,0x6e,0x19,0x81,0x8c,0xc3,0x1f, ,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x3f,0xff
0x8c,0x18,0x6f,0x9f,0x81,0xef,0xc3,0x1f, ,0xc0,0x0f,0xc0,0xfc,0x00,0x00,0x00,0x00,0x00,0x78,0x18,0x00,0x1f,0xff
0x8c,0x18,0x67,0xdf,0x80,0xef,0xc3,0x1f, ,0xc0,0x3f,0xe1,0xff,0x00,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x0f,0xff
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x1f, ,0xc0,0x7f,0xf3,0xff,0x80,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x07,0xff
0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x2f, ,0xc0,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x03,0xff
0x30,0x00,0x00,0x00,0x00,0x00,0x00,0xcf, ,0xc1,0xf8,0x7f,0x87,0xe0,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xff
0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0x8f ,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 };
#endif
// Here comes a compile-time operation to match the extruder symbols // Here comes a compile-time operation to match the extruder symbols
// on the info screen to the set number of extruders in configuration.h // on the info screen to the set number of extruders in configuration.h

View File

@ -86,46 +86,53 @@ U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0
#endif #endif
static void lcd_implementation_init() { static void lcd_implementation_init()
#ifdef LCD_PIN_BL {
pinMode(LCD_PIN_BL, OUTPUT); // Enable LCD backlight #ifdef LCD_PIN_BL // Enable LCD backlight
pinMode(LCD_PIN_BL, OUTPUT);
digitalWrite(LCD_PIN_BL, HIGH); digitalWrite(LCD_PIN_BL, HIGH);
#endif #endif
u8g.setContrast(lcd_contrast); u8g.setContrast(lcd_contrast);
// FIXME: remove this workaround
/*
// Uncomment this if you have the first generation (V1.10) of STBs board // Uncomment this if you have the first generation (V1.10) of STBs board
// pinMode(17, OUTPUT); // Enable LCD backlight
// digitalWrite(17, HIGH);
pinMode(17, OUTPUT); // Enable LCD backlight #ifdef LCD_SCREEN_ROT_90
digitalWrite(17, HIGH); 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(); u8g.firstPage();
do { do {
u8g.setFont(u8g_font_6x10_marlin); u8g.setFont(u8g_font_6x10_marlin);
u8g.setColorIndex(1); u8g.setColorIndex(1);
u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight()); u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight());
u8g.setColorIndex(1); u8g.setColorIndex(1);
} while( u8g.nextPage() ); } while(u8g.nextPage());
#if defined(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
// 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(); u8g.firstPage();
do { do {
// RepRap init bmp #ifdef START_BMPHIGH
u8g.drawBitmapP(7,7,START_BMPBYTEWIDTH,START_BMPHEIGHT,start_bmp); u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
// Welcome message #else
u8g.setScale2x2();
u8g.drawBitmapP(off, off, START_BMPBYTEWIDTH, START_BMPHEIGHT, start_bmp);
u8g.undoScale();
#endif
u8g.setFont(u8g_font_5x8); u8g.setFont(u8g_font_5x8);
u8g.drawStr(7, 51, "V" MARLIN_VERSION " - marlin.reprap.org"); u8g.drawStr(txtX, txtY, STRING_SPLASH);
} while( u8g.nextPage() ); } while(u8g.nextPage());
} }
static void lcd_implementation_clear() { } // Automatically cleared by Picture Loop static void lcd_implementation_clear() { } // Automatically cleared by Picture Loop