cheap 2.8 inch ili-9341 SPI screen retropie 60 FPS Juj method tutorial

Поделиться
HTML-код
  • Опубликовано: 14 июл 2024
  • definitive step by step tutorial for ili-9341 SPI screen 60 fps.
    huge thank you to Juj who wrote the code.
    visit his github page here;
    github.com/juj/fbcp-ili9341
    sudomod guide here;
    sudomod.com/forum/viewtopic.p...
  • ИгрыИгры

Комментарии • 95

  • @OnnieKoski
    @OnnieKoski 5 лет назад

    Awesome! I stayed up way to late last night trying to get this screen to work. I can’t wait to get home (after work) and try this out!! Thank you so much!!

  • @jukkajylanki4769
    @jukkajylanki4769 6 лет назад +5

    Nice video! One note about frame rates on RUclips: when RUclips gear icon on bottom right says Quality "1080p", it means either 24fps or 30fps, so this video does not actually show the content at the same 60fps that the display is updating at with fbcp-ili9341. RUclips has a special Quality option "1080p60" that it shows in the Gear icon when the video is at 60fps. So if this video does not look like any improvement over EmulatedBen's earlier video about ILI9341 at 30fps, that's exactly right and it's not your eyes or the display, but it's just RUclips :)

    • @bamsegod
      @bamsegod  6 лет назад +1

      absolutely correct, my crappy smartphone camera hasnt done the justice with the framerate of the screen. but this is definately better than the framebuffer fbtft method.

  • @sungodrams
    @sungodrams 6 лет назад +16

    nice vid very informative, however the background music got annoying quick and was super distracting as its louder than your voice.

    • @bamsegod
      @bamsegod  6 лет назад +6

      Rams Gonzalez thanks for the feedback. I will lower the background music in the future videos.

  • @dantepaz2406
    @dantepaz2406 5 лет назад

    Thanks for sharing mate!

  • @goldennboy1989
    @goldennboy1989 6 лет назад +4

    I want to inform you guys that adjusting the screen brightness on this screens is very easy:
    Connect LCD --> GPIO18
    sudo apt-get purge wiringpi
    sudo apt-get install wiringpi
    gpio -g mode 18 pwm
    gpio -g pwm 18 value
    where value can be anything between 0 and 255 but you can also try higher values.
    This is perfect for hooking up a poti or some buttons and let a python script run wich changes the brightness accordingly
    You can also hook up your arduino to the LCD pin and use
    analogWrite(LcdPin, value); // value can be 0-255
    You will get a brighter screen using the Arduino, since the Pi only delivers 3,3V at PWM while the Arduino does 5V (I measured 4.6V and the image is slighty darker compared to using the 5V pin of the Pi)
    Not sure if this will work on any pcb. I have exaclty the same one as in the video

    • @goldennboy1989
      @goldennboy1989 6 лет назад +1

      You can also simply put a potentiometer between 5V and you LCD LED pin. But I dont know how much energy would be wasted in that setup

  • @ChakaHamilton
    @ChakaHamilton 3 года назад +2

    In the future you might want to lower the background music it was very distracting I couldn't barely hear you.

  • @JohnUllrey
    @JohnUllrey 3 года назад +3

    I got an error that I needed a DSPI_BUS_CLOCK_DIVISOR and based on Juj's documentation on GitHub the following cmake command worked for me:
    cmake -DCMAKE_BUILD_TYPE=Release -DADAFRUIT_ILI9341_PITFT=ON -DILI9341=ON -DSPI_BUS_CLOCK_DIVISOR=6 ..

    • @bamsegod
      @bamsegod  3 года назад +1

      This video needs an update

    • @antmusic97
      @antmusic97 3 года назад

      @@bamsegod Same. Is there an easy way to get around this? Thanks!

    • @bamsegod
      @bamsegod  3 года назад +1

      @@antmusic97 the script is changed now asks you to put commands with each attribute. Try one above from John

    • @antmusic97
      @antmusic97 3 года назад +1

      @@bamsegod appreciate the quick reply, realised another comment had what I needed. Although when I entered sudo ./fbcp-ili9341 screen just stayed white. No luck. Doing a fresh install and starting back at square 1!

    • @bamsegod
      @bamsegod  3 года назад +1

      @@antmusic97 you need to double check the pin numbers I think you have one of the pins other way around hence the white screen. Either change the pins or change the script pointing to the correct pin

  • @goldennboy1989
    @goldennboy1989 6 лет назад +1

    Can you hook me up with a documentation to this display? I am trying to figure out if I can set the screen brightness via PWM at the LED pin

  • @djmaj0
    @djmaj0 4 года назад +2

    how did you pass this error? "CMake Error at CMakeLists.txt:136 (message):
    Please define -DSPI_BUS_CLOCK_DIVISOR= 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".

    • @JohnUllrey
      @JohnUllrey 3 года назад +1

      cmake -DCMAKE_BUILD_TYPE=Release -DADAFRUIT_ILI9341_PITFT=ON -DILI9341=ON -DSPI_BUS_CLOCK_DIVISOR=6 ..

  • @MattKasdorf
    @MattKasdorf 5 лет назад

    Please do an updated video with a RPi3B+ and a current version of RetroPie.

    • @bamsegod
      @bamsegod  5 лет назад

      Hi Matt I don't have a 3b but I am working on an update. Got it working on Gameboy zero and 3

  • @malcaino
    @malcaino 6 лет назад +3

    Great video! The only drawback for me is that it won't work on Raspberry pi zero. Because according to the creator of the driver it won't work on single-core-processor computers. :( . Sad, thanks for the video anyway!

    • @bamsegod
      @bamsegod  6 лет назад

      sorry to know that. I was hoping that it would work but its ok. for me the key advantage is to use this screen with RPI3 is that i can fit it within some confined spaces like a orginal gameboy case. the analogue screens are too bulky and power hungry

    • @R3D_T1G3R
      @R3D_T1G3R 6 лет назад

      EmulatedBen Hi can you help me pls i installed PuTTY Connected the PI and my Pc to The Same Network and it Says To me
      „Network error: Connection refused“

    • @R3D_T1G3R
      @R3D_T1G3R 6 лет назад

      EmulatedBen okay i fixed it ist was The wrong ip but next Problem if i Type make -j it says
      Make : *** No targets specified and no makefile found. Stop.

    • @bamsegod
      @bamsegod  6 лет назад

      R3D T1G3R did you download the file. You want to be in that extracted folder to make -j

  • @LucreBem
    @LucreBem Год назад

    I don't have the wireless version, what should I do?

  • @joshuak4553
    @joshuak4553 6 лет назад

    I would like to try this out on a pi zero w with this exact screen. I'm very new to this stuff so bear with me...
    I have two questions:
    Will this have any sort of impact on the Pi's CPU/GPU performance at such speeds?
    And second question... Will 5v be harsh on the backlight?

    • @bamsegod
      @bamsegod  6 лет назад

      If you are worried about 5v to led backlight just supply 3.3 via pin 17. I haven’t noticed any impact on gpu performance on rpi3. I haven’t got a rpi zero w to try. I am going to do some tests on the rpi zero in future so I will report back. Good luck

    • @jukkajylanki4769
      @jukkajylanki4769 6 лет назад +1

      Unfortunately Zero is out of the question at this point. Added a note to Readme about this, github.com/juj/fbcp-ili9341/commit/9926321d3d0270e324d9d8879e00456fa0a97aa3 . I've been hacking to try to get DMA working, and if it works out in the future, then perhaps that will enable the driver to be used on Zero as well.

  • @goldennboy1989
    @goldennboy1989 6 лет назад +2

    Is there any way to adjust the screen brightness on those red pcb panels?

    • @bamsegod
      @bamsegod  6 лет назад

      Rodja Raskolnikow if you supply 5v it would be brighter and 3 v would be dimmer those are the only 2 options

    • @goldennboy1989
      @goldennboy1989 6 лет назад +1

      I have the same panel but with a different PCB (Watterott) and it's possible to adjust brightness via PWM. I was hoping that, since in your last video you connected the LED-Pin to GPIO18 (PWM0) the same would be possible with this board. do you have an old setup at hand where you connected your LED pin to GPIO18? Then try adjusting your brightness with this commands: $ gpio -g mode 18 pwm
      $ gpio -g pwm 18 X //where X is a value between 0 and 1023

    • @goldennboy1989
      @goldennboy1989 6 лет назад +1

      I find adjustable screen brightness very pleasent especially when playing in bed or in bright sunlight. It also saves a lot battery time.

    • @thecrazy8888
      @thecrazy8888 2 года назад

      @@bamsegod What if we put a potentiometer on the LED line?

  • @antmusic97
    @antmusic97 3 года назад

    So its all running, but my framerate is horrible. Can't even run sonic, its like a slideshow. Tried messing with the SPI bus settings, tried overclocking but its just unplayable. Any ideas? Thanks!

  • @jm036
    @jm036 5 лет назад

    You can just use the adafruit pitft software with these.

    • @bamsegod
      @bamsegod  5 лет назад

      Probably not. The refresh would crap the colours

  • @s2supra800
    @s2supra800 4 года назад

    Hi, I bought the wrong one. The ones for Arduino. Is there a way to connect those kind to the raspberry pi? Thanks.

    • @bamsegod
      @bamsegod  4 года назад

      Yes should be ok as long as it has SPI interface

  • @pauld1241
    @pauld1241 6 лет назад

    Thank you so much for this video! It worked, my SPI display is running at 60fps, but the display is backwards and the colors are screwed up. Can anybody help?

    • @bamsegod
      @bamsegod  6 лет назад

      What do you mean by backward?

    • @pauld1241
      @pauld1241 6 лет назад +1

      nvr mind. I fixed it by disabling my old fbcp driver and setting "display_rotate=2". By backwards i meant that everything on the display was flipped like a mirror of what it should be.

    • @bamsegod
      @bamsegod  6 лет назад

      end mii glad you fixed it. You do need to disable fbcp as shown in the video. Enjoy.

    • @pauld1241
      @pauld1241 6 лет назад

      Thanks!

  • @benjaminrobinson251
    @benjaminrobinson251 2 года назад

    I was done with the background music @ 0:40....

    • @bamsegod
      @bamsegod  2 года назад

      Yeah I hear you. Wannabe content creator. 😂😂😂

  • @altaafsayedabdurrahaman2705
    @altaafsayedabdurrahaman2705 5 лет назад +1

    Thanks for the video. Im using a 2.2" ili9341 screen and got it working with a pi zero W. Just 2 issues i need help with. On the top part of the screen there is some stats permanently being displayed and constantly refreshing (CPU, GPU, SPI etc). How do I remove this? Secondly I am getting 60fps from nes games but mame is slow and I'm not getting 60fps. I only tested these 2 emulators so far. Any help?

    • @bamsegod
      @bamsegod  5 лет назад

      Yes I have noticed that as well. I will check with Jun on how to remove it. Also it uses one hour core for acceleration of the screen so some games could run slow. What did card are you using?

    • @BobrDrob
      @BobrDrob 5 лет назад

      So did you use the same solution to get this working on ZERO? It was said this is only working on 4-core CPU...

    • @altaafsayedabdurrahaman2705
      @altaafsayedabdurrahaman2705 5 лет назад +1

      @@BobrDrob Yes I did.

    • @yingbxua6240
      @yingbxua6240 5 лет назад

      Altaaf Sayedabdurrahaman share the how-to please

    • @BobrDrob
      @BobrDrob 5 лет назад +1

      @@yingbxua6240 I've done this with my LCD and Zero on the weekend. Everything is very straightforward. Just use the Sudomod link in the video description. The only thing was a bit off - you need to specify the SPI clock divisor. So your cmake command will look like that:
      cmake -DCMAKE_BUILD_TYPE=Release -DADAFRUIT_ILI9341_PITFT=ON
      -DSPI_BUS_CLOCK_DIVISOR=6 -DSTATISTICS=0 ..
      The last option disables the Statistics on the screen
      Just go and try, it is10 mins not more

  • @wenfengpiao5938
    @wenfengpiao5938 21 день назад

    Can I use the Raspberry Pi 3B+ and follow this tutorial?

    • @bamsegod
      @bamsegod  20 дней назад

      yes it should work on 3B+

  • @seanabsher5577
    @seanabsher5577 5 лет назад

    EmulatedBen , I followed all instructions carefully , paused your video sometimes to follow pin connections , etc .... and all I get is a white screen. Any idea what went wrong?
    I have one of the red PCB ili9341 2.4 inch 240x320 LCD screens

    • @bamsegod
      @bamsegod  5 лет назад +1

      Sean can you post a picture of the pinout of your screen. it seems like you have D/C and one other pin mixed up or may be its slightly different on your screen. white screen occures when you have pins not transmitting data.

    • @seanabsher5577
      @seanabsher5577 5 лет назад

      @@bamsegod I will as soon as I am free to take photos. Thanks for your reply

    • @seanabsher5577
      @seanabsher5577 5 лет назад

      First is the pins on the ILI9341 PCB i.imgur.com/0BsyGqR.jpg (the blurry wire for VCC is brown , which connects to top left pin on GPIO)
      Raspberry pi I'm using is a Raspberry pi 3 B (not the B+ )
      Then the view of the Raspberry pi GPIO from the left of GPIO: i.imgur.com/XSX23OU.jpg
      Then the View of the Raspberry pi GPIO from the right of GPIO: i.imgur.com/6wIQeBU.jpg

    • @seanabsher5577
      @seanabsher5577 5 лет назад

      I forgot to mention, the blue wire on the bottom of the GPIO is just a ground tap to go with the red wire at the top right GPIO for 5v power for a fan.

    • @seanabsher5577
      @seanabsher5577 5 лет назад

      I just rewatched your video and followed the wires by hand and they all go where the beginning of the video says they should go, is there any configuration I need to do differently in the make / build for the "driver" ?

  • @altaafsayedabdurrahaman2705
    @altaafsayedabdurrahaman2705 6 лет назад

    Can this be done on a TFT LCD 3.95 Inch Screen For Raspberry Pi 2/3 with a Graphic Chipset using the ILI9488? This is the 1 I have www.robotics.org.za/raspberry-pi-amp-accesories/RPA29501R . I dont know the pinouts on this board. Can you help please?

    • @bamsegod
      @bamsegod  6 лет назад

      I am not too sure. give it a go. check the wiring on your screen before powering it on though

  • @debjoybiswas6526
    @debjoybiswas6526 4 года назад

    Can we make a dyi gameboy using this

  • @abrahamsanchez2461
    @abrahamsanchez2461 4 года назад

    when i write make -j didn´t appear something, am i doing something wrong?

    • @bamsegod
      @bamsegod  4 года назад +1

      cmake -DILI9341=ON -DGPIO_TFT_DATA_CONTROL=24 -DGPIO_TFT_RESET_PIN=25 -DSPI_BUS_CLOCK_DIVISOR=6
      Try above before make -j step

    • @abrahamsanchez2461
      @abrahamsanchez2461 4 года назад

      @@bamsegod ok, i will try it c:

    • @abrahamsanchez2461
      @abrahamsanchez2461 4 года назад

      @@bamsegod it compiles, but nothing appears in the tft screen, i think it is the same model that yours

    • @bamsegod
      @bamsegod  4 года назад +1

      @@abrahamsanchez2461 check the wiring make sure that you datacontrol pin is going to gpio 24 (not pin 24) and reset pin is going to gpio 25.

    • @abrahamsanchez2461
      @abrahamsanchez2461 4 года назад

      I make it Even longer, with all the information in they Github, but yeah thats my problem, pin isnt the dame as gpio

  • @jnkmal9519
    @jnkmal9519 5 лет назад

    The cmake step failed on my zero W. Here's what it spit out (bottom 5 lines):
    cmake -DCMAKE_BUILD_TYPE=Release -DADAFRUIT_ILI9341_PITFT=ON ..
    -- The C compiler identification is GNU 6.3.0
    -- The CXX compiler identification is GNU 6.3.0
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Doing a Release build
    -- Board revision: 9000c1
    -- Detected this Pi to be one of: Pi A, A+, B rev. 1, B rev. 2, B+, CM1, Zero or Zero W, with single hardware core and ARMv6Z instruction set CPU.
    -- Targeting a Raspberry Pi with only one hardware core
    -- Enabling optimization flags that target ARMv6Z instruction set (Pi Model A, Pi Model B, Compute Module 1, Pi Zero/Zero W)
    -- 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)
    CMake Error at CMakeLists.txt:130 (message):
    Please define -DSPI_BUS_CLOCK_DIVISOR= 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".

    • @jnkmal9519
      @jnkmal9519 5 лет назад

      In the ../CMakeLists.txt there is a line around 130 where the SPI bus clock divisor is set to 0. The line looks like this:
      set(SPI_BUS_CLOCK_DIVISOR 40 CACHE STRING "Specify the SPI0 CDIV ... blah blah blah
      I think it wants an even number there. I tried 40, as it recommended, but the make -j failed at 94% while throwing errors about SPI_BUS_CLOCK_DIVISOR. Any idea what that number should actually be?

    • @jnkmal9519
      @jnkmal9519 5 лет назад +3

      I figured it out! I left the CMakeLists.txt as it is. The clock divisor needed to be set with the cmake command. Instead of entering:
      cmake -DCMAKE_BUILD_TYPE=Release -DADAFRUIT_ILI9341_PITFT=ON ..
      I entered this and it worked:
      cmake -DCMAKE_BUILD_TYPE=Release -DADAFRUIT_ILI9341_PITFT=ON -DSPI_BUS_CLOCK_DIVISOR=40..
      That's all one line, btw. Not sure if 40 is the best value, since I just used it because the above txt file said it is safe, but the screen is working and the frame rate appears to be much better.
      For some reason, there is a bunch of data at the top of the screen. It looks like frame rate, mbpa, some kind of frequency in Hz, temperature in c, CPU, DMAT, SPI MHz, and GPU. Anyone know how to get rid of it?

  • @Shad0wX
    @Shad0wX 4 года назад

    6:02 i get error

    • @bamsegod
      @bamsegod  4 года назад

      There is a new method now. You need to specify more parameters in cmake

  • @Patoteosis
    @Patoteosis 4 года назад

    6:05 doesnt work

    • @bamsegod
      @bamsegod  4 года назад

      The method is changed slightly, check some comments below

  • @BrainSlugs83
    @BrainSlugs83 5 лет назад

    Dude... can you turn the music off while you talk? It's painful and hard to hear you.

    • @bamsegod
      @bamsegod  5 лет назад +2

      Sorry can't do anything now. Rookie mistake on my part. If you have any trouble understanding anything let me know and I will try my best to resolve it. Cheers

    • @BrainSlugs83
      @BrainSlugs83 5 лет назад

      @@bamsegod thanks, better luck next time.

    • @bamsegod
      @bamsegod  5 лет назад +1

      @@BrainSlugs83 cheers.