mirror of
https://github.com/suchmememanyskill/CYD-Klipper.git
synced 2026-03-21 05:33:24 +00:00
cbd40414c85b8b53eff7a924ed7cfa58c4517865
On my esp32-3248S035C, after entering the IP address, I was seeing a segfault at lv_mem_free at .pio/libdeps/esp32-3248S035C/lvgl/src/misc/lv_mem.c:179 allocate_btn_areas_and_controls at .pio/libdeps/esp32-3248S035C/lvgl/src/widgets/lv_btnmatrix.c:877 lv_btnmatrix_set_map at .pio/libdeps/esp32-3248S035C/lvgl/src/widgets/lv_btnmatrix.c:94 lv_keyboard_update_map at .pio/libdeps/esp32-3248S035C/lvgl/src/extra/widgets/keyboard/lv_keyboard.c:397 lv_keyboard_set_mode at .pio/libdeps/esp32-3248S035C/lvgl/src/extra/widgets/keyboard/lv_keyboard.c:185 keyboard_event_ip_entry(_lv_event_t*) at src/ui/ip_setup.cpp:81 event_send_core at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:467 lv_event_send at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:63 lv_keyboard_def_event_cb at .pio/libdeps/esp32-3248S035C/lvgl/src/extra/widgets/keyboard/lv_keyboard.c:308 event_send_core at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:467 lv_event_send at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:63 lv_btnmatrix_event at .pio/libdeps/esp32-3248S035C/lvgl/src/widgets/lv_btnmatrix.c:520 lv_obj_event_base at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:91 (discriminator 1) event_send_core at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:458 lv_event_send at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_event.c:63 indev_proc_release at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_indev.c:970 indev_button_proc at .pio/libdeps/esp32-3248S035C/lvgl/src/core/lv_indev.c:808 lv_timer_exec at .pio/libdeps/esp32-3248S035C/lvgl/src/misc/lv_timer.c:313 set_screen_brightness() at src/core/lv_setup.cpp:191 ip_init() at src/ui/ip_setup.cpp:239 setup() at src/main.cpp:28 loopTask(void*) at /home/user/etc/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:41 This seems to be due to a free-after-free. The solution here is to potentially change the keymap before running the rest of the logic, because the later logic may tear down the context. This change also only changes the keyboard mode on focus change, to avoid running this code on the many un-related events that this handler gets called for.
CYD-Klipper
An implementation of a wireless Klipper 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.
Required hardware
A ESP32-2432S028R is required to run this project. You can find out where to buy these on the "ESP32 Cheap Yellow Display" repository.
Features
- View printer status
- View print progress and print statistics
- Start a print
- (When the printer is idle) move the printer
- (During a print) set fan speed, flow rate, speed and z offset
- Manage temperature
- Extrude/Retract filament
- Execute predefined gcode macros
- Toggle Moonraker power devices
Install
On initial install, all data should be wiped. On updates, data should be able to be kept without issues.
There are no 'over the air' updates. Each update has to be applied manually.
Screenshots
(Quite literally shots of the screen. I'm sorry)
| - | - |
|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Credits
- xtouch
- ESP32-Cheap-Yellow-Display
- OperatorB for the ESP32-3248S035C display driver
- esp32-smartdisplay
Languages
C++
84.6%
C
10.2%
Python
2.9%
HTML
1.7%
Shell
0.5%










