Aynone used buydisplay.com 9" ra8875??

Hi i bought buydisplay 9" display ra8875 and arduino shell. i m sending the images to tft via sd card is very slow and i want to try flash chip, backside the screen there is a an empty flash area. i bought 25q128fv flash chip for tft not soldered and have a programmer for 25q128fv. im searching a simple example for use that flash to use only view images to screen with uno or stm32f103cb (maple mini with keil) are there any friends have an idea??
Thanks

1- here is link that screen Serial SPI Arduino 9"TFT LCD Touch Shield RA8875 for Mega/Due/Uno


Thats behind the tft here is for 25Q128FV flash

thats flash programmer i used to

and thats for im trying for arduino uno and trying for stm32f103cb (maple mini clone)
i use the first arduino its a sd card slot on shield for arduino (its betwwen uno and display) image show is very slow with sumotoy ra8875 library
GitHub - sumotoy/RA8875: A library for RAiO RA8875 display driver for Teensy3.x or LC/Arduino's/Energia/Spark
and second one is 4 wire connected to maple mini with Adafruit_RA8875 library
GitHub - adafruit/Adafruit_RA8875: Adafruit Arduino library driver for the RA8875 TFT driver
i think no need to use sd card for image view i can program the images to flash chip converting with raio bmp to bin converting software all bmp files is converting to "AllPic.bin"
http://www.raio.com.tw/Data/Datasheet/RA88%20Series/Demo_Program/RA8875_DemoProgram/BCB_RA8875_AP_Release.rar

and i havent any code example i m searching about example so much but nothing found any to show images on screen using that flash :frowning:
Buydisplay send a code for use chip but its 8051 keil v4 project. i cant convert it 8051 different
have anyone idea to use that flash to show image?

