Skip to content

Commit b024011

Browse files
author
HPS\Andrew.Blank
committed
Changes made to compile this firmware for the Sanguino/Melzi board on the Monoprice Maker Select V2.
1 parent 0640bd0 commit b024011

File tree

3 files changed

+140
-123
lines changed

3 files changed

+140
-123
lines changed

Marlin/Configuration.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
// User-specified version info of this build to display in [Pronterface, etc] terminal window during
7575
// startup. Implementation of an idea by Prof Braino to inform user that any changes made to this
7676
// build by the user have been successfully uploaded into firmware.
77-
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.
77+
#define STRING_CONFIG_H_AUTHOR "(Terje, Wanhao Duplicator i3 config)" // Who made the changes.
7878
#define SHOW_BOOTSCREEN
7979
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
8080
#define STRING_SPLASH_LINE2 WEBSITE_URL // will be shown during bootup in line 2
@@ -119,12 +119,12 @@
119119
// The following define selects which electronics board you have.
120120
// Please choose the name from boards.h that matches your setup
121121
#ifndef MOTHERBOARD
122-
#define MOTHERBOARD BOARD_RAMPS_14_EFB
122+
#define MOTHERBOARD BOARD_MELZI
123123
#endif
124124

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

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

139139
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
140-
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
140+
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
141141

