Hi folks. I am contemplating making a project around the Blackberry Q5 “replacement hardware” available on AliExpress/elsewhere. These have a 720x720 MIPI DSI display+synaptics touchscreen, amongst other parts. Here is the Blackberry spec for the display: https://www.panoxdisplay.com/uploadfile/datasheet/LT031MDZ4000.pdf
I have seen a post from @TechToys about interfacing with a DSI screen using an ESP32 (Bigger 2-Lane-MIPI displays - #3 by techtoys). I guess that the approach of using the SSD2805 is still valid (are there better ways these days?), but I also saw that the ESP32-C5 is supposed to have MIPI-DSI support like the P4.
Has anyone used the -P4’s DSI hardware? Does it seem like the -C5 will function similarly? How would you try to do this?
to my knowledge the C5 does not have DSI built in. There is a way to kind of hack it to make it work but quite a but is involved and I do not believe that the C5 is able to do it to it’s full speed because of only having a single core and DSI not being supported by the hardware.
Why not get a P4? They are available from some vendors…
I personally have bought that one from that company, it’s legit…
a display that has a 720 x 720 resolution is also no problem if the connection to the display is an I8080 display. Add that to an ESP32-S3 with a couple MB of flash and SPIRAM and you are good to go. You are going to need to use ioexpanders to handle the keyboard…
Just to let you know there are also Blackberries blackberry like devices that are already made. They use a C series ESP32 to handle the keyboard input.
Now I know that is not a Q5 but it gives some insight into what is being done and how it is being done. I believe using the C5 as the central processor is not the best way to go about it. Using a C series to handle the keyboard is a good way to do it because it is cheaper to do that then it is to add IO expanders to do the job. The S3 is pretty inexpensive and it comes with quite a bit of processing power. I8080 is either 8 lanes or 16 lanes to the display. if you can get 16 lanes that would offer you optimal performance but even with 8 lanes you are talking a fairly decent speed. you can the lanes at 80mhz so the theoretical speed is 80,000,000 bytes per second.
While DSI is fast yes the displays typically do not have internal GRAM so the entire displays data has to be sent to the display over and over again at that high rate of speed. where as with I8080 you only send the areas that have been updated to the display because the display IC takes care of updating the panel from it’s internal GRAM.
What that means is the performance gain from DSI also gets used up because of having to write the entire displays worth of data which means there is a slot of copying buffer data and that eats up processor time.
DSI also adds a lot of complexity to the circuit because of the differential pair which makes it exceedingly sensitive to EMI. The board has to be designed a very specific way to keep the ECM as low as possible near those lanes. Distance is yet another things and all of the lanes needing to be the same length can pose some challenges as well.
Just to let you know that DSI is something that is built into the hardware of the ESP32-P4 and that ability is not built into the hardware of the C5. It’s not something that is software based because it wouldn’t be fast enough to be really worth doing.