Digole
Digital Solutions
iDigole Buyer ProtectioniDigole Buyer
Protection
My shopping cart
0 Items:
Secure Checkout
Top Rated Plus
Visit Our Live Auctions
99.9% Customer's Satisfaction
 
Forum : Digole Serial Display :

 Search Forum.. 
 Creat New Topic   Reply 

New Arduino lib & programmer manual released(2017)

The beta version of programmer mannual including new functions in firmware version V3.3 and Arduino lib can be downloaded here:

Programmer Manual

New Arduino Lib(Jan 2017)

If you found any bugs in the new version, please report it here,

Old Arduino Lib(Dec 2015)

Immigrate software to V3.3 of firmware

If you already developed the software before for our display module with older firmware version than V3.3, some modification need to be done in order to use the newest module:

1) value 0, 13 and 15 can be used to terminate the string in “TT” command, but in V3.3, only value of 0 used for that, value 13 used to move cursor to next line, and value 15 used to move cursor to the begin of line.

2) set background color command (BGC) changed. A byte of background color should follow to “BGC” in new version, and not affect the foreground color, but in old version, “BGC” only copy the color from foreground to background.
eg.: set a red background: “BGC\xE0” in new version, “SC\xE0BGC” in older version, sample code
void setBgColor(uint8_t color) //set current color as background

    {      

#ifdef V33

        write("BGC");

        write(color);

#else

        write("SC");

        write(color);

        write("BGC");

#endif

    }

3) the sequence of 2 byte for font’s length when downloading the user font is MSB, LSB in new version, but it was LSB, MSB in older version.
Sample code:
void downloadUserFont(int lon, const unsigned char *data, uint8_t font_sect) {

        uint8_t c;

        unsigned char b;

        write("SUF");

        write(font_sect);

#if defined(V33)

        write((unsigned char) (lon / 256));

        write((unsigned char) (lon % 256));

#else

        write((unsigned char) (lon % 256));

        write((unsigned char) (lon / 256));

#endif

        b = 0;

        for (int j = 0; j < lon; j++) {

            c = pgm_read_byte_near(data + j);

            write(c);

            if ((++b) == 64) {

                b = 0, delay(40); //delay 40ms

            }

        }

    }

4) welcome screen and commands set, you only need add an extra value of 255 to indicate the end of data in new version, but in older version, you need put the data length at the beginning of data.
welcome screen changed to commands set format in V3.3 on monochrome screen too, if your welcome screen is bitmap, please use our online tool to convert it to commands set:
http://www.digole.com/tools/Mono_welcome_to_Commands_set.php

5) now all multi-bytes of value which indicate the length, address, position changed to MSB, LSB format, the user will not be confused any more

6) The SPI mode switched to mode 2 by accident in version V3.3, if you developed software for module older than V3.1 and use hardware SPI, you probably need to change the SPI mode to make the code work with V3.3, use SPI mode 2 in all microcontroller (For "Microchip PIC" / "ARM-based" microcontrollers,(CPOL/CKP)=1,(CKE/NCPHA)=1, for other microcontrollers, CPOL=1,CPHA=0. SCLK keep high at idle). We will correct this bug in V3.4, and add "SPIMD" command to let user specify the SPI mode from 0 to 3.

 256 color code(Hex Code)

 00  01  02  03  04  05  06  07  08  09  0A  0B  0C  0D  0E  0F  10  11  12  13  14  15  16  17  18  19  1A  1B  1C  1D  1E  1F
 20  21  22  23  24  25  26  27  28  29  2A  2B  2C  2D  2E  2F  30  31  32  33  34  35  36  37  38  39  3A  3B  3C  3D  3E  3F
 40  41  42  43  44  45  46  47  48  49  4A  4B  4C  4D  4E  4F  50  51  52  53  54  55  56  57  58  59  5A  5B  5C  5D  5E  5F
 60  61  62  63  64  65  66  67  68  69  6A  6B  6C  6D  6E  6F  70  71  72  73  74  75  76  77  78  79  7A  7B  7C  7D  7E  7F
 80  81  82  83  84  85  86  87  88  89  8A  8B  8C  8D  8E  8F  90  91  92  93  94  95  96  97  98  99  9A  9B  9C  9D  9E  9F
 A0  A1  A2  A3  A4  A5  A6  A7  A8  A9  AA  AB  AC  AD  AE  AF  B0  B1  B2  B3  B4  B5  B6  B7  B8  B9  BA  BB  BC  BD  BE  BF
 C0  C1  C2  C3  C4  C5  C6  C7  C8  C9  CA  CB  CC  CD  CE  CF  D0  D1  D2  D3  D4  D5  D6  D7  D8  D9  DA  DB  DC  DD  DE  DF
 E0  E1  E2  E3  E4  E5  E6  E7  E8  E9  EA  EB  EC  ED  EE  EF  F0  F1  F2  F3  F4  F5  F6  F7  F8  F9  FA  FB  FC  FD  FE  FF

RE:New Arduino lib & programmer manual released(2016)

With Arduino Pro Mini 16Mhz 5V  IDE1.6.7 and 2.8in display SPI on pins 8,9,10

Not one example works all from this library

ColorGraphicLCDAdapaterDemo

