This is a custom version of the Marlin Firmware for the Anycubic Mega-S, based on davidramiro's repo.
Other than the great updates added by Davids repo this fork has support for the Stot Switching Extruder (SSE), a single stepper extruder capable of automatically switching between 4 filaments by utilizing one of the servo signals. As long as you dont have a bltouch for example this means without any hardware changes. If you do you will need to solder on a servo header to one of the free servo signal pads.
To support this a new '> SSE Menu' has been added to select active filaments and load/unload them on the Anycubic TFT. This allows you to use standard one colour sliced files and simply select from one of the 4 loaded filaments.
I also made the existing 'Special' menu easier to read and in a more natural order.
I have added 2 custom gcode commands to use for loading and unloading filaments. Without any extra parameters these will use the Configuration.h settings COMBINER_LENGTH, COMBINER_TO_COOLING_BOWDEN_LENGTH and COOLING_TUBE_LENGTH all of which can be overwritten by entering them on the gcode.
This will load the filament from the parked position to the hot end.
Optional parameters are
Cooling tube length in mm. If omitted COOLING_TUBE_LENGTH is used.
Length of the Y filament combiner in mm from output to input furthest from output. If omitted COMBINER_LENGTH is used.
Bowden tube Length in mm from the top of the cooling tube to the output of the filament combiner. If omitted COMBINER_TO_COOLING_BOWDEN_LENGTH is used.
This will perform a series of extruder operations to minimise stringing then extract the filament back to the park position.
Optional parameters are
Cooling tube length in mm. If omitted COOLING_TUBE_LENGTH is used.
Length of the Y filament combiner in mm from output to input furthest from output. If omitted COMBINER_LENGTH is used.
Bowden tube Length in mm from the top of the cooling tube to the output of the filament combiner. If omitted COMBINER_TO_COOLING_BOWDEN_LENGTH is used.
- Download and install Arduino IDE
- Clone or download this repo
- Browse into the Marlin folder and run
Marlin.ino
- In the IDE, under
Tools -> Board
selectGenuino Mega 2560
andATmega2560
- Open Marlin.ino in the Marlin directory of this repo
- Customize if needed based on davidramiros repo (e.g. motor directions and type at line
559
to566
and line857
to865
inConfiguration.h
) - Under
Sketch
, selectExport compiled binary
- Look for the .hex file in the Marlin directory (only use the
Marlin.ino.hex
, not theMarlin.ino.with_bootloader.hex
!)
- Flash the hex with Cura, OctoPrint or similar
This repo can be used on the AnyCubic i3 Mega if the configuration.h file is editied as per davidramiro's repo.
Some updates require the storage to be cleared (M502
), if mentioned in the update log. In those cases, before updating, send M503
and make a backup of all the lines starting with:
M92
G29
M301
M304
After flashing the new version, issue a M502
and M500
. After that, enter every line you saved before and finish by saving with M500
.
No worries. You can easily go back to the default firmware and restore the default settings.
- Flash the hex file from the manufacturer's website
- After flashing, send
M502
andM500
. Now your machine is exactly as it came out of the box.
Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. First created in 2011 for RepRap and Ultimaker printers, today Marlin drives a majority of the world's most popular 3D printers. Marlin delivers outstanding print quality with unprecedented control over the process.
If you have coding or writing skills you're encouraged to contribute to Marlin. You may also contribute suggestions, feature requests, and bug reports through the Marlin Issue Queue.
Before contributing, please read our Contributing Guidelines and Code of Conduct.
- Marlin Home Page - The latest Marlin documentation.
- Marlin Releases - All Marlin releases with release notes.
- RepRap.org Wiki Page - An overview of Marlin and its role in RepRap.
- Marlin Firmware Forum - Get help with configuration and troubleshooting.
- Marlin Firmware Facebook group - Help from the community. (Maintained by @thinkyhead.)
- @MarlinFirmware on Twitter - Follow for news, release alerts, and tips. (Maintained by @thinkyhead.)
Marlin's administrators are:
- Scott Lahteine [@thinkyhead]
- Roxanne Neufeld [@Roxy-3D]
- Bob Kuhn [@Bob-the-Kuhn]
- Erik van der Zalm [@ErikZalm]
Notable contributors include:
- Alexey Shvetsov [@alexxy]
- Andreas Hardtung [@AnHardt]
- Ben Lye [@benlye]
- Bernhard Kubicek [@bkubicek]
- Bob Cousins [@bobc]
- Petr Zahradnik [@clexpert]
- Jochen Groppe [@CONSULitAS]
- David Braam [@daid]
- Eduardo José Tagle [@ejtagle]
- Ernesto Martinez [@emartinez167]
- Edward Patel [@epatel]
- F. Malpartida [@fmalpartida]
- João Brazio [@jbrazio]
- Kai [@Kaibob2]
- Luc Van Daele [@LVD-AC]
- Alberto Cotronei [@MagoKimbra]
- Marcio Teixeira [@marcio-ao]
- Chris Palmer [@nophead]
- Chris Pepper [@p3p]
- Steeve Spaggi [@studiodyne]
- Thomas Moore [@tcm0116]
- Teemu Mäntykallio [@teemuatlut]
- Nico Tonnhofer [@Wurstnase]
- [@android444]
- [@bgort]
- [@GMagician]
- [@Grogyan]
- [@maverikou]
- [@oysteinkrog]
- [@paclema]
- [@paulusjacobus]
- [@psavva]
- [@Tannoo]
- [@teemuatlut]
- ...and many others
Marlin is published under the GPLv3 license because we believe in open development. The GPL comes with both rights and obligations. Whether you use Marlin firmware as the driver for your open or closed-source product, you must keep Marlin open, and you must provide your compatible Marlin source code to end users upon request. The most straightforward way to comply with the Marlin license is to make a fork of Marlin on Github, perform your modifications, and direct users to your modified fork.
/*
* Flashing a custom firmware happens at your own risk.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS
* AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/