Anchor is an implementation of the Klipper protocol.
You can use Anchor to create custom Klipper MCUs. It's written in Rust and
provides only the protocol implementation, giving you full control over how you
want to tie the protocol handling in to your program. You can even implement a
Klipper MCU that runs over a PTY, like the Linux klipper_mcu
program.
This repo contains the following folders:
-
anchor
The runtime support library for Anchor. It includes all the functionality that is used during runtime. -
anchor_codegen
The Klipper protocol requires exchanging an initial data dictionary, and command IDs need to be hooked up.anchor_codegen
creates this data dictionary, message handlers, serializers, etc. and generates a Rust module that will be included by theklipper_generate_config
macro in your project. -
rp2040_demo
A simple demo showing how one could integrate Anchor in an rp2040 project, communicating over USB. -
esp32c3_demo
A simple demo showing how one could integrate Anchor in an esp32c3 project, communicating over USB. -
testjig
A development tool and example of how to use Anchor for implementing a very simple PTY based MCU that can talk to Klipper. -
anchor_macro
Implements theproc_macro
s needed byanchor
. You shouldn't have to mess with this.
Anchor powers the Beacon3D Surface Scanner.
Documentation can be found here.
Anchor is licensed under the MIT license, which means you can do pretty much whatever you want with it. Please see LICENSE.txt for more information.
We want to showcase new and interesting uses of Anchor as we are very excited about this new implementation. If you've made something with Anchor, drop a line. We'd love to add you to this list.
-
Beacon3D is a novel eddy current surface scanner that can scan your bed in seconds.
-
Crampon This nozzle based accelerometer was reimplemented in Anchor to demonstrate how quickly one can bring up a new device.
-
Rampon The popular KUSBA resonance measuring device firmware was reimplemented using Anchor as well, fixing some minor firmware bugs in the original implementation.
This project is in no way endorsed by the Klipper project. Please do not direct any support requests to the Klipper project.