From 7c99ea05f3ed0b15bb5bb7f47e39f27e1d40d859 Mon Sep 17 00:00:00 2001 From: alfrix Date: Thu, 29 Feb 2024 14:26:40 -0300 Subject: [PATCH] docs: add some hw guides also remove dead links --- docs/Hardware.md | 2 -- docs/Hardware/GPIO_35.md | 49 +++++++++++++++++++++++++++++ docs/Hardware/HDMI.md | 48 ++++++++++++++++++++++++++++ docs/img/hardware/rpi35a.jpg | Bin 0 -> 24433 bytes docs/img/troubleshooting/xtcal.png | Bin 0 -> 272 bytes mkdocs.yml | 5 ++- 6 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 docs/Hardware/GPIO_35.md create mode 100644 docs/Hardware/HDMI.md create mode 100644 docs/img/hardware/rpi35a.jpg create mode 100644 docs/img/troubleshooting/xtcal.png diff --git a/docs/Hardware.md b/docs/Hardware.md index 117e0391..4bdab17c 100644 --- a/docs/Hardware.md +++ b/docs/Hardware.md @@ -10,12 +10,10 @@ In general, if the device can show a GNU/Linux desktop, then KlipperScreen shoul * [BTT HDMI5/7](https://biqu.equipment/products/bigtreetech-hdmi5-v1-0-hdmi7-v1-0) * [Raspberry PI 7" Touchscreen](https://www.raspberrypi.org/products/raspberry-pi-touch-display/) * [Hyperpixel 4](https://shop.pimoroni.com/products/hyperpixel-4) -* [3.5" Elegoo](https://www.elegoo.com/de/products/elegoo-3-5-inch-tft-lcd-screen) * [3.5" RPi Display](http://www.lcdwiki.com/3.5inch_RPi_Display) * [5" HDMI Display-B](http://lcdwiki.com/5inch_HDMI_Display-B) * [VoCore](https://klipper.discourse.group/t/hardware-known-to-work-with-klipperscreen/35/7) * [WAVESHARE 4.3 inch DSI LCD](https://www.waveshare.com/4.3inch-dsi-lcd.htm) -* [DFrobot DFR0550](https://wiki.dfrobot.com/5%27%27TFT-Display_with_Touchscreen_V1.0_SKU_DFR0550) * [Android phone](Android.md) diff --git a/docs/Hardware/GPIO_35.md b/docs/Hardware/GPIO_35.md new file mode 100644 index 00000000..4d608f18 --- /dev/null +++ b/docs/Hardware/GPIO_35.md @@ -0,0 +1,49 @@ + +How i installed the 3.5" (A) type of screen on RaspberryOS Bookworm (Debian 12) + +![preview](../img/hardware/rpi35a.jpg) + +!!! abstract + this is based on my own experience and it's provided for general information + and does not constitute as advice of any kind. + + +## Initial install + +This screens connect to the [GPIO](https://en.wikipedia.org/wiki/General-purpose_input/output) +they were usually installed via repositories named LCD-show ([1](https://github.com/waveshare/LCD-show), [2](https://github.com/goodtft/LCD-show)), +however in the bookworm release there is a simpler solution + +```sh +sudo nano /boot/firmware/config.txt +``` +at the bottom add: +``` +dtoverlay=piscreen,drm +``` + +???+ info + in this context drm stands for [Direct Rendering Manager](https://en.wikipedia.org/wiki/Direct_Rendering_Manager) + +Close the nano editor using `ctrl`+`x` (exit), then `y` for yes (save). + +```sh +sudo reboot +``` + +## Wrong colors + +Some screens will not behave correctly and display wrong colors, +this usually due to the wrong [SPI](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface) speed +In my case I had to use 16 Mhz (default is 24Mhz) +``` +dtoverlay=piscreen,drm,speed=16000000 +``` + +## Rotation + +You can rotate the screen adding a rotate line with the degrees [0, 90, 180, 270] +``` +dtoverlay=piscreen,drm,speed=16000000,rotate=180 +``` +Screen rotation will require adjusting the touch matrix see [Touch issues](../../Troubleshooting/Touch_issues/) \ No newline at end of file diff --git a/docs/Hardware/HDMI.md b/docs/Hardware/HDMI.md new file mode 100644 index 00000000..df8e6da2 --- /dev/null +++ b/docs/Hardware/HDMI.md @@ -0,0 +1,48 @@ + +Screens that use HDMI should work out of the box + +you may need to configure the resolution in RaspberryOS Bookworm +you can do this by editing the kernel commandline + +``` +sudo nano /boot/firmware/cmdline.txt +``` + +!!! tip "Important" + Put all parameters in cmdline.txt on the same line, do not use carriage returns. + +for example: +``` +video=1920x1080 +``` + +more complex example: +``` +video=HDMI-A-1:1920x1080M@60,rotate=90,reflect_x +``` + +| Device | Display | +|-------------|-------------------------------------------------| +| HDMI-A-1 | HDMI 1 (sometimes HDMI 0 on PCB) | +| HDMI-A-2 | HDMI 2 (sometimes HDMI 1 on PCB if starts at 0) | +| DSI-1 | DSI or DPI | +| Composite-1 | Composite | + + +Valid mode specifiers: +``` +x[M][R][-][@][i][m][eDd] +``` +options on brackets are optional + +| Option | Description | +|-----------------|----------------------------------------------------------------------------------------| +| M | Calculate timings using [CVT](https://en.wikipedia.org/wiki/Coordinated_Video_Timings) | +| R | CVT reduced blanking (refresh rate must be 60Hz) | +| - | Bits per pixel, A.K.A. BitDepth usuallly 24 | +| @ | acceptable refresh rates are 50, 60, 70 or 85 Hz only | +| e | Force enable | +| D | Force enable Digital mode | +| d | Disable | + +For more info read [modedb default video mode support](https://docs.kernel.org/fb/modedb.html) diff --git a/docs/img/hardware/rpi35a.jpg b/docs/img/hardware/rpi35a.jpg new file mode 100644 index 0000000000000000000000000000000000000000..43d07e638f3c488aaaf7c7c214863d5ae38ac724 GIT binary patch literal 24433 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 literal 0 HcmV?d00001 diff --git a/docs/img/troubleshooting/xtcal.png b/docs/img/troubleshooting/xtcal.png new file mode 100644 index 0000000000000000000000000000000000000000..1330fc4f6559bcdb1c6dcee6d528c2bbccb560f0 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0y~yV0-|?4ou8I5y@rlFMt$JfKP}kklwp*?|%k{|NsBL zN-Hl1^7nhXIEGZ*dVA53u|YwEA<#?WEQij!bITU6)ShT&lz4jjz;34e9aF+e=VUWA zA51Wi;JGKU@9+{HHV6ksu^;xA&ko+Px=*wptOzFFeDL6h{6;h(kSPcS6!8A675{p_ WhUN4JpA?{17(8A5T-G@yGywommRg_y literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml index 49b708bc..4a3990fa 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -9,7 +9,10 @@ nav: - Home: index.md - FAQ: FAQ.md - Setup: - - Hardware.md + - Hardware: Hardware.md + - Hardware specific: + - GPIO 3.5": Hardware/GPIO_35.md + - HDMI: Hardware/HDMI.md - Installation.md - Updating.md - Configuration.md