Forum Rule: Always post complete source code & details to reproduce any issue!
Page 2 of 3 FirstFirst 1 2 3 LastLast
Results 26 to 50 of 56

Thread: Teensy 4.0 + RA8875

  1. #26
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,324
    Nice little small demo...

    I have other stuff to do this morning... SO may not get much farther, plus I want to have some fun and solder a board
    together....

    I have some of the code in for the capacitive touch stuff. But not compiling yet.

    Have not got back yet into fonts stuff.

    Edit oops did not get posted will try more later ;D

  2. #27
    Quote Originally Posted by KurtE View Post
    Nice little small demo...

    I have other stuff to do this morning... SO may not get much farther, plus I want to have some fun and solder a board
    together....

    I have some of the code in for the capacitive touch stuff. But not compiling yet.

    Have not got back yet into fonts stuff.

    Edit oops did not get posted will try more later ;D
    Very much appreciated, luckily we will not use the touch capabilities of the screen.
    I will look at your updated git repo you linked earlier tomorrow to see if I can do some work.
    If you're interested in what I'm using it for, it is for the interface of a steering wheel.

  3. #28
    Quote Originally Posted by KurtE View Post
    I have the beginnings of something maybe starting to work with the RA8875 driver...

    Note your example with text is showing up with nothing (blank screen). I am for sure not properly handling fonts and the like.

    I also have not put in the touch support at all yet.

    But at least the first two basic examples show something on the display.

    Not sure how far I will take it... But the current WIP is up at: https://github.com/KurtE/GUIslice/tree/t4_sumo_ra8875

    Next up may see if I can enable the hardware touch... Note: I hate these f.... config files both here and in RA8875 driver itself they often assume you only have one configuration....
    For some reason I cannot get your updated version to work:
    https://pastebin.com/raw/B2VjcqWX

  4. #29

    Cool Thanks guys!

    Hi there -- you guys sure are proactive, it's fantastic!

    Aside: I've enjoyed the forum over the past year as it has been particularly helpful in getting the most out of my Teensy devices; though looks like I'm overdue in making a post

    Thank you so much KurtE for taking a stab at integrating support for the library.

    I would be more than happy to update GUIslice to add support for the sumotoy/RA8875, taking over the last few changes from where KurtE left off. You've done a fantastic job so far (though I would have preferred to do this for you to save you the trouble in seeking out the necessary changes!).

    Local testing on the RA8875 should be possible as I have an EastRising 5.0" display on hand, but note that it only has a resistive overlay. I also have a 7” EastRising display with the FT5206 so hopefully that will enable me to cover the combination.

    I do also have a Teensy 4.0 and can ensure we're not missing anything there (most of my GUIslice testing was done with my other Teensy modules, particularly the 3.6 -- got distracted before I could test out the 4.0, so now I have a good excuse

    A few other notes from the discussion thread:
    • The EastRising display appears to either use a basic 4-wire touch interface or a capacitive FT5206. If the former, we may be able to use the DRV_TOUCH_ADA_SIMPLE (Adafruit/Adafruit_Touchscreen) mode that is already supported. My 5” EastRising uses the resistive overlay. I presume you might be looking for capacitive support? Note that GUIslice supports FT5206 already in a branch close to being merged.
    • I would recommend starting with the "arduino" examples (eg. "ex02_ard_btn_txt"), rather than the "arduino_min" examples. The difference is that the latter is designed to minimize the memory footprint by moving the GUI elements into Flash.
    • mjs513: I didn't realize that old "User Guide" page was still online in the wiki! I would recommend disregarding that page and look at the other documentation until I have had a chance to revise that one
    • KurtE: Yes, I really dislike the use of config files for precisely the reason you mention (especially if you have multiple hardware setups to switch between). I have over 40 displays and dozens of MCUs so I end up using a local batch script that swaps the configs automatically for me. Currently, the usual approach is that one would only need to uncomment one line in the main config to swap between your platform-specific config files (like in TFT_eSPI), but editing a library file is obviously not the ideal. Unfortunately, the Arduino IDE is very limiting in enabling compile-time flags to be defined from within the user sketches (without creating custom board packages, etc.). Most other developers have struggled with the same issue for ages. If you are aware of an alternate approach/solution, I would be most interested in hearing it!
    • Adding support for fonts is probably the most involved part of adding a display driver since nearly every TFT display library has its own proprietary font handling routines. I aim within GUIslice to provide a consistent user API irrespective of the display / touch device, so fonts can often be a challenge to implement. I haven't reviewed the sumotoy/RA8875 in detail yet, but if it maintains the typical Adafruit-GFX inspired conventions, it should be relatively straightforward.


    Note: I do have several other updates in progress currently, so it may take me a little bit to get the above local test setup going.

    Thanks
    Last edited by ImpulseAdventure; 02-18-2020 at 04:22 PM. Reason: Add note on touch / FT5206

  5. #30
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,324
    @impluseAdventure - Having some fun here.

    Note: with the Sumotoy RA8875 stuff - as you probably already know SumoToy has not been actively doing anything with the the drivers he has done a great job on...

    So a few us took it on ourselves to get the RA8875 to work on the T4.... We also added additional support and extensions, like we have done for some of the other libraries, that were mostly derived from Adafruit.

    Our current most up to date version I think is at: https://github.com/mjs513/RA8875/tree/RA8875_t4
    I don't remember if Teensyduino is pulling in from there.

    For ILI9341 - You all ready have the ILI9341_t3 version, my ILI9341_t3n version starts from there and adds things like support for different SPI busses, support for both ILI fonts and GFX fonts (including Opaque), Frame buffer, ability to output using DMA...
    That version is up at: https://github.com/KurtE/ILI9341_t3n

    We have a version of my ILI9341_t3n library that we converted over to run on ILI9488 including frame buffer, fonts, Frame buffer and the like a little more tricky as SPI requires 3 bytes per pixel (18 bit color)... As these displays are large frame buffer has some support for a one byte per pixel and a logical palette... I think the current most up to date version is: https://github.com/mjs513/ILI9488_t3
    A version of it is installed with Teensyduino.

    Likewise ST7735/ST7789 - We have all of the additional fonts, plus T3/T4 speed ups.... I think Paul has the master version https://github.com/PaulStoffregen/ST7735_t3 and it installs with Teensduino.


    While waiting for you to have a chance and if time permits, I may try to fix a few of the things. But otherwise I will wait...

    Oops, almost forgot 0 recently we have been playing around with the Adafruit HX8357 display and adapted I believe starting with one of the above and made work: https://github.com/mjs513/HX8357_t3n

  6. #31
    Great... thank you for the summary of the other T3/T4 library variants!
    Most of my testing has been with ILI9341_t3 so far, though I haven't experimented with the framebuffer mods yet.

    Quote Originally Posted by ThijmenL View Post
    For some reason I cannot get your updated version to work:
    https://pastebin.com/raw/B2VjcqWX
    It looks like you are seeing a conflict between the teensy built-in RA8875 library and mjs513's branch.
    Try relocating the built-in RA8875 folder outside of your C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\ folder.

  7. #32
    Just a quick update... I now have the 5" running on my Teensy 4 with mjs513/RA8875.

    As you are probably aware, the RA8875 library offers a nice selection of font modes (RA8875 internal/external, GFX, ILI9341_t3, etc.). After some debug I determined that the text output wasn’t visible because RA8875.cpp appears to be missing an assignment for the "textcolor" variable in the _fontWrite() call to drawChar(), as is typically done via setTextColor(). This was the mode that I was defaulting to, though I suspect it may be an unsupported mode of operation. I will review the other available font modes and let you know when I have an update for you to try out.

    thx
    Last edited by ImpulseAdventure; 02-20-2020 at 04:21 PM.

  8. #33
    Quote Originally Posted by ImpulseAdventure View Post
    Great... thank you for the summary of the other T3/T4 library variants!
    Most of my testing has been with ILI9341_t3 so far, though I haven't experimented with the framebuffer mods yet.


    It looks like you are seeing a conflict between the teensy built-in RA8875 library and mjs513's branch.
    Try relocating the built-in RA8875 folder outside of your C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\ folder.
    So remove the RA8875 from the libraries folder, or replacing the folder with the mjs513 version?
    The only things i have in my libraries folder that have this string in the folder name is RA8875 and Adafruit_RA8875

  9. #34
    Quote Originally Posted by ThijmenL View Post
    So remove the RA8875 from the libraries folder, or replacing the folder with the mjs513 version?
    The only things i have in my libraries folder that have this string in the folder name is RA8875 and Adafruit_RA8875
    Hi ThijmenL -- It wasn't clear to me from your posts whether you had already downloaded & installed the mjs513/RA8875 fork.
    If not, then please delete the existing folder (C:\Program Files (x86)\Arduino\libraries\RA8875) and install the new version there.

    From your pastebin error log, I believe you might now have the following libraries:
    (1) C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\RA8875
    (2) C:\Program Files (x86)\Arduino\libraries\RA8875 [I am assuming this was the one you downloaded from mjs513]
    (3) C:\Program Files (x86)\Arduino\libraries\Adafruit_RA8875

    If so, I would recommend that you temporarily move (1) to some place outside of your Arduino folder.
    I am assuming that the Arduino IDE is defaulting to use the Teensy built-in RA8875 library in your Arduino\hardware folder (1) rather than your newer release of the library from mjs513's fork (2).

    Once you have moved out (1), try recompiling and see if the errors still remain. If so, please attach your compile log again.

    thx

  10. #35
    Quote Originally Posted by ImpulseAdventure View Post
    Hi ThijmenL -- It wasn't clear to me from your posts whether you had already downloaded & installed the mjs513/RA8875 fork.
    If not, then please delete the existing folder (C:\Program Files (x86)\Arduino\libraries\RA8875) and install the new version there.

    From your pastebin error log, I believe you might now have the following libraries:
    (1) C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\RA8875
    (2) C:\Program Files (x86)\Arduino\libraries\RA8875 [I am assuming this was the one you downloaded from mjs513]
    (3) C:\Program Files (x86)\Arduino\libraries\Adafruit_RA8875

    If so, I would recommend that you temporarily move (1) to some place outside of your Arduino folder.
    I am assuming that the Arduino IDE is defaulting to use the Teensy built-in RA8875 library in your Arduino\hardware folder (1) rather than your newer release of the library from mjs513's fork (2).

    Once you have moved out (1), try recompiling and see if the errors still remain. If so, please attach your compile log again.

    thx
    Hmm, I replaced it, even deleted the original RA8875 folder in case it caused problems, also installed it in the teensy libraries and arduino libraries folder, but then I get the warning that two libraries are existent, but that of course is not a big deal since it'll just choose either one. However it still doesn't compile, with a quick eye it seems like a problem with not recognizing fonts of the RA8875 driver? (GFXfont) or something? This can be completely wrong of course.

    https://pastebin.com/raw/CRMHXwis

    The file I try to compile: https://pastebin.com/bYyUmwCJ
    My GUIslice_config.h: https://pastebin.com/MzvA2yn6
    The only thing i changed to ard-shld-eastrising_50_ra8875_sumo_res.h is the CS and RST pinout

    If you want to see other files, please let me know. Afaik I didn't change more files, but that could be wrong of course.

  11. #36
    I would recommend waiting a bit so that I can give you a complete version that has added full compatibility with the library. The above fork does not support font access as you have noted. My development version already supports fonts but I still need some additional work to support the RA8875 text justification APIs. Thanks!

  12. #37
    Quote Originally Posted by ImpulseAdventure View Post
    I would recommend waiting a bit so that I can give you a complete version that has added full compatibility with the library. The above fork does not support font access as you have noted. My development version already supports fonts but I still need some additional work to support the RA8875 text justification APIs. Thanks!
    That's okay, thanks for your efforts on this, it is much appreciated. I'll be pre-designing our GUI on paper anyway so I'll have a week or two of design on my hands nonetheless

  13. #38
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,806
    Quote Originally Posted by ImpulseAdventure View Post
    Hi there -- you guys sure are proactive, it's fantastic!

    Aside: I've enjoyed the forum over the past year as it has been particularly helpful in getting the most out of my Teensy devices; though looks like I'm overdue in making a post

    Thank you so much KurtE for taking a stab at integrating support for the library.

    I would be more than happy to update GUIslice to add support for the sumotoy/RA8875, taking over the last few changes from where KurtE left off. You've done a fantastic job so far (though I would have preferred to do this for you to save you the trouble in seeking out the necessary changes!).

    Local testing on the RA8875 should be possible as I have an EastRising 5.0" display on hand, but note that it only has a resistive overlay. I also have a 7” EastRising display with the FT5206 so hopefully that will enable me to cover the combination.

    I do also have a Teensy 4.0 and can ensure we're not missing anything there (most of my GUIslice testing was done with my other Teensy modules, particularly the 3.6 -- got distracted before I could test out the 4.0, so now I have a good excuse

    A few other notes from the discussion thread:
    • The EastRising display appears to either use a basic 4-wire touch interface or a capacitive FT5206. If the former, we may be able to use the DRV_TOUCH_ADA_SIMPLE (Adafruit/Adafruit_Touchscreen) mode that is already supported. My 5” EastRising uses the resistive overlay. I presume you might be looking for capacitive support? Note that GUIslice supports FT5206 already in a branch close to being merged.
    • I would recommend starting with the "arduino" examples (eg. "ex02_ard_btn_txt"), rather than the "arduino_min" examples. The difference is that the latter is designed to minimize the memory footprint by moving the GUI elements into Flash.
    • mjs513: I didn't realize that old "User Guide" page was still online in the wiki! I would recommend disregarding that page and look at the other documentation until I have had a chance to revise that one
    • KurtE: Yes, I really dislike the use of config files for precisely the reason you mention (especially if you have multiple hardware setups to switch between). I have over 40 displays and dozens of MCUs so I end up using a local batch script that swaps the configs automatically for me. Currently, the usual approach is that one would only need to uncomment one line in the main config to swap between your platform-specific config files (like in TFT_eSPI), but editing a library file is obviously not the ideal. Unfortunately, the Arduino IDE is very limiting in enabling compile-time flags to be defined from within the user sketches (without creating custom board packages, etc.). Most other developers have struggled with the same issue for ages. If you are aware of an alternate approach/solution, I would be most interested in hearing it!
    • Adding support for fonts is probably the most involved part of adding a display driver since nearly every TFT display library has its own proprietary font handling routines. I aim within GUIslice to provide a consistent user API irrespective of the display / touch device, so fonts can often be a challenge to implement. I haven't reviewed the sumotoy/RA8875 in detail yet, but if it maintains the typical Adafruit-GFX inspired conventions, it should be relatively straightforward.


    Note: I do have several other updates in progress currently, so it may take me a little bit to get the above local test setup going.

    Thanks
    @ImpulseAdventure
    Sorry I didn't respond sooner your comments wound up getting sick and a few other distractions. Yeah - that wiki page didn't really help much. I did find an example and moded it to use the adafruit GFX fonts.

    Looking forward to see how you get all the font handling incorporated. Think @KurtE pretty much summed up all the libraries that we have going with the Teensy 4.0.

  14. #39
    Thanks @mjs513 & @KurtE!

    I was in the process of completing the font rendering updates in GUIslice to support your RA8875_t4 branch but I have encountered a couple issues with RA8875 that I'm hoping you may be able to assist me with. I apologize in advance if I have overlooked certain details in the expected API usage model.

    Reference library: https://github.com/mjs513/RA8875/tree/RA8875_t4 (branch "RA8875_t4, commit 32bca04)

    Q1) RA8875 INTFONT
    • I can successfully compile & render the examples that use the INTFONT. For example "basicTextFunctions.ino"
    • However, the getTextBounds() appears to be undercalling the string width
    • getTextBounds() on string "Testing" returns W=42, H=8 (implies fixed charBounds of 6x8)
    • Rendering via print() appears to occur with a vertical offset


    Example code to demonstrate the issue:
    (You should see that the yellow box does not align with the rendered text)
    Code:
      int16_t  nX,nY;
      int16_t  nBX1,nBY1; // Bounds result
      uint16_t nBW,nBH;   // Bounds result
      char     acStr[20];
    
      // Provide some offset away from top-left corner
      nX = 20;
      nY = 10;
      sprintf(acStr,"Testing");
    
      // Font selection
      tft.setFont(INTFONT);
      //tft.setFont(&akashi_36);
    
      // Fetch string dimensions
      nBX1 = nX;
      nBY1 = nY;
      nBW = 0;
      nBH = 0;  
      tft.getTextBounds(acStr,nX,nY,&nBX1,&nBY1,&nBW,&nBH);
    
      // Display the fetched bounding rectangle
      tft.drawRect(nX,nY,nBW,nBH,RA8875_YELLOW);  
    
      // Render text 
      tft.setCursor(nX, nY);
      tft.setTextColor(RA8875_WHITE);
      tft.print(acStr);
    Q2) RA8875 tFont
    • I then tried loading a tFont such as "akashi_36"
    • getTextBounds() on string "Testing" returns W=42, H=8
    • In this particular case, it becomes more apparent that charBounds() doesn't appear to be fetching the correct font struct members
    • Swapping the setFont line in the above code can be used to demonstrate the tFont mode


    Q3) ILI_Ada_FontTest*
    • I seem to be encountering difficulty compiling these examples directly from the fork code. I am wondering if I overlooked an additional lib install or perhaps one of my other libs are in conflict...
    • ERROR: ...\Examples\_Teensy3\ILI_Ada_FontTest2\ILI_Ada_Fo ntTest2.ino:8:30: fatal error: font_ComicSansMS.h: No such file or directory
    • The examples include references to font files that are presumably scoped outside of the RA8875 library itself
    • Can you confirm where "ILI_Ada_FontTest2.ino" should be locating "font_ComicSansMS.h", for example?


    many thanks for any ideas

  15. #40
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,806
    @ImpulseAdventure
    There are a couple of simple answers to your questions:

    (Q1)RA8875 INTFONT and (Q2)RA8875 tFont are both related:
    getTextBounds() functions are only applicable to GFX and ILI9341 fonts. Same applies to charbounds and drawfont functions. Sorry for the confusion.

    These were added functions to the original library to support those font formats. If you look at the AdafruitGFX format the font information (size, width, spacings etc) are specified in there glyph format the ILI9341 font format is similar and you can see that structure in the ILI9341_fonts.h file in the RA8875 directory. Unfortunately, the RA8875 fonts are not specified that way.

    Q3) ILI_Ada_FontTest
    To use the ILI9341 fonts you will also need to have this library, https://github.com/mjs513/ILI9341_fonts, or alternatively you can just copy the fonts you what to the RA8875 directory. Somewhere in this thread we mention that but its probably buried by now.

    Hope this helps

  16. #41
    Senior Member+ KurtE's Avatar
    Join Date
    Jan 2014
    Posts
    6,324
    Hi @ImpulseAdventure and @mjs513...

    Again I only know this code at a superficial level.

    Wondering how close it would be if we change getTextBounds actually charBounds
    That in defaultCase instead of using hard coded 6 and 8...
    We instead call: getFontWidth(false) and getFontHeight(false) ?

    Maybe I need to setup with RA8875 again and see how it works? Unless someone else gets there ...

  17. #42
    @mjs513 -- Thanks for the heads-up on ILI9341_fonts, that was the missing key for me!

    I now have GUIslice working with RA8875_t4 using the GFX fonts.
    For the moment, I am going to make the GUI default to LiberationSans_9 instead of the built-in hardware RA8875 internal font.

    @KurtE -- yes, it should be relatively straightforward to adapt getTextBounds() for the internal font; we'd want to detect the current font mode to differentiate between the INTFONT, GFX fonts, etc. and, if using the internal font we'd need to adjust for the size setting. If you can make these changes for RA8875_t4, that would be great -- the hardware font should provide nice render speed. In the interim I'll proceed with making the GFX font the default until the dimensioning APIs work in both font modes.

    Everything runs well, but I did run into a snag on trying to enable sketch-level specification of other fonts after integration into the GUI. If I add a font include into the user sketch (eg. #include <font_Arial.h>, I encounter a "SPIClass doesn't name a type" compilation error). Will need to dig into this part further...

  18. #43
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,806
    @ImpulseAdventure and @KurtE ...

    Quote Originally Posted by KurtE
    Wondering how close it would be if we change getTextBounds actually charBounds
    That in defaultCase instead of using hard coded 6 and 8...
    We instead call: getFontWidth(false) and getFontHeight(false) ?
    Not very - tried a few variations on a theme but no luck. Note: getFontWidth returns 0 for tFonts which I am playing with right now. getFontHeight isn't too bad but off a few pixels. If you dig into the code more its a variable size font so it seems it all gets calculated based in one of the _charWrite functions something like this:
    Code:
    charW = PROGMEM_read(&_currentFont->chars[charIndex].image->image_width);
    Have to dig into it a lot more to really get it implemented.

    Quote Originally Posted by ImpulseAdventure
    Everything runs well, but I did run into a snag on trying to enable sketch-level specification of other fonts after integration into the GUI. If I add a font include into the user sketch (eg. #include <font_Arial.h>, I encounter a "SPIClass doesn't name a type" compilation error). Will need to dig into this part further...
    ran into that as well when I gave it a try early on but that was about when there was still more work to do it.

  19. #44
    Quote Originally Posted by KurtE View Post
    Hi @ImpulseAdventure and @mjs513...

    Again I only know this code at a superficial level.

    Wondering how close it would be if we change getTextBounds actually charBounds
    That in defaultCase instead of using hard coded 6 and 8...
    We instead call: getFontWidth(false) and getFontHeight(false) ?

    Maybe I need to setup with RA8875 again and see how it works? Unless someone else gets there ...
    Quote Originally Posted by ImpulseAdventure View Post
    @mjs513 -- Thanks for the heads-up on ILI9341_fonts, that was the missing key for me!

    I now have GUIslice working with RA8875_t4 using the GFX fonts.
    For the moment, I am going to make the GUI default to LiberationSans_9 instead of the built-in hardware RA8875 internal font.

    @KurtE -- yes, it should be relatively straightforward to adapt getTextBounds() for the internal font; we'd want to detect the current font mode to differentiate between the INTFONT, GFX fonts, etc. and, if using the internal font we'd need to adjust for the size setting. If you can make these changes for RA8875_t4, that would be great -- the hardware font should provide nice render speed. In the interim I'll proceed with making the GFX font the default until the dimensioning APIs work in both font modes.

    Everything runs well, but I did run into a snag on trying to enable sketch-level specification of other fonts after integration into the GUI. If I add a font include into the user sketch (eg. #include <font_Arial.h>, I encounter a "SPIClass doesn't name a type" compilation error). Will need to dig into this part further...
    Quote Originally Posted by mjs513 View Post
    @ImpulseAdventure and @KurtE ...

    Not very - tried a few variations on a theme but no luck. Note: getFontWidth returns 0 for tFonts which I am playing with right now. getFontHeight isn't too bad but off a few pixels. If you dig into the code more its a variable size font so it seems it all gets calculated based in one of the _charWrite functions something like this:
    Code:
    charW = PROGMEM_read(&_currentFont->chars[charIndex].image->image_width);
    Have to dig into it a lot more to really get it implemented.

    ran into that as well when I gave it a try early on but that was about when there was still more work to do it.
    You guys are doing amazing work that really helps me, but most likely also others out.
    If there's anything I could do to assist you with, that would be no problem to ask!

    Cheers guys!

  20. #45
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,806
    @KurtE
    Ok got something semi hacked to get the correct charbounds for intfonts and tfonts. A couple things not working correctly: Space characters for tfonts and for intfonts the bounding box is just a little too big (but it does spaces correctly). Need to take a break from this for bit. The wip branch is at: https://github.com/mjs513/RA8875/tre...nds-int-tfonts in case you want another distraction.

    This is the sketch I am using to test with:
    Code:
    /*
    This shows the capabilities of the library text engine that is
    extremely flexible and simple! All commands are the same for all type of text
    (INT,EXT or Render ones) and things like println works too.
    You can use all the print() options (like print(var,HEX), etc. Take a look the print command 
    in the arduino guide!) 
    */
    
    #include <SPI.h>
    #include <RA8875.h>
    #include "fonts/heydings_36.c"//minipixel
    #include "fonts/akashi_36.c"//minipixel
    
    #define RA8875_CS 10 
    #define RA8875_RESET 8//any pin or 255 to disable it!
    
    
    RA8875 tft = RA8875(RA8875_CS, RA8875_RESET); 
    
    void setup()
    {
      Serial.begin(38400);
      long unsigned debug_start = millis ();
      while (!Serial && ((millis () - debug_start) <= 5000)) ;
      Serial.println("RA8875 start");
    
      //  begin display: Choose from: RA8875_480x272, RA8875_800x480, RA8875_800x480ALT, Adafruit_480x272, Adafruit_800x480
      tft.begin(Adafruit_800x480);
      tft.fillWindow(RA8875_BLACK);//fill window black
    
      tft.setRotation(0);//works at any rotation as well
      tft.setFont(&heydings_36);
      tft.setFontScale(1);
      tft.setCursor(0,0);
      //tft.setTextColor(RA8875_GREEN);//notice that! After grandient text will be this color!
      //grandient it's one shot, text color will be reset as the one choosed by setTextColor
      tft.setTextGrandient(RA8875_RED,RA8875_CYAN);//works also with rendered text!
      tft.println("BSuRF");
      tft.print("_");
      tft.fillWindow(RA8875_BLACK);//fill window black
    
      int16_t  nX,nY;
      int16_t  nBX1,nBY1; // Bounds result
      uint16_t nBW,nBH;   // Bounds result
      char     acStr[20];
    
      // Provide some offset away from top-left corner
      nX = 20;
      nY = 10;
      sprintf(acStr,"Tes  
      ting");
    
      // Font selection
      tft.setFont(INTFONT);
      //tft.setFont(&akashi_36);
      tft.setFontScale(1);
    
      // Fetch string dimensions
      nBX1 = nX;
      nBY1 = nY;
      nBW = 0;
      nBH = 0;  
      tft.getTextBounds(acStr,nX,nY,&nBX1,&nBY1,&nBW,&nBH);
      Serial.printf("%d, %d, %d, %d\n", nBX1, nBY1, nBW, nBH);
      // Display the fetched bounding rectangle
      tft.drawRect(nX,nY,nBW,nBH,RA8875_YELLOW);  
    
      // Render text 
      tft.setCursor(nX, nY);
      tft.setTextColor(RA8875_WHITE);
      tft.print(acStr);
    
    }
    
    void loop()
    {
    
    }

  21. #46
    The GUIslice master has now been updated (this was minutes before mjs513's charBounds WIP post, so I'll get to that afterwards ) This version should provide basic font rendering support (defaults to a GFX font).

    Please try the latest from the repository.

    Updating GUIslice from GitHub
    @ThijmenL -- just in case it is helpful, I list a few detailed instructions below for updating your library:
    • Move the Arduino/libraries/GUIslice folder to a place outside of the Arduino/libraries folder (I recommend doing this instead of deleting the folder in case you have any custom configs that you'd like to keep)
    • Download the latest GUIslice GitHub release (ZIP archive)
    • Unzip the GUIslice-master.zip file into your Arduino/libraries folder
    • Ensure the mjs513/ILI9341_fonts library has also been installed
    • Select the EastRising 5.0" RA8875 config file: edit your Arduino/libraries/GUIslice/src/GUIslice_config.h and uncomment the line with "ard-shld-eastrising_50_ra8875_sumo_res.h"
    • If any pinout changes are needed for your particular hardware/wiring, please edit the ard-shld-eastrising_50_ra8875_sumo_res.h file
    • Try an example in the Arduino IDE: File -> Examples -> GUIslice -> arduino -> ex04_ard_ctrls


    Hope that works better for you!

    @mjs513 -- I'll be interested in trying out your WIP a bit later. Thanks for taking a look into it!

    I would also like to enable touch support (disabled in your config at the moment), and hopefully find some way to address the SPIClass include issue.

    thx

  22. #47
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,806
    @ImpulseAdventure and @KurtE

    Just pushed an update looks like it is all working now at least for the simple sketch. Could use a bit of a sanity check.

    @ImpulseAdventure - cool you got the lib incorporated hope the charbounds function update helps.

  23. #48
    Quote Originally Posted by ImpulseAdventure View Post
    The GUIslice master has now been updated (this was minutes before mjs513's charBounds WIP post, so I'll get to that afterwards ) This version should provide basic font rendering support (defaults to a GFX font).

    Please try the latest from the repository.

    Updating GUIslice from GitHub
    @ThijmenL -- just in case it is helpful, I list a few detailed instructions below for updating your library:
    • Move the Arduino/libraries/GUIslice folder to a place outside of the Arduino/libraries folder (I recommend doing this instead of deleting the folder in case you have any custom configs that you'd like to keep)
    • Download the latest GUIslice GitHub release (ZIP archive)
    • Unzip the GUIslice-master.zip file into your Arduino/libraries folder
    • Ensure the mjs513/ILI9341_fonts library has also been installed
    • Select the EastRising 5.0" RA8875 config file: edit your Arduino/libraries/GUIslice/src/GUIslice_config.h and uncomment the line with "ard-shld-eastrising_50_ra8875_sumo_res.h"
    • If any pinout changes are needed for your particular hardware/wiring, please edit the ard-shld-eastrising_50_ra8875_sumo_res.h file
    • Try an example in the Arduino IDE: File -> Examples -> GUIslice -> arduino -> ex04_ard_ctrls


    Hope that works better for you!

    @mjs513 -- I'll be interested in trying out your WIP a bit later. Thanks for taking a look into it!

    I would also like to enable touch support (disabled in your config at the moment), and hopefully find some way to address the SPIClass include issue.

    thx
    Thank you, I tried to follow your instructions, yet it still doesn't seem to work for me:
    https://pastebin.com/raw/eu2Fqtvb

    The only things I change are the following:
    - I changed the names of the libraries from xxx-master to just xxx (GUIslice-master to GUIslice etc)
    - In the GUIslice_config.h I uncommented line 76 (the ra8875 sumo res inclusion)
    - In the sumo res header file, i changed the CS to 10, RST to 9 and the display resolution to Adafruit_480x272

    My libraries folder contains the following, possibly something I unintentionally missed or accidentally removed?
    Click image for larger version. 

Name:	e21d6374c27af6bb15b430af0f9ce969.png 
Views:	3 
Size:	25.8 KB 
ID:	19158

  24. #49
    I believe there are two steps that may have been overlooked in your setup:

    1) From your screenshot, Mike’s mjs513/RA8875 (RA8875_t4 branch) doesnt appears to be in your Arduino/libraries folder. Please download the zip from his repository, and unzip it into your Arduino libraries folder. Download from here: https://github.com/mjs513/RA8875/tree/RA8875_t4

    2) From the pastebin error log, it appears that the original RA8875 library still exists in your “hardware” folder. This may conflict with Mike’s library so please cut and paste that folder to somewhere else like your desktop: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\RA8875

  25. #50
    Senior Member+ mjs513's Avatar
    Join Date
    Jul 2014
    Location
    New York
    Posts
    4,806
    Quote Originally Posted by ImpulseAdventure View Post
    I believe there are two steps that may have been overlooked in your setup:

    1) From your screenshot, Mike’s mjs513/RA8875 (RA8875_t4 branch) doesnt appears to be in your Arduino/libraries folder. Please download the zip from his repository, and unzip it into your Arduino libraries folder. Download from here: https://github.com/mjs513/RA8875/tree/RA8875_t4

    2) From the pastebin error log, it appears that the original RA8875 library still exists in your “hardware” folder. This may conflict with Mike’s library so please cut and paste that folder to somewhere else like your desktop: C:\Program Files (x86)\Arduino\hardware\teensy\avr\libraries\RA8875
    The RA8875 lib in the "hardware" folder is actually an outdated version of the mjs513/RA8875 (RA8875_t4 branch). Would recommend doing exactly what you suggested until it gets updated in Teensyduino.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •