Want to run Klipper on your Neptune 3 Pro? And still want to be able to use your Neptune 3 Pro LCD touch screen?
Take a look at this python service for the Elegoo Neptune 3 Pro LCD! Running together with Klipper3d and Moonraker!
When wiring your screen, you can either wire it directly to one of your Raspberry Pi / SBC availible UARTs or you can wire it through a USB to UART converter. Both options are described below, pick the option that suits your needs.
Remove the back-cover of the LCD by unscrewing the four screws.
Connect the LCD to the Raspberry Pi UART according to the table below:
Raspberry Pi | LCD |
---|---|
Pin 4 (5V) | 5V (Black wire) |
Pin 6 (GND) | GND (Red wire) |
GPIO 14 (TXD) | RX (Green wire) |
GPIO 15 (RXD) | TX (Yellow wire) |
Quite simple, just remember to cross RX and TX on the LCD and the USB/UART HW. | USB <-> UART HW | LCD |
---|---|---|
5V | 5V (Black wire) | |
GND | GND (Red wire) | |
TXD | RX (Green wire) | |
RXD | TX (Yellow wire) |
LCD/20240125.tft
to the root of a FAT32 formatted micro-SD card.Update Successed!
A more detailed guide on LCD screen firmware update can be found on the Elegoo web-pages.
Note: You can safely skip this section if you wired the display through a USB to UART converter
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:
sudo raspi-config.
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
Make sure Klipper's API socket is enabled by reading the Klipper arguments.
Command:
cat ~/printer_data/systemd/klipper.env
Response:
KLIPPER_ARGS="/home/pi/klipper/klippy/klippy.py /home/pi/printer_data/config/printer.cfg -I /home/pi/printer_data/comms/klippy.serial -l /home/pi/printer_data/logs/klippy.log -a /home/pi/printer_data/comms/klippy.sock"
The KLIPPER_ARGS should include -a /home/pi/printer_data/comms/klippy.sock
. If not add it to the klipper.env file!
sudo apt-get install python3-pip git
pip install pyserial
git clone https://github.com/joakimtoe/KlipperLCD
cd KlipperLCD
Open main.py
and find the class KlipperLCD
declaration:
class KlipperLCD ():
def __init__(self):
...
LCD("/dev/ttyAMA0", callback=self.lcd_callback)
...
PrinterData('XXXXXX', URL=("127.0.0.1"), klippy_sock='/home/pi/printer_data/comms/klippy.sock')
If your UART is something other than the default ttyAMA0
, replace the string "/dev/ttyAMA0"
to match your UART selection.
Note: If using a USB to UART converter to connect your screen to Klipper, the converter usually shows up in Linux as
"/dev/ttyUSB0"
.
Or if your Klipper socket is called something else, replace klippy_sock
string "/home/pi/printer_data/comms/klippy.sock"
with the path and name of your klipper socket file.
Once the LCD touch screen is wired to the Raspberry Pi, Klipper socket API is enabled and the KlipperLCD class is configured according to your wiring you can fire up the code!
python3 main.py
Congratulations! You can now use the touch screen!
If the path of main.py
is something else than /home/pi/KlipperLCD/main.py
or your user is not pi
. Open and edit KlipperLCD.service
to fit your needs.
Enable the service to automatically start at boot:
sudo chmod +x main.py
sudo chmod +x KlipperLCD.service
sudo mv KlipperLCD.service /etc/systemd/system/KlipperLCD.service
sudo chmod 644 /etc/systemd/system/KlipperLCD.service
sudo systemctl daemon-reload
sudo systemctl enable KlipperLCD.service
sudo reboot
The console is enabled by default and can be accessed by clicking center top of the main screen or by clicking the thumbnail area while printing.
The console enables sending commands and will display all gcode responses and information from Klipper normally found in the console tab in Mainsail or Fluidd.
KlipperLCD also supports thumbnails!
Follow this guide to enable thumbnails in your slicer: https://klipperscreen.readthedocs.io/en/latest/Thumbnails/