freakydude / klipper-serial-btt

This is my project to enable serial (UART) connected BigTreeTech-TouchScreens with Klipper by emulating anything it needs with macros.
https://blog.freakydu.de/posts/2023-03-23-use_bigtreetech_touchscreenfirmware_with_klipper_on_sidewinder_x2/
GNU General Public License v3.0
22 stars 4 forks source link
artillery bigtreetech btt gcode klipper mainsail marlin moonraker sidewinder sidewinderx2 touchscreen

A project to use BigTreeTech TouchScreens (for Marlin) with Klipper

Caution

First of all, and as always with my other posts and projects. I am not a company. I'm doing this in my spare time and mostly because I'm really excited to make these things work and improve things.

I have tested all this stuff only with my own printer and the constellation around it. I did my best to make it all work without problems. However, this is a work in progress. There is no guarantee. Be careful, watch your printer, double check things. Use it as is. I am not responsible for any damages or consequences of any kind..

And yes, help and improve if you find something. I will put this project under an open source license, I have an idea which one is the right one...

About

This is my project to enable serial (UART) connected BigTreeTech-TouchScreens with Klipper by emulating anything they need with macros. I tested it with an Artillery Sidewinder X2 printer. It comes with a relabeled Bigtreetech BTT-TFT28. It's one of the supported screens of the open source BigTreeTech TouchScreenFirmware and is original made for Marlin/RepRap firmware.

Just to clarify that, I talk about the popular TouchMode here, not an LCD emulation.

Due limitations of Klipper G-code macros, this project will conflict with the mainsail-config project. So I included also basic macros for a full featured Mainsail UI. They are derived and adapted from their recommended macros.

In general this code should work for any of these displays an may need additional changes here - but I cant test that. Feel free to help us with further improvements. General oriented pull requests are welcome.

Intro and more details

See my blog Use your TouchScreen with Klipper on Sidewinder X2 for more details and news.

State

Prepare your Raspberry Pi / BTT CB1

Requirements

Get this repository

Install required package

Copy systemd service

Prepare klipper/mainsail

The the general idea is, that there is no need to adapt the files in fd-macros/ folder. But we linked the fd-macros-example.cfg and included it beforehand.

If you like or have to adapt anything and if you don't want to break the update manager for this repository, it would be wise to make a copy of these files. Normally it should be only the fd-macros-example.cfg because I designed it as a wrapper (as far as possible).

So exclude the linked files and include your adapted copies instead.

Feel free create pull requests if something general is wrong or missing.

Optional: Support of a status led

Changes to color of a status led (for example on your extruder) on some printer states. To enable that you have to add a neopixel or dotstar config section into your printer.cfg with the name statusled.

Example config section for Sidewinder X2 Extruder LED

[neopixel statusled]
pin: PB7
initial_RED: 0.0
initial_GREEN: 0.25
initial_BLUE: 0.0

Prepare your slicer

PrusaSlicer settings

To enable all features, you have to configure things in your slicer (like in native Marlin) Switch to expert mode and configure the following properties:

For other slicers

It will work similar, please adapt accordingly and make a pull request here, if you like to.

Done

Feel free to create pull requests and discussions. I can't solve anything alone.

Have fun!

If you like, buy me a coffee

ko-fi

freakyDude