Duet3D

De Wiki LOGre
Aller à : navigation, rechercher

Par Fma38.

Hardware

La Duet3D] est une gamme de contrôleurs haut de gamme pour imprimantes 3D. Actuellement, elle est composée de :

  • DuetWifi
  • DuetEthernet
  • Duex2
  • Duex5

Les 2 cartes Duet sont identiques : l'une dispose d'un module wifi, l'autre d'un module ethernet. Les 2 cartes d'extensions Duex sont identique : l'une dispose de 2 extrudeurs supplémentaires, l'autre de 5.

Ces cartes sont développées par Think3DPrint3D, une petite société familiale basée au Royaume Uni.

Fast, quiet, high quality prints

  • Powerful 32 Bit Processor Atmel SAM4E8E:
    • 120MHz ARM Cortex-M4 microcontroller
  • floating point unit
    • 512Kb flash memory
    • 128Kb RAM
    • many peripherals.
  • super quiet TMC2660 stepper drivers:
    • SPI controlled
    • up to 256 microstepping
    • current and microsteps can both be changed on the fly for optimum speed and power efficiency
  • dual extruders:
    • 3 heater/thermistor channels for a heated bed and 2 extruders
    • 3 PWM controllable fans
    • 2 always-on fans. These can be run from either the input voltage, from 5V, or from external power for added flexibility
  • high Power rating:
    • each stepper driver capable of 2.4A motor current, with further increases possible after thermal testing
    • bed heater channel specifically designed for high currents of up to 18A

Network connectivity

  • dedicated Wifi or Ethernet module:
    • The main processor is free to do precise stepper pulse timing and implement other advanced features while the low level networking is handled by the dedicated networking module
  • flexible:
  • connect via PC, tablet or smartphone on the same network: there is no need for an app install or internet connectivity
  • also connect via USB or serial if desired
  • cable-free control:
    • use your printer in any room covered by your WiFi or Ethernet network
    • no need to be tethered by USB cabling any more
  • Security:
    • wifi has WPA-2 encryption for network security, with further security changes coming soon
    • the DuetWifi and Duet Ethernet do not need to be connected to the internet, we recommend you keep it on a local network for added security

A pleasure to use

  • easy and convenient
    • connect directly to your printer from any modern web browser
    • control your printer, upload and start prints from the browser
    • monitor prints from an external IP webcam (not provided)
  • most Printers Supported
    • all common 3D printer geometries are supported:
      • Cartesian
      • Delta
      • CoreXY
      • IDEX
      • SCARA
    • along with 3D printers a wide variety of CNC machines and lasercutters can be controlled.
  • easy to configure:
    • setup your printer and update the firmware through the web interface
  • no need to compile firmware
  • G-code everywhere:
    • all settings are done through G-code, giving maximum control flexibility
    • write your own macros for homing, pause, resume and much more.

Expandable

  • up to 7 additional drives:
    • support for a further 7 stepper drivers and 5 heaters on expansion headers
    • firmware support for mixing nozzles, multiple Z motor bed levelling and remapping axes to use high power external drivers.
  • touch Screen Support:
    • the optional PanelDue controller provides a full colour graphic touch screen controller with virtual keyboard
    • also talks G-code for maximum flexibility
  • advanced Calibration Support:
    • use an optional add-on of a smart delta effector or DC42’s contactless IR bed probe combined with advanced firmware features for more accurate printer calibration
    • accurate temperature control:
    • ADC gain calibration for thermistors allows for accurate and repeatable temperature setting
    • PT100 and thermocouples are supported through digital temperature daughterboards

Firmware

Ce qui fait la force de ces cartes, c'est surtout le firmware. Il s'agit d'une version spéciale de RepRapFirmware (RRF), développée par Escher3d, société unipersonnel également basée au Royaume Uni, gérée par David Crocker (aka DC42).

La version actuelle du firmware est la 1.21. Ce sera la dernière release de la branche 1.x; David travaille sur la branche 2.x, basée sur RTOS. Une version alpha est déjà disponible.

Documentation

La documentation principale se trouve sur ce wiki.

Un forum très actif est également disponible.

Le but de ce wiki est de compiler quelques infos complémentaires, avec exemples à l'appui. En effet, du fait de la très grande versatilité du firmware, capable de gérer quasi toutes les situations et configurations, certaines fonctionnalités (comme le bed leveling et mesh correction) ne sont pas triviales à comprendre. Vous trouverez ci-dessous les liens vers des pages dédiées.

Configuration de base

Contrairement aux cartes 8bits, la configuration n'est pas stockée en dur dans la flash, ni même en EEPROM : tout se fait par des G-Codes. Ceux-ci sont chargé depuis un fichier de configuration stocké sur la carte µ-SD. L'arborescence de cette carte est la suivante :

