Jump to content

CR77

Members
  • Posts

    7
  • Joined

  • Last visited

Everything posted by CR77

  1. Hello everyone! I tested with Arduino NANO, Arduino MEGA and the latest Esp32 devkit V1. The results are the same. Or the display has some problem, even though it works with the "Hello World" test. null Or the DCS Bios I use has some wrong configuration. About the DCS-Bios, do you use a "BORT" interface? Regards, CR77
  2. I just gave up on NANO, I'll keep trying with MEGA. I'll go over everything again to see if I missed anything. CR77
  3. I'm using the Arduino mega 2560 r3 16u2. I also have the Arduino Nano V3, which I was testing previously, but I gave up for now. Regards, CR77
  4. This one is also giving an error. It passes the verification with this: U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 53, /* dc=*/ 6, /* reset=*/ 8); But this time the display is completely off. I'm using this code: //F-16 DED for DCS BIOS using 256x64 ER-OLED032-1G from BuyDisplay.com //Final code by JohnnyChicago,a whole lotta font cred to Fusion's wife, and Wiggles5289 on the DCS Forums // adapted by Vinc_Vega to work exclusively with the u8g2 library, new font with inverted chars added, // inverted chars are original ASCII code byte + 100, interprete steering bits (bytes 26 - 29 of each DED line) and plot inverted chars, // unfortunately at the time not all inverted chars are covered by the steering bits (mostly the inverted asterics (*) is missing and therefore is displayed always inveted) #define DCSBIOS_IRQ_SERIAL // for ordinary Arduino chipsets //#define DCSBIOS_DEFAULT_SERIAL // for ESP32 and other chipsets //#define DCSBIOS_DISABLE_SERVO #include "DcsBios.h" #include <SPI.h> #include <U8g2lib.h> /* for the MEGA 2560 use the following pinout: MOSI: 51 (SDA) hardware SPI MISO: 50 hardware SPI SCK: 52 (SCL) hardware SPI SS/CS: 53 hardware SPI DC = 6 (may be changed to any digital pin) RST = 8 (may be changed to any digital pin) */ //U8G2_SH1122_256X64_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 53, /* dc=*/ 6, /* reset=*/ 8); // Enable U8G2_16BIT in u8g2.h //U8G2_SSD1322_NHD_256X64_F_4W_HW_SPI(U8G2_R0, /* cs=*/ 53, /* dc=*/ 6, /* reset=*/ 8); U8G2_SSD1322_NHD_256X64_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 53, /* dc=*/ 6, /* reset=*/ 8); // ---------------------------------------------------------------------------------------- // Declaration of the variables // ---------------------------------------------------------------------------------------- String(line1); String(line2); String(line3); String(line4); String(line5); // create a string object for each line to manipulate the content /* // DED lines each have 25 chars plus max 4 additional steering bytes (26 to 29), see below example // "12345678901234567890123456789" String(line1) = " LIST "; //(25) String(line2) = "1DEST 2BNGO 3VIP RINTG A"; //(28) String(line3) = "4NAV 5MAN 6INS EDLNK A"; //(28) String(line4) = "7CMDS 8MODE 9VRP 0MISC A"; //(28) String(line5) = " "; //(25) */ const byte x = 28; // cursor x is always 28 (first char of a line to print) for a 256x64 display const byte y = 13; // cursor y is according to the line number: y = (line number * y) -1) -> first line print at y = 12 // ---------------------------------------------------------------------------------------- // costume F-16 DED font including inversed chars for the u8g2 library // ---------------------------------------------------------------------------------------- /* Fontname: DEDFontNewInv_01 Copyright: Vinc_Vega Glyphs: 142/195 BBX Build Mode: 0 */ const uint8_t u8g2_font_DEDFontNewInv[1755] U8G2_FONT_SECTION("u8g2_font_DEDFontNewInv") = "\216\0\3\4\4\4\3\5\5\10\14\0\377\11\376\11\0\1h\2\315\6\276 \5\0\334\30!\7\222\207" "\30L\4\42\14E\255\30\42$\42AB!\0#\17\226\205\70A\261\230\4\305\213IP,\0$\5" "\0\334\30%\17\226\205\30c!A$br!\12\11\33&\20\226\205XC%\242b##E!&" "#\1'\10B\256\30$\42\0(\12\224\206X\42Er\33\22)\14\224\206\30BcB\62\225\10\1" "*\20\270|\30\17$%Q\310\252\221D)y(+\13f\215X\202BL\202B\0,\10B\207\30" "$\42\0-\6&\235\30\14.\6\42\207\30\4/\12v\215\270\201br\14\5\60\15\226\205Xb$" "Bt\22!\23\2\61\12\224\206XA\42CrA\62\14\226\205\70$H\202\42*\202\14\63\15\226\205" "\30\214bb\243D($\0\64\14\226\205\30\42\362\13\233\240\24\0\65\14\226\205\30\216%\206D($" "\0\66\15\226\205\70$\210%HD($\0\67\13\226\205\30\214br\224\10\0\70\16\226\205\70$H" "($BD($\0\71\16\226\205\70$HD(\205\42%$\0:\7b\227\30\204\4;\11\202\207" "\30\204$\42\0<\11\226\205\230br\225\3=\10f\215\30\354\240\14>\12\226\205\30\242r\223#\0" "\77\17\226\205\70$HbCc\342`\202B\0@\20\226\205\70$g\202%#!#!($\0A" "\15\226\205Xb$HD\17AD\2B\15\226\205\30%H'%BD-\0C\14\226\205\70$H" "\204\62\241\220\0D\13\226\205\30E%\362_T\0E\13\226\205\30\216DD\202\202\14F\13\226\205\30" "\216DD\202\62\2G\14\226\205\70$H\204\42\225P\12H\13\226\205\30B\224\36\202h\22I\11\226" "\205\30L\202rbJ\13\226\205\30L\202r\42\32\3K\17\226\205\30B$(DcD%\42E\2" "L\11\226\205\30\202\362\221\1M\13\226\205\30\201C\17At\22N\15\226\205\30aD%%$\225\250" "\5O\13\226\205\70$HtB!\1P\14\226\205\30%HD-\202\22\1Q\13\226\205\70$H\264" " \221\12R\15\226\205\30%HD'%\62\21\11S\15\226\205\70$\210E\205\202($\0T\12\226" "\205\30L\202\362\11\0U\13\226\205\30B\364\11\205\4\0V\16\226\205\30Bt\22\11\12\242&\4\0" "W\13\226\205\30Btz\10\32\14X\21\226\205\30BD\42AAdbDQ\204\210\4Y\16\226\205" "\30BD\42AAd\202r\2Z\11\226\205\30\214brd[\10\224\206\30JrB\134\7\222\207\30" "\17\3]\10\224\206\30HrR^\14U\246XaC!!\42c\1_\6\26\205\30\6`\10B\257" "\30$\42\0a\15\226\205Xb$\346\20M\310\204\0o\7\63\265\30$\4{\14\226\205X\202\362d" "B&\4\0|\7\222\207\30\17\3}\14\226\205Xb$F\202\362\4\0~\13F\225\70b$\42d" "\42\0\204\10\270|\30\377\320\0\205\13\270|\30K\366\344d\264\0\206\20\270|\30IACA$\42" "#\42\17\37\14\207\26\270|\30*\42$\42\303#\42$\42$\42\303#\42$\42\12\210\5\0\334\30" "\211\22\270|\30i%!\322\202\352\24&\42\22R\226\0\212\23\270|\30k\244CGe!BaB" "\42\303c!\11\213\14\270|\30JF'&\17\37\20\214\14\270|\30LeDv:\63R\215\14\270" "|\30JfGv\42+b\216\20\270|\30\17$%Q\310\252\221D)y(\217\16\270|\30\17L" "F\304\302DF\17\4\220\13\270|\30\77\30\31\235\230\60\221\13\270|\30\37\226\205\37\36\6\222\11\270" "|\30\177\70\62Z\223\14\270|\30\17'Fu\62y\70\224\15\270|\30K\205C\362O\203E\13\225" "\15\270|\30,FeF\66\25\22*\226\20\270|\30\212\303BBF\243\242C\306\302\11\227\15\270|" "\30\311\302F\325\216d\36T\230\22\270|\30IACACACA\303\302E\226\24\231\15\270|\30" "\311\222L\207\215d\36T\232\16\270|\30\212\303B\246\303Br\36T\233\14\270|\30\311\302Fu\262" "\324\0\234\17\270|\30\212\303B\222\7\207\344<\250\0\235\16\270|\30\212\303Br\36\65\32\35T\236" "\15\270|\30\17DF\17GF\17\14\237\16\270|\30\17DF\17GF'&\14\240\12\270|\30M" "u\272S\2\241\15\270|\30\17\312\302\17\303\302\17\2\242\12\270|\30Iw\252S\3\243\17\270|\30" "\212\303BBedENF\13\244\23\270|\30\212\303\42CFbA\42\221D\42\11\17*\245\16\270" "|\30K\205\303Br\226$S\2\246\16\270|\30\251\303BR'\311YT\1\247\16\270|\30\212\303" "B\222l\222<\250\0\250\24\270|\30\251\244CACACACACA\243\242\12\251\14\270|\30" "\311\222\14)Y\26N\252\14\270|\30\311\222\14)\331\324\0\253\21\270|\30\212\303B\222\214\302\204\302" "\204$\217&\254\14\270|\30I\362Y\222\374\224\0\255\14\270|\30\311\302Dv\42\26N\256\14\270|" "\30\311\302Dv\42$c\257\22\270|\30I\222\302D\7\311\12I\207\302\204\204\22\260\12\270|\30I" "\366\263p\2\261\15\270|\30)$B\222%\311\77%\262\24\270|\30)C\262\5\211\5\11\205\11\205" "\11\311i$\1\263\14\270|\30\212\303B\362\237\7\25\264\16\270|\30\251\303Br\26\35\262\324\0\265" "\17\270|\30\212\303B\362)L\224\360(\1\266\17\270|\30\251\303Br\235\24\64$S\2\267\17\270" "|\30\212\303B\246\244FF\302\203\12\270\13\270|\30\311\302D\366i\1\271\13\270|\30I\362\377y" "P\1\272\16\270|\30I\362O#\42\204\204E\13\273\14\270|\30I\362\237%I!I\274\22\270|" "\30I\62\215\210\20\26\25\222\210\14\311\224\0\275\16\270|\30I\62\215\210\20\26\331i\1\276\14\270|" "\30\311\302Fu\62\26N\277\13\270|\30\212\224\354\221P\1\300\11\270|\30K\366\247\5\301\14\270|" "\30\212\204Fv\42$T\302\20\270|\30,f%!DA##\17\17\13\303\10\270|\30\177hN" "\304\14\270|\30KF'&\17\37\16\305\15\270|\30K\205\303\17\313\203E\13\323\13\270|\30i%" "!e\17\77\337\14\270|\30K\366D<X\264\0\340\11\270|\30K\366\247\5\341\14\270|\30K\205" "\303D\366\264\0\342\16\270|\30\37\210\12CD\2\213\36\26\0\0\0\4\377\377\0"; // ---------------------------------------------------------------------------------------- // DCS.BIOS stuff here // ---------------------------------------------------------------------------------------- void onDedLine1Change(char* newValue) { line1 = newValue; } DcsBios::StringBuffer<29> dedLine1Buffer(0x450a, onDedLine1Change); void onDedLine2Change(char* newValue) { line2 = newValue; } DcsBios::StringBuffer<29> dedLine2Buffer(0x4528, onDedLine2Change); void onDedLine3Change(char* newValue) { line3 = newValue; } DcsBios::StringBuffer<29> dedLine3Buffer(0x4546, onDedLine3Change); void onDedLine4Change(char* newValue) { line4 = newValue; } DcsBios::StringBuffer<29> dedLine4Buffer(0x4564, onDedLine4Change); void onDedLine5Change(char* newValue) { line5 = newValue; } DcsBios::StringBuffer<29> dedLine5Buffer(0x4582, onDedLine5Change); // ---------------------------------------------------------------------------------------- // SETUP Section // ---------------------------------------------------------------------------------------- void setup() { DcsBios::setup(); delay(100); // time to setup the display u8g2.begin(); u8g2.clear(); u8g2.setFont(u8g2_font_DEDFontNewInv); // u8g2.setContrast(255); // brightness from 0 to 255 } // ---------------------------------------------------------------------------------------- // LOOP Section - Try to keep empty !!! // ---------------------------------------------------------------------------------------- void loop() { DcsBios::loop(); // not all lines are refreshed at the same time, so it sometimes results in missing lines while DED manipulation // therefore, the page buffer method is used to print all lines at once; // if using the framebuffer, use -> clearBuffer() to only clear the buffer, clear() clears both buffer and screen which looks blinky u8g2.firstPage(); do { u8g2.setCursor(x, y-1); u8g2.print(invertChars(line1)); u8g2.setCursor(x, (2 * y) -1); u8g2.print(invertChars(line2)); u8g2.setCursor(x, (3 * y) -1); u8g2.print(invertChars(line3)); u8g2.setCursor(x, (4 * y) -1); u8g2.print(invertChars(line4)); u8g2.setCursor(x, (5 * y) -1); u8g2.print(invertChars(line5)); } while (u8g2.nextPage()); u8g2.updateDisplay(); } // ---------------------------------------------------------------------------------------- // Supporting functions // ---------------------------------------------------------------------------------------- String invertChars(String lineX) { // create a function, applied on each DED line and returning the manipulated string if (lineX.length() > 25) { // look for steering bits only if a line has more than 25 chars for (int j = 0; j < 4; j++) { // go through each of the 4 bytes for (int i = 0; i < 8; i++) { // go through each of the 8 bits per byte if (bitRead(lineX[25 + j], i) == 1) { // start at char number 26 [string index is 25 !!!]; if steering bit equals 1 we found a to be inverted char int inverted = byte(lineX.charAt(j * 8 + i)); // read the byte value of the char from the string object into a local variable lineX.setCharAt(j * 8 + i, inverted + 100); // replace the char by it's inverted version (byte of the char + 100 in the manipulated font) } } } lineX.remove(25, 4); // remove the steering bytes from the string (chars 26 to 29) ... } // ... line is cut to 25 chars, so it passes the next loop without further manipulation (if > 25) return lineX; // function returns the manipulated line } Regards, CR77
  5. I tried to make the adaptations you suggested, but I got the error below. PS. I'm using the code that Vinc_Vega adapted for you.
  6. Good evening. I'm glad you achieved it! I tested an Arduino MEGA here following what you did and the result is still the same as what I did on the Nano. Fewer housings as in my previous post. Could you describe the connections you made on the Mega and the Arduino code you used? Thank you for your kindness.
  7. Hello everyone. This is my first post on the forum. I'm having some difficulty configuring my SSD1322 Display with the Arduino NANO V3. https://pt.aliexpress.com/item/1005007129367204.html?spm=a2g0o.productlist.main.5.547ee817EWOm5l&algo_pvid=fb87fba0-c6db-4f9c-9e66-e832426348ae&algo_exp_id=fb87fba0-c6db-4f9c-9e66-e832426348ae-2&pdp_npi=4%40dis!BRL!82.08!72.20!!!12.88!11.33!%402101e07217333237509542405e1146!12000043381748551!sea!BR!4160920486!X&curPageLogUid=wnhq6UaiyoEq&utparam-url=scene%3Asearch|query_from%3A I've read and reread all the comments in this topic and the most I could manage were the few characters shown in the figure below. Yes, re-solder a small jumper from “R6” to “R5”. I'm using the code mentioned above and the pinout is this. OLED ARDUINO 1 GND 2 3.3 V 4 D13 5 D11 14 D9 15 D8 16 D10 I think I've exhausted everything I could do on my own. Could you help me? Thank you in advance for your collaboration. Hello everyone. This is my first post on the forum. I'm having some difficulty configuring my SSD1322 Display with the Arduino NANO V3. https://pt.aliexpress.com/item/1005007129367204.html?spm=a2g0o.productlist.main.5.547ee817EWOm5l&algo_pvid=fb87fba0-c6db-4f9c-9e66-e832426348ae&algo_exp_id=fb87fba0-c6db-4f9c-9e66-e832426348ae-2&pdp_npi=4%40dis!BRL!82.08!72.20!!!12.88!11.33!%402101e07217333237509542405e1146!12000043381748551!sea!BR!4160920486!X&curPageLogUid=wnhq6UaiyoEq&utparam-url=scene%3Asearch|query_from%3A I've read and reread all the comments in this topic and the most I could manage were the few characters shown in the figure below. Yes, re-solder a small jumper from “R6” to “R5”. I'm using the code mentioned above and the pinout is this. OLED ARDUINO 1 GND 2 3.3 V 4 D13 5 D11 14 D9 15 D8 16 D10 I think I've exhausted everything I could do on my own. Could you help me? Thank you in advance for your collaboration.
×
×
  • Create New...