Marlin: La función del codificador depende de la definición de ULTIPANEL

Creado en 7 mar. 2017  ·  4Comentarios  ·  Fuente: MarlinFirmware/Marlin

Actualmente estoy implementando soporte para la impresora TinyBoy2 y me atrapó un codificador que no funciona.

El Tinyboy usa su propia placa pequeña de pantalla/codificador, que en realidad es solo una pantalla OLED SSD1306 128x64, conectada a través de I2C, y un codificador rotatorio que usa tres GPIO para ENCA/ENCB/ENC_Button.

Aunque habilitar la pantalla fue sencillo (#define U8GLIB_SSD1306), la compatibilidad con el codificador requiere #define ULTIPANEL.

Comentario más útil

Lo siento, pero esto no se soluciona:
https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration.h#L1328
// ULTIPANEL como se ve en Thingiverse.

No hay indicios de que esto sea necesario para la compatibilidad con codificadores genéricos.

Todos 4 comentarios

En Conditionals_LCD.h ,

  // Generic support for SSD1306 / SH1106 OLED based LCDs.
  #if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
    #define ULTRA_LCD  //general LCD support, also 16x2
    #define DOGLCD  // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
  #endif

Cambia a esto:

  // Generic support for SSD1306 / SH1106 OLED based LCDs.
  #if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
    #define ULTIPANEL // To enable encoder support
    #define ULTRA_LCD  //general LCD support, also 16x2
    #define DOGLCD  // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
  #endif

Debería funcionar para cualquier persona con un U8GLIB_SSD1306 o U8GLIB_SH1106.

El SSD1306 es un LCD/OLED, es decir, solo una pantalla. Un panel es a la vez pantalla y entradas (codificador rotatorio o teclas de cursor).

No se trata de cómo hacer que funcione (simplemente coloque #define ULTIPANEL en Configuration.h), pero la documentación faltante que indica que ULTIPANEL es necesaria para que funcione el codificador.

Lo siento, pero esto no se soluciona:
https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration.h#L1328
// ULTIPANEL como se ve en Thingiverse.

No hay indicios de que esto sea necesario para la compatibilidad con codificadores genéricos.

Se espera que ULTIPANEL esté configurado para todos los paneles relevantes en Conditionals_LCD.h automáticamente.

ULTIPANEL fue el primer panel que admitía un codificador. El nombre y el código se utilizan una y otra vez.

Entonces, si desea integrar un nuevo panel, tener un codificador, cree una nueva sección en Conditionals_LCD.h y defina ULTIPANEL. Configuration.h y los comentarios aquí son para usos. Los desarrolladores, al integrar un nuevo panel, tienen que profundizar un poco más.

¿Fue útil esta página
0 / 5 - 0 calificaciones