.
├── macros
│   ├── Cleanup nozzle
│   ├── E motors off
│   ├── Extrude 10mm
│   ├── Load filament
│   ├── Retract 3mm
│   └── Unload filament
└── sys
    ├── bed.g
    ├── config.g
    ├── deployprobe.g
    ├── end.g
    ├── homeall.g
    ├── homex.g
    ├── homey.g
    ├── homez.g
    ├── pause.g
    ├── resume.g
    ├── retractprobe.g
    ├── sleep.g
    ├── start.g
    ├── stop.g
    ├── tfree0.g
    ├── tpost0.g
    └── tpre0.g

Lors du boot de la carte, le fichier sys/config.g est exécuté : c'est là qu'il convient de mettre la configuration de base.

La configuration pour ma CoreXY est la suivante (notez que je dispose de la carte d'extensions Duex5, qui gère le(s) extrudeur(s). La Duex5 dispose d'un régulateur 12V, ce qui permet d'alimenter les cartes en 24V pour la partie puissance, mais de pouvoir utiliser des ventilateurs 12V, plus répendus) :

; General preferences
M111 S0                 ; Debugging off
G21                     ; Work in millimetres
G90                     ; Send absolute coordinates...
M83                     ; ...but relative extruder moves
M555 P2                 ; Set firmware compatibility to look like Marlin
M667 S1                 ; Select CoreXY mode
M208 X-60 Y-110 Z0 S1   ; Set axis minima
M208 X260 Y200 Z320 S0  ; Set axis maxima

; Endstops
M574 X1 Y1 Z1 S1  ; Define active high microswitches on X/Y/Z low end

; Drives
M584 X0 Y1 Z2 E5                    ; Remap axes (extruder drive 0 uses motor 5)
M569 P0 S1                          ; Drive 0 goes forwards
M569 P1 S1                          ; Drive 1 goes forwards
M569 P2 S0                          ; Drive 2 goes reverse
M569 P5 S0                          ; Drive 5 goes reverse
M584 X0 Y1 Z2 E5                    ; Apply custom drive mapping
M350 X16 Y16 Z16 E16 I1             ; Configure microstepping with interpolation
M92 X66.667 Y66.667 Z1417.323 E450  ; Set steps per mm
M203 X30000 Y30000 Z1200 E3600      ; Set maximum speeds (mm/min)
M201 X1000 Y1000 Z100 E3000         ; Set accelerations (mm/s^2)
M566 X900 Y900 Z60 E600             ; Set maximum instantaneous speed changes (mm/min)
M906 X1750 Y1750 Z1750 E1250 I30    ; Set motor currents (mA) and motor idle factor in per cent
M84 S30                             ; Set idle timeout

; Heaters
M143 S250                                 ; Set maximum heater temperature to 250C
M305 P0 T100000 B4138 C0 R4700            ; Set thermistor + ADC parameters for heater 0 (bed)
M305 P3 T100000 B4725 C7.060000e-8 R4700  ; Set thermistor + ADC parameters for heater 3 (first heater on Duex2/5)
M307 H0 A105.6 C627.9 D1.5 B0             ; Auto-tune values for heatbed (generated with M303)

; Fans
M106 P0 H100:101:102 T45:55 L0.5  ; Electronics cooling fan (run when TMC drivers over-heat, or when CPU temp rise above 45°C)
M106 P3 S0 I0 F500 H-1            ; Set fan 3 value, PWM signal inversion and frequency. Part cooling fan
M106 P4 S1 I0 F500 H3 T45         ; Set fan 4 value, PWM signal inversion and frequency. Thermostatic control is turned on on heater 3
                                  ; Used to cool the hotend heatsink (second fan on Duex2/5)

; Tools
M563 P0 D0 H3 F3  ; Define tool 0 using Drive 0, Heater 3 and Fan 3
G10 P0 X0 Y0 Z0   ; Set tool 0 axis offsets
G10 P0 R0 S0      ; Set initial tool 0 active and standby temperatures to 0C
M207 S8.0 F3000   ; Set firmware retractation distance/speed (G10/G11)

; Network
M550 PDuetWifi  ; Set machine name
M551 Pduet3D    ; Set password
M552 S1         ; Enable network; access point is configured manually via M587 by the user
M586 P0 S1      ; Enable HTTP
M586 P1 S0      ; Disable FTP
M586 P2 S0      ; Disable Telnet

; Misc
M912 P0 S-13  ; Calibrate CPU temp.

; Custom settings are not configured

Bed leveling et bed compensation

Du fait des nombreuses options, et des évolutions rapides du firmware, ces notions ne sont pas faciles à comprendre.

Il faut bien distinguer les 2 notions : le bed leveling permet de corriger l'orientation du plateau (plan), alors que le bed compensation permet de corriger la planéité du plateau. Cette dernière correction se faisant par un maillage, en venant mesurer la hauteur du plateau en de nombreux points (meshs).

À cela, il faut bien sûr ajouter la prise de référence (Z=0).