Welcome! Log In Create A New Profile

Advanced

Alguien sabe modificar el firmware Marlin

Posted by tatubias 
Alguien sabe modificar el firmware Marlin
December 30, 2014 11:51AM
Estimados comence con el proyecto de agregar un sensor de humedad y temperatura ala impresora para saber las condiciones actuales insitu.

Pude leer los datos del dht11 (sensor de temperatura y humerdad) con la ramps instalada y corriendo el soft desarrollado para arduino.

El tema esta en que marlin esta desarrollado en C entonces digamos tenemos un temita de compatiblidad. queria saber si alguien sabe como corno se le mete el codigo cpp dentro del firmware del marlin para que los lea. Actual mente esta conectado al pin 40 del aux 2

El codigo en C que encotre es el siguiente.

[github.com]



Si se fijan abajo a la derecha de la imagen ya le deje (por el momento) donde se mostraría la dicha informacion.

Tenia ganas de quitarle el logo del ventilador y poner ahi los 3 valores.
% Velocidad del ventilador
Temperatura en °c
Humedad en (Hector Pascuales)
Re: Alguien sabe modificar el firmware Marlin
January 01, 2015 08:58PM
Estimados, no hay nadie que sepa lenguaje c o programar?
Re: Alguien sabe modificar el firmware Marlin
January 01, 2015 10:39PM
No alcanza con saber C, lo más complicado es estudiar en detalle cómo funciona Marlin, para luego hacer la modificación que necesitas. Eso lleva mucho tiempo y esfuerzo.

Además tenés que entender que es la humedad, supongo que donde escribiste “Humedad en (Hector Pascuales)” te estabas refiriendo en chiste a los hectopascales, de todas formas esa es una unidad de presión no de humedad, hay varias formas de expresar la humedad del aire, la más común es la Humedad relativa (también es la que usa el sensor que se ve en la foto), que es adimensional y se la expresa como un porcentaje.

Suerte con tu búsqueda.
Re: Alguien sabe modificar el firmware Marlin
January 01, 2015 11:50PM
Si cabezón estaba jodiendo con el comentario. El tema es que no encuentro donde estudiar como es el firmware.

El sensor tira la data en digital 8 bits, por un solo pin. Te da en grados centrados (sensorsensor ntc) y después l pues convertir en farenheith si te divierte. Y la humedad (sesensor resistivo) relativa ambiente en porcentaje. Sin dedecimales.


Esta es la data del sensor. [www.google.com.ar]

No hay que inventar mucho. La librería ya existe yo ya la use anda bien. El tema esta en no encuentro como lo íntegro al firmware y donde leer eso

Edited 1 time(s). Last edit at 01/01/2015 11:53PM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 12:09AM
Otro tema es como lo plantes dentro del ffirmware. Ya que por un lado deberías habitar que sense la data. Eso después en versiones ms avanzada de hosts(repetier, octopi, printrun etc) debería levantar la data y mostrarla y después habilitar que lo muestre en la pantalla lcd que hay varios modelos.

Todo eso lo deberías declara en el configuration.h y debería también poner las opciones de declarar que sesensor es. La liberia soporta como 4 dht11 dht22 y un par mas. También poder declares en que pata estas estés conectando el sensor (d40 d42 d44) (están las d0 y d1 pero no las probé si andan ya que no son iguales a las otras) Y si quieres la temperatura en centigrados o fatenheith. Porque no también el tiempo de muestreo para intentar lo menos posible en el hard. Con que te la data cada 5 10 o 20 estas bien.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 12:25AM
https://github.com/ErikZalm/Marlin/issues

Primero busca en la lista si ya formularon la pregunta o pedido de ( característica / función ) con anterioridad, si no encontras nada, plantealo en ese lugar y te van a saber guiar, creo yo son los mas indicados.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 12:38AM
Excellent esto estaba buscando el otro dia estuve dando vueltas pero no encontré donde corno plantear el tema.

En el foro no esta planteado no encontré nada.

