Skip to content
Browse files
Changes made to compile this firmware for the Sanguino/Melzi board on…
… the Monoprice Maker Select V2.
  • Loading branch information
HPS\Andrew.Blank committed Dec 7, 2018
1 parent 0640bd0 commit b02401164dd9a07cf3acdf336aa34a1e5b47c870
Showing with 140 additions and 123 deletions.
  1. +31 −31 Marlin/Configuration.h
  2. +17 −92
  3. +92 −0
@@ -74,7 +74,7 @@
// User-specified version info of this build to display in [Pronterface, etc] terminal window during
// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
// build by the user have been successfully uploaded into firmware.
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
#define STRING_CONFIG_H_AUTHOR "(Terje, Wanhao Duplicator i3 config)" // Who made the changes.
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
#define STRING_SPLASH_LINE2 WEBSITE_URL // will be shown during bootup in line 2
@@ -119,12 +119,12 @@
// The following define selects which electronics board you have.
// Please choose the name from boards.h that matches your setup

// Optional custom name for your RepStrap or other custom machine
// Displayed in the LCD "Ready" message
//#define CUSTOM_MACHINE_NAME "3D Printer"
#define CUSTOM_MACHINE_NAME "Wanhao i3"

// Define this to set a unique identifier for this printer, (Used by some programs to differentiate between machines)
// You can use an online service to generate a random UUID. (eg
@@ -137,7 +137,7 @@
#define EXTRUDERS 1

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.

// For Cyclops or any "multi-extruder" that shares a single nozzle.
@@ -286,12 +286,12 @@
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_0 13
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0

// Dummy thermistor constant temperature readings, for use with 998 and 999
@@ -355,9 +355,9 @@
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it

// Ultimaker
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
#define DEFAULT_Kp 17.45
#define DEFAULT_Ki 0.84
#define DEFAULT_Kd 90.41

// MakerGear
//#define DEFAULT_Kp 7.0
@@ -383,7 +383,7 @@
// If your configuration is significantly different than this and you don't understand the issues involved, you probably
// shouldn't use bed PID until someone else verifies your hardware works.
// If this is enabled, find your own PID constants below.
//#define PIDTEMPBED


@@ -399,9 +399,9 @@

//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
#define DEFAULT_bedKp 602.82
#define DEFAULT_bedKi 114.98
#define DEFAULT_bedKd 790.15

//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
@@ -492,9 +492,9 @@

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
@@ -529,14 +529,14 @@
* Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 4000, 500 }
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 104 }

* Default Max Feed Rate (mm/s)
* Override with M203
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
#define DEFAULT_MAX_FEEDRATE { 300, 300, 20, 50 }

* Default Max Acceleration (change/s) change = mm/s
@@ -749,16 +749,16 @@

// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true

// Enable this option for Toshiba stepper drivers

// @section extruder

// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR false
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
@@ -789,7 +789,7 @@
#define Z_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MAX_POS 150

* Software Endstops
@@ -1113,7 +1113,7 @@
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.

@@ -1145,12 +1145,12 @@
// @section temperature

// Preheat Constants
#define PREHEAT_1_TEMP_BED 70
#define PREHEAT_1_TEMP_BED 60
#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255

#define PREHEAT_2_TEMP_BED 110
#define PREHEAT_2_TEMP_BED 80
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255

@@ -1329,7 +1329,7 @@
* you must uncomment the following option or it won't work.
//#define SDSUPPORT

@@ -1346,7 +1346,7 @@
* Use CRC checks and retries on the SD communication.

@@ -1377,7 +1377,7 @@
// Set this option if CLOCKWISE causes values to DECREASE

// This option reverses the encoder direction for navigating LCD menus.
@@ -1532,7 +1532,7 @@
// LCD for Melzi Card with Graphical LCD
//#define LCD_FOR_MELZI

@@ -1,92 +1,17 @@
# Marlin 3D Printer Firmware
<img align="right" src="../../raw/1.1.x/buildroot/share/pixmaps/logo/marlin-250.png" />

## Marlin 1.1

Marlin 1.1 represents an evolutionary leap over Marlin 1.0.2. It is the result of over two years of effort by several volunteers around the world who have paid meticulous and sometimes obsessive attention to every detail. For this release we focused on code quality, performance, stability, and overall user experience. Several new features have also been added, many of which require no extra hardware.

