<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>Accensione/spegnimento via software e pulsante</title>
        <description> Buongiorno a tutti,
sto costruendo una Hypercube Evolution e ho pensato che sarebbe bello poter accendere/spegnere la stampante via software. So che basta usare il cavo dell&#039;enable dell&#039;ATX e connetterlo alla scheda per accendere/spegnere con i comandi M80 e M81. A questo punto però si pongono due problemi: il primo riguarda lo spegnimento, infatti vorrei spegnere tutto (anche la ventolina dell&#039;hotend) soltanto quando sono sicuro che la temperatura della testina sia inferiore ad una soglia di sicurezza (ad esempio 30/40°C). Il secondo problema riguarda l&#039;accensione/lo spegnimento tramite pulsante fisico. Infatti se spegnessi fisicamente l&#039;alimentatore (con il pulsante sul retro) si disattiverebbe anche la linea a 5v, che permette di sfruttare l&#039;enable per l&#039;accensione a distanza. Per il primo problema dovrei, credo, modificare il Marlin in modo tale da creare una procedura di shutdown personalizzata. Non mi intendo molto di codice, ma ho cercato la definizione della funzione gcode_M81 (quella che dovrebbe spegnere) e credo che vada modificata circa in questo modo:

/**
 * M81: Turn off Power, including Power Supply, if there is one.
 *
 *      This code should ALWAYS be available for EMERGENCY SHUTDOWN!
 */
inline void gcode_M81() {
  thermalManager.disable_all_heaters();
  planner.finish_and_disable();

/*
//Procedura di shutdown

  gcode_M106(); //Accende la ventola usata per raffreddare la plastica estrusa, per favorire il raffreddamento
  
  while(temperatura hotend &amp;gt; 35°C) {
    //Non fare nulla
    ;
  }

  gcode_M106(); //Spegne la ventola precedentemente accesa
    
*/ 

  #if FAN_COUNT &amp;gt; 0
    for (uint8_t i = 0; i &amp;lt; FAN_COUNT; i++) fanSpeeds = 0;
    #if ENABLED(PROBING_FANS_OFF)
      fans_paused = false;
      ZERO(paused_fanSpeeds);
    #endif
  #endif

  safe_delay(1000); // Wait 1 second before switching off

  #if HAS_SUICIDE
    suicide();
  #elif HAS_POWER_SWITCH
    PSU_OFF();
  #endif

  #if ENABLED(ULTIPANEL)
    LCD_MESSAGEPGM(MACHINE_NAME &quot; &quot; MSG_OFF &quot;.&quot;);
  #endif
}

Quale parte di codice dovrei scrivere al posto dello pseudocodice?

