Not unless you first backup your existing Firmware and EEPROM settings from the ATmega processor in your printer! Otherwise, something can (and probably would) go horribly wrong and you’d be left either with a non-functioning printer or introduce new problems you didn’t have before (I speak from experience). If you manually back everything up, then you can always restore it back to the exact settings and code you have now.
Forget the Flashprint and other programs people are talking about. It’s much better to use the avrdude utility from the command-line, just like you’d program an Arduino board. First install ‘avrdude’. On Linux, this is usually “sudo apt-get install avrdude” or use the package manager GUI to install it. On Windows, you can get the installer for the Arduino IDE, which bundles it, and you’ll find it in the program files folder for the IDE. On Windows, the command line will be similar, but you’ll need to substitute “COMx” port names for the USB serial device port names. It should be the same port you’d use to connect to the printer for normal use. I’m running OctoPrint on a RPi 2 board, which is Linux based, so my instructions here are all from that. Even if you don’t update your Firmware now it’s a good idea to read and backup what’s in there in case your motherboard ever dies, then you can easily get another 3rd party board that’s 1/3rd the price and reflash it with the same code and you’re back in business…
To read the Flash, enter the following at a terminal command prompt (case and space matters):
avrdude -p m2560 -P /dev/ttyACM1 -c stk500v2 -b 57600 -U flash:r:FFCP_flash.hex:i
You’ll need to replace the “/dev/ttyACM1” with whatever port you use to connect to your printer. On Linux, it’s usually “/dev/ttyACM0” or “/dev/ttyACM1”, but could be something like “/dev/ttyUSB0” or even “/dev/ttyS0”. Or the “COMx” port on Windows. (Macs will be more like the Linux entry but slightly different for how it enumerates devices).
To read the EEPROM, enter the following (again case and space matters):
avrdude -p m2560 -P /dev/ttyACM1 -c stk500v2 -b 57600 -U eeprom:r:FFCP_eeprom.hex:i
(and again swap the “/dev/ttyACM1” for your port)
These were the exact commands I used to backup my FFCP’s firmware. The first creates a file called “FFCP_flash.hex” and the second one creates “FFCP_eeprom.hex”. The “r” in the “-U” option means to read the memory. If you wanted to flash it back in the printer, you can change that to a “w”, for write. Similarly, you can use this same command to flash other firmware into the printer.
The “m2560” is the processor and is the ATmega2560 used on the newer FFCP, like my 2016 model. I’m not sure which ones have the 2560 and which have the 1280. If it complains that the Chip ID doesn’t match, you probably have a m1280 instead. You can also compare the Chip ID that it reports with the list in the avrdude.conf file and find the exact chip entry name to use with avrdude.
The “-c stk500v2” is the bootloader communication protocol to use. Most of the ATmega’s have been loaded with one that’s stk500v2 compatible and that should work for you. You can also try leaving that off and let avrdude use the defaults from the avrdude.conf file for the processor specified.
And the “-b 57600” is the baudrate. Note that this is the baudrate of the bootloader and NOT the normal firmware when connecting for printing. Most bootloaders in these ATmegas are either 57600 or 115200 and don’t have to match the baudrate of the firmware itself at all. The bootloader on mine was 57600. If you get communications timeouts trying to read it, it could be you have the wrong baudrate, but it could also be a wrong port name specified too.
Now back to the question of whether you should or shouldn’t — you should backup your existing firmware to be ready for the day your printer’s motherboard happens to die. But, in my opinion, if everything is working fine with your existing firmware and you are happy with it and how it’s functioning (and the bugs that it’s known to have), then don’t touch it!!