diff --git a/CYD-Klipper/boards/esp32-2432S022C-vertical.json b/CYD-Klipper/boards/esp32-2432S022C-vertical.json
new file mode 100644
index 0000000..ce76058
--- /dev/null
+++ b/CYD-Klipper/boards/esp32-2432S022C-vertical.json
@@ -0,0 +1,127 @@
+{
+ "build": {
+ "arduino": {
+ "ldscript": "esp32_out.ld"
+ },
+ "core": "esp32",
+ "extra_flags": [
+ "'-D ARDUINO_ESP32_DEV'",
+ "'-D ESP32_2432S022C'",
+ "'-D LCD_WIDTH=240'",
+ "'-D LCD_HEIGHT=320'",
+ "'-D LVGL_BUFFER_PIXELS=(LCD_WIDTH*LCD_HEIGHT/8)'",
+ "'-D LVGL_BUFFER_MALLOC_FLAGS=(MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT)'",
+ "'-D GPIO_BCKL=0'",
+ "'-D LCD_ST7789_I80'",
+ "'-D ST7789_I80_BUS_CONFIG_CLK_SRC=LCD_CLK_SRC_PLL160M'",
+ "'-D ST7789_I80_BUS_CONFIG_DC=16'",
+ "'-D ST7789_I80_BUS_CONFIG_WR=4'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D8=15'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D9=13'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D10=12'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D11=14'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D12=27'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D13=25'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D14=33'",
+ "'-D ST7789_I80_BUS_CONFIG_DATA_GPIO_D15=32'",
+ "'-D ST7789_I80_BUS_CONFIG_BUS_WIDTH=8'",
+ "'-D ST7789_I80_BUS_CONFIG_MAX_TRANSFER_BYTES=(LVGL_BUFFER_PIXELS * sizeof(lv_color_t))'",
+ "'-D ST7789_I80_BUS_CONFIG_PSRAM_TRANS_ALIGN=64'",
+ "'-D ST7789_I80_BUS_CONFIG_SRAM_TRANS_ALIGN=4'",
+ "'-D ST7789_IO_I80_CONFIG_CS_GPIO_NUM=17'",
+ "'-D ST7789_IO_I80_CONFIG_PCLK_HZ=12000000'",
+ "'-D ST7789_IO_I80_CONFIG_TRANS_QUEUE_DEPTH=10'",
+ "'-D ST7789_IO_I80_CONFIG_LCD_CMD_BITS=8'",
+ "'-D ST7789_IO_I80_CONFIG_LCD_PARAM_BITS=8'",
+ "'-D ST7789_IO_I80_CONFIG_DC_LEVELS_DC_IDLE_LEVEL=0'",
+ "'-D ST7789_IO_I80_CONFIG_DC_LEVELS_DC_CMD_LEVEL=0'",
+ "'-D ST7789_IO_I80_CONFIG_DC_LEVELS_DC_DUMMY_LEVEL=0'",
+ "'-D ST7789_IO_I80_CONFIG_DC_LEVELS_DC_DATA_LEVEL=1'",
+ "'-D ST7789_IO_I80_CONFIG_FLAGS_CS_ACTIVE_HIGH=0'",
+ "'-D ST7789_IO_I80_CONFIG_FLAGS_REVERSE_COLOR_BITS=0'",
+ "'-D ST7789_IO_I80_CONFIG_FLAGS_SWAP_COLOR_BYTES=0'",
+ "'-D ST7789_IO_I80_CONFIG_FLAGS_PCLK_ACTIVE_NEG=0'",
+ "'-D ST7789_IO_I80_CONFIG_FLAGS_PCLK_IDLE_LOW=0'",
+ "'-D ST7789_DEV_CONFIG_RESET_GPIO_NUM=GPIO_NUM_NC'",
+ "'-D ST7789_DEV_CONFIG_COLOR_SPACE=ESP_LCD_COLOR_SPACE_RGB'",
+ "'-D ST7789_DEV_CONFIG_BITS_PER_PIXEL=16'",
+ "'-D ST7789_DEV_CONFIG_FLAGS_RESET_ACTIVE_HIGH=false'",
+ "'-D ST7789_DEV_CONFIG_VENDOR_CONFIG=NULL'",
+ "'-D ST7789_RD_GPIO=2'",
+ "'-D LCD_SWAP_XY=false'",
+ "'-D LCD_MIRROR_X=false'",
+ "'-D LCD_MIRROR_Y=false'",
+ "'-D BOARD_HAS_TOUCH'",
+ "'-D TOUCH_CST816S_I2C'",
+ "'-D CST816S_I2C_HOST=I2C_NUM_0'",
+ "'-D CST816S_I2C_CONFIG_SDA_IO_NUM=21'",
+ "'-D CST816S_I2C_CONFIG_SCL_IO_NUM=22'",
+ "'-D CST816S_I2C_CONFIG_SDA_PULLUP_EN=GPIO_PULLUP_ENABLE'",
+ "'-D CST816S_I2C_CONFIG_SCL_PULLUP_EN=GPIO_PULLUP_ENABLE'",
+ "'-D CST816S_I2C_CONFIG_MASTER_CLK_SPEED=400000'",
+ "'-D CST816S_I2C_CONFIG_CLK_FLAGS=0'",
+ "'-D CST816S_IO_I2C_CONFIG_DEV_ADDR=ESP_LCD_TOUCH_IO_I2C_CST816S_ADDRESS'",
+ "'-D CST816S_IO_I2C_CONFIG_CONTROL_PHASE_BYTES=1'",
+ "'-D CST816S_IO_I2C_CONFIG_DC_BIT_OFFSET=0'",
+ "'-D CST816S_IO_I2C_CONFIG_LCD_CMD_BITS=8'",
+ "'-D CST816S_IO_I2C_CONFIG_LCD_PARAM_BITS=0'",
+ "'-D CST816S_IO_I2C_CONFIG_FLAGS_DC_LOW_ON_DATA=false'",
+ "'-D CST816S_IO_I2C_CONFIG_FLAGS_DISABLE_CONTROL_PHASE=true'",
+ "'-D CST816S_TOUCH_CONFIG_X_MAX=LCD_WIDTH'",
+ "'-D CST816S_TOUCH_CONFIG_Y_MAX=LCD_HEIGHT'",
+ "'-D CST816S_TOUCH_CONFIG_RST_GPIO_NUM=GPIO_NUM_NC'",
+ "'-D CST816S_TOUCH_CONFIG_INT_GPIO_NUM=GPIO_NUM_NC'",
+ "'-D CST816S_TOUCH_CONFIG_LEVELS_RESET=0'",
+ "'-D CST816S_TOUCH_CONFIG_LEVELS_INTERRUPT=0'",
+ "'-D TOUCH_SWAP_XY=false'",
+ "'-D TOUCH_SWAP_X=false'",
+ "'-D TOUCH_SWAP_Y=false'",
+ "'-D BOARD_HAS_TF'",
+ "'-D TF_CS=5'",
+ "'-D TF_SPI_MOSI=23'",
+ "'-D TF_SPI_SCLK=18'",
+ "'-D TF_SPI_MISO=19'",
+ "'-D BOARD_HAS_SPEAK'",
+ "'-D SPEAK=26'",
+
+ "-DCYD_SCREEN_GAP_PX=8",
+ "-DCYD_SCREEN_MIN_BUTTON_HEIGHT_PX=35",
+ "-DCYD_SCREEN_MIN_BUTTON_WIDTH_PX=35",
+ "-DCYD_SCREEN_VERTICAL=1",
+ "-DCYD_SCREEN_FONT=lv_font_montserrat_14",
+ "-DCYD_SCREEN_FONT_SMALL=lv_font_montserrat_10",
+ "-DCYD_SCREEN_SIDEBAR_SIZE_PX=40",
+ "-DCYD_SCREEN_DRIVER_ESP32_SMARTDISPLAY=1",
+ "-DCYD_SCREEN_DISABLE_TOUCH_CALIBRATION=1",
+ "-DCYD_SCREEN_DISABLE_INVERT_COLORS=1"
+ ],
+ "f_cpu": "240000000L",
+ "f_flash": "40000000L",
+ "flash_mode": "dio",
+ "mcu": "esp32",
+ "variant": "esp32"
+ },
+ "connectivity": [
+ "wifi",
+ "bluetooth",
+ "ethernet",
+ "can"
+ ],
+ "debug": {
+ "openocd_board": "esp-wroom-32.cfg"
+ },
+ "frameworks": [
+ "arduino",
+ "espidf"
+ ],
+ "name": "esp32-2432S022C-V",
+ "upload": {
+ "flash_size": "4MB",
+ "maximum_ram_size": 327680,
+ "maximum_size": 4194304,
+ "require_upload_port": true,
+ "speed": 460800
+ },
+ "url": "https://www.aliexpress.com/item/1005006284154750.html",
+ "vendor": "Sunton"
+ }
diff --git a/CYD-Klipper/platformio.ini b/CYD-Klipper/platformio.ini
index c39c3d1..0929073 100644
--- a/CYD-Klipper/platformio.ini
+++ b/CYD-Klipper/platformio.ini
@@ -92,6 +92,9 @@ board = esp32-8048S043C-smartdisplay
[env:esp32-8048S043C-SD-alt]
board = esp32-8048S043C-smartdisplay-alt
+[env:esp32-2432S022C-SD-V]
+board = esp32-2432S022C-vertical
+
[env:esp32-CROWPANEL-28R]
board = esp32-CROWPANEL-28R
lib_deps =
@@ -113,3 +116,4 @@ lib_deps =
plageoj/UrlEncode@^1.0.1
knolleary/PubSubClient@^2.8
WiFiClientSecure
+
diff --git a/README.md b/README.md
index 13e7171..5d52b2a 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,10 @@
[](https://ko-fi.com/suchmememanyskill)
# CYD-Klipper
-An implementation of a wireless Klipper status display on an ESP32 + screen. Uses Moonraker to fetch data.
+An implementation of a wireless Klipper, Bambu and Octoprint status display on an ESP32 + screen. Uses Moonraker to fetch data.
A simple and cheap solution to use a dedicated screen with Klipper, a 3d printing Firmware.
+Also now with Bambu Lab and Octoprint printers!

@@ -24,6 +25,8 @@ A ESP32-2432S028R is required to run this project. You can find out where to buy
- Toggle Moonraker power devices
- OTA updates
- Serial console over USB (115200 8n1, echo off, LF/LF)
+- Control Klipper, Octoprint and Bambu printers.
+- Wired Serial/Usb Klipper connection
### Install
diff --git a/_site/index.html b/_site/index.html
index 62444d5..da92100 100644
--- a/_site/index.html
+++ b/_site/index.html
@@ -71,7 +71,7 @@
CYD-Klipper
- An implementation of a Klipper status display on an ESP32 + screen.
Uses Moonraker to fetch data.
Source code is available on GitHub.
+ An implementation of a wireless Klipper, Bambu and Octoprint status display on an ESP32 + screen.
Uses Moonraker to fetch data.
Source code is available on GitHub.