Freeplay CM3 GBA clone Kit.
-
@Substring
@ian57
As you can see, the AlekFULL theme comes pretty well under this small screen. I will at a certain moment make some improvement on the fonts (text that is hidden for the moment.)Why you dont see it? Because the GBA has a cutout frame off 3" and display has 3.2". Original GBA display had 2.8".
Main problem from waveshare32b.dtbo driver is low speed but also no possibility to shift the viewing area or compress.
Therefore, next step is ili9341 that has all this features and is also already in the Recalbox package. -
-
@Substring
But Kodi I am able to load. Now in general I dont use it, so maybe something.
But I have another question for you. The line in config.txtdtparam=spi=on
does this line load's spi-bcm2835.ko ? Or something else, its in relation with the fb-ili9341 driver.
-
@dragu no the libe triggers some hardware functionnality, which can in turn make the kernel load the required ko in a.plug-n-play style
-
@Substring
With the ili9341 driver I may have reached my limits, but I also cannot find the executable con2fbmap in the recalbox bin. -
@dragu prolly it doesn't exist
-
-
@dragu what's the point of it ?
-
@Substring
I found a copy now. It's an utility that should write a framebuffer to the device by a certain driver. So more for testing. ili9341 is writing only newly changed parts of the framebuffer to the display, as waveshare driver is doing the whole. This should be about real 60fps instead of 30fps. As I am not able to compile and have no Linux system for this, I will just use what exists without special branches for my toy. -
@dragu are we talking about https://github.com/juj/fbcp-ili9341 ?
-
you shouldn't have THAT many framebuffer devices ! just /dev/fb0 or /dev/fb1. The latter is usually the SPI one, so make a dirty assumption
-
@Substring
WIth fbcp-ili9341 you are totaly right, as Juj has a working version of this, but you find no compiled executable for Freeplay from him. Perhaps I can ask him for this, if he want to share. -
@Substring
Anyway I get more and more confused about this, just a copy of dmesg. Means that waveshare32b.dtbo load fb-ili9340, with in configdtoverlay=waveshare32b:rotate=270,speed=99999999,fps=60
[ 2.361892] fbtft: module is from the staging directory, the quality is unknown, you have been warned. [ 2.370502] fb_ili9340: module is from the staging directory, the quality is unknown, you have been warned. [ 2.370951] fbtft_of_value: buswidth = 8 [ 2.370958] fbtft_of_value: debug = 0 [ 2.370963] fbtft_of_value: rotate = 270 [ 2.370968] fbtft_of_value: fps = 60 [ 2.370973] fbtft_of_value: txbuflen = 32768 [ 2.378627] hid-generic 0003:1241:1233.0001: input,hidraw0: USB HID v1.11 Keyboard [HID 1241:1233] on usb-3f980000.usb-1.4/input0 [ 2.459203] input: HID 1241:1233 as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.4/1-1.4:1.1/0003:1241:1233.0002/input/input2 [ 2.528989] hid-generic 0003:1241:1233.0002: input,hidraw1: USB HID v1.11 Device [HID 1241:1233] on usb-3f980000.usb-1.4/input1 [ 2.529208] usbcore: registered new interface driver usbhid [ 2.529214] usbhid: USB HID core driver [ 2.631365] graphics fb1: fb_ili9340 frame buffer, 320x240, 150 KiB video memory, 32 KiB DMA buffer memory, fps=100, spi0.0 at 99 MHz
-
@dragu have you read https://github.com/juj/fbcp-ili9341/blob/master/README.md#installation ? No dtoverlay should be specified, the driver handles everything
-
@Substring
Yes. More than 10x
But we have not fbcp-ili9341, and my head too much small to build this.
There is also this page that described the display area with new adapted viewport :
https://github.com/juj/fbcp-ili9341/blob/master/freeplaytech_waveshare32b.h -
@dragu I haven't checked in-depths how it works, but you might simply build it in raspbian and copy it over to recalbox
-
@Substring
Now, problem, what version of Raspian should I need to stay compatible with Recalbox ? I have spare SD's and can always shoot one for my bartop if it will work. Otherway my spare PI's are used up. -
@dragu the most "secure" version would be one with kernel 4.4
-
@Substring
My bartop dont stops with crying, but I arrive to install, and activate ssh (what is not activated by default after nov16, beep) Also no cmake inside, but installed also now. And this cmake give me an error,pi@Raspian:~/fbcp-ili9341/build $ cmake -DFREEPLAYTECH_WAVESHARE32B=ON CMake Error: The source directory "/home/pi/fbcp-ili9341/build" does not appear to contain CMakeLists.txt.
Sure and after juj description you make mkdir build and after cd build (empty) so he cannot find this file there but a level lower, somebody make a mistake or cmake changed...
Finally I arrive, but errorspi@Raspian:~/fbcp-ili9341/build $ cmake -DFREEPLAYTECH_WAVESHARE32B=ON /home/pi/fbcp-ili9341 -- Doing a Release build -- Board revision: a02082 -- Detected this Pi to be one of: Pi 2B rev. 1.2, 3B, 3B+, CM3 or CM3 lite, with 4 hardware cores and ARMv8-A instruction set CPU. -- Enabling optimization flags that target ARMv8-A instruction set (Pi 2B >= rev. 1.2, 3B, 3B+, CM3 or CM3 lite) -- Scaling source image to view. If the HDMI resolution does not match the SPI display resolution, this will produce blurrines s. Match the HDMI display resolution with the SPI resolution in /boot/config.txt to get crisp pixel perfect rendering, or alte rnatively pass -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON to crop instead of scale if you want to view the center of the screen p ixel perfect when HDMI and SPI resolutions do not match. -- Preserving aspect ratio when scaling source image to the SPI display, introducing letterboxing/pillarboxing if HDMI and SPI aspect ratios are different (Pass -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON to stretch HDMI to cover full screen if you do not care about aspect ratio) CMake Error at CMakeLists.txt:127 (message): Please define -DSPI_BUS_CLOCK_DIVISOR=<some even number> on the CMake command line! (see files ili9341.h/waveshare35b.h for details) This parameter along with core_freq=xxx in /boot/config.txt defines the SPI display speed. Smaller divisor number=faster speed, higher number=slower. -- Configuring incomplete, errors occurred! See also "/home/pi/fbcp-ili9341/build/CMakeFiles/CMakeOutput.log".
also not normal.
-
@Substring
Ok, I understand, he wanted one more parameter, not easy to read between lines. So he build something, must just find itpi@Raspian:~/fbcp-ili9341/build $ cmake -DFREEPLAYTECH_WAVESHARE32B=ON -DSPI_BUS_CLOCK_DIVISOR=8 /home/pi/fbcp-ili9341 -- Doing a Release build -- Board revision: a02082 -- Detected this Pi to be one of: Pi 2B rev. 1.2, 3B, 3B+, CM3 or CM3 lite, with 4 hardware cores and ARMv8-A instruction set CPU. -- Enabling optimization flags that target ARMv8-A instruction set (Pi 2B >= rev. 1.2, 3B, 3B+, CM3 or CM3 lite) -- Scaling source image to view. If the HDMI resolution does not match the SPI display resolution, this will produce blurriness. Match the HDMI display resolution with the SPI resolution in /boot/config.txt to get crisp pixel perfect rendering, or alternatively pass -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON to crop instead of scale if you want to view the center of the screen pixel perfect when HDMI and SPI resolutions do not match. -- Preserving aspect ratio when scaling source image to the SPI display, introducing letterboxing/pillarboxing if HDMI and SPI aspect ratios are different (Pass -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON to stretch HDMI to cover full screen if you do not care about aspect ratio) -- SPI_BUS_CLOCK_DIVISOR set to 8. Try setting this to a higher value (must be an even number) if this causes problems. Display update speed = core_freq/divisor. (on Pi3B, by default core_freq=400) -- USE_DMA_TRANSFERS enabled, this improves performance. Try running CMake with -DUSE_DMA_TRANSFERS=OFF it this causes problems, or try adjusting the DMA channels to use with -DDMA_TX_CHANNEL=<num> -DDMA_RX_CHANNEL=<num>. -- Targeting WaveShare 3.2 inch (B) display with ILI9341 -- Configuring done -- Generating done -- Build files have been written to: /home/pi/fbcp-ili9341/build
make -j seems to work, incredibly
pi@Raspian:~/fbcp-ili9341/build $ make -j Scanning dependencies of target fbcp-ili9341 [ 5%] Building CXX object CMakeFiles/fbcp-ili9341.dir/fbcp-ili9341.cpp.o [ 16%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mem_alloc.cpp.o [ 22%] Building CXX object CMakeFiles/fbcp-ili9341.dir/display.cpp.o [ 16%] Building CXX object CMakeFiles/fbcp-ili9341.dir/diff.cpp.o [ 27%] Building CXX object CMakeFiles/fbcp-ili9341.dir/dma.cpp.o [ 33%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ssd1351.cpp.o [ 38%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mailbox.cpp.o [ 44%] Building CXX object CMakeFiles/fbcp-ili9341.dir/spi.cpp.o [ 50%] Building CXX object CMakeFiles/fbcp-ili9341.dir/st7735r.cpp.o [ 55%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ili9486.cpp.o [ 61%] Building CXX object CMakeFiles/fbcp-ili9341.dir/gpu.cpp.o [ 66%] Building CXX object CMakeFiles/fbcp-ili9341.dir/keyboard.cpp.o [ 72%] Building CXX object CMakeFiles/fbcp-ili9341.dir/text.cpp.o [ 83%] Building CXX object CMakeFiles/fbcp-ili9341.dir/hx8357d.cpp.o [ 83%] Building CXX object CMakeFiles/fbcp-ili9341.dir/statistics.cpp.o [ 88%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mz61581.cpp.o [ 94%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ili9341.cpp.o [100%] Linking CXX executable fbcp-ili9341 [100%] Built target fbcp-ili9341