[Raspberry pi] 3.5 inch display - rotation does not work - Page 1
Forum section: electronics / beginners

author: bodzio_stawski
author_rank: Regular Contributor
timestamp: May 05, 2024, 11:03:29 am
content: Hello!This week I started learning about Raspberry PI 4B and a 3.5 inch MHS display - the same model as described here:http://www.lcdwiki.com/MHS-3.5inch_RPi_DisplaySo the drivers come from github from goodtft, updated basically on a regular basis:https://github.com/goodtft/LCD-showFirst of all, I installed Raspberry PI OS. Unfortunately, I realized I didn't have a MicroHDMI cable, so I had to settle for VNC to start with. Thanks to this, I managed to connect remotely to Raspberry before I could even install the LCD driver.Unfortunately, due to my ignorance, I started installing the driver for the Waveshare 3.5 inch display instead of MHS, then I simply formatted the SD card with Raspberry OS and installed everything again. Then I started working on the LCD driver for the MHS display according to the guide from the link a few lines above. And it installed.Now I control it via VNC and everything can be seen on the LCD, or control it on the LCD itself (touch screen function works). However, it turns out that the screen rotation option is somehow disabled permanently and changing the parameters related to it does not affect it.According to some information from the Internet, it should be possible to set it this way:a) Using the following commands -nothing changed for me:Code:cd LCD-show/sudo ./rotate.sh 90b) By reinstalling and setting the rotation at the very beginning -nothing changedCode:sudo rm -rf LCD-showgit clone https://github.com/goodtft/LCD-show.gitchmod -R 755 LCD-showcd LCD-show/sudo ./MHS35-showc) By getting into theconfig.txtfile and trying to change this value "90"; this didn't change anything, so I also tried changing the name mhs to tft35a, and then mhs35 to piscreen,drm (To make sure that the manufacturer did not deceive me with the print on the silkscreen):Code:dtoverlay=mhs35:rotate=90Code:# For more options and information see# http://rpf.io/configtxt# Some settings may impact device functionality. See lin># uncomment if you get no picture on HDMI for a default >#hdmi_safe=1uncomment the following to adjust overscan. Use positi># goes off screen, and negative if there is too much bor>#overscan_left=16#overscan_right=16#overscan_top=16#overscan_bottom=16uncomment to force a console size. By default it will ># overscan.#framebuffer_width=1280#framebuffer_height=720uncomment if hdmi display is not detected and composit>#hdmi_force_hotplug=1# uncomment to force a specific HDMI mode (this will for>#hdmi_group=1#hdmi_mode=1uncomment to force a HDMI mode rather than DVI. This c># DMT (computer monitor) modes#hdmi_drive=2# uncomment to increase signal to HDMI, if you have inte># no display#config_hdmi_boost=4# uncomment for composite PAL#sdtv_mode=2uncomment to overclock the arm. 700 MHz is the default.#arm_freq=800# Uncomment some or all of these to enable the optional >#dtparam=i2c_arm=on#dtparam=i2s=on#dtparam=spi=onUncomment this to enable infrared communication.#dtoverlay=gpio-ir,gpio_pin=17#dtoverlay=gpio-ir-tx,gpio_pin=18# Additional overlays and parameters are documented /boo>Enable audio (loads snd_bcm2835)dtparam=audio=on# Automatically load overlays for detected camerascamera_auto_detect=1Automatically load overlays for detected DSI displ>display_auto_detect=1# Enable DRM VC4 V3D driver#dtoverlay=vc4-kms-v3dmax_framebuffers=2Run in 64-bit modearm_64bit=1# Disable compensation for displays with overscandisable_overscan=1# Enable host mode on the 2711 built-in XHCI USB con># This line should be removed if the legacy DWC2 con># (e.g. for USB device mode) or if USB support is no>otg_mode=1# Run as fast as firmware / board allowsarm_boost=1hdmi_force_hotplug=1dtparam=i2c_arm=ondtparam=spi=onenable_uart=1dtoverlay=mhs35:rotate=90hdmi_group=2hdmi_mode=1hdmi_mode=87hdmi_cvt 480 320 60 6 0 0 0hdmi_drive=2For now, the screen still doesn't rotate. Thanks to this, I always have the screen with the power cable facing down, which makes it difficult to place it normally. I checked this error by installing Raspberry Pi OS 64-bit and then 32-bit (both viaRaspberry Pi Imager v1.8.5, released 2024-03-15)Is it possible that something has been messed with in the RPI settings since these reinstallations, that the screen rotation option is blocked, or am I just doing something else very wrong? I will be grateful for your help.RegardsBogdan