Il secondo problema si potrebbe risolvere aggiungendo un pulsante momentaneo che, quando viene premuto, richiama la procedura M80 per accendere e spegne richiamando M81, ma sinceramente non saprei né come collegarlo alla scheda né come implementare il tutto via software.</description>
        <link>https://reprap.org/forum/read.php?361,837200,837200#msg-837200</link>
        <lastBuildDate>Thu, 14 May 2026 22:29:35 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837332#msg-837332</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837332#msg-837332</link>
            <description><![CDATA[ Allora sono a posto, non avendo mai usato lcd non ci avevo pensato. Grazie mille per le risposte e scusate se vi ho fatto diventare matti :)]]></description>
            <dc:creator>Roberto Crotti</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Tue, 30 Oct 2018 04:34:26 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837322#msg-837322</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837322#msg-837322</link>
            <description><![CDATA[ Ma da lcd ti è troppo difficile? C'è il menu spegni e accendi??]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Mon, 29 Oct 2018 19:21:26 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837309#msg-837309</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837309#msg-837309</link>
            <description><![CDATA[ Quello che intendo dire è questo: voglio poter accendere e spegnere sia tramite software che tramite un pulsante fisico, proprio come un computer. Voglio lasciare il pulsante sul retro dell’alimentatore sempre acceso, in modo da controllare via software, ma voglio anche poter intervenire fisicamente e spegnere/accendere cliccando un pulsante. Vorrei che tutto funzionasse come succede con un computer, che posso accendere e spegnere premento il pulsante di accensione (senza toccare l’alimentatore sul retro) ma al tempo stesso anche via software. Per farmi capire ancora meglio consoderiamo questo esempio: il pulsante dell’ATX è On, accendo la stampante via software (magari a distanza) e faccio stampare. Arrivo a casa, stacco il pezzo stampato e decido di spegnere la stampante (senza dover inviare comandi dal computer, ma premendo un pulsante). Se premessi il pulsante sul retro dell’ATX lo spegnerei del tutto e, la volta dopo, non potrei più accendere e spegnere via software se non riaccendendo l’ATX fisicamente.]]></description>
            <dc:creator>Roberto Crotti</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Mon, 29 Oct 2018 14:34:11 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837300#msg-837300</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837300#msg-837300</link>
            <description><![CDATA[ Infatti non capisco neanche io cosa ti serva un pulsante per fare cosa??? Se devi accendere ti ho detto che lo fa in automatico il firmware come muovi o accendi i riscaldatori, quindi non devi premere nulla...  Fai partire una stampa e come parte si accende l'alimentatore per dare i 12v.]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Mon, 29 Oct 2018 12:49:49 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837283#msg-837283</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837283#msg-837283</link>
            <description><![CDATA[ non è chiaro cosa intendi con pulsante, se intendi un pulsante meccanico è necessario che qualcuno lo prema fisicamente, e a quel punto premi l'interruttore, se intendi un pulsante software devi fare come ti ha detto il mago, perche ti serve comunque sempre un'alimentazione.<br />
Oppure potresti risolvere con un pulsante wifi che puoi attivare da remoto, se non lo conosci cerca sonoff su google]]></description>
            <dc:creator>c11610o</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Mon, 29 Oct 2018 08:44:02 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837273#msg-837273</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837273#msg-837273</link>
            <description><![CDATA[ Quindi non esiste un modo per aggiungere un pulsante momentaneo che, una volta premuto, lanci la procedura di accensione/spegnimento via software?]]></description>
            <dc:creator>Roberto Crotti</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Mon, 29 Oct 2018 06:25:59 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837250#msg-837250</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837250#msg-837250</link>
            <description><![CDATA[ E te l'ho detto con pson, l'alimentatore ATX ha questa possibilità, e lo fai via software collegando quel pin dell'atx ha il pin PSON della scheda e con M80 e m81 accendi e spegni..<br />
<br />
Inoltre il fw lo accende in automatico appena arrivano comandi che servono per riscaldare e/o muovere i driver..]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 28 Oct 2018 19:07:33 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837247#msg-837247</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837247#msg-837247</link>
            <description><![CDATA[ Esatto, se spengo da dietro non ho la possibilità di riaccendere. Quello che intendo dire è che sarebbe bello avere un pulsante momentaneo che consenta accensione e spegnimento via software, lasciando il pulsante sul retro sempre on.]]></description>
            <dc:creator>Roberto Crotti</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 28 Oct 2018 17:16:53 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837246#msg-837246</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837246#msg-837246</link>
            <description><![CDATA[ Mica ho capito nulla!!<br />
Se spegni da dietro meccanicamente come pretendi che si accenda via software!!! Un po come il pc, lo spegni e puoi accenderlo via lan da remoto, ma se spegni da dietro è impossibile accenderlo...]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 28 Oct 2018 17:11:01 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837244#msg-837244</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837244#msg-837244</link>
            <description><![CDATA[ Perfetto, quindi grazie a quel codice risolverei il problema dello spegnimento con controllo della temperatura. So che se non spengo l'ATX dal retro, ma tramite gcode, ho la linea a 5v sempre alimentata. Il problema che intendo risolvere si verifica in una situazione come questa: accendo la stampante via software, magari a distanza con octoprint, poi, finita la stampa, voglio spegnerla fisicamente. Se la spegnessi fisicamente con il pulsante sul retro non potrei più accenderla via software. L'ideale sarebbe avere un pulsante che invia un segnale alla scheda e "lanci" il codice per la procedura di spegnimento/accensione.]]></description>
            <dc:creator>Roberto Crotti</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 28 Oct 2018 17:04:07 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837241#msg-837241</guid>
            <title>Re: Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837241#msg-837241</link>
            <description><![CDATA[ Più facile di quanto pensi...<br />
ALimentatore ATX. Quello ha un'uscita a 5v continui pure se è spento (intendo per spento con il pson, non l'interruttore posteriore). Con quello alimenti sempre arduino.. In questo modo il processore è sempre alimentato e può accendere l'alimentatore quando vuoi.<br />
Secondo a fine GCODE metti il comando M190 R30. La R al posto della S dice al firmware di aspettare che la temperatura sia al di sotto o uguale a quella impostata quindi aspetta il raffreddamento dell'hotend. una volta che è arrivato a 30 allora prosegue e li metti il comando M80 per spegnere l'alimentatore cosi la ventola continuerà a lavorare finche non è arrivato a 30°.<br />
Naturalmente puoi mettere la temp che vuoi...]]></description>
            <dc:creator>MagoKimbra</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 28 Oct 2018 16:23:10 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?361,837200,837200#msg-837200</guid>
            <title>Accensione/spegnimento via software e pulsante</title>
            <link>https://reprap.org/forum/read.php?361,837200,837200#msg-837200</link>
            <description><![CDATA[ Buongiorno a tutti,<br />
sto costruendo una Hypercube Evolution e ho pensato che sarebbe bello poter accendere/spegnere la stampante via software. So che basta usare il cavo dell'enable dell'ATX e connetterlo alla scheda per accendere/spegnere con i comandi M80 e M81. A questo punto però si pongono due problemi: il primo riguarda lo spegnimento, infatti vorrei spegnere tutto (anche la ventolina dell'hotend) soltanto quando sono sicuro che la temperatura della testina sia inferiore ad una soglia di sicurezza (ad esempio 30/40°C). Il secondo problema riguarda l'accensione/lo spegnimento tramite pulsante fisico. Infatti se spegnessi fisicamente l'alimentatore (con il pulsante sul retro) si disattiverebbe anche la linea a 5v, che permette di sfruttare l'enable per l'accensione a distanza. Per il primo problema dovrei, credo, modificare il Marlin in modo tale da creare una procedura di shutdown personalizzata. Non mi intendo molto di codice, ma ho cercato la definizione della funzione gcode_M81 (quella che dovrebbe spegnere) e credo che vada modificata circa in questo modo:<br />
<br />
/**<br />
 * M81: Turn off Power, including Power Supply, if there is one.<br />
 *<br />
 *      This code should ALWAYS be available for EMERGENCY SHUTDOWN!<br />
 */<br />
inline void gcode_M81() {<br />
  thermalManager.disable_all_heaters();<br />
  planner.finish_and_disable();<br />
<br />
/*<br />
//Procedura di shutdown<br />
<br />
  gcode_M106(); //Accende la ventola usata per raffreddare la plastica estrusa, per favorire il raffreddamento<br />
  <br />
  while(temperatura hotend &gt; 35°C) {<br />
    //Non fare nulla<br />
    ;<br />
  }<br />
<br />
  gcode_M106(); //Spegne la ventola precedentemente accesa<br />
    <br />
*/ <br />
<br />
  #if FAN_COUNT &gt; 0<br />
    for (uint8_t i = 0; i &lt; FAN_COUNT; i++) fanSpeeds<i> = 0;<br />
    #if ENABLED(PROBING_FANS_OFF)<br />
      fans_paused = false;<br />
      ZERO(paused_fanSpeeds);<br />
    #endif<br />
  #endif<br />
<br />
  safe_delay(1000); // Wait 1 second before switching off<br />
<br />
  #if HAS_SUICIDE<br />
    suicide();<br />
  #elif HAS_POWER_SWITCH<br />
    PSU_OFF();<br />
  #endif<br />
<br />
  #if ENABLED(ULTIPANEL)<br />
    LCD_MESSAGEPGM(MACHINE_NAME " " MSG_OFF ".");<br />
  #endif<br />
}<br />
<br />
Quale parte di codice dovrei scrivere al posto dello pseudocodice?<br />
<br />
Il secondo problema si potrebbe risolvere aggiungendo un pulsante momentaneo che, quando viene premuto, richiama la procedura M80 per accendere e spegne richiamando M81, ma sinceramente non saprei né come collegarlo alla scheda né come implementare il tutto via software.</i>]]></description>
            <dc:creator>Roberto Crotti</dc:creator>
            <category>GCODE, Software e Firmware</category>
            <pubDate>Sun, 28 Oct 2018 07:20:29 -0400</pubDate>
        </item>
    </channel>
</rss>
