Sovol SV06 Plus Firmware flashing

This is to discuss and add pointers on the flashing of firmware to your SV06 Plus.
Not to be rude so please hear me out. I think some folks are getting a few things either mixed up, letting flashing intimidate you, you may have never done it before, forgetting simple steps, or just not paying attention. I think the old adage “if it ain’t broke, don’t fix it”, should be given some weight.
Ask yourself BEFORE you attempt to flash:
Why are you flashing the firmware?
Is it needed?
Is the machine not working as intended?
Do you just want the latest, greatest?
Is there something preventing you from just using what you have?
John Q is using this, I want it too!
You do not NEED to have a particular file just because someone else has it on their machine. There may be a reason that file is on their machine and not yours. If there was an issue with your machine then yes, do what you need to do, but otherwise, why would you spend $2-300 or more on a machine then turn around and brick it because you feel left out or behind? The logic just isn’t there.
If your machine is working fine, it is always recommended that you leave it alone, or you risk putting your unit out of commission. Prolonging the pain of not having a fun tool to work with because you bricked it.
Sovol recommends that if you want/need to flash your firmware you should follow these steps:
Use an SD card 4gig or more, but under 32gig.
*NOT the one that comes with the unit, preferably a different one 4gig or higher
NEWLY formatted with FAT32 Allocation @ 4096
NTFS File will and should be automatic.
Anything other than this setup simply will not work.
Download the file you wish to use
*There should be nothing else on the SD card, accept the .bin file
Copy it, drag and drop it, or transfer it whatever way you need, onto the SD card
Be sure the file name is the one you want.
Be sure the system is OFF before you insert the SD into the slot
Be sure the card is fully inserted and depressed
Turn the machine ON and wait
The machine will flash the SOVOL Splash screen, wait a few moments
There will be a delay as the system reads the new instructions and performs the task
Once the firmware is updated, you should see the normal start screen
Turn the power OFF
Remove the SD card from the slot
*DO NOT attempt to run the machine with the same SD card still installed, (it will continue to flash the firmware every time you turn it on until you remove that SD card.)
Don’t put any cards in the slot
Turn the power ON again
If the machine comes up and goes through it’s normal routine and stops at the start menu, you have successfully updated the firmware. If it doesn’t do what you expect, then something has gone wrong.

It’s not the end of the world, your machine just didn’t understand the information you gave it. When you give a machine an incomplete instruction, it doesn’t know what to do with it. It doesn’t have a brain like you and I, it can only do what you tell it to do. You are supposed to be the instructor giving direction to something that can’t tie shoes, make a sandwich, take a smoke break, give the middle finger, poop or go for a walk, it’s just a stupid machine. (Sometimes we humans need to do this to get our thoughts in order, and yes sometimes machines do smoke, but I digressed.)
When formatting the SD card, you can name it anything you like, it will not affect the files, it is only the name of the SD card. However, when it comes to the file name, that IS going to matter. If you are not familiar enough with file systems, there are protocols that must be followed in order to achieve a successful update.
Be sure the file has the correct file name and extension. (Yes, sometimes a companies will and do use the working date as the actual file name, as long as it is formatted properly with a file name and .bin extension, it will work.)
When you turn on a machine, it will look for instructions. Normally, these instructions are already there and it boots up and operates as usual. From time to time you may want or need to give it new information, or instruct it to do something new for whatever reason and you can do that, but you need to know how to talk to your machine, you need to know it’s language. So, with the instructions given above, you preempt it’s normal routine instructions with a substituted file of instructions. This is called “flashing the firmware”. What you are really doing is telling the machine to erasing the information that it has stored and replace it with this new information. The problem is, if you have the wrong language, or a bad file, the machine doesn’t have a clue what you are trying to do. As soon as the bios see a new command to change what it has stored, and the first thing it needs to do is erase what it has in memory, and prepare to receive new instructions, that is exactly what it’s going to do. It starts by erasing it’s own memory because it is preparing to receive the rest of the file. It is waiting to be guided with new information to replace what was erased.
Don’t confuse the file name with the actual release date, or the actual file name embedded in the file itself, they may be different, and not cause for alarm, most companies do try to keep things uniform and follow a standard, but not always. You are just asking for trouble when you deviate from how the machine is programed to operate with a language it doesn’t understand. The machine is looking for an instruction so it knows what you want it to do.
*Keep in mind, just because a file name says “BilliVanilli.3.4.5.bin” and after you load it, the file actually shows “MilliVanilli.v.1.2”. This is because the file name embedded in the file itself tells the machine what it’s name is and that’s the name it is going to report to the screen when asked. When you give a file name to a file, that information is for you, and to a small part it is also what the machine will be looking for to gather instructions. Once it receives that instruction, and performs the task, the file gives the machine it’s new instructions, not you. Remember this… you can name a file whatever you want, as long as the system can read and understand it. All the system cares about is what’s in the file, and assigns it the name given inside the file, not the name of the file. It names it according to the internal information in the file. There is not, and shouldn’t be any correlation between the file name, and the internal name inside the file, unless they are the same. You can absolutely name a file the date you created it, as long as the ext is correct for the machine to understand it.

I am seeing in forums: You need to change the file name for this to work.
In some cases yes, you may need to do this. But in most cases, it should be used according to the instructions. Sometimes people grasping at ideas to help, inadvertently make things worse and it snowballs from there. If you are not familiar with flashing firmware, then maybe you should take a deep breath and ask a friend to help you.
Most of the time the .bin files posted work, they shouldn’t be corrupt, but sometimes this does happen, but with this particular file update, I have seen many successful updates. If you have lingering issues beyond what I mentioned, I can’t really help past this. It just seems to be a lot of people having problems doing this, and a lot of people are first time hobbyists. There is no problem with that beyond
asking for help with your situation and getting you back up and running again.
If you know what you’re doing, and If this post came off as condescending or insulting, I’m sorry, this post was not meant for you. It is meant for the folks that haven’t dealt with this stuff before and are trying to do something for themself and failing with it. No one likes being frustrated with something they know will and should work, but lets be real, things don’t always go as planned, I mean look I’m still alive and my mom is still not happy, that’s her problem, I’m enjoying my life… but I digressed again!

Yeh, I modded my firmware, because I run the bed level on every print, and I am sick of waiting for a month of Sundays for all the pre print calibaration to finish, and I wanted to bump up the max speeds and accelerations. I also like having the option to change settings. For Marlin, you have to recompile the firmware to change a lot of the settings. And, if you are using Klipper, you will have to flash that firmware as well.

Talking only about Marlin here: I had to change some of the code to get it to compile correctly. Here are my notes on this:

Replace these lines in
Marlin/buildroot/share/PlatformIO/scripts/marlin.py

def replace_define(field, value):
found_define = None
for define in env[‘CPPDEFINES’]:
if define[0] == field:
found_define = define
break
if found_define:
env[‘CPPDEFINES’].remove(found_define)
env[‘CPPDEFINES’].append((field, value))

Reference:

I also like to go through and make all the recommended changes in the compile warnings.

Here is the reference video I used to speed up the bed leveling (note: I kept the 5x5 bed leveling, I just sped up the process):