Welcome! Log In Create A New Profile

Advanced

ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno

Posted by Elstak 
ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 30, 2017 03:57PM
Ciao a tutti,
dopo essere riuscito a collegare la extrudrboard di PrintrBot (in pratica sono 2 estrusori completi aggiuntivi 2 term. 2 hotend 2 driver integrati)

Il driver intergrato e' un allegro A4982, ora leggendo


[www.printrbottalk.com]
[www.printrbottalk.com]
[www.allegromicro.com]


ho cercato di capire come settarlo visto che sonoi primi integrati che tocco...

The maximum value of current limiting is set by the selection of RSx and the voltage at the VREF pin. The transconductance function is approximated by the maximum value of current limiting, ITripMAX (A), which is set by ITripMAX = VREF / ( 8 * RS) where RS is the resistance of the sense resistor (Ω) and VREF is the input voltage on the REF pin (V).
Guardando lo schema



mi pare di capire che sia 0.1 come anche il corrispettivo della board printrbot

Per misurare il vref ho usato rosso sul potenziometro ed il nero su gnd, mi da 534mv

0.534/0.8 (8*Rs) da 0,67A, i miei motori sono 1.33Amax quindi circa il doppio. Sono partito da qui a salire, ma raggiunti 1.1v il motore fa sempre lo stesso rumore e non si muove (parlo di estrusore), nonostante il carico ZERO non si muove, fa un ticchettio e il rotore si muove di uno step avanti e poi ritorna indietro. dove sbaglio?

Inoltre in questo caso come imposto gli step? non dovro' mica saldare quei piedini nanoscopici?

Guardando lo schema il cavo dei motori come lo oriento? ho il connettore nero a 4pin, il pin uno sulla scheda e' quello indicato col quadrato (nello schema elettrico nei slink sopra) anziche' coi cerchi come gli altri 3? quindi da li NERO-VERDO-ROSSO-BLU ?

grazie
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 04:17AM
Ciao Elstak,

anche io ho preso la ExtrudrBoard per aggiungere due estrusori alla Ramps, al momento non posso ancora aiutarti perchè mi deve ancora arrivare (spero presto), nel frattempo sto mettendo mao alla meccanica della stampante.
Seguo con interesse questo post, e appena avrò la scheda in mano spero di contribuire.

Nel frattempo inizio a ringraziarti per i link che hai inserito.

Ciao


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 05:17AM
Bene, perche' io non riesco a venirne a capo... per quando dovrebbe arrivrti?
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 05:59AM
Spero a brevissimo, la spedizione risulta partita il 25 gennaio dalla Germania..... siamo in mano alle poste eye rolling smiley

Di questa schedina In teoria so tutto drinking smiley..... in pratica niente smoking smiley

Sicuramente avrai già visto questi video Youtube , io la collegherò ad una RAMPS 1.4 , ma comunque la scheda e i relativi collegamenti si vedono bene.

Ciao

Edited 1 time(s). Last edit at 01/31/2017 06:02AM by Eagle23.


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 06:10AM
Come si settano gli step? sei riuscito a capirlo?
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 06:21AM
Se ho capito bene (tieni conto che per ora è tutta teoia e niente pratica) devi usare il comando G-code M92 per settare gli "steps per unit" e poi lo memorizzi in Eeprom, oppure li imposti direttamente nel firmware.

Ma finchè non ho la scheda in mano non posso fare prove.. sorry.

Edited 1 time(s). Last edit at 01/31/2017 06:31AM by Eagle23.


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 06:34AM
no aspetta quella e' una cosa.... io intendo proprio i divisori, ad esempio saldando il pin CFG1 e GND dei miei TMC2100 imposto il tutto a 1/16, i pololu li setto con i jumper sulla ramps ecc...

gli step/mm lo si fa nel firmware....
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 08:28AM
Ok, parli dei microstepping !

Sorry, avevo inteso altro, allora direi che essendo una scheda Printerbot la "risoluzione" è preimposta a 1/16, se vuoi cambiarli devi agire via hardware "scollegando" o "collegando" alcuni componenti.

Riporto da altro forum, la risposta ad un utente che chiedeva come cambiare da 1/16 a 1/8 i microstep di una scheda printerbot (non specificatamente la extrudboard, ma credo che sia la stessa cosa):

"to change the microstepping you have to very carefully use an X-acto knife or some other small, sharp tool (or maybe grinding tool such as Dreml) to remove the printed bridge without hurting anything else. It's not easy unless you remove the board from inside the frame and use magnification..."

Qui il LINK alla discussione completa.

Ciao


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
January 31, 2017 02:40PM
Credo che il problema sia nel cavo dei motori, quelli che ho comprato hanno i due pin centrali invertiti fra lato scheda e lato motore

purtroppo non ho altri cavi in casa....


qualcuno da mica dove comprare dei cavi decenti?
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 01, 2017 01:56AM
risolto


Problema nella configurazione del firmware, anche se nel configuratore selezionavo 2 estrusori 2 driver, in realtà rimaneva impostato a 1 e 1.... modificato a mano e ricompilato




Ovviamente anche i cavi andavano sistemati per i pin invertiti.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 01, 2017 02:28AM
Ti ho risposto nell'altro post hai messo il COLOR_MIXING_EXTRUDER quindi quei valori sono giusti a 1 e 1...


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 03, 2017 11:12AM
Quote
Elstak
... per quando dovrebbe arrivrti?

Finalmente mi è arrivata la ExtrudrBoard.

Stasera inizio i test, e vediamo come và (sempre che non faccia casini nei collegamenti o nel Firmware grinning smiley).

Giusto per conoscenza, che pins hai utilizzato per i termistori e gli hotend ?

Stay Tuned.

Edited 2 time(s). Last edit at 02/03/2017 11:14AM by Eagle23.


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 03, 2017 06:15PM
Scheda cablata, firmware (Marlin) modificato, testato tutto e tutto funziona...... o quasi winking smiley

Riepilogo quello che ho fatto, così magari qualcuno mi sa aiutare:

Scheda Ramps 1.4 con ExtrudrBoard per utilizzare 4 estrusori (4 termistori, 4 motori, 4 hotend) + Bed riscaldato
Non mi dilungo (a meno che qualcuno non abbia bisogno di info), vi dico solo che tutto funziona

Dove sta il problema allora ? ... il "problema" sta nel monitor LCD (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER).

Avete presente la schermata principale? ci sono solo 3 estrusori + il Bed + la ventola (che non ho collegato).
Le temperature riportate sono quelle degli estrusori e non quella del Bed.



Immagine Estrusore 1 ==> Temperatura estrusore 1 smiling smiley thumbs up
Immagine Estrusore 2 ==> Temperatura estrusore 2 smiling smiley thumbs up
Immagine Estrusore 3 ==> Temperatura estrusore 3 smiling smiley thumbs up
Immagine Bed ==> Temperatura estrusore 4 sad smiley thumbs down
Immagine Ventola ==> Niente sad smiley thumbs down

Ora la domanda.... qualcuno sa darmi un minimo di indicazioni su dove Marlin (in quale modulo) gestisce queste 5 immagini in modo che possa (tentare di) modificarlo ?
Ho provato a cercare nei vari ultralcd.h, ultralcd.cpp ecc. ecc. ma non sono riuscito a trovare (capirci) niente.

Grazie in anticipo a chi sarà in grado di darmi qualche dritta. smileys with beer


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 04, 2017 06:46AM
Piccolo update....

Trovata la definizione delle immagini e aggiunto immagine con 4 estrusore e il Bed riscaldato.

Ora la situazione è questa:

Immagine Estrusore 0 ==> Temperatura estrusore 0 smiling smiley thumbs up
Immagine Estrusore 1 ==> Temperatura estrusore 1 smiling smiley thumbs up
Immagine Estrusore 2 ==> Temperatura estrusore 2 smiling smiley thumbs up
Immagine Estrusore 3 ==> Temperatura estrusore 3 smiling smiley thumbs up
Immagine Bed ==> Temperatura <> sad smiley thumbs down

Devo far comparire la temperatura del Bed.

Suggerimenti ???

Grazie.


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 04, 2017 11:23AM
OK risolto anche questo, ora è tutto OK.



Per la cronaca, ho modificato le seguenti parti di Marlin (se qualcuno è interessato posso andare anche più in dettaglio):

dogm_bitmaps.h
ultralcd_impl_DOGM.h


Ciao


Fabrizio.
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 05, 2017 07:19AM
ciao, grande risultato, sarebbe interessante se postassi i file o almeno le righe editate, ora sto aspettando la ramps nuova che la mia mks funziona come caxxo vuole lei.... appena arriva devo assemblare il tutto quindi piu' info posti meno mi dovro' sbattere.


Usi il kraken?
Re: ExtrudrBoard, Allegro A4982 calcolo vref/motori che non vanno
February 06, 2017 07:17PM
Allora, cominciamo con una doverosa premessa:

Queste modifiche sono esclusivamente per far funzionare la mia configurazione che prevede RAMPS 1.4, ExtrudrBoard, Monitor LCD Discount Full Graphic, 4 estrusori con relativi hotend e Bed riscaldato (quando avrò finito il montaqggio i test e la messa a punto aprirò apposita discussione per presentare la mia realizzazione).

Quindi vista la premessa è chiaro che la modifica che ho fatto non vale per tutte le possibili configurazioni di tutte le schede che potreste montare con tutti gli LCD possibili e immaginabili, ergo prendete spunto da ciò che ho fatto e se avete dubbi e/o domande cercherò di rispondervi nel limiti della mia (scarsa) conoscenza.

Piccola parentesi: il Kraken non ho neanche idea di cosa sia, per ciò che mi ricordo trattasi di mostro mitologico, ultimamente comparso anche in una serie di films con Jonny Depp che veste i panni di un bizzaro/improbabile/simpaticissimo pirata eye rolling smiley... chiusa parentesi

Iniziamo a ragionare sul "disegno" di ciò che si vede sull'LCD (le immagini degli hotend, del bed e della ventola), nonstante Marlin supporti fino a 4 estrusori/hotend, nell'LCD ne sono previsti massimo 3, e se ne configuriamo 4 le temperature indicate a video sono quelle dei quattro estrusori, ma il disegno è quello del bed e la temperatura del bed non vien più indicata, quindi la situazione di partenza è questa:



Prima cosa, quindi dobbiamo ridisegnare i disegni dei quattro hotend + il bed (la ventola non essendo presente è inutile disegnarla); per fare ciò andiamo in dogm_bitmaps.h e modifichiamo la parte che ci interessa, quindi la parte che prevede il Bed e il quarto hotend:

#if HAS_TEMP_BED
  #if HOTENDS == 1
    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
      0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
      0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
      0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
      0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
      0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
    };

    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
      0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
      0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
      0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
      0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
      0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
      0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
    };
  #elif HOTENDS == 2
    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
      0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
      0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
      0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
      0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
      0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
      0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
      0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
      0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
      0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
      0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
      0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
    };

    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
      0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
      0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
      0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
      0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
      0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
      0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
      0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
      0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
      0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
      0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
      0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
    };

************************************************************************************
**  Aggiunto elif HOTENDS ==3                                                                **
************************************************************************************
  #elif HOTENDS == 3
************************************************************************************
**  Fine aggiunta                                                                                        **
************************************************************************************
  #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
      0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
      0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
      0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
      0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
      0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
      0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
      0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
      0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
      0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
      0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
      0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
    };

    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
      0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
      0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
      0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
      0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
      0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
      0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
      0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
      0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
      0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
      0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
      0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
      0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
    }; 
