An overhaul of a Tenlog TL-D3 Pro stock printer to one that adds a new screen and Raspberry Pi to run Klipper.
This repository contains a useful PrusaSlicer profile for the stock printer and was used as a starting point during developement. The README.md also contains the stock printer settings as reported via the G-Codes M115 and M503. The tool change G-Code macro ended up causing prints to fail to start when starting with the 2nd tool head as when it docked the first tool head it would try and retract the fillament on a cooled head which Klipper will throw an error (Marlin flavor does not throw an error and just skips it). Currently the tool head macro has been disabled as I need to understand how to retract conditionally.
These Klipper G-Code conditional resources may help:
This config got the printer up and running however either the x-axis or y-axis was reversed and I believe there was another issue.
TODO: Compare this config to the current one and docuement the differences.
Klipper does not support the use a buzzer / speaker for notifications but this pull request shows how to add it as an output pin and how to define a gcode macro to use it. Additionally, this config shows how to play songs with it. I currently don't have a use case for it, but I envision a tone being played each time the printer needs human interaction, if a failed print was detected, when the print had finished, or after the bed had cooled down enough to release parts.
- jonpackard/klipper_config_tld3pro - This is a TL-D3 Pro Klipper conversion, but I have not yet studdied it.
TODO: add this image somewhere
The physical orientation of the screen required to fit the exiting chasis resulted in an upside display image and thus had to be changed in software. There were two steps required for this, screen rotataion, and touch rotation. These steps seem to be Pi version and screen dependent but worked for the chosen hardware is documented below.
Per the Klipper Screen Screen Rotation docs:
- I don't remember trying the Universal xorg configuration method and the file /usr/share/X11/xorg.conf.d/90-monitor.conf does not exist.
- The Raspberry Pi using kernel cmdline method worked and the text " video=DSI-1:800x480@60,rotate=180" was added to the end of the existing line.
- The manufacture of the sceen provided instructions but these did not work.
Per the Klipper Screen Touchscreen issues page:
- The instruction under "Touch rotation and matrix" did allow me to identify / test the correct rotation but the instructions under "Save touch calibration" did not work.
- The "Alternative Example" method worked.
I bought a BTT Klicky Probe but have not made a plan but here are some resources that my prove useful:
- Klicky Prode docs
- Klicky GitHub
- Klicky PCB - I Believe this is what I have.
- Klicky-00: Zero X,Y offset probe
- A more advanced version that could be looked at in the future.
Contrary to what the
camera docs
say, do not change camera_auto_detect=1 to camera_auto_detect=0 but do add the line dtoverlay=imx708.
I ended up with the below section directly above the MailsailOS header
[all]
# [AH] add arducam
dtoverlay=imx708
After that you can follow the Mainsail How to setup a Raspicam instructions.
- It is possible auto focus needs to be enabled
- obico uses AI to detect failed prints.
As described on on this page There are two approaches for controlling the relay, you can use the Klipper config, but this will only work if all MCUs are connected, or through the moonraker config. The below section was added to our moonraker.conf
# 24V realy A
[power 24V Power]
type: gpio
pin: gpio19
initial_state: off
off_when_shutdown: True
locked_while_printing: True
on_when_job_queued: True
# bound_service: klipper # We don't want this as we want the MCU to be powered by the physical power switch
# and to always connect via klipper when powered - the reason we have the relay is so that we can kill the
# 24V power for flashing the klipper firmware on to the MCU as instructed by the docs.