diff --git a/klippy/extras/display/display.py b/klippy/extras/display/display.py index 3ab2d7f2..580f8b8d 100644 --- a/klippy/extras/display/display.py +++ b/klippy/extras/display/display.py @@ -142,12 +142,12 @@ class PrinterLCD: # Heaters if self.extruder0 is not None: info = self.extruder0.get_heater().get_status(eventtime) - self.lcd_chip.write_glyph(0, 0, 'nozzle') + self.lcd_chip.write_glyph(0, 0, 'extruder') self.draw_heater(2, 0, info) extruder_count = 1 if self.extruder1 is not None: info = self.extruder1.get_heater().get_status(eventtime) - self.lcd_chip.write_glyph(0, 1, 'nozzle') + self.lcd_chip.write_glyph(0, 1, 'extruder') self.draw_heater(2, 1, info) extruder_count = 2 if self.heater_bed is not None: diff --git a/klippy/extras/display/hd44780.py b/klippy/extras/display/hd44780.py index e4fd971e..d864ceaa 100644 --- a/klippy/extras/display/hd44780.py +++ b/klippy/extras/display/hd44780.py @@ -100,11 +100,18 @@ class HD44780: data = data[:20 - min(x, 20)] pos = [0, 40, 20, 60][y] + x self.text_framebuffer[0][pos:pos+len(data)] = data + def write_glyph(self, x, y, glyph_name): + char = TextGlyphs.get(glyph_name) + if char is not None: + # Draw character + self.write_text(x, y, char) + return 1 + return 0 def clear(self): self.text_framebuffer[0][:] = ' '*80 HD44780_chars = [ - # Thermometer + # Extruder (a thermometer) 0b00100, 0b01010, 0b01010, @@ -122,7 +129,7 @@ HD44780_chars = [ 0b11111, 0b00000, 0b00000, - # Speed factor + # Feed rate 0b11100, 0b10000, 0b11000, @@ -168,3 +175,14 @@ HD44780_chars = [ 0b11111, 0b00000, ] + +TextGlyphs = { + 'right_arrow': '\x7e', + 'extruder': '\x00', + 'bed': '\x01', + 'feedrate': '\x02', + 'clock': '\x03', + 'degrees': '\x04', + 'usb': '\x05', + 'sd': '\x06', +} diff --git a/klippy/extras/display/icons.py b/klippy/extras/display/icons.py index 622c9cff..ccf18e88 100644 --- a/klippy/extras/display/icons.py +++ b/klippy/extras/display/icons.py @@ -4,7 +4,7 @@ # # This file may be distributed under the terms of the GNU GPLv3 license. -nozzle_icon = [ +extruder_icon = [ 0b0000000000000000, 0b0000000000000000, 0b0000111111110000, @@ -138,7 +138,7 @@ feedrate_icon = [ ] Icons16x16 = { - 'nozzle': nozzle_icon, + 'extruder': extruder_icon, 'bed': bed_icon, 'bed_heat1': bed_heat1_icon, 'bed_heat2': bed_heat2_icon, 'fan1': fan1_icon, 'fan2': fan2_icon, 'feedrate': feedrate_icon, diff --git a/klippy/extras/display/st7920.py b/klippy/extras/display/st7920.py index b8562322..4d92c8b1 100644 --- a/klippy/extras/display/st7920.py +++ b/klippy/extras/display/st7920.py @@ -12,6 +12,8 @@ BACKGROUND_PRIORITY_CLOCK = 0x7fffffff00000000 ST7920_CMD_DELAY = .000020 ST7920_SYNC_DELAY = .000045 +TextGlyphs = { 'right_arrow': '\x1a' } + class ST7920: char_right_arrow = '\x1a' def __init__(self, config): @@ -132,12 +134,19 @@ class ST7920: if glyph_id is not None and x & 1 == 0: # Render cached icon using character generator self.write_text(x, y, glyph_id) - return + return 2 icon = icons.Icons16x16.get(glyph_name) if icon is not None: # Draw icon in graphics mode for i, bits in enumerate(icon): self.write_graphics(x, y, i, [(bits >> 8) & 0xff, bits & 0xff]) + return 2 + char = TextGlyphs.get(glyph_name) + if char is not None: + # Draw character + self.write_text(x, y, char) + return 1 + return 0 def clear(self): self.text_framebuffer[0][:] = ' '*64 zeros = bytearray(32) diff --git a/klippy/extras/display/uc1701.py b/klippy/extras/display/uc1701.py index 5a2239eb..ea4efb94 100644 --- a/klippy/extras/display/uc1701.py +++ b/klippy/extras/display/uc1701.py @@ -9,6 +9,8 @@ import icons, font8x14 BACKGROUND_PRIORITY_CLOCK = 0x7fffffff00000000 +TextGlyphs = { 'right_arrow': '\x1a' } + class UC1701: char_right_arrow = '\x1a' CURRENT_BUF, OLD_BUF = 0, 1 @@ -153,6 +155,13 @@ class UC1701: # Draw icon in graphics mode for i, bits in enumerate(icon): self.write_graphics(x, y, i, [(bits >> 8) & 0xff, bits & 0xff]) + return 2 + char = TextGlyphs.get(glyph_name) + if char is not None: + # Draw character + self.write_text(x, y, char) + return 1 + return 0 def clear(self): zeros = bytearray(128) for page in self.vram[self.CURRENT_BUF]: