Announcement

Collapse
No announcement yet.

Potential buyer, some questions before starting & errors while compiling

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Potential buyer, some questions before starting & errors while compiling

    * Update *
    I've come to discovery that the "genie" version has only one small bug, compared to the hundreds/thousands of the other style programming (found when selecting "arduino compatible boards"--> Extended... (library: ". When directly selecting the GEN4-ULCD-70D in the menu, it's possible to go to the genie version, which has it's own library "ViSi-Genie-Arduino-Library-master" which does appears to be good!.
    https://4dsystems.com.au/blog/4d-an-00017/

    Maybe that other one (the one with all the bugs & installed when you install the program) is some old feature not yet removed?.
    Funny enough is that the string to *char conversion (invalid as per c++) is present in all versions.

    However I'll have a try with these displays, as I see there are lots of updates and debugging on the background so support seems good and software has a pleasant user interface.

    Ps. the questions: 1/2/3/4 remains unanswerd
    ***

    Hi,

    Looking for programmable displays for a project of mine and maybe future projects and found 4D systems has some good potential.
    For now looking to purchase the SKGEN470D along with some other sizes to try out.

    However i have some questions I would like to have to be answered on beforehand, thank you in advance.

    1- Has the display itself a controller, or has all commands (as per "C" style script in workshop 4) to be loaded onto a separate controller and only the image/video files etc. to the SD card of the display?.

    2- Can an FTDI to usb adaptor be used for programming using the rx/tx/reset (dtr) pins on the adaptor card?.
    (Ps. 3.3v serial or 5v. serial required?).
    OR is the special adaptor from the site required and different from an ftdi adaptor.

    3- Is it possible to program the display through a 32bit-mcu (through serial) which is connected to a wifi-card, which is emulated on my pc.
    as a com-port. the mcu will forward all data, wifi is special and sets the reset pin for arduino style programming.

    4- I would like to use one MCU to control up to ~5 4D displays, is the library up to the task? or do i have to make it custom?

    5- When in workshop 4 (clean new project) i get about 30/40 errors when compiling?, it seemes it collides with the standard libraries used for the AVR's?.
    Example of one is stated below:
    "

    In file included from C:\Program Files (x86)\Arduino\libraries\Diablo_Serial_4DLib/Diablo_Serial_4DLib.h:15:0,
    from C:\Users\.....\Desktop\DASH\4D Center display\Test\NoName3\NoName3.ino:13:
    C:\Program Files (x86)\Arduino\libraries\Diablo_Serial_4DLib/Diablo_Const4D.h:151:0: warning: "PA3" redefined
    #define PA3 4 // pin 7
    ^
    In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iom2560.h:38:0,
    from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:174,
    from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
    from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
    from sketch\NoName3.ino.cpp:1:
    c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iomxx0_1.h:84:0: note: this is the location of the previous definition
    #define PA3 3
    ^

    "
    This is the same for:
    PA0
    PA1
    PA2
    PA3
    PA4
    PA5
    PA6
    PA7
    TIMER2
    BIN
    HEX
    PINK
    BIN
    DEC

    All the #defines mentioned above also have different values the arduino core-files?.
    Do not wish to alter any of the core files.

    Thank you in advance!

    Looking forward to your reply.

    Kind regards,
    Paul
    Last edited by PSCD; 1 week ago.

  • #2
    hmm... Even with #ifdef --> #undef, as a work around it appears there a lots and lots of bugs in the library when compiling from the workshop 4. String to char conversions, invalid parameters. etc. I checked and indeed were wrong. All elements I add to the screen with their codes, i get new errors... Has this ever been debugged properly? Such a shame it looks like a great tool / hardware to use though. Hopefully there is a solution or I will need to look for alternatives.

    Comment


    • #3
      For ref. This is the example project file delivered with the library. (with still the #ifdef/ #undef errors fixed temporarly as per previous message).


      Errors from compiler (most of them are easy to fix):
      "
      In file included from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Serial_4DLib.h:21:0,

      from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:75:

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib/Goldelox_Const4D.h:614:0: warning: "PINK" redefined

      #define PINK 0xFE19

      ^

      In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iom2560.h:38:0,

      from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:174,

      from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,

      from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

      from sketch\GoldeloxBigDemo.ino.cpp:1:

      c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iomxx0_1.h:1149:0: note: this is the location of the previous definition

      # define PINK _SFR_MEM8(0x106)

      ^

      In file included from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:76:0:

      sketch\GoldeloxBigDemo.h:5:57: warning: narrowing conversion of '38400l' from 'long int' to 'int' inside { } [-Wnarrowing]

      128000, 256000, 300000, 375000, 500000, 600000} ;

      ^

      sketch\GoldeloxBigDemo.h:5:57: warning: narrowing conversion of '56000l' from 'long int' to 'int' inside { } [-Wnarrowing]
      ((( Error about 20 times for all bauds, not included for exceeding max. message length)))

      In file included from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:76:0:

      sketch\GoldeloxBigDemo.h:86:63: warning: narrowing conversion of '255' from 'int' to 'char' inside { } [-Wnarrowing]

      0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} ;

      ^

      sketch\GoldeloxBigDemo.h:86:63: warning: narrowing conversion of '255' from 'int' to 'char' inside { } [-Wnarrowing]
      ((( Above error mentioned nearly >500 times all slightly different, not included due to max message length)))

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void SetThisBaudrate(int)':

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:117:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_115200 : br = 115200 ;

      ^

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:119:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_128000 : br = 133928 ; // actual rate is not 128000 ;

      ^

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:121:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_256000 : br = 281250 ; // actual rate is not 256000 ;

      ^

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:123:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_300000 : br = 312500 ; // actual rate is not 300000 ;

      ^

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:125:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_375000 : br = 401785 ; // actual rate is not 375000 ;

      ^

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:127:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_500000 : br = 562500 ; // actual rate is not 500000 ;

      ^

      C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:129:27: warning: overflow in implicit constant conversion [-Woverflow]

      case BAUD_600000 : br = 703125 ; // actual rate is not 600000 ;

      ^

      Comment


      • #4
        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'int trymount()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:156:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Pls insert uSD crd\n") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:160:25: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr(".") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:164:24: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("\n") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void gfx_Part1()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:178:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("gfx_A - gfx_L") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:188:39: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("1234567890asdfghjkl") ; // this is clipped

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void gfx_Part2()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:228:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("gfx_M - gfx_O") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:251:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("gfx_P - gfx_P") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:289:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("gfx_P - gfx_T") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void Joystick_Tests()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:327:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Joystick Tests\nPress Fire to\nExit") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:354:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        case RELEASED : Display.putstr("Released") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:356:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        case UP : Display.putstr(" Up ") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:358:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        case LEFT : Display.putstr(" Left ") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:360:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        case DOWN : Display.putstr(" Down ") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:362:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        case RIGHT : Display.putstr(" Right ") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:364:50: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        case FIRE : Display.putstr(" Fire ") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void text_Tests()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:377:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Text Tests") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:386:31: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Hello There") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:397:31: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Hello There") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void Media_Tests()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:420:31: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Media Tests") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino: In function 'void loop()':

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:524:28: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Model:\n") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:566:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Hi at 19200\n") ;

        ^

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Examples\GoldeloxBigDemo\GoldeloxBigDemo.ino:568:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]

        Display.putstr("Back to 9600\n") ;

        ^

        In file included from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Goldelox_Serial_4DLib.h:21:0,

        from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Goldelox_Serial_4DLib.cpp:5:

        C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Goldelox_Const4D.h:614:0: warning: "PINK" redefined

        #define PINK 0xFE19

        ^

        In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iom2560.h:38:0,

        from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:174,

        from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,

        from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,

        from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Goldelox_Serial_4DLib.h:10,

        from C:\Program Files (x86)\Arduino\libraries\Goldelox_Serial_4DLib\Goldelox_Serial_4DLib.cpp:5:

        c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\iomxx0_1.h:1149:0: note: this is the location of the previous definition

        # define PINK _SFR_MEM8(0x106)

        ^
        "

        Comment


        • #5
          Hi Paul,

          Welcome to the forum

          Sorry to hear you are having some issues with our libraries. This isn't common and all our libraries work extremely well for customers.

          You mentioned the GEN4-ULCD-70D but the library you are using for this disply as a test is for the Goldelox range of displays which doesn't support Visi-Genie and wouldn't be used on this display as it is a Diablo powered display

          It would appear that some of our defines are conflicting with defines in other libraries you may be using.

          Would it be possible to send me the example snippets of code you have created together with the other libraries being used just so I can verify what is happening and also let me know the host you are using

          This define in particular looks a bit odd in the above error report.

          # define PINK _SFR_MEM8(0x106)

          I'm not sure where the space after PINK is generated or if it is in your code but spaces are not usually allowed in defines as it indicates the end of the define and likely the define is PINK but I would like to see how that is in your code.

          Best regards

          Paul

          Comment


          • PSCD
            PSCD commented
            Editing a comment
            Ps. What do you propose to use, I want to use simple serial commands to change values on the display for gauges etc. And touchscreen feedback commands back through serial (for the touchscreen displays). I can/will write a custom script if libraries are faulthy. It's very unclear which part is handled by the display & which part by the attached microcontroller. (Wishing all is handled by the display through simple "update" commands). Which environment / display can achieve this?. Serial 3.3v or 5v doesn't matter. Looking forward to your reply.

          • PSCD
            PSCD commented
            Editing a comment
            Hi Paul,

            I indeed see some differences in environments used.
            GEN4-ULCD-70D (arduino compatible acc. software) uses: Basic graphics / Extended graphics / Genie graphics (not available). --> This is what's keep giving me errors.
            The Diablo GEN4-uLCD-70D(T) shows however the genie style environments?. Which in my eyes is the same model as above?
            The manual https://4dsystems.com.au/products/4d...s/sk-gen4-70dt
            also states:
            "
            1.Open Workshop4 by double-clicking the icon.
            2.Create New Project with the New Tab.
            3.Choose your display type.
            4.Click Next.
            5.Choose Visi-Genie Environment
            "

            So i'm a bit confused.... is it or is it not compatible/useable with this environment (genie -> because not giving errors). If not, than the user manual & software are incorrect... I don't think that would be the case?

            The model in question:
            Starterkit:
            https://4dsystems.com.au/products/4d...es/sk-gen4-70d

          • PSCD
            PSCD commented
            Editing a comment
            Excuse me i saw that i had added the wrong error file, that one was indeed using the wrong library, the one in question was actually:
            "C:\Program Files (x86)\Arduino\libraries\Diablo_Serial_4DLib\Examples\BigDemo"
            That one also wasn't working ( lots of errors ) .
            Please note that all errors will still compiling completely! , but are warnings of faults in the programming, which can (and should) be fixed by 4dsystems.
            I see indeed that it's due to the same architecture that arduino avr's use (hence the avr standard library for arduino) and the language the display uses.
            I can confirm this because in the files within the library alot of "#undef" is there to avoid these clashes, actually it states in a note: due to the same way arduino and displays work this needs to be undefined.
            (Also the same library is used by the 4D software) in: "Basic graphics / Extended graphics / Genie graphics (not available)" arduino compatible environments.

            The genie library:
            C:\Program Files (x86)\Arduino\libraries\ViSi-Genie-Arduino-Library-master\examples\genieArduino_Demo
            Actually does compile fine with only one error:

            "
            C:\Program Files (x86)\Arduino\libraries\ViSi-Genie-Arduino-Library-master\examples\genieArduino_Demo\genieArduino_Demo.ino: In function 'void setup()':
            C:\Program Files (x86)\Arduino\libraries\ViSi-Genie-Arduino-Library-master\examples\genieArduino_Demo\genieArduino_Demo.ino:55:34: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
            genie.WriteStr(0, GENIE_VERSION);
            ^

        • #6
          Since it are warning only i reccon it will still work once compiled, i will just simply give it a shot. And debug whatever necessary, but the warnings are advised to be fixed as it should be easy to do so. Thank you for your reply and have a nice day. Kind regards, Paul.

          Comment

          Working...
          X