Files
p5-wallplotter/hardware.md
T
2026-09-05 13:39:34 +02:00

94 lines
3.5 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Hardware: Wandplotter
Der Wandplotter ist ein **Polargraph**: eine Gondel hängt an zwei Riemen, die oben links und rechts über Motoren und Umlenkrollen laufen. Es gibt keine X/Y-Schienen. Position entsteht allein aus den beiden Riemenlängen.
Setup und Software: [tutorial.md](tutorial.md).
## Baugruppen
| Teil | Rolle |
|------|--------|
| **Linker Motor** | NEMA-17-Schrittmotor, Buchse **X** auf der SKR. Wickelt den linken Riemen. Längerer linker Riemen → Gondel nach rechts/unten. |
| **Rechter Motor** | Gleicher Typ, Buchse **Y**. Wickelt den rechten Riemen. |
| **Umlenkrollen (Idler)** | Oben, Abstand der Mitten **1660 mm**. Die Riemenlänge zählt **von der Rolle zur Gondel**, nicht die Schleife Motor↔Rolle. |
| **Riemen / Zahnriemen** | Zwei Längen, max. in der Firmware 3500 mm (`POLARGRAPH_MAX_BELT_LEN`). |
| **Gondel** | Hängender Schlitten mit Stifthalter. Gewicht hält die Riemen straff. |
| **Servo** | Hebt und senkt den Stift. Marlin: Servo 0, Befehl `M280`. Im Beispiel oft `S120` oben, `S30` unten (an Mechanik anpassen). |
| **Steuerung** | BigTreeTech **SKR Mini E3 V3**, STM32G0, USB-CDC zum Rechner. Treiber **TMC2209**, typisch 1200 mA RMS für die X/Y-Motoren. |
| **Firmware** | Marlin mit `#define POLARGRAPH`. Kartesische `G1 X… Y…` werden intern in zwei Riemenlängen umgerechnet. |
| **Rechner + Browser** | p5-Sketch, Web Serial, eine G-code-Zeile nach der anderen. |
## Motorzuordnung (Wand → Board)
| Seite der Wand | Buchse |
|----------------|--------|
| links | **X** |
| rechts | **Y** |
Z wird für die hängenden Motoren nicht gebraucht. Der „Extruder“ eines 3D-Druckers ist hier der Stift-Servo.
## Marlin Polargraph (`Configuration.h`)
Quelle: `MarlinBigTree/Marlin/Configuration.h` und `Configuration_adv.h`. Board: **SKR Mini E3 V3**.
```c
#define POLARGRAPH
#if ENABLED(POLARGRAPH)
#define POLARGRAPH_MAX_BELT_LEN 3500.0 // mm, Override mit M665 H
#define DEFAULT_SEGMENTS_PER_SECOND 5
#define PEN_UP_DOWN_MENU
#endif
#define X_BED_SIZE 1660 // Abstand der Umlenkrollen (Mitten)
#define Y_BED_SIZE 2000 // Zeichnungs-Höhe unter der Rollenlinie
#define X_MIN_POS (-X_BED_SIZE/2) // -830
#define X_MAX_POS (X_BED_SIZE/2) // 830
#define Y_MAX_POS 800 // Rollenlinie (80 cm über Y=0)
#define Y_MIN_POS (Y_MAX_POS - Y_BED_SIZE) // -1200
#define BED_CENTER_AT_0_0
#define MANUAL_X_HOME_POS 0
#define MANUAL_Y_HOME_POS -2598.19 // Boot-Pose bei max. gleicher Riemenlänge
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400 } // 16×, 20Z GT2 → 40 mm/U
#define DEFAULT_MAX_FEEDRATE { 500, 500, 5 } // mm/s
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100 }
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define EXTRUDERS 0
#define NUM_SERVOS 1
#define SERVO_DELAY { 300 }
#define DEACTIVATE_SERVOS_AFTER_MOVE
```
`MANUAL_Y_HOME_POS` folgt aus `Y_MAX_POS - sqrt(POLARGRAPH_MAX_BELT_LEN² − (X_BED_SIZE/2)²)` ≈ −2598. Nach dem Einschalten liegt die Maschine dort, nicht an der Blattmitte. Arbeitsursprung setzen mit **`G92 X0 Y0`** in der Blattmitte (80 cm unter den Rollen).
### Treiber (`Configuration_adv.h`)
TMC2209, 16× Microsteps, 1200 mA RMS:
```c
#define X_CURRENT 1200
#define Y_CURRENT 1200
#define X_MICROSTEPS 16
#define Y_MICROSTEPS 16
```
`EMERGENCY_PARSER` ist aus.
### Live nachjustieren
Zeichnung konisch/schief (erst nach korrektem Home):
```gcode
M665 L-830 R830
```
Motoren zu heiss oder Schrittverlust (Firmware-Default 1200 mA):
```gcode
M906 X1000 Y1000
```