diff --git a/Makefile b/Makefile
index c2202ce76..7af81c8ee 100644
--- a/Makefile
+++ b/Makefile
@@ -17,6 +17,7 @@ ENABLE_DTMF_CALLING ?= 1
ENABLE_FLASHLIGHT ?= 1
# ---- CUSTOM MODS ----
+ENABLE_WELCOME_IMAGE ?= 0
ENABLE_BIG_FREQ ?= 1
ENABLE_SMALL_BOLD ?= 1
ENABLE_CUSTOM_MENU_LAYOUT ?= 1
@@ -377,6 +378,9 @@ endif
ifeq ($(ENABLE_CUSTOM_MENU_LAYOUT),1)
CFLAGS += -DENABLE_CUSTOM_MENU_LAYOUT
endif
+ifeq ($(ENABLE_WELCOME_IMAGE),1)
+ CFLAGS += -DENABLE_WELCOME_IMAGE
+endif
LDFLAGS =
LDFLAGS += -z noexecstack -mcpu=cortex-m0 -nostartfiles -Wl,-T,firmware.ld -Wl,--gc-sections
diff --git a/README.md b/README.md
index 05f5cae90..fe6f6b04e 100644
--- a/README.md
+++ b/README.md
@@ -74,6 +74,16 @@ On the other hand, FM RX audio will/should be fine.
But, they are nice toys for the price, fun to play with.
+## Customize welcome image
+
+You can set welcome image instead text message or battery voltage something.
+
+1. Open welcome-image.html in web browser and process image to what you like
+2. Copy the text in "Buffer" field
+3. Replace the value of the variable "all" in ui/welcome.c where the line starts with "uint8_t all[8][128]"
+
+
+
## User customization
You can customize the firmware by enabling/disabling various compile options, this allows
@@ -96,6 +106,7 @@ You'll find the options at the top of "Makefile" ('0' = disable, '1' = enable) .
| ENABLE_DTMF_CALLING | DTMF calling fuctionality, sending calls, receiving calls, group calls, contacts list etc. |
| ENABLE_FLASHLIGHT | enable top flashlight LED (on, blink, SOS) |
|🧰 **CUSTOM MODS**||
+| ENABLE_WELCOME_IMAGE | Customize welcome image (will be blank screen if not build but still select the option) |
| ENABLE_BIG_FREQ | big font frequencies (like original QS firmware) |
| ENABLE_SMALL_BOLD | bold channel name/no. (when name + freq channel display mode) |
| ENABLE_CUSTOM_MENU_LAYOUT | changes how the menu looks like |
diff --git a/settings.h b/settings.h
index 16b9ac01f..e09ee21cb 100644
--- a/settings.h
+++ b/settings.h
@@ -29,6 +29,7 @@ enum POWER_OnDisplayMode_t {
POWER_ON_DISPLAY_MODE_FULL_SCREEN = 0,
POWER_ON_DISPLAY_MODE_MESSAGE,
POWER_ON_DISPLAY_MODE_VOLTAGE,
+ POWER_ON_DISPLAY_MODE_IMAGE,
POWER_ON_DISPLAY_MODE_NONE
};
typedef enum POWER_OnDisplayMode_t POWER_OnDisplayMode_t;
diff --git a/ui/menu.c b/ui/menu.c
index f5855e521..bea035864 100644
--- a/ui/menu.c
+++ b/ui/menu.c
@@ -258,6 +258,7 @@ const char gSubMenu_PONMSG[][8] =
"FULL",
"MESSAGE",
"VOLTAGE",
+ "IMAGE",
"NONE"
};
diff --git a/ui/menu.h b/ui/menu.h
index 16f5c1cd0..6d904a283 100644
--- a/ui/menu.h
+++ b/ui/menu.h
@@ -149,7 +149,7 @@ extern const char* const gSubMenu_MDF[4];
extern const char gSubMenu_D_RSP[4][11];
#endif
extern const char* const gSubMenu_PTT_ID[5];
-extern const char gSubMenu_PONMSG[4][8];
+extern const char gSubMenu_PONMSG[5][8];
extern const char gSubMenu_ROGER[3][6];
extern const char gSubMenu_RESET[2][4];
extern const char* const gSubMenu_F_LOCK[F_LOCK_LEN];
diff --git a/ui/welcome.c b/ui/welcome.c
index 71b309fbd..e59437b54 100644
--- a/ui/welcome.c
+++ b/ui/welcome.c
@@ -71,6 +71,18 @@ void UI_DisplayWelcome(void)
UI_PrintString(WelcomeString1, 0, 127, 2, 10);
UI_PrintStringSmallNormal(Version, 0, 128, 6);
+ if (gEeprom.POWER_ON_DISPLAY_MODE == POWER_ON_DISPLAY_MODE_IMAGE)
+ {
+#ifdef ENABLE_WELCOME_IMAGE
+ uint8_t all[8][128] = {{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0xa8,0xcc,0x90,0x84,0x98,0xec,0x20,0xc,0x28,0xac,0x40,0xfc,0x10,0xfc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0xf0,0xf8,0xfc,0xfc,0xfe,0xfe,0xfe,0xfe,0xfe,0xfc,0xfc,0xf8,0xf0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0xaa,0x97,0xe5,0xb7,0xd5,0x9a,0x81,0xd8,0xcb,0x9b,0xd9,0x94,0xbf,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xff,0xff,0xff,0xf5,0xfb,0xff,0xff,0xff,0xfb,0xf1,0xfb,0xff,0xff,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0x80,0x80,0xff,0xff,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf8,0xf8,0xf8,0xf8,0xfc,0xfc,0xfc,0xfc,0xe0,0xc0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x6,0xd,0x12,0x2d,0x5d,0xba,0x5d,0x2d,0x12,0xd,0x6,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x80,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x3f,0x3f,0x7f,0xff,0xff,0xff,0xfe,0xf8,0xf0,0xe0,0xc0,0x80,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x80,0xc0,0xe0,0xe0,0xf0,0xf0,0xf0,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0x78,0x78,0x7c,0x7c,0x7e,0x3f,0x3f,0x1f,0xf,0x3,0x3,0x7,0xf,0x3f,0xff,0xff,0xff,0xff,0xff,0x6f,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x7,0x0,0x0,0x0,0x0,0x80,0xc0,0xf1,0xf3,0xff,0xff,0xff,0x7f,0x3f,0x1f,0xe,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x3,0xf,0x3f,0x7f,0x7f,0x7f,0x3f,0x1f,0x8f,0x87,0x83,0x81,0xc0,0x80,0x80,0x80,0x80,0x0,0x0,0x0,0x0,0xc0,0x40,0xc0,0x0,0x40,0xc0,0x40,0xb0,0x3f,0xbf,0xbf,0xff,0xff,0xdb,0xff,0xff,0x3f,0xff,0xff,0x3f,0xb8,0xb0,0x3c,0xbe,0xbe,0xff,0xff,0xff,0xff,0xff,0x3,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x8e,0x4a,0x2a,0xff,0x2a,0x4a,0x8e,0x0,0x0,0x0,0x0,0xc0,0x3f,0xf2,0xf,0xfe,0xe9,0xaa,0x48,0x62,0x88,0xea,0xe8,0xff,0xff,0xff,0x66,0x98,0xde,0xa0,0x7e,0x0,0xff,0xe3,0x8,0xeb,0xe3,0xff,0xff,0xf7,0xc3,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0},{0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0x0,0x38,0x44,0x0,0x38,0x44,0x38,0x0,0x7c,0x14,0x68,0x0,0x48,0x55,0x24,0x0,0x7c,0x55,0x0,0x4,0x7c,0x5,0xc0,0xfc,0xff,0x83,0xef,0x83,0xfe,0xbb,0x83,0xba,0xff,0x83,0xf2,0x83,0xff,0x83,0xab,0xff,0xbf,0xff,0xc7,0xbb,0xff,0xc6,0xba,0xc6,0xfe,0x82,0xf2,0x83,0xff,0xff,0xff,0xff,0x66,0xa6,0xcc,0xac,0x1c,0x46,0x46,0x1c,0xff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0}};
+#else
+ uint8_t all[8][128];
+ memset(all, 0, sizeof(gStatusLine));
+#endif
+ memcpy(gStatusLine, all[0], 128);
+ memcpy(gFrameBuffer, all[1], 128 * 7);
+ }
+
ST7565_BlitStatusLine(); // blank status line
ST7565_BlitFullScreen();
}
diff --git a/welcome-image.html b/welcome-image.html
new file mode 100644
index 000000000..ffcef602c
--- /dev/null
+++ b/welcome-image.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+ Preview |
+ Buffer |
+
+
+ |
+ |
+
+
+ |
+ |
+
+
+ |
+ |
+
+
+
+
+
+
\ No newline at end of file