Update: A new version of this project that uses the printer original display connector is released on jpcurti/ender3-v3-se-klipper-with-display. It incorporates this project into a custom klipper and works any host without any additional configuration or wiring. Check it out!
This project allows you to use the original Creality E3V3SE (Ender 3 V3 SE) display with Klipper when connected directly to the host (at the moment a Raspberry pi only) via UART and GPIOs.It fetches the information from Klipper via the moonraker API and is able to send basic commands back, so that you can re-use the printer original display for some basic functionality.
Considering that the communication protocol between E3V3SE and the display is presently undisclosed, the repository includes a comprehensive guide on reverse engineering the communication protocol of such printers. This resource is invaluable for extending this capability to other 3D printers. Users are encouraged to customize the project to suit their specific printer models.
The currently supported features are:
Feature | Status |
---|---|
Print file | ✓ |
Tune print | ✓ |
Pause/continue print | ✓ |
Stop print | ✓ |
Move Axis | ✓ |
Home Axis | ✓ |
Set Z offset | ✓ |
Disable step motors | ✓ |
Preheat bed | ✓ |
Cooldown | ✓ |
Set nozzle temperature | ✓ |
Set bed temperature | ✓ |
Set max speed | ✗ |
Set max acceleration | ✗ |
Set steps per-mm | ✗ |
Leveling Menu | ✗ |
Features that are not available are shown as a pop-up:
pip install e3v3se-display-klipper
e3v3se_display_klipper
git clone https://github.com/jpcurti/E3V3SE_display_klipper.git
cd E3V3SE_display_klipper
Parameters can be set as arguments or in a config.ini
file in the project root. Run python3 run.py --help
(for project cloning) or e3v3se_display --help
for a complete list of parameters.
- Example of configuration file: Check the file
config-example.ini
- Example when running as arguments:
python run.py --com_port '/dev/ttyAMA0' --baud 115200 --gpio_wheel_button_left 26 --gpio_wheel_button_right 19 --gpio_wheel_button_click 13 --klipper_api_key 'yourapikey' --klipper_socket '/home/youruser/printer_data/comms/klippy.sock'
or
e3v3se_display_klipper --com_port '/dev/ttyAMA0' --baud 115200 --gpio_wheel_button_left 26 --gpio_wheel_button_right 19 --gpio_wheel_button_click 13 --klipper_api_key 'yourapikey' --klipper_socket '/home/youruser/printer_data/comms/klippy.sock'
If you want to follow the same wiring as the default configuration, make sure to configure the primary UART on the raspberry!.
Then, wire the raspberry pi and display according to the image below:
Display | RPi |
---|---|
VCC (5V) | 2 |
GND | 6 |
TX | 10 (RX) |
RX | 8 (TX) |
A | 19 |
B | 26 |
ENTER | 13 |
Important - Credits:
-
This repository is heavily based on the DWIN_T5UIC1_LCD repository for the E3V2 display and makes use of most of the available classes and methods implemented there, with the necessary modifications for the E3V3SE display. All credits goes to the author of the DWIN_T5UIC1_LCD project for making the version which this repository is based on.
-
This project is based on the E3V3SE display firmware 1.0.6. Any changes in the firmware version, such as a new version from Creality, can change the assets locations within the display memory and a new mapping would be necessary. A list of available firmware can be found on Creality website and a detailed instruction on how to update your display is available on youtube.