author: Nominal Animal
author_rank: Super Contributor
timestamp: May 05, 2024, 11:38:19 am
content: Perhaps it simply defaults to 90 degree rotation, as many of these small screens are actually portrait orientation by default?That is, have you tried e.g.sudo ./rotate.sh 0orsudo ./rotate.sh 180?Also, you do realize you need to reboot the Pi for the new rotation to take effect; it is not immediate?

author: bodzio_stawski
author_rank: Regular Contributor
timestamp: May 05, 2024, 12:28:02 pm
content: Hi, thank you for your reply!Yes, I am aware of the need to restart the raspberry after such operations. For me, after performing the operation from the Terminal available in Raspberry OS, the situation is as follows:1) command:Code:sudo ./rotate.sh 0(followed by:Code:sudo reboot)will cause the following lineCode:dtoverlay=mhs35:rotate=90to remain in the config.txt file (so nothing will change)2) command:Code:sudo ./rotate.sh 180provides the return text as follows:LCD rotate value is set to 180reboot nowHowever, this time the system resets itself. After restarting, the following entry appears in the config.txt file:Code:dtoverlay=mhs35:rotate=270So you can see that the value in config.txt is somehow shifted forward by 90.3) EnteringCode:sudo ./rotate.sh 0will once again cause the system to reset itself and the value in config.txt will return to 90.The visual orientation of the image on the screen is still the same after each of these steps (i.e. with the power port facing down).