[b[/b]
Quote
Lechonquinto
https://github.com/ErikZalm/Marlin/issues

Primero busca en la lista si ya formularon la pregunta o pedido de ( característica / función ) con anterioridad, si no encontras nada, plantealo en ese lugar y te van a saber guiar, creo yo son los mas indicados.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 12:42AM
Ni yo, lo acabo de buscar ^^,
se que leí en algún momento en el general algo relacionado, pero ni me acuerdo como se llamaba el post y creo era para aplicarlo independiente a arduino + marlin como un gadget
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 12:48AM
En el mismo link al lado de la pestaña cuestiones dice ( solicitudes )
Registro es necesario o no te aparecen las opciones.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 12:56AM
Quote
Lechonquinto
En el mismo link al lado de la pestaña cuestiones dice ( solicitudes )
Registro es necesario o no te aparecen las opciones.

Tengo cuenta. Mañana cuando este menos liquidado lo veo ahora estoy desde el teléfono y es perno escribir desde acá.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 09:23AM
Estuve haciendo la prueba de la pata d1 y d0 Para ver si andaba y no funciona. Estaba bien lo que había leído en la info de arduino y ramps. Por lo visto se usan para TX y RX para la programación via usb y comunicación con la pc.

Después de analizar los diagramas pensé que solo quedaban 3 puertos digitales Los d40 d42 y d44. Pero seguí chusmeando y me di cuenta que hay varios que actúan como Analógicos y digitales y también se les puede sacar data digital ejemplo A10D64 o el A12D66 lo he probado y levanta da la data digital sin dramas.

Me acabo de dar cuenta que los puertos de los servos digitales también se pueden usar para leer datos digitales. (d11,d5,d5,d4)





en definitiva hay disponibles puertos para hacer dulce.

Edited 3 time(s). Last edit at 01/03/2015 07:30PM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 04:22PM
Final mente lo hice andar!!!!

Era un tema que no me levantaba la biblioteca como corresponde tuve que forzar el path nomas. y bueno meter un poco de mano en el código como corresponde.

Por el momento esta desprolijo el código, ya que es medio bardo como esta todo distribuido en el firmware pero lo que se modifica es una gilada.

Ahora lo tengo conectado al pin d40 del aux2 .





Antes que nada se instala la biblioteca de DHT
Download: [github.com]

Editamos el archivo: dogm_lcd_implementation.h al final de todo agregar.

// Humidity & Temperature DTHxx Sensor By: Tatubias 
#include "PATH_COMPLETO_DE_LA_LIBRERIA\DHT.h"
#define DHTPIN 40  // Pata del arduino a utilizar
#define DHTTYPE DHT11   // Sensor DHT 11 (posibles DHT11,DHT22,DHT21,DHT21 (AM2301))

DHT dht(DHTPIN, DHTTYPE);

 int h;
 int t;
 h = dht.readHumidity();
 t = dht.readTemperature();
 
// Grafica la informacion en la pantalla
 u8g.setFont(u8g_font_5x8);
 u8g.setPrintPos(73,61);
 u8g.print("T:");
 u8g.print(t);
 u8g.setFont(u8g_font_5x8);
 u8g.setPrintPos(100,61);
 u8g.print("H:");
 u8g.print(h);

NOTA: Lo que me di cuenta (no se si es un tema de como esta programado o que pero si querés alimentar el sensor desde lo 5v de los puertos de los servos no levanta. pero si lo alimentas de otro pin y pones el pin de datos de los servos si lee los datos.

@LECHONQUINO: Acá no hace frio, aca no hace hambre, aca esta solo dios y la patria!!!! Solado...

Edited 2 time(s). Last edit at 01/02/2015 04:25PM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 04:59PM
Que grande el tatu!!!
Ahora falta conectarlo a una salida extra para controlar dos resistencias de calentamiento y tenes cámara calentada de ambiente controlado =O
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 05:12PM
Hiciste el puente de 5v a Vcc para alimentar las salidas de los servos ?


Edited 1 time(s). Last edit at 01/02/2015 05:14PM by Lechonquinto.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 06:17PM
Quote
Lechonquinto
Que grande el tatu!!!
Ahora falta conectarlo a una salida extra para controlar dos resistencias de calentamiento y tenes cámara calentada de ambiente controlado =O

Es muy simple de implementar. No lo veo complicado.

Hay que hacer un pcb con el sensor, un relay y bornera, para controlar la corriente desde la fuente. Y controlar todo desde las patas que sobran de los pines de los servos
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 06:20PM
Quote
Lechonquinto
Hiciste el puente de 5v a Vcc para alimentar las salidas de los servos ?

Grande cabezón, había leído en algún lado eso mismo pero me había olvidado. Mañana lo pruebo.

Tengo que modificar el contenido de informacion de la pantalla así queda mas prolijo.
Re: Alguien sabe modificar el firmware Marlin
January 02, 2015 07:49PM
FELICITACIONES!!!!!
Re: Alguien sabe modificar el firmware Marlin
January 03, 2015 05:51AM
FELICITACIONES TATO MUY BUENO¡¡¡¡
Re: Alguien sabe modificar el firmware Marlin
January 03, 2015 11:18AM
@Lechonquinto: Ahi cabezón hice lo que me dijiste y tengo andando el sensor sobre la pata D4 (conectores de servos) pude energizar (siempre lo quise decir desde que vi viaje alas estrellas) los pines de 5v de los servos. ahora tengo mas pines para meter le mas cosas.



Por otro lado estuve comparando la presicion de la lectura de temperatura (que a decir le tenia desconfianza) lo compare con otro sensor de temperatura y de da exactamente igual. Tampoco confio mucho en el otro ya que es un tester chino, pero ya tengo dos lecturas con el mismo valor asique tannnn desfazado no esta.

Lo que puedo hacer es agregarle una variable de corrección de temperatura via software.

Edited 2 time(s). Last edit at 01/03/2015 11:42AM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 03, 2015 04:49PM
Finalmente pude hacer toda la modificacion. la verdad que es medio perno. y hacer la ingenieria inversa lleva tiempo. pero despues no es complicado. se necesita un poco de sentido comun (es en esa parte que se me complico tongue sticking out smiley ) algo muy basico de c (basico del todo)

ANTES:


DESPUES:


Como pueden ver corri la cama a mano izquierda y en lugar de la cama le puse los datos de temperatura y humedad.

Que otra cosa se les ocurre o como modificarian el display para que quede mejor acomodado.

Lo que esta en rojo son las modificaciones del codigo que hice.

Archivo: *dogm_lcd_implementation.h

/**
 *dogm_lcd_implementation.h
 *
 *Graphics LCD implementation for 128x64 pixel LCDs by STB for ErikZalm/Marlin
 *Demonstrator: [www.reprap.org]
 *License: [opensource.org]
 *
 *With the use of:
 *u8glib by Oliver Kraus
 *[code.google.com]
 *License: [opensource.org]
 */


#ifndef ULTRA_LCD_IMPLEMENTATION_DOGM_H
#define ULTRA_LCD_IMPLEMENTATION_DOGM_H

/**
* Implementation of the LCD display routines for a DOGM128 graphic display. These are common LCD 128x64 pixel graphic displays.
**/

//Inclusiones y deficinciones para El sensor de humerdad y temperatura DHTxx 
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT11   // DHT 11 
 
#ifdef ULTIPANEL
#define BLEN_A 0
#define BLEN_B 1
#define BLEN_C 2
#define EN_A (1<
#include "DOGMbitmaps.h"
#include "dogm_font_data_marlin.h"
#include "ultralcd.h"
#include "ultralcd_st7920_u8glib_rrd.h"

/* Russian language not supported yet, needs custom font

#if LANGUAGE_CHOICE == ru
#include "LiquidCrystalRus.h"
#define LCD_CLASS LiquidCrystalRus
#else
#include 
#define LCD_CLASS LiquidCrystal
#endif
*/

// DOGM parameters (size in pixels)
#define DOG_CHAR_WIDTH		6
#define DOG_CHAR_HEIGHT		12
#define DOG_CHAR_WIDTH_LARGE	9
#define DOG_CHAR_HEIGHT_LARGE	18

#define START_ROW		0

/* Custom characters defined in font font_6x10_marlin.c */
#define LCD_STR_DEGREE      "\xB0"
#define LCD_STR_REFRESH     "\xF8"
#define LCD_STR_FOLDER      "\xF9"
#define LCD_STR_ARROW_RIGHT "\xFA"
#define LCD_STR_UPLEVEL     "\xFB"
#define LCD_STR_CLOCK       "\xFC"
#define LCD_STR_FEEDRATE    "\xFD"
#define LCD_STR_BEDTEMP     "\xFE"
#define LCD_STR_THERMOMETER "\xFF"

#define FONT_STATUSMENU	u8g_font_6x9

int lcd_contrast;

// LCD selection
#ifdef U8GLIB_ST7920
//U8GLIB_ST7920_128X64_RRD u8g(0,0,0);
U8GLIB_ST7920_128X64_RRD u8g(0);
#elif defined(MAKRPANEL)
// The MaKrPanel display, ST7565 controller as well
U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
#else
// for regular DOGM128 display with HW-SPI
U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0);	// HW-SPI Com: CS, A0
#endif

DHT dht(DHTPIN, DHTTYPE); // SE INICIALIZA FUNCION DEL SENSOR DE HUMEDAD Y TEMPERATURA

static void lcd_implementation_init()
{
#ifdef LCD_PIN_BL
	pinMode(LCD_PIN_BL, OUTPUT);	// Enable LCD backlight
	digitalWrite(LCD_PIN_BL, HIGH);
#endif

        u8g.setContrast(lcd_contrast);	
	//  Uncomment this if you have the first generation (V1.10) of STBs board
	//  pinMode(17, OUTPUT);	// Enable LCD backlight
	//  digitalWrite(17, HIGH);
	
	u8g.firstPage();
	do {
		u8g.setFont(u8g_font_6x10_marlin);
		u8g.setColorIndex(1);
		u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight());
		u8g.setColorIndex(1);
	   } while( u8g.nextPage() );

#ifdef LCD_SCREEN_ROT_90
	u8g.setRot90();	// Rotate screen by 90°
#endif

#ifdef LCD_SCREEN_ROT_180
	u8g.setRot180();	// Rotate screen by 180°
#endif

#ifdef LCD_SCREEN_ROT_270
	u8g.setRot270();	// Rotate screen by 270°
#endif

   
	u8g.firstPage();
	do {
			// RepRap init bmp
			u8g.drawBitmapP(0,0,START_BMPBYTEWIDTH,START_BMPHEIGHT,start_bmp);
			// Welcome message
			u8g.setFont(u8g_font_6x10_marlin);
			u8g.drawStr(65,10,"Core(X,Y)"); 
			u8g.drawStr(65,20,"System");
			u8g.drawStr(65,45,"By:");
			u8g.drawStr(65,55,"TATUBIAS");
	   } while( u8g.nextPage() );
  
dht.begin();  //Se incializa el dht sensor de humerdad

	   }

static void lcd_implementation_clear()
{
// NO NEED TO IMPLEMENT LIKE SO. Picture loop automatically clears the display.
//
// Check this article: [arduino.cc]
//
//	u8g.firstPage();
//	do {	
//			u8g.setColorIndex(0);
//			u8g.drawBox (0, 0, u8g.getWidth(), u8g.getHeight());
//			u8g.setColorIndex(1);
//		} while( u8g.nextPage() );
}

/* Arduino < 1.0.0 is missing a function to print PROGMEM strings, so we need to implement our own */

static void lcd_printPGM(const char* str)
{
    char c;
    while((c = pgm_read_byte(str++)) != '\0')
    {
			u8g.print(c);
    }
}

static void _draw_heater_status(int x, int heater) {
  bool isBed = heater < 0;
  int y = 17 + (isBed ? 1 : 0);
  u8g.setFont(FONT_STATUSMENU);
  u8g.setPrintPos(x,6);
  u8g.print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5)));
  lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
  u8g.setPrintPos(x,27);
  u8g.print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
  lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
  if (!isHeatingHotend(0)) {
  u8g.drawBox(x+7,y,2,2);
  }
  else {
    u8g.setColorIndex(0); // white on black
    u8g.drawBox(x+7,y,2,2);
    u8g.setColorIndex(1); // black on white
  }
}


