Jump to content

F16 DED with SSD1322 and DCS BIOS


wiggles5289

Recommended Posts

Il 17/11/2021 at 02:05, malarcky ha scritto:

Hi, I am using your code but I having some problems. I would appreciate help guys, I dont have the skill yet to program. I have the screen working and it seems dcsbios its sending information to my arduino UNO, but I only can see two numbers on the left. The hello world example works OK.

The numbers change randomly but I cant identify what its my problem. Also, it is possible to use this font? https://fontstruct.com/fontstructions/show/1014500/falconded

Thank you guys, hope someone can guide me in the right direction.

 

ok check the callBack assignament hex code, is changed
DcsBios::StringBuffer<25> dedLine1Buffer(0x4500, onDedLine1Change);
DcsBios::StringBuffer<25> dedLine2Buffer(0x451a, onDedLine2Change);
DcsBios::StringBuffer<25> dedLine3Buffer(0x4534, onDedLine3Change);
DcsBios::StringBuffer<25> dedLine4Buffer(0x454e, onDedLine4Change);
DcsBios::StringBuffer<25> dedLine5Buffer(0x4568, onDedLine5Change);
 

 

about the code take care that usually the DED is written only when something is changed 

Link to comment
Share on other sites

  • 3 weeks later...
On 6/12/2021 at 8:32 PM, eaglewen said:

Hi Chroustall,

 

In attachment the font I use on my DED. The ° and the up/down arrows are fixed in this font.

I'm using the DEDFont16px.c in my ino file.

 

Seeya

Werner

DEDfont16px.c 3.19 kB · 59 downloads DEDFont16px.fon 5.42 kB · 46 downloads DEDFont16px.bdf 23.27 kB · 49 downloads

How can I implement this font into the sketch y´all made above? The sketch works for me just fine, but I just can´t seem to use it with this font. 

 

Thanks a lot!

Link to comment
Share on other sites

  • 2 weeks later...
On 4/15/2021 at 3:14 PM, wiggles5289 said:

@JohnnyChicago It worked! I just modified that code to IRQ instead of Default serial and it worked smoothly. Just need to tweak the fonts and position of text to use the full display.
 

//F-16 DED for DCS BIOS using 256x64 ER-OLED032-1G from BuyDisplay.com

#define DCSBIOS_IRQ_SERIAL

#include "DcsBios.h"
#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 5, /* dc=*/ 3, /* reset=*/ 4);
char* line1;
char* line2;
char* line3;
char* line4;
char* line5;


void onDedLine1Change(char* newValue) {
  line1 = newValue;
}
DcsBios::StringBuffer<25> dedLine1Buffer(0x44fc, onDedLine1Change);

void onDedLine2Change(char* newValue) {
  line2 = newValue;
}
DcsBios::StringBuffer<25> dedLine2Buffer(0x4516, onDedLine2Change);

void onDedLine3Change(char* newValue) {
  line3 = newValue;
}
DcsBios::StringBuffer<25> dedLine3Buffer(0x4530, onDedLine3Change);

void onDedLine4Change(char* newValue) {
  line4 = newValue;
}
DcsBios::StringBuffer<25> dedLine4Buffer(0x454a, onDedLine4Change);

void onDedLine5Change(char* newValue) {
  line5 = (newValue);
}
DcsBios::StringBuffer<25> dedLine5Buffer(0x4564, onDedLine5Change);

void setup() {
  DcsBios::setup();
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_t0_12_tf);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(0, 10, line1);
    u8g2.drawStr(0, 20, line2);
    u8g2.drawStr(0, 30, line3);
    u8g2.drawStr(0, 40, line4);
    u8g2.drawStr(0, 50, line5);
  } while ( u8g2.nextPage() );
  u8g2.updateDisplay();
  DcsBios::loop();
}

 

 

I've tested this code with a 3.12 inch OLED on a Arduino Mega and on a Arduino Nano. Both do work, but in both cases the full text is only using halve the screen. Is there a solution for this situation? 

Ps. I have no nowledge of coding in Arduino IDE. I'm more a copy/paste kind of person... 😆

 

Link to comment
Share on other sites

On 12/27/2021 at 4:06 PM, Doc78 said:

I've tested this code with a 3.12 inch OLED on a Arduino Mega and on a Arduino Nano. Both do work, but in both cases the full text is only using halve the screen. Is there a solution for this situation? 

Ps. I have no nowledge of coding in Arduino IDE. I'm more a copy/paste kind of person... 😆

 

Needs a change to use proper Font and Sizes. I have to redo my code as the original working one got wiped with a new computer.

Link to comment
Share on other sites

On 12/27/2021 at 3:06 PM, Doc78 said:

I've tested this code with a 3.12 inch OLED on a Arduino Mega and on a Arduino Nano. Both do work, but in both cases the full text is only using halve the screen. Is there a solution for this situation? 

Ps. I have no nowledge of coding in Arduino IDE. I'm more a copy/paste kind of person... 😆

 

So my wife and I were working on the code. Used the font from above and placed it directly in the ino file since no one has told us how to install or use the font files. Also if you adjust the x,y in the u8g2.drawstr portion in the void loop () then you can center it. I also got the lines to use the full height of the display as well. Hope this helps a bit. By the way, the font does work a little. The issue is the symbol °   is spaced. Next issue with the font is that there is no highlight (or inverted text) of the characters in the List page for example.......anyway enough chatter, here is the code to suffice for now.

 

Wish we could get @uri_ba to help with the font. He did a wonderful job on the deduino.

 

 

//DED ON SEEEDUINO XIAO WITH ACTUAL NEWHAVEN DISPLAY 3.12" 256X64

#define DCSBIOS_DEFAULT_SERIAL

#include "DcsBios.h"
#include <Arduino.h>
#include <U8g2lib.h>
#include <U8glib.h>


#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif


U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 6, /* dc=*/ 7 /*TIE HIGH RESET, NOT NEEDED IN SEPARATE PIN*/);
char* line1;
char* line2;
char* line3;
char* line4;
char* line5;

