I was having one heck of a time trying to install klipper on my Ender 3 with a BTT SKR e3 Turbo board, following the generic installation instructions.
I eventually found Issue#3549, which I thought at that time was the answer to my troubles. It was not (those static pins are already defined in generic-bigtreetech-skr-e3-turbo.cfg), so I will post here what my real problem was, and how I solved it, for the sake of any future strugglers who think they are also “unable to flash Klipper to their BTT SKR e3 Turbo”
First, if the firmware.bin file has been renamed to FIRMWARE.CUR on your SD card, after trying to flash the board, you did successfully flash the board. I kept misinterpreting the blank LCD screen and the continuing beeeeeeeeeeep as meaning that I had not yet successfully passed the flash from SD card step. Which I had. So I just kept “circling that tree”, trying to figure out what I had done wrong in makemenu.
For reference, this makemenu actually worked for me:
The other versions I experimented with for 3 days were just a waste of my time and energy.
Second, if the screen is still blank and the speaker is still beeping after you flashed the board (leading you to think that klipper has not flashed correctly), it is likely because EITHER:
- You have not yet defined the correct display in your printer.cfg file AND Klipper on the pi is not communicating with the board, yet.
OR
2.Klipper on the pi is not communicating with the board, yet.
AND
there is apparently a bug in that bootloader that puts the beeper on continuously when it is in bootloader mode. (That noise goes off once the printer is being controlled by the firmware.)
I fixed my problem by doing the following:
- I added these lines to my printer.cfg file (from sample-lcd.cfg), to define the display to be a stock Creality 12684 LCD:
[display]
lcd_type: st7920
cs_pin: EXP1_7
sclk_pin: EXP1_6
sid_pin: EXP1_8
encoder_pins: ^EXP1_5, ^EXP1_3
click_pin: ^!EXP1_2
[output_pin beeper]
pin: EXP1_1
No idea why, now, but I had instead defined my LCD display to be a # "RepRapDiscount 128x64 display controller , which of course it is not…
-
I ran “ls /dev/serial/by-id/*” again, after flashing klipper to the board, which now correctly returned the new klipper usb serial id. (In previous attempts this step had NOT returned a klipper version of the id. No idea why, I just probably got myself all mixed up, chasing the idea that I had somehow failed to configure makemenu correctly and never ran that command after successfully flashing…)
-
I modified printer.cfg to use the new Klipper serial device ID.
-
I commanded my pi 3B+ to restart the klipper service (sudo service klipper start)
-
The beeeeeeeeeeeeeeeeeeeep stopped and the LCD displayed the klipper control menu!
Now I have to figure out how to add BLTouch to printer.cfg, configure the OctoKlipper plug-in in Octoprint, and generally learn how to configure and use Klipper, but at least now I have flashed it.
If you are still wondering why it won’t flash on your system, I hope this helps.
Good luck to you.