2 * @brief Based on max7456 symbols for the mwosd font set
4 * @author Nathan Tsoi nathan@vertile.com
6 * Copyright (C) 2016 Nathan Tsoi
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>
24 #if defined(USE_OSD) || defined(OSD_UNIT_TEST)
26 #define SYM_RSSI 0x01 // 001 Icon RSSI
27 #define SYM_LQ 0x02 // 002 LQ
28 #define SYM_LAT 0x03 // 003 GPS LAT
29 #define SYM_LON 0x04 // 004 GPS LON
30 #define SYM_AZIMUTH 0x05 // 005 Azimuth
31 #define SYM_TELEMETRY_0 0x06 // 006 Antenna tracking telemetry
32 #define SYM_TELEMETRY_1 0x07 // 007 Antenna tracking telemetry
33 #define SYM_SAT_L 0x08 // 008 Sats left
34 #define SYM_SAT_R 0x09 // 009 Sats right
35 #define SYM_HOME_NEAR 0x0A // 010 Home, near
36 #define SYM_DEGREES 0x0B // 011 ° heading angle
37 #define SYM_HEADING 0x0C // 012 Compass Heading symbol
38 #define SYM_SCALE 0x0D // 013 Map scale
39 #define SYM_HDP_L 0x0E // 014 HDOP left
40 #define SYM_HDP_R 0x0F // 015 HDOP right
41 #define SYM_HOME 0x10 // 016 Home icon
42 #define SYM_2RSS 0x11 // 017 RSSI 2
43 #define SYM_DB 0x12 // 018 dB
44 #define SYM_DBM 0x13 // 019 dBm
45 #define SYM_SNR 0x14 // 020 SNR
47 #define SYM_AH_DECORATION_UP 0x15 // 021 Arrow up AHI
48 #define SYM_AH_DECORATION_DOWN 0x16 // 022 Arrow down AHI
49 #define SYM_DECORATION 0x17 // 023 to 030, directional little arrows
51 #define SYM_VOLT 0x1F // 031 VOLTS
52 #define SYM_MAH 0x99 // 153 mAh
53 // 0x21 // 033 ASCII !
54 #define SYM_AH_KM 0x22 // 034 Ah/km
55 // 0x23 // 035 ASCII #
56 #define SYM_AH_MI 0x24 // 036 Ah/mi
57 // 0x25 // 037 ASCII %
58 // 0x26 // 038 ASCII &
59 #define SYM_VTX_POWER 0x27 // 039 VTx Power
60 // 0x28 // 040 to 062 ASCII
61 #define SYM_AH_NM 0x3F // 063 Ah/NM
62 // 0x40 // 064 to 095 ASCII
63 #define SYM_MAH_NM_0 0x60 // 096 mAh/NM left
64 #define SYM_MAH_NM_1 0x61 // 097 mAh/NM right
65 #define SYM_MAH_KM_0 0x6B // 107 MAH/KM left
66 #define SYM_MAH_KM_1 0x6C // 108 MAH/KM right
67 #define SYM_MILLIOHM 0x62 // 098 battery impedance Mohm
69 #define SYM_BATT_FULL 0x63 // 099 Battery full
70 #define SYM_BATT_5 0x64 // 100 Battery
71 #define SYM_BATT_4 0x65 // 101 Battery
72 #define SYM_BATT_3 0x66 // 102 Battery
73 #define SYM_BATT_2 0x67 // 103 Battery
74 #define SYM_BATT_1 0x68 // 104 Battery
75 #define SYM_BATT_EMPTY 0x69 // 105 Battery empty
77 #define SYM_AMP 0x6A // 106 AMPS
78 #define SYM_WH 0x6D // 109 WH
79 #define SYM_WH_KM 0x6E // 110 WH/KM
80 #define SYM_WH_MI 0x6F // 111 WH/MI
81 #define SYM_WH_NM 0x70 // 112 Wh/NM
82 #define SYM_WATT 0x71 // 113 WATTS
83 #define SYM_MW 0x72 // 114 mW
84 #define SYM_KILOWATT 0x73 // 115 kW
86 #define SYM_FT 0x74 // 116 FEET
87 #define SYM_TRIP_DIST 0x75 // 117 Trip distance
88 #define SYM_TOTAL 0x75 // 117 Total
89 #define SYM_ALT_M 0x76 // 118 ALT M
90 #define SYM_ALT_KM 0x77 // 119 ALT KM
91 #define SYM_ALT_FT 0x78 // 120 ALT FT
92 #define SYM_ALT_KFT 0x79 // 121 Alt KFT
93 #define SYM_DIST_M 0x7A // 122 DIS M
94 // 0x7B // 123 to 125 ASCII
95 #define SYM_DIST_KM 0x7E // 126 DIST KM
96 #define SYM_DIST_FT 0x7F // 127 DIST FT
97 #define SYM_DIST_MI 0x80 // 128 DIST MI
98 #define SYM_DIST_NM 0x81 // 129 DIST NM
99 #define SYM_M 0x82 // 130 M
100 #define SYM_KM 0x83 // 131 KM
101 #define SYM_MI 0x84 // 132 MI
102 #define SYM_NM 0x85 // 133 NM
104 #define SYM_WIND_HORIZONTAL 0x86 // 134 Air speed horizontal
105 #define SYM_WIND_VERTICAL 0x87 // 135 Air speed vertical
106 #define SYM_3D_KMH 0x88 // 136 KM/H 3D
107 #define SYM_3D_MPH 0x89 // 137 MPH 3D
108 #define SYM_3D_KT 0x8A // 138 Knots 3D
109 #define SYM_RPM 0x8B // 139 RPM
110 #define SYM_AIR 0x8C // 140 Air speed
111 #define SYM_FTS 0x8D // 141 FT/S
112 #define SYM_100FTM 0x8E // 142 100 Feet per Min
113 #define SYM_MS 0x8F // 143 M/S
114 #define SYM_KMH 0x90 // 144 KM/H
115 #define SYM_MPH 0x91 // 145 MPH
116 #define SYM_KT 0x92 // 146 Knots
118 #define SYM_MAH_MI_0 0x93 // 147 mAh/mi left
119 #define SYM_MAH_MI_1 0x94 // 148 mAh/mi right
120 #define SYM_THR 0x95 // 149 Throttle
121 #define SYM_TEMP_F 0x96 // 150 °F
122 #define SYM_TEMP_C 0x97 // 151 °C
123 // 0x98 // 152 Home point map
124 #define SYM_BLANK 0x20 // 32 blank (space)
125 #define SYM_ON_H 0x9A // 154 ON HR
126 #define SYM_FLY_H 0x9B // 155 FLY HR
127 #define SYM_ON_M 0x9E // 158 On MIN
128 #define SYM_FLY_M 0x9F // 159 FL MIN
129 #define SYM_GLIDESLOPE 0x9C // 156 Glideslope
130 #define SYM_WAYPOINT 0x9D // 157 Waypoint
131 #define SYM_CLOCK 0xA0 // 160 Clock
133 #define SYM_ZERO_HALF_TRAILING_DOT 0xA1 // 161 to 170 Numbers with trailing dot
134 #define SYM_ZERO_HALF_LEADING_DOT 0xB1 // 177 to 186 Numbers with leading dot
136 #define SYM_AUTO_THR0 0xAB // 171 Auto-throttle left
137 #define SYM_AUTO_THR1 0xAC // 172 Auto-throttle right
138 #define SYM_ROLL_LEFT 0xAD // 173 Sym roll left
139 #define SYM_ROLL_LEVEL 0xAE // 174 Sym roll horizontal
140 #define SYM_ROLL_RIGHT 0xAF // 175 Sym roll right
141 #define SYM_PITCH_UP 0xB0 // 176 Pitch up
142 #define SYM_PITCH_DOWN 0xBB // 187 Pitch down
143 #define SYM_GFORCE 0xBC // 188 Gforce (all axis)
144 #define SYM_GFORCE_X 0xBD // 189 Gforce X
145 #define SYM_GFORCE_Y 0xBE // 190 Gforce Y
146 #define SYM_GFORCE_Z 0xBF // 191 Gforce Z
148 #define SYM_BARO_TEMP 0xC0 // 192
149 #define SYM_IMU_TEMP 0xC1 // 193
150 #define SYM_TEMP 0xC2 // 194 Thermometer icon
151 #define SYM_TEMP_SENSOR_FIRST 0xC2 // 194
152 #define SYM_ESC_TEMP 0xC3 // 195
153 #define SYM_TEMP_SENSOR_LAST 0xC7 // 199
154 #define TEMP_SENSOR_SYM_COUNT (SYM_TEMP_SENSOR_LAST - SYM_TEMP_SENSOR_FIRST + 1)
156 #define SYM_HEADING_N 0xC8 // 200 Heading Graphic north
157 #define SYM_HEADING_S 0xC9 // 201 Heading Graphic south
158 #define SYM_HEADING_E 0xCA // 202 Heading Graphic east
159 #define SYM_HEADING_W 0xCB // 203 Heading Graphic west
160 #define SYM_HEADING_DIVIDED_LINE 0xCC // 204 Heading Graphic
161 #define SYM_HEADING_LINE 0xCD // 205 Heading Graphic
163 #define SYM_MAX 0xCE // 206 MAX symbol
164 #define SYM_PROFILE 0xCF // 207 Profile symbol
165 #define SYM_SWITCH_INDICATOR_LOW 0xD0 // 208 Switch Indicator Down/Low - Note: Some systems have HIGH us values for a switch in the down position
166 #define SYM_SWITCH_INDICATOR_MID 0xD1 // 209 Switch Indicator Mid
167 #define SYM_SWITCH_INDICATOR_HIGH 0xD2 // 210 Switch Indicator Up/High - Note: Some systems have LOW us values for a switch in the up position
168 #define SYM_AH 0xD3 // 211 Amphours symbol
169 #define SYM_GLIDE_DIST 0xD4 // 212 Glide Distance
170 #define SYM_GLIDE_MINS 0xD5 // 213 Glide Minutes
171 #define SYM_AH_V_FT_0 0xD6 // 214 mAh/v-ft left
172 #define SYM_AH_V_FT_1 0xD7 // 215 mAh/v-ft right
173 #define SYM_AH_V_M_0 0xD8 // 216 mAh/v-m left
174 #define SYM_AH_V_M_1 0xD9 // 217 mAh/v-m right
175 #define SYM_FLIGHT_MINS_REMAINING 0xDA // 218 Flight time (mins) remaining
176 #define SYM_FLIGHT_HOURS_REMAINING 0xDB // 219 Flight time (hours) remaining
177 #define SYM_GROUND_COURSE 0xDC // 220 Ground course
178 #define SYM_ALERT 0xDD // 221 General alert symbol
179 #define SYM_TERRAIN_FOLLOWING 0xFB // 251 Terrain following (also Alt adjust)
180 #define SYM_CROSS_TRACK_ERROR 0xFC // 252 Cross track error
181 #define SYM_ADSB 0xFD // 253 ADBS
182 #define SYM_BLACKBOX 0xFE // 254 Blackbox
185 #define SYM_ADSB 0xFD // 253 ADSB
187 #define SYM_LOGO_START 0x101 // 257 to 297, INAV logo
188 #define SYM_LOGO_WIDTH 10
189 #define SYM_LOGO_HEIGHT 4
191 #define SYM_AH_LEFT 0x12C // 300 Arrow left
192 #define SYM_AH_RIGHT 0x12D // 301 Arrow right
193 #define SYM_AH_DECORATION_MIN 0x12E // 302 to 307 Scrolling
194 #define SYM_AH_DECORATION 0x131 // 305 Scrolling
195 #define SYM_AH_DECORATION_MAX 0x133 // 307 Scrolling
196 #define SYM_AH_DECORATION_COUNT (SYM_AH_DECORATION_MAX - SYM_AH_DECORATION_MIN + 1) // Scrolling
198 #define SYM_AH_CH_LEFT 0x13A // 314 Crossair left
199 #define SYM_AH_CH_RIGHT 0x13B // 315 Crossair right
201 #define SYM_ARROW_UP 0x13C // 316 Direction arrow 0°
202 #define SYM_ARROW_2 0x13D // 317 Direction arrow 22.5°
203 #define SYM_ARROW_3 0x13E // 318 Direction arrow 45°
204 #define SYM_ARROW_4 0x13F // 319 Direction arrow 67.5°
205 #define SYM_ARROW_RIGHT 0x140 // 320 Direction arrow 90°
206 #define SYM_ARROW_6 0x141 // 321 Direction arrow 112.5°
207 #define SYM_ARROW_7 0x142 // 322 Direction arrow 135°
208 #define SYM_ARROW_8 0x143 // 323 Direction arrow 157.5°
209 #define SYM_ARROW_DOWN 0x144 // 324 Direction arrow 180°
210 #define SYM_ARROW_10 0x145 // 325 Direction arrow 202.5°
211 #define SYM_ARROW_11 0x146 // 326 Direction arrow 225°
212 #define SYM_ARROW_12 0x147 // 327 Direction arrow 247.5°
213 #define SYM_ARROW_LEFT 0x148 // 328 Direction arrow 270°
214 #define SYM_ARROW_14 0x149 // 329 Direction arrow 292.5°
215 #define SYM_ARROW_15 0x14A // 330 Direction arrow 315°
216 #define SYM_ARROW_16 0x14B // 331 Direction arrow 337.5°
218 #define SYM_AH_H_START 0x14C // 332 to 340 Horizontal AHI
219 #define SYM_AH_V_START 0x15A // 346 to 351 Vertical AHI
221 #define SYM_VARIO_UP_2A 0x155 // 341 Vario up up
222 #define SYM_VARIO_UP_1A 0x156 // 342 Vario up
223 #define SYM_VARIO_DOWN_1A 0x157 // 343 Vario down
224 #define SYM_VARIO_DOWN_2A 0x158 // 344 Vario down down
225 #define SYM_ALT 0x159 // 345 ALT
227 #define SYM_HUD_SIGNAL_0 0x160 // 352 Hud signal icon Lost
228 #define SYM_HUD_SIGNAL_1 0x161 // 353 Hud signal icon 25%
229 #define SYM_HUD_SIGNAL_2 0x162 // 354 Hud signal icon 50%
230 #define SYM_HUD_SIGNAL_3 0x163 // 355 Hud signal icon 75%
231 #define SYM_HUD_SIGNAL_4 0x164 // 356 Hud signal icon 100%
233 #define SYM_HOME_DIST 0x165 // 357 DIST
234 #define SYM_AH_CH_CENTER 0x166 // 358 Crossair center
235 #define SYM_FLIGHT_DIST_REMAINING 0x167 // 359 Flight distance reminaing
236 #define SYM_ODOMETER 0x168 // 360 Odometer
237 #define SYM_RX_BAND 0x169 // 361 RX Band
238 #define SYM_RX_MODE 0x16A // 362 RX Mode
240 #define SYM_AH_CH_TYPE3 0x190 // 400 to 402, crosshair 3
241 #define SYM_AH_CH_TYPE4 0x193 // 403 to 405, crosshair 4
242 #define SYM_AH_CH_TYPE5 0x196 // 406 to 408, crosshair 5
243 #define SYM_AH_CH_TYPE6 0x199 // 409 to 411, crosshair 6
244 #define SYM_AH_CH_TYPE7 0x19C // 412 to 414, crosshair 7
245 #define SYM_AH_CH_TYPE8 0x19F // 415 to 417, crosshair 8
247 #define SYM_AH_CH_AIRCRAFT0 0x1A2 // 418 Crossair aircraft left
248 #define SYM_AH_CH_AIRCRAFT1 0x1A3 // 419 Crossair aircraft
249 #define SYM_AH_CH_AIRCRAFT2 0x1A4 // 420 Crossair aircraft center
250 #define SYM_AH_CH_AIRCRAFT3 0x1A5 // 421 Crossair aircraft
251 #define SYM_AH_CH_AIRCRAFT4 0x1A6 // 422 Crossair aircraft RIGHT
253 #define SYM_HUD_ARROWS_L1 0x1AE // 430 1 arrow left
254 #define SYM_HUD_ARROWS_L2 0x1AF // 431 2 arrows left
255 #define SYM_HUD_ARROWS_L3 0x1B0 // 432 3 arrows left
256 #define SYM_HUD_ARROWS_R1 0x1B1 // 433 1 arrow right
257 #define SYM_HUD_ARROWS_R2 0x1B2 // 434 2 arrows right
258 #define SYM_HUD_ARROWS_R3 0x1B3 // 435 3 arrows right
259 #define SYM_HUD_ARROWS_U1 0x1B4 // 436 1 arrow up
260 #define SYM_HUD_ARROWS_U2 0x1B5 // 437 2 arrows up
261 #define SYM_HUD_ARROWS_U3 0x1B6 // 438 3 arrows up
262 #define SYM_HUD_ARROWS_D1 0x1B7 // 439 1 arrow down
263 #define SYM_HUD_ARROWS_D2 0x1B8 // 440 2 arrows down
264 #define SYM_HUD_ARROWS_D3 0x1B9 // 441 3 arrows down
266 #define SYM_HUD_CARDINAL 0x1BA // 442-453 Cardinal direction in 30 degree segments
268 #define SYM_SERVO_PAN_IS_CENTRED 0x1C6 // 454 Pan servo is centred
269 #define SYM_SERVO_PAN_IS_OFFSET_L 0x1C7 // 455 Pan servo is offset left
270 #define SYM_SERVO_PAN_IS_OFFSET_R 0x1C8 // 456 Pan servo is offset right
272 #define SYM_PILOT_LOGO_SML_L 0x1D5 // 469 small Pilot logo Left
273 #define SYM_PILOT_LOGO_SML_C 0x1D6 // 470 small Pilot logo Centre
274 #define SYM_PILOT_LOGO_SML_R 0x1D7 // 471 small Pilot logo Right
275 #define SYM_PILOT_LOGO_LRG_START 0x1D8 // 472 to 511, Pilot logo
279 #define TEMP_SENSOR_SYM_COUNT 0