const u8g_fntpgm_uint8_t DEDfont16px[1148] U8G_FONT_SECTION("DEDfont16px") =
  "_\0\3\3\4\4\4\5\5\10\16\0\376\12\376\12\377\1\212\3\1\4_ \5\0\10\61!\14\224\32"
  "q$\207\212H,\222\0\42\10\66y\61DL\2#\22\227\31q\224$\222\213\222D$\221\134\224$"
  "\22\0$\20\326\371\260\204\62\212\210\252\225$\241\11E\0%\24\270\10q\206\22\231D\22\232Hu\31"
  "E\324$\302\11\0&\21\227\31qf\22\221D\66\223JL\22\221h\42'\6\62{\61\14(\15\264"
  "\372\260$\42\211H\67\221L\0)\15\264\372\60d\42\231H\27\221D\4*\20\310\10\61~\60\205h"
  "s\300\214\24:<\20+\12V\71\261\204\42\223P\4,\10C\373\60,\24\0-\6\26Y\61\14."
  "\6#\33\61\14/\16\246\11\61\325\204\62\241L(\23\12\1\60\16\226\32q(\42JS\245B\222P"
  "\0\61\11\225\31\361D\207\230>\62\14\226\31q(\42\222P\246\243\1\63\17\226\31q(\42\222P\64"
  "%\221$\24\0\64\20\227\31q\244*\42\211H\242$\71J%\0\65\15\226\31\61\16A\305\252P&"
  "!\1\66\15\226\31\261fj\25\21'\11\5\0\67\15\226\31\61\214\62\241L(\23\252\1\70\20\226\31"
  "q(\42REB\221\224H\22\12\0\71\15\226\31q(\42N\222\232\332\10\0:\10s\33\61\354 "
  "\3;\12\223\373\60\354 \13\5\0<\11\226\31\61e\272\352\0=\7\66I\61\314\6>\11\226\31\61"
  "\244\272\351\10\77\16\226\31q(\42\222LQ\16\23\212\0@\17\230\30q,B&\213\204\42!\331\1"
  "\7A\14\226\31\261d\24\21\323a\304$B\14\226\31\61*\42\246\213\210\351\2C\15\226\31q(\42"
  "FM$\11\5\0D\14\226\31\61H\22%\276HH\0E\14\226\31\61\16A\305\212P\321\0F\14"
  "\226\31\61\16A\305\212P#\0G\14\226\31q(\42F\225\22IRH\13\226\31\61D\234\16#N"
  "\2I\11\224\32\61(\42}!J\13\226\31\61\365H\42I(\0K\15\226\31\61D,ZH\22\235"
  "H\2L\11\226\31\61\204\372\321\0M\20\227\31\61d\264J%B\211P\42\64\66\1N\15\227\31\61"
  "d\264\222\205b\252\261\11O\13\226\31q(\42~\222P\0P\14\226\31\61*\42\246\213P#\0Q"
  "\14\266\371p(\42~\222\20\245\2R\14\226\31\61*\42\246\213&&\1S\14\226\31q(\42\252V"
  "\222\204\2T\11\226\31\61LB\375\4U\12\226\31\61D\374IB\1V\13\226\31\61D\374$\241\211"
  "\0W\21\227\31\61d\134\42\224\10%\242I\42\222H\0X\17\226\31\61D$\211$&\224E\224\230"
  "\4Y\14\226\31\61D\234$\64\241&\0Z\12\226\31\61\214j:\12\15[\11\304\352\60L\372'\2"
  "\134\27\230\30\61d\22ID%\42\71L\42*\21\221D&\221ID\0]\11\304\352\60H\372'\3"
  "^\11\66\231\261d\24\221\0_\7\30\350\60\16\1`\10\64\232\61F\62\1a\16\267\31\361\242\263\312"
  "\35\303\245\66\215\1b\14\226\31\61\204\302\212\210\247\13\0c\14v\31q(\42\242&\11\5\0d\12"
  "\226\31\61UN<I\12e\14v\31q(\42\322a(\245\0f\14\226\31\261(B\65\213P\33\0"
  "g\14\246\351pN<I\212\302\13\0h\13\226\31\61\204\302\212\210O\2i\13\246\31\261\204r\10Q"
  "O\6j\12\325\351\360\224i\372\315\2k\15\226\31\61\204J,\22\222D\211$l\11\226\31\61\210\372"
  "\311\0m\21w\31\61,\222\10%B\211P\42\224\10M\0n\11v\31\61*\42>\11o\11Cm"
  "qR$)\0p\14\246\351\60*\42\236.BE\0q\12\246\351pN<I\212\32r\13v\31\61"
  "D\24\233P#\0s\12v\31q\216R\252\360\2t\13\226\31q\204\62\213PW\2u\11v\31\61"
  "D|\222\24v\13v\31\61D<Ih\42\0w\21w\31\61d\224\10%B\211P\42\232$\22\0"
  "x\15v\31\61D$\11MF\21\221\4y\24\247\350pD\22\221D$\21ID\22\221\210*\24\321"
  "\0z\11v\31\61\214\62\35\15{\14\265\371\360D\62%E\65E\1|\7\302\353\60>\14}\15\265"
  "\372\60\204\62E%\65%\31\0~\12\70xqf\23\311l\2\0\0\0\4\377\377\0";


void onDedLine1Change(char* newValue) {
  line1 = newValue;
}
DcsBios::StringBuffer<25> dedLine1Buffer(0x4500, onDedLine1Change);

void onDedLine2Change(char* newValue) {
  line2 = newValue;
}
DcsBios::StringBuffer<25> dedLine2Buffer(0x451a, onDedLine2Change);

void onDedLine3Change(char* newValue) {
  line3 = newValue;
}
DcsBios::StringBuffer<25> dedLine3Buffer(0x4534, onDedLine3Change);

void onDedLine4Change(char* newValue) {
  line4 = newValue;
}
DcsBios::StringBuffer<25> dedLine4Buffer(0x454e, onDedLine4Change);

void onDedLine5Change(char* newValue) {
  line5 = newValue;
}
DcsBios::StringBuffer<25> dedLine5Buffer(0x4568, onDedLine5Change);

