Using Klipper data on 16x2 LCD

I don’t know if this is even possible, but maybe it is.

I am using a BTT SKR pico on my diy printer and want to display information (maybe layer number or hotend temperature) on a 16x2 LCD , either connected directly to a Raspberry Pi or an Arduino.
Is it possible to read these data and use it in this way?
Thank you for any advice.
Joe

If you run Klipper on OctoPrint and the display has I2C connection, you can use this plugin:

If the display has no I2C, you an put the arduino in between.

Thank you, I will look at that option. :+1:

You can configure the line length to 16:

https://www.klipper3d.org/Config_Reference.html#hd44780-display

The number of lines is currently fixed at 4, but to my knowledge on a 16x2 display there are simply two invisible lines. So with a proper display.cfg squeezing the necessary information into 2 lines it might work.

You may need to find out which lines are hidden. I have the suspicion that line 1 and 3 are visible and 2 and 4 are hidden, so you will need to configure a blank line between your two visible lines, but I am not certain about this.

This sounds promising, will update after I tried it. :+1:

I tried all possible options, just could not get it to work at all. :confused:
I can display only the 1st 2 lines on a 20x4 but not on a 16x2.
Will use another type of display instead.

Afaik, on a 20(16)x 4 the lines are interlaced, like

  • 1st line
  • 3rd line
  • 2nd line
  • 4th line

Try with 1st and 3rd line.

Years ago, the way I used to figure out the character mapping on an HD44780 LCD display was to write an 80 character string with each character different to the display. If I remember correctly, you can’t depend on the character RAM to display mapping being consistent between devices, it came down to how the PCB designer took the pins from the '44780 chip (or a copy of it) to the LCD.

I started with 0x21 (ASCII “!”) and ran to 0x70 (ASCII “p”) as the chip has an 80 byte RAM storage.

Datasheet here: