diff --git a/Firmware/RTK_Surveyor/Display.ino b/Firmware/RTK_Surveyor/Display.ino index 05642e747..a17fa833b 100644 --- a/Firmware/RTK_Surveyor/Display.ino +++ b/Firmware/RTK_Surveyor/Display.ino @@ -62,7 +62,11 @@ void beginDisplay() online.display = true; Serial.println(F("Display started")); - displaySplash(); + + //Display the SparkFun LOGO + oled.erase(); + displayBitmap(0, 0, logoSparkFun_Width, logoSparkFun_Height, logoSparkFun); + oled.display(); splashStart = millis(); } else @@ -397,6 +401,10 @@ void displaySplash() { if (online.display == true) { + //Display SparkFun Logo for at least 1/10 of a second + while ((millis() - splashStart) < 100) + delay(10); + oled.erase(); int yPos = 0; @@ -440,6 +448,9 @@ void displaySplash() printTextCenter(unitFirmware, yPos, QW_FONT_5X7, 1, false); oled.display(); + + //Start the timer for the splash screen display + splashStart = millis(); } } diff --git a/Firmware/RTK_Surveyor/RTK_Surveyor.ino b/Firmware/RTK_Surveyor/RTK_Surveyor.ino index 8b6f471b2..ef39ba451 100644 --- a/Firmware/RTK_Surveyor/RTK_Surveyor.ino +++ b/Firmware/RTK_Surveyor/RTK_Surveyor.ino @@ -426,13 +426,15 @@ void setup() Wire.begin(); //Start I2C on core 1 //Wire.setClock(400000); + beginDisplay(); //Start display first to be able to display any errors + beginGNSS(); //Connect to GNSS to get module type beginFS(); //Start file system for settings beginBoard(); //Determine what hardware platform we are running on and check on button - beginDisplay(); //Start display first to be able to display any errors + displaySplash(); //Display the RTK product name and firmware version beginLEDs(); //LED and PWM setup diff --git a/Firmware/RTK_Surveyor/icons.h b/Firmware/RTK_Surveyor/icons.h index b846dff8d..789d2a792 100644 --- a/Firmware/RTK_Surveyor/icons.h +++ b/Firmware/RTK_Surveyor/icons.h @@ -700,3 +700,101 @@ uint8_t UploadArrow [] = { }; int UploadArrow_Height = 9; int UploadArrow_Width = 8; + +/* + logoSparkFun [64, 48] + + 1 2 3 4 5 6 + 1234567890123456789012345678901234567890123456789012345678901234 + .----------------------------------------------------------------. + 0x01| ********** | + 0x02| ************* | + 0x04| ************** | + 0x08| *********** | + 0x10| ********** | + 0x20| *********** | + 0x40| *********** | + 0x80| *********** ** | + 0x01| ************ *** | + 0x02| ************* **** | + 0x04| ********************* | + 0x08| ********************* | + 0x10| ******************** | + 0x20| ********************* | + 0x40| ******************* | + 0x80| ******* ******************* | + 0x01| ******* ****************** | + 0x02| ******* ***************** | + 0x04| ******** ****************** | + 0x08| ******** ****************** | + 0x10| ********* ******************* | + 0x20| ********************************* | + 0x40| ********************************* | + 0x80| ********************************* | + 0x01| ********************************* | + 0x02| ******************************** | + 0x04| ******************************** | + 0x08| ******************************* | + 0x10| ******************************* | + 0x20| ****************************** | + 0x40| ***************************** | + 0x80| **************************** | + 0x01| *************************** | + 0x02| ************************** | + 0x04| ************************ | + 0x08| ********************* | + 0x10| ************* | + 0x20| *********** | + 0x40| ********** | + 0x80| ********* | + 0x01| ******** | + 0x02| ******* | + 0x04| ****** | + 0x08| ***** | + 0x10| **** | + 0x20| *** | + 0x40| ** | + 0x80| * | + '----------------------------------------------------------------' +*/ + +//SparkFun Electronics LOGO +uint8_t logoSparkFun [] = { + // ROW0, BYTE0 to BYTE63 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x0F, 0x07, 0x07, 0x06, 0x06, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // ROW1, BYTE64 to BYTE127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x07, 0x0F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFC, 0xFC, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFC, 0xF8, 0xE0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // ROW2, BYTE128 to BYTE191 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xF0, 0xFD, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // ROW3, BYTE192 to BYTE255 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x07, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // ROW4, BYTE256 to BYTE319 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x1F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x07, 0x07, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + // ROW5, BYTE320 to BYTE383 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; +int logoSparkFun_Height = 48; +int logoSparkFun_Width = 64;