For complete Marlin documentation click over to the [Marlin Homepage <>](, where you will find in-depth articles, how-to videos, and tutorials on every aspect of Marlin, as the site develops. For release notes, see the [Releases]( page.

## Stable Release Branch

This Release branch contains the latest tagged version of Marlin (currently 1.1.8 – December 2017).

Previous releases of Marlin include [1.0.2-2]( (December 2016) and [1.0.1]( (December 2014). Any version of Marlin prior to 1.0.1 (when we started tagging versions) can be collectively referred to as Marlin 1.0.0.

## Contributing to Marlin

Click on the [Issue Queue]( and [Pull Requests]( links above at any time to see what we're currently working on.

To submit patches and new features for Marlin 1.1 check out the [bugfix-1.1.x]( branch, add your commits, and submit a Pull Request back to the `bugfix-1.1.x` branch. Periodically that branch will form the basis for the next minor release.

Note that our "bugfix" branch will always contain the latest patches to the current release version. These patches may not be widely tested. As always, when using "nightly" builds of Marlin, proceed with full caution.

## Current Status: In Development

Marlin development has reached an important milestone with its first stable release in over 2 years. During this period we focused on cleaning up the code and making it more modern, consistent, readable, and sensible.

## Future Development

Marlin 1.1 is the last "flat" version of Marlin!

Arduino IDE now has support for folder hierarchies, so Marlin 1.2 will have a [hierarchical file structure]( Marlin's newly reorganized code will be easier to work with and form a stronger starting-point as we get into [32-bit CPU support]( and the Hardware Access Layer (HAL).

[![Coverity Scan Build Status](](
[![Travis Build Status](](

## Marlin Resources

- [Marlin Home Page]( - The Marlin Documentation Project. Join us!
- [ Wiki Page]( - An overview of Marlin and its role in RepRap.
- [Marlin Firmware Forum]( - Find help with configuration, get up and running.
- [@MarlinFirmware]( on Twitter - Follow for news, release alerts, and tips & tricks. (Maintained by [@thinkyhead](

## Credits

The current Marlin dev team consists of:
- Roxanne Neufeld [[@Roxy-3D](]
- Scott Lahteine [[@thinkyhead](]
- Bob Kuhn [[@Bob-the-Kuhn](]

Notable contributors include:
- Alberto Cotronei [[@MagoKimbra](]
- Andreas Hardtung [[@AnHardt](]
- Bernhard Kubicek [[@bkubicek](]
- Bob Cousins [[@bobc](]
- Chris Palmer [[@nophead](]
- David Braam [[@daid](]
- Edward Patel [[@epatel](]
- Erik van der Zalm [[@ErikZalm](]
- Ernesto Martinez [[@emartinez167](]
- F. Malpartida [[@fmalpartida](]
- Jochen Groppe [[@CONSULitAS](]
- João Brazio [[@jbrazio](]
- Kai [[@Kaibob2](]
- Luc Van Daele[[@LVD-AC](]
- Nico Tonnhofer [[@Wurstnase](]
- Petr Zahradnik [[@clexpert](]
- Thomas Moore [[@tcm0116](]
- [[@alexxy](]
- [[@android444](]
- [[@benlye](]
- [[@bgort](]
- [[@ejtagle](]
- [[@Grogyan](]
- [[@marcio-ao](]
- [[@maverikou](]
- [[@oysteinkrog](]
- [[@p3p](]
- [[@paclema](]
- [[@paulusjacobus](]
- [[@psavva](]
- [[@Tannoo](]
- [[@teemuatlut](]
- ...and many others

## 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.

[![Flattr this git repo](](
-#Marlin 3D Printer Firmware for Monoprice Maker Select V2 (Wanhao Duplicator i3)
-Please use the 1.1.x branch as that is the only branch I'm modifying in this fork.
-#Changes in this Marlin fork
-Branch 1.1.x has been reset to tag 1.1.8 and configuration.h has been modified from a configuration.h found here:,809741
-#Special Instructions
-When compiling this firmware the only error I encountered was around u8glib missing. I resolved this in the arduino (1.8.7) IDE by going to "tools -> manage libraries" and installing U8glib by Oliver Version 1.19.1
-Please use this at your own risk. I accept no responsibility for the modifications posted here. This configuration compiles and works for my stock Monoprice Maker Select V2 on the original Melzi board but I have likely not tested all scenarios and modifying your firmware will void your warranty and can potentially damage your printer.
-#Additional Info
-Before installing this firmware I burned a bootloader on my melzi board using an Arduino Uno clone (found here: and the instructions from a Youtube video here: until about the 6:45 mark. The rest of the instructions on that video are around updating the Repetier firmware which I couldn't get the latest versions to fit on the small Melzi board so I switched to Marlin and here we are.

0 comments on commit b024011

Please sign in to comment.