void setup() {
  DcsBios::setup();
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(DEDfont16px);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(30, 12.8, line1);
    u8g2.drawStr(30, 25.6, line2);
    u8g2.drawStr(30, 38.4, line3);
    u8g2.drawStr(30, 51.2, line4);
    u8g2.drawStr(30, 64, line5);
  } while ( u8g2.nextPage() );
  u8g2.updateDisplay();
  DcsBios::loop();


Edited by fusion
Link to comment
Share on other sites

@fusion your wish is my command 😉

 

JK, when I designed the DEDuino font I compacted it as best as I could including a bunch of substitutions. All of those were desiged to run on the PC side (via the connector app) as PC cpu cycles are much less "expensive" then arduino CPU cycles.

You can dig around my code in github and see the order.

Or look at the TTF version of the font in the DEDuino repo and see where is everything.

Keep in mind that everything goes into the Memory space of the arduino, even blank chars. And the minimum you can get away with for DED refresh is 125 bytes over serial connection which is painful.

On 12/27/2021 at 11:06 PM, Doc78 said:

I've tested this code with a 3.12 inch OLED on a Arduino Mega and on a Arduino Nano. Both do work, but in both cases the full text is only using halve the screen. Is there a solution for this situation? 

Ps. I have no nowledge of coding in Arduino IDE. I'm more a copy/paste kind of person... 😆

 

You need to enable 16bit mode in the u8g2 library to use the entire screen. It's a simple uncomment in the library code.

Link to comment
Share on other sites

Thanks for your response @uri_ba!  Good to hear from you after all these years. Wife had a son 2 years ago and now another is due in July. Been really busy and haven't messed with pit in 3 years. 

I did enable 16 bit however I just noticed that I am using the u8g library/font instead of a u8g2 library and font. I don't know how to create/convert fonts. I also noticed that all pages except the MARK page display. When you hit the MARK button on the ICP, the display goes blank. I even tried the original position of the DED lines to 0, 10; 0, 20; 0,30; 0.40; 0,50. still doesn't work. I guess it is a bug or something...lol.

Link to comment
Share on other sites

19 hours ago, uri_ba said:

Congrats 🙂
Had one of those myself this year..

I never dug into the output of DCS as it comes to DED. maybe it contains some wierd chars? UTF8 rather then ASCII maybe?

Congrats!!!! I'm sure it has been fun...lol. 

Link to comment
Share on other sites

Hi there,

i've been following along with this post as its something I'd love to make, i have the display and used wiggles code and i've enabled 16bit mode as well, i think.. but i'm still only displaying on half the screen. i'm also getting nothing on the mark page. As you can see dcs bios seems to not be displaying everything. Is there something i can do to fix this? 

Untitled-1.jpg

20220109_190552.jpg

Link to comment
Share on other sites

11 hours ago, mike4t5 said:

Hi there,

i've been following along with this post as its something I'd love to make, i have the display and used wiggles code and i've enabled 16bit mode as well, i think.. but i'm still only displaying on half the screen. i'm also getting nothing on the mark page. As you can see dcs bios seems to not be displaying everything. Is there something i can do to fix this? 

Untitled-1.jpg

20220109_190552.jpg

Same issue here. Apparently there is an update to the DCS-BIOS fork for an update to show the MARK page as well. One of the guys on discord is working through getting the DED perfected. It looks like he has all the symbols in the right place and full screen. So unfortunately we have to be a little more patient.

 

https://github.com/DCSFlightpanels/dcs-bios

 


Edited by fusion
Link to comment
Share on other sites

11 hours ago, fusion said:

Same issue here. Apparently there is an update to the DCS-BIOS fork for an update to show the MARK page as well. One of the guys on discord is working through getting the DED perfected. It looks like he has all the symbols in the right place and full screen. So unfortunately we have to be a little more patient.

 

https://github.com/DCSFlightpanels/dcs-bios

 

 