GraphicLCDAdapaterDemo

Test_All_Function

Test_Draw_Window

No change ifI try IDE 1.6.0

The following does not work:

#include <Wire.h>
#define _Digole_Serial_SPI_
#include <DigoleSerial.h>
DigoleSerialDisp mydisp( 8,9,10 );

int last_ticks=0;
unsigned long last_sample_time=0;
unsigned long t_distance;
float l_speed=0;
uint8_t g1_x,g1_y,g2_x,g2_y,g3_x,g3_y;
uint8_t g2t,g3t;
uint8_t speed_tmp;
int graph_i=0;

void setup() {
    delay(3000);
    mydisp.begin();
    delay(2000);
    mydisp.clearScreen(); //CLear screen
    mydisp.setPrintPos(0, 7, _TEXT_);
    mydisp.print("Volts=12");
    mydisp.setPrintPos(0, 8, _TEXT_);
    mydisp.print("Distance=0");
    mydisp.setPrintPos(0, 9, _TEXT_);
    mydisp.print("Rcdr ");
    mydisp.setMode('C'); //set graphic Drawing Mode to COPY
    mydisp.setColor(0x1F);
    mydisp.drawHLine(0, 30, 159); //draw horizontal Line
    mydisp.setColor(0xE0);
    mydisp.drawHLine(0, 60, 159); //draw horizontal Line
    mydisp.setColor(0x0F);
    mydisp.drawHLine(0, 90, 159); //draw horizontal Line
}
void loop() {
   delay(10);
}

Graphics in particular seems broken.

Please help.

RE:New Arduino lib & programmer manual released(2016)

Here is a follow up with the previous post:

Serial TX/RX works just fine, with examples and my own code.

SPI mode is broken.

 

Odd behavior of println() functions

Hi,

I observed odd behavior when using the println() functions of the Arduino library "DigoleSerial". Reason for this seems to be multiple insert of end-of-line commands. I have fixed the occurences of println() functions in "DigoleSerial.h" as following:

    void println(const __FlashStringHelper *v) {
        preprint();
        Print::println(v);
        write((uint8_t) 0);
    }

    void println(const String &v) {
        preprint();
        Print::println(v);
        write((uint8_t) 0);
    }

    void println(const char v[]) {
        preprint();
        Print::println(v);
        write((uint8_t) 0);
    }

    void println(char v) {
        preprint();
        Print::println(v);
        write((uint8_t) 0);
    }

    void println(unsigned char v, int base = DEC) {
        preprint();
        Print::println(v, base);
        write((uint8_t) 0);
    }

    void println(int v, int base = DEC) {
        preprint();
        Print::println(v, base);
        write((uint8_t) 0);
    }

    void println(unsigned int v, int base = DEC) {
        preprint();
        Print::println(v, base);
        write((uint8_t) 0);
    }

    void println(long v, int base = DEC) {
        preprint();
        Print::println(v, base);
        write((uint8_t) 0);
    }

    void println(unsigned long v, int base = DEC) {
        preprint();
        Print::println(v, base);
        write((uint8_t) 0);
    }

    void println(double v, int base = 2) {
        preprint();
        Print::println(v, base);
        write((uint8_t) 0);
    }

    void println(const Printable& v) {
        preprint();
        Print::println(v);
        write((uint8_t) 0);
    }

    void println(void) {
        write((uint8_t) 0);
        writeStr("TRT");
    }

For me it works now, as I expecting it to do. Perhaps others have had also similar problems.

RE:New Arduino lib & programmer manual released(2017)

Problem displaying the startup screen after using "UploadStartScreenFonts" from the library.

The program works very well for loading fonts into the display.  But as you know the program also reloads the startscreen.

I have added "mydisp.displayStartScreen(1);" and "mydisp.displayConfig(1);" to the end of the program.

When the display is re-powered it shows the config information.  But doesn't show the startscreen.

Today I upgraded to firmware v4.2B successfully and both the config and startscreen displayed correctly.

But once I ran "UploadStartScreenFonts" to reload my fonts into the display the startscreen no longer displays.

Could you take a look at UploadStartScreenFonts and see if there is a problem.  I want to start experimenting with the start screen, but I'm stuck now.

Thanks

RE:New Arduino lib & programmer manual released(2017)

Hello and best regards to EEK! :)) I have maybe the same issue after update the Firmware (4.2b) and the startscreen/welcomescreen!? http://www.digole.com/forum.php?topicID=930 But for now i have no solution to fix it! If i run the code for Change the start Screen Picture, the LCD do nothing! No other behavior like wait for uploed something or Change something. It seems there is no reaction about the runing program ?! Hope somebody have the solution.... THX Marc

RE:New Arduino lib & programmer manual released(2017)

Please be aware:

1) startup screen can use all 16K user space

2) the first user font start from address: 2048

So, if your data length of startup screen >2048 & <2048+3584, then the data will be over wrote by 1st user font, in this condition, you need give up the some user fonts space to startup screen, here is the user space assignment:

2048-Startup screen, 3584, 3584,3584,3584 for each user fonts: 200,201,202,203

Copyright Digole Digital Solutions, 2008-2017. All rights reserved.
Powered by Victor Sun