RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    How do I install fbcp-ili9341 drivers onto my Waveshare 3.2"?

    Scheduled Pinned Locked Moved Help and Support
    fbcp-ili9341tft screendrivers
    6 Posts 3 Posters 2.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      ZackDaTitan
      last edited by

      I have a Waveshare 3.2" TFT display and I would like to know if this driver will increase my framerate from what appears to be <10fps, and if so how would I go about installing said drivers? I'm quite new at the Raspberry Pi

      1 Reply Last reply Reply Quote 0
      • obsidianspiderO
        obsidianspider
        last edited by

        This might help

        📷 @obsidianspider

        Z 1 Reply Last reply Reply Quote 0
        • Z
          ZackDaTitan @obsidianspider
          last edited by

          @obsidianspider How would I override my existing fbcp driver from waveshare?

          obsidianspiderO 1 Reply Last reply Reply Quote 0
          • obsidianspiderO
            obsidianspider @ZackDaTitan
            last edited by

            @zackdatitan I'm not sure how you installed it. Check your config files I guess.

            📷 @obsidianspider

            1 Reply Last reply Reply Quote 0
            • J
              juj
              last edited by

              Try the following

              git clone https://github.com/juj/fbcp-ili9341.git
              cd fbcp-ili9341
              mkdir build
              cd build
              cmake -DILI9341=ON -DGPIO_TFT_DATA_CONTROL=<the_pin_number_you_connected_DC_line_to> -DGPIO_TFT_RESET_PIN=<the_pin_number_you_connected_the_reset_line_to> -DSPI_BUS_CLOCK_DIVISOR=6 ..
              make -j
              sudo pkill fbcp # If the previous 'fbcp' program was running, it needs to be killed
              sudo ./fbcp-ili9341

              The pin numbering is in "BCM" pins, which you can find e.g. at https://pinout.xyz/# , check the "BCM xy" names.
              If the output appears garbled, try increasing -DSPI_BUS_CLOCK_DIVISOR= to a higher value,like 8 or 10.

              You need to delete dtoverlay=waveshare32b,... line in your /boot/config.txt, as well as dtparam=spi=on line.

              For more details on how to tune the performance, check out https://github.com/juj/fbcp-ili9341/blob/master/ili9341.h#L24 . In particular, you may want to underclock the BCM core down from 400 to something like 300 or 280, so that you can utilize a smaller SPI bus clock divisor to get a higher SPI bus speed.

              1 Reply Last reply Reply Quote 0
              • J
                juj
                last edited by

                Performance-wise, if your Waveshare 3.2" is able to reach 73.7 Mhz or higher, you will get a solid 60fps on the display. In such case, you can try enabling NO_INTERLACING in config.h. SPI bus speeds 66Mhz and higher will also in practice run at 60fps. 40Mhz-60MHz generally resort to interlacing every now and then, and < 40 MHz will typically run fully interlaced (e.g. ILI9486 based displays)

                This video

                is running a Raspberry Pi CM3 with a Waveshare 3.2" with SPI bus at 66MHz.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.