question

ryanlynx avatar image
ryanlynx asked

Can't get driver for display to work on my Raspberry Pi after upgrading to Venus OS 2.90

So I have the below setup:

enable_uart=1

kernel=u-boot.bin

[all]

device_tree=bcm2711-rpi-4-b.dtb

dtparam=i2c_arm=on

dtparam=spi=on

dtoverlay=elecrow35a,rotate=270

display_default_lcd = 1

# no overscan

disable_overscan=1

Everything worked for couple years using the above. I then noticed that was not getting new OTA updates for VenusOS as you can't upgrade from 2.89 >> 2.90 with out reflashing.

But now that I have flashed 2.90 I can't find way to get the display to work. The screen backlight shows up lit, but remains blank (no text shown/etc). I have followed exact steps I did for v2.89, and to be sure wasn't forgetting something I then reinstalled older version and it worked.

The steps I normally take for the display install is:

  1. flash image using BelenaEtcher

  2. copy "elecrow35a-overlay.dtb" to overlay subfolder (under u-boot)

  3. edit config.txt (add dtoverlay=elecrow35a,rotate=270)

  4. stick card in RPi and boot up (once see text shown, then later take more steps to setup headless and config touch)

Have also tried using tft35a-overlay.dtb (from LCD-show), and also the method here: https://github.com/wild-mustango/VenusOsTFT35/tree/main, but no luck.

Not sure what all got changed in v2.90+ but stuck with no display as result. Everything works and can see it via browser and all, just nothing on the screen. Have the display built into my camper, so not that easy to just go buy another display and replace it.

I am hoping someone else might have figured out what is solution for this, as have no luck with Elecrow giving any support.

Venus OSRaspberry Pi
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

3 Answers
Kevin Windrem avatar image
Kevin Windrem answered ·

You missed one important step:

remove /etc/venus/headless

With that file present, the local GUI does display on the local screen and you only have the GUI via a web page.

ssh access is disabled by default so you will need the web-based GUI to enable it. Then ssh in from a computer on the same network.

You can also enable local console by replacing the only line in /u-boot/cmdline.txt with:

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty0 logo.nologo

That should make the boot progress show on the display followed by a command line prompt.

Then you can use something like the AdaFruit serial console interface plugged onto the GPIO pins and a terminal emulator to enter commands.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

ryanlynx avatar image ryanlynx commented ·
Thanks for that input, I was aware about the steps to make it headless and enable SSH


My issue is that the screen is not working, as even without doing above you should see the cmd login text.

I might have found cause of issue and will post as new comment below

0 Likes 0 ·
ryanlynx avatar image
ryanlynx answered ·

So think have figured out the cause of issue based on below info from this post, and can confirm that v2.90 is now running "5.10.110-rpi-venus-4".

I have the same display, and have had the same issue. Works fine with a 4.x kernel, but the upgrade to 5.4 renders it useless. Just a white screen on boot.


It looks like pin 22 (GPIO6/BCM 25) isn't taken high on boot -- or rather, its taken high briefly.


By manually pulling this up to 3.3v the display works with the tft35a overlay found here: https://github.com/goodtft/LCD-show/raw/master/usr/tft35a-overlay.dtb


A 'fix' is to update the dtb to set 0x19 high when applying the overlay. The following /should/ apply the fix:

wget https://github.com/goodtft/LCD-show/raw/master/usr/tft35a-overlay.dtb -O tft35a-org.dtbo
dtc -I dtb -O dts -o tft35a-org.dts tft35a-org.dtbo
cat tft35a-org.dts | sed s/\<\ 0xdeadbeef\ 0x19\ 0x00\ \>/\<\ 0xdeadbeef\ 0x19\ 0x01\ \>/g > tft35b.dts
dtc -@ -I dts -O dtb -o /boot/overlays/tft35b.dtbo tft35b.dts
echo -e "hdmi_force_hotplug=1\ndtparam=spi=on\ndtoverlay=tft35b" >> /boot/config.txt
sed -i s/rootwait$/rootwait\ fbcon=map:1\ fbcon=font:ProFont6x11\ logo.nologo/g /boot/cmdline.txt

But I can't get it to run the below dtc cmd without getting errors. Anyone knowledgeable on topic and can help?

dtc -I dtb -O dts -o tft35a-org.dts tft35a-org.dtbo


tft35a-org.dts: Warning (unit_address_vs_reg): /fragment@0/__overlay__/spidev@0: node has a unit name, but no reg or ranges property


tft35a-org.dts: Warning (unit_address_vs_reg): /fragment@0/__overlay__/spidev@1: node has a unit name, but no reg or ranges property


tft35a-org.dts: Warning (gpios_property): /fragment@2/__overlay__/tft35a@0:reset-gpios: Could not get phandle node for (cell 0)


tft35a-org.dts: Warning (gpios_property): /fragment@2/__overlay__/tft35a@0:dc-gpios: Could not get phandle node for (cell 0)


tft35a-org.dts: Warning (gpios_property): /fragment@2/__overlay__/tft35a-ts@1:pendown-gpio: Could not get phandle node for (cell 0)


tft35a-org.dts: Warning (gpios_property): /__fixups__:gpio: property size (218) is invalid, expected multiple of 4


tft35a-org.dts: Warning (interrupts_property): /fragment@2/__overlay__/tft35a-ts@1:interrupt-parent: Bad phandle

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

ryanlynx avatar image
ryanlynx answered ·

Update:
So I realized the dtc cmd was actually outputting the dts file, so went ahead and just ignored the warning msgs and did rest of the steps. Unfortunately when I tried to use my new(edited) overlay file nothing happened and still stuck with a non-working display. Not all that Linux savvy myself, so prob missing something simple and hoping someone else can suggest way forward.

Note: I actually don't want to fix the " tft35a-overlay.dtb " file, as my screen uses this one and which is what would like help with: https://github.com/Elecrow-RD/Elecrow-LCD35/blob/master/elecrow35a-overlay.dtb

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.