aboutsummaryrefslogtreecommitdiff
path: root/users/drashna/oled
diff options
context:
space:
mode:
Diffstat (limited to 'users/drashna/oled')
-rw-r--r--users/drashna/oled/drashna_font.h1404
-rw-r--r--users/drashna/oled/oled_stuff.c445
-rw-r--r--users/drashna/oled/oled_stuff.h131
3 files changed, 1980 insertions, 0 deletions
diff --git a/users/drashna/oled/drashna_font.h b/users/drashna/oled/drashna_font.h
new file mode 100644
index 000000000..844292a53
--- /dev/null
+++ b/users/drashna/oled/drashna_font.h
@@ -0,0 +1,1404 @@
1#pragma once
2
3// additional fonts from
4// https://github.com/datacute/TinyOLED-Fonts
5
6#if __has_include("../../../../Documents/qmk/oled_font.h")
7# include "../../../../Documents/qmk/oled_font.h"
8#else
9
10// additional fonts from
11// https://github.com/datacute/TinyOLED-Fonts
12
13# include "progmem.h"
14
15// clang-format off
16static const unsigned char font[] PROGMEM = {
17 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00,
18 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
19 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
20 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
21 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
22 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
23 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
24 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
25 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
26 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
27 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
28 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
29 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
30 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
31 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
32 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
33 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
34 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
35 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
36 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
37 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
38 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
39 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
40 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
41 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
42 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
43 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
44 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
45 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
46 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
47 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
48 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
49
50# if defined(OLED_FONT_5X5)
51 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
52 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00,
53 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
54 0x28, 0x7c, 0x28, 0x7c, 0x28, 0x00,
55 0x5c, 0x54, 0xfe, 0x54, 0x74, 0x00,
56 0x44, 0x20, 0x10, 0x08, 0x44, 0x00,
57 0x28, 0x54, 0x54, 0x20, 0x50, 0x00,
58 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
59 0x38, 0x44, 0x00, 0x00, 0x00, 0x00,
60 0x44, 0x38, 0x00, 0x00, 0x00, 0x00,
61 0x02, 0x07, 0x02, 0x00, 0x00, 0x00,
62 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00,
63 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
64 0x10, 0x10, 0x10, 0x10, 0x10, 0x00,
65 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
66 0x60, 0x10, 0x0c, 0x00, 0x00, 0x00,
67 0x7c, 0x64, 0x54, 0x4c, 0x7c, 0x00,
68 0x48, 0x7c, 0x40, 0x00, 0x00, 0x00,
69 0x64, 0x54, 0x54, 0x54, 0x48, 0x00,
70 0x44, 0x54, 0x54, 0x54, 0x6c, 0x00,
71 0x3c, 0x20, 0x70, 0x20, 0x20, 0x00,
72 0x5c, 0x54, 0x54, 0x54, 0x24, 0x00,
73 0x7c, 0x54, 0x54, 0x54, 0x74, 0x00,
74 0x04, 0x04, 0x64, 0x14, 0x0c, 0x00,
75 0x7c, 0x54, 0x54, 0x54, 0x7c, 0x00,
76 0x5c, 0x54, 0x54, 0x54, 0x7c, 0x00,
77 0x44, 0x00, 0x00, 0x00, 0x00, 0x00,
78 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00,
79 0x10, 0x28, 0x44, 0x00, 0x00, 0x00,
80 0x28, 0x28, 0x28, 0x28, 0x28, 0x00,
81 0x44, 0x28, 0x10, 0x00, 0x00, 0x00,
82 0x08, 0x04, 0x54, 0x08, 0x00, 0x00,
83 0x7c, 0x44, 0x54, 0x54, 0x5c, 0x00,
84 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00,
85 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00,
86 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00,
87 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00,
88 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00,
89 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00,
90 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00,
91 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00,
92 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00,
93 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00,
94 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00,
95 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00,
96 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00,
97 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00,
98 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
99 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00,
100 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00,
101 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00,
102 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00,
103 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00,
104 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00,
105 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00,
106 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00,
107 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
108 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00,
109 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00,
110 0x7c, 0x44, 0x00, 0x00, 0x00, 0x00,
111 0x0c, 0x10, 0x60, 0x00, 0x00, 0x00,
112 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00,
113 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
114 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
115 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
116 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00,
117 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00,
118 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00,
119 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00,
120 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00,
121 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00,
122 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00,
123 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00,
124 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00,
125 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00,
126 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00,
127 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00,
128 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00,
129 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00,
130 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
131 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00,
132 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00,
133 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00,
134 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00,
135 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00,
136 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00,
137 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00,
138 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00,
139 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
140 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00,
141 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00,
142 0x10, 0x7c, 0x44, 0x00, 0x00, 0x00,
143 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
144 0x44, 0x7c, 0x10, 0x00, 0x00, 0x00,
145 0x02, 0x01, 0x02, 0x01, 0x00, 0x00,
146 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
147# lif defined(OLED_FONT_AZTECH)
148 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00,
150 0x00, 0x02, 0x00, 0x02, 0x00, 0x00,
151 0x00, 0x0a, 0x1e, 0x0a, 0x1e, 0x00,
152 0x00, 0x0e, 0x2a, 0x6b, 0x2a, 0x3a,
153 0x00, 0x06, 0x06, 0x26, 0x18, 0x06,
154 0x38, 0x3e, 0x2a, 0x2a, 0x28, 0x38,
155 0x18, 0x02, 0x00, 0x00, 0x00, 0x00,
156 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00,
157 0x00, 0x22, 0x3e, 0x00, 0x00, 0x00,
158 0x00, 0x0e, 0x0e, 0x0e, 0x04, 0x00,
159 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00,
160 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
161 0x00, 0x08, 0x08, 0x08, 0x00, 0x00,
162 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
163 0x00, 0x20, 0x18, 0x06, 0x00, 0x00,
164 0x00, 0x3e, 0x22, 0x2a, 0x22, 0x3e,
165 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00,
166 0x00, 0x38, 0x28, 0x2a, 0x2a, 0x2e,
167 0x00, 0x22, 0x2a, 0x2e, 0x38, 0x00,
168 0x00, 0x0e, 0x08, 0x08, 0x3e, 0x08,
169 0x00, 0x2e, 0x2a, 0x2a, 0x28, 0x38,
170 0x00, 0x3e, 0x2a, 0x2a, 0x28, 0x38,
171 0x00, 0x06, 0x02, 0x02, 0x0a, 0x3e,
172 0x00, 0x38, 0x2e, 0x2a, 0x2e, 0x38,
173 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3e,
174 0x00, 0x28, 0x00, 0x00, 0x00, 0x00,
175 0x00, 0x28, 0x00, 0x00, 0x00, 0x00,
176 0x00, 0x08, 0x14, 0x22, 0x00, 0x00,
177 0x00, 0x14, 0x14, 0x14, 0x14, 0x00,
178 0x00, 0x22, 0x14, 0x08, 0x00, 0x00,
179 0x00, 0x06, 0x02, 0x2a, 0x0a, 0x06,
180 0x00, 0x3e, 0x02, 0x3a, 0x2a, 0x0a,
181 0x22, 0x3e, 0x02, 0x0a, 0x0a, 0x3e,
182 0x00, 0x3e, 0x22, 0x2a, 0x2e, 0x38,
183 0x00, 0x3e, 0x22, 0x22, 0x20, 0x30,
184 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3c,
185 0x00, 0x3e, 0x2a, 0x22, 0x20, 0x30,
186 0x00, 0x3e, 0x0a, 0x0a, 0x06, 0x02,
187 0x00, 0x3e, 0x22, 0x2a, 0x28, 0x38,
188 0x00, 0x3e, 0x08, 0x08, 0x08, 0x3e,
189 0x00, 0x22, 0x3e, 0x22, 0x00, 0x00,
190 0x00, 0x30, 0x20, 0x20, 0x22, 0x3e,
191 0x00, 0x3e, 0x08, 0x08, 0x0e, 0x38,
192 0x00, 0x3e, 0x20, 0x20, 0x20, 0x30,
193 0x00, 0x3e, 0x02, 0x3e, 0x20, 0x3e,
194 0x3e, 0x3e, 0x02, 0x3e, 0x20, 0x3e,
195 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e,
196 0x00, 0x3e, 0x02, 0x0a, 0x0a, 0x0e,
197 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e,
198 0x00, 0x3e, 0x02, 0x0a, 0x0e, 0x38,
199 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3a,
200 0x00, 0x06, 0x02, 0x3e, 0x02, 0x06,
201 0x00, 0x3e, 0x20, 0x20, 0x20, 0x3e,
202 0x00, 0x3e, 0x20, 0x20, 0x3e, 0x00,
203 0x00, 0x3e, 0x20, 0x3e, 0x02, 0x3e,
204 0x3e, 0x3a, 0x0e, 0x08, 0x0e, 0x3a,
205 0x00, 0x0e, 0x08, 0x08, 0x28, 0x3e,
206 0x00, 0x3a, 0x2a, 0x2a, 0x0a, 0x0e,
207 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00,
208 0x00, 0x02, 0x0c, 0x30, 0x00, 0x00,
209 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00,
210 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
211 0x00, 0x20, 0x20, 0x20, 0x00, 0x00,
212 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
213 0x00, 0x38, 0x28, 0x28, 0x08, 0x38,
214 0x00, 0x3e, 0x20, 0x28, 0x28, 0x38,
215 0x00, 0x38, 0x28, 0x28, 0x20, 0x30,
216 0x00, 0x38, 0x28, 0x28, 0x20, 0x3e,
217 0x00, 0xf8, 0x88, 0x28, 0x28, 0x38,
218 0x00, 0xf8, 0x28, 0x28, 0x18, 0x08,
219 0x00, 0x38, 0x28, 0xa8, 0x88, 0xf8,
220 0x00, 0x3c, 0x08, 0x08, 0x08, 0x38,
221 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00,
222 0x80, 0xfa, 0x00, 0x00, 0x00, 0x00,
223 0x00, 0x3e, 0x08, 0x08, 0x38, 0x2c,
224 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00,
225 0x00, 0x38, 0x08, 0x38, 0x20, 0x38,
226 0x38, 0x38, 0x08, 0x38, 0x20, 0x38,
227 0x00, 0x38, 0x28, 0x28, 0x28, 0x38,
228 0x00, 0xf8, 0x08, 0x28, 0x28, 0x38,
229 0x00, 0x38, 0x28, 0x28, 0x08, 0xf8,
230 0x00, 0x38, 0x08, 0x08, 0x18, 0x08,
231 0x00, 0x38, 0x28, 0xa8, 0xa8, 0xe8,
232 0x00, 0x3e, 0x28, 0x28, 0x20, 0x30,
233 0x00, 0x38, 0x20, 0x20, 0x20, 0x38,
234 0x00, 0x38, 0x20, 0x38, 0x00, 0x00,
235 0x00, 0x38, 0x20, 0x38, 0x08, 0x38,
236 0x38, 0x28, 0x38, 0x10, 0x38, 0x28,
237 0x00, 0x38, 0x20, 0xa0, 0xa0, 0xf8,
238 0x00, 0xe8, 0xa8, 0xa8, 0x28, 0x38,
239 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00,
240 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00,
241 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00,
242 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
243 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
244# elif defined(OLED_FONT_BMPLAIN)
245 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00,
247 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
248 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x00,
249 0x2e, 0x2a, 0x6b, 0x2a, 0x3a, 0x00,
250 0x0e, 0x2a, 0x1e, 0x08, 0x3c, 0x2a,
251 0x3e, 0x2a, 0x2a, 0x22, 0x38, 0x08,
252 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
253 0x1c, 0x22, 0x00, 0x00, 0x00, 0x00,
254 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00,
255 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x00,
256 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00,
257 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
258 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
259 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
260 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
261 0x3e, 0x22, 0x2a, 0x22, 0x3e, 0x00,
262 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00,
263 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00,
264 0x2a, 0x2a, 0x2a, 0x2a, 0x3e, 0x00,
265 0x0e, 0x08, 0x08, 0x08, 0x3e, 0x00,
266 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00,
267 0x3e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00,
268 0x02, 0x02, 0x02, 0x02, 0x3e, 0x00,
269 0x3e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00,
270 0x2e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00,
271 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,
272 0x34, 0x00, 0x00, 0x00, 0x00, 0x00,
273 0x08, 0x14, 0x22, 0x00, 0x00, 0x00,
274 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
275 0x22, 0x14, 0x08, 0x00, 0x00, 0x00,
276 0x06, 0x02, 0x2a, 0x0a, 0x0e, 0x00,
277 0x3e, 0x02, 0x3a, 0x2a, 0x3e, 0x00,
278 0x3e, 0x12, 0x12, 0x12, 0x3e, 0x00,
279 0x3e, 0x2a, 0x2a, 0x2a, 0x36, 0x00,
280 0x3e, 0x22, 0x22, 0x22, 0x22, 0x00,
281 0x3e, 0x22, 0x22, 0x22, 0x1c, 0x00,
282 0x3e, 0x2a, 0x2a, 0x2a, 0x22, 0x00,
283 0x3e, 0x0a, 0x0a, 0x0a, 0x02, 0x00,
284 0x3e, 0x22, 0x2a, 0x2a, 0x3a, 0x00,
285 0x3e, 0x08, 0x08, 0x08, 0x3e, 0x00,
286 0x22, 0x3e, 0x22, 0x00, 0x00, 0x00,
287 0x38, 0x20, 0x20, 0x20, 0x3e, 0x00,
288 0x3e, 0x08, 0x08, 0x14, 0x22, 0x00,
289 0x3e, 0x20, 0x20, 0x20, 0x20, 0x00,
290 0x3e, 0x04, 0x38, 0x04, 0x3e, 0x00,
291 0x3e, 0x04, 0x08, 0x10, 0x3e, 0x00,
292 0x3e, 0x22, 0x22, 0x22, 0x3e, 0x00,
293 0x3e, 0x0a, 0x0a, 0x0a, 0x0e, 0x00,
294 0x3e, 0x22, 0x72, 0x22, 0x3e, 0x00,
295 0x3e, 0x0a, 0x0a, 0x1a, 0x2e, 0x00,
296 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00,
297 0x02, 0x02, 0x3e, 0x02, 0x02, 0x00,
298 0x1e, 0x20, 0x20, 0x20, 0x1e, 0x00,
299 0x0e, 0x10, 0x20, 0x10, 0x0e, 0x00,
300 0x3e, 0x10, 0x0e, 0x10, 0x3e, 0x00,
301 0x22, 0x14, 0x08, 0x14, 0x22, 0x00,
302 0x02, 0x04, 0x38, 0x04, 0x02, 0x00,
303 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00,
304 0x3e, 0x22, 0x00, 0x00, 0x00, 0x00,
305 0x3f, 0x21, 0x3f, 0x00, 0x00, 0x00,
306 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00,
307 0x0c, 0x1e, 0x3c, 0x1e, 0x0c, 0x00,
308 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
309 0x1c, 0x3e, 0x3e, 0x3e, 0x1c, 0x00,
310 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x20,
311 0x3e, 0x24, 0x24, 0x24, 0x3c, 0x00,
312 0x3c, 0x24, 0x24, 0x24, 0x24, 0x00,
313 0x3c, 0x24, 0x24, 0x24, 0x3e, 0x00,
314 0x3c, 0x24, 0x34, 0x2c, 0x24, 0x00,
315 0x08, 0x3e, 0x0a, 0x0a, 0x00, 0x00,
316 0x1c, 0x54, 0x54, 0x54, 0x7c, 0x00,
317 0x3e, 0x04, 0x04, 0x04, 0x3c, 0x00,
318 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00,
319 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00,
320 0x3e, 0x08, 0x14, 0x22, 0x00, 0x00,
321 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00,
322 0x3c, 0x04, 0x3c, 0x04, 0x3c, 0x00,
323 0x3c, 0x04, 0x04, 0x04, 0x3c, 0x00,
324 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x00,
325 0x7c, 0x24, 0x24, 0x24, 0x3c, 0x00,
326 0x3c, 0x24, 0x24, 0x24, 0x7c, 0x00,
327 0x3c, 0x04, 0x04, 0x04, 0x00, 0x00,
328 0x24, 0x2c, 0x34, 0x24, 0x00, 0x00,
329 0x04, 0x3e, 0x24, 0x24, 0x00, 0x00,
330 0x3c, 0x20, 0x20, 0x20, 0x3c, 0x00,
331 0x0c, 0x10, 0x20, 0x10, 0x0c, 0x00,
332 0x3c, 0x20, 0x3c, 0x20, 0x3c, 0x00,
333 0x24, 0x24, 0x18, 0x24, 0x24, 0x00,
334 0x1c, 0x50, 0x50, 0x50, 0x7c, 0x00,
335 0x24, 0x34, 0x2c, 0x24, 0x00, 0x00,
336 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00,
337 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x00,
338 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00,
339 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
340 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
341# elif defined(OLED_FONT_CRACKERS)
342 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
343 0x5E, 0x06, 0x06, 0x00, 0x00, 0x00,
344 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00,
345 0x20, 0x7C, 0x38, 0x38, 0x7C, 0x08,
346 0x48, 0xFE, 0x64, 0x64, 0x00, 0x00,
347 0x64, 0x60, 0x60, 0x18, 0x0C, 0x0C,
348 0x74, 0x4A, 0x4A, 0x7E, 0x48, 0x00,
349 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
350 0x3C, 0x7E, 0x7E, 0x42, 0x00, 0x00,
351 0x42, 0x7E, 0x7E, 0x3C, 0x00, 0x00,
352 0x04, 0x0C, 0x04, 0x06, 0x0C, 0x04,
353 0x10, 0x3C, 0x3C, 0x3C, 0x10, 0x00,
354 0x00, 0x60, 0xE0, 0x00, 0x00, 0x00,
355 0x08, 0x08, 0x08, 0x00, 0x00, 0x00,
356 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
357 0x60, 0x78, 0x78, 0x1E, 0x06, 0x00,
358 0x3C, 0x3C, 0x7E, 0x42, 0x7E, 0x7E,
359 0x04, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
360 0x76, 0x7A, 0x7E, 0x7E, 0x4C, 0x00,
361 0x4A, 0x7E, 0x7E, 0x7C, 0x00, 0x00,
362 0x0E, 0x08, 0x7E, 0x7E, 0x7E, 0x00,
363 0x4E, 0x4E, 0x4E, 0x7A, 0x1A, 0x00,
364 0x3C, 0x7E, 0x7E, 0x4A, 0x7A, 0x00,
365 0x02, 0x02, 0x0A, 0x7E, 0x7E, 0x7E,
366 0x7E, 0x7E, 0x7E, 0x4A, 0x7E, 0x00,
367 0x0C, 0x4A, 0x7E, 0x7E, 0x3C, 0x00,
368 0x66, 0x66, 0x66, 0x00, 0x00, 0x00,
369 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
370 0x08, 0x3C, 0x7E, 0x7E, 0x62, 0x00,
371 0x14, 0x14, 0x14, 0x00, 0x00, 0x00,
372 0x62, 0x7E, 0x7E, 0x3C, 0x08, 0x00,
373 0x02, 0x4A, 0x0E, 0x0E, 0x0C, 0x00,
374 0x3C, 0x7E, 0x7E, 0x4A, 0x72, 0x30,
375 0x7A, 0x4A, 0x7E, 0x7E, 0x7C, 0x00,
376 0x7E, 0x7E, 0x7E, 0x4A, 0x24, 0x00,
377 0x3C, 0x7E, 0x7E, 0x7E, 0x46, 0x00,
378 0x7E, 0x7E, 0x7E, 0x62, 0x3C, 0x00,
379 0x7E, 0x7E, 0x7E, 0x4A, 0x00, 0x00,
380 0x7E, 0x7E, 0x7E, 0x0A, 0x00, 0x00,
381 0x3C, 0x7E, 0x7E, 0x42, 0x62, 0x00,
382 0x7E, 0x7E, 0x7E, 0x18, 0x7E, 0x00,
383 0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00,
384 0x40, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
385 0x7E, 0x7E, 0x7E, 0x3C, 0x66, 0x00,
386 0x7E, 0x7E, 0x7E, 0x40, 0x00, 0x00,
387 0x7E, 0x3E, 0x3E, 0x7C, 0x3E, 0x3E,
388 0x7E, 0x3E, 0x7E, 0x7C, 0x7E, 0x00,
389 0x3C, 0x3C, 0x7E, 0x62, 0x7E, 0x7E,
390 0x7E, 0x7E, 0x7E, 0x22, 0x0C, 0x00,
391 0x3C, 0x7E, 0x7E, 0x62, 0x7E, 0x7C,
392 0x7E, 0x7E, 0x7E, 0x0A, 0x64, 0x00,
393 0x4C, 0x4E, 0x4E, 0x7A, 0x1A, 0x00,
394 0x02, 0x7E, 0x7E, 0x7E, 0x02, 0x00,
395 0x7E, 0x60, 0x7E, 0x7E, 0x7E, 0x00,
396 0x3E, 0x60, 0x7E, 0x7E, 0x3E, 0x00,
397 0x7E, 0x7C, 0x7C, 0x3E, 0x7C, 0x7C,
398 0x46, 0x7E, 0x08, 0x7E, 0x62, 0x62,
399 0x5E, 0x5E, 0x5E, 0x70, 0x3E, 0x00,
400 0x66, 0x7A, 0x7A, 0x5E, 0x66, 0x00,
401 0x7E, 0x7E, 0x7E, 0x42, 0x00, 0x00,
402 0x06, 0x1E, 0x1E, 0x78, 0x60, 0x00,
403 0x42, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
404 0x0C, 0x06, 0x0C, 0x00, 0x00, 0x00,
405 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
406 0x02, 0x06, 0x06, 0x04, 0x00, 0x00,
407 0x78, 0x24, 0x7C, 0x7C, 0x78, 0x00,
408 0x7C, 0x7C, 0x7C, 0x48, 0x20, 0x00,
409 0x18, 0x7C, 0x7C, 0x7C, 0x4C, 0x00,
410 0x20, 0x48, 0x7C, 0x7C, 0x7C, 0x00,
411 0x18, 0x7C, 0x7C, 0x74, 0x4C, 0x00,
412 0x78, 0x7C, 0x7C, 0x24, 0x00, 0x00,
413 0x18, 0x7C, 0x7C, 0x44, 0x74, 0x00,
414 0x7C, 0x7C, 0x7C, 0x08, 0x60, 0x00,
415 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00,
416 0x40, 0x7C, 0x7C, 0x7C, 0x00, 0x00,
417 0x7C, 0x7C, 0x7C, 0x20, 0x48, 0x00,
418 0x7C, 0x7C, 0x7C, 0x40, 0x00, 0x00,
419 0x7C, 0x3C, 0x3C, 0x78, 0x3C, 0x3C,
420 0x7C, 0x7C, 0x7C, 0x04, 0x78, 0x00,
421 0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C,
422 0x7C, 0x7C, 0x7C, 0x24, 0x08, 0x00,
423 0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C,
424 0x7C, 0x7C, 0x7C, 0x04, 0x00, 0x00,
425 0x5C, 0x7C, 0x7C, 0x74, 0x00, 0x00,
426 0x08, 0x7C, 0x7C, 0x7C, 0x48, 0x00,
427 0x7C, 0x60, 0x7C, 0x7C, 0x7C, 0x00,
428 0x3C, 0x60, 0x7C, 0x7C, 0x3C, 0x00,
429 0x7C, 0x78, 0x78, 0x3C, 0x78, 0x78,
430 0x4C, 0x3C, 0x3C, 0x78, 0x64, 0x00,
431 0x4C, 0x4C, 0x4C, 0x78, 0x3C, 0x00,
432 0x5C, 0x74, 0x44, 0x5C, 0x74, 0x00,
433 0x24, 0x7E, 0x42, 0x42, 0x00, 0x00,
434 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
435 0x42, 0x7E, 0x24, 0x00, 0x00, 0x00,
436 0x04, 0x06, 0x06, 0x02, 0x04, 0x06,
437 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
438# elif defined(OLED_FONT_EIN)
439 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
440 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
441 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
442 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
443 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
444 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
445 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
446 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
447 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
448 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
449 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
450 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
451 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
452 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
453 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
454 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
455 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
456 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
457 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
458 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
459 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
460 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
461 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
462 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
463 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
464 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
465 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
466 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
467 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
468 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
469 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
470 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
471 0x00, 0x41, 0x5D, 0x59, 0x4E, 0x00,
472 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
473 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
474 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
475 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
476 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
477 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
478 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
479 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
480 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,
481 0x20, 0x40, 0x40, 0x3F, 0x00, 0x00,
482 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
483 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
484 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
485 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
486 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
487 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
488 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
489 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
490 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
491 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,
492 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
493 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
494 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
495 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
496 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
497 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
498 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
499 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
500 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
501 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
502 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
503 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
504 0x78, 0x14, 0x14, 0x78, 0x00, 0x00,
505 0x7C, 0x54, 0x54, 0x28, 0x00, 0x00,
506 0x38, 0x44, 0x44, 0x28, 0x00, 0x00,
507 0x7C, 0x44, 0x44, 0x38, 0x00, 0x00,
508 0x7C, 0x54, 0x54, 0x44, 0x00, 0x00,
509 0x7C, 0x14, 0x14, 0x04, 0x00, 0x00,
510 0x38, 0x44, 0x54, 0x34, 0x00, 0x00,
511 0x7C, 0x10, 0x10, 0x7C, 0x00, 0x00,
512 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00,
513 0x20, 0x40, 0x40, 0x3C, 0x00, 0x00,
514 0x7C, 0x10, 0x28, 0x44, 0x00, 0x00,
515 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
516 0x7C, 0x08, 0x70, 0x08, 0x7C, 0x00,
517 0x7C, 0x08, 0x10, 0x7C, 0x00, 0x00,
518 0x38, 0x44, 0x44, 0x38, 0x00, 0x00,
519 0x7C, 0x14, 0x14, 0x08, 0x00, 0x00,
520 0x38, 0x44, 0x24, 0x58, 0x00, 0x00,
521 0x7C, 0x14, 0x34, 0x48, 0x00, 0x00,
522 0x48, 0x54, 0x54, 0x24, 0x00, 0x00,
523 0x04, 0x7C, 0x04, 0x00, 0x00, 0x00,
524 0x3C, 0x40, 0x40, 0x3C, 0x00, 0x00,
525 0x3C, 0x40, 0x20, 0x1C, 0x00, 0x00,
526 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
527 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
528 0x0C, 0x10, 0x70, 0x10, 0x0C, 0x00,
529 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
530 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
531 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
532 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
533 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
534 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
535# elif defined(OLED_FONT_HISKYF21)
536 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
537 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00,
538 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00,
539 0x28, 0x7C, 0x28, 0x7C, 0x28, 0x00,
540 0x48, 0x54, 0x54, 0xFE, 0x54, 0x54,
541 0x44, 0x20, 0x10, 0x08, 0x44, 0x00,
542 0x28, 0x54, 0x54, 0x54, 0x74, 0x10,
543 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
544 0x78, 0x84, 0x00, 0x00, 0x00, 0x00,
545 0x84, 0x78, 0x00, 0x00, 0x00, 0x00,
546 0x48, 0x30, 0x30, 0x48, 0x00, 0x00,
547 0x10, 0x38, 0x10, 0x00, 0x00, 0x00,
548 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
549 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
550 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
551 0x60, 0x10, 0x0C, 0x00, 0x00, 0x00,
552 0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
553 0x08, 0x7C, 0x00, 0x00, 0x00, 0x00,
554 0x64, 0x54, 0x54, 0x54, 0x48, 0x00,
555 0x44, 0x54, 0x54, 0x54, 0x28, 0x00,
556 0x1C, 0x10, 0x10, 0x10, 0x7C, 0x00,
557 0x4C, 0x54, 0x54, 0x54, 0x24, 0x00,
558 0x38, 0x54, 0x54, 0x54, 0x54, 0x20,
559 0x44, 0x24, 0x14, 0x0C, 0x00, 0x00,
560 0x28, 0x54, 0x54, 0x54, 0x54, 0x28,
561 0x08, 0x54, 0x54, 0x54, 0x54, 0x38,
562 0x48, 0x00, 0x00, 0x00, 0x00, 0x00,
563 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00,
564 0x10, 0x28, 0x44, 0x00, 0x00, 0x00,
565 0x28, 0x28, 0x28, 0x28, 0x00, 0x00,
566 0x44, 0x28, 0x10, 0x00, 0x00, 0x00,
567 0x04, 0x54, 0x14, 0x14, 0x08, 0x00,
568 0x38, 0x44, 0x5C, 0x54, 0x48, 0x00,
569 0x60, 0x18, 0x14, 0x14, 0x18, 0x60,
570 0x7C, 0x54, 0x54, 0x54, 0x58, 0x30,
571 0x38, 0x44, 0x44, 0x44, 0x40, 0x00,
572 0x7C, 0x44, 0x44, 0x44, 0x38, 0x00,
573 0x7C, 0x54, 0x54, 0x54, 0x54, 0x40,
574 0x7C, 0x14, 0x14, 0x14, 0x10, 0x00,
575 0x38, 0x44, 0x44, 0x44, 0x70, 0x10,
576 0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C,
577 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
578 0x20, 0x40, 0x40, 0x40, 0x40, 0x3C,
579 0x7C, 0x10, 0x10, 0x28, 0x44, 0x00,
580 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
581 0x7C, 0x08, 0x10, 0x60, 0x10, 0x08,
582 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
583 0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
584 0x7C, 0x24, 0x24, 0x24, 0x18, 0x00,
585 0x38, 0x44, 0x64, 0x44, 0x38, 0x00,
586 0x7C, 0x14, 0x14, 0x14, 0x68, 0x00,
587 0x48, 0x54, 0x54, 0x54, 0x54, 0x20,
588 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00,
589 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00,
590 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00,
591 0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20,
592 0x74, 0x2C, 0x10, 0x28, 0x44, 0x00,
593 0x04, 0x08, 0x70, 0x08, 0x04, 0x00,
594 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
595 0xFC, 0x84, 0x00, 0x00, 0x00, 0x00,
596 0x0C, 0x10, 0x60, 0x00, 0x00, 0x00,
597 0x84, 0xFC, 0x00, 0x00, 0x00, 0x00,
598 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
599 0x40, 0x40, 0x40, 0x40, 0x00, 0x00,
600 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
601 0x60, 0x18, 0x14, 0x14, 0x18, 0x60,
602 0x7C, 0x54, 0x54, 0x54, 0x58, 0x30,
603 0x38, 0x44, 0x44, 0x44, 0x40, 0x00,
604 0x7C, 0x44, 0x44, 0x44, 0x38, 0x00,
605 0x7C, 0x54, 0x54, 0x54, 0x54, 0x40,
606 0x7C, 0x14, 0x14, 0x14, 0x10, 0x00,
607 0x38, 0x44, 0x44, 0x44, 0x70, 0x10,
608 0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C,
609 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
610 0x20, 0x40, 0x40, 0x40, 0x40, 0x3C,
611 0x7C, 0x10, 0x10, 0x28, 0x44, 0x00,
612 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
613 0x7C, 0x08, 0x10, 0x60, 0x10, 0x08,
614 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
615 0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
616 0x7C, 0x24, 0x24, 0x24, 0x18, 0x00,
617 0x38, 0x44, 0x64, 0x44, 0x38, 0x00,
618 0x7C, 0x14, 0x14, 0x14, 0x68, 0x00,
619 0x48, 0x54, 0x54, 0x54, 0x54, 0x20,
620 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00,
621 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00,
622 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00,
623 0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20,
624 0x74, 0x2C, 0x10, 0x28, 0x44, 0x00,
625 0x04, 0x08, 0x70, 0x08, 0x04, 0x00,
626 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
627 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
628 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
629 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
630 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
631 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
632# elif defined(OLED_FONT_SUPER_DIGG)
633 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
634 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00,
635 0x00, 0x01, 0x00, 0x00, 0x01, 0x00,
636 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
637 0x5C, 0xFE, 0x54, 0xFE, 0x74, 0x00,
638 0x03, 0x63, 0x38, 0x0C, 0x63, 0x60,
639 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x50,
640 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
641 0x70, 0x7C, 0x44, 0x00, 0x00, 0x00,
642 0x44, 0x7C, 0x70, 0x00, 0x00, 0x00,
643 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
644 0x10, 0x10, 0x70, 0x7C, 0x10, 0x00,
645 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00,
646 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
647 0x40, 0x40, 0x00, 0x00, 0x00, 0x00,
648 0x70, 0x7C, 0x03, 0x00, 0x00, 0x00,
649 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x1C,
650 0x04, 0x04, 0x7C, 0x1C, 0x00, 0x00,
651 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00,
652 0x44, 0x54, 0x54, 0x54, 0x7C, 0x70,
653 0x1C, 0x10, 0x10, 0x7C, 0x7C, 0x00,
654 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00,
655 0x70, 0x7C, 0x54, 0x54, 0x74, 0x00,
656 0x04, 0x14, 0x14, 0x14, 0x7C, 0x70,
657 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x00,
658 0x5C, 0x54, 0x54, 0x54, 0x7C, 0x1C,
659 0x50, 0x50, 0x00, 0x00, 0x00, 0x00,
660 0x50, 0xD0, 0x00, 0x00, 0x00, 0x00,
661 0x18, 0x18, 0x24, 0x42, 0x00, 0x00,
662 0x28, 0x28, 0x28, 0x28, 0x00, 0x00,
663 0x42, 0x24, 0x18, 0x18, 0x00, 0x00,
664 0x04, 0x14, 0x54, 0x54, 0x1C, 0x1C,
665 0xF8, 0x04, 0x74, 0x74, 0x54, 0x54,
666 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00,
667 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00,
668 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44,
669 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70,
670 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44,
671 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04,
672 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74,
673 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00,
674 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00,
675 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70,
676 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00,
677 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60,
678 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04,
679 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C,
680 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C,
681 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00,
682 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
683 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00,
684 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00,
685 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00,
686 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C,
687 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C,
688 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40,
689 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00,
690 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00,
691 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00,
692 0xF0, 0xFE, 0x82, 0x00, 0x00, 0x00,
693 0x03, 0x7C, 0x70, 0x00, 0x00, 0x00,
694 0x82, 0xFE, 0xF0, 0x00, 0x00, 0x00,
695 0x04, 0x02, 0x01, 0x06, 0x04, 0x00,
696 0x40, 0x40, 0x40, 0x40, 0x00, 0x00,
697 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
698 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00,
699 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00,
700 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44,
701 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70,
702 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44,
703 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04,
704 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74,
705 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00,
706 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00,
707 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70,
708 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00,
709 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60,
710 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04,
711 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C,
712 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C,
713 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00,
714 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
715 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00,
716 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00,
717 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00,
718 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C,
719 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C,
720 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40,
721 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00,
722 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00,
723 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00,
724 0x10, 0xFE, 0xC2, 0x00, 0x00, 0x00,
725 0x00, 0x44, 0x77, 0x00, 0x00, 0x00,
726 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00,
727 0x02, 0x01, 0x03, 0x04, 0x06, 0x02,
728 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00,
729#elif defined (OLED_FONT_ZXPIX)
730 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
731 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00,
732 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
733 0x12, 0x3F, 0x12, 0x12, 0x3F, 0x12,
734 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00,
735 0x23, 0x13, 0x08, 0x04, 0x32, 0x31,
736 0x10, 0x2A, 0x25, 0x2A, 0x10, 0x20,
737 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
738 0x1E, 0x21, 0x00, 0x00, 0x00, 0x00,
739 0x21, 0x1E, 0x00, 0x00, 0x00, 0x00,
740 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x08,
741 0x08, 0x08, 0x3E, 0x08, 0x08, 0x08,
742 0x80, 0x60, 0x00, 0x00, 0x00, 0x00,
743 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
744 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
745 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
746 0x1E, 0x31, 0x29, 0x25, 0x23, 0x1E,
747 0x22, 0x21, 0x3F, 0x20, 0x20, 0x20,
748 0x32, 0x29, 0x29, 0x29, 0x29, 0x26,
749 0x12, 0x21, 0x21, 0x25, 0x25, 0x1A,
750 0x18, 0x14, 0x12, 0x3F, 0x10, 0x10,
751 0x17, 0x25, 0x25, 0x25, 0x25, 0x19,
752 0x1E, 0x25, 0x25, 0x25, 0x25, 0x18,
753 0x01, 0x01, 0x31, 0x09, 0x05, 0x03,
754 0x1A, 0x25, 0x25, 0x25, 0x25, 0x1A,
755 0x06, 0x29, 0x29, 0x29, 0x29, 0x1E,
756 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
757 0x80, 0x64, 0x00, 0x00, 0x00, 0x00,
758 0x08, 0x14, 0x22, 0x00, 0x00, 0x00,
759 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
760 0x22, 0x14, 0x08, 0x00, 0x00, 0x00,
761 0x02, 0x01, 0x01, 0x29, 0x05, 0x02,
762 0x1E, 0x21, 0x2D, 0x2B, 0x2D, 0x0E,
763 0x3E, 0x09, 0x09, 0x09, 0x09, 0x3E,
764 0x3F, 0x25, 0x25, 0x25, 0x25, 0x1A,
765 0x1E, 0x21, 0x21, 0x21, 0x21, 0x12,
766 0x3F, 0x21, 0x21, 0x21, 0x12, 0x0C,
767 0x3F, 0x25, 0x25, 0x25, 0x25, 0x21,
768 0x3F, 0x05, 0x05, 0x05, 0x05, 0x01,
769 0x1E, 0x21, 0x21, 0x21, 0x29, 0x1A,
770 0x3F, 0x04, 0x04, 0x04, 0x04, 0x3F,
771 0x21, 0x21, 0x3F, 0x21, 0x21, 0x21,
772 0x10, 0x20, 0x20, 0x20, 0x20, 0x1F,
773 0x3F, 0x04, 0x0C, 0x0A, 0x11, 0x20,
774 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20,
775 0x3F, 0x02, 0x04, 0x04, 0x02, 0x3F,
776 0x3F, 0x02, 0x04, 0x08, 0x10, 0x3F,
777 0x1E, 0x21, 0x21, 0x21, 0x21, 0x1E,
778 0x3F, 0x09, 0x09, 0x09, 0x09, 0x06,
779 0x1E, 0x21, 0x29, 0x31, 0x21, 0x1E,
780 0x3F, 0x09, 0x09, 0x09, 0x19, 0x26,
781 0x12, 0x25, 0x25, 0x25, 0x25, 0x18,
782 0x01, 0x01, 0x01, 0x3F, 0x01, 0x01,
783 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F,
784 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F,
785 0x1F, 0x20, 0x10, 0x10, 0x20, 0x1F,
786 0x21, 0x12, 0x0C, 0x0C, 0x12, 0x21,
787 0x01, 0x02, 0x0C, 0x38, 0x04, 0x02,
788 0x21, 0x31, 0x29, 0x25, 0x23, 0x21,
789 0x3F, 0x21, 0x00, 0x00, 0x00, 0x00,
790 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
791 0x21, 0x3F, 0x00, 0x00, 0x00, 0x00,
792 0x04, 0x02, 0x3F, 0x02, 0x04, 0x00,
793 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
794 0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
795 0x10, 0x30, 0x2A, 0x2A, 0x3C, 0x00,
796 0x3F, 0x24, 0x24, 0x24, 0x18, 0x00,
797 0x0C, 0x14, 0x22, 0x22, 0x00, 0x00,
798 0x18, 0x24, 0x24, 0x24, 0x3F, 0x00,
799 0x1C, 0x2C, 0x2A, 0x2A, 0x24, 0x00,
800 0x3E, 0x05, 0x01, 0x00, 0x00, 0x00,
801 0x18, 0x28, 0xA4, 0xA4, 0x7C, 0x00,
802 0x3F, 0x04, 0x04, 0x0C, 0x30, 0x00,
803 0x24, 0x3D, 0x20, 0x00, 0x00, 0x00,
804 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
805 0x3F, 0x0C, 0x12, 0x20, 0x00, 0x00,
806 0x1F, 0x20, 0x20, 0x00, 0x00, 0x00,
807 0x3E, 0x02, 0x3C, 0x02, 0x3C, 0x00,
808 0x3E, 0x02, 0x02, 0x02, 0x3C, 0x00,
809 0x0C, 0x14, 0x22, 0x32, 0x0C, 0x00,
810 0xFC, 0x24, 0x24, 0x24, 0x18, 0x00,
811 0x18, 0x24, 0x24, 0x24, 0xFC, 0x80,
812 0x3C, 0x04, 0x02, 0x02, 0x00, 0x00,
813 0x24, 0x2C, 0x2A, 0x2A, 0x10, 0x00,
814 0x02, 0x1F, 0x22, 0x20, 0x00, 0x00,
815 0x1E, 0x20, 0x20, 0x20, 0x1E, 0x00,
816 0x06, 0x18, 0x20, 0x18, 0x06, 0x00,
817 0x1E, 0x30, 0x1C, 0x30, 0x0E, 0x00,
818 0x22, 0x14, 0x08, 0x14, 0x22, 0x00,
819 0x0C, 0x10, 0xA0, 0xA0, 0x7C, 0x00,
820 0x22, 0x32, 0x2A, 0x26, 0x22, 0x22,
821 0x0C, 0x3F, 0x21, 0x00, 0x00, 0x00,
822 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
823 0x21, 0x3F, 0x0C, 0x00, 0x00, 0x00,
824 0x02, 0x01, 0x02, 0x01, 0x00, 0x00,
825 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
826# else // default font
827 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
828 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
829 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
830 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
831 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
832 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
833 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
834 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
835 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
836 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
837 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
838 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
839 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
840 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
841 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
842 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
843 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
844 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
845 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
846 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
847 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
848 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
849 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
850 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
851 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
852 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
853 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
854 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
855 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
856 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
857 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
858 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
859 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
860 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
861 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
862 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
863 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
864 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
865 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
866 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
867 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
868 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
869 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
870 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
871 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
872 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
873 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
874 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
875 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
876 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
877 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
878 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
879 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
880 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
881 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
882 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
883 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
884 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
885 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
886 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
887 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
888 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
889 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
890 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
891 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
892 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
893 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
894 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
895 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
896 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
897 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
898 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
899 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
900 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
901 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
902 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
903 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
904 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
905 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
906 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
907 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
908 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
909 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
910 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
911 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
912 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
913 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
914 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
915 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
916 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
917 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
918 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
919 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
920 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
921 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
922 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
923# endif
924
925// top Logo section
926# if defined(OLED_LOGO_GMK_BAD)
927 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
928 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70,
929 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0,
930 0xE0, 0xE0, 0x80, 0x00, 0x00, 0x00,
931 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8,
932 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00,
933 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8,
934 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
935 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x00,
936 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x38,
937 0x08, 0x08, 0x00, 0x00, 0x00, 0x00,
938 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
939 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x38,
940 0x38, 0xF8, 0xF0, 0xF0, 0xE0, 0x00,
941 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
942 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
943 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
944 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
945 0x00, 0x00, 0x00, 0x80, 0xFC, 0xFC,
946 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00,
947 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
948# elif defined(OLED_LOGO_HUE_MANITEE)
949 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
950 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0,
951 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4,
952 0xC4, 0xA0, 0xE4, 0xB0, 0xDC, 0xE4,
953 0xFC, 0xFC, 0xFC, 0xFC, 0x3C, 0x3C,
954 0xFC, 0xF8, 0xF0, 0xF0, 0xE0, 0x00,
955 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
956 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
957 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
958 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8,
959 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
960 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
961 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
962 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
963 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
964 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
965 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00,
966 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
967 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
968 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
969 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
970# elif defined(OLED_LOGO_CORNE)
971 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
972 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
973 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
974 0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
975 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
976 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
977 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
978 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
979 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
980 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
981 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
982 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
983 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
984 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
985 0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
986 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
987 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
988 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
989 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
990 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
991 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
992# elif defined(OLED_LOGO_LOOSE)
993 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
994 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8,
995 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00,
996 0xFC, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
997 0x02, 0xF9, 0x01, 0x01, 0x05, 0x09,
998 0x11, 0x22, 0x06, 0xFE, 0xFE, 0xFE,
999 0xFE, 0xFE, 0xFE, 0xFE, 0x46, 0x46,
1000 0x44, 0x44, 0x45, 0x44, 0x29, 0x28,
1001 0x2A, 0x28, 0x11, 0x13, 0x05, 0x07,
1002 0x05, 0x07, 0x05, 0x07, 0x05, 0x07,
1003 0xE5, 0xE7, 0xE5, 0x07, 0x05, 0x07,
1004 0x05, 0x07, 0x05, 0x07, 0x05, 0x07,
1005 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7,
1006 0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07,
1007 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7,
1008 0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07,
1009 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7,
1010 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x07,
1011 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7,
1012 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x00,
1013 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1014# elif defined(OLED_LOGO_SKEEB)
1015 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02,
1016 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
1017 0x01, 0x01, 0x03, 0x07, 0x0F, 0x1F,
1018 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF,
1019 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01,
1020 0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFF,
1021 0x01, 0x01, 0xFF, 0xFF, 0x19, 0x19,
1022 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1023 0x01, 0x01, 0xFF, 0xFF, 0x81, 0x81,
1024 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1025 0x19, 0x19, 0xFF, 0xFF, 0xF9, 0xF9,
1026 0xF9, 0xF9, 0x01, 0x01, 0xF9, 0xF9,
1027 0xF9, 0xF9, 0xFF, 0xFF, 0x99, 0x99,
1028 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1029 0xF9, 0xF9, 0xFF, 0xFF, 0x19, 0x19,
1030 0x99, 0x99, 0x99, 0x99, 0x99, 0x99,
1031 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0xFF,
1032 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F,
1033 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x01,
1034 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
1035 0x02, 0x04, 0x08, 0x10, 0x20, 0xC0,
1036# else
1037 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1038 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
1039 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F,
1040 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8,
1041 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00,
1042 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
1043 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
1044 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00,
1045 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0,
1046 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00,
1047 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0,
1048 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0,
1049 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1050 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1051 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1052 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1053 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1054 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1055 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1056 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1057 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1058#endif
1059
1060// First icon section
1061 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
1062 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
1063 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
1064 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
1065 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
1066 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
1067 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
1068 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
1069 0x3E, 0x4A, 0x4F, 0x4A, 0x3E, 0x00,
1070 0x18, 0x3C, 0x7C, 0x3A, 0x7D, 0x24,
1071 0x14, 0x36, 0x00, 0x36, 0x77, 0x77,
1072
1073// middle logo section
1074# if defined(OLED_LOGO_GMK_BAD)
1075 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C,
1076 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00,
1077 0x00, 0x38, 0x38, 0xB8, 0xB8, 0xF9,
1078 0xF9, 0xF8, 0x38, 0x00, 0x00, 0x00,
1079 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0x1F,
1080 0x01, 0x3F, 0xFF, 0xFF, 0xF0, 0xFE,
1081 0x7F, 0x0F, 0x03, 0xFF, 0xFF, 0xFF,
1082 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80,
1083 0xFF, 0xFF, 0xFF, 0x3F, 0x1E, 0x7F,
1084 0xFF, 0xFF, 0xF3, 0xC1, 0x80, 0x00,
1085 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1086 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
1087 0xFF, 0xFF, 0xFF, 0x3F, 0x1C, 0x1C,
1088 0x9C, 0xFF, 0xFF, 0xF3, 0xE1, 0x00,
1089 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE,
1090 0xFF, 0x0F, 0x07, 0x07, 0x8E, 0xFF,
1091 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00,
1092 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x8F,
1093 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF,
1094 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80,
1095 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
1096# elif defined(OLED_LOGO_HUE_MANITEE)
1097 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
1098 0xFC, 0xF6, 0xF7, 0xEF, 0xFF, 0x87,
1099 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
1100 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF,
1101 0xFF, 0x07, 0x1F, 0x1F, 0x19, 0x15,
1102 0xF7, 0x16, 0x1A, 0x1B, 0x16, 0x07,
1103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1104 0x00, 0x00, 0x0C, 0x0C, 0x33, 0x33,
1105 0x33, 0x33, 0x33, 0x33, 0xC0, 0xC0,
1106 0x00, 0x00, 0x03, 0x03, 0xFF, 0xFF,
1107 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0,
1108 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03,
1109 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC,
1110 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC,
1111 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
1112 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00,
1113 0xFF, 0xFF, 0x30, 0x30, 0xCC, 0xCC,
1114 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
1115 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1116 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1117 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1118# elif defined(OLED_LOGO_CORNE)
1119 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1120 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE,
1121 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
1122 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
1123 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1124 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
1125 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1126 0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
1127 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
1128 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
1129 0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
1130 0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
1131 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
1132 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1133 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
1134 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
1135 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
1136 0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
1137 0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
1138 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1140# elif defined(OLED_LOGO_LOOSE)
1141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1142 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
1143 0xFF, 0xFF, 0xE3, 0xC1, 0xC1, 0x00,
1144 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
1145 0x00, 0xFF, 0x00, 0x00, 0x80, 0x00,
1146 0x1C, 0x3E, 0x7F, 0xFF, 0xFF, 0xFF,
1147 0xFF, 0xFF, 0xFF, 0xFF, 0x22, 0x22,
1148 0x22, 0x22, 0x22, 0x22, 0x22, 0x22,
1149 0x22, 0x22, 0x22, 0x14, 0x14, 0x14,
1150 0x14, 0x14, 0x08, 0x08, 0x00, 0x00,
1151 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80,
1152 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
1153 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xBE,
1154 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
1155 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xBD,
1156 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
1157 0x8F, 0x9F, 0x9C, 0x9C, 0x9C, 0x9C,
1158 0x9C, 0x9C, 0x9C, 0xFC, 0xF8, 0x00,
1159 0xFF, 0xFF, 0xFF, 0x9C, 0x9C, 0x9C,
1160 0x9C, 0x9C, 0x9C, 0x80, 0x80, 0x00,
1161 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1162# elif defined(OLED_LOGO_SKEEB)
1163 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
1164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1165 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1166 0x00, 0x00, 0x00, 0x01, 0x03, 0x07,
1167 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08,
1168 0x0F, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F,
1169 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08,
1170 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
1171 0x08, 0x08, 0x0F, 0x0F, 0x09, 0x09,
1172 0x09, 0x09, 0xF9, 0xF9, 0x09, 0x09,
1173 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F,
1174 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F,
1175 0x0F, 0x0F, 0x0F, 0x0F, 0x09, 0x09,
1176 0x09, 0x09, 0x09, 0x09, 0x09, 0x09,
1177 0x09, 0x09, 0x0F, 0x0F, 0x08, 0x08,
1178 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F,
1179 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F,
1180 0x07, 0x03, 0x01, 0x00, 0x00, 0x00,
1181 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1182 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1183 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
1184# else
1185 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1186 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF,
1187 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00,
1188 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF,
1189 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00,
1190 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F,
1191 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00,
1192 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E,
1193 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F,
1194 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00,
1195 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
1196 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E,
1197 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00,
1198 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E,
1199 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F,
1200 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70,
1201 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49,
1202 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E,
1203 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69,
1204 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00,
1205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1206# endif
1207
1208// second icon section
1209 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
1210 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
1211 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
1212 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
1213 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
1214 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
1215 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
1216 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
1217 0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24,
1218 0xF0, 0xFE, 0xF1, 0x91, 0xF6, 0xF0,
1219 0xF0, 0xFC, 0xF2, 0x92, 0xFC, 0xF0,
1220
1221// bottom logo section
1222# if defined(OLED_LOGO_GMK_BAD)
1223 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1224 0x00, 0x01, 0x03, 0x03, 0x03, 0x07,
1225 0x07, 0x07, 0x07, 0x03, 0x03, 0x03,
1226 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
1227 0x06, 0x07, 0x07, 0x07, 0x01, 0x00,
1228 0x00, 0x00, 0x07, 0x07, 0x07, 0x01,
1229 0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
1230 0x07, 0x00, 0x00, 0x00, 0x00, 0x07,
1231 0x07, 0x07, 0x07, 0x00, 0x00, 0x00,
1232 0x00, 0x03, 0x07, 0x07, 0x07, 0x06,
1233 0x04, 0x00, 0x00, 0x00, 0x00, 0x00,
1234 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
1235 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
1236 0x07, 0x07, 0x03, 0x01, 0x00, 0x00,
1237 0x00, 0x00, 0x00, 0x00, 0x03, 0x07,
1238 0x07, 0x07, 0x07, 0x03, 0x07, 0x07,
1239 0x07, 0x07, 0x00, 0x00, 0x00, 0x00,
1240 0x00, 0x00, 0x03, 0x07, 0x07, 0x07,
1241 0x07, 0x03, 0x07, 0x07, 0x07, 0x07,
1242 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
1243 0x07, 0x07, 0x01, 0x00, 0x00, 0x00,
1244# elif defined(OLED_LOGO_HUE_MANITEE)
1245 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
1246 0x03, 0x07, 0x07, 0x07, 0x07, 0x01,
1247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1248 0x00, 0x00, 0x00, 0x03, 0x07, 0x07,
1249 0x03, 0x00, 0x00, 0x02, 0x04, 0x00,
1250 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
1251 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1252 0x00, 0x00, 0x03, 0x03, 0x03, 0x03,
1253 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
1254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1255 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
1256 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
1257 0x03, 0x03, 0x03, 0x03, 0x03, 0x00,
1258 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1259 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
1260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1261 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
1262 0x03, 0x03, 0x00, 0x00, 0x00, 0x00,
1263 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1264 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1265 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1266# elif defined(OLED_LOGO_CORNE)
1267 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1268 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F,
1269 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
1270 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
1271 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
1272 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
1273 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
1274 0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
1275 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
1276 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
1277 0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
1278 0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
1279 0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
1280 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1281 0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
1282 0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
1283 0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
1284 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
1285 0x07, 0x07, 0x03, 0x01, 0x00, 0x00,
1286 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1287 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1288# elif defined(OLED_LOGO_LOOSE)
1289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1290 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F,
1291 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00,
1292 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
1293 0x20, 0x47, 0x48, 0x50, 0x40, 0x41,
1294 0x42, 0x24, 0x30, 0x3F, 0x3F, 0x3F,
1295 0x3F, 0x3F, 0x3F, 0x3F, 0x31, 0x31,
1296 0x11, 0x51, 0x11, 0x11, 0x4A, 0x0A,
1297 0x2A, 0x0A, 0x44, 0x64, 0x50, 0x70,
1298 0x50, 0x70, 0x50, 0x70, 0x50, 0x70,
1299 0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
1300 0x53, 0x73, 0x53, 0x73, 0x53, 0x70,
1301 0x50, 0x71, 0x53, 0x73, 0x53, 0x73,
1302 0x53, 0x73, 0x53, 0x71, 0x50, 0x70,
1303 0x50, 0x71, 0x53, 0x73, 0x53, 0x73,
1304 0x53, 0x73, 0x53, 0x71, 0x50, 0x70,
1305 0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
1306 0x53, 0x73, 0x53, 0x73, 0x51, 0x70,
1307 0x53, 0x73, 0x53, 0x73, 0x53, 0x73,
1308 0x53, 0x73, 0x53, 0x73, 0x53, 0x00,
1309 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1310# elif defined(OLED_LOGO_SKEEB)
1311 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
1312 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08,
1313 0x08, 0x08, 0x08, 0x08, 0x08, 0xFF,
1314 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08,
1315 0x03, 0x04, 0x08, 0x10, 0x20, 0x40,
1316 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
1317 0x40, 0x20, 0x10, 0x08, 0x04, 0x03,
1318 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
1319 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
1320 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8,
1321 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
1322 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80,
1323 0x01, 0x02, 0xFC, 0xF8, 0x00, 0x00,
1324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1326 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1327 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1328 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1329 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1330 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1331 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
1332#else
1333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1334 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F,
1335 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E,
1336 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F,
1337 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00,
1338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1339 0x00, 0x00, 0x00, 0x01, 0x01, 0x00,
1340 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1341 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1342 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1343 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1344 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1345 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1346 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1347 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1348 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1349 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1351 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1354#endif
1355
1356// third icon section
1357 0x1F, 0x05, 0x00, 0x02, 0x1F, 0x00,
1358 0x1F, 0x05, 0x00, 0x1D, 0x17, 0x00,
1359 0x1F, 0x05, 0x00, 0x15, 0x1F, 0x00,
1360 0x1F, 0x05, 0x00, 0x07, 0x1C, 0x00,
1361 0x1F, 0x05, 0x00, 0x17, 0x1D, 0x00,
1362 0x1F, 0x05, 0x00, 0x1F, 0x1D, 0x00,
1363 0x1F, 0x05, 0x00, 0x01, 0x1F, 0x00,
1364 0x1F, 0x05, 0x00, 0x1F, 0x1F, 0x00,
1365 0x1F, 0x05, 0x00, 0x07, 0x1F, 0x00,
1366 0x1F, 0x05, 0x00, 0x70, 0x77, 0x00,
1367 0x1F, 0x05, 0x00, 0x00, 0x77, 0x00,
1368
1369// fourth icon section
1370 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
1371 0x00, 0x14, 0x08, 0x14, 0x00, 0x00,
1372 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
1373 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00,
1374 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C,
1375 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
1376 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C,
1377 0x18, 0x30, 0x66, 0x66, 0x66, 0x00,
1378 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E,
1379 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00,
1380 0x00, 0x00, 0x77, 0x77, 0x77, 0x00,
1381 0x77, 0x77, 0x77, 0x00, 0x00, 0x00,
1382 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
1383 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
1384 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1,
1385 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00,
1386 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED,
1387 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00,
1388 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F,
1389 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00,
1390 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64,
1391 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00,
1392 0x00, 0x04, 0x42, 0x69, 0x65, 0x65,
1393 0x65, 0x69, 0x42, 0x04, 0x00, 0x00,
1394 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
1395 0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
1396 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
1397 0x1F, 0x05, 0x00, 0x10, 0x77, 0x40,
1398 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1399 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1400 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1401 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1402 };
1403// clang-format on
1404#endif
diff --git a/users/drashna/oled/oled_stuff.c b/users/drashna/oled/oled_stuff.c
new file mode 100644
index 000000000..9ee2cbfed
--- /dev/null
+++ b/users/drashna/oled/oled_stuff.c
@@ -0,0 +1,445 @@
1/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "drashna.h"
18#ifdef CUSTOM_UNICODE_ENABLE
19# include "process_unicode_common.h"
20#endif
21#include <string.h>
22
23extern bool host_driver_disabled;
24
25#ifndef KEYLOGGER_LENGTH
26// # ifdef OLED_DISPLAY_128X64
27# define KEYLOGGER_LENGTH ((uint8_t)(OLED_DISPLAY_HEIGHT / OLED_FONT_WIDTH))
28// # else
29// # define KEYLOGGER_LENGTH (uint8_t *(OLED_DISPLAY_WIDTH / OLED_FONT_HEIGHT))
30// # endif
31#endif
32
33uint32_t oled_timer = 0;
34static char keylog_str[KEYLOGGER_LENGTH + 1] = {0};
35static uint16_t log_timer = 0;
36
37// clang-format off
38static const char PROGMEM code_to_name[256] = {
39// 0 1 2 3 4 5 6 7 8 9 A B c D E F
40 ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x
41 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x
42 '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x
43 ']','\\', '#', ';','\'', '`', ',', '.', '/', 128,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA, // 3x
44 0xDB,0xDC,0xDD,0xDE,0XDF,0xFB,'P', 'S', 19, ' ', 17, 30, 16, 16, 31, 26, // 4x
45 27, 25, 24, 'N', '/', '*', '-', '+', 23, '1', '2', '3', '4', '5', '6', '7', // 5x
46 '8', '9', '0', '.','\\', 'A', 0, '=', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x
47 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x
48 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x
49 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x
50 ' ', ' ', ' ', ' ', ' ', 0, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax
51 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx
52 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx
53 ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx
54 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 24, 26, 24, // Ex
55 25,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, 24, 25, 27, 26, ' ', ' ', ' ' // Fx
56};
57// clang-format on
58
59void add_keylog(uint16_t keycode, keyrecord_t *record) {
60 if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) {
61 if (((keycode & 0xFF) == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) {
62 memset(keylog_str, ' ', sizeof(keylog_str) - 1);
63 return;
64 }
65 if (record->tap.count) {
66 keycode &= 0xFF;
67 } else if (keycode > 0xFF) {
68 return;
69 }
70 }
71 if (keycode > 0xFF) {
72 return;
73 }
74
75 for (uint8_t i = 1; i < KEYLOGGER_LENGTH; i++) {
76 keylog_str[i - 1] = keylog_str[i];
77 }
78
79 if (keycode < (sizeof(code_to_name) / sizeof(char))) {
80 keylog_str[(KEYLOGGER_LENGTH - 1)] = pgm_read_byte(&code_to_name[keycode]);
81 }
82
83 log_timer = timer_read();
84}
85
86bool process_record_user_oled(uint16_t keycode, keyrecord_t *record) {
87 if (record->event.pressed) {
88#ifdef OLED_ENABLE
89 oled_timer = timer_read32();
90 add_keylog(keycode, record);
91#endif
92 }
93 return true;
94}
95
96void update_log(void) {
97 if (timer_elapsed(log_timer) > 750) {
98 // add_keylog(0);
99 }
100}
101
102void render_keylogger_status(void) {
103 oled_write_P(PSTR(OLED_RENDER_KEYLOGGER), false);
104 oled_write(keylog_str, false);
105}
106
107void render_default_layer_state(void) {
108 oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
109 switch (get_highest_layer(default_layer_state)) {
110 case _QWERTY:
111 oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
112 break;
113 case _COLEMAK_DH:
114 oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK_DH), false);
115 break;
116 case _COLEMAK:
117 oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false);
118 break;
119 case _DVORAK:
120 oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false);
121 break;
122 }
123#ifdef OLED_DISPLAY_128X64
124 oled_advance_page(true);
125#endif
126}
127
128void render_layer_state(void) {
129 oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false);
130#ifdef OLED_DISPLAY_128X64
131 oled_write_P(PSTR(" "), false);
132#endif
133 oled_write_P(PSTR(OLED_RENDER_LAYER_LOWER), layer_state_is(_LOWER));
134#ifdef OLED_DISPLAY_128X64
135 oled_write_P(PSTR(" "), false);
136#endif
137 oled_write_P(PSTR(OLED_RENDER_LAYER_RAISE), layer_state_is(_RAISE));
138#ifdef OLED_DISPLAY_128X64
139 oled_advance_page(true);
140 oled_write_P(PSTR(" "), false);
141 oled_write_P(PSTR("GamePad"), layer_state_is(_GAMEPAD));
142 oled_write_P(PSTR(" "), false);
143 oled_write_P(PSTR("Diablo"), layer_state_is(_DIABLO));
144 oled_write_P(PSTR(" "), false);
145 oled_write_P(PSTR("Mouse"), layer_state_is(_MOUSE));
146#endif
147}
148
149void render_keylock_status(uint8_t led_usb_state) {
150 oled_write_P(PSTR(OLED_RENDER_LOCK_NAME), false);
151#if !defined(OLED_DISPLAY_128X64)
152 oled_write_P(PSTR(" "), false);
153#endif
154 oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state & (1 << USB_LED_NUM_LOCK));
155 oled_write_P(PSTR(" "), false);
156 oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state & (1 << USB_LED_CAPS_LOCK));
157#if defined(OLED_DISPLAY_128X64)
158 oled_write_P(PSTR(" "), false);
159 oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state & (1 << USB_LED_SCROLL_LOCK));
160#endif
161}
162
163void render_matrix_scan_rate(void) {
164#ifdef DEBUG_MATRIX_SCAN_RATE
165 char matrix_rate[5];
166 uint16_t n = get_matrix_scan_rate();
167 matrix_rate[4] = '\0';
168 matrix_rate[3] = '0' + n % 10;
169 matrix_rate[2] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
170 matrix_rate[1] = n / 10 ? '0' + n / 10 : ' ';
171 matrix_rate[0] = ' ';
172 oled_write_P(PSTR("MS:"), false);
173 oled_write(matrix_rate, false);
174#endif
175}
176
177void render_mod_status(uint8_t modifiers) {
178 static const char PROGMEM mod_status[5][3] = {{0xE8, 0xE9, 0}, {0xE4, 0xE5, 0}, {0xE6, 0xE7, 0}, {0xEA, 0xEB, 0}, {0xEC, 0xED, 0}};
179 oled_write_P(PSTR(OLED_RENDER_MODS_NAME), false);
180#if defined(OLED_DISPLAY_128X64)
181 oled_write_P(mod_status[0], (modifiers & MOD_BIT(KC_LSHIFT)));
182 oled_write_P(mod_status[!keymap_config.swap_lctl_lgui ? 3 : 4], (modifiers & MOD_BIT(KC_LGUI)));
183 oled_write_P(mod_status[2], (modifiers & MOD_BIT(KC_LALT)));
184 oled_write_P(mod_status[1], (modifiers & MOD_BIT(KC_LCTL)));
185 oled_write_P(mod_status[1], (modifiers & MOD_BIT(KC_RCTL)));
186 oled_write_P(mod_status[2], (modifiers & MOD_BIT(KC_RALT)));
187 oled_write_P(mod_status[!keymap_config.swap_lctl_lgui ? 3 : 4], (modifiers & MOD_BIT(KC_RGUI)));
188 oled_write_P(mod_status[0], (modifiers & MOD_BIT(KC_RSHIFT)));
189#else
190 oled_write_P(mod_status[0], (modifiers & MOD_MASK_SHIFT));
191 oled_write_P(mod_status[!keymap_config.swap_lctl_lgui ? 3 : 4], (modifiers & MOD_MASK_GUI));
192 oled_write_P(PSTR(" "), false);
193 oled_write_P(mod_status[2], (modifiers & MOD_MASK_ALT));
194 oled_write_P(mod_status[1], (modifiers & MOD_MASK_CTRL));
195#endif
196}
197
198#ifdef SWAP_HANDS_ENABLE
199extern bool swap_hands;
200#endif
201
202void render_bootmagic_status(void) {
203 /* Show Ctrl-Gui Swap options */
204 static const char PROGMEM logo[][2][3] = {
205 {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
206 {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
207 };
208
209 bool is_bootmagic_on;
210#ifdef OLED_DISPLAY_128X64
211 is_bootmagic_on = !keymap_config.swap_lctl_lgui;
212#else
213 is_bootmagic_on = keymap_config.swap_lctl_lgui;
214#endif
215
216 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NAME), false);
217#ifdef OLED_DISPLAY_128X64
218 if (keymap_config.swap_lctl_lgui)
219#else
220 oled_write_P(PSTR(" "), false);
221#endif
222 {
223 oled_write_P(logo[1][0], is_bootmagic_on);
224#ifdef OLED_DISPLAY_128X64
225 } else {
226#endif
227 oled_write_P(logo[0][0], !is_bootmagic_on);
228 }
229#ifndef OLED_DISPLAY_128X64
230 oled_write_P(PSTR(" "), false);
231 oled_write_P(logo[1][1], is_bootmagic_on);
232 oled_write_P(logo[0][1], !is_bootmagic_on);
233#endif
234 oled_write_P(PSTR(" "), false);
235 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
236 oled_write_P(PSTR(" "), false);
237#ifdef AUTOCORRECTION_ENABLE
238 oled_write_P(PSTR("CRCT"), userspace_config.autocorrection);
239#else
240 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NOGUI), keymap_config.no_gui);
241#endif
242#ifdef OLED_DISPLAY_128X64
243 oled_advance_page(true);
244 oled_write_P(PSTR("Magic"), false);
245 oled_write_P(PSTR(" "), false);
246 if (keymap_config.swap_lctl_lgui) {
247 oled_write_P(logo[1][1], is_bootmagic_on);
248 } else {
249 oled_write_P(logo[0][1], !is_bootmagic_on);
250 }
251#endif
252 oled_write_P(PSTR(" "), false);
253 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_ONESHOT), !is_oneshot_enabled());
254#ifdef SWAP_HANDS_ENABLE
255 oled_write_P(PSTR(" "), false);
256 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_SWAP), swap_hands);
257#endif
258#ifdef OLED_DISPLAY_128X64
259 oled_advance_page(true);
260#endif
261}
262
263#if defined(POINTING_DEVICE_ENABLE)
264extern bool tap_toggling;
265#endif
266
267void render_user_status(void) {
268#ifdef AUDIO_ENABLE
269 bool is_audio_on = false, is_clicky_on = false;
270# ifdef SPLIT_KEYBOARD
271
272 is_audio_on = user_state.audio_enable;
273 is_clicky_on = user_state.audio_clicky_enable;
274# else
275 is_audio_on = is_audio_on();
276 is_clicky_on = is_clicky_on();
277# endif
278#endif
279 oled_write_P(PSTR(OLED_RENDER_USER_NAME), false);
280#if !defined(OLED_DISPLAY_128X64)
281 oled_write_P(PSTR(" "), false);
282#endif
283#if defined(RGB_MATRIX_ENABLE)
284 oled_write_P(PSTR(OLED_RENDER_USER_ANIM), userspace_config.rgb_matrix_idle_anim);
285# if !defined(OLED_DISPLAY_128X64)
286 oled_write_P(PSTR(" "), false);
287# endif
288#elif defined(POINTING_DEVICE_ENABLE)
289 static const char PROGMEM mouse_lock[3] = {0xF2, 0xF3, 0};
290 oled_write_P(mouse_lock, tap_toggling);
291#endif
292#ifdef AUDIO_ENABLE
293 static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}};
294 oled_write_P(audio_status[is_audio_on], false);
295
296# ifdef AUDIO_CLICKY
297 static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}};
298 oled_write_P(audio_clicky_status[is_clicky_on && is_audio_on], false);
299# if !defined(OLED_DISPLAY_128X64)
300 oled_write_P(PSTR(" "), false);
301# endif
302# endif
303#endif
304
305 static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}};
306 oled_write_P(rgb_layer_status[userspace_config.rgb_layer_change], false);
307 static const char PROGMEM cat_mode[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}};
308 oled_write_P(cat_mode[0], host_driver_disabled);
309#if defined(CUSTOM_UNICODE_ENABLE)
310 static const char PROGMEM uc_mod_status[5][3] = {{0xEA, 0xEB, 0}, {0xEC, 0xED, 0}};
311 oled_write_P(uc_mod_status[get_unicode_input_mode() == UC_MAC], false);
312#endif
313 if (userspace_config.nuke_switch) {
314#if !defined(OLED_DISPLAY_128X64)
315 oled_write_P(PSTR(" "), false);
316#endif
317 static const char PROGMEM nukem_good[2] = {0xFA, 0};
318 oled_write_P(nukem_good, false);
319#if !defined(OLED_DISPLAY_128X64)
320 oled_advance_page(true);
321#endif
322 }
323#if defined(OLED_DISPLAY_128X64)
324 oled_advance_page(true);
325#endif
326}
327
328void oled_driver_render_logo(void) {
329 // clang-format off
330 static const char PROGMEM qmk_logo[] = {
331 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
332 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
333 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
334 // clang-format on
335 oled_write_P(qmk_logo, false);
336}
337
338void render_wpm(uint8_t padding) {
339#ifdef WPM_ENABLE
340
341 oled_write_P(PSTR(OLED_RENDER_WPM_COUNTER), false);
342 if (padding) {
343 for (uint8_t n = padding; n > 0; n--) {
344 oled_write_P(PSTR(" "), false);
345 }
346 }
347 oled_write(get_u8_str(get_current_wpm(), ' '), false);
348#endif
349}
350
351#if defined(KEYBOARD_handwired_tractyl_manuform) || defined(KEYBOARD_bastardkb_charybdis)
352extern kb_config_data_t kb_config;
353void render_pointing_dpi_status(uint8_t padding) {
354 oled_write_P(PSTR("CPI:"), false);
355 if (padding) {
356 for (uint8_t n = padding - 1; n > 0; n--) {
357 oled_write_P(PSTR(" "), false);
358 }
359 }
360
361 oled_write(get_u16_str(kb_config.device_cpi, ' '), false);
362}
363#endif
364
365__attribute__((weak)) void oled_driver_render_logo_right(void) {
366#if defined(OLED_DISPLAY_128X64)
367 oled_driver_render_logo();
368 render_default_layer_state();
369 oled_set_cursor(0, 4);
370#else
371 render_default_layer_state();
372#endif
373}
374
375__attribute__((weak)) void oled_driver_render_logo_left(void) {
376#if defined(OLED_DISPLAY_128X64)
377 oled_driver_render_logo();
378# ifdef DEBUG_MATRIX_SCAN_RATE
379 render_matrix_scan_rate();
380# elif defined(WPM_ENABLE)
381 render_wpm(0);
382# endif
383 oled_write_P(PSTR(" "), false);
384# if defined(KEYBOARD_handwired_tractyl_manuform) || defined(KEYBOARD_bastardkb_charybdis)
385 render_pointing_dpi_status(1);
386# endif
387 oled_set_cursor(0, 4);
388#else
389 render_default_layer_state();
390#endif
391}
392
393void render_status_secondary(void) {
394 oled_driver_render_logo_right();
395 /* Show Keyboard Layout */
396 render_layer_state();
397 render_mod_status(get_mods() | get_oneshot_mods());
398#if !defined(OLED_DISPLAY_128X64) && defined(WPM_ENABLE) && !defined(CONVERT_TO_PROTON_C)
399 render_wpm(2);
400#endif
401 // render_keylock_status(host_keyboard_leds());
402}
403
404void render_status_main(void) {
405 oled_driver_render_logo_left();
406
407 /* Show Keyboard Layout */
408 // render_keylock_status(host_keyboard_leds());
409 render_bootmagic_status();
410 render_user_status();
411
412 // render_keylogger_status();
413}
414
415__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; }
416
417oled_rotation_t oled_init_user(oled_rotation_t rotation) {
418 memset(keylog_str, ' ', sizeof(keylog_str) - 1);
419
420 return oled_init_keymap(rotation);
421}
422
423bool oled_task_user(void) {
424 update_log();
425
426 if (is_keyboard_master()) {
427 if (timer_elapsed32(oled_timer) > 30000) {
428 oled_off();
429 return false;
430 } else {
431 oled_on();
432 }
433 }
434 if (is_keyboard_left()) {
435 render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
436 } else {
437 render_status_secondary();
438 }
439 if (is_keyboard_master()) {
440 render_keylogger_status();
441 } else {
442 render_keylock_status(host_keyboard_leds());
443 }
444 return false;
445}
diff --git a/users/drashna/oled/oled_stuff.h b/users/drashna/oled/oled_stuff.h
new file mode 100644
index 000000000..8795684d6
--- /dev/null
+++ b/users/drashna/oled/oled_stuff.h
@@ -0,0 +1,131 @@
1/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20#include "oled_driver.h"
21
22void oled_driver_render_logo(void);
23bool process_record_user_oled(uint16_t keycode, keyrecord_t *record);
24oled_rotation_t oled_init_keymap(oled_rotation_t rotation);
25extern uint32_t oled_timer;
26void render_keylogger_status(void);
27void render_default_layer_state(void);
28void render_layer_state(void);
29void render_keylock_status(uint8_t led_usb_state);
30void render_matrix_scan_rate(void);
31void render_mod_status(uint8_t modifiers);
32void render_bootmagic_status(void);
33void render_user_status(void);
34void oled_driver_render_logo(void);
35void render_wpm(uint8_t padding);
36void render_pointing_dpi_status(uint8_t padding);
37void oled_driver_render_logo_left(void);
38void oled_driver_render_logo_right(void);
39
40#ifdef OLED_DISPLAY_128X64
41# define OLED_RENDER_KEYLOGGER "Keylogger: "
42
43# define OLED_RENDER_LAYOUT_NAME "Layout: "
44# define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
45# define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak-DH"
46# define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
47# define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
48# define OLED_RENDER_LAYOUT_WORKMAN "Workman"
49# define OLED_RENDER_LAYOUT_NORMAN "Norman"
50# define OLED_RENDER_LAYOUT_MALTRON "Matron"
51# define OLED_RENDER_LAYOUT_EUCALYN "Eucalyn"
52# define OLED_RENDER_LAYOUT_CARPLAX "Carplax"
53
54# define OLED_RENDER_LAYER_NAME "Layer:"
55# define OLED_RENDER_LAYER_LOWER "Lower"
56# define OLED_RENDER_LAYER_RAISE "Raise"
57# define OLED_RENDER_LAYER_ADJUST "Adjust"
58# define OLED_RENDER_LAYER_MODS "Mods"
59
60# define OLED_RENDER_LOCK_NAME "Lock: "
61# define OLED_RENDER_LOCK_NUML "NUML"
62# define OLED_RENDER_LOCK_CAPS "CAPS"
63# define OLED_RENDER_LOCK_SCLK "SCLK"
64
65# define OLED_RENDER_MODS_NAME "Mods:"
66# define OLED_RENDER_MODS_SFT "Sft"
67# define OLED_RENDER_MODS_CTL "Ctl"
68# define OLED_RENDER_MODS_ALT "Alt"
69# define OLED_RENDER_MODS_GUI "GUI"
70
71# define OLED_RENDER_BOOTMAGIC_NAME "Boot "
72# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
73# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
74# define OLED_RENDER_BOOTMAGIC_GRV "GRV"
75# define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT"
76# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP"
77# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
78
79# define OLED_RENDER_USER_NAME "USER:"
80# define OLED_RENDER_USER_ANIM "Anim"
81# define OLED_RENDER_USER_LAYR "Layr"
82# define OLED_RENDER_USER_NUKE "Nuke"
83
84# define OLED_RENDER_WPM_COUNTER "WPM: "
85#else
86# define OLED_RENDER_KEYLOGGER "KLogr"
87
88# define OLED_RENDER_LAYOUT_NAME "Lyout"
89# define OLED_RENDER_LAYOUT_QWERTY " QRTY"
90# define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH"
91# define OLED_RENDER_LAYOUT_COLEMAK " COLE"
92# define OLED_RENDER_LAYOUT_DVORAK " DVRK"
93# define OLED_RENDER_LAYOUT_WORKMAN " WKMN"
94# define OLED_RENDER_LAYOUT_NORMAN " NORM"
95# define OLED_RENDER_LAYOUT_MALTRON " MLTN"
96# define OLED_RENDER_LAYOUT_EUCALYN " ECLN"
97# define OLED_RENDER_LAYOUT_CARPLAX " CRPX"
98
99# define OLED_RENDER_LAYER_NAME "LAYER"
100# define OLED_RENDER_LAYER_LOWER "Lower"
101# define OLED_RENDER_LAYER_RAISE "Raise"
102# define OLED_RENDER_LAYER_ADJUST "Adjst"
103# define OLED_RENDER_LAYER_MODS " Mods"
104
105# define OLED_RENDER_LOCK_NAME "Lock:"
106# define OLED_RENDER_LOCK_NUML "NumL"
107# define OLED_RENDER_LOCK_CAPS "CapL"
108# define OLED_RENDER_LOCK_SCLK "ScrL"
109
110# define OLED_RENDER_MODS_NAME "Mods: "
111# define OLED_RENDER_MODS_SFT "Shft"
112# define OLED_RENDER_MODS_CTL "Ctrl"
113# define OLED_RENDER_MODS_ALT "Alt\n"
114# define OLED_RENDER_MODS_GUI "GUI\n"
115
116# define OLED_RENDER_BOOTMAGIC_NAME "BTMGK"
117# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
118# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
119# define OLED_RENDER_BOOTMAGIC_GRV "GRV"
120# define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT"
121# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP"
122# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
123
124# define OLED_RENDER_USER_NAME "USER:"
125# define OLED_RENDER_USER_ANIM "Anim"
126# define OLED_RENDER_USER_LAYR "Layr"
127# define OLED_RENDER_USER_NUKE "Nuke"
128
129# define OLED_RENDER_WPM_COUNTER "WPM: "
130
131#endif