Skip to content

Sailfish MightyVariableFan build 18/05/05 r0879a

Latest
Compare
Choose a tag to compare
@DrLex0 DrLex0 released this 05 May 17:17
· 1 commit to mightyvariablefan-compatible since this release

This is a Sailfish build from a cherry-picked source tree that includes almost all recent contributions plus a few pending pull requests. The main reason why I made this build is for the added option to mute the ‘heaters ready’ tune while a print is ongoing. This is important to avoid interference with the MightyVariableFan system but even if you're not using this system, maybe you just don't want the printer to play tunes during a print unless something really important happened.

Another reason why you may want to use this build, is simply because it includes almost all recent improvements to the Sailfish firmware that are not yet available in for instance the official builds distributed by FlashForge and other manufacturers.
Compared to the current build distributed by FlashForge (“v7.8 r0e8a9, 16/05/23”), some of the included improvements are:

  • Option to mute the heaters tune (in the ‘Utilities’ → ‘General Settings’ menu),
  • Fixed broken General Settings menu: now all options are available, such as the ability to change LED colors,
  • More efficient SD card reads (should allow faster prints without slowing down),
  • Allow setting software PWM for the EXTRA output. This offers rudimentary manual fan speed control without an external PWM controller like the MightyVariableFan system. You can change the setting in the LCD menu at ‘Utilities’ -> ‘Cooling Fan Power’ (only possible while the printer is idle).
  • M72 command allows more tunes (will need a build of GPX with a similar fix though),
  • Avoid risk of crashing the build platform against the bottom when canceling a print.

This build does not limit the Z coordinate range (unsure whether the Flashforge build does this, some older 7.7 builds certainly do). This allows to use the entire mechanical range to print taller objects (in my case up to 170mm, but be careful never to crash the bed into the bottom of the printer.

Not included in this build is the ‘hammer fix’ that was submitted in an attempt to avoid repeated speed-up and slow-down when the printer can't keep up while printing very fast. This fix introduces some extra delays in the playback of tunes, making it a problem for the MightyVariableFan system. Moreover, it hasn't been thoroughly tested. If you're interested in a build that includes the hammer fix, ask and I'll make one. I'm interested in a comparison between this branch without the hammer fix but with the improved SD reading, and a build with only the hammer fix.

Installing

There is unfortunately no simple way to do this. You can choose between several methods with different flavors of arcaneness. No pain, no gain.

On Linux or Mac OS X, I recommend to use the ‘avrdude’ utility (can be installed in OS X through homebrew). Connect your computer to the printer via USB, and execute:

avrdude -D -p m2560 -P /dev/tty.usbmodemFD131 -c stk500v2 -b 57600 -U flash:w:ff_creatorx-2560_v7.8.0-MVF-20180505.hex:i

Change the /dev/ path to the path of the printer's serial connection and the hex file to the one suitable for your printer (ff_creatorx-2560 is the Creator Pro).
If you're comparing different builds in quick succession, you may want to add the -V option to skip the verification step after upload. For your final upload however it is highly recommended to leave this check enabled.

You can also flash the file through ReplicatorG, but it is a bit of a hassle because it requires to push the reset button at the right time. Moreover, you must first copy the .hex file to the right location (~/.replicatorg/firmware/ in Linux or OS X) and edit the accompanying XML file.

If you're using an FF Creator Pro, an alternative way is to trick FlashPrint into accepting the .hex file as one of the official FlashForge builds. You will need to figure out where FlashPrint stores its .bin files, then copy the .hex file to that location, change its extension to .bin, and add an .intro file (with anything in it).

After flashing, it is highly recommended to reset EEPROM to factory settings from within the printer's menu. This is especially the case if you are upgrading from a very old firmware version. If you did any tweaks using ReplicatorG, write them down or make screenshots before flashing, and re-apply them afterwards. Make sure to use this build of ReplicatorG with this new firmware. Other builds are likely to be incompatible!

Why is this so much smaller than typical builds?

It has been built with a 7.3.0 AVR crossbuild toolchain instead of the old 4.6 toolchain that is traditionally used. This new toolchain is able to produce more efficient binaries, both in binary size and memory usage. I have been using this build for several months now and noticed no problems with it. Still if for some reason you don't trust it, ask me and I'll make a traditional build in the 4.6.3 toolchain.