Oh perfect! Just gave it a go and it's all good! I don't know if it's just the font I'm using (I've been messing about with the default u8g2 fonts) but the screen keeps going black after a little while and I have to press the rest button on the uno to get it back up. Do you or anyone else experiences this issue? 

Oh sweet I'm glad to hear that someone is working on it. It's going to be good to have it looking correct aswell as working! 

Link to comment
Share on other sites

11 hours ago, mike4t5 said:

Oh perfect! Just gave it a go and it's all good! I don't know if it's just the font I'm using (I've been messing about with the default u8g2 fonts) but the screen keeps going black after a little while and I have to press the rest button on the uno to get it back up. Do you or anyone else experiences this issue? 

Oh sweet I'm glad to hear that someone is working on it. It's going to be good to have it looking correct aswell as working! 

Can you provide me with the make and part number/model number of your display and also what your pinout from the display to your arduino is?

Link to comment
Share on other sites

11 hours ago, fusion said:

Can you provide me with the make and part number/model number of your display and also what your pinout from the display to your arduino is?

Yeah sure so I have a 

SPI 3.12" 256x64 Graphic OLED Display Module SSD1322 Arduino STM32/51 PIC ARM

The board is set to SPI 4 it was on 80xx on delivery 

This is a link to the ebay post (Display link)

As far as connecting it it was a bit more difficult as it didn't have the pins labeled as what they were it's just pins 1 to 16 I went online to see what each of them were and came up with this as a pinout 

OLED — Arduino 

2 — 3.3v

4 — pin D13

5 — pin D11

11 — ground

14 — pin D9

15 — pin D8

16 — pin D10

 

Spoiler
Spoiler

 

 

20220111_165718.jpg

20220111_165816.jpg

20220111_165840.jpg

Link to comment
Share on other sites

  • 2 weeks later...

So this topic def took off since I last was active in the forums. For all of those who are looking to PM me for code the answer is currently: I do not have any that is known to be working. Unfortunately, I lost some things with moving to a new desktop and all of my Arduino code is gone.

Keep an eye out here for updates and I will change the first post to reflect changes. If anyone has a working DED Font files for U8G2 that would be a big help to start.

  • Like 1
Link to comment
Share on other sites

UPDATE FOR IMMEDIATE RELEASE:

Thanks to @fusion I found his code to be the most accurate solution to a DED atm using a SSD1322 256x64. My code is below and is working fully.

//F-16 DED for DCS BIOS using 256x64 ER-OLED032-1G from BuyDisplay.com
//Final code by Wiggles5289 and a whole lotta cred to Fusion on the DCS Forums.

#define DCSBIOS_IRQ_SERIAL

#include "DcsBios.h"
#include <Arduino.h>
#include <U8g2lib.h>
#include <U8glib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R2, /* cs=*/ 5, /* dc=*/ 3, /* reset=*/ 4);
char* line1;
char* line2;
char* line3;
char* line4;
char* line5;

const u8g_fntpgm_uint8_t DEDfont16px[1148] U8G_FONT_SECTION("DEDfont16px") =
  "_\0\3\3\4\4\4\5\5\10\16\0\376\12\376\12\377\1\212\3\1\4_ \5\0\10\61!\14\224\32"
  "q$\207\212H,\222\0\42\10\66y\61DL\2#\22\227\31q\224$\222\213\222D$\221\134\224$"
  "\22\0$\20\326\371\260\204\62\212\210\252\225$\241\11E\0%\24\270\10q\206\22\231D\22\232Hu\31"
  "E\324$\302\11\0&\21\227\31qf\22\221D\66\223JL\22\221h\42'\6\62{\61\14(\15\264"
  "\372\260$\42\211H\67\221L\0)\15\264\372\60d\42\231H\27\221D\4*\20\310\10\61~\60\205h"
  "s\300\214\24:<\20+\12V\71\261\204\42\223P\4,\10C\373\60,\24\0-\6\26Y\61\14."
  "\6#\33\61\14/\16\246\11\61\325\204\62\241L(\23\12\1\60\16\226\32q(\42JS\245B\222P"
  "\0\61\11\225\31\361D\207\230>\62\14\226\31q(\42\222P\246\243\1\63\17\226\31q(\42\222P\64"
  "%\221$\24\0\64\20\227\31q\244*\42\211H\242$\71J%\0\65\15\226\31\61\16A\305\252P&"
  "!\1\66\15\226\31\261fj\25\21'\11\5\0\67\15\226\31\61\214\62\241L(\23\252\1\70\20\226\31"
  "q(\42REB\221\224H\22\12\0\71\15\226\31q(\42N\222\232\332\10\0:\10s\33\61\354 "
  "\3;\12\223\373\60\354 \13\5\0<\11\226\31\61e\272\352\0=\7\66I\61\314\6>\11\226\31\61"
  "\244\272\351\10\77\16\226\31q(\42\222LQ\16\23\212\0@\17\230\30q,B&\213\204\42!\331\1"
  "\7A\14\226\31\261d\24\21\323a\304$B\14\226\31\61*\42\246\213\210\351\2C\15\226\31q(\42"
  "FM$\11\5\0D\14\226\31\61H\22%\276HH\0E\14\226\31\61\16A\305\212P\321\0F\14"
  "\226\31\61\16A\305\212P#\0G\14\226\31q(\42F\225\22IRH\13\226\31\61D\234\16#N"
  "\2I\11\224\32\61(\42}!J\13\226\31\61\365H\42I(\0K\15\226\31\61D,ZH\22\235"
  "H\2L\11\226\31\61\204\372\321\0M\20\227\31\61d\264J%B\211P\42\64\66\1N\15\227\31\61"
  "d\264\222\205b\252\261\11O\13\226\31q(\42~\222P\0P\14\226\31\61*\42\246\213P#\0Q"
  "\14\266\371p(\42~\222\20\245\2R\14\226\31\61*\42\246\213&&\1S\14\226\31q(\42\252V"
  "\222\204\2T\11\226\31\61LB\375\4U\12\226\31\61D\374IB\1V\13\226\31\61D\374$\241\211"
  "\0W\21\227\31\61d\134\42\224\10%\242I\42\222H\0X\17\226\31\61D$\211$&\224E\224\230"
  "\4Y\14\226\31\61D\234$\64\241&\0Z\12\226\31\61\214j:\12\15[\11\304\352\60L\372'\2"
  "\134\27\230\30\61d\22ID%\42\71L\42*\21\221D&\221ID\0]\11\304\352\60H\372'\3"
  "^\11\66\231\261d\24\221\0_\7\30\350\60\16\1`\10\64\232\61F\62\1a\16\267\31\361\242\263\312"
  "\35\303\245\66\215\1b\14\226\31\61\204\302\212\210\247\13\0c\14v\31q(\42\242&\11\5\0d\12"
  "\226\31\61UN<I\12e\14v\31q(\42\322a(\245\0f\14\226\31\261(B\65\213P\33\0"
  "g\14\246\351pN<I\212\302\13\0h\13\226\31\61\204\302\212\210O\2i\13\246\31\261\204r\10Q"
  "O\6j\12\325\351\360\224i\372\315\2k\15\226\31\61\204J,\22\222D\211$l\11\226\31\61\210\372"
  "\311\0m\21w\31\61,\222\10%B\211P\42\224\10M\0n\11v\31\61*\42>\11o\11Cm"
  "qR$)\0p\14\246\351\60*\42\236.BE\0q\12\246\351pN<I\212\32r\13v\31\61"
  "D\24\233P#\0s\12v\31q\216R\252\360\2t\13\226\31q\204\62\213PW\2u\11v\31\61"
  "D|\222\24v\13v\31\61D<Ih\42\0w\21w\31\61d\224\10%B\211P\42\232$\22\0"
  "x\15v\31\61D$\11MF\21\221\4y\24\247\350pD\22\221D$\21ID\22\221\210*\24\321"
  "\0z\11v\31\61\214\62\35\15{\14\265\371\360D\62%E\65E\1|\7\302\353\60>\14}\15\265"
  "\372\60\204\62E%\65%\31\0~\12\70xqf\23\311l\2\0\0\0\4\377\377\0";


void onDedLine1Change(char* newValue) {
  line1 = newValue;
}
DcsBios::StringBuffer<25> dedLine1Buffer(0x4500, onDedLine1Change);

void onDedLine2Change(char* newValue) {
  line2 = newValue;
}
DcsBios::StringBuffer<25> dedLine2Buffer(0x451a, onDedLine2Change);

void onDedLine3Change(char* newValue) {
  line3 = newValue;
}
DcsBios::StringBuffer<25> dedLine3Buffer(0x4534, onDedLine3Change);

void onDedLine4Change(char* newValue) {
  line4 = newValue;
}
DcsBios::StringBuffer<25> dedLine4Buffer(0x454e, onDedLine4Change);

void onDedLine5Change(char* newValue) {
  line5 = newValue;
}
DcsBios::StringBuffer<25> dedLine5Buffer(0x4568, onDedLine5Change);

void setup() {
  DcsBios::setup();
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(DEDfont16px);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(30, 12.8, line1);
    u8g2.drawStr(30, 25.6, line2);
    u8g2.drawStr(30, 38.4, line3);
    u8g2.drawStr(30, 51.2, line4);
    u8g2.drawStr(30, 64, line5);
  } while ( u8g2.nextPage() );
  u8g2.updateDisplay();
  DcsBios::loop();
}

Just copy and paste. I used an Arduino Nano and 2x Adafruit level shifters. No other witchcraft reqd.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

On 1/26/2022 at 4:48 PM, wiggles5289 said:

UPDATE FOR IMMEDIATE RELEASE:

Thanks to @fusion I found his code to be the most accurate solution to a DED atm using a SSD1322 256x64. My code is below and is working fully.

//F-16 DED for DCS BIOS using 256x64 ER-OLED032-1G from BuyDisplay.com
//Final code by Wiggles5289 and a whole lotta cred to Fusion on the DCS Forums.

#define DCSBIOS_IRQ_SERIAL

#include "DcsBios.h"
#include <Arduino.h>
#include <U8g2lib.h>
#include <U8glib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R2, /* cs=*/ 5, /* dc=*/ 3, /* reset=*/ 4);
char* line1;
char* line2;
char* line3;
char* line4;
char* line5;

const u8g_fntpgm_uint8_t DEDfont16px[1148] U8G_FONT_SECTION("DEDfont16px") =
  "_\0\3\3\4\4\4\5\5\10\16\0\376\12\376\12\377\1\212\3\1\4_ \5\0\10\61!\14\224\32"
  "q$\207\212H,\222\0\42\10\66y\61DL\2#\22\227\31q\224$\222\213\222D$\221\134\224$"
  "\22\0$\20\326\371\260\204\62\212\210\252\225$\241\11E\0%\24\270\10q\206\22\231D\22\232Hu\31"
  "E\324$\302\11\0&\21\227\31qf\22\221D\66\223JL\22\221h\42'\6\62{\61\14(\15\264"
  "\372\260$\42\211H\67\221L\0)\15\264\372\60d\42\231H\27\221D\4*\20\310\10\61~\60\205h"
  "s\300\214\24:<\20+\12V\71\261\204\42\223P\4,\10C\373\60,\24\0-\6\26Y\61\14."
  "\6#\33\61\14/\16\246\11\61\325\204\62\241L(\23\12\1\60\16\226\32q(\42JS\245B\222P"
  "\0\61\11\225\31\361D\207\230>\62\14\226\31q(\42\222P\246\243\1\63\17\226\31q(\42\222P\64"
  "%\221$\24\0\64\20\227\31q\244*\42\211H\242$\71J%\0\65\15\226\31\61\16A\305\252P&"
  "!\1\66\15\226\31\261fj\25\21'\11\5\0\67\15\226\31\61\214\62\241L(\23\252\1\70\20\226\31"
  "q(\42REB\221\224H\22\12\0\71\15\226\31q(\42N\222\232\332\10\0:\10s\33\61\354 "
  "\3;\12\223\373\60\354 \13\5\0<\11\226\31\61e\272\352\0=\7\66I\61\314\6>\11\226\31\61"
  "\244\272\351\10\77\16\226\31q(\42\222LQ\16\23\212\0@\17\230\30q,B&\213\204\42!\331\1"
  "\7A\14\226\31\261d\24\21\323a\304$B\14\226\31\61*\42\246\213\210\351\2C\15\226\31q(\42"
  "FM$\11\5\0D\14\226\31\61H\22%\276HH\0E\14\226\31\61\16A\305\212P\321\0F\14"
  "\226\31\61\16A\305\212P#\0G\14\226\31q(\42F\225\22IRH\13\226\31\61D\234\16#N"
  "\2I\11\224\32\61(\42}!J\13\226\31\61\365H\42I(\0K\15\226\31\61D,ZH\22\235"
  "H\2L\11\226\31\61\204\372\321\0M\20\227\31\61d\264J%B\211P\42\64\66\1N\15\227\31\61"
  "d\264\222\205b\252\261\11O\13\226\31q(\42~\222P\0P\14\226\31\61*\42\246\213P#\0Q"
  "\14\266\371p(\42~\222\20\245\2R\14\226\31\61*\42\246\213&&\1S\14\226\31q(\42\252V"
  "\222\204\2T\11\226\31\61LB\375\4U\12\226\31\61D\374IB\1V\13\226\31\61D\374$\241\211"
  "\0W\21\227\31\61d\134\42\224\10%\242I\42\222H\0X\17\226\31\61D$\211$&\224E\224\230"
  "\4Y\14\226\31\61D\234$\64\241&\0Z\12\226\31\61\214j:\12\15[\11\304\352\60L\372'\2"
  "\134\27\230\30\61d\22ID%\42\71L\42*\21\221D&\221ID\0]\11\304\352\60H\372'\3"
  "^\11\66\231\261d\24\221\0_\7\30\350\60\16\1`\10\64\232\61F\62\1a\16\267\31\361\242\263\312"
  "\35\303\245\66\215\1b\14\226\31\61\204\302\212\210\247\13\0c\14v\31q(\42\242&\11\5\0d\12"
  "\226\31\61UN<I\12e\14v\31q(\42\322a(\245\0f\14\226\31\261(B\65\213P\33\0"
  "g\14\246\351pN<I\212\302\13\0h\13\226\31\61\204\302\212\210O\2i\13\246\31\261\204r\10Q"
  "O\6j\12\325\351\360\224i\372\315\2k\15\226\31\61\204J,\22\222D\211$l\11\226\31\61\210\372"
  "\311\0m\21w\31\61,\222\10%B\211P\42\224\10M\0n\11v\31\61*\42>\11o\11Cm"
  "qR$)\0p\14\246\351\60*\42\236.BE\0q\12\246\351pN<I\212\32r\13v\31\61"
  "D\24\233P#\0s\12v\31q\216R\252\360\2t\13\226\31q\204\62\213PW\2u\11v\31\61"
  "D|\222\24v\13v\31\61D<Ih\42\0w\21w\31\61d\224\10%B\211P\42\232$\22\0"
  "x\15v\31\61D$\11MF\21\221\4y\24\247\350pD\22\221D$\21ID\22\221\210*\24\321"
  "\0z\11v\31\61\214\62\35\15{\14\265\371\360D\62%E\65E\1|\7\302\353\60>\14}\15\265"
  "\372\60\204\62E%\65%\31\0~\12\70xqf\23\311l\2\0\0\0\4\377\377\0";


void onDedLine1Change(char* newValue) {
  line1 = newValue;
}
DcsBios::StringBuffer<25> dedLine1Buffer(0x4500, onDedLine1Change);

void onDedLine2Change(char* newValue) {
  line2 = newValue;
}
DcsBios::StringBuffer<25> dedLine2Buffer(0x451a, onDedLine2Change);

void onDedLine3Change(char* newValue) {
  line3 = newValue;
}
DcsBios::StringBuffer<25> dedLine3Buffer(0x4534, onDedLine3Change);

void onDedLine4Change(char* newValue) {
  line4 = newValue;
}
DcsBios::StringBuffer<25> dedLine4Buffer(0x454e, onDedLine4Change);

void onDedLine5Change(char* newValue) {
  line5 = newValue;
}
DcsBios::StringBuffer<25> dedLine5Buffer(0x4568, onDedLine5Change);

void setup() {
  DcsBios::setup();
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(DEDfont16px);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(30, 12.8, line1);
    u8g2.drawStr(30, 25.6, line2);
    u8g2.drawStr(30, 38.4, line3);
    u8g2.drawStr(30, 51.2, line4);
    u8g2.drawStr(30, 64, line5);
  } while ( u8g2.nextPage() );
  u8g2.updateDisplay();
  DcsBios::loop();
}

