Päivitystä vanhaan 3D-tulostimeen, Osa 2: Lisää nopeutta ja parempaa laatua Input Shaping- ja Pressure Advance -tekniikoiden avulla

Päivitystä vanhaan 3D-tulostimeen, Osa 2: Lisää nopeutta ja parempaa laatua Input Shaping- ja Pressure Advance -tekniikoiden avulla

Tämä juttu on tehty yhteistyössä AHaa Elektroniikka -nettikaupan kanssa, joka toimitti juttua varten ADXL345 -kiihtyvyysanturin.

Aikaisemmassa jutussa päivitin vanhaan Ender 3 Pro 3D-tulostimeeni Klipper -firmwaren ja Mainsail -käyttöliittymän. Tärkein syy päivitykseen oli se että Klipperin avulla voidaan kasvattaa tulostusnopeutta ja parantaa tulostuslaatua. Tämä on mahdollista nk. Input Shaping– ja Pressure Advance -tekniikoiden avulla.

Input Shaping

Input Shaping on 3D-tulostuksessa käytettävä edistynyt tärinänhallintamenetelmä, joka parantaa tulostuslaatua minimoimalla tulostimen rungon värähtelyjä. Kun 3D-tulostin kiihdyttää tai hidastaa nopeasti, se aiheuttaa mekaanista värähtelyä tulostimen rungossa. Tämä värähtely näkyy tulosteessa aaltomaisina ”kaikuina” tai renkaina erityisesti suorilla pinnoilla ja kulmissa. Perinteiset apukeinot perustuvat tulostusnopeuden hidastamiseen, mikä pidentää tulostusaikaa.

Input Shaping -tekniikka toimii seuraavasti:

  • Mittaa tulostimen värähtelytaajuudet yksinkertaisilla testeillä
  • Muokkaa tulostuspään liikekäskyjä matemaattisten algoritmien avulla
  • Lähettää liikekäskyt siten, että ne kumoavat tulostimen värähtelyt

Oikein konfiguroitu Input Shaping mahdollistaa:

  • Huomattavasti nopeammat tulostukset ilman laadun heikkenemistä
  • Tarkemmat yksityiskohdat ja paremmat pinnanlaadut
  • Värähtelystä johtuvien tulostusvirheiden eliminoinnin
Kaikujälkiä tulosteessa
Kaikujälkiä tulosteessa

Pressure Advance

Pressure Advance on tekniikka, joka parantaa tulostuslaatua hallitsemalla suuttimesta tulevan materiaalin virtausta. Tekniikan perusajatus on ennakoida tulostuspään liikkeiden aiheuttamia painemuutoksia.

Kun 3D-tulostin muuttaa tulostusnopeutta tai -suuntaa, suuttimessa olevan sulan muovin paine ei muutu välittömästi. Tämä aiheuttaa yli- tai alipursotusta etenkin kulmissa ja suunnanvaihdoksissa. Pressure Advance korjaa tätä ongelmaa säätämällä ekstruuderin toimintaa ennakoivasti.

Käytännössä tekniikka toimii seuraavasti:

  • Ennen tulostuspäään liikkeen hidastusta: ekstruuderi vähentää materiaalin syöttöä, mikä vähentää painetta suuttimessa
  • Kiihdyttäessä: ekstruuderi lisää hetkellisesti materiaalin syöttöä kompensoidakseen paineen rakentumista

Oikean Pressure Advance -arvon selvittämiseksi tulostetaan Klipperin ohjeiden mukaisesti ohutseinäinen testikappale. Ennen kappaleen tulostuksen käynnistämistä, tulostimen konsoliin annetaan seuraavat komennot:

SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005

Komentojen avulla tulostin muuttaa Pressure Advance -asetusta kerros kerrokselta. Alimmissa kerroksissa nurkissa on havaittavissa ylipursotusta nopeuden hidastuessa ja ylimmissä kerroksissa taas alipursotusta.

Pressure Advance testituloste
Pressure Advance testituloste

Testitulosteen paras kerros oli n. 10 mm kohdalla, josta saadaan Klipperin ohjeessa olevalla kaavalla laskemalla Pressure Advance -arvo, joka syötetään printer.cfg:hen:

[extruder]
pressure_advance: 0.05

Maksimivrtaus

