I am completely new to Klipper and planning to switch from Marlin Firmware. Therefore, I have some basic questions.
I have a custom printer with a BTT SKR 1.4 board currently running Marlin firmware. Recently I added a Raspberry Pi 4B 4GB together with a Fysetc CTP40 screen running OctoPi/OctoPrint/OctoScreen on it at the moment. The SKR 1.4 is connected to the RPi using an USB to UART adapter.
My specific questions are:
Is there any other basic hardware I need to run Mainsail + Klipper + KlipperScreen successfully?
Did I understand that right that there is a dedicated MCU firmware (programmed in C) for direct hardware access and a Python based processing software running on the RPi? Are there additional software parts?
Is the MCU firmware compiled on the RPi or using a different PC like with Marlin Firmware?
Is it possible to connect the SKR 1.4 directly via USB to the RPi running Klipper and then upload the MCU Firmware via the RPi so that I don’t have to use the indirect route using a PC? Does a direct USB connection have any other benefits?
The CTP40 screen leaves no free GPIO pin on the RPi left, therefore every periphery needs to be connected to the SKR board directly. Is that possible with all hardware? If not which one? (Accelerometer?)
There are some accelerometers using usb-c, which then connect to your RPi, so you aren’t forced to use any pins.
The MCU firmware will be compiled on your RPi. In general it’s possible to flash the firmware directly from your RPi, but not every mainboard supports this. I have a ender 5 where this wasn’t possible. I used a program called cyberduck, which connects via SSH to your RPi and you can navigate through the files and download the firmware .bin file there. This program is free at the beginning. Then you can put the file on a sd card and flash the firmware.
For the other questions i’m not 100% sure and i don’t want to spread misinformation, but you should have all the necessary hardware.
The accelerometer was just an example. I wanted to know if I am able to connect periphery to the MCU und Klipper still can use the information of the peripheral device or if there are some exceptions where I have to connect the periphery directly?
So, I understood that right. My SKR board generates a virtual USB drive on Windows I used to upload the .bin file. Is an automatic upload from the RPi after compiling in that case possible?
The cyberduck method would also be a good workaround!
Ok, thanks anyways, you helped a lot and it seems that this could work as intended.
Directly on the host (RPi) where Klipper is installed
First time flashing of a SKR1.4 is done by renaming the klipper.bin to firmware.bin and copying it to the SD card. Susequent updates can be done directly, e.g. via SDCard updates
There is no generic approach as different boards with different MCUs and different connection schemes, e.g. USB, CAN, USB to CAN Bridge etc, will need different approaches.
Usually there is not much need to connect additional periphery to the GPIOs of the RPi and usually there are alternative solution. E.g. an accelrometer can either be directly connected to the GPIOs or alternatively following an approach like detailed in Raspberry Pi Pico + ADXL345: Portable resonance measurement for which also ready made hardware exists.
thanks for the answer!
This should clarify all questions.
When I have enough spare time I will start with the porting to Klipper, I am already curious!