Just copy and paste. I used an Arduino Nano and 2x Adafruit level shifters. No other witchcraft reqd.

After doing a lot of researching and my wife's (software engineer) and whoever provided the dedf16 font....they get the credit too!

Link to comment
Share on other sites

5 hours ago, OH1CL said:

It works, but some texts are missing from left side of the display ".UHF" & "VHF" and some others when there is a different paga on display.

Try this code
//F-16 DED for DCS BIOS using 256x64 ER-OLED032-1G from BuyDisplay.com

#define DCSBIOS_IRQ_SERIAL

#include "DcsBios.h"
#include <Arduino.h>
#include <U8g2lib.h>
#include <U8glib.h>
#include <SPI.h>

U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);  // Enable U8G2_16BIT in u8g2.h
//U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 5, /* dc=*/ 3, /* reset=*/ 4);
char* line1;
char* line2;
char* line3;
char* line4;
char* line5;

const u8g_fntpgm_uint8_t DEDfont16px[1148] U8G_FONT_SECTION("DEDfont16px") =
  "_\0\3\3\4\4\4\5\5\10\16\0\376\12\376\12\377\1\212\3\1\4_ \5\0\10\61!\14\224\32"
  "q$\207\212H,\222\0\42\10\66y\61DL\2#\22\227\31q\224$\222\213\222D$\221\134\224$"
  "\22\0$\20\326\371\260\204\62\212\210\252\225$\241\11E\0%\24\270\10q\206\22\231D\22\232Hu\31"
  "E\324$\302\11\0&\21\227\31qf\22\221D\66\223JL\22\221h\42'\6\62{\61\14(\15\264"
  "\372\260$\42\211H\67\221L\0)\15\264\372\60d\42\231H\27\221D\4*\20\310\10\61~\60\205h"
  "s\300\214\24:<\20+\12V\71\261\204\42\223P\4,\10C\373\60,\24\0-\6\26Y\61\14."
  "\6#\33\61\14/\16\246\11\61\325\204\62\241L(\23\12\1\60\16\226\32q(\42JS\245B\222P"
  "\0\61\11\225\31\361D\207\230>\62\14\226\31q(\42\222P\246\243\1\63\17\226\31q(\42\222P\64"
  "%\221$\24\0\64\20\227\31q\244*\42\211H\242$\71J%\0\65\15\226\31\61\16A\305\252P&"
  "!\1\66\15\226\31\261fj\25\21'\11\5\0\67\15\226\31\61\214\62\241L(\23\252\1\70\20\226\31"
  "q(\42REB\221\224H\22\12\0\71\15\226\31q(\42N\222\232\332\10\0:\10s\33\61\354 "
  "\3;\12\223\373\60\354 \13\5\0<\11\226\31\61e\272\352\0=\7\66I\61\314\6>\11\226\31\61"
  "\244\272\351\10\77\16\226\31q(\42\222LQ\16\23\212\0@\17\230\30q,B&\213\204\42!\331\1"
  "\7A\14\226\31\261d\24\21\323a\304$B\14\226\31\61*\42\246\213\210\351\2C\15\226\31q(\42"
  "FM$\11\5\0D\14\226\31\61H\22%\276HH\0E\14\226\31\61\16A\305\212P\321\0F\14"
  "\226\31\61\16A\305\212P#\0G\14\226\31q(\42F\225\22IRH\13\226\31\61D\234\16#N"
  "\2I\11\224\32\61(\42}!J\13\226\31\61\365H\42I(\0K\15\226\31\61D,ZH\22\235"
  "H\2L\11\226\31\61\204\372\321\0M\20\227\31\61d\264J%B\211P\42\64\66\1N\15\227\31\61"
  "d\264\222\205b\252\261\11O\13\226\31q(\42~\222P\0P\14\226\31\61*\42\246\213P#\0Q"
  "\14\266\371p(\42~\222\20\245\2R\14\226\31\61*\42\246\213&&\1S\14\226\31q(\42\252V"
  "\222\204\2T\11\226\31\61LB\375\4U\12\226\31\61D\374IB\1V\13\226\31\61D\374$\241\211"
  "\0W\21\227\31\61d\134\42\224\10%\242I\42\222H\0X\17\226\31\61D$\211$&\224E\224\230"
  "\4Y\14\226\31\61D\234$\64\241&\0Z\12\226\31\61\214j:\12\15[\11\304\352\60L\372'\2"
  "\134\27\230\30\61d\22ID%\42\71L\42*\21\221D&\221ID\0]\11\304\352\60H\372'\3"
  "^\11\66\231\261d\24\221\0_\7\30\350\60\16\1`\10\64\232\61F\62\1a\16\267\31\361\242\263\312"
  "\35\303\245\66\215\1b\14\226\31\61\204\302\212\210\247\13\0c\14v\31q(\42\242&\11\5\0d\12"
  "\226\31\61UN<I\12e\14v\31q(\42\322a(\245\0f\14\226\31\261(B\65\213P\33\0"
  "g\14\246\351pN<I\212\302\13\0h\13\226\31\61\204\302\212\210O\2i\13\246\31\261\204r\10Q"
  "O\6j\12\325\351\360\224i\372\315\2k\15\226\31\61\204J,\22\222D\211$l\11\226\31\61\210\372"
  "\311\0m\21w\31\61,\222\10%B\211P\42\224\10M\0n\11v\31\61*\42>\11o\11Cm"
  "qR$)\0p\14\246\351\60*\42\236.BE\0q\12\246\351pN<I\212\32r\13v\31\61"
  "D\24\233P#\0s\12v\31q\216R\252\360\2t\13\226\31q\204\62\213PW\2u\11v\31\61"
  "D|\222\24v\13v\31\61D<Ih\42\0w\21w\31\61d\224\10%B\211P\42\232$\22\0"
  "x\15v\31\61D$\11MF\21\221\4y\24\247\350pD\22\221D$\21ID\22\221\210*\24\321"
  "\0z\11v\31\61\214\62\35\15{\14\265\371\360D\62%E\65E\1|\7\302\353\60>\14}\15\265"
  "\372\60\204\62E%\65%\31\0~\12\70xqf\23\311l\2\0\0\0\4\377\377\0";


