Dip Coater

April 28, 2026 ยท View on GitHub

Dip Coater is a terminal application for controlling a motorized dip coater. It supports manual motion, homing, absolute positioning, logging, advanced motor settings, and simple scripted coating routines.

The app is built with Textual. It supports TMC2209, TMC2660, and TMC5160 motor drivers.

Start Here

The user documentation lives in docs/.

Quick Run

After installation, start the app with:

dip-coater

To test the interface without real hardware:

dip-coater --driver TMC5160 --use-dummy-driver

For a TMC5160 evaluation board connected over USB-TMCL:

dip-coater --driver TMC5160 --interface usb_tmcl --port /dev/tty.usbmodemTMCEVAL1

Documentation Website

The docs are written as Markdown and can be published with MkDocs.

Preview locally:

python3 -m pip install -e ".[docs]"
mkdocs serve

Then open the local URL printed by MkDocs.

Build the static site:

mkdocs build

Development Checks

Run the non-hardware tests:

uv run pytest -q -m "not hardware"

Hardware tests are documented in Developer Notes.