[GUIDE] Building Experimental Display Driver with Custom Settings
#1
Was asked to make a short guide on compiling the experimental display driver with custom overscan settings, so here we go. This is primarily for those that wish to be able to change the overscan.

Code:
# First, use cd to go to the directory you want to clone the repository into, then:
git clone https://github.com/juj/fbcp-ili9341
cd fbcp-ili9341
mkdir build
cd build
nano ../freeplaytech_waveshare32b.h #This file has, on the end of the last 4 lines, the overscan values that you can change. Make sure to read the comment above it for information about which side is which
#After saving and quitting or commenting out sleep lines 145, 149, and 153
cmake -DFREEPLAYTECH_WAVESHARE32B=ON -DSPI_BUS_CLOCK_DIVISOR=6 -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON -DSTATISTICS=0 ..
make -j
sudo systemctl stop fbcp[variant].service #replace [variant] with the current version of the driver you are using; usually will be fbcpFilled or fbcpCropped
sudo ./fbcp-ili9341 #runs the built binary, use Control-C to exit
#You will probably need to edit the freeplaytech_waveshare32b.h file multiple times to get the overscan correct, so after doing so:
sudo cp ./fbcp-ili9341 /usr/local/bin/fbcp[variant] #replace [variant] with the version of the driver you want to replace, and use sudo systemctl enable/disable to make it the only version running
#You can optionally copy and rename one of the other service files from /lib/systemd/system/fbcp[variant].service, editing the ExecStart field to point to where the new binary is
If you have any questions, feel free to reply to this thread.
Reply
#2
And for the people that do not speak this language...

What does this do?  Tongue

My display works okay  Big Grin
Reply
#3
(08-13-2019, 11:53 PM)luisito Wrote: And for the people that do not speak this language...

What does this do?  Tongue

My display works okay  Big Grin

If you look in the RetroPie system menu, under the Freeplay Options folder (on newer images) there is a Freeplay Change Display Driver menu option. All of the "Experimental" drivers in there are from this repo. This guide is to help those that want the increased performance of the driver but want to tweak some settings to be different from the versions we provide, most notably for people that may want to use our provided Freeplay glass lens with a BoxyPixel aluminum shell (which we now have in the menu!). This way, if people install their display misaligned, they can compile their own custom version with the correct display area to fit in the lens.
Reply
#4
Is there by any chance any movement for this on the Zero?

I'm about to give compiling juj's driver another shot on the Zero- the last time I tried, I got a constant white screen, but that was mimicing the setup tailored for getting it running on a CM3.

A FreePlay implemented option akin to what's been done so far for the CM3 running juj's driver, but for the Zero would be awesome!
Reply
#5
It seems like when I use the Exp_Cropped driver for the Zero, I'm met with nothing but a white screen.

Same with trying to compile juj's driver much like how I did on the CM3.

Can't seem to find the answer anywhere that resolves this.
Reply
#6
(08-22-2019, 11:27 AM)Slow Catalyst Wrote: Same with trying to compile juj's driver much like how I did on the CM3.

Can't seem to find the answer anywhere that resolves this.

The main thing that you may be doing wrong is passing the -DARM=V8A flag. Omit it completely as Cmake generally detects the correct board revision, and the Pi 0 has a different architecture revision than the CM3.

We've also not compiled new versions of the driver for some time, so I'll look into updating them in the next few days before classes start up again.

EDIT: I just updated the binaries to the most recent version from juj's repo, so git pull the changes and replace the old binaries. If you don't have the NoDMA version's service file, copy that where it belongs (you can find it in the installZero.sh script) and also put that binary in /usr/local/bin/. If you still get white screen on boot, make sure that /boot/config.txt has the waveshare32b line commented and that you have fbcpOld disabled and the fbcpZero of your choice enabled.
Reply
#7
Thanks yet again for the tips, Mootikins. I'll give it another go!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)