Jotta tulostimesta saa kaiken irti, täytyy selvittää ekstruuderin maksimivirtaus. Tätä varten käytin Orca Slicerin ominaisuutta, joka generoi siihen tarvittavan g-koodin. Koodi tulostaa kappaleen siten että ekstruuderin nopeutta ja virtausta kasvatetaan kerros kerrokselta kunnes se ei enää pysty pursottamaan materiaalia tarpeeksi nopeasti.

Orca Slicer Max Flowrate Testi
Orca Slicer Max Flowrate Testi

Tämä aukkoina tulosteessa:

Flowrate testikappale
Flowrate testikappale

Mittaamalla ensimmäisen virheellisen kerroksen korkeus saadaan selville maksimivirtaus. Oman tulostimeni maksimivirtaus löytyi 11 mm kohdalta ja on noin 20 mm3/s. Tämän avulla voidaan laskea suurin tulostusnopeus halutulle kerrospaksuudelle, jonka voi syöttää slicerin asetuksiin. Joissakin slicereissa maksimivirtauksen voi syöttää suoraan asetuksiin, jolloin slicer käyttää tätä arvoa maksiminopeuksien laskemiseen automaattisesti.

11mm kohdalla kaikki vielä kunnossa
11mm kohdalla kaikki vielä kunnossa

Värähtelyt

Värähtelyjen mittaamiseksi ja sopivan vaimennusalgoritmin valitsemiseksi käytetään Klipperin sisäänrakennettua ominaisuutta ja ADXL345 -kiihtyvyysanturia. Suunnittelin ja tulostin kiihtyvyysanturille yksinkertaisen osan, jonka avulla kiinnitin anturin ekstruuderin jäähdytystuulettimen ruuveihin X-akselin värähtelyiden mittaamiseksi. Y-akselin eli pedin värähtelyjen mittaamiseksi teippasin anturin petiin kiinni.

ADXL345 -anturin kiinnitys tulostuspäähän
ADXL345 -anturin kiinnitys tulostuspäähän

Kiihtyvyysanturi kytkettiin kuudella johtimella SPI-väylää käyttäen Raspberry Pico -alustaan, joka yhdistettiin edelleen USB-kaapelilla Raspberry Pi:hin. Picolle (Raspberry Pi RP2040) tehdään firmware komentoriviltä:

cd ~/klipper/
make menuconfig

make
sudo mount /dev/sda1 /mnt
sudo cp out/klipper.uf2 /mnt
sudo umount /mnt

printer.cfg:hen lisätään seuraavat rivit:

[mcu pico]
serial: /dev/serial/by-id/ # Picon serial tähän

[adxl345]
cs_pin: pico:gpio1
spi_bus: spi0a
axes_map: x,z,y

[resonance_tester]
accel_chip: adxl345
probe_points:
    115,115, 20  # pedin keskipiste

Mittausrutiini käynnistetään Klipperissä komennolla TEST_RESONANCES AXIS=X ja TEST_RESONANCES AXIS=Y Tämän jälkeen tulokset löytyvät tiedostoista /tmp/resonances_x_.csv ja /tmp/resonances_y_.csv. Tulokset saadaan edelleen käsiteltyä kuvatiedostoiksi komennoilla:

~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png
X-akselin värähtelyt ja ehdotetut korjausalgoritmit
X-akselin värähtelyt ja ehdotetut korjausalgoritmit

Menetelmä ehdottaa sopivaa algoritmia värähtelyjen vaimentamiseksi ja tulostimen maksimikiihdytysarvoiksi, jotka lisätään printer.cfg:hen:

[input_shaper]
shaper_freq_x: 93.2
shaper_type_x: 2hump_ei
shaper_freq_y: 45.0
shaper_type_y: ei

[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 4000

Lopputulokset

Tulostin ennen projektin alkua 3DBenchyn 0.2 mm vakioprofiililla ajassa 1 h 36 min. Muutosten jälkeen maltillisesti nopeammalla profiililla tulostusaika oli enää 49 min eli lähes puolet nopeammin! Nopeammasta tulostuksesta huolimatta tulostuslaadussa ei ole näkyviä ongelmia. Päinvastoin, terävät nurkat ovat nyt selkeämpiä ja aikaisemminkin vähäiset kaiut ovat nyt poissa. Yksittäisenä esimerkkinä 3DBenchyn perälaudassa olevasta tekstistä saa nyt selvän, mikä ei aiemmin ollut mahdollista.

Tulostimeni konfiguraatiotiedostot löytyvät kokonaisuudessaan GitHubista.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *