3D tiskárna – problém s tiskovým serverem

S častějším 3D tiskem a vzrůstající venkovní teplotou se začal Octoprint server chovat nespolehlivě. Někdy naběhnul až na 5 pokus, zhoršovala se jeho odezva a občas se tisk zastavil.

1. Diagnostika

Octoprint mi běží na Orange PI Zero s nainstalovaným Armbianem. Začal jsem hledat, jestli někdo neřešil problém s podobným chováním. Hledal jsem, jak ve spojitosti s Octoprintem, tak pouze Orange PI Zero a Armbianem. Co se najčastěji objevovalo jako možný zdroj problémů?

  • SD karta
  • napájecí zdroj
  • přehřívání

2. SD karta

Karta vypadala jako velmi pravděpodobný zdroj problémů. Armbian dokonce v dokumentaci doporučuje použití pouze karet označených jako A1.

Kartu jsem vyměnil s čistě flashnutým Armbianem a Octoprint. Octoprint začal startovat o poznání lépe, ale stále ne hned při prvním zapnutí.

3. Napájecí adaptér

Některé napájecí adaptéry nedodávájí uvedený štítkový proud. Také po delším době používání dochází ke snížení dodávaného max proudu.

Adaptér jsem vyměnil za nový značkový 2.5A. Díky tomu už startoval Octoprint hned při prvním zapnutí.

4. Přehřívání

Zbývalo dořešit, proč Octoprint přestal posílat data tiskárně. Hledal jsem na forech, prohledával logy, ale k ničemu to nevedlo. Žádný zásadní důvod jsem nemohl najít.

Během hledání jsem zaznamenal zmínku o možnosti přehřívání Orange PI Zero. To mi přišlo, jako možná příčina zastavení tisku.

Orange PI Zero jsem opatřl malým nalepovacím pasivním chladičem a při teplotě okolí 26°C začal testovat.

Nalepený malý pasivní chladič.

4.1 Měření CPU

Pomocí následujícího příkazu si můžeme nechat vypisovat aktuální informace o CPU.

sudo armbianmonitor -m

V nečinnosti a s nalepeným chladičem dosahovala teplota CPU 55°C.

Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU  C.St.
12:56:36:   480MHz   0.77   0%   0%   0%   0%   0%   0% 55.9°C  0/6
12:56:41:   480MHz   0.71   0%   0%   0%   0%   0%   0% 55.2°C  0/6

4.2 Syntetické zatížení CPU

Pro účely měření teploty CPU bylo nutné najít způsob, jak nejlépe simulovat zatížení.

Pro syntetické testy lze použít příkaz:

4.3 Simulace tisku

Snažil jsem jsem se najít způsob, jak simulovat tisk, aniž bych musel skutečně tisknout na tiskárně.

Octoprint myslí naštěstí na všechno a je možné pro účely ladění sériové komunikace nainstalovat virtuální port, na kterém probíhájí stejné procesy jako na portu skutečné tiskárny.

Stačí editovat configuračního souboru Octoprintu v umístění:

/home/octoprint/.octoprint
nano config.yaml

Přidat:

devel:
  virtualPrinter:
    enabled: true

Po restartu Octoprintu se nám nabízí nový virtuální port, který vybereme, připojíme a spustíme tisk.

Vybraný virtuální port.

Během tisku jsem opět měřil teplotu CPU, která po cca 30 minutách dosáhla skoro 80°C.

Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU  C.St.
13:24:43:   960MHz   0.92  23%   5%  17%   0%   0%   0% 79.1°C  1/6
13:24:48:   960MHz   1.01  23%   5%  18%   0%   0%   0% 79.7°C  1/6

4.4 Snižujeme teplotu

Další snížení teploty bychom mohli dosáhnout větším chladičem (neměl jsem), aktivním chlazením (instalaci brání rozšiřujicí deska), podtaktováním CPU, lepším větráním krabičky.

4.4.1 Podtaktování CPU

Minimální a maximální frekvence CPU je uložena v souboru /etc/default/cpufrequtils.

Soubor editujeme pomoci:

sudo nano /etc/default/cpufrequtils
# WARNING: this file will be replaced on board support package (linux-root-...) upgrade
ENABLE=true
MIN_SPEED=480000
MAX_SPEED=1295000
GOVERNOR=ondemand

Přípustné frekvence CPU si necháme zobrazit pomoci příkazu lscpu.

Ve výpisu najdeme dostupné frekvence.

available frequency steps: 120 MHz, 240 MHz, 480 MHz, 648 MHz, 816 MHz, 960 MHz, 1.01 GHz

A pro zajímavost statistiku použití frekvencí, ze které vidíme, že CPU jelo v 70% nad 960MHz.

cpufreq stats: 120 MHz:0.00%, 240 MHz:0.01%, 480 MHz:9.15%, 648 MHz:16.37%, 816 MHz:1.51%, 960 MHz:41.11%, 1.01 GHz:31.85%

Maximální frekvenci jsem se rozhodl snížit na 648MHz. Po úpravě vypadá cpufrequtils takhle.

# WARNING: this file will be replaced on board support package (linux-root-...) upgrade
ENABLE=true
MIN_SPEED=480000
MAX_SPEED=648000
GOVERNOR=ondemand

Pro použití nově nastavených frequencí je nutné restartovat servis.

service cpufrequtils restart

Výsledná teplota po 30 minutách je už jen 64°C.

Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU  C.St.
13:56:58:   648MHz   1.11  26%   6%  19%   0%   0%   0% 63.3°C  0/6
13:57:04:   648MHz   1.10  26%   6%  20%   0%   0%   0% 63.3°C  0/6

4.4.2 Změna krabičky

Orange PI Zero jsem měll instalovaný v krabičce s pouze malými bočními větracími otvory.

Původní krabička.

Po chvilce hledání jsem našel vhodnou krabičku, která měla vélké větrací otvory na spodku i vršku.

Nová vytištěná krabička.

Orange PI Zero do krabičky krásně padne.

Orange PI Zero v nové krabičce.

Nový test prokázal, že zmena boxu snížila teplotu na 49°C.

Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU  C.St.
08:28:23:   648MHz   1.11  26%   6%  20%   0%   0%   0% 48.6°C  0/6
08:28:28:   648MHz   1.10  26%   6%  19%   0%   0%   0% 48.3°C  0/6

Díky jednoduchým úpravám jsem dokázal snížit teplotu z 80°C na 49°C. Od té doby je Octoprint spolehlivý a nestalo se mi, aby se tisk zastavil.

5. Dovětek

Při prozkoumávání configurace Octoprintu jsem zjistil, že se dá nastavit moznost restartu a vypnutí, což by mohlo také vést k větší spolehlivosti.

Přidáním několika řádek do sekce System, budeme mít k dispozici bezpečné vypnutí Orange PI Zero.

system:
- action: shutdown
  command: sudo shutdown -h now
  confirm: You are about to shutdown the system.
  name: Shutdown
- action: reboot
  command: sudo shutdown -r now
  confirm: You are about to reboot the system.
  name: Reboot

Kompletní můj config.yaml vypadá takto:

accessControl:
  salt: LY7SOPQ050j81pHV9iM7YeF8483V0BkO
api:
  key: 171D7853C0A335575248964DD076358E
devel:
  virtualPrinter:
    enabled: true
plugins:
  announcements:
    _config_version: 1
    channels:
      _blog:
        read_until: 1560338100
      _important:
        read_until: 1521111600
      _octopi:
        read_until: 1549966200
      _plugins:
        read_until: 1560211200
      _releases:
        read_until: 1557824400
  discovery:
    upnpUuid: cc233b42-d712-4612-9f8d-cc813b4efb16
  errortracking:
    unique_id: 011094c0-f63d-455b-ace5-966b5242c8a7
  softwareupdate:
    _config_version: 6
  tracking:
    enabled: false
    unique_id: f608a587-3159-4b1f-91fc-de7495172876
printerProfiles:
  default: _default
server:
  firstRun: false
  onlineCheck:
    enabled: true
  pluginBlacklist:
    enabled: true
  secretKey: 04fAMC9v7vaBoVOwCt0YQN3RrwLZwFZG
  seenWizards:
    corewizard: 3
    cura: null
    tracking: null
system:
- action: shutdown
  command: sudo shutdown -h now
  confirm: You are about to shutdown the system.
  name: Shutdown
- action: reboot
  command: sudo shutdown -r now
  confirm: You are about to reboot the system.
  name: Reboot

4 thoughts on “3D tiskárna – problém s tiskovým serverem

Add yours

  1. Není problém v OS já používám ARMBian stahuju filmy nonstop a malinkým chladičem jako máš ty mám teplotu max 30 stupnu.

    1. Ahoj,
      popisoval jsem stav s ARMBIAN 5.83 stable Ubuntu 18.04.2 LTS 4.19.38-sunxi s nainstalovaným Octoprintem.

      Nezkoušel jsem, jak se to chová na čistém Armbianu.

      Ty sám neuvádíš žádné další podrobnosti provozu (verze OS, typ desky, krabička, teplota v místnosti, vytížení procesoru, taktování procesoru …).

      Každopádně je dobrý, že nemusíš řešit problémy s teplotou. Pro ostatní může být můj popis vodítkem k řešení.

      Armbianu zdar.

  2. Ahoj, nevím jestli Tě to ještě zajímá a nebo jsi to již vyřešil. Oranžáda (OrangePi) má takovou drobnou nectnost, už z výroby je přetaktována (až o 20%), aby se čínští soudruzi mohli pochlubit vysokou frekvencí a nízkou cenou. takže bez pořádného chlazení nebo umělého sundání frekvence se při zátěži zcela pravidelně seká. Takže jsi šel správnou cestou. Jako obvykle na závěr napíšu, že tohoto se u Englického malinového nenaděješ a ušetřený peníz (Oranžáda bývá povětšinou levnější než Malina) člověk odevzdá v čase stráveném na různých podobných skopičinách, které prostě nečeká a musí odladit.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