From 556ce2bd1fdcac989481c82d28acb0c769c17055 Mon Sep 17 00:00:00 2001 From: Bassam Husain Date: Tue, 9 May 2023 19:39:14 -0400 Subject: [PATCH] Added newly compiled skr-mini-e3-v3 firmware; untested. Adjusted instructions. Other file renaming. --- README.md | 22 ++++++++---------- ...firmware-USART2.bin => klipper-USART2.bin} | Bin .../{firmware-USB.bin => klipper-USB.bin} | Bin ...-v0.11.0-198-g33b18fd6-latest-UNTESTED.bin | Bin 0 -> 26752 bytes 4 files changed, 10 insertions(+), 12 deletions(-) rename misc/skr-mini/{firmware-USART2.bin => klipper-USART2.bin} (100%) rename misc/skr-mini/{firmware-USB.bin => klipper-USB.bin} (100%) create mode 100755 misc/skr-mini/klipper-v0.11.0-198-g33b18fd6-latest-UNTESTED.bin diff --git a/README.md b/README.md index a9d762c..34f0bbd 100644 --- a/README.md +++ b/README.md @@ -20,15 +20,12 @@ I am creating these files for my personal use and cannot be held responsible for Wire cables according to the following diagram: skr-mini-e3-v3.0 installation instructions -### Download Firmware Precompiled by BIGTREETECH +### Download Firmware 💡 The firmware files are located in `misc/skr-mini`. 💡 Be sure to download the `raw` files. Find out more about this [here](https://stackoverflow.com/questions/4604663/download-single-files-from-github). -Depending on how you will set things up, download *one* of the following firmware files: - -1. Download [firmware-USB.bin](./misc/skr-mini/firmware-USB.bin). Connect the SKR-Mini to the Raspberry Pi via USB connection. 💡 This is the option that most users will want. -2. Download [firmware-USART2.bin](./misc/skr-mini/firmware-USART2.bin). Use TFT port USART2 to communicate with raspberry pi. Connect the UART-TX of raspberry pi with the USART-RX2 of motherboard and connect the UART-RX of raspberry pi with the USART-TX2 of motherboard directly to communicate normally. +Download [klipper-USB.bin](./misc/skr-mini/klipper-USB.bin) compiled by BTT. I also compiled a `klipper.bin` using the latest version of Klipper, however, it is untested; [klipper-v0.11.0-198-g33b18fd6-latest-UNTESTED.bin](./misc/skr-mini/klipper-v0.11.0-198-g33b18fd6-latest-UNTESTED.bin). #### Alternatively, find instructions on how to build the firmware yourself [here](https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V3.0/Klipper#build-firmware-image) @@ -36,14 +33,15 @@ Depending on how you will set things up, download *one* of the following firmwar ### Flash Firmware -1. Rename `firmware-USB.bin` or `firmware-USART2.bin` to `firmware.bin`. -Important: If the file is not renamed, the bootloader will not be updated properly. -2. Copy `firmware.bin` to the root directory of the microSD card (make sure the card is in FAT32 format). -3. Power off the SKR-mini-E3-V3.0. +⚠️ Make sure the microSD card has been prepared using the instructions found [here](https://github.com/bassamanator/Sovol-SV06-firmware#prepare-the-microsd-card-for-flashing). + +1. Rename whatever firmware file you're using to `firmware.bin`. ⚠️ If the file is not renamed, the bootloader will not be updated properly. +2. Copy `firmware.bin` to the root directory of the microSD card. +3. Power off the skr-mini-E3-V3.0. 4. Insert the microSD card. -5. Power on the SKR-mini-E3-V3.0. -6. After a few seconds, the SKR-mini-E3-V3.0 should be flashed. -7. You can confirm that the flash was successful, by running ls /dev/serial/by-id. If the flash was successful, you'll see something like the following: +5. Power on the skr-mini-E3-V3.0. +6. After a few seconds, the skr-mini-E3-V3.0 should be flashed, but wait a full minute just to be sure. +7. You can confirm that the flash was successful, by running `ls -l /dev/serial/by-id/` or `ls -l /dev/serial/by-path/`. If the flash was successful, you'll see something like the following: ls output ### Download Klipper Configuration diff --git a/misc/skr-mini/firmware-USART2.bin b/misc/skr-mini/klipper-USART2.bin similarity index 100% rename from misc/skr-mini/firmware-USART2.bin rename to misc/skr-mini/klipper-USART2.bin diff --git a/misc/skr-mini/firmware-USB.bin b/misc/skr-mini/klipper-USB.bin similarity index 100% rename from misc/skr-mini/firmware-USB.bin rename to misc/skr-mini/klipper-USB.bin diff --git a/misc/skr-mini/klipper-v0.11.0-198-g33b18fd6-latest-UNTESTED.bin b/misc/skr-mini/klipper-v0.11.0-198-g33b18fd6-latest-UNTESTED.bin new file mode 100755 index 0000000000000000000000000000000000000000..b63c661855afd352dedc6b01e4ce700f9a409e24 GIT binary patch literal 26752 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 F{R<)|