*****************************************************************************************
** Aggiunta "BITMAP"  dei quattro hotend più bed                                           **
*****************************************************************************************
  #else
    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x7f,0x80,0x00,0x3f,0xc0,0x00,0x3f,0xc0,0x00,0x1f,0xe0,0x00,0x10,0x41,0x00,
      0xf3,0xc0,0x00,0x7d,0xe0,0x00,0x79,0xe0,0x00,0x3c,0xf0,0x00,0x08,0x20,0x80,
      0xed,0xc0,0x00,0x79,0xe0,0x00,0x76,0xe0,0x00,0x3b,0x70,0x00,0x08,0x20,0x80,
      0xed,0xc0,0x00,0x75,0xe0,0x00,0x7e,0xe0,0x00,0x3f,0x70,0x00,0x10,0x41,0x00,
      0x6d,0x80,0x00,0x3d,0xc0,0x00,0x3d,0xc0,0x00,0x1c,0xe0,0x00,0x20,0x82,0x00,
      0x6d,0x80,0x00,0x3d,0xc0,0x00,0x3b,0xc0,0x00,0x1f,0x60,0x00,0x41,0x04,0x00,
      0xed,0xc0,0x00,0x7d,0xe0,0x00,0x77,0xe0,0x00,0x3b,0x70,0x00,0x41,0x04,0x00,
      0xf3,0xc0,0x00,0x7d,0xe0,0x00,0x70,0xe0,0x00,0x3c,0xf0,0x00,0x20,0x82,0x00,
      0xff,0xc0,0x00,0x7f,0xe0,0x00,0x7f,0xe0,0x00,0x3f,0xf0,0x00,0x10,0x41,0x00,
      0x3f,0x00,0x00,0x1f,0x80,0x00,0x1f,0x80,0x00,0x0f,0xc0,0x00,0x00,0x20,0x00,
      0x1e,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x07,0x80,0x00,0x7f,0xff,0xe0,
      0x0c,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x7f,0xff,0xe0
    };

    #define STATUS_SCREENWIDTH     115 //Width in pixels
    #define STATUS_SCREENHEIGHT     19 //Height in pixels
    #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
    const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x7f,0x80,0x00,0x3f,0xc0,0x00,0x3f,0xc0,0x00,0x1f,0xe0,0x00,0x10,0x41,0x00,
      0xf3,0xc0,0x00,0x7d,0xe0,0x00,0x79,0xe0,0x00,0x3c,0xf0,0x00,0x08,0x20,0x80,
      0xed,0xc0,0x00,0x79,0xe0,0x00,0x76,0xe0,0x00,0x3b,0x70,0x00,0x08,0x20,0x80,
      0xed,0xc0,0x00,0x75,0xe0,0x00,0x7e,0xe0,0x00,0x3f,0x70,0x00,0x10,0x41,0x00,
      0x6d,0x80,0x00,0x3d,0xc0,0x00,0x3d,0xc0,0x00,0x1c,0xe0,0x00,0x20,0x82,0x00,
      0x6d,0x80,0x00,0x3d,0xc0,0x00,0x3b,0xc0,0x00,0x1f,0x60,0x00,0x41,0x04,0x00,
      0xed,0xc0,0x00,0x7d,0xe0,0x00,0x77,0xe0,0x00,0x3b,0x70,0x00,0x41,0x04,0x00,
      0xf3,0xc0,0x00,0x7d,0xe0,0x00,0x70,0xe0,0x00,0x3c,0xf0,0x00,0x20,0x82,0x00,
      0xff,0xc0,0x00,0x7f,0xe0,0x00,0x7f,0xe0,0x00,0x3f,0xf0,0x00,0x10,0x41,0x00,
      0x3f,0x00,0x00,0x1f,0x80,0x00,0x1f,0x80,0x00,0x0f,0xc0,0x00,0x00,0x20,0x00,
      0x1e,0x00,0x00,0x0f,0x00,0x00,0x0f,0x00,0x00,0x07,0x80,0x00,0x7f,0xff,0xe0,
      0x0c,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x7f,0xff,0xe0
    };
*****************************************************************************************
** Fine aggiunta                                                                                                **
*****************************************************************************************
  #endif // Extruders

A questo punto abbiamo a video il corretto disegno dei quattro hotend + il bed, ma ci manca ancora la temperatura del bed.

per visualizzarla modifichiamo ultralcd_impl_DOGM.h

Cerchiamo il punto dove vengono scritte le temperatura e semplicemente "spostiamo" più a destra al stampa del temperature del bed (da pos 81 a pos 106)

 //
  // Temperature Graphics and Info
  //

  if (PAGE_UNDER(28)) {
    // Extruders
    HOTEND_LOOP() _draw_heater_status(5 + e * 25, e);

    // Heated bed
 // Modificato   
 //   #if HOTENDS < 4 && HAS_TEMP_BED
 //      _draw_heater_status(81, -1);
 //   #endif
    #if HAS_TEMP_BED
      _draw_heater_status(106, -1);
    #endif

Il risultato è questo:



Modifica "grezza" ma funzionante.

Ciao

Edited 1 time(s). Last edit at 02/06/2017 07:19PM by Eagle23.


Fabrizio.
Sorry, only registered users may post in this forum.

Click here to login