author: Nominal Animal
author_rank: Super Contributor
timestamp: May 05, 2024, 01:34:22 pm
content: TheMHS35-Showscript you use, can install xserver-xorg-input-evdev fromhttp://mirrors.zju.edu.cn/raspbian/raspbian,which makes myself a bit, uh, suspicious... but really, it is just horribly shoddy work; bad enough to make my eyes bleed.Anyway, it seems to using the"standard" fbtftdriver, just configuring it differently for specific displays. As you do get a display, the driver is already installed, it's just its configuration that needs fixing. For MHS35, the base device tree overlay (mhs35-overlay.dtb) you should see in your/boot/overlays/mhs35.dtb0, containsCode:/dts-v1/;/ {compatible = "brcm,bcm2835\0brcm,bcm2708\0brcm,bcm2709";fragment@0 {target = <0xdeadbeef>;__overlay__ {status = "okay";spidev@0 {status = "disabled";};spidev@1 {status = "disabled";};};};fragment@1 {target = <0xdeadbeef>;__overlay__ {tft35a_pins {brcm,pins = <0x11 0x19 0x18>;brcm,function = <0x00 0x00 0x00>;linux,phandle = <0x01>;phandle = <0x01>;};};};fragment@2 {target = <0xdeadbeef>;__overlay__ {#address-cells = <0x01>;#size-cells = <0x00>;tft35a@0 {compatible = "ilitek,ili9486";reg = <0x00>;pinctrl-names = "default";pinctrl-0 = <0x01>;spi-max-frequency = <0x6dac2c0>;txbuflen = <0x8000>;rotate = <0x5a>;bgr = <0x00>;fps = <0x1e>;buswidth = <0x08>;regwidth = <0x10>;reset-gpios = <0xdeadbeef 0x19 0x01>;dc-gpios = <0xdeadbeef 0x18 0x00>;debug = <0x00>;init = <0x10000f1 0x36 0x04 0x00 0x3c 0x0f 0x8f 0x10000f2 0x18 0xa3 0x12 0x02 0xb2 0x12 0xff 0x10 0x00 0x10000f8 0x21 0x04 0x10000f9 0x00 0x08 0x1000036 0x08 0x10000b4 0x00 0x10000c1 0x41 0x10000c5 0x00 0x91 0x80 0x00 0x10000e0 0x0f 0x1f 0x1c 0x0c 0x0f 0x08 0x48 0x98 0x37 0x0a 0x13 0x04 0x11 0x0d 0x00 0x10000e1 0x0f 0x32 0x2e 0x0b 0x0d 0x05 0x47 0x75 0x37 0x06 0x10 0x03 0x24 0x20 0x00 0x100003a 0x55 0x1000011 0x1000036 0x28 0x20000ff 0x1000029>;linux,phandle = <0x02>;phandle = <0x02>;};tft35a-ts@1 {compatible = "ti,ads7846";reg = <0x01>;spi-max-frequency = <0x1e8480>;interrupts = <0x11 0x02>;interrupt-parent = <0xdeadbeef>;pendown-gpio = <0xdeadbeef 0x11 0x01>;ti,x-plate-ohms = [00 3c];ti,pressure-max = [00 ff];linux,phandle = <0x03>;phandle = <0x03>;};};};__overrides__ {speed = <0x02 0x7370692d 0x6d61782d 0x66726571 0x75656e63 0x793a3000>;txbuflen = [00 00 00 02 74 78 62 75 66 6c 65 6e 3a 30 00];rotate = [00 00 00 02 72 6f 74 61 74 65 3a 30 00];fps = [00 00 00 02 66 70 73 3a 30 00];bgr = [00 00 00 02 62 67 72 3a 30 00];debug = <0x02 0x64656275 0x673a3000>;swapxy = <0x03 0x74692c73 0x7761702d 0x78793f00>;};__symbols__ {tft35a_pins = "/fragment@1/__overlay__/tft35a_pins";tft35a = "/fragment@2/__overlay__/tft35a@0";tft35a_ts = "/fragment@2/__overlay__/tft35a-ts@1";};__fixups__ {spi0 = "/fragment@0:target:0\0/fragment@2:target:0";gpio = "/fragment@1:target:0\0/fragment@2/__overlay__/tft35a@0:reset-gpios:0\0/fragment@2/__overlay__/tft35a@0:dc-gpios:0\0/fragment@2/__overlay__/tft35a-ts@1:interrupt-parent:0\0/fragment@2/__overlay__/tft35a-ts@1:pendown-gpio:0";};__local_fixups__ {fixup = "/fragment@2/__overlay__/tft35a@0:pinctrl-0:0\0/__overrides__:speed:0\0/__overrides__:txbuflen:0\0/__overrides__:rotate:0\0/__overrides__:fps:0\0/__overrides__:bgr:0\0/__overrides__:debug:0\0/__overrides__:swapxy:0";};};which basically describes the display (and touch screen) configuration.See the linerotate = <0x5A>;?<0x5A> = <90>, so it definitely defaults to 90 degrees of rotation.(Note that if you installdevice-tree-compilerpackage, you can convert .dtb and .dtbo files to sources usingdtc -I dtb -O dtsfilenamesource-filenameand sources to device tree blobs or overlays usingdtc -I dts -O dtbsource-filenamefilenamebut as your display is a standard ILI9486 one using SPI and configured via device tree, you don't need to.)TheMHS35-Showscript also adds the following lines to your/boot/config.txt:Code:hdmi_force_hotplug=1dtparam=i2c_arm=ondtparam=spi=onenable_uart=1dtoverlay=mhs35:rotate=90hdmi_group=2hdmi_mode=1hdmi_mode=87hdmi_cvt 480 320 60 6 0 0 0hdmi_drive=2where you should take note of thedtoverlay=mhs35:rotate=90line.If you have runMHS50-Showscript more than once after installing Raspbian, you will have multiple copies of the above settings in/boot/config.txt. Use your favourite editor, for examplenano, to edit it and remove the extra copies:sudo nano /boot/config.txtIn nano, Ctrl+K deletes the current line, Ctrl+O saves the file, and Ctrl+X exits (as shown at the bottom of the editor window, with ^ being the Linuxy/Unixy abbreviation for the Control key).After you have done that, you should only need to run one ofsudo sed -i -e 's|^\(dtoverlay=mhs35:rotate\)=.*$|\1=0|g' /boot/config.txtsudo sed -i -e 's|^\(dtoverlay=mhs35:rotate\)=.*$|\1=90|g' /boot/config.txtsudo sed -i -e 's|^\(dtoverlay=mhs35:rotate\)=.*$|\1=180|g' /boot/config.txtsudo sed -i -e 's|^\(dtoverlay=mhs35:rotate\)=.*$|\1=270|g' /boot/config.txtand reboot, to change the rotation of your display. (The above only changesdegreeson thedtoverlay=mhs35:rotate=degreesline, which you can do equally well using e.g.sudo nano /boot/config.txtif you prefer. Just remember to reboot afterwards for the change to take effect.)

