retropie and waveshare 32b?
-
@rog585 I copied this from the Adafruit site. Sometime you can miss something on the webpage. http://pastebin.com/whMCbDAb I had a thought. Could the screen be bad?
-
Will give it another go, the screen is good. It works with the image given from waveshare. Just when i do anything with it without the waveshare image it is just a white screen.
-
If you have a 3.5 inch waveshare screen use the below code, it works and now i have a mini screen working with Retropie
git clone https://github.com/swkim01/waveshare-dtoverlays.git
sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/
Note! If you're running the latest Retropie with linux 4.4 kernel or newer (check in terminal uname -a), use the following instead;
git clone https://github.com/swkim01/waveshare-dtoverlays.git
sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/waveshare35a.dtbo
now edit your config.txt
sudo nano /boot/config.txt
and add these two lines to the very bottom;
dtparam=spi=on
dtoverlay=waveshare35a
ctrl+x then y then entersudo reboot
again quit ES drop to command line, check the existence of your new tft display by typing;
ls /dev/fb*
you should see dev/fb0 /dev/fb1
/dev/fb1 is your tftif you don't see /dev/fb1 you've messed up and need to start over
if all is good, now we get retropie output to your tft;sudo apt-get install cmake
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build
cd build/
cmake ..
make
sudo install fbcp /usr/local/bin/fbcp
now to launch fbcp automatically we need to add;
sudo nano /etc/rc.local
Before, the final “exit 0” line, add the following:
/usr/local/bin/fbcp &
ctrl+x then y then entersudo reboot
-
@senkun do you know how to increase the frames per second to make it run smoother?
-
@rog585 Glad to see you got your screen working. I got burned using the Waveshare drivers when I first started to setup my screen and so I didn't recommend that. I don't know about their setup for but for the Adafruit setup you will find in the /boot/config.txt this line " dtoverlay=pitft35r,rotate=90,speed=64000000,fps=30". The "fps" is for the frames per second. I can't say the same is in your setup but it's worth a look. If you change it just be sure to backup your settings first now that it's working.
-
@glennlake its the same, as you suggested. its sooo jumpy though i have tried different speeds and fps but not great. This i will turn it into a digital photo frame for work. Have sine bought a 3.2 screen as the feedback was better. Thanks for all your help.
-
lol did you type all that or did you just cut and paste all that from my guide right on top?
-
@rog585 said in retropie and waveshare 32b?:
@senkun do you know how to increase the frames per second to make it run smoother?
Nope. Limitation of bandwidth on SPI. 3.5" and 4" screens will have tearing and lag, they are 480x320 compared to the 3.2" screen with 320x240. So they're struggling to push double the pixels. If you need a larger screen for gaming, most people just go composite or HDMI. There are a lot of cheap nobrand composite 4.3" screens you can try, or use the 5" or 7" HDMI screens from waveshare.
Using the guide I wrote above, second post on this thread, you can get waveshare 3.2", 3.5" and 4" TFT screens working.
If you're using their 3.5" or 4" screens, substitute these lines:
git clone https://github.com/swkim01/waveshare-dtoverlays.git
sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/
But if your linux kernel is 4.4 or newer, use this instead:
sudo cp waveshare-dtoverlays/waveshare35a-overlay.dtb /boot/overlays/waveshare35a.dtbo
-
@senkun said in retropie and waveshare 32b?:
Nope. Limitation of bandwidth on SPI. 3.5" and 4" screens will have tearing and lag
Can't you increase the speed of SPI bus to (somewhat) work around this?
-
hello guys,
first of all I wanna thank to all that helped me alot to set up wareshare 3.5 inch LCD to my Rpi for Retropie. senkun's explanation is quite good.
but Ive a problem, frame rate is so bad to play games, and really annoying after struggling to set the LCD up.I ve the latest Retropie 4.0.2 and Waveshare 3.5 inch LCD. tried to setup the speed and set it to 20000000, cuz when its more than it, I got invalid colors. (Pls do not set the speed lower than xx million, if yes, you need to wait a lot to boot - I made it 5 and to solve it quickly re installed retropie) and fps=60, its still annoying and have late response.
Do you have any solution or suggestions how to work it faster? thanks in advance.
-
hello again,
after many times research, I couldnt find a way to speed up my 3,5 inch waveshare LCD, instead I bought 3,2 inch same brand. it works awesome, I tried it with Gameboy Advance and Neo Geo roms its just perfect. and the thing that make me feel great is playing Quake 3 on my lit LCD w/o any problems.
I dont know if I do the calculation right but, 3,5 has double pixels , and 3,2 is 46~48mhz, 3,5 16~18mhz. so I can say that 3,2 is faster 6 x than 3,5.
:):)thanks everyone.
-
@senkun EVEN I'M FACING WITH A LAGGED GAMEPLAY EVEN ON NES ROMS. I'M USING A WAVESHARE 32B 3.2 LCD SCREEN AND IT HAS BEEN CONFIGURED AS PER THE INSTRUCTIONS SHOWN HERE. BUT I'M AT A LOSS AS TO HOW TO TWEAK THE FPS. INFO ON THAT PART WOULD BE HIGHLY GRATIFIED.
-
hi Bikash,
I m using 3.2 waveshare and it works fine, I will share the codes or whole config file with you , once Im at home.
-
All works up until I run the "make" command and then I got a whole load of errors popup.
[100%] Building C object CMakeFiles/fbcp.dir/main.c.o
/home/osmc/rpi-fbcp/main.c:8:22: fatal error: bcm_host.h: No such file or directory
#include <bcm_host.h>
^
compilation terminated.
CMakeFiles/fbcp.dir/build.make:54: recipe for target 'CMakeFiles/fbcp.dir/main.c.o' failed
make[2]: *** [CMakeFiles/fbcp.dir/main.c.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/fbcp.dir/all' failed
make[1]: *** [CMakeFiles/fbcp.dir/all] Error 2
Makefile:76: recipe for target 'all' failed
make: *** [all] Error 2
osmc@osmc:~/rpi-fbcp/build$ sudo nano /boot/config.txt
osmc@osmc:~/rpi-fbcp/build$ make
[100%] Building C object CMakeFiles/fbcp.dir/main.c.o
/home/osmc/rpi-fbcp/main.c:8:22: fatal error: bcm_host.h: No such file or directory
#include <bcm_host.h>
^
compilation terminated.
CMakeFiles/fbcp.dir/build.make:54: recipe for target 'CMakeFiles/fbcp.dir/main.c.o' failed
make[2]: *** [CMakeFiles/fbcp.dir/main.c.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/fbcp.dir/all' failed
make[1]: *** [CMakeFiles/fbcp.dir/all] Error 2
Makefile:76: recipe for target 'all' failed
make: *** [all] Error 2Any ideas what is going wrong?
-
@senkun Thanks for your post, it was simple and plain worked. For some reason though, retropie has just suddenly stopped outputting to the screen - I haven't updated anything or changed anything, I did scrape some games. Could that have done it??? I tried to redo all the steps but since I already have everything installed and have already edited the config files as directed, I can't figure out what else to do. Any ideas?
For more options and information see
http://www.raspberrypi.org/documentation/configuration/config-txt.md
Some settings may impact device functionality. See link above for details
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=16uncomment to force a console size. By default it will be display's size minus
overscan.
#framebuffer_width=1280
#framebuffer_height=720uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1uncomment to force a HDMI mode rather than DVI. This can make audio work in
DMT (computer monitor) modes
#hdmi_drive=2
uncomment to increase signal to HDMI, if you have interference, blanking, or
no display
#config_hdmi_boost=4
#framebuffer_width=1280
#framebuffer_height=720uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1uncomment to force a HDMI mode rather than DVI. This can make audio work in
DMT (computer monitor) modes
#hdmi_drive=2
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
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=onUncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
Additional overlays and parameters are documented /boot/overlays/README
Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem_256=128
gpu_mem_512=256uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
dtparam=spi=onUncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
Additional overlays and parameters are documented /boot/overlays/README
Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem_256=128
gpu_mem_512=256
gpu_mem_1024=256
#overscan_scale=1dtparam=spi=on
dtoverlay=waveshare32b
display_rotate=2
pi@retropie:~ $ ls /dev/fb*
/dev/fb0 /dev/fb1
#!/bin/sh -e
rc.local
This script is executed at the end of each multiuser runlevel.
Make sure that the script will "exit 0" on success or any other
value on error.
In order to enable or disable this script just change the execution
bits.
By default this script does nothing.
Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
/usr/local/bin/fbcp &
exit 0 -
@rog585 what was causing that there white screen of yours? I've followed them there instructions multiple times from fresh installs of the RetroPie and I still be getting that there white screen. If you don't mind throwing me a slice of knowledge, I'd sure appreciate it. Thanks kindly.
-
@senkun
Hi!
Is it possible to get the Waveshare 32b working on a B+?
A seller on amazon said it was possible, but he only sends images to costumers.
Regards -
I've made a video of the Waveshare 3.5" running with these settings here:
I'll be following this up soon with a 3.2" screen for comparison to see which is most suitable for Retropie.
If you find this useful please take a moment to subscribe to my channel for more similar content.
-
@RetroManCave
Just watched your vid and subbed. What are your video settings? Mine still looks terrible. I have the 3.2in screen. -
I just used the guide to setup my waveshare32b display and it worked like a charm! Thanks again for the guide. After the initial happiness, I also saw some flaws which I corrected. Perhaps others can benefit from them.
After getting the display to work there were borders around the screen and there was lagging between input and the screen. Borders are killing on a small screen like this, and can easily be fixed by setting extra parameters in the /boot/config.txt.
So this is what I added to the end of the file:
hdmi_force_hotplug=1 hdmi_cvt=320 240 20 1 0 0 0 hdmi_group=2 hdmi_mode=87
The hdmi_cvt parameter can be edited if you have another display. Values stand for:
hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
width width in pixels
height height in pixels
framerate framerate in Hz
aspect aspect ratio 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
margins 0=margins disabled, 1=margins enabled
interlace 0=progressive, 1=interlaced
rb 0=normal, 1=reduced blankingThe lag in the screen was because of the SPI speed, which by default is not very high. You can manually set it to an higher rate in the same /boot/config.txt.
Normally you would write this line:
dtoverlay=waveshare32b
To add SPI speed, just add parameters to the end of this line. This would lead to the following completed line:
dtoverlay=waveshare32b,speed=42000000,fps=20
Setting the speed to 42000000 is the advised maximum speed, but I've seen people using 60000000. If you use an extender-cable or something like this, perhaps you have to lower this to 16000000 to make it stable. This will influence the speed of the screen and I advise to not use cables between your screen and the raspberry PI for optimal results.
The FPS of 20 is the same as what I set in the hdmi_cvt parameter. This is important to keep the same value.
Happy gaming.
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.