USB Firmware Compilation
Starting the Compilation
- A host computer with the 
klipperservice installed Connect via SSH over network - And the device should be properly connected to the host computer
 - Note: Please use a standard host computer, such as Raspberry Pi, FLY board, etc. If it is a modified host computer (e.g., WiFi dongle, Redmi devices), we cannot provide technical support due to numerous issues with such hosts
 
- Firmware Compilation Guide for Standard Host
 - FAST System Firmware Compilation Guide
 
- Applies to standard host computers running systems like Raspberry Pi, FLY board, etc.
 - Do not use the 
ROOTuser for any operations on such hosts - Please perform operations using a regular user account
 - To switch users, for the 
FlyOS-Armbiansystem, please use the commandsu flyto switch to the regular user - For other systems, use the command 
su <your host username>to switch to the regular user 
su <your host username>
- Notes for the 
FlyOS-FASTsystem- The default username for the 
FAST systemisroot, and the password ismellow - Firmware compilation must be performed using the 
rootuser - The 
FAST systemonly has theROOTuser—you do not need to switch users!!! 
 - The default username for the 
 
::: tip
- Please ensure that the host machine can connect to the network normally.
 - Before compiling the firmware, use SSH to log in to the host machine via the network.
 - Do not use a serial port tool to log in to the host machine.
 
:::
Klipper Firmware Compilation and Configuration Page Operation Instructions
::: tip
Please make sure that the keyboard input method is in half-width mode, i.e., English mode.
:::
- The key 
↑(up arrow) and↓(down arrow) on the keyboard are used to move the cursor up and down to select menu items. - The confirm key 
Enteror spacebarSpaceis used to check the menu or enter a sub-menu. - The exit key 
ESCis used to return to the previous menu. - The 
Qkey is used to exit the Klipper firmware configuration page. - When exiting the Klipper firmware configuration page and there is a prompt, press the 
Ykey to save the configuration file. 
::: warning
If there are fewer options in the configuration page, please first check [ ] Enable extra low-level configuration options to display some hidden options.
:::
Below is the introduction on how to compile the firmware:
- 
After connecting to SSH, enter the following command and press Enter:
cd ~/klipper && rm -rf ~/klipper/.config && rm -rf ~/klipper/out && make menuconfig - 
Where
rm -rf ~/klipper/.config && rm -rf ~/klipper/outis to delete previous compilation data and firmware,make menuconfigis to compile the firmware, after execution, the following interface should appear
 - 
Select Enable extra low-level configuration options and press Enter

 - 
Enter the menu Micro-controller Architecture then select STMicroelectronics STM32 and press Enter

 - 
Enter the menu Processor model, select STM32F405 and press Enter

 - 
Select Bootloader offset, select: 32KiB bootloader

 - 
Communication interface, select: USB (on PA11/PA12)

 
- Press the 
Qkey, when Save configuration appears, press theYkey - The configuration should now be saved and exited back to the command line interface
 - Enter the command below to start the compilation, which may take some time
 
make -j4

- 
If the compilation succeeds, the final output should be similar to the following
Linking out/klipper.elf
Creating bin file out/klipper.bin 
Firmware Flashing
Run the following command to flash the firmware
sudo fly-flash -d gemini-v3 -h -f ~/klipper/out/klipper.bin