author: bodzio_stawski
author_rank: Regular Contributor
timestamp: May 05, 2024, 03:10:11 pm
content: I'm not sure I understand everything correctly.I have not experienced any duplication of any lines in the config.txt file. When I try to make changes both via the command line and directly in the config.txt file, I still have 93 lines of text in the config.txt file, just like in my first post, where I also inserted the content of the config file.The problem is that all the changes in the config.txt file that are saved successfully are ignored by the raspberry itself and do not change the screen orientation. It's as if the kernel completely ignored what changes in the config file.

author: Nominal Animal
author_rank: Super Contributor
timestamp: May 05, 2024, 05:26:51 pm
content: You could install dtc,sudo apt install device-tree-compilerand then runCode:cd ~dtc -I dtb -O dts /boot/overlays/mhs35.dtbo mhs35.dtssed -i -e 's|^\([ \t]*\)rotate *= *<[^>]*>|\1rotate = <0>|g' mhs35.dtsdtc -I dts -O dtb mhs35.dts mhs35.dtbosudo cp -f mhs35.dtbo /boot/overlays/mhs35.dtbosudo cp -f mhs35.dtbo /boot/overlays/mhs35-overlay.dtbsudo chmod u=rw,go=r /boot/overlays/mhs35*.dtb*to decompile the device tree overlay, change the rotation parameter, recompile it, and save it back. Reboot. If the display orientation changes, but isn't correct, runCode:cd ~sed -i -e 's|^\([ \t]*\)rotate *= *<[^>]*>|\1rotate = <180>|g' mhs35.dtsdtc -I dts -O dtb mhs35.dts mhs35.dtbosudo cp -f mhs35.dtbo /boot/overlays/mhs35.dtbosudo cp -f mhs35.dtbo /boot/overlays/mhs35-overlay.dtbsudo chmod u=rw,go=r /boot/overlays/mhs35*.dtb*and reboot.In both cases, thesedcommand edits therotatevalue inmhs35.dts. You can usenano mhs35.dtsinstead, if you don't trust my regular expression. :|If this does not fix it either, then deeper digging is needed. Listing the files you have in/boot/overlays/would be a good start for that.Edited to add: Also, if you run a 5.4 or newer kernel, then you might be using TINYDRM_ILI9486 (ili9486) DRM driver instead (which is a much better solution anyway). So, do check your kernel version (uname -rorcat /proc/version), too.