i m sure only david_prentice knows my answer waiting :-[

From memory, there is a microSD card on the Display pcb.
There is another microSD on the Uno Adapter Shield.

The card on the Display pcb should work fast. Just like the Flash chip on the Display pcb or the Font chip on the Display pcb. The RA8875 does not understand filesystems.

The Flash chip has no access to Write-Enable. So you have one chance to program the Flash before soldering onto the pcb.

I have not looked at the Sumotoy GitHub for a long time. Nor can I remember that clearly.
Nor can I remember too much about accessing each Font.

If you try to write a large Bitmap from an external SD, you have to read chunks into a buffer by SPI. And then send it on to the RA8875 by SPI. The STM32 can use DMA but a Uno cannot.

As you have discovered, the RA8875 is blisteringly fast for graphics and Fonts. But it is limited by how fast you can blit data through the SPI bus. Painting a 800x480 full colour image is 768000 SPI bytes. i.e. 768000us @ 8MHz.

David.

david_prentice:
I have a RA8875 480x272 bare module that I use with 3.3V SPI.

If you are familiar with the Demo that comes with my MCUFRIEND_kbv library, you would be gobsmacked by the sheer speed of the RA8875. e.g. the full set of Adafruit tests take about 0.65 seconds with a Uno.

I have just ordered (yesterday) a RA8875 800x480 with Arduino shield. This screen is about 3x bigger so I would expect 2.0 secs.
This is far faster than a SSD1963 running on a Due native 16-bit parallel adapter shield.

Note that there is hardware acceleration for every graphics and text operation. Hence the speed. Hence the SPI speed is unimportant.

Things like transferring data from a SD card are no faster than anything else.
However if you pre-burn a Flash chip, the RA8875 will transfer data with DMA.
This is only practical for a production item. You can't program the Flash in situ.

I cannot see any point in the SSD1963 shield. It will be the same performance as a Mega Adapter shield.
Likewise the ILI9488 480x320 or ILI9341 320x240 display with shield. You might just as well buy a purpose built one-piece display shield.

OTOH, apart from the SSD1963, everything else can run with SPI. Or parallel if you solder a $1 worth of chips.

David.

p.s. the RA8875 is very fast. It has a few quirks. I am just learning.

Thanks you very much for your answer. When i read that in forum i think about you have a flash chip using it on your own buydisplay ra8875 board and it worked successfully. i know you said Flash chip has no access to Write-Enable. i need only use one time program no need to change anything after solder the flash chip. After your answer i absolutely believe no way to use that chip on board. because im searching for three weeks for the example of use that included Chinese forums.
Thanks for your helps :slight_smile:

Yes, you can. From memory, reading from Font chip or from Flash chip is just dependent on one (or two) bits in a RA8875 register.

As I said, it was a long time ago. Sumotoy code has probably changed. I might have made my own changes. My brain might be addled.

What have you programmed in the Flash? I think you need raw 16-bit pixel data.

David.

i found something on raio its an application for convert 65k bitmaps all bitmaps included in one bin file and an information .txt file.

Attached these bin and txt files and the application on raio web 2.9 mb. Sumotoy library same as last year nothing changed. There are some examples in library but any about to use flash. i think its very simple as use font chip but no example.

Text file only includes that for two bitmaps 800x480:

No., Width, Height, Address,

1, 800, 480, 0,

2, 800, 480, 768000,

PicBin65kInf.txt (117 Bytes)

AllPic65kCombine_binfile.zip (995 KB)

its successfully solved thanks for schuppeste

Hello @schuppeste /@david_prentice,

I am using a 5inch Buydisplay RA8875 TFT ( https://www.buydisplay.com/default/5-inch-tft-lcd-display-capacitive-touchscreen-ra8875-controller-800x480 ) with buydisplay RA8875 shield and Arduino Mega

and winbond w25q128jv as the flash chip programmed using CH341A programmer ( https://www.amazon.in/Programmer-CH341A-Burner-EEPROM-Writer/dp/B01G5BV376?tag=googinhydr18418-21&tag=googinkenshoo-21&ascsubtag=08e7de0d-dab9-4aec-8481-d2eff725390c ).

Initially I programmed the flash chip with an image but since it was not working I simply programmed the flash with 00 throughout so I should get a complete black screen (I also tried FF to get white screen)

I am burning the example code as given in GitHub - schuppeste/RA8875Ada-BTE: Adafruit 1.0.0 old Library with BTE Extension for SPI-Flash to print the image with few very basic modifications. Following is the code:

#include <SPI.h>
#include "Adafruit_GFX.h"
#include "Adafruit_RA8875.h"

#define RA8875_INT 4
#define RA8875_CS 10
#define RA8875_RESET 9
#define RA8875_FNCR0          0x21//Font Control Register 0
Adafruit_RA8875 tft = Adafruit_RA8875(RA8875_CS, RA8875_RESET);
char mychar[6] = "00:00";

void setup()
{
  Serial.begin(115200);
  Serial.println("RA8875 start");
  if (!tft.begin(RA8875_800x480)) {
    Serial.println("RA8875 Not Found!");
    while (1);
  }

  tft.displayOn(true);
  tft.GPIOX(true);      // Enable TFT - display enable tied to GPIOX
  tft.PWM1config(true, RA8875_PWM_CLK_DIV1024); // PWM output for backlight
  tft.PWM1out(255 );
  pinMode(RA8875_INT, INPUT);
  digitalWrite(RA8875_INT, HIGH);
  tft.touchEnable(false);
//  tft.fillScreen(RA8875_BLACK);
  tft.graphicsMode();
//  tft.Transparent_Mode();
  tft.writeTo(2);
//  tft.fillScreen(0x4bbd);
//  tft.dispic(1);
  tft.dispicown(0, 0, 800, 100, 0); //Dispicown(startx,starty,width,height, Flashadress)
  Serial.println("done");
  //Copy to Blocktransfert to Screen startx,starty with*height @ startadress 
  //see Library files for more Information!!
}

void loop()
{
  delay(1000);
}

and I am getting this screen

I also used tft.dispicown(0, 0, 800, 480, 0) instead of tft.dispicown(0, 0, 800, 100, 0) in above code
and in that case the screen become completely pink instead of top 100 rows. This essentially means that dispicown is working however the problem is that it is reading garbage from the flash.

Attached is the screenshot of the bits programmed in the winbond chip

I am baffled as to what is going wrong as it seems to be a straightforward setup. Please help.

Best regards
Anuj Garg

20181010_175224.jpg

Hello,
I have played with it further and realized that the data is not getting transferred and I may know the problem but not the solution. The winbond IC require read instruction either 03h or 0Bh or 3Bh depending upon standard SPI, fast read mode and dual SPI before the start address to get in read mode. However I could not find a way to write this instruction from RA8875 DMA to the winbond IC. Any advise ?

I have gone through 10-12 datasheets of Flash manufacturers and all of them seem to have same command for read instruction. It is certainly possible that RA8875 DMA mode already have these commands embedded in it and therefore it worked for others. But why I am getting pink screen when I have written the winbond chip with all 0s. In fact I have 2 screens. So the one without any flash IC soldered is also giving the same display indicating that pink color is some default color and flash IC is not sending any data at all.