static void lcd_implementation_status_screen()
{

 static unsigned char fan_rot = 0;
 
 u8g.setColorIndex(1);	// black on white
 
 // Symbols menu graphics, animated fan
 u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp);
 
 #ifdef SDSUPPORT
 //SD Card Symbol
 u8g.drawBox(42,42,8,7);
 u8g.drawBox(50,44,2,5);
 u8g.drawFrame(42,49,10,4);
 u8g.drawPixel(50,43);
 // Progress bar
 u8g.drawFrame(54,49,73,4);
 
 // SD Card Progress bar and clock
 u8g.setFont(FONT_STATUSMENU);
 
 if (IS_SD_PRINTING)
   {
	// Progress bar
	u8g.drawBox(55,50, (unsigned int)( (71 * card.percentDone())/100) ,2);
   }
    else {
			// do nothing
		 }
 
 u8g.setPrintPos(80,47);
 if(starttime != 0)
    {
        uint16_t time = millis()/60000 - starttime/60000;

		u8g.print(itostr2(time/60));
		u8g.print(':');
		u8g.print(itostr2(time%60));
    }else{
			lcd_printPGM(PSTR("--:--"));
		 }
 #endif
 
  // Extruders
  _draw_heater_status(6, 0);
  #if EXTRUDERS > 1
    _draw_heater_status(31, 1);
    #if EXTRUDERS > 2
      _draw_heater_status(55, 2);
    #endif
  #endif

  // Heatbed
  _draw_heater_status(55, -1);
 
 // Fan
 u8g.setFont(FONT_STATUSMENU);
 u8g.setPrintPos(104,27);
 #if defined(FAN_PIN) && FAN_PIN > -1
 u8g.print(itostr3(int((fanSpeed*100)/256 + 1)));
 u8g.print("%");
 #else
 u8g.print("---");
 #endif
 
 // Humidity & Temperature DTHxx Sensor By: Tatubias 

 int dht_humi = dht.readHumidity();
 int dht_temp = dht.readTemperature();
 
 u8g.setFont(u8g_font_5x8);
 u8g.setPrintPos(80,12);
 u8g.print("T:");
 u8g.print(dht_temp);
 lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
 u8g.setFont(u8g_font_5x8);
 u8g.setPrintPos(80,22);
 u8g.print("H:");
 u8g.print(dht_humi);
 u8g.print("%");


 // X, Y, Z-Coordinates
 u8g.setFont(FONT_STATUSMENU);
 u8g.drawBox(0,29,128,10);
 u8g.setColorIndex(0);	// white on black
 u8g.setPrintPos(2,37);
 u8g.print("X");
 u8g.drawPixel(8,33);
 u8g.drawPixel(8,35);
 u8g.setPrintPos(10,37);
 u8g.print(ftostr31ns(current_position[X_AXIS]));
 u8g.setPrintPos(43,37);
 lcd_printPGM(PSTR("Y"));
 u8g.drawPixel(49,33);
 u8g.drawPixel(49,35);
 u8g.setPrintPos(51,37);
 u8g.print(ftostr31ns(current_position[Y_AXIS]));
 u8g.setPrintPos(83,37);
 u8g.print("Z");
 u8g.drawPixel(89,33);
 u8g.drawPixel(89,35);
 u8g.setPrintPos(91,37);
 u8g.print(ftostr31(current_position[Z_AXIS]));
 u8g.setColorIndex(1);	// black on white
 
 // Feedrate
 u8g.setFont(u8g_font_6x10_marlin);
 u8g.setPrintPos(3,49);
 u8g.print(LCD_STR_FEEDRATE[0]);
 u8g.setFont(FONT_STATUSMENU);
 u8g.setPrintPos(12,48);
 u8g.print(itostr3(feedmultiply));
 u8g.print('%');

 // Status line
 u8g.setFont(FONT_STATUSMENU);
 u8g.setPrintPos(0,61);
 #ifndef FILAMENT_LCD_DISPLAY
 	u8g.print(lcd_status_message);
 #else
	if(message_millis+5000>millis()){  //Display both Status message line and Filament display on the last line
	 u8g.print(lcd_status_message);
 	}
 	else
	{
	 lcd_printPGM(PSTR("dia:"));
	 u8g.print(ftostr12ns(filament_width_meas));
	 lcd_printPGM(PSTR(" factor:"));
	 u8g.print(itostr3(extrudemultiply));
	 u8g.print('%');
	}
 #endif 	

}

static void lcd_implementation_drawmenu_generic(uint8_t row, const char* pstr, char pre_char, char post_char)
{
    char c;
    
    uint8_t n = LCD_WIDTH - 1 - 2;
		
		if ((pre_char == '>') || (pre_char == LCD_STR_UPLEVEL[0] ))
		   {
			u8g.setColorIndex(1);		// black on white
			u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
			u8g.setColorIndex(0);		// following text must be white on black
		   } else u8g.setColorIndex(1); // unmarked text is black on white
		
		u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
		u8g.print(pre_char == '>' ? ' ' : pre_char);	// Row selector is obsolete


    while( (c = pgm_read_byte(pstr)) != '\0' )
    {
		u8g.print(c);
        pstr++;
        n--;
    }
    while(n--){
					u8g.print(' ');
		}
	   
		u8g.print(post_char);
		u8g.print(' ');
		u8g.setColorIndex(1);		// restore settings to black on white
}

static void _drawmenu_setting_edit_generic(uint8_t row, const char* pstr, char pre_char, char* data, bool pgm) {
  char c;
  uint8_t n = LCD_WIDTH - 1 - 2 - (pgm ? strlen_P(data) : strlen(data));
		
  u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
  u8g.print(pre_char);

  while( (c = pgm_read_byte(pstr)) != '\0' ) {
    u8g.print(c);
    pstr++;
    n--;
  }

  u8g.print(':');

  while(n--) u8g.print(' ');

  if (pgm) { lcd_printPGM(data); } else { u8g.print(data); }
}

#define lcd_implementation_drawmenu_setting_edit_generic(row, pstr, pre_char, data) _drawmenu_setting_edit_generic(row, pstr, pre_char, data, false)
#define lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, pre_char, data) _drawmenu_setting_edit_generic(row, pstr, pre_char, data, true)

#define lcd_implementation_drawmenu_setting_edit_int3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_int3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float3_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float3(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float32_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr32(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float32(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr32(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float5_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float5(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float52_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr52(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float52(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr52(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float51_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr51(*(data)))
#define lcd_implementation_drawmenu_setting_edit_float51(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr51(*(data)))
#define lcd_implementation_drawmenu_setting_edit_long5_selected(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_long5(row, pstr, pstr2, data, minValue, maxValue) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_bool_selected(row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, '>', (*(data))?PSTR(MSG_ON)tongue sticking out smileySTR(MSG_OFF))
#define lcd_implementation_drawmenu_setting_edit_bool(row, pstr, pstr2, data) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON)tongue sticking out smileySTR(MSG_OFF))

//Add version for callback functions
#define lcd_implementation_drawmenu_setting_edit_callback_int3_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', itostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_int3(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', itostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float3_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float3(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr3(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float32_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr32(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float32(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr32(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float5_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float5(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float52_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr52(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float52(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr52(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float51_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr51(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_float51(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr51(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_long5_selected(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, '>', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_long5(row, pstr, pstr2, data, minValue, maxValue, callback) lcd_implementation_drawmenu_setting_edit_generic(row, pstr, ' ', ftostr5(*(data)))
#define lcd_implementation_drawmenu_setting_edit_callback_bool_selected(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, '>', (*(data))?PSTR(MSG_ON)tongue sticking out smileySTR(MSG_OFF))
#define lcd_implementation_drawmenu_setting_edit_callback_bool(row, pstr, pstr2, data, callback) lcd_implementation_drawmenu_setting_edit_generic_P(row, pstr, ' ', (*(data))?PSTR(MSG_ON)tongue sticking out smileySTR(MSG_OFF))

void lcd_implementation_drawedit(const char* pstr, char* value)
{
		u8g.setPrintPos(0 * DOG_CHAR_WIDTH_LARGE, (u8g.getHeight() - 1 - DOG_CHAR_HEIGHT_LARGE) - (1 * DOG_CHAR_HEIGHT_LARGE) - START_ROW );
		u8g.setFont(u8g_font_9x18);
		lcd_printPGM(pstr);
		u8g.print(':');
		u8g.setPrintPos((14 - strlen(value)) * DOG_CHAR_WIDTH_LARGE, (u8g.getHeight() - 1 - DOG_CHAR_HEIGHT_LARGE) - (1 * DOG_CHAR_HEIGHT_LARGE) - START_ROW );
		u8g.print(value);
}

static void _drawmenu_sd(uint8_t row, const char* pstr, const char* filename, char * const longFilename, bool isDir, bool isSelected) {
  char c;
  uint8_t n = LCD_WIDTH - 1;

  if (longFilename[0] != '\0') {
    filename = longFilename;
    longFilename[n] = '\0';
  }

  if (isSelected) {
    u8g.setColorIndex(1); // black on white
    u8g.drawBox (0, row*DOG_CHAR_HEIGHT + 3, 128, DOG_CHAR_HEIGHT);
    u8g.setColorIndex(0); // following text must be white on black
  }

  u8g.setPrintPos(0 * DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
  u8g.print(' ');	// Indent by 1 char

  if (isDir) u8g.print(LCD_STR_FOLDER[0]);

  while((c = *filename) != '\0') {
    u8g.print(c);
    filename++;
    n--;
  }
  while(n--) u8g.print(' ');

  if (isSelected) u8g.setColorIndex(1); // black on white
}

#define lcd_implementation_drawmenu_sdfile_selected(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, false, true)
#define lcd_implementation_drawmenu_sdfile(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, false, false)
#define lcd_implementation_drawmenu_sddirectory_selected(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, true, true)
#define lcd_implementation_drawmenu_sddirectory(row, pstr, filename, longFilename) _drawmenu_sd(row, pstr, filename, longFilename, true, false)

#define lcd_implementation_drawmenu_back_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
#define lcd_implementation_drawmenu_back(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', LCD_STR_UPLEVEL[0])
#define lcd_implementation_drawmenu_submenu_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
#define lcd_implementation_drawmenu_submenu(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', LCD_STR_ARROW_RIGHT[0])
#define lcd_implementation_drawmenu_gcode_selected(row, pstr, gcode) lcd_implementation_drawmenu_generic(row, pstr, '>', ' ')
#define lcd_implementation_drawmenu_gcode(row, pstr, gcode) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')
#define lcd_implementation_drawmenu_function_selected(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, '>', ' ')
#define lcd_implementation_drawmenu_function(row, pstr, data) lcd_implementation_drawmenu_generic(row, pstr, ' ', ' ')

static void lcd_implementation_quick_feedback()
{

#if BEEPER > -1
    SET_OUTPUT(BEEPER);
    for(int8_t i=0;i<10;i++)
    {
		WRITE(BEEPER,HIGH);
		delay(3);
		WRITE(BEEPER,LOW);
		delay(3);
    }
#endif
}
#endif//ULTRA_LCD_IMPLEMENTATION_DOGM_H


char start_bmp[] es la imagen de booteo normalmente es la gota de reprap. en mi caso es la cabra loca de pointless.

status_screen0_bmp y status_screen1_bmp son las imagenes de toda la linea que tiene 1 2 y 3 extrusores la cama y la animacion del ventilador, cuando se las intercambian a las dos imagenes hace el efecto del ventilador que se mueve.

A lo largo del codigo van a ver #if EXTRUDERS == 1 (obio las dos matrices que le siguen son las imagenes que SOLO tiene 1 extrusor cama y ventilador
#if EXTRUDERS == 2 tiene 2 extrusores (que es donde yo hice la modificacion cama y ventilardo
y depues esta #else que toma como default 3 extrusores cama y ventilador.

Las matrices son las imagenes en formato X bitmap: [en.wikipedia.org]. si exportas la parte de las definiciones y los datos lo podes abrir en gimp pero lo abre cruzado.

en mi caso edite directo el codigo HEX y fui moviendo los objetos de lugar.

Archivo: DOGMbitmaps.h

#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0, 0, 0, 224, 16, 0, 0, 0, 0, 0, 3, 224, 60, 0, 0, 0, 0, 0, 3, 240, 60, 0, 0, 0, 0, 0, 3, 240, 124, 0, 0, 0, 0, 3, 3, 248, 252, 4, 0, 0, 0, 7, 131, 255, 252, 14, 0, 0, 0, 15, 195, 255, 252, 31, 128, 0, 0, 15, 255, 255, 255, 63, 128, 0, 0, 15, 255, 255, 255, 255, 128, 0, 0, 7, 255, 255, 255, 255, 0, 0, 0, 7, 255, 255, 255, 255, 0, 0, 0, 7, 255, 255, 255, 254, 0, 0, 3, 15, 255, 255, 255, 255, 0, 0, 3, 223, 255, 255, 255, 255, 140, 0, 7, 255, 255, 255, 255, 255, 254, 0, 15, 255, 255, 255, 255, 255, 255, 0, 7, 255, 255, 255, 255, 255, 255, 0, 3, 255, 255, 255, 255, 255, 254, 0, 1, 254, 127, 255, 255, 255, 252, 0, 1, 252, 63, 253, 247, 249, 252, 0, 1, 248, 0, 248, 7, 240, 248, 0, 1, 240, 0, 0, 0, 0, 120, 0, 1, 240, 18, 192, 4, 128, 120, 0, 127, 224, 31, 208, 55, 144, 60, 0, 127, 224, 92, 248, 31, 240, 63, 224, 127, 224, 112, 48, 240, 112, 63, 240, 255, 224, 96, 30, 96, 28, 31, 240, 127, 193, 192, 12, 192, 28, 31, 240, 63, 193, 192, 13, 128, 8, 31, 240, 15, 192, 128, 7, 128, 14, 31, 192, 7, 193, 130, 7, 130, 6, 31, 0, 7, 193, 128, 7, 128, 12, 62, 0, 7, 224, 128, 15, 128, 12, 62, 0, 7, 224, 192, 14, 192, 14, 62, 0, 31, 225, 224, 25, 192, 24, 127, 0, 127, 240, 240, 56, 96, 56, 127, 128, 255, 255, 248, 232, 120, 125, 255, 240, 255, 255, 239, 224, 111, 255, 255, 240, 127, 255, 239, 96, 15, 127, 255, 240, 127, 255, 240, 0, 3, 127, 255, 224, 3, 255, 240, 0, 0, 127, 255, 224, 1, 255, 240, 0, 0, 127, 252, 0, 1, 255, 248, 0, 0, 255, 248, 0, 1, 255, 248, 0, 0, 255, 248, 0, 1, 255, 248, 0, 0, 255, 248, 0, 3, 255, 252, 0, 1, 255, 248, 0, 7, 255, 252, 0, 1, 255, 252, 0, 15, 255, 254, 0, 3, 255, 254, 0, 15, 255, 254, 0, 67, 255, 254, 0, 7, 255, 254, 8, 135, 255, 254, 0, 7, 31, 255, 0, 7, 255, 190, 0, 0, 15, 255, 128, 15, 255, 12, 0, 0, 7, 255, 255, 255, 254, 0, 0, 0, 15, 255, 255, 255, 254, 0, 0, 0, 15, 255, 255, 255, 254, 0, 0, 0, 15, 255, 255, 255, 255, 0, 0, 0, 31, 207, 255, 255, 255, 0, 0, 0, 31, 131, 255, 252, 63, 0, 0, 0, 7, 3, 255, 252, 31, 0, 0, 0, 2, 3, 241, 252, 12, 0, 0, 0, 0, 3, 224, 252, 0, 0, 0, 0, 0, 3, 224, 252, 0, 0, 0, 0, 0, 3, 192, 124, 0, 0, 0, 0, 0, 1, 128, 120, 0, 0, 0};

// Here comes a compile-time operation to match the extruder symbols 
// on the info screen to the set number of extruders in configuration.h
// 
// When only one extruder is selected, the "1" on the symbol will not 
// be displayed.



#if EXTRUDERS == 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 EXTRUDERS == 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,0x41,0x04,0x00,0x00,0x00,0x00,0x40,0x60,0x20,
0xFB,0xC0,0x00,0x79,0xE0,0x00,0x20,0x82,0x00,0x00,0x00,0x00,0x40,0xF0,0x20,
0xF3,0xC0,0x00,0x76,0xE0,0x00,0x20,0x82,0x00,0x00,0x00,0x00,0x40,0xF0,0x20,
0xEB,0xC0,0x00,0x7E,0xE0,0x00,0x41,0x04,0x00,0x00,0x00,0x00,0x40,0x60,0x20,
0x7B,0x80,0x00,0x3D,0xC0,0x00,0x82,0x08,0x00,0x00,0x00,0x00,0x5E,0x07,0xA0,
0x7B,0x80,0x00,0x3B,0xC0,0x01,0x04,0x10,0x00,0x00,0x00,0x00,0x5F,0x0F,0xA0,
0xFB,0xC0,0x00,0x77,0xE0,0x01,0x04,0x10,0x00,0x00,0x00,0x00,0x4F,0x0F,0x20,
0xFB,0xC0,0x00,0x70,0xE0,0x00,0x82,0x08,0x00,0x00,0x00,0x00,0x47,0x0E,0x20,
0xFF,0xC0,0x00,0x7F,0xE0,0x00,0x41,0x04,0x00,0x00,0x00,0x00,0x63,0x0C,0x60,
0x3F,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
0x1E,0x00,0x00,0x0F,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00,0x7F,0xFF,0xE0,
0x0C,0x00,0x00,0x06,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00,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,0x41,0x04,0x00,0x00,0x00,0x00,0x5C,0x63,0xA0,
0xFB,0xC0,0x00,0x79,0xE0,0x00,0x20,0x82,0x00,0x00,0x00,0x00,0x5E,0xF7,0xA0,
0xF3,0xC0,0x00,0x76,0xE0,0x00,0x20,0x82,0x00,0x00,0x00,0x00,0x5E,0xF7,0xA0,
0xEB,0xC0,0x00,0x7E,0xE0,0x00,0x41,0x04,0x00,0x00,0x00,0x00,0x5C,0x63,0xA0,
0x7B,0x80,0x00,0x3D,0xC0,0x00,0x82,0x08,0x00,0x00,0x00,0x00,0x58,0x01,0xA0,
0x7B,0x80,0x00,0x3B,0xC0,0x01,0x04,0x10,0x00,0x00,0x00,0x00,0x40,0x60,0x20,
0xFB,0xC0,0x00,0x77,0xE0,0x01,0x04,0x10,0x00,0x00,0x00,0x00,0x40,0xF0,0x20,
0xFB,0xC0,0x00,0x70,0xE0,0x00,0x82,0x08,0x00,0x00,0x00,0x00,0x41,0xF8,0x20,
0xFF,0xC0,0x00,0x7F,0xE0,0x00,0x41,0x04,0x00,0x00,0x00,0x00,0x61,0xF8,0x60,
0x3F,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
0x1E,0x00,0x00,0x0F,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00,0x7F,0xFF,0xE0,
0x0C,0x00,0x00,0x06,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
};