author: bodzio_stawski
author_rank: Regular Contributor
timestamp: May 05, 2024, 06:37:33 pm
content: Thanks for the replyQuote from: Nominal Animal on May 05, 2024, 05:26:51 pmAfter this line I get:Code:Usage: dtc  <input file>Options: -[qI:O:o:V:d:R:S:p:a:fb:i:H:sW:E:@AThv]-q, --quietQuiet: -q suppress warnings, -qq errors, -qqq all-I, --in-format <arg>Input formats are:dts - device tree source textdtb - device tree blobfs - /proc/device-tree style directory-o, --out <arg>Output file-O, --out-format <arg>Output formats are:dts - device tree source textdtb - device tree blobyaml - device tree encoded as YAMLasm - assembler source-V, --out-version <arg>Blob version to produce, defaults to 17 (for dtb and asm output)-d, --out-dependency <arg>Output dependency file-R, --reserve <arg>Make space for <number> reserve map entries (for dtb and asm output)-S, --space <arg>Make the blob at least <bytes> long (extra space)-p, --pad <arg>Add padding to the blob of <bytes> long (extra space)-a, --align <arg>Make the blob align to the <bytes> (extra space)-b, --boot-cpu <arg>Set the physical boot cpu-f, --forceTry to produce output even if the input tree has errors-i, --include <arg>Add a path to search for include files-s, --sortSort nodes and properties before outputting (useful for comparing trees)-H, --phandle <arg>Valid phandle formats are:legacy - "linux,phandle" properties onlyepapr - "phandle" properties onlyboth - Both "linux,phandle" and "phandle" properties-W, --warning <arg>Enable/disable warnings (prefix with "no-")-E, --error <arg>Enable/disable errors (prefix with "no-")-@, --symbolsEnable generation of symbols-A, --auto-aliasEnable auto-alias of labels-T, --annotateAnnotate output .dts with input source file and line (-T -T for more details)-h, --helpPrint this help and exit-v, --versionPrint version and exitError: missing fileseven though the filemhs35.dtbois in the Overlays folder, and has the appropriate access permissions, so it should be possible for the dtc command to process it...Code:ls /boot/overlaysact-led.dtboadafruit18.dtboadafruit-st7735r.dtboadau1977-adc.dtboadau7002-simple.dtboads1015.dtboads1115.dtboads7846.dtboadv7282m.dtboadv728x-m.dtboakkordion-iqdacplus.dtboallo-boss2-dac-audio.dtboallo-boss-dac-pcm512x-audio.dtboallo-digione.dtboallo-katana-dac-audio.dtboallo-piano-dac-pcm512x-audio.dtboallo-piano-dac-plus-pcm512x-audio.dtboanyspi.dtboapds9960.dtboapplepi-dac.dtboarducam-64mp.dtboarducam-pivariety.dtboat86rf233.dtboaudioinjector-addons.dtboaudioinjector-bare-i2s.dtboaudioinjector-isolated-soundcard.dtboaudioinjector-ultra.dtboaudioinjector-wm8731-audio.dtboaudiosense-pi.dtboaudremap.dtbobalena-fin.dtbobcm2712d0.dtbocamera-mux-2port.dtbocamera-mux-4port.dtbocap1106.dtbochipdip-dac.dtbocirrus-wm5102.dtbocma.dtbocm-swap-i2c0.dtbocrystalfontz-cfa050_pi_m.dtbocutiepi-panel.dtbodacberry400.dtbodht11.dtbodionaudio-kiwi.dtbodionaudio-loco.dtbodionaudio-loco-v2.dtbodisable-bt.dtbodisable-bt-pi5.dtbodisable-emmc2.dtbodisable-wifi.dtbodisable-wifi-pi5.dtbodpi18cpadhi.dtbodpi18.dtbodpi24.dtbodraws.dtbodwc2.dtbodwc-otg.dtboedt-ft5406.dtboenc28j60.dtboenc28j60-spi2.dtboexc3000.dtbofbtft.dtbofe-pi-audio.dtbofsm-demo.dtbogc9a01.dtboghost-amp.dtbogoodix.dtbogooglevoicehat-soundcard.dtbogpio-charger.dtbogpio-fan.dtbogpio-hog.dtbogpio-ir.dtbogpio-ir-tx.dtbogpio-key.dtbogpio-led.dtbogpio-no-bank0-irq.dtbogpio-no-irq.dtbogpio-poweroff.dtbogpio-shutdown.dtbohat_map.dtbhd44780-lcd.dtbohdmi-backlight-hwhack-gpio.dtbohifiberry-amp100.dtbohifiberry-amp3.dtbohifiberry-amp4pro.dtbohifiberry-amp.dtbohifiberry-dac8x.dtbohifiberry-dac.dtbohifiberry-dacplusadc.dtbohifiberry-dacplusadcpro.dtbohifiberry-dacplusdsp.dtbohifiberry-dacplus.dtbohifiberry-dacplushd.dtbohifiberry-digi.dtbohifiberry-digi-pro.dtbohighperi.dtbohy28a.dtbohy28b-2017.dtbohy28b.dtboi2c0.dtboi2c0-pi5.dtboi2c1.dtboi2c1-pi5.dtboi2c2-pi5.dtboi2c3.dtboi2c3-pi5.dtboi2c4.dtboi2c5.dtboi2c6.dtboi2c-bcm2708.dtboi2c-fan.dtboi2c-gpio.dtboi2c-mux.dtboi2c-pwm-pca9685a.dtboi2c-rtc.dtboi2c-rtc-gpio.dtboi2c-sensor.dtboi2s-dac.dtboi2s-gpio28-31.dtboilitek251x.dtboimx219.dtboimx258.dtboimx290.dtboimx296.dtboimx327.dtboimx378.dtboimx462.dtboimx477.dtboimx519.dtboimx708.dtbointerludeaudio-analog.dtbointerludeaudio-digital.dtboiqaudio-codec.dtboiqaudio-dac.dtboiqaudio-dacplus.dtboiqaudio-digi-wm8804-audio.dtboiqs550.dtboirs1125.dtboi-sabre-q2m.dtbojedec-spi-nor.dtbojustboom-both.dtbojustboom-dac.dtbojustboom-digi.dtboltc294x.dtbomax98357a.dtbomaxtherm.dtbombed-dac.dtbomcp23017.dtbomcp23s17.dtbomcp2515-can0.dtbomcp2515-can1.dtbomcp2515.dtbomcp251xfd.dtbomcp3008.dtbomcp3202.dtbomcp342x.dtbomedia-center.dtbomerus-amp.dtbomhs35.dtbomhs35.dtsmhs35-overlay.dtbmidi-uart0.dtbomidi-uart0-pi5.dtbomidi-uart1.dtbomidi-uart1-pi5.dtbomidi-uart2.dtbomidi-uart2-pi5.dtbomidi-uart3.dtbomidi-uart3-pi5.dtbomidi-uart4.dtbomidi-uart4-pi5.dtbomidi-uart5.dtbominipitft13.dtbominiuart-bt.dtbomipi-dbi-spi.dtbomlx90640.dtbommc.dtbomz61581.dtboov2311.dtboov5647.dtboov64a40.dtboov7251.dtboov9281.dtbooverlay_map.dtbpapirus.dtbopca953x.dtbopcf857x.dtbopcie-32bit-dma.dtbopcie-32bit-dma-pi5.dtbopibell.dtbopifacedigital.dtbopifi-40.dtbopifi-dac-hd.dtbopifi-dac-zero.dtbopifi-mini-210.dtbopiglow.dtbopiscreen2r.dtbopiscreen.dtbopisound.dtbopisound-pi5.dtbopitft22.dtbopitft28-capacitive.dtbopitft28-resistive.dtbopitft35-resistive.dtbopps-gpio.dtboproto-codec.dtbopwm1.dtbopwm-2chan.dtbopwm.dtbopwm-ir-tx.dtboqca7000.dtboqca7000-uart0.dtboramoops.dtboramoops-pi4.dtboREADMErotary-encoder.dtborpi-backlight.dtborpi-codeczero.dtborpi-dacplus.dtborpi-dacpro.dtborpi-digiampplus.dtborpi-ft5406.dtborpi-poe.dtborpi-poe-plus.dtborpi-sense.dtborpi-sense-v2.dtborpi-tv.dtborra-digidac1-wm8741-audio.dtbosainsmart18.dtbosc16is750-i2c.dtbosc16is752-i2c.dtbosc16is752-spi0.dtbosc16is752-spi1.dtbosdhost.dtbosdio.dtbosdio-pi5.dtboseeed-can-fd-hat-v1.dtboseeed-can-fd-hat-v2.dtbosh1106-spi.dtbosi446x-spi0.dtbosmi-dev.dtbosmi.dtbosmi-nand.dtbospi0-0cs.dtbospi0-1cs.dtbospi0-2cs.dtbospi1-1cs.dtbospi1-2cs.dtbospi1-3cs.dtbospi2-1cs.dtbospi2-1cs-pi5.dtbospi2-2cs.dtbospi2-2cs-pi5.dtbospi2-3cs.dtbospi3-1cs.dtbospi3-1cs-pi5.dtbospi3-2cs.dtbospi3-2cs-pi5.dtbospi4-1cs.dtbospi4-2cs.dtbospi5-1cs.dtbospi5-1cs-pi5.dtbospi5-2cs.dtbospi5-2cs-pi5.dtbospi6-1cs.dtbospi6-2cs.dtbospi-gpio35-39.dtbospi-gpio40-45.dtbospi-rtc.dtbossd1306.dtbossd1306-spi.dtbossd1331-spi.dtbossd1351-spi.dtbosuperaudioboard.dtbosx150x.dtbotc358743-audio.dtbotc358743.dtbotinylcd35.dtbotpm-slb9670.dtbotpm-slb9673.dtbouart0.dtbouart0-pi5.dtbouart1.dtbouart1-pi5.dtbouart2.dtbouart2-pi5.dtbouart3.dtbouart3-pi5.dtbouart4.dtbouart4-pi5.dtbouart5.dtboudrc.dtbougreen-dabboard.dtboupstream.dtboupstream-pi4.dtbovc4-fkms-v3d.dtbovc4-fkms-v3d-pi4.dtbovc4-kms-dpi-generic.dtbovc4-kms-dpi-hyperpixel2r.dtbovc4-kms-dpi-hyperpixel4.dtbovc4-kms-dpi-hyperpixel4sq.dtbovc4-kms-dpi-panel.dtbovc4-kms-dsi-7inch.dtbovc4-kms-dsi-generic.dtbovc4-kms-dsi-lt070me05000.dtbovc4-kms-dsi-lt070me05000-v2.dtbovc4-kms-dsi-waveshare-panel.dtbovc4-kms-kippah-7inch.dtbovc4-kms-v3d.dtbovc4-kms-v3d-pi4.dtbovc4-kms-v3d-pi5.dtbovc4-kms-vga666.dtbovga666.dtbovl805.dtbow1-gpio.dtbow1-gpio-pi5.dtbow1-gpio-pullup.dtbow1-gpio-pullup-pi5.dtbow5500.dtbowatterott-display.dtbowaveshare-can-fd-hat-mode-a.dtbowaveshare-can-fd-hat-mode-b.dtbowittypi.dtbowm8960-soundcard.dtboEDIT:Quote from: Nominal Animal on May 05, 2024, 05:26:51 pmThe kernel is supposedly 6.6.20. I will look for this TINYDRM_ILI9486 (ili9486) DRM driver.

author: radiolistener
author_rank: Super Contributor
timestamp: May 05, 2024, 08:03:06 pm
content: config.txt, cmdline.txt and overlays folder are moved from/boot/to/boot/firmware/with some update for 6.* kernel.So, the proper way is to edit/boot/firmware/config.txtinstead of/boot/config.txtif you edit /boot/config.txt it won't have effect.Did you take this into account?

author: bodzio_stawski
author_rank: Regular Contributor
timestamp: May 05, 2024, 09:31:49 pm
content: Quote from: radiolistener on May 05, 2024, 08:03:06 pmI didn't take this into account at all, I admit. When I came to the conclusion that terminal commands change the values ​​in the /boot/config.txt file, I had no idea that this second file (/boot/firmware/config.txt) exists. Thank you very much, this solved the problem and now the rotation finally works. Thanks also to you, Nominal Animal, because you gave me a lot of new content along the way, also devoting your time. Thank you gentlemen!