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 @@ [![Donations](https://img.shields.io/badge/Support%20on-Ko--Fi-red)](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! ![showcase_image](readme/PXL_20231113_171629383.jpg) @@ -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.

Changelog