Hi,
here I described how to setup the display in Raspberry Pi OS. It worked well, even with flipped display and touch! But in PicorePlayer I have unfortunately again Problems with correct setup of the display (I think now that touch calibrating even with flipped (180° rotated) works, cause the calibration program ts_calibrate did show up the correct matrix, and was accessible):
How do I have setup Jivelite for a flipped touch screen 7" 1024x600? The logo came up right and before I was flipping the screen, Jivelite was working too! After a time of doing nothing Jivelite hangs up the complete system, it could not be warm resetted, instead I had to replug the Pi...
'# Pic is from 5" screen, but looks the same on 7" #
Please give me hints!
[UPDATE] touch does not work on PiCorePlayer besides calibration tool. it rotates the other way round, and is upside down...
Greetz Peter
Results 1 to 8 of 8
Hybrid View
-
2022-01-12, 06:52 #1
Problem PicorePlayer with ELECROW Touch Display 7" 1024x600 with Jivelite
Last edited by peddanet; 2022-01-12 at 07:53. Reason: touch does not work on PiCorePlayer besides calibration tool
-
2022-01-12, 16:12 #2
Solved - it was a bit hairy and works with best guess method ;-)
First of all:
- Does anybody know some structured documentation on all the prarameters of the dtoverlay hdmi settings of raspberry Pi?
- How can I detect the hdmi timings and settings for my very special display and driver, if the selling company does not offer it? Is there some indirect (software) or hardware derived method getting or deriving these values?
Hi all,
finally I was able to solve this issue, as expected it was not straight forward, so I hope I won't miss any necessary step to rebuild my solution with a similar display (so I hope the approach is usable):
Problem
There is no fitting skin for Jivelite. I did not find a solution to install and USE the other skins in the other packages. The subset of skins was small (7), I did not find the often referenced skin Joggler or Pi Grid Skin. I really stopped, installed, rebooted very often in many combinations. I found "only" these":
According to my testings, you must find a resolution which finally fits to your touch calibration. If you do the calibration with the framebuffer width and height set to 1024x600 and calibrate afterwards with ts_calibrate, the calibration data was not fitting to the resolution of 800x480 in the end of Jivelite. To shrink framebuffer to 800x480 was one major part of the solution.
Basic Idea for solution
After reading a lot in different forums my idea was to calibrate the touch and the display for an assisted resolution. The nearest resolution for my 1024x600 display was 800x480. I had to set the framebuffer accordingly and then calibrate the touch with that resolution. Then Jivelite finally starts. There was really no way to operate on the original resolution of 1024x600 and I tried nearly 24 h continuously any combination with excluding...
So I don't know, but I am happy to find a solution working with touch and display for the ELECROW Touch Display 7" 1024x600 with a resolution of 800x480:
Change config.txt on Raspberry Pi in /mnt/mmcblk0p1, I have highlighted all changes I have made:
Code:$ c1 $ m1 $ vi config.txt [Press i for insert, and copy the following into the script] # For more options and information see # http://rpf.io/configtxt # Some settings may impact device functionality. See link above for details # RPi PI0-1-2 are not supported on this image. [PI02] initramfs rootfs-pCP64-13.1.gz,modules-5.10.77-pcpCore-v8.gz followkernel kernel kernel51077v8.img arm_64bit=1 [PI3] initramfs rootfs-pCP64-13.1.gz,modules-5.10.77-pcpCore-v8.gz followkernel kernel kernel51077v8.img arm_64bit=1 [PI4] initramfs rootfs-pCP64-13.1.gz,modules-5.10.77-pcpCore-v8.gz followkernel kernel kernel51077v8.img arm_64bit=1 [CM4] otg_mode=1 [ALL] cmdline cmdline.txt # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border overscan_left=16 overscan_right=16 overscan_top=16 overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. framebuffer_width=800 framebuffer_height=480 # uncomment if hdmi display is not detected and composite is being output # uncomment to force a specific HDMI mode (this will force VGA) #hdmi_group=1 #hdmi_mode=1 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #---------------------------------------------------- dtparam=i2c_arm=on,spi=on,i2s=on #---pCP---------------------------------------------- # pCP does not use graphics chip by default, free up most memory gpu_mem=128 initial_turbo=60 # onboard audio overlay dtparam=audio=on audio_pwm_mode=2 # For Jivelite use with HDMI screens # Comment out the lines above # gpu_mem=xx dtparam=audio=on # Then uncomment the following line. #dtoverlay=vc4-kms-v3d # #Disable Bluetooth on both rpi3 and rpi0W dtoverlay=disable-bt # uncomment to overclock the arm. 700 MHz is the default. #arm_freq= #gpu_freq= #core_freq= #sdram_freq= #over_voltage= #force_turbo= # Remove audio hiss # disable_audio_dither=1 #If booting from USB or network, enable this option to reduce CPU load looking for a non-existing card. #dtparam=sd_poll_once display_rotate=2 # Screen rotation 0 => 0 degrees, 2 => 180 degrees #lcd_rotate=0 #Custom Configuration Area, for config settings that are not managed by pCP. #pCP will retain these settings during insitu-update #---Begin-Custom-(Do not alter Begin or End Tags)----- max_framebuffer_height=600 max_framebuffer_width=1024 max_usb_current=1 config_hdmi_boost=10 #config_hdmi_boost=7 hdmi_group=2 hdmi_mode=1 hdmi_mode=88 hdmi_drive=1 hdmi_cvt 1024 600 60 6 0 0 0 #---End-Custom---------------------------------------- [Press Esc, and exit with Shift-zz]
Futhermore one must add a jivelite.sh to the /mnt/mmcblk0p2/tce :
Code:$ ce $ sudo vi jivelite.sh [Press i for insert, and copy the following into the script] #!/bin/sh #EVENTNO=$(cat /proc/bus/input/devices | awk '/QDtech\ MPI7003/{for(a=0;a>=0;a++){getline;{if(/mouse/==1){ print $NF;exit 0;}}}}') EVENTNO=$(cat /proc/bus/input/devices | awk '/QDtech MPI7003/{for(a=0;a>=0;a++){getline;{if(/mouse/==1){ print $NF;exit 0;}}}}') # Define custom JogglerSkin size export JL_SCREEN_WIDTH=800 export JL_SCREEN_HEIGHT=480 #export JL_SCREEN_WIDTH=1024 #export JL_SCREEN_HEIGHT=600 export JIVE_NOCURSOR=1 export SDL_VIDEODRIVER=fbcon export SDL_FBDEV=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/$EVENTNO export SDL_MOUSEDRV=TSLIB ## Just debugging info echo Starten Jivelite... echo Starten Jivelite... > /home/tc/logJivelite.sh.log echo JL_SCREEN_WIDTH=${JL_SCREEN_WIDTH} >> /home/tc/logJivelite.sh.log echo JL_SCREEN_HEIGHT=${JL_SCREEN_HEIGHT} >> /home/tc/logJivelite.sh.log echo JIVE_NOCURSOR=${JIVE_NOCURSOR} >> /home/tc/logJivelite.sh.log echo SDL_VIDEODRIVER=${SDL_VIDEODRIVER} >> /home/tc/logJivelite.sh.log echo SDL_FBDEV=${SDL_FBDEV} >> /home/tc/logJivelite.sh.log echo TSLIB_TSDEVICE=${TSLIB_TSDEVICE} >> /home/tc/logJivelite.sh.log echo SDL_MOUSEDRV=${SDL_MOUSEDRV} >> /home/tc/logJivelite.sh.log # Set touch calibration file TSLIB_CALIBFILE=/usr/local/etc/pointercal # Jivelite interface framerate export JIVE_FRAMERATE=22 # Set 32bit color /usr/sbin/fbset -depth 32 # Set custom screen resolution /usr/sbin/fbset -xres 800 -yres 480 #/usr/sbin/fbset -xres 1024 -yres 600 while true; do /opt/jivelite/bin/jivelite >> /var/log/jivelite.log 2>&1 sleep 3 done [Press Esc, and exit with Shift-zz] $ sudo chmod 755 jivelite.sh
Code:$sudo reboot
After reboot one have to calibrate the touch screen with the following command (before Jivelite isn't installed and STOPPED, the command is not available (package touchscreen-5.10.77-pcpCore-v8.tcz ??)):
Code:# find out which event is responsible for your touch, in my case it was one time unbelievably event5 (and I had an ADS7846 controller on event6 ( but was not working)), but this changes from time to time (here event0): $ cat /proc/bus/input/devices I: Bus=0003 Vendor=0483 Product=5750 Version=0101 N: Name="QDtech MPI7003" P: Phys=usb-3f980000.usb-1.1.3/input0 S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0/0003:0483:5750.0001/input/input0 U: Uniq=瓿적죯耈쌂 青逢¢Ŵࣈʀ㏃ﳘ陂ΐ H: Handlers=mouse0 event0 B: PROP=0 B: EV=1b B: KEY=400 0 0 0 0 0 B: ABS=10001000003 B: MSC=10 $ cat /proc/bus/input/devices | awk '/QDtech MPI7003/{for(a=0;a>=0;a++){getline;{if(/mouse/==1){ print $NF;exit 0;}}}}' event0 $ ll /dev/fb* crw-rw---- 1 root staff 29, 0 Jan 1 1970 /dev/fb0 # put the found event and the found framebuffer device (memory for the display) into the next command $ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 /usr/local/bin/ts_calibrate # Test the result (drag and draw then quit, look if the screen could be fully accessed and all Buttons and so on are visible) $ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 /usr/local/bin/ts_test # finally save the results on the web page main "Backup" or via $ sudo filetool.sh -b
The result looks like this, I am enjoying the sound after a hard days of tweaking and tricking :
if anybody has more detailed information, that let the fog of horror vanish and clarifies how to generally approach a solution for *ANY* display which is offered anywhere in the net, I really would appreciate any comment. If my assumptions are partly wrong please correct!
-----
References:
-
2022-01-12, 19:13 #3
Default calibrations are set for the 800x480 raspberry pi display. And that is the resolution required for the Grid and joggler skins
Everything else requires a lot of manual setup. Screen makers are notorious for poor documentation, so there are guides similar to what you have posted, but every screen is different.piCorePlayer a small player for the Raspberry Pi in RAM.
Homepage: https://www.picoreplayer.org
Please donate if you like the piCorePlayer
-
2022-01-13, 22:53 #4
dtoverlay, hdmi-timings and so on - Where to look for?
Hi Paul,
may I ask you a question?
I totally understood the policy here, but could you tell me where to find for example the description of these parameters (especially the bold ones):
====
display_rotate=2
max_usb_current=1
hdmi_force_hotplug=1
config_hdmi_boost=7
hdmi_group=2
hdmi_mode=1
hdmi_mode=88
hdmi_drive=1
hdmi_cvt 1024 600 60 6 0 0 0
====
hdmi_group=2
hdmi_mode=87
hdmi_timings=1080 1 26 4 50 1920 1 8 2 6 0 0 0 60 0 135580000 3
=====
dtoverlay=piscreen,speed=24000000,rotate=90
=====
Why do they sometimes apply, sometimes not (for example dtoverlay=[...]rotate=180 did not work as far as my experiences). What is the related driver and what its API? Which busses are involved and how to find out which one is served by the disply actually? BTW are there any schematics on the pi?
And if you see the hdmi timings, how would you achieve to derive them from what? Guessing??
Happy to look forward your answer!
BR Peter
-
2022-01-14, 03:06 #5
- Join Date
- May 2017
- Location
- Saint-Siméon, France
- Posts
- 110
Here would be a good place to start:
https://www.raspberrypi.com/document...#video-options
-
2022-01-17, 14:17 #6