Skip to content

Commit eeac301

Browse files
committed
Readme updates + add font previews
1 parent 60cb8cd commit eeac301

24 files changed

+61
-34
lines changed

README.md

+42-34
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
# DisplayPort OSD Framebuffer
1+
# MSP-OSD - Full OSD / Displayport OSD
22

3-
This takes Betaflight MSP DisplayPort (so-called "canvas" although this is a misnomer as there is another Betaflight "canvas" mode for Pixel OSDs) messages through UDP and renders them to a framebuffer overlaid under the DJI `dji_glasses` menu system.
3+
This package gives you support for full flight controller driven OSD in line with those on analog + other HD systems.
4+
5+
Technically - it takes MSP DisplayPort (so-called "canvas" although this is a misnomer as there is another Betaflight "canvas" mode for Pixel OSDs) messages through UDP and renders them to a framebuffer overlaid under the DJI `dji_glasses` menu system.
46

57
A custom `font.bin` package may be placed on the root of the goggles SD card, at which point it will override the font in `/blackbox/font.bin`.
68

@@ -86,9 +88,9 @@ serial 30 1 115200 57600 0 115200
8688

8789
#### FakeHD
8890

89-
Betaflight's OSD supports a 30 * 16 Grid, which looks large/blocky when displayed in the DJI Goggles.
91+
Betaflight's (before 4.4) OSD supports a 30 * 16 Grid, which looks large/blocky when displayed in the DJI Goggles.
9092

91-
Until Betaflight adds support for a larger grid, as a workaround, we have a mode called "FakeHD". It chops up the Betaflight OSD into sections and positions them evenly around an HD grid (with gaps between). Two rows are left unsplit + centered to use for warnings, and the bottom row is unsplit/offset to sit between the DJI OSD elements. This then allows the use of smaller fonts - so it looks nicer/more in keeping with the built in Goggles OSD (but you still only have 30 columns / 16 rows to configure.... and you have gaps to contend with).
93+
For versions of Betaflight before 4.4 (or other FC firmwares without HD support), as a workaround, we have a mode called "FakeHD". It chops up the OSD into sections and positions them evenly around an HD grid (with gaps between) - the way this is done is configurable, explained below. This then allows the use of smaller fonts - so it looks nicer/more in keeping with the built in Goggles OSD (but you still only have 30 columns / 16 rows to configure.... and you have the gaps to contend with).
9294

9395
A diagram to help...
9496

@@ -216,9 +218,11 @@ Select MSP on serial and select DJI WTF as canvas dialect. That's it.
216218

217219
Configure the UART under Digital VTX - see https://docs.bosshobby.com/Configuring-Quicksilver/#setup
218220

219-
## Choose a Font
221+
## Fonts
222+
223+
We bundle in default fonts for the flight controller variants we support. [Preview images are available here](docs/fonts). Or you can use a custom one...
220224

221-
* Download a font package. See below for known community fonts!
225+
* Download a font package. See below for known community fonts.
222226
* Rename the files for your desired font to `font_<fc variant>` - see table below for examples or take a look at the `fonts` directory for a template for how the file names should look. (If your FC firmware is not listed below, use the generic filenames)
223227
* Place these four files on the root of your Goggles SD card.
224228
* Reboot.
@@ -242,22 +246,6 @@ VTx (AU/Vista) which have not had their msp-osd upgraded, as well as flight cont
242246
- [SNEAKY_FPV's colour fonts for INAV, ARDU and BF](https://sites.google.com/view/sneaky-fpv/home)
243247
- [VICEWIZE Italic](https://github.com/vicewize/vicewizeosdfontset)
244248

245-
### Compressed Transmission
246-
247-
As of 0.7.0, a new option, `compress_osd`, has been added to the air side process.
248-
249-
If this is set to "true", then the entire character buffer will be sent using LZ4 compression at the rate defined in `osd_update_rate_hz`, instead of sending raw MSP messages over the air.
250-
251-
When enabled, this should fix INAV delta update related issues as well as provide better link stability.
252-
253-
To enable:
254-
255-
Visit https://fpv.wtf/package/fpv-wtf/msp-osd with your Air Unit / Vista plugged in to edit package options.
256-
257-
This option is enabled by default as of 0.10.0, however, if you upgraded from an older version, your configuration will need to be updated using the configurator.
258-
259-
If you continue to have issues with especially INAV character corruption, it is likely your serial link is saturated. Check that the "Custom OSD" option in your DJI goggles menus is set to _disabled_ , and also try out the cache_serial option.
260-
261249
### Generate your own Font from an analog font (advanced)
262250

263251
* Download [mcm2img](https://github.com/bri3d/mcm2img) and set up a working Python environment to run it.
@@ -276,6 +264,24 @@ If you continue to have issues with especially INAV character corruption, it is
276264

277265
You can customize the font color by changing the 255 255 255 RGB values.
278266

267+
Useful tool for working with fonts: https://github.com/shellixyz/hd_fpv_osd_font_tool
268+
269+
## Compressed Transmission
270+
271+
As of 0.7.0, a new option, `compress_osd`, has been added to the air side process.
272+
273+
If this is set to "true", then the entire character buffer will be sent using LZ4 compression at the rate defined in `osd_update_rate_hz`, instead of sending raw MSP messages over the air.
274+
275+
When enabled, this should fix INAV delta update related issues as well as provide better link stability.
276+
277+
To enable:
278+
279+
Visit https://fpv.wtf/package/fpv-wtf/msp-osd with your Air Unit / Vista plugged in to edit package options.
280+
281+
This option is enabled by default as of 0.10.0, however, if you upgraded from an older version, your configuration will need to be updated using the configurator.
282+
283+
If you continue to have issues with especially INAV character corruption, it is likely your serial link is saturated. Check that the "Custom OSD" option in your DJI goggles menus is set to _disabled_ , and also try out the cache_serial option.
284+
279285
## Configuration options
280286

281287
Configuration options can be set using the WTFOS Configurator.
@@ -286,27 +292,29 @@ Visit https://fpv.wtf/package/fpv-wtf/msp-osd with your Goggles or Air Unit plug
286292

287293
| Option | Description | Type | Default|
288294
| ------ | ----------- | ---- |--------|
295+
|`show_waiting`| enables or disables WAITING FOR OSD message | true/false | true |
296+
|`show_au_data`| enables AU data (temp/voltage) overlay on the right | true/false | false |
297+
|`rec_enabled`| enable OSD recording to .msp files alongside video | true/false | true |
298+
|`rec_pb_enabled`| enable OSD playback if .msp file is stored alongside video | true/false | true |
299+
|`hide_diagnostics`| hide the diagnostic information in the bottom right | true/false | false |
289300
|`fakehd_enable`| enables [FakeHD](#FakeHD); the other FakeHD options don't do anything if this is disabled. FakeHD is force disabled if the Flight Controller supports proper HD / RealHD | true/false| false |
290-
|`fakehd_menu_switch`| FakeHD will use this character as the menu switch to detect when you are in menus/postfligght and triggger centering. | integer/number | 4 (Betaflight Throttle) |
301+
|`fakehd_lock_center`| Lock FakeHD in centered mode all the time; no gaps/spreading out even when you are flying. | true/false | false |
302+
|`fakehd_menu_switch`| FakeHD will use this character as the menu switch to detect when you are in menus/postflight and triggger centering. | integer/number | 4 (Betaflight Throttle) |
291303
|`fakehd_hide_menu_switch`| FakeHD will hide the menu switch set above; and the next 5 characters | true / false | false |
292-
| `fakehd_rows` | FakeHD row alignment config, each character configures the alignment for one row | 16 characters, each one of L C R W T F D | WWWWWWCCWWWWWWWD |
293304
| `fakehd_columns` | FakeHD column alignment config | Single character, one of T M B S | S |
294-
|`fakehd_lock_center`| Lock FakeHD in centered mode all the time; no gaps/spreading out even when you are flying. | true/false | false |
295-
|`show_au_data`| enables AU data overlay on the right | true/false | false |
296-
|`show_waiting`| enables or disables MSP WAITING message | true/false | true |
297-
|`hide_diagnostics`| hide the diagnostic information in the bottom right | true/false | false |
298-
|`rec_enabled`| enable OSD recording to .msp files alongside video | true/false | true |
299-
|`rec_pb_enabled`| enable OSD playback if .msp file is stored alongside video | true/false | true |
305+
| `fakehd_rows` | FakeHD row alignment config, each character configures the alignment for one row | 16 characters, each one of L C R W T F D | WWWWWWCCWWWWWWWD |
306+
307+
300308

301309
### Current available options (Air Unit/Vista):
302310

303311
| Option | Description | Type | Default|
304312
| ------ | ----------- | ---- |--------|
305-
|`compress_osd`| Enable [compressed transmission](#Compressed-Transmission) - see information above | true/false| true |
313+
|`compress_osd`| Enable sending full frames of compressed data. Disable to send raw MSP data [Read more](#Compressed-Transmission) | true/false| true |
306314
| `osd_update_rate_hz` | Configure the update rate in hz for the OSD when using compressed transmission | integer | 10 |
315+
| `disable_betaflight_hd` | Disable HD Mode, which is otherwise set by default in Betaflight 4.4 | true/false | false |
316+
| `fast_serial` | Change serial baud rate to 240400 baud, which can improve OSD performance in some situations - FC UART config must be changed to match. | true/false | false |
307317
| `cache_serial` | Cache unimportant MSP messages for seldom-used features (like PID tuning in the DJI Goggles Settings Menu) to reduce serial pressure | true/false | false |
308-
| `fast_serial` | Change serial baud rate to 240400 baud, which can improve OSD performance in some situations | true/false | false |
309-
| `disable_betaflight_hd` | Disable HD Mode, which is otherwise set by default with Betaflight 4.4 | true/false | false |
310318

311319
## FAQ / Suggestions
312320

@@ -331,7 +339,7 @@ For Betaflight after 4.4, you should see "HD" fonts by default. Make sure your V
331339

332340
### What is RealHD
333341

334-
Sometimes we refer to the proper MSP OSD HD grid supported by ArduPilot / Kiss Ultra / INAV as RealHD, to distinguish from FakeHD.
342+
Sometimes we refer to the proper MSP OSD HD grid supported by ArduPilot / Kiss Ultra / INAV / Betaflight (from 4.4) + others as RealHD, to distinguish from FakeHD.
335343

336344
# Compiling (development and debugging)
337345

docs/fonts/font.png

62 KB
Loading

docs/fonts/font_2.png

236 Bytes
Loading

docs/fonts/font_ardu.png

84.2 KB
Loading

docs/fonts/font_ardu_2.png

24.3 KB
Loading

docs/fonts/font_ardu_hd.png

4.9 KB
Loading

docs/fonts/font_ardu_hd_2.png

1.41 KB
Loading

docs/fonts/font_bf_hd.png

158 KB
Loading

docs/fonts/font_bf_hd_2.png

236 Bytes
Loading

docs/fonts/font_hd.png

3.53 KB
Loading

docs/fonts/font_hd_2.png

236 Bytes
Loading

docs/fonts/font_inav.png

80.2 KB
Loading

docs/fonts/font_inav_2.png

39 KB
Loading

docs/fonts/font_inav_hd.png

4.79 KB
Loading

docs/fonts/font_inav_hd_2.png

2.33 KB
Loading

docs/fonts/font_quic.png

302 KB
Loading

docs/fonts/font_quic_2.png

133 KB
Loading

docs/fonts/font_quic_hd.png

89.7 KB
Loading

docs/fonts/font_quic_hd_2.png

52.5 KB
Loading

docs/fonts/font_ultra.png

384 KB
Loading

docs/fonts/font_ultra_2.png

447 KB
Loading

docs/fonts/font_ultra_hd.png

18.6 KB
Loading

docs/fonts/font_ultra_hd_2.png

27.1 KB
Loading

docs/fonts/gen.sh

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
4+
echo "You need https://github.com/shellixyz/hd_fpv_osd_font_tool";
5+
echo "And you need montage from imagemagick";
6+
7+
8+
9+
echo "converting";
10+
find ../../fonts -iname '*.bin' | cut -d '/' -f 4 | cut -d '.' -f 1 | xargs -I '%' ~/.cargo/bin/hd_fpv_osd_font_tool convert djibin:../../fonts/%.bin tiledir:dir_%;
11+
12+
echo "montaging";
13+
find ../../fonts -iname '*.bin' | cut -d '/' -f 4 | cut -d '.' -f 1 | xargs -I '{}' montage 'dir_{}/*.png' -tile 16x -geometry 24x36+1+1 {}.png;
14+
15+
echo "cleaning";
16+
rm -rf ./dir_font*
17+
18+
19+
echo "Finished"

0 commit comments

Comments
 (0)