DWIN_T5UIC1_LCD
Python class for the Ender 3 V2 LCD runing klipper3d with Moonraker
https://github.com/arksine/moonraker
Setup:
Disable Linux serial console
By default, the primary UART is assigned to the Linux console. If you wish to use the primary UART for other purposes, you must reconfigure Raspberry Pi OS. This can be done by using raspi-config:
- Start raspi-config:
sudo raspi-config.
- Select option 3 - Interface Options.
- Select option P6 - Serial Port.
- At the prompt Would you like a login shell to be accessible over serial? answer 'No'
- At the prompt Would you like the serial port hardware to be enabled? answer 'Yes'
- Exit raspi-config and reboot the Pi for changes to take effect.
For full instructions on how to use Device Tree overlays see this page.
In brief, add a line to the /boot/config.txt
file to apply a Device Tree overlay.
dtoverlay=disable-bt
Enabling Klipper's API socket
By default, the Klipper's API socket is not enabled. In order to use the API server, the file /etc/default/klipper need to be updated form
KLIPPY_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -l /tmp/klippy.log"
To:
KLIPPY_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log"
Library requirements
Thanks to wolfstlkr
sudo apt-get install python3-pip python3-gpiozero python3-serial git
sudo pip3 install multitimer
git clone https://github.com/bustedlogic/DWIN_T5UIC1_LCD.git
Wire the display
- Display <-> Raspberry Pi GPIO BCM
- Rx = GPIO14 (Tx)
- Tx = GPIO15 (Rx)
- Ent = GPIO13
- A = GPIO19
- B = GPIO26
- Vcc = 2 (5v)
- Gnd = 6 (GND)
Here's a diagram based on my color selection:
I tried to take some images to help out with this: You don't have to use the color of wiring that I used:
Run The Code
Enter the downloaded DWIN_T5UIC1_LCD folder. Make new file run.py and copy/paste in the following (pick one)
For an Ender3v2
#!/usr/bin/env python3
from dwinlcd import DWIN_LCD
encoder_Pins = (26, 19)
button_Pin = 13
LCD_COM_Port = '/dev/ttyAMA0'
API_Key = 'XXXXXX'
DWINLCD = DWIN_LCD(
LCD_COM_Port,
encoder_Pins,
button_Pin,
API_Key
)
If your control wheel is reversed (Voxelab Aquila) use this instead.
#!/usr/bin/env python3
from dwinlcd import DWIN_LCD
encoder_Pins = (19, 26)
button_Pin = 13
LCD_COM_Port = '/dev/ttyAMA0'
API_Key = 'XXXXXX'
DWINLCD = DWIN_LCD(
LCD_COM_Port,
encoder_Pins,
button_Pin,
API_Key
)
Run with python3 ./run.py
Run at boot:
Note: Delay of 30s after boot to allow webservices to settal.
path of `run.py` is expected to be `/home/pi/DWIN_T5UIC1_LCD/run.py`
sudo chmod +x run.py
sudo chmod +x simpleLCD.service
sudo mv simpleLCD.service /lib/systemd/system/simpleLCD.service
sudo chmod 644 /lib/systemd/system/simpleLCD.service
sudo systemctl daemon-reload
sudo systemctl enable simpleLCD.service
sudo reboot
Status:
Working:
Print Menu:
* List / Print jobs from OctoPrint / Moonraker
* Auto swiching from to Print Menu on job start / end.
* Display Print time, Progress, Temps, and Job name.
* Pause / Resume / Cancle Job
* Tune Menu: Print speed & Temps
Perpare Menu:
* Move / Jog toolhead
* Disable stepper
* Auto Home
* Z offset (PROBE_CALIBRATE)
* Preheat
* cooldown
Info Menu
* Shows printer info.
Notworking:
* Save / Loding Preheat setting, hardcode on start can be changed in menu but will not retane on restart.
* The Control: Motion Menu