#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,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
	};
#endif // Extruders

Edited 3 time(s). Last edit at 01/03/2015 07:00PM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 04, 2015 05:49AM
buenisimo tato felicitaciones gran aporte...thumbs up
Re: Alguien sabe modificar el firmware Marlin
January 05, 2015 07:12AM
Mas actualizaciones que hice durante el fin de semanas.

Le seguí dando vueltas al tema (ya que uno tiene un par de problemitas de obsecion tongue sticking out smiley) y le agregue los ° (son caracteres especiales y también el termómetro) me hizo ahorrar espacio en la pantalla. lo que no encuentro todavía es una gota o algo que identifique a la humedad para dejarlo mas "CHEVERE"



 // Humidity & Temperature DTHxx Sensor By: Tatubias 

 int dht_humi = dht.readHumidity();  
 int dht_temp = dht.readTemperature();
 
 u8g.setFont(u8g_font_6x10_marlin);   // Setea el la letra y el tamaño de la misma Las letras estan dentro del file dogm_font_data_marlin.h)
 u8g.setPrintPos(80,10);  // Setea la posicion en el display a escribit 80x 10y)
 u8g.print(LCD_STR_THERMOMETER[0]); // escribe el caracter especial (termometro)
 u8g.setFont(u8g_font_5x8);  
 u8g.print(dht_temp);   // Imprime en pantalla la temperatura en celcius
 u8g.setFont(FONT_STATUSMENU); // Setea el la letra y el tamaño de la misma Las letras (esto es una variable que esta declarada al comienzo de este archivo)
 lcd_printPGM(PSTR(LCD_STR_DEGREE " ")); //imprime el caracter especial ° ya que no es parte de character set basico)
 u8g.setFont(u8g_font_6x10_marlin);
 u8g.setPrintPos(80,24);
 u8g.print("H");
 u8g.setFont(u8g_font_5x8);
 u8g.print(dht_humi);
 u8g.setFont(FONT_STATUSMENU);
 u8g.print("%");

Edited 1 time(s). Last edit at 01/05/2015 07:13AM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 05, 2015 08:18AM
Bueno ahi parece que le encontré la vuelta como es el tema de los caracteres especiales. no encontré exactamente una gota pero algo parecido le puse.






En esta pagina están las fonts que soporta el u8g lib.

[code.google.com]

Cuando ves la font del tamaño que te interesa por ejemplo la siguiente:



La seteas en tu código con el siguiente comando: u8g.setFont(u8g_font_6x12_67_75); // Setea la font u8g_font_6x12_67_75
y después tenes que elegir el carácter especial que querés impremir. en este ejemplo la imagen se interpreta de la siguiente manera

La columna que tenes en HEX te va a dar la linea del caracteres que querés. y despues la columna donde esta el carácter (también contado en HEX) te va a dar la posición del mismo.
En mi caso sería \xed

Entonces para imprimirlo en la pantalla seria el siguiente comando.

u8g.print("\xed");

Les dejo un par de ejemplos para que sea mas ilustrativo.



Esta muy chiquito pero ahí marque dos símbolos con verde y azul. los códigos serian los siguientes.

Verde: \x44 (\x4 seria la fila que estas usando y el otro 4 es la columna de las dos flechas.
Azul: \a6 (\a Seria la fila que estas usando y el 6 la posición del cuadrado con la cruz adentro.

Osea se cuenta de 0-9 seguido de a-f

ejemplo El ultimo caracter de la imagen sobre mano derecha es un triangulo. ese sería \FF

Este es como quedó el codigo actualizado del display.

 // Humidity & Temperature DTHxx Sensor By: Tatubias 

 int dht_humi = dht.readHumidity();
 int dht_temp = dht.readTemperature();

 u8g.setFont(u8g_font_6x10_marlin);
 u8g.setPrintPos(80,10);
 u8g.print(LCD_STR_THERMOMETER[0]);
 u8g.setFont(FONT_STATUSMENU);
 u8g.print(dht_temp);
 lcd_printPGM(PSTR(LCD_STR_DEGREE));
 u8g.setFont(u8g_font_6x12_67_75); // Setea la font u8g_font_6x12_67_75
 u8g.setPrintPos(80,24);
 u8g.print("\xed");  //Imprime el caracter con forma de "GOTA"
 u8g.setFont(FONT_STATUSMENU);
 u8g.print(dht_humi);
 u8g.print("%");

Edited 2 time(s). Last edit at 01/05/2015 08:47AM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 05, 2015 01:22PM
ahh ustedes querían que sea bien argento lo que estamos por armar ahora si es bien nac&pop.

Ahí descubrí porque aveces en algunas de las fotos lo logos salen rotos abajo de todo. es simplemente porque el dibujo no es 60x64 pixels. por ahi tiene menos. lo que tenes que hacer es o dejas justo 60x64 la imagen o sino en el LCD_Bitmap_Converter le modificas el tamaño del canvas a 60x64 y sale como piña

Los codigos son solo para los logos, el texto va en otra parte de la configuracion del marlin.




Es una mezcla del logo de open hardware y nuestra Argentina

#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
   0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
   0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x00, 0x00,
   0x00, 0x18, 0x00, 0x7f, 0xe0, 0x01, 0x80, 0x00, 0x00, 0x3c, 0x00, 0xff,
   0xf0, 0x03, 0xc0, 0x00, 0x00, 0x7f, 0x01, 0xf7, 0xf8, 0x0f, 0xe0, 0x00,
   0x00, 0xff, 0x87, 0xe0, 0x3e, 0x1f, 0xf0, 0x00, 0x01, 0xff, 0xff, 0xe0,
   0x3f, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xfc, 0x00,
   0x03, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xff, 0x80,
   0x01, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xc0, 0x01, 0xef, 0xf0, 0x00,
   0x00, 0xff, 0xff, 0xc0, 0x03, 0xcf, 0xf0, 0x00, 0x00, 0x7f, 0xff, 0x80,
   0x00, 0x1f, 0xe0, 0x00, 0x00, 0x3f, 0xff, 0x00, 0x00, 0x3f, 0xc0, 0x00,
   0x00, 0x3f, 0xff, 0x00, 0x00, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0x00,
   0x01, 0xff, 0xc0, 0x00, 0x00, 0x7f, 0xff, 0x00, 0x03, 0xff, 0xe0, 0x00,
   0x00, 0x7f, 0xff, 0x00, 0x03, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0x00,
   0x07, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xff, 0x00, 0x07, 0xff, 0xf0, 0x00,
   0x07, 0xff, 0xff, 0x00, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xfe, 0x00,
   0x01, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00,
   0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xff, 0x00, 0x01, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00,
   0x0f, 0xff, 0xff, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x73, 0xff, 0xff, 0x00,
   0xff, 0xff, 0xfe, 0x00, 0x47, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xfe, 0x00,
   0x8f, 0xff, 0xff, 0x00, 0x00, 0xff, 0xfe, 0x03, 0x0f, 0xff, 0xf0, 0x00,
   0x00, 0xff, 0xfe, 0x01, 0x3f, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xfe, 0x01,
   0x7f, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xfe, 0x02, 0x7f, 0xff, 0xe0, 0x00,
   0x00, 0x7f, 0xff, 0x02, 0x3f, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0x04,
   0x3f, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0x08, 0x1f, 0xff, 0xc0, 0x00,
   0x00, 0x7f, 0xff, 0x04, 0x1f, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0x04,
   0x0f, 0xff, 0xe0, 0x00, 0x00, 0xff, 0xff, 0x04, 0x0f, 0xff, 0xf0, 0x00,
   0x01, 0xff, 0xfe, 0x08, 0x0f, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xfe, 0x08,
   0x07, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0x10, 0x07, 0xff, 0xfc, 0x00,
   0x01, 0xff, 0xfd, 0x10, 0x03, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xdc, 0x90,
   0x03, 0xbf, 0xf0, 0x00, 0x00, 0x7f, 0x00, 0x90, 0x00, 0x0f, 0xe0, 0x00,
   0x00, 0x3e, 0x00, 0x88, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x18, 0x00, 0x74,
   0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0e, 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 };



Cabra Poinless




#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
  0x00, 0x00, 0x00, 0xe0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0,
   0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x3c, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x03, 0xf0, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0xf8,
   0xfc, 0x04, 0x00, 0x00, 0x00, 0x07, 0x83, 0xff, 0xfc, 0x0e, 0x00, 0x00,
   0x00, 0x0f, 0xc3, 0xff, 0xfc, 0x1f, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xff,
   0xff, 0x3f, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
   0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff,
   0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
   0x03, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, 0xdf, 0xff, 0xff,
   0xff, 0xff, 0x8c, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
   0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff,
   0xff, 0xff, 0xff, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
   0x01, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x01, 0xfc, 0x3f, 0xfd,
   0xf7, 0xf9, 0xfc, 0x00, 0x01, 0xf8, 0x00, 0xf8, 0x07, 0xf0, 0xf8, 0x00,
   0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x01, 0xf0, 0x12, 0xc0,
   0x04, 0x80, 0x78, 0x00, 0x7f, 0xe0, 0x1f, 0xd0, 0x37, 0x90, 0x3c, 0x00,
   0x7f, 0xe0, 0x5c, 0xf8, 0x1f, 0xf0, 0x3f, 0x00, 0x7f, 0xe0, 0x70, 0x30,
   0xf0, 0x70, 0x3f, 0x00, 0xff, 0xe0, 0x60, 0x1e, 0x60, 0x1c, 0x1f, 0x00,
   0x7f, 0xc1, 0xc0, 0x0c, 0xc0, 0x1c, 0x1f, 0x00, 0x3f, 0xc1, 0xc0, 0x0d,
   0x80, 0x08, 0x1f, 0x00, 0x0f, 0xc0, 0x80, 0x07, 0x80, 0x0e, 0x1f, 0x00,
   0x07, 0xc1, 0x82, 0x07, 0x82, 0x06, 0x1f, 0x00, 0x07, 0xc1, 0x80, 0x07,
   0x80, 0x0c, 0x3e, 0x00, 0x07, 0xe0, 0x80, 0x0f, 0x80, 0x0c, 0x3e, 0x00,
   0x07, 0xe0, 0xc0, 0x0e, 0xc0, 0x0e, 0x3e, 0x00, 0x1f, 0xe1, 0xe0, 0x19,
   0xc0, 0x18, 0x7f, 0x00, 0x7f, 0xf0, 0xf0, 0x38, 0x60, 0x38, 0x7f, 0x00,
   0xff, 0xff, 0xf8, 0xe8, 0x78, 0x7d, 0xff, 0x00, 0xff, 0xff, 0xef, 0xe0,
   0x6f, 0xff, 0xff, 0x00, 0x7f, 0xff, 0xef, 0x60, 0x0f, 0x7f, 0xff, 0x00,
   0x7f, 0xff, 0xf0, 0x00, 0x03, 0x7f, 0xff, 0x00, 0x03, 0xff, 0xf0, 0x00,
   0x00, 0x7f, 0xff, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x00, 0x7f, 0xfc, 0x00,
   0x01, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xf8, 0x00,
   0x00, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xf8, 0x00,
   0x03, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xfc, 0x00,
   0x01, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0x03, 0xff, 0xfe, 0x00,
   0x0f, 0xff, 0xfe, 0x00, 0x43, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xfe, 0x08,
   0x87, 0xff, 0xfe, 0x00, 0x07, 0x1f, 0xff, 0x00, 0x07, 0xff, 0xbe, 0x00,
   0x00, 0x0f, 0xff, 0x80, 0x0f, 0xff, 0x0c, 0x00, 0x00, 0x07, 0xff, 0xff,
   0xff, 0xfe, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
   0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff,
   0xff, 0xff, 0x00, 0x00, 0x00, 0x1f, 0xcf, 0xff, 0xff, 0xff, 0x00, 0x00,
   0x00, 0x1f, 0x83, 0xff, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x07, 0x03, 0xff,
   0xfc, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x03, 0xf1, 0xfc, 0x0c, 0x00, 0x00,
   0x00, 0x00, 0x03, 0xe0, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xe0,
   0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x7c, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x01, 0x80, 0x78, 0x00, 0x00, 0x00};


Printalot




#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf8, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x1f, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf1,
   0xff, 0xc0, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x00, 0x07, 0xf0, 0x00, 0x00,
   0x00, 0x03, 0xf0, 0x1f, 0x81, 0xf8, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x0f,
   0xf0, 0x7e, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x07, 0xf0, 0x1f, 0x00, 0x00,
   0x00, 0x3e, 0x04, 0x07, 0xf0, 0x0f, 0x80, 0x00, 0x00, 0x3c, 0x06, 0x07,
   0xf0, 0x07, 0xc0, 0x00, 0x00, 0x78, 0x06, 0x07, 0xf0, 0x13, 0xc0, 0x00,
   0x00, 0xf0, 0x06, 0x07, 0xf0, 0x19, 0xe0, 0x00, 0x01, 0xe6, 0x06, 0x07,
   0xf0, 0x1c, 0xf0, 0x00, 0x01, 0xc6, 0x06, 0x07, 0xf0, 0x1e, 0x78, 0x00,
   0x03, 0xce, 0x06, 0x07, 0xf0, 0x1e, 0x78, 0x00, 0x03, 0x9e, 0x06, 0x07,
   0xf0, 0x1f, 0x38, 0x00, 0x07, 0x1e, 0x06, 0x07, 0xf0, 0x1f, 0x9c, 0x00,
   0x07, 0x3e, 0x06, 0x07, 0xf0, 0x1f, 0x9c, 0x00, 0x07, 0x3e, 0x06, 0x07,
   0xf0, 0x1f, 0x9e, 0x00, 0x0e, 0x7e, 0x06, 0x07, 0xf0, 0x1f, 0xce, 0x00,
   0x0e, 0x7e, 0x06, 0x07, 0xf0, 0x1f, 0xce, 0x00, 0x0e, 0x7e, 0x06, 0x07,
   0xf0, 0x1f, 0xce, 0x00, 0x1e, 0xfe, 0x06, 0x07, 0xf0, 0x1f, 0xe7, 0x00,
   0x1c, 0xfe, 0x06, 0x07, 0xf0, 0x1f, 0xe7, 0x00, 0x1c, 0xfe, 0x00, 0x07,
   0xf0, 0x1f, 0xe7, 0x00, 0x1c, 0xfe, 0x00, 0x0f, 0xf0, 0x1f, 0xe7, 0x00,
   0x1c, 0xfe, 0x00, 0x0f, 0xf0, 0x1f, 0xe7, 0x00, 0x1c, 0xfe, 0x00, 0x3f,
   0xf0, 0x1f, 0xe7, 0x00, 0x1c, 0xfe, 0x07, 0xff, 0xf0, 0x1f, 0xe7, 0x00,
   0x1c, 0xfe, 0x07, 0xc0, 0xf0, 0x1f, 0xe7, 0x00, 0x1e, 0x7e, 0x07, 0x80,
   0x70, 0x1f, 0xe7, 0x00, 0x0e, 0x7e, 0x07, 0x80, 0x30, 0x1f, 0xce, 0x00,
   0x0e, 0x7e, 0x07, 0x84, 0x30, 0x1f, 0xce, 0x00, 0x0e, 0x7e, 0x07, 0x84,
   0x30, 0x1f, 0xce, 0x00, 0x07, 0x3e, 0x07, 0x84, 0x30, 0x1f, 0x9e, 0x00,
   0x07, 0x3e, 0x07, 0x9c, 0x30, 0x1f, 0x9c, 0x00, 0x07, 0x9e, 0x07, 0xe0,
   0x30, 0x1f, 0x3c, 0x00, 0x03, 0x9e, 0x07, 0x80, 0x30, 0x00, 0x38, 0x00,
   0x03, 0xce, 0x07, 0x80, 0x30, 0x00, 0x78, 0x00, 0x01, 0xc6, 0x07, 0x84,
   0x30, 0x00, 0x70, 0x00, 0x01, 0xe6, 0x07, 0x84, 0x38, 0x00, 0xf0, 0x00,
   0x00, 0xf0, 0x07, 0x84, 0x38, 0x01, 0xe0, 0x00, 0x00, 0x78, 0x07, 0x84,
   0x3e, 0x03, 0xc0, 0x00, 0x00, 0x3c, 0x07, 0x84, 0x3f, 0xc7, 0xc0, 0x00,
   0x00, 0x1e, 0x07, 0x84, 0x3f, 0x8f, 0x00, 0x00, 0x00, 0x0f, 0x87, 0x80,
   0x3e, 0x3e, 0x00, 0x00, 0x00, 0x07, 0xc1, 0x80, 0x30, 0x7c, 0x00, 0x00,
   0x00, 0x03, 0xf0, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00,
   0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0x00, 0x00,
   0x00, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff,
   0xf8, 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};