142142
// For Cyclops or any "multi-extruder" that shares a single nozzle.
143143
//#define SINGLENOZZLE
@@ -286,12 +286,12 @@
286286
*
287287
* :{ '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" }
288288
*/
289-
#define TEMP_SENSOR_0 1
289+
#define TEMP_SENSOR_0 13
290290
#define TEMP_SENSOR_1 0
291291
#define TEMP_SENSOR_2 0
292292
#define TEMP_SENSOR_3 0
293293
#define TEMP_SENSOR_4 0
294-
#define TEMP_SENSOR_BED 0
294+
#define TEMP_SENSOR_BED 5
295295

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

357357
// Ultimaker
358-
#define DEFAULT_Kp 22.2
359-
#define DEFAULT_Ki 1.08
360-
#define DEFAULT_Kd 114
358+
#define DEFAULT_Kp 17.45
359+
#define DEFAULT_Ki 0.84
360+
#define DEFAULT_Kd 90.41
361361

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

388388
//#define BED_LIMIT_SWITCHING
389389

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

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

406406
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
407407
//from pidautotune
@@ -492,9 +492,9 @@
492492
#endif
493493

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

534534
/**
535535
* Default Max Feed Rate (mm/s)
536536
* Override with M203
537537
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
538538
*/
539-
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
539+
#define DEFAULT_MAX_FEEDRATE { 300, 300, 20, 50 }
540540

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

750750
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
751751
#define INVERT_X_DIR false
752-
#define INVERT_Y_DIR true
753-
#define INVERT_Z_DIR false
752+
#define INVERT_Y_DIR false
753+
#define INVERT_Z_DIR true
754754

755755
// Enable this option for Toshiba stepper drivers
756756
//#define CONFIG_STEPPERS_TOSHIBA
757757

758758
// @section extruder
759759

760760
// For direct drive extruder v9 set to true, for geared extruder set to false.
761-
#define INVERT_E0_DIR false
761+
#define INVERT_E0_DIR true
762762
#define INVERT_E1_DIR false
763763
#define INVERT_E2_DIR false
764764
#define INVERT_E3_DIR false
@@ -789,7 +789,7 @@
789789
#define Z_MIN_POS 0
790790
#define X_MAX_POS X_BED_SIZE
791791
#define Y_MAX_POS Y_BED_SIZE
792-
#define Z_MAX_POS 200
792+
#define Z_MAX_POS 150
793793

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

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

11471147
// Preheat Constants
1148-
#define PREHEAT_1_TEMP_HOTEND 180
1149-
#define PREHEAT_1_TEMP_BED 70
1148+
#define PREHEAT_1_TEMP_HOTEND 220
1149+
#define PREHEAT_1_TEMP_BED 60
11501150
#define PREHEAT_1_FAN_SPEED 0 // Value from 0 to 255
11511151

1152-
#define PREHEAT_2_TEMP_HOTEND 240
1153-
#define PREHEAT_2_TEMP_BED 110
1152+
#define PREHEAT_2_TEMP_HOTEND 250
1153+
#define PREHEAT_2_TEMP_BED 80
11541154
#define PREHEAT_2_FAN_SPEED 0 // Value from 0 to 255
11551155

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

13341334
/**
13351335
* SD CARD: SPI SPEED
@@ -1346,7 +1346,7 @@
13461346
*
13471347
* Use CRC checks and retries on the SD communication.
13481348
*/
1349-
//#define SD_CHECK_AND_RETRY
1349+
#define SD_CHECK_AND_RETRY
13501350

13511351
//
13521352
// ENCODER SETTINGS
@@ -1377,7 +1377,7 @@
13771377
//
13781378
// Set this option if CLOCKWISE causes values to DECREASE
13791379
//
1380-
//#define REVERSE_ENCODER_DIRECTION
1380+
#define REVERSE_ENCODER_DIRECTION
13811381

13821382
//
13831383
// This option reverses the encoder direction for navigating LCD menus.
@@ -1532,7 +1532,7 @@
15321532
//
15331533
// LCD for Melzi Card with Graphical LCD
15341534
//
1535-
//#define LCD_FOR_MELZI
1535+
#define LCD_FOR_MELZI
15361536

15371537
//
15381538
// CONTROLLER TYPE: I2C

README.md

Lines changed: 17 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,17 @@
1-
# Marlin 3D Printer Firmware
2-
<img align="right" src="../../raw/1.1.x/buildroot/share/pixmaps/logo/marlin-250.png" />
3-
4-
## Marlin 1.1
5-
6-
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.
7-
8-
For complete Marlin documentation click over to the [Marlin Homepage <marlinfw.org>](http://marlinfw.org/), 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](https://github.com/MarlinFirmware/Marlin/releases) page.
9-
10-
## Stable Release Branch
11-
12-
This Release branch contains the latest tagged version of Marlin (currently 1.1.8 – December 2017).
13-
14-
Previous releases of Marlin include [1.0.2-2](https://github.com/MarlinFirmware/Marlin/tree/1.0.2-2) (December 2016) and [1.0.1](https://github.com/MarlinFirmware/Marlin/tree/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.
15-
16-
## Contributing to Marlin
17-
18-
Click on the [Issue Queue](https://github.com/MarlinFirmware/Marlin/issues) and [Pull Requests](https://github.com/MarlinFirmware/Marlin/pulls) links above at any time to see what we're currently working on.
19-
20-
To submit patches and new features for Marlin 1.1 check out the [bugfix-1.1.x](https://github.com/MarlinFirmware/Marlin/tree/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.
21-
22-
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.
23-
24-
## Current Status: In Development
25-
26-
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.
27-
28-
## Future Development
29-
30-
Marlin 1.1 is the last "flat" version of Marlin!
31-
32-
Arduino IDE now has support for folder hierarchies, so Marlin 1.2 will have a [hierarchical file structure](https://github.com/MarlinFirmware/Marlin/tree/breakup-marlin-idea). 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](https://github.com/MarlinFirmware/Marlin/tree/32-Bit-RCBugFix-new) and the Hardware Access Layer (HAL).
33-
34-
[![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224)
35-
[![Travis Build Status](https://travis-ci.org/MarlinFirmware/Marlin.svg)](https://travis-ci.org/MarlinFirmware/Marlin)
36-
37-
## Marlin Resources
38-
39-
- [Marlin Home Page](http://marlinfw.org/) - The Marlin Documentation Project. Join us!
40-
- [RepRap.org Wiki Page](http://reprap.org/wiki/Marlin) - An overview of Marlin and its role in RepRap.
41-
- [Marlin Firmware Forum](http://forums.reprap.org/list.php?415) - Find help with configuration, get up and running.
42-
- [@MarlinFirmware](https://twitter.com/MarlinFirmware) on Twitter - Follow for news, release alerts, and tips & tricks. (Maintained by [@thinkyhead](https://github.com/thinkyhead).)
43-
44-
## Credits
45-
46-
The current Marlin dev team consists of:
47-
- Roxanne Neufeld [[@Roxy-3D](https://github.com/Roxy-3D)]
48-
- Scott Lahteine [[@thinkyhead](https://github.com/thinkyhead)]
49-
- Bob Kuhn [[@Bob-the-Kuhn](https://github.com/Bob-the-Kuhn)]
50-
51-
Notable contributors include:
52-
- Alberto Cotronei [[@MagoKimbra](https://github.com/MagoKimbra)]
53-
- Andreas Hardtung [[@AnHardt](https://github.com/AnHardt)]
54-
- Bernhard Kubicek [[@bkubicek](https://github.com/bkubicek)]
55-
- Bob Cousins [[@bobc](https://github.com/bobc)]
56-
- Chris Palmer [[@nophead](https://github.com/nophead)]
57-
- David Braam [[@daid](https://github.com/daid)]
58-
- Edward Patel [[@epatel](https://github.com/epatel)]
59-
- Erik van der Zalm [[@ErikZalm](https://github.com/ErikZalm)]
60-
- Ernesto Martinez [[@emartinez167](https://github.com/emartinez167)]
61-
- F. Malpartida [[@fmalpartida](https://github.com/fmalpartida)]
62-
- Jochen Groppe [[@CONSULitAS](https://github.com/CONSULitAS)]
63-
- João Brazio [[@jbrazio](https://github.com/jbrazio)]
64-
- Kai [[@Kaibob2](https://github.com/Kaibob2)]
65-
- Luc Van Daele[[@LVD-AC](https://github.com/LVD-AC)]
66-
- Nico Tonnhofer [[@Wurstnase](https://github.com/Wurstnase)]
67-
- Petr Zahradnik [[@clexpert](https://github.com/clexpert)]
68-
- Thomas Moore [[@tcm0116](https://github.com/tcm0116)]
69-
- [[@alexxy](https://github.com/alexxy)]
70-
- [[@android444](https://github.com/android444)]
71-
- [[@benlye](https://github.com/benlye)]
72-
- [[@bgort](https://github.com/bgort)]
73-
- [[@ejtagle](https://github.com/ejtagle)]
74-
- [[@Grogyan](https://github.com/Grogyan)]
75-
- [[@marcio-ao](https://github.com/marcio-ao)]
76-
- [[@maverikou](https://github.com/maverikou)]
77-
- [[@oysteinkrog](https://github.com/oysteinkrog)]
78-
- [[@p3p](https://github.com/p3p)]
79-
- [[@paclema](https://github.com/paclema)]
80-
- [[@paulusjacobus](https://github.com/paulusjacobus)]
81-
- [[@psavva](https://github.com/psavva)]
82-
- [[@Tannoo](https://github.com/Tannoo)]
83-
- [[@teemuatlut](https://github.com/teemuatlut)]
84-
- ...and many others
85-
86-
## License
87-
88-
Marlin is published under the [GPL license](https://github.com/COPYING.md) 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.
89-
90-
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.
91-
92-
[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=ErikZalm&url=https://github.com/MarlinFirmware/Marlin&title=Marlin&language=&tags=github&category=software)
1+
-#Marlin 3D Printer Firmware for Monoprice Maker Select V2 (Wanhao Duplicator i3)
2+
-
3+
-Please use the 1.1.x branch as that is the only branch I'm modifying in this fork.
4+
-
5+
-#Changes in this Marlin fork
6+
-Branch 1.1.x has been reset to tag 1.1.8 and configuration.h has been modified from a configuration.h found here: https://reprap.org/forum/read.php?415,809741
7+
-
8+
-#Special Instructions
9+
-
10+
-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
11+
-
12+
-#Warnings
13+
-
14+
-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.
15+
-
16+
-#Additional Info
17+
-Before installing this firmware I burned a bootloader on my melzi board using an Arduino Uno clone (found here: http://a.co/d/iCYILT7) and the instructions from a Youtube video here: https://youtu.be/ejpSniiJejI 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 commit comments

Comments
 (0)