I have double checked with the schematic for the board that the pin-out is correct. The display is plugged in with a short ribbon cable that appears to work fine with Marlin. In Klipper the display back-light lights up and the display shows the first and third rows as just boxes with the second and fourth row just blank.
How can I diagnose what needs to be changed to get Klipper to init the display successfully? This is using the current stock v4.1b control board for the Geeetech A10x (and A20x) machines.
Hi. This is problem with serial port. Not with LCD or motherboeard pins. Check it and reinitialised. Pins in the motherboard v.3.x and 4.0 are the same. This can be seen in the Marlin config file. I did not check on version 4.1. I installed Klipper in a docker container on Synology for my Geeetech A10T. At the beginning of working with the printer, I make /dev/ttyUSB0 in the Docker container shell using the ātee /dev/ttyUSB0ā command. Iāll find the real reason later.
I hope this information helps you solve the problem
I donāt think that the serial connection to the board has any bearing on the problem. The printer itself is working fine it is just that the LCD does not init when using a 4.1b board. Either the LCD unit is different or the pins are used differently. If you donāt have a 4.1b board how can you say?
Compare the following pins: LCM_RS, LCM_EN, LCM_D4, LCM_D5, LCM_D6, LCM_D7
The same.
Klipper is not standard firmware. When you turn on the printer it doesnāt know what to do until Klipper tells it to. If you see 2 black lines on the screen, then this is just such a case.
OK then for a 4.1b board, what IS the correct config for the display? This is what I have in my config (yes, commented out now). BTW, right now I have an A20 display working fine on the 4.1b but Iād rather use the stock display.
#[display]
## pins set based on the schmatic but it shows nothing
#hd44780_protocol_init: True
#line_length: 20
#lcd_type: hd44780
#rs_pin: PD1
#e_pin: PH0
#d4_pin: PH1
#d5_pin: PD0
#d6_pin: PE3
#d7_pin: PC1
#encoder_pins: ^PL7, ^PG1
#click_pin: ^!PD2
Yup, I bought an ST7920 based A20 display and Iām using that with pretty much the same config.
The A10x machines come with the hd44780 based display and I could not get it working even though the display type seems to be supported and the config I have for it is based on the A10M schematic.
with mapping from Arduino pin#(e.g. 1) to AVR port (e.g. E1):
And according to source code it is based on AiP31068:
and uses following library to communicate:
I have all the HW and even logic analyzer connected to the pins. Trying to debug it. Maybe somebody can help me with python part. how to init it and send commands manually.
For now using this config but it sends 8-bits commands instead of required 9-bits:
I donāt have a solution but will be interested in what you find.
I ended up putting on an A20 display with a quiet 4.1b board as that plugs into the board with the same cable and it works with Klipper. Well that is until the day that I powered on the machine and it went BANG and took out the voltage regulator and a stepper driver. Not having the capability to repair SMT boards I replaced it with an after-market board and better display
Hey dude. Could you share your full A20M config? Just got one of these and the generic GT2560 config Iām getting an ADC out of range error on the extruder temp sensor. I tried changing the type, no dice. Do i need a ! or ^ on the sensor pin?
hey, thanks this worked perfectly for the ADC issues. I did have to comment out the klipper/macro/XXX.cfg includesā¦ did quite a bit of googling and could seem to track down what you could have been referencing there. your github profile also didnāt have any other reposā¦ so kinda at a loss there. not a blocker, would just like to see these scripts for reference.
Decided to try to merge my work to help other users of A10/M/T who has felt on YHCB2004 display requiring 9 bit SPI.
First step is to make Klipper to support this 9 bit SPI:
any help to make it merged is welcome.
And then will create PR with display driver and config.