Edited 4 time(s). Last edit at 01/05/2015 01:50PM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 05, 2015 02:07PM
buena tato un crack total... thumbs up
Re: Alguien sabe modificar el firmware Marlin
January 06, 2015 03:34PM
Estaba aburrido recien y me puse a armar un par de imagenes mas. Como veran me dio paja dejalo todo exportado en HEX. Anda lo mismo tongue sticking out smiley

Autobots:

#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff,
   0xff, 0xe0, 0x00, 0x00, 0x1f, 0xf1, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x00,
   0x1f, 0xf1, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x00, 0x1f, 0xf1, 0xff, 0xe0,
   0x7f, 0xf8, 0xff, 0x00, 0x1f, 0xf1, 0xff, 0x80, 0x1f, 0xf8, 0xff, 0x00,
   0x1f, 0xf8, 0xff, 0xc0, 0x3f, 0xf1, 0xff, 0x00, 0x0f, 0xf8, 0x7f, 0xf0,
   0xff, 0xe1, 0xff, 0x00, 0x0f, 0x3c, 0x3f, 0xf9, 0xff, 0xc3, 0xcf, 0x00,
   0x0f, 0x9f, 0x0f, 0xff, 0xff, 0x0f, 0x9f, 0x00, 0x0f, 0xc7, 0x87, 0xff,
   0xfe, 0x1e, 0x3f, 0x00, 0x0f, 0xf3, 0xe1, 0xff, 0xf8, 0x7c, 0xff, 0x00,
   0x0f, 0xf8, 0xf0, 0xff, 0xf0, 0xf1, 0xff, 0x00, 0x07, 0xbe, 0x3c, 0x3f,
   0xc3, 0xc7, 0xde, 0x00, 0x07, 0x8f, 0x1e, 0x1f, 0x87, 0x8f, 0x1e, 0x00,
   0x07, 0xc7, 0xce, 0x06, 0x07, 0x3e, 0x3e, 0x00, 0x07, 0xf1, 0xfe, 0x20,
   0x47, 0xf8, 0xfe, 0x00, 0x07, 0xf8, 0xff, 0x30, 0xcf, 0xf1, 0xfe, 0x00,
   0x03, 0xfe, 0x3f, 0x3f, 0xcf, 0xc7, 0xfc, 0x00, 0x00, 0xff, 0x1f, 0x3f,
   0xcf, 0x8f, 0xf0, 0x00, 0x00, 0x3f, 0xc7, 0x3f, 0xce, 0x3f, 0xc0, 0x00,
   0x00, 0x1f, 0xe7, 0x9f, 0x9e, 0x7f, 0x80, 0x00, 0x03, 0x07, 0xff, 0x9f,
   0x9f, 0xfe, 0x0c, 0x00, 0x01, 0x83, 0xff, 0x9f, 0x9f, 0xfc, 0x18, 0x00,
   0x01, 0xe0, 0xff, 0x9f, 0x9f, 0xf0, 0x78, 0x00, 0x01, 0xf0, 0x00, 0x0f,
   0x00, 0x00, 0xf8, 0x00, 0x01, 0xf0, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00,
   0x01, 0xf0, 0x00, 0x0f, 0x00, 0x00, 0xf8, 0x00, 0x01, 0xf0, 0x00, 0x0f,
   0x00, 0x00, 0xf8, 0x00, 0x01, 0xfc, 0x00, 0x8f, 0x10, 0x03, 0xf8, 0x00,
   0x01, 0xfe, 0x03, 0x8f, 0x1c, 0x07, 0xf8, 0x00, 0x01, 0xff, 0x87, 0x8f,
   0x1e, 0x1f, 0xf8, 0x00, 0x00, 0xff, 0x9f, 0x8f, 0x1f, 0x9f, 0xf0, 0x00,
   0x00, 0xff, 0x9f, 0x8f, 0x1f, 0x9f, 0xf0, 0x00, 0x00, 0xff, 0x9f, 0x8f,
   0x1f, 0x9f, 0xf0, 0x00, 0x00, 0xff, 0x9f, 0x8f, 0x1f, 0x9f, 0xf0, 0x00,
   0x00, 0xff, 0x9f, 0x8f, 0x1f, 0x9f, 0xf0, 0x00, 0x00, 0xff, 0x9f, 0x80,
   0x1f, 0x9f, 0xf0, 0x00, 0x00, 0xff, 0x9f, 0x80, 0x1f, 0x9f, 0xf0, 0x00,
   0x00, 0xff, 0x9f, 0x80, 0x1f, 0x9f, 0xf0, 0x00, 0x00, 0xff, 0x9f, 0xff,
   0xff, 0x9f, 0xf0, 0x00, 0x00, 0xff, 0x9f, 0xff, 0xff, 0x9f, 0xf0, 0x00,
   0x00, 0x3f, 0x9f, 0x80, 0x1f, 0x9f, 0xc0, 0x00, 0x00, 0x1f, 0x9f, 0x00,
   0x0f, 0x9f, 0x80, 0x00, 0x00, 0x07, 0x9f, 0x00, 0x0f, 0x9e, 0x00, 0x00,
   0x00, 0x03, 0x9e, 0x3f, 0xc7, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x3f,
   0xc7, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x7f, 0xe3, 0x80, 0x00, 0x00,
   0x00, 0x00, 0x1c, 0x7f, 0xe3, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0xff,
   0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 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 };



Decepticons:



#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 4, 0, 0, 0, 16, 0, 3, 0, 4, 0, 0, 0, 16, 0, 1, 0, 8, 0, 0, 128, 24, 0, 1, 128, 8, 0, 1, 128, 12, 0, 1, 128, 24, 0, 1, 0, 14, 0, 1, 192, 24, 0, 3, 0, 14, 0, 1, 192, 56, 0, 7, 0, 15, 192, 1, 224, 120, 0, 63, 0, 15, 252, 1, 255, 248, 1, 255, 0, 15, 255, 128, 255, 240, 15, 255, 0, 15, 255, 240, 255, 240, 255, 255, 0, 15, 143, 248, 224, 113, 255, 222, 0, 7, 129, 248, 224, 113, 254, 30, 0, 7, 192, 56, 240, 241, 224, 30, 0, 7, 240, 0, 240, 224, 0, 62, 0, 7, 255, 0, 240, 224, 3, 254, 0, 7, 255, 224, 121, 224, 31, 254, 0, 7, 195, 248, 121, 225, 255, 62, 0, 7, 192, 124, 121, 227, 240, 62, 0, 7, 224, 4, 125, 227, 0, 60, 0, 7, 252, 0, 127, 224, 0, 252, 0, 3, 255, 128, 63, 192, 15, 252, 0, 3, 255, 248, 31, 128, 255, 252, 0, 1, 255, 254, 15, 7, 255, 248, 0, 0, 255, 255, 6, 15, 255, 240, 0, 0, 239, 255, 132, 31, 255, 240, 0, 0, 113, 255, 224, 63, 252, 224, 0, 0, 56, 63, 240, 255, 193, 192, 0, 2, 28, 3, 249, 254, 3, 132, 0, 2, 30, 0, 127, 240, 7, 140, 0, 3, 15, 0, 31, 128, 15, 12, 0, 3, 135, 128, 31, 128, 30, 24, 0, 3, 199, 192, 63, 128, 60, 56, 0, 3, 195, 192, 63, 192, 124, 120, 0, 3, 225, 224, 127, 192, 248, 120, 0, 3, 241, 240, 127, 225, 240, 248, 0, 3, 240, 248, 255, 227, 241, 248, 0, 1, 248, 124, 255, 243, 225, 248, 0, 1, 252, 127, 255, 255, 195, 248, 0, 1, 252, 63, 255, 255, 135, 248, 0, 1, 254, 31, 255, 255, 143, 248, 0, 1, 255, 15, 255, 255, 15, 240, 0, 1, 255, 143, 255, 254, 31, 240, 0, 1, 255, 135, 255, 252, 63, 240, 0, 1, 255, 195, 255, 252, 63, 240, 0, 1, 255, 227, 255, 248, 127, 240, 0, 1, 255, 225, 255, 240, 255, 240, 0, 1, 255, 240, 255, 241, 255, 240, 0, 0, 127, 248, 255, 225, 255, 224, 0, 0, 15, 248, 127, 195, 255, 0, 0, 0, 3, 252, 63, 135, 252, 0, 0, 0, 0, 254, 31, 135, 224, 0, 0, 0, 0, 31, 31, 15, 128, 0, 0, 0, 0, 7, 14, 30, 0, 0, 0, 0, 0, 1, 134, 48, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};


NERD POWER!!!!



#define START_BMPWIDTH 	60	//Width in pixels
#define START_BMPHEIGHT 	64	//Height in pixels
#define START_BMPBYTEWIDTH 	8	//Width in bytes
const unsigned char start_bmp[] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, 255, 192, 0, 0, 0, 1, 255, 255, 255, 252, 0, 0, 0, 15, 255, 255, 255, 255, 0, 0, 0, 31, 131, 31, 198, 15, 128, 0, 0, 126, 57, 143, 140, 227, 224, 0, 0, 248, 28, 71, 144, 192, 240, 0, 1, 241, 248, 7, 128, 252, 120, 0, 3, 227, 199, 15, 135, 30, 60, 0, 7, 231, 63, 15, 131, 227, 28, 0, 7, 198, 48, 31, 192, 99, 158, 0, 7, 128, 97, 15, 132, 48, 142, 0, 7, 0, 225, 143, 142, 56, 7, 0, 7, 112, 96, 135, 136, 48, 119, 0, 7, 252, 112, 135, 8, 113, 255, 0, 7, 192, 56, 135, 8, 224, 31, 128, 7, 192, 24, 135, 136, 224, 31, 128, 15, 199, 248, 207, 152, 255, 31, 128, 31, 199, 248, 127, 240, 255, 159, 128, 30, 103, 2, 31, 226, 3, 49, 128, 30, 115, 254, 7, 3, 254, 113, 0, 30, 112, 134, 39, 3, 8, 113, 0, 30, 97, 0, 39, 32, 0, 19, 0, 14, 96, 32, 39, 32, 33, 19, 0, 15, 48, 126, 103, 51, 248, 103, 0, 3, 128, 199, 231, 63, 8, 6, 0, 1, 255, 255, 255, 255, 255, 254, 0, 15, 255, 255, 255, 255, 255, 255, 0, 15, 255, 255, 255, 255, 255, 255, 0, 15, 255, 255, 255, 255, 255, 255, 0, 15, 128, 0, 63, 192, 0, 31, 0, 3, 128, 0, 63, 192, 0, 28, 0, 3, 192, 0, 63, 192, 0, 60, 0, 1, 192, 0, 127, 224, 0, 56, 0, 1, 224, 0, 127, 224, 0, 120, 0, 1, 224, 0, 127, 224, 0, 120, 0, 1, 224, 0, 112, 224, 0, 112, 0, 0, 255, 255, 224, 127, 255, 240, 0, 0, 255, 255, 224, 127, 255, 240, 0, 0, 127, 255, 192, 63, 255, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 111, 251, 254, 127, 128, 0, 0, 120, 108, 3, 6, 96, 224, 0, 0, 124, 108, 3, 6, 96, 96, 0, 0, 110, 111, 195, 254, 96, 96, 0, 0, 103, 108, 3, 252, 96, 96, 0, 0, 97, 236, 3, 24, 96, 224, 0, 0, 96, 239, 251, 14, 127, 192, 0, 0, 96, 111, 251, 7, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};


Re: Alguien sabe modificar el firmware Marlin
January 06, 2015 04:42PM
Quote
Lechonquinto
Que grande el tatu!!!
Ahora falta conectarlo a una salida extra para controlar dos resistencias de calentamiento y tenes cámara calentada de ambiente controlado =O


Estimado me quedo la idea por el balero .... y se me ocurrió algo que seria "ser simple"

a)
Lo mas simple es por fuera poner una resistencia que corte con un sensor.


pero como nos gusta sufrir y pasarla mal. tuve otra idea.


b)
(hacemos un script) básicamente desde el firmware de marlin saeteamos dos patas.

1 - Sensor de temperatura
2 - Para para conectar a relay una resistencia o algo por el estilo. (obio se necesita hardware extra para la ramps)

Entonces la lógica seria leer la pata del sensor de temperatura y comparala contra una temperatura pre seteada en el script onda 80°. se podría modificar pero ya es mas bardo por todo el código que hay que meter (y las limitaciones de uno) si ese valor es menor a 80 activa la pata del relay y prende la cama. cuando se pasa se apaga.


c)
La mas complicada pero creo que debería ser la correcta. es definir una placa nueva la RAMPS 666 (PONELE) // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1,Heated Chamber, Bed)

Como vendría la modificación....

Marlin soporta 3 extrusores. pero la ramps no tiene lugar para 3 extrusores sino solo 2 como todos ya saben. entonces la idea es usas ya la parte que esta definida en el firmware que maneje el hotend del extrusor 3 (la parte de los menús seteo de temperaturas y demás) entonces de en vez de poner un sensor de temperatura como el que puse yo, usas uno de los termistores que sense la temperatura de la cámara, después de envés que caliente el extrusor lo conectas a otra pata que conecte un relay y prenda algun tipo de resistencia.

Para los que saben vale la pena la camara controlada? si no y porque?

Soy todo oidos!!!!

Edited 2 time(s). Last edit at 01/06/2015 07:01PM by tatubias.
Re: Alguien sabe modificar el firmware Marlin
January 06, 2015 07:34PM
muy bueno tu laburo y muy bien documentado !!!!!!!
antes que nada, aclaro que no me incluyo entre los que saben.... jajajaja....... ( por si queda alguna duda )
le veo un pequeño problema a la idea de una camara con temperatura controlada..... puede que la temperatura no sea uniforme, creo que aparecerian areas con mayor temperatura que otras...... no se, pero a menos que uses algo para forzar el aire ( y no se si eso es buena idea.... ) vas a tener uno o varios gradientes de temperatura ( el mas obvio es el vertical y si usas una resistencia, vas a tener mas temperatura alrededor de ella y va a disminuir en los puntos mas alejados, al menos que la resistencia sea simetrica.... ¿ un circulo o algo asi que rodee la cama ? ) de todas maneras, es solo una suposicion, y si la diferencia de temperatura es pequeña ¿ mas o menos 5 grados supongo ? no deberia ser tan terrible, tal vez estoy exagerando y el resultado podria ser muy bueno
otra cosa ( que supongo que ya habras pensado.... ) los cables y los motores... se van a bancar el aumento de temperatura ??????
Re: Alguien sabe modificar el firmware Marlin
January 06, 2015 09:00PM
Quote
78moebius
muy bueno tu laburo y muy bien documentado !!!!!!!
antes que nada, aclaro que no me incluyo entre los que saben.... jajajaja....... ( por si queda alguna duda )
le veo un pequeño problema a la idea de una camara con temperatura controlada..... puede que la temperatura no sea uniforme, creo que aparecerian areas con mayor temperatura que otras...... no se, pero a menos que uses algo para forzar el aire ( y no se si eso es buena idea.... ) vas a tener uno o varios gradientes de temperatura ( el mas obvio es el vertical y si usas una resistencia, vas a tener mas temperatura alrededor de ella y va a disminuir en los puntos mas alejados, al menos que la resistencia sea simetrica.... ¿ un circulo o algo asi que rodee la cama ? ) de todas maneras, es solo una suposicion, y si la diferencia de temperatura es pequeña ¿ mas o menos 5 grados supongo ? no deberia ser tan terrible, tal vez estoy exagerando y el resultado podria ser muy bueno
otra cosa ( que supongo que ya habras pensado.... ) los cables y los motores... se van a bancar el aumento de temperatura ??????

Mi idea es diseñar una impresora donde quedé todos los componentes eléctricos fuera de la camara. Pero todo dentro de la estructura de la impresora cerras comcompacta.
Re: Alguien sabe modificar el firmware Marlin
January 06, 2015 09:34PM
Tatu, la verdad que si es para imprimir cosas de la vida cotidiana, gadget una cajita o adorno un modelo de estudio X o cosas así, no lo vale ( ni el consumo eléctrico ni acortar la vida útil de los componentes ) sobre todo los motores.
Tengo hecho un eje tipo fresadora para usarlo con el taladro de banco y tuve que usar PLA ya que el abs tiene cierta elasticidad bajo carga ( seria resistencia a la torsión, presión, flexión ) depende el caso o aplicación,

Con camara calentada lo que se logra es un x% mas de resistencia en la unión de capas y obviamente romper el limite de altura y tamaño,
la verdad que si no es para un fin especifico, que necesite las propiedades del ABS, no se justifica.

y si lo que buscas es una textura exterior lisa lisa ( era lo que esperaba al calentar a 80° ) lamento desilusionarte pero no tiene cambios en aspecto las piezas,

78moebius

depende los motores, la calidad de los mismo, según sus especificaciones puede ir de 50°C a 80°C o mas
Tengo puesto en la maquina uno sin marca, que de a poquito se le esta saliendo la resina del bobinado de los campos por los tornillos ( parece que esta sangrando ) hot smiley
Sorry, only registered users may post in this forum.

Click here to login