Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 8 of 8
  1. #1
    Member peddanet's Avatar
    Join Date
    Jun 2020
    Location
    Bochum, NRW, Germany
    Posts
    42

    Problem PicorePlayer with ELECROW Touch Display 7" 1024x600 with Jivelite

    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...
    Name:  Screenshot_20220104-191404_Gallery.jpg
Views: 414
Size:  97.3 KB'# Pic is from 5" screen, but looks the same on 7" #
    Name:  20220112_151341.jpg
Views: 404
Size:  243.3 KB
    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
    Last edited by peddanet; 2022-01-12 at 07:53. Reason: touch does not work on PiCorePlayer besides calibration tool

  2. #2
    Member peddanet's Avatar
    Join Date
    Jun 2020
    Location
    Bochum, NRW, Germany
    Posts
    42

    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":
    Name:  2022-01-12 23_12_13-pCP - Jivelite Tweaks.png
Views: 327
Size:  42.8 KB
    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]
    Especially all custom changes and the framebuffer, display_rotate changes are in my opinion the essential ones.

    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
    Install via Tweaks Jivelite, set it to "Set Autostart: No" and reboot, either with

    Code:
    $sudo reboot
    or on main page in the browser.

    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
    Now start on tweaks page on the PicorePlayer web page of your device and set Jivelite to start at each boot (Set Autostart: yes). Press save and reboot. Done!

    The result looks like this, I am enjoying the sound after a hard days of tweaking and tricking :
    Name:  20220112_235918.jpg
Views: 331
Size:  160.1 KB
    Name:  20220112_235854(0).jpg
Views: 327
Size:  189.6 KB

    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:

  3. #3
    Senior Member paul-'s Avatar
    Join Date
    Jan 2013
    Posts
    4,848
    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

  4. #4
    Member peddanet's Avatar
    Join Date
    Jun 2020
    Location
    Bochum, NRW, Germany
    Posts
    42

    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

    Quote Originally Posted by paul- View Post
    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.

  5. #5
    Senior Member
    Join Date
    May 2017
    Location
    Saint-SimÚon, France
    Posts
    110
    Quote Originally Posted by peddanet View Post
    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
    Here would be a good place to start:

    https://www.raspberrypi.com/document...#video-options

  6. #6
    Member peddanet's Avatar
    Join Date
    Jun 2020
    Location
    Bochum, NRW, Germany
    Posts
    42
    @Yatsushiro
    Thank you, terrific! I really did not see this before!

    Quote Originally Posted by Yatsushiro View Post
    Here would be a good place to start:

    https://www.raspberrypi.com/document...#video-options

  7. #7
    Senior Member paul-'s Avatar
    Join Date
    Jan 2013
    Posts
    4,848
    Interesting you have hdmi and a spi screen configured. Why is the piscreen entry there if your screen is hdmi?
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://www.picoreplayer.org

    Please donate if you like the piCorePlayer

  8. #8
    Member peddanet's Avatar
    Join Date
    Jun 2020
    Location
    Bochum, NRW, Germany
    Posts
    42
    Quote Originally Posted by paul- View Post
    Interesting you have hdmi and a spi screen configured. Why is the piscreen entry there if your screen is hdmi?
    Hi Paul,

    I did not see that so clearly as I have copied and pasted without really knowing what parts belong to which technology! So could you explain me, where what lines are mixed up and belong either to SPI or HDMI (I have definitely here an HDMI, but also have solutions with a SPI, and as I assume, both running on more or less the same config files (did not check that especially, only from memory !!)...

Posting Permissions

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