Skip to content

Optimized firmware for RepRap 3D printers based on the Arduino platform.

License

Notifications You must be signed in to change notification settings

crysxd/Marlin

 
 

Repository files navigation

What does this fork do?

Nightly

This fork of the Marlin project provides nightly firmware builds for the BigTreeTech SKR mini E3 v1.2 by taking the daily changes of the Marlin project and building thermal with BigTreeTech's default configuration found here.

Daily build firmware.bin can be found here.

Jjust download the latest firmware.bin and copy it to your SD card. The update is flashed with the next reboot of the printer. It's adviced to save the FIRMWARE.CUR file before flashing. You can restore the previous firmware by renaming this file to firmware.bin and flashing it again.

Two kind of releases are provided:

  • 2.0.x builds are less frequently updated and can be considered "more mature"
  • bugfix-2.0.x are changing almost daily and contain the latest fixes and optimizations

Personally, I update to the latest bugifx-2.0.x every couple weeks.

Please be aware that the firmware.bin files and guidance provided here are created automatically and are usually not tested (besides the one I download myself and use on my printer). This means I can give no guarantee about the quality or functionality.

BLTouch builds (Coming soon)

READ THIS BEFORE DOING ANYTHING!

The BLTouch builds are configured for following wiring: img

This means that you replace your Z-Endstop with the BLTouch. The BLTouch is then used for Z axis homing instead of the endstop. This has many advantages, e.g. you do not need to adjust your Z-Endstop height when adding a glass build plate. Please remove the Z-endstop from your printer to prevent it from colliding with the Z axis.

After flashing the firmware, you need to tell your printer where the BLTouch is relative to your nozzle. This will be different depending on your fan duct and or BLTouch holder. The firmware is configured for X0 Y0 Z6. This means after homing, your printer will assume it needs to move the nozzle up 6mm to print on your surface (it will print mid-air). This is intentionally to prevent damage to your printer in case you miss the next step ;)

To adjust the nozzle offset, use the M851 gcode command. You can find the X and Y values usually where you got your BLTouch mount from. The Z value must be calibrated. To set everything up you need to use a software like Pronterface or Octoprint to send gcode commands to your printer. If you don't have this or don't want to do this, you can also create a text file, add the commands to it (one per line) and save it as something.gcode and then "print" it. Perform following steps:

  • Copy the firmware.bin to your SD card, insert it and restart the printer
  • The BLTouch should deploy a couple of times when the printer is booting. A little blue LED and a big red one should be lit up afterwards. If this is not the case (might be different for some clones), double check your wiring and proceed with high caution when homing!
  • Move the Z axis high up so you have time to react when it homes the Z axis
  • Home all axis
  • When the Z axis moves down, the BLTouch probe should deploy
  • Hold your finger under the probe pin and let it touch your hand. It should retract.
  • The axis will move up, the BLTouch will deploy again. Let it touch your finger again
  • If the BLTouch does not deploy or the axis does not stop moving down, immediately cut the power to the printer!
  • If everything worked, home the printer again
  • Open Pronterface or Octoprint and run M851 X? Y? Z6 and replace the ? with your X and Y values, e.g M851 X-2.4 Y11.4 Z6
  • Go to "Main Menu > Motion > Move Axis > Soft Endstops" to turn them off
  • Place a piece of paper under the nozzle
  • Go to "Main Menu > Motion > Move Axis > Move Z > 0.025mm" and move the nozzle down until you feel a little resistance on the paper while moving it
  • Note down the number on the screen.
  • Subtract the number from 6, e.g. if your screen read -8.54 then you need to do 6-8.54=-2.54
  • Open Pronterface or Octoprint and run M851 Z? and replace the ? with your calculated value.
  • Open Pronterface or Octoprint and run M500 to save your settings to EEPROM and make the persist restarts.
  • Home your printer again
  • Go to "Main Menu > Motion > Move Axis > Move Z > 0.025mm" and move it down to 0. The nozzle should now just hover over the bed.
  • Open Pronterface or Octoprint and run M48 to run a test of the BLTouch. The terminal will show the results on how precise it works.
  • Open Pronterface or Octoprint and run G29 to run a bed leveling procedure.
  • Add G29 to the end of your start gcode in your slicer to run the bed leveling procedure before every print. Alternatively, you can open Pronterface or Octoprint and run M500 to save the results of your G29. You do not need to run the bed leveling routine now before every print, but if your bed changes a little the nozzle will be off.

Marlin 3D Printer Firmware

GitHub GitHub contributors GitHub Release Date Build Status

Additional documentation can be found at the Marlin Home Page. Please test this firmware and let us know if it misbehaves in any way. Volunteers are standing by!

Marlin 2.0

Marlin 2.0 takes this popular RepRap firmware to the next level by adding support for much faster 32-bit and ARM-based boards while improving support for 8-bit AVR boards. Read about Marlin's decision to use a "Hardware Abstraction Layer" below.

Download earlier versions of Marlin on the Releases page.

Building Marlin 2.0

To build Marlin 2.0 you'll need Arduino IDE 1.8.8 or newer or PlatformIO. Detailed build and install instructions are posted at:

Supported Platforms

Platform MCU Example Boards
Arduino AVR ATmega RAMPS, Melzi, RAMBo
Teensy++ 2.0 AT90USB1286 Printrboard
Arduino Due SAM3X8E RAMPS-FD, RADDS, RAMPS4DUE
LPC1768 ARM® Cortex-M3 MKS SBASE, Re-ARM, Selena Compact
LPC1769 ARM® Cortex-M3 Smoothieboard, Azteeg X5 mini, TH3D EZBoard
STM32F103 ARM® Cortex-M3 Malyan M200, GTM32 Pro, MKS Robin, BTT SKR Mini
STM32F401 ARM® Cortex-M4 ARMED, Rumba32, SKR Pro, Lerdge, FYSETC S6
STM32F7x6 ARM® Cortex-M7 The Borg, RemRam V1
SAMD51P20A ARM® Cortex-M4 Adafruit Grand Central M4
Teensy 3.5 ARM® Cortex-M4
Teensy 3.6 ARM® Cortex-M4
Teensy 4.0 ARM® Cortex-M7
Teensy 4.1 ARM® Cortex-M7

Submitting Changes

Marlin Support

For best results getting help with configuration and troubleshooting, please use the following resources:

Credits

The current Marlin dev team consists of:

License

Marlin is published under the GPL 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.

While we can't prevent the use of this code in products (3D printers, CNC, etc.) that are closed source or crippled by a patent, we would prefer that you choose another firmware or, better yet, make your own.

About

Optimized firmware for RepRap 3D printers based on the Arduino platform.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 71.7%
  • C 24.3%
  • Objective-C 2.2%
  • Python 0.8%
  • Shell 0.6%
  • Makefile 0.2%
  • Other 0.2%