canbus_laser_toolhead/README.de.md

265 lines
10 KiB
Markdown
Raw Permalink 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.

# 🔥 Laser CANbus Toolhead PCB
> 🌍 **Sprachen:** [English](README.md) | [Deutsch](README.de.md)
Ein kompaktes, robustes Toolhead-Board für Klipper-basierte Lasergravierer und -schneider (CoreXY). Dieses Board integriert Stromversorgung, Lasertreiber-Logik, CAN-Bus Kommunikation und Input Shaping (ICM-20602) auf kleinstem Raum.
![Laser CANbus Toolhead PCB](img/Laser%20CANbus%20Toolhead.png)
## 📚 Inhalt
<!-- @import "[TOC]" {cmd="toc" depthFrom=1 depthTo=6 orderedList=false} -->
<!-- code_chunk_output -->
- [🔥 Laser CANbus Toolhead PCB](#-laser-canbus-toolhead-pcb)
- [📚 Inhalt](#-inhalt)
- [✨ Features](#-features)
- [🧠 Mikrocontroller](#-mikrocontroller)
- [🔗 CAN-Bus Kommunikation](#-can-bus-kommunikation)
- [📊 Input Shaping](#-input-shaping)
- [⚡ Laser-Leistungssteuerung](#-laser-leistungssteuerung)
- [🎛️ Laser-Signalsteuerung](#-laser-signalsteuerung)
- [🔌 Stromversorgung](#-stromversorgung)
- [🚨 Diagnose & Monitoring](#-diagnose--monitoring)
- [📋 Klipper Konfiguration](#-klipper-konfiguration)
- [Basis MCU Setup](#basis-mcu-setup)
- [Input Shaping (ICM-20602)](#input-shaping-icm-20602)
- [Laser Steuerung](#laser-steuerung)
- [🔌 Pinout & Steckerbelegung](#-pinout--steckerbelegung)
- [J101 - Power & CAN Input (Micro-Fit 3.0, 2x2)](#j101---power--can-input-micro-fit-30-2x2)
- [J101 - Strom & CAN Eingang (Micro-Fit 3.0, 2x2, THT)](#j101---strom--can-eingang-micro-fit-30-2x2-tht)
- [J102 - Laser Output (Micro-Fit 3.0, 1x3, THT)](#j102---laser-output-micro-fit-30-1x3-tht)
- [Debug/Programming Header (Rückseite)](#debugprogramming-header-rückseite)
- [🔧 Installation & Setup](#-installation--setup)
- [1. CAN-Bus Konfiguration](#1-can-bus-konfiguration)
- [2. Firmware Flash](#2-firmware-flash)
- [3. UUID ermitteln](#3-uuid-ermitteln)
- [⚠️ Sicherheitshinweise](#-sicherheitshinweise)
- [🛠️ BOM (Bill of Materials) - Highlights](#-bom-bill-of-materials---highlights)
- [🛠️ Technische Spezifikationen](#-technische-spezifikationen)
- [📝 Changelog](#-changelog)
- [Rev. 1](#rev-1)
- [Rev. 0 (Erste Veröffentlichung)](#rev-0-erste-veröffentlichung)
- [📚 Weitere Ressourcen](#-weitere-ressourcen)
- [Lizenz](#lizenz)
<!-- /code_chunk_output -->
## ✨ Features
### 🧠 Mikrocontroller
- **MCU:** STM32F072CBU6 (Cortex-M0, 48MHz, CAN-fähig)
- **Stabilität:** 12MHz Quarz für maximale CAN-Bus Stabilität
- **Firmware:** Klipper-kompatibel
### 🔗 CAN-Bus Kommunikation
- **Transceiver:** SN65HVD230 mit ESD-Schutz
- **Terminierung:** Split-Terminierung via Solder-Jumper
- **Slope-Control:** Schaltbar für EMI-Optimierung
### 📊 Input Shaping
- **Sensor:** On-board ICM-20602 Beschleunigungs-/Gyroskopsensor (SPI)
- **Zweck:** Klipper Resonanzmessung für perfekte Druckqualität
- **Vorteil:** Bessere Verfügbarkeit und moderne Sensortechnologie
### ⚡ Laser-Leistungssteuerung
- **Schaltung:** 24V / 6A High-Side Switch (CJAC70P06 P-MOSFET, 60V Spannungsfestigkeit)
- **Spitzenstrom:** 8A Fähigkeit
- **Soft-Start:** Begrenzt Einschaltstrom (Rise-Time ca. 1.2ms)
- **Sicherheit:** Hardware-Pull-Down verhindert ungewollte Aktivierung
- **Begrenzung:** Max 6A begrenzt durch Micro Fit 3.0 Steckverbinder mit 0.75mm² Draht
### 🎛️ Laser-Signalsteuerung
- **PWM:** 5V Level-Shifted via 74AHCT1G125 Buffer
- **Qualität:** Saubere Flanken, echtes Hardware-PWM via STM32 Timer
- **Kompatibilität:** Gängige Diodenlaser
### 🔌 Stromversorgung
- **Eingang:** 24V mit 250mA PTC-Sicherung und SMF24A TVS-Diode
- **5V Rail:** MP2459 Buck Converter (bis 60V Input tolerant)
- **3.3V Rail:** XC6206 LDO für MCU und Peripherie
### 🚨 Diagnose & Monitoring
- **Power-LEDs:** 24V In, 24V Sys, 5V, 3.3V
- **Status-LEDs:** Laser-Enable, Laser-PWM, Heartbeat
## 📋 Klipper Konfiguration
### Basis MCU Setup
```ini
[mcu toolhead]
canbus_uuid: <deine-uuid> # Mit "ls /dev/serial/by-id/*" oder "~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0" ermitteln
[temperature_sensor toolhead_mcu]
sensor_type: temperature_mcu
sensor_mcu: toolhead
```
### Input Shaping (ICM-20602)
```ini
[mpu9250]
cs_pin: toolhead:PA4
spi_bus: spi1
#axes_map: x,y,z # Je nach Drucker-Orientierung konfigurieren
[resonance_tester]
accel_chip: mpu9250
probe_points:
150, 150, 20 # An deine Druckbettgröße anpassen
```
### Laser Steuerung
```ini
# Laser PWM Signal
[output_pin laser_pwm]
pin: toolhead:PB14
pwm: True
cycle_time: 0.001 # 1kHz PWM Frequenz
shutdown_value: 0 # Sicherheit: Laser aus bei Notfall
# Laser Enable (optional)
[output_pin laser_enable]
pin: toolhead:PB15
value: 0
shutdown_value: 0
# Heartbeat LED (optional)
[output_pin heartbeat]
pin: toolhead:PA9
pwm: True
cycle_time: 1.0
```
## 🔌 Pinout & Steckerbelegung
### J101 - Power & CAN Input (Micro-Fit 3.0, 2x2)
| Pin | Signal | Beschreibung |
|-----|---------|--------------|
| 1 | **+24V** | Hauptstromversorgung (High Current) |
| 2 | **GND** | Masse |
| 3 | **CAN_H** | CAN-Bus High Signal |
### J101 - Strom & CAN Eingang (Micro-Fit 3.0, 2x2, THT)
| Pin | Signal | Beschreibung |
|-----|---------|--------------|
| 1 | **+24V** | Hauptstromversorgung (High Current) |
| 2 | **GND** | Masse |
| 3 | **CAN_H** | CAN-Bus High Signal |
| 4 | **CAN_L** | CAN-Bus Low Signal |
### J102 - Laser Output (Micro-Fit 3.0, 1x3, THT)
| Pin | Signal | Beschreibung |
|-----|---------|--------------|
| 1 | **GND** | Laser-Masse |
| 2 | **PWM** | 5V PWM-Signal (Level-Shifted) |
| 3 | **+24V** | Geschaltete Laser-Stromversorgung (Soft-Start) |
### Debug/Programming Header (Rückseite)
| Pad | Pin | Signal | Funktion |
|-----|-----|---------|----------|
| 1 | - | **5V** | 5V Einspeisung (vom Programmer) |
| 2 | - | **3.3V** | VTref (Referenzspannung) |
| 3 | PA13 | **SWDIO** | Serial Wire Debug I/O |
| 4 | PA14 | **SWCLK** | Serial Wire Debug Clock |
| 5 | - | **NRST** | Reset-Signal |
| 6 | - | **GND** | Masse |
> **💡 Bootloader-Modus:** Um den STM32 in den DFU/Bootloader-Modus zu versetzen (z.B. für Erst-Flash mit Katapult), brücke das **BOOT0** Pad mit **3.3V** während des Einschaltens.
## 🔧 Installation & Setup
### 1. CAN-Bus Konfiguration
- CAN-Bus Terminierung je nach Position im Netzwerk setzen
- Baudrate: 1 Mbit/s (Standard für Klipper)
### 2. Firmware Flash
1. Board in DFU-Modus versetzen (BOOT0 brücken)
2. Klipper für STM32F072 mit CAN-Support kompilieren
3. Firmware flashen: `make flash FLASH_DEVICE=<dfu-device>`
### 3. UUID ermitteln
```bash
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
```
## ⚠️ Sicherheitshinweise
- **Laser-Sicherheit:** Immer Schutzbrille tragen
- **Stromversorgung:** Nur mit 24V DC betreiben
- **Erste Inbetriebnahme:** Laser-Leistung langsam hochfahren
- **Notfall:** Hardware-Pull-Down sorgt für sicheren Zustand
## 🛠️ BOM (Bill of Materials) - Highlights
| Komponente | Wert/Typ | Funktion | Package | Bestellnummer |
|------------|----------|----------|---------|---------------|
| **U101** | STM32F072CBU6 | Hauptmikrocontroller | UFQFPN-48 | STM32F072CBU6 |
| **U102** | MP2459GJ-Z | Buck Converter 24V→5V | TSOT-23-8 | MP2459GJ-Z |
| **U105** | SN65HVD230DR | CAN-Bus Transceiver | SOIC-8 | SN65HVD230DR |
| **U106** | ICM-20602 | 6-Achsen IMU (Beschleunigungs-/Gyroskop) | LGA-16 | ICM-20602 |
| **Q101** | CJAC70P06 | P-MOSFET (Laser-Schalter, 60V) | SOIC-8 | CJAC70P06 |
| **D101** | SMF24A | TVS-Diode (Überspannungsschutz) | DO-214AC | SMF24A |
| **F101** | 1812L025 | PTC-Sicherung 250mA | 1812 | 1812L025 |
| **Y101** | 12MHz | Quarz für CAN-Stabilität | HC-49/S | 12MHz Quarz |
| **J101/J102** | Micro-Fit 3.0 | THT Steckverbinder | THT | Micro-Fit 3.0 THT |
## 🛠️ Technische Spezifikationen
| Parameter | Wert | Einheit |
|-----------|------|---------|
| **Eingangsspannung** | 24 ± 2 | V |
| **Laser-Strom (max)** | 4 | A |
| **CAN-Baudrate** | 1 | Mbit/s |
| **PWM-Frequenz** | 1 | kHz |
| **Soft-Start Zeit** | ~1.2 | ms |
| **Betriebstemperatur** | -10 bis +70 | °C |
| **Abmessungen** | TBD | mm |
## 📝 Changelog
### Rev. 0.1
- **Transistor Upgrade:** MOSFET durch CJAC70P06 ersetzt (60V Spannungsfestigkeit)
- **Sensor Upgrade:** Wechsel von ADXL345 zu ICM-20602 (bessere Verfügbarkeit, moderner 6-Achsen IMU)
- **Steckverbinder Änderung:** Micro Fit 3.0 Steckverbinder von SMD zu THT geändert
- **Bestückungsdruck Verbesserung:** Steckerbelegungen zum Bestückungsdruck hinzugefügt für einfachere Montage
- **Layout Verbesserungen:** Bestückungsplatz aufgeräumt und Routing optimiert
- **Dokumentation:** Übersichtsbild an aktuelles Design angepasst
- **BOM Update:** Bauteil-Bestellnummern hinzugefügt und Produktionsdaten aktualisiert
- **Produktionsdateien:** Montage- und Produktionsdateien mit aktuellen Bauteilen aktualisiert
### Rev. 0.0 (Erste Veröffentlichung)
- Erstes PCB-Design mit STM32F072CBU6 Mikrocontroller
- CAN-Bus Kommunikation mit SN65HVD230 Transceiver
- 24V/4A Laser-Leistungssteuerung mit AO4407A MOSFET
- ADXL345 Beschleunigungssensor für Input Shaping
- MP2459 Buck Converter für Stromversorgung
## 📚 Weitere Ressourcen
- [Klipper Dokumentation](https://www.klipper3d.org/Config_Reference.html)
- [CAN-Bus Setup Guide](https://www.klipper3d.org/CANBUS.html)
- [Input Shaping](https://www.klipper3d.org/Resonance_Compensation.html)
- [Katapult Firmware Flasher](https://github.com/Arksine/katapult)
## Lizenz
Dieses Projekt steht unter der **Creative Commons Namensnennung-Nicht kommerziell-Share Alike 4.0 International Lizenz** (CC BY-NC-SA 4.0).
[![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.de)
Dies bedeutet, Sie dürfen:
- **Teilen** — das Material in jedwedem Format oder Medium vervielfältigen und weiterverbreiten
- **Bearbeiten** — das Material remixen, verändern und darauf aufbauen
Unter folgenden Bedingungen:
- **Namensnennung** — Sie müssen angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden
- **Nicht kommerziell** — Sie dürfen das Material nicht für kommerzielle Zwecke nutzen
- **Weitergabe unter gleichen Bedingungen** — Wenn Sie das Material remixen, verändern oder anderweitig direkt darauf aufbauen, dürfen Sie Ihre Beiträge nur unter derselben Lizenz wie das Original verbreiten
Den vollständigen Lizenztext finden Sie unter: https://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
---
> **Hinweis:** Dies ist die Originaldokumentation in deutscher Sprache. Eine englische Übersetzung finden Sie in [README.md](README.md).