void onDedLine1Change(char* newValue) {
  line1 = (newValue);
}
DcsBios::StringBuffer<25> dedLine1Buffer(0x44fc, onDedLine1Change);

void onDedLine2Change(char* newValue) {
  line2 = (newValue);
}
DcsBios::StringBuffer<25> dedLine2Buffer(0x4516, onDedLine2Change);

void onDedLine3Change(char* newValue) {
  line3 = (newValue);
}
DcsBios::StringBuffer<25> dedLine3Buffer(0x4530, onDedLine3Change);

void onDedLine4Change(char* newValue) {
  line4 = (newValue);
}
DcsBios::StringBuffer<25> dedLine4Buffer(0x454a, onDedLine4Change);

void onDedLine5Change(char* newValue) {
  line5 = (newValue);
}
DcsBios::StringBuffer<25> dedLine5Buffer(0x4564, onDedLine5Change);

void setup() {
  DcsBios::setup();
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(DEDfont16px);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(32, 12, line1);
    u8g2.drawStr(32, 25, line2);
    u8g2.drawStr(32, 38, line3);
    u8g2.drawStr(32, 51, line4);
    u8g2.drawStr(32, 64, line5);
  } while ( u8g2.nextPage() );
  u8g2.updateDisplay();
  DcsBios::loop();
}

 

CPU i7-4790k/ zotac GTX1080/ ОЗУ 16Gb/ Philips 40" 3840x2160/ джойстик BRD-N(v. №4) + педали BRD-F2 restyling + WW2-DVik Throttle(MMJoy2)/ TrackIR5 pro/

https://cults3d.com/ru/polzovateli/abelnaitrod/tvoreniya

Link to comment
Share on other sites

42 minutes ago, fusion said:

Nice setup.  Where did you get the ICP panel?

Thank you, this is my own design, 3D printed and it is still under the construction. I will add some needle instruments and buttons and switches from my favorite planes. This is a real multirole fighter panel, when i get it ready. Here is a link for ICP panel https://www.simgears.com/simgears-products/f16-icp-replica/
 

https://www.simgears.com/simgears-products/f16-icp-replica/

Link to comment
Share on other sites

Hey, a bit off topic, but has anyone been trying to deal with inverted symbols in font?

Capture.JPG

This is mine display and it works like a charm, but I have a feeling that there is just no way to invert symbols with output from dcs bios, am I right?

 unnamed (6).jpg

Link to comment
Share on other sites

On 2/7/2022 at 3:34 PM, Krysnic said:
Try this code
//F-16 DED for DCS BIOS using 256x64 ER-OLED032-1G from BuyDisplay.com

#define DCSBIOS_IRQ_SERIAL

#include "DcsBios.h"
#include <Arduino.h>
#include <U8g2lib.h>
#include <U8glib.h>
#include <SPI.h>

U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);  // Enable U8G2_16BIT in u8g2.h
//U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 5, /* dc=*/ 3, /* reset=*/ 4);
char* line1;
char* line2;
char* line3;
char* line4;
char* line5;

const u8g_fntpgm_uint8_t DEDfont16px[1148] U8G_FONT_SECTION("DEDfont16px") =
  "_\0\3\3\4\4\4\5\5\10\16\0\376\12\376\12\377\1\212\3\1\4_ \5\0\10\61!\14\224\32"
  "q$\207\212H,\222\0\42\10\66y\61DL\2#\22\227\31q\224$\222\213\222D$\221\134\224$"
  "\22\0$\20\326\371\260\204\62\212\210\252\225$\241\11E\0%\24\270\10q\206\22\231D\22\232Hu\31"
  "E\324$\302\11\0&\21\227\31qf\22\221D\66\223JL\22\221h\42'\6\62{\61\14(\15\264"
  "\372\260$\42\211H\67\221L\0)\15\264\372\60d\42\231H\27\221D\4*\20\310\10\61~\60\205h"
  "s\300\214\24:<\20+\12V\71\261\204\42\223P\4,\10C\373\60,\24\0-\6\26Y\61\14."
  "\6#\33\61\14/\16\246\11\61\325\204\62\241L(\23\12\1\60\16\226\32q(\42JS\245B\222P"
  "\0\61\11\225\31\361D\207\230>\62\14\226\31q(\42\222P\246\243\1\63\17\226\31q(\42\222P\64"
  "%\221$\24\0\64\20\227\31q\244*\42\211H\242$\71J%\0\65\15\226\31\61\16A\305\252P&"
  "!\1\66\15\226\31\261fj\25\21'\11\5\0\67\15\226\31\61\214\62\241L(\23\252\1\70\20\226\31"
  "q(\42REB\221\224H\22\12\0\71\15\226\31q(\42N\222\232\332\10\0:\10s\33\61\354 "
  "\3;\12\223\373\60\354 \13\5\0<\11\226\31\61e\272\352\0=\7\66I\61\314\6>\11\226\31\61"
  "\244\272\351\10\77\16\226\31q(\42\222LQ\16\23\212\0@\17\230\30q,B&\213\204\42!\331\1"
  "\7A\14\226\31\261d\24\21\323a\304$B\14\226\31\61*\42\246\213\210\351\2C\15\226\31q(\42"
  "FM$\11\5\0D\14\226\31\61H\22%\276HH\0E\14\226\31\61\16A\305\212P\321\0F\14"
  "\226\31\61\16A\305\212P#\0G\14\226\31q(\42F\225\22IRH\13\226\31\61D\234\16#N"
  "\2I\11\224\32\61(\42}!J\13\226\31\61\365H\42I(\0K\15\226\31\61D,ZH\22\235"
  "H\2L\11\226\31\61\204\372\321\0M\20\227\31\61d\264J%B\211P\42\64\66\1N\15\227\31\61"
  "d\264\222\205b\252\261\11O\13\226\31q(\42~\222P\0P\14\226\31\61*\42\246\213P#\0Q"
  "\14\266\371p(\42~\222\20\245\2R\14\226\31\61*\42\246\213&&\1S\14\226\31q(\42\252V"
  "\222\204\2T\11\226\31\61LB\375\4U\12\226\31\61D\374IB\1V\13\226\31\61D\374$\241\211"
  "\0W\21\227\31\61d\134\42\224\10%\242I\42\222H\0X\17\226\31\61D$\211$&\224E\224\230"
  "\4Y\14\226\31\61D\234$\64\241&\0Z\12\226\31\61\214j:\12\15[\11\304\352\60L\372'\2"
  "\134\27\230\30\61d\22ID%\42\71L\42*\21\221D&\221ID\0]\11\304\352\60H\372'\3"
  "^\11\66\231\261d\24\221\0_\7\30\350\60\16\1`\10\64\232\61F\62\1a\16\267\31\361\242\263\312"
  "\35\303\245\66\215\1b\14\226\31\61\204\302\212\210\247\13\0c\14v\31q(\42\242&\11\5\0d\12"
  "\226\31\61UN<I\12e\14v\31q(\42\322a(\245\0f\14\226\31\261(B\65\213P\33\0"
  "g\14\246\351pN<I\212\302\13\0h\13\226\31\61\204\302\212\210O\2i\13\246\31\261\204r\10Q"
  "O\6j\12\325\351\360\224i\372\315\2k\15\226\31\61\204J,\22\222D\211$l\11\226\31\61\210\372"
  "\311\0m\21w\31\61,\222\10%B\211P\42\224\10M\0n\11v\31\61*\42>\11o\11Cm"
  "qR$)\0p\14\246\351\60*\42\236.BE\0q\12\246\351pN<I\212\32r\13v\31\61"
  "D\24\233P#\0s\12v\31q\216R\252\360\2t\13\226\31q\204\62\213PW\2u\11v\31\61"
  "D|\222\24v\13v\31\61D<Ih\42\0w\21w\31\61d\224\10%B\211P\42\232$\22\0"
  "x\15v\31\61D$\11MF\21\221\4y\24\247\350pD\22\221D$\21ID\22\221\210*\24\321"
  "\0z\11v\31\61\214\62\35\15{\14\265\371\360D\62%E\65E\1|\7\302\353\60>\14}\15\265"
  "\372\60\204\62E%\65%\31\0~\12\70xqf\23\311l\2\0\0\0\4\377\377\0";


void onDedLine1Change(char* newValue) {
  line1 = (newValue);
}
DcsBios::StringBuffer<25> dedLine1Buffer(0x44fc, onDedLine1Change);

void onDedLine2Change(char* newValue) {
  line2 = (newValue);
}
DcsBios::StringBuffer<25> dedLine2Buffer(0x4516, onDedLine2Change);

void onDedLine3Change(char* newValue) {
  line3 = (newValue);
}
DcsBios::StringBuffer<25> dedLine3Buffer(0x4530, onDedLine3Change);

void onDedLine4Change(char* newValue) {
  line4 = (newValue);
}
DcsBios::StringBuffer<25> dedLine4Buffer(0x454a, onDedLine4Change);

void onDedLine5Change(char* newValue) {
  line5 = (newValue);
}
DcsBios::StringBuffer<25> dedLine5Buffer(0x4564, onDedLine5Change);

void setup() {
  DcsBios::setup();
  u8g2.begin();
  u8g2.clearBuffer();
  u8g2.setFont(DEDfont16px);
}

void loop() {
  u8g2.firstPage();
  do {
    u8g2.drawStr(32, 12, line1);
    u8g2.drawStr(32, 25, line2);
    u8g2.drawStr(32, 38, line3);
    u8g2.drawStr(32, 51, line4);
    u8g2.drawStr(32, 64, line5);
  } while ( u8g2.nextPage() );
  u8g2.updateDisplay();
  DcsBios::loop();
}

 

 

First of all, thanks to you guys who made this possilble!!

I had the same problem with the missing text on the left side. This new code did work. The complete text on the DED is visible, but now it is flipped upside down.

Probably an easy way to correct this, but i have no clue. 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...