Merge branch 'Development' of https://github.com/Wurstnase/Marlin into Development
commit
81a6e59a82
@ -0,0 +1,105 @@
|
|||||||
|
===============================================
|
||||||
|
Instructions for configuring Bed Auto Leveling
|
||||||
|
===============================================
|
||||||
|
There are two options for this feature. You may choose to use a servo mounted on the X carriage or you may use a sled that mounts on the X axis and can be docked when not in use.
|
||||||
|
See the section for each option below for specifics about installation and configuration. Also included are instructions that apply to both options.
|
||||||
|
|
||||||
|
Instructions for Both Options
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Uncomment the "ENABLE_AUTO_BED_LEVELING" define (commented by default)
|
||||||
|
|
||||||
|
The following options define the probing positions. These are good starting values.
|
||||||
|
I recommend to keep a better clearance from borders in the first run and then make the probes as close as possible to borders:
|
||||||
|
|
||||||
|
* \#define LEFT_PROBE_BED_POSITION 30
|
||||||
|
* \#define RIGHT_PROBE_BED_POSITION 140
|
||||||
|
* \#define BACK_PROBE_BED_POSITION 140
|
||||||
|
* \#define FRONT_PROBE_BED_POSITION 30
|
||||||
|
|
||||||
|
A few more options:
|
||||||
|
|
||||||
|
* \#define XY_TRAVEL_SPEED 6000
|
||||||
|
|
||||||
|
X and Y axis travel speed between probes, in mm/min.
|
||||||
|
Bear in mind that really fast moves may render step skipping. 6000 mm/min (100mm/s) is a good value.
|
||||||
|
|
||||||
|
* \#define Z_RAISE_BEFORE_PROBING 10
|
||||||
|
* \#define Z_RAISE_BETWEEN_PROBINGS 10
|
||||||
|
|
||||||
|
The Z axis is lifted when traveling to the first probe point by Z_RAISE_BEFORE_PROBING value
|
||||||
|
and then lifted when traveling from first to second and second to third point by Z_RAISE_BETWEEN_PROBINGS.
|
||||||
|
All values are in mm as usual.
|
||||||
|
|
||||||
|
Servo Option Notes
|
||||||
|
------------------
|
||||||
|
You will probably need a swivel Z-MIN endstop in the extruder. A rc servo do a great job.
|
||||||
|
Check the system working here: http://www.youtube.com/watch?v=3IKMeOYz-1Q (Enable English subtitles)
|
||||||
|
Teasing ;-) video: http://www.youtube.com/watch?v=x8eqSQNAyro
|
||||||
|
|
||||||
|
In order to get the servo working, you need to enable:
|
||||||
|
|
||||||
|
* \#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
|
||||||
|
|
||||||
|
* \#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
|
||||||
|
|
||||||
|
* \#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 165,60} // X,Y,Z Axis Extend and Retract angles
|
||||||
|
|
||||||
|
The first define tells firmware how many servos you have.
|
||||||
|
The second tells what axis this servo will be attached to. In the example above, we have a servo in Z axis.
|
||||||
|
The third one tells the angle in 2 situations: Probing (165º) and resting (60º). Check this with command M280 P0 S{angle} (example: M280 P0 S60 moves the servo to 60º)
|
||||||
|
|
||||||
|
Next you need to define the Z endstop (probe) offset from hotend.
|
||||||
|
My preferred method:
|
||||||
|
|
||||||
|
* a) Make a small mark in the bed with a marker/felt-tip pen.
|
||||||
|
* b) Place the hotend tip as *exactly* as possible on the mark, touching the bed. Raise the hotend 0.1mm (a regular paper thickness) and zero all axis (G92 X0 Y0 Z0);
|
||||||
|
* d) Raise the hotend 10mm (or more) for probe clearance, lower the Z probe (Z-Endstop) with M401 and place it just on that mark by moving X, Y and Z;
|
||||||
|
* e) Lower the Z in 0.1mm steps, with the probe always touching the mark (it may be necessary to adjust X and Y as well) until you hear the "click" meaning the mechanical endstop was trigged. You can confirm with M119;
|
||||||
|
* f) Now you have the probe in the same place as your hotend tip was before. Perform a M114 and write down the values, for example: X:24.3 Y:-31.4 Z:5.1;
|
||||||
|
* g) You can raise the z probe with M402 command;
|
||||||
|
* h) Fill the defines bellow multiplying the values by "-1" (just change the signal)
|
||||||
|
|
||||||
|
* X and Y-Offset must be Integers!
|
||||||
|
* \#define X_PROBE_OFFSET_FROM_EXTRUDER -24
|
||||||
|
* \#define Y_PROBE_OFFSET_FROM_EXTRUDER 31
|
||||||
|
* \#define Z_PROBE_OFFSET_FROM_EXTRUDER -5.1
|
||||||
|
|
||||||
|
Sled Option Notes
|
||||||
|
-----------------
|
||||||
|
The sled option uses an electromagnet to attach and detach to/from the X carriage. See http://www.thingiverse.com/thing:396692 for more details on how to print and install this feature. It uses the same connections as the servo option.
|
||||||
|
|
||||||
|
To use the sled option, you must define two additional things in Configuration.h:
|
||||||
|
|
||||||
|
* \#define Z_PROBE_SLED
|
||||||
|
* \#define SLED_DOCKING_OFFSET 5
|
||||||
|
|
||||||
|
Uncomment the Z_PROBE_SLED to define to enable the sled (commented out by default).
|
||||||
|
|
||||||
|
Uncomment the SLED_DOCKING_OFFSET to set the extra distance the X axis must travel to dock the sled. This value can be found by moving the X axis to its maximum position then measure the distance to the right X end and subtract the width of the sled (23mm if you printed the sled from Thingiverse).
|
||||||
|
|
||||||
|
Next you need to define the Z endstop (probe) offset from hotend.
|
||||||
|
My preferred method:
|
||||||
|
|
||||||
|
* a) Home the X and Y axes.
|
||||||
|
* b) Move the X axis to about the center of the print bed. Make a mark on the print bed.
|
||||||
|
* c) Move the Y axis to the maximum position. Make another mark.
|
||||||
|
* d) Home the X axis and use a straight edge to make a line between the two points.
|
||||||
|
* e) Repeat (b)-(d) reversing the X and Y. When you are done you will have two lines on the print bed. We will use these to measure the offset for the Z probe endstop.
|
||||||
|
* f) Move the nozzle so that it is positioned on the center point of the two lines. You can use fine movement of 0.1mm to get it as close as possible. Note the position of X and Y.
|
||||||
|
* g) Zero the Z axis with the G92 Z0 command.
|
||||||
|
* h) Raise the Z axis about 20mmm.
|
||||||
|
* i) Use the G32 command to retrieve the sled.
|
||||||
|
* j) Now more the X and Y axis to the position recorded in (f).
|
||||||
|
* k) Lower the Z axis in 0.1mm steps until you hear the "click" meaning the mechanical endstop was trigged. You can confirm with the M119 command. Note the position of the Z axis.
|
||||||
|
* l) Make a mark on the print bed where the endstop lever has touched the print bed. Raise the Z-axis about 30mm to give yourself some room.
|
||||||
|
* m) Now measure the distance from the center point to the endstop impact site along the X and Y axis using the lines drawn previously.
|
||||||
|
* n) Fill in the values below. If the endstop mark is in front of the line running left-to-right, use positive values. If it is behind, use negative values. For the Z axis use the value from (k) and subtract 0.1mm.
|
||||||
|
|
||||||
|
For example, suppose you measured the endstop position and it was 20mm to the right of the line running front-to-back, 10mm toward the front of the line running left-to-right, and the value from (k) was 2.85. The values for the defines would be:
|
||||||
|
|
||||||
|
* \#define X_PROBE_OFFSET_FROM_EXTRUDER 20
|
||||||
|
* \#define Y_PROBE_OFFSET_FROM_EXTRUDER 10
|
||||||
|
* \#define Z_PROBE_OFFSET_FROM_EXTRUDER 2.75
|
||||||
|
|
||||||
|
That's it.. enjoy never having to calibrate your Z endstop neither leveling your bed by hand anymore ;-)
|
@ -0,0 +1,16 @@
|
|||||||
|
# Configuring and compilation
|
||||||
|
|
||||||
|
1. Install the latest non-beta arduino software IDE/toolset: http://www.arduino.cc/en/Main/Software
|
||||||
|
2. Download the Marlin firmware
|
||||||
|
- [Latest developement version](https://github.com/MarlinFirmware/Marlin/tree/Development)
|
||||||
|
- [Stable version](https://github.com/MarlinFirmware/Marlin/tree/Development)
|
||||||
|
3. In both cases use the "Download Zip" button on the right.
|
||||||
|
4. Some boards require special files and/or libraries from the ArduinoAddons directory. Take a look at the dedicated [README](/ArduinoAddons/README.md) for details.
|
||||||
|
5. Start the arduino IDE.
|
||||||
|
6. Select Tools -> Board -> Arduino Mega 2560 or your microcontroller
|
||||||
|
7. Select the correct serial port in Tools ->Serial Port
|
||||||
|
8. Open Marlin.pde or .ino
|
||||||
|
9. Click the Verify/Compile button
|
||||||
|
10. Click the Upload button. If all goes well the firmware is uploading
|
||||||
|
|
||||||
|
That's ok. Enjoy Silky Smooth Printing.
|
@ -0,0 +1,10 @@
|
|||||||
|
Developer Notes
|
||||||
|
===================
|
||||||
|
|
||||||
|
- There are now 2 branches: The __development__ branch is where new features and code changes will be sorted out. This branch may have untested code in it, so please let us know if you find any bugs. When the __development__ branch has reached a state where it is stable, it will be moved to the __stable__ branch.
|
||||||
|
|
||||||
|
- We are doing a kind of cleanup in the list of Issues and Pull Requests, the aim is to get to a state where we can certify the code as stable. To get the code tested as widely as possible we require several volunteers with a wide variety of hardware configurations willing to test the firmware and help us to certify it as stable. If you want to help out testing go to this issue and let us know: https://github.com/MarlinFirmware/Marlin/issues/1209
|
||||||
|
|
||||||
|
- Before you submit any pull request, we ask that you _PLEASE_ test your code before submission, even if the change seems innocuous. When creating the pull request, please include the hardware you used for testing and a short synopsis of your testing procedure. Untested pull requests are less likely to be merged, as even slight changes create the risk of breaking the main branch.
|
||||||
|
|
||||||
|
- If you have a fix don't open an issue telling about it, but test the code and submit a pull request. Use the __development__ branch when you submit.
|
@ -0,0 +1,112 @@
|
|||||||
|
# Features
|
||||||
|
|
||||||
|
* Interrupt based movement with real linear acceleration
|
||||||
|
* High steprate
|
||||||
|
* Look ahead (Keep the speed high when possible. High cornering speed)
|
||||||
|
* Interrupt based temperature protection
|
||||||
|
* Preliminary support for [Matthew Roberts Advance Algorithm](http://reprap.org/pipermail/reprap-dev/2011-May/003323.html)
|
||||||
|
* Full endstop support
|
||||||
|
* SD Card support
|
||||||
|
* SD Card folders (works in pronterface)
|
||||||
|
* SD Card autostart support
|
||||||
|
* LCD support (ideally 20x4)
|
||||||
|
* LCD menu system for autonomous SD card printing, controlled by an click-encoder.
|
||||||
|
* EEPROM storage of e.g. max-velocity, max-acceleration, and similar variables
|
||||||
|
* many small but handy things originating from bkubicek's fork.
|
||||||
|
* Arc support
|
||||||
|
* Temperature oversampling
|
||||||
|
* Dynamic Temperature setpointing aka "AutoTemp"
|
||||||
|
* Support for [QTMarlin](https://github.com/bkubicek/QTMarlin), a very beta GUI for PID-tuning and velocity-acceleration testing.
|
||||||
|
* Endstop trigger reporting to the host software.
|
||||||
|
* Updated sdcardlib
|
||||||
|
* Heater power reporting. Useful for PID monitoring.
|
||||||
|
* PID tuning
|
||||||
|
* [CoreXY kinematics](www.corexy.com/theory.html)
|
||||||
|
* Delta kinematics
|
||||||
|
* SCARA kinematics
|
||||||
|
* Dual X-carriage support for multiple extruder systems
|
||||||
|
* Configurable serial port to support connection of wireless adaptors.
|
||||||
|
* Automatic operation of extruder/cold-end cooling fans based on nozzle temperature
|
||||||
|
* RC Servo Support, specify angle or duration for continuous rotation servos.
|
||||||
|
* Bed Auto Leveling.
|
||||||
|
* Support for a filament diameter sensor, which adjusts extrusion volume
|
||||||
|
|
||||||
|
The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments.
|
||||||
|
|
||||||
|
## Differences and additions to the already good Sprinter firmware
|
||||||
|
|
||||||
|
### Look-ahead
|
||||||
|
|
||||||
|
Marlin has look-ahead. While sprinter has to break and re-accelerate at each corner,
|
||||||
|
lookahead will only decelerate and accelerate to a velocity,
|
||||||
|
so that the change in vectorial velocity magnitude is less than the xy_jerk_velocity.
|
||||||
|
This is only possible, if some future moves are already processed, hence the name.
|
||||||
|
It leads to less over-deposition at corners, especially at flat angles.
|
||||||
|
|
||||||
|
### Arc support
|
||||||
|
|
||||||
|
Slic3r can find curves that, although broken into segments, were ment to describe an arc.
|
||||||
|
Marlin is able to print those arcs. The advantage is the firmware can choose the resolution,
|
||||||
|
and can perform the arc with nearly constant velocity, resulting in a nice finish.
|
||||||
|
Also, less serial communication is needed.
|
||||||
|
|
||||||
|
### Temperature Oversampling
|
||||||
|
|
||||||
|
To reduce noise and make the PID-differential term more useful, 16 ADC conversion results are averaged.
|
||||||
|
|
||||||
|
### AutoTemp
|
||||||
|
|
||||||
|
If your gcode contains a wide spread of extruder velocities, or you realtime change the building speed, the temperature should be changed accordingly.
|
||||||
|
Usually, higher speed requires higher temperature.
|
||||||
|
This can now be performed by the AutoTemp function
|
||||||
|
By calling M109 S<mintemp> B<maxtemp> F<factor> you enter the autotemp mode.
|
||||||
|
|
||||||
|
You can leave it by calling M109 without any F.
|
||||||
|
If active, the maximal extruder stepper rate of all buffered moves will be calculated, and named "maxerate" [steps/sec].
|
||||||
|
The wanted temperature then will be set to t=tempmin+factor*maxerate, while being limited between tempmin and tempmax.
|
||||||
|
If the target temperature is set manually or by gcode to a value less then tempmin, it will be kept without change.
|
||||||
|
Ideally, your gcode can be completely free of temperature controls, apart from a M109 S T F in the start.gcode, and a M109 S0 in the end.gcode.
|
||||||
|
|
||||||
|
### EEPROM
|
||||||
|
|
||||||
|
If you know your PID values, the acceleration and max-velocities of your unique machine, you can set them, and finally store them in the EEPROM.
|
||||||
|
After each reboot, it will magically load them from EEPROM, independent what your Configuration.h says.
|
||||||
|
|
||||||
|
### LCD Menu
|
||||||
|
|
||||||
|
If your hardware supports it, you can build yourself a LCD-CardReader+Click+encoder combination. It will enable you to realtime tune temperatures,
|
||||||
|
accelerations, velocities, flow rates, select and print files from the SD card, preheat, disable the steppers, and do other fancy stuff.
|
||||||
|
One working hardware is documented here: http://www.thingiverse.com/thing:12663
|
||||||
|
Also, with just a 20x4 or 16x2 display, useful data is shown.
|
||||||
|
|
||||||
|
### SD card directories
|
||||||
|
|
||||||
|
If you have an SD card reader attached to your controller, also folders work now. Listing the files in pronterface will show "/path/subpath/file.g".
|
||||||
|
You can write to file in a subfolder by specifying a similar text using small letters in the path.
|
||||||
|
Also, backup copies of various operating systems are hidden, as well as files not ending with ".g".
|
||||||
|
|
||||||
|
### Autostart
|
||||||
|
|
||||||
|
If you place a file auto[0-9].g into the root of the sd card, it will be automatically executed if you boot the printer. The same file will be executed by selecting "Autostart" from the menu.
|
||||||
|
First *0 will be performed, than *1 and so on. That way, you can heat up or even print automatically without user interaction.
|
||||||
|
|
||||||
|
### Endstop trigger reporting
|
||||||
|
|
||||||
|
If an endstop is hit while moving towards the endstop, the location at which the firmware thinks that the endstop was triggered is outputed on the serial port.
|
||||||
|
This is useful, because the user gets a warning message.
|
||||||
|
However, also tools like QTMarlin can use this for finding acceptable combinations of velocity+acceleration.
|
||||||
|
|
||||||
|
### Coding paradigm
|
||||||
|
|
||||||
|
Not relevant from a user side, but Marlin was split into thematic junks, and has tried to partially enforced private variables.
|
||||||
|
This is intended to make it clearer, what interacts which what, and leads to a higher level of modularization.
|
||||||
|
We think that this is a useful prestep for porting this firmware to e.g. an ARM platform in the future.
|
||||||
|
A lot of RAM (with enabled LCD ~2200 bytes) was saved by storing char []="some message" in Program memory.
|
||||||
|
In the serial communication, a #define based level of abstraction was enforced, so that it is clear that
|
||||||
|
some transfer is information (usually beginning with "echo:"), an error "error:", or just normal protocol,
|
||||||
|
necessary for backwards compatibility.
|
||||||
|
|
||||||
|
### Interrupt based temperature measurements
|
||||||
|
|
||||||
|
An interrupt is used to manage ADC conversions, and enforce checking for critical temperatures.
|
||||||
|
This leads to less blocking in the heater management routine.
|
@ -0,0 +1,9 @@
|
|||||||
|
Filament Sensor
|
||||||
|
---------------
|
||||||
|
Supports the use of a real time filament diameter sensor that measures the diameter of the filament going into the extruder and then adjusts the extrusion rate to compensate for filament that does not match what is defined in the g-code. The diameter can also be displayed on the LCD screen. This potentially eliminates the need to measure filament diameter when changing spools of filament. Gcode becomes independent of the filament diameter. Can also compensate for changing diameter.
|
||||||
|
|
||||||
|
For examples of these sensors, see: http://www.thingiverse.com/thing:454584, https://www.youmagine.com/designs/filament-diameter-sensor, http://diy3dprinting.blogspot.com/2014/01/diy-filament-diameter-sensor.html. Any sensor which produces a voltage equivalent to the diameter in mm (i.e. 1v = 1mm) can be used. This provides a very simple interface and may encourage more innovation in this area.
|
||||||
|
|
||||||
|
4 new Mcodes are defined to set relevant parameters: M404, M405, M406, M407 - see above.
|
||||||
|
|
||||||
|
Implements a delay buffer to handle the transit delay between where the filament is measured and when it gets to the extruder.
|
@ -0,0 +1,103 @@
|
|||||||
|
# Implemented G Codes
|
||||||
|
|
||||||
|
## G Codes
|
||||||
|
|
||||||
|
* G0 -> G1
|
||||||
|
* G1 - Coordinated Movement X Y Z E
|
||||||
|
* G2 - CW ARC
|
||||||
|
* G3 - CCW ARC
|
||||||
|
* G4 - Dwell S[seconds] or P[milliseconds]
|
||||||
|
* G10 - retract filament according to settings of M207
|
||||||
|
* G11 - retract recover filament according to settings of M208
|
||||||
|
* G28 - Home all Axis
|
||||||
|
* G29 - Detailed Z-Probe, probes the bed at 3 points. You must be at the home position for this to work correctly.
|
||||||
|
* G30 - Single Z Probe, probes bed at current XY location.
|
||||||
|
* G31 - Dock Z Probe sled (if enabled)
|
||||||
|
* G32 - Undock Z Probe sled (if enabled)
|
||||||
|
* G90 - Use Absolute Coordinates
|
||||||
|
* G91 - Use Relative Coordinates
|
||||||
|
* G92 - Set current position to cordinates given
|
||||||
|
|
||||||
|
## M Codes
|
||||||
|
* M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
|
||||||
|
* M1 - Same as M0
|
||||||
|
* M17 - Enable/Power all stepper motors
|
||||||
|
* M18 - Disable all stepper motors; same as M84
|
||||||
|
* M20 - List SD card
|
||||||
|
* M21 - Init SD card
|
||||||
|
* M22 - Release SD card
|
||||||
|
* M23 - Select SD file (M23 filename.g)
|
||||||
|
* M24 - Start/resume SD print
|
||||||
|
* M25 - Pause SD print
|
||||||
|
* M26 - Set SD position in bytes (M26 S12345)
|
||||||
|
* M27 - Report SD print status
|
||||||
|
* M28 - Start SD write (M28 filename.g)
|
||||||
|
* M29 - Stop SD write
|
||||||
|
* M30 - Delete file from SD (M30 filename.g)
|
||||||
|
* M31 - Output time since last M109 or SD card start to serial
|
||||||
|
* M32 - Select file and start SD print (Can be used when printing from SD card)
|
||||||
|
* M42 - Change pin status via gcode Use M42 Px Sy to set pin x to value y, when omitting Px the onboard led will be used.
|
||||||
|
* M80 - Turn on Power Supply
|
||||||
|
* M81 - Turn off Power Supply
|
||||||
|
* M82 - Set E codes absolute (default)
|
||||||
|
* M83 - Set E codes relative while in Absolute Coordinates (G90) mode
|
||||||
|
* M84 - Disable steppers until next move, or use S[seconds] to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout.
|
||||||
|
* M85 - Set inactivity shutdown timer with parameter S[seconds]. To disable set zero (default)
|
||||||
|
* M92 - Set axis_steps_per_unit - same syntax as G92
|
||||||
|
* M104 - Set extruder target temp
|
||||||
|
* M105 - Read current temp
|
||||||
|
* M106 - Fan on
|
||||||
|
* M107 - Fan off
|
||||||
|
* M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating
|
||||||
|
* Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling
|
||||||
|
* M112 - Emergency stop
|
||||||
|
* M114 - Output current position to serial port
|
||||||
|
* M115 - Capabilities string
|
||||||
|
* M117 - display message
|
||||||
|
* M119 - Output Endstop status to serial port
|
||||||
|
* M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
|
||||||
|
* M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
|
||||||
|
* M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
||||||
|
* M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
||||||
|
* M140 - Set bed target temp
|
||||||
|
* M190 - Sxxx Wait for bed current temp to reach target temp. Waits only when heating
|
||||||
|
* Rxxx Wait for bed current temp to reach target temp. Waits when heating and cooling
|
||||||
|
* M200 - D[millimeters]- set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters).
|
||||||
|
* M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
|
||||||
|
* M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!
|
||||||
|
* M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
|
||||||
|
* M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
|
||||||
|
* M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
|
||||||
|
* M206 - set additional homing offset
|
||||||
|
* M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting
|
||||||
|
* M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/min]
|
||||||
|
* M209 - S[1=true/0=false] enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
|
||||||
|
* M218 - set hotend offset (in mm): T[extruder_number] X[offset_on_X] Y[offset_on_Y]
|
||||||
|
* M220 - S[factor in percent] - set speed factor override percentage
|
||||||
|
* M221 - S[factor in percent] - set extrude factor override percentage
|
||||||
|
* M240 - Trigger a camera to take a photograph
|
||||||
|
* M280 - Position an RC Servo P[index] S[angle/microseconds], ommit S to report back current angle
|
||||||
|
* M300 - Play beep sound S[frequency Hz] P[duration ms]
|
||||||
|
* M301 - Set PID parameters P I and D
|
||||||
|
* M302 - Allow cold extrudes
|
||||||
|
* M303 - PID relay autotune S[temperature] sets the target temperature. (default target temperature = 150C)
|
||||||
|
* M304 - Set bed PID parameters P I and D
|
||||||
|
* M350 - Set microstepping mode.
|
||||||
|
* M351 - Toggle MS1 MS2 pins directly.
|
||||||
|
* M400 - Finish all moves
|
||||||
|
* M401 - Lower z-probe if present
|
||||||
|
* M402 - Raise z-probe if present
|
||||||
|
* M404 - N[dia in mm] Enter the nominal filament width (3mm, 1.75mm) or will display nominal filament width without parameters
|
||||||
|
* M405 - Turn on Filament Sensor extrusion control. Optional D[delay in cm] to set delay in centimeters between sensor and extruder
|
||||||
|
* M406 - Turn off Filament Sensor extrusion control
|
||||||
|
* M407 - Displays measured filament diameter
|
||||||
|
* M500 - stores paramters in EEPROM
|
||||||
|
* 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.
|
||||||
|
* M503 - print the current settings (from memory not from EEPROM)
|
||||||
|
* M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
|
||||||
|
* M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
|
||||||
|
* M907 - Set digital trimpot motor current using axis codes.
|
||||||
|
* M908 - Control digital trimpot directly.
|
||||||
|
* M928 - Start SD logging (M928 filename.g) - ended by M29
|
||||||
|
* M999 - Restart after being stopped by error
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 392 B |
After Width: | Height: | Size: 249 B |
@ -0,0 +1,353 @@
|
|||||||
|
%!PS-Adobe-3.0
|
||||||
|
%%Creator:Adobe Illustrator (TM) 8.000000 Exported from CorelDRAW X6
|
||||||
|
%%Title:marlin logoscript.ai
|
||||||
|
%%CreationDate:
|
||||||
|
%%Canvassize:16383
|
||||||
|
%%BoundingBox:-62 3484 337 3617
|
||||||
|
%%DocumentProcessColors: Cyan Magenta Yellow Black
|
||||||
|
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%+ procset Adobe_typography_AI5 1.0 1
|
||||||
|
%%+ procset Adobe_ColorImage_AI6 1.1 0
|
||||||
|
%%+ procset Adobe_Illustrator_AI5 1.2 0
|
||||||
|
%%+ procset Adobe_cshow 2.0 8
|
||||||
|
%%+ procset Adobe_shading_AI8 1.0 0
|
||||||
|
%%DocumentSuppliedResources: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%+ procset Adobe_typography_AI5 1.0 1
|
||||||
|
%%+ procset Adobe_ColorImage_AI6 1.1 0
|
||||||
|
%%+ procset Adobe_Illustrator_AI5 1.2 0
|
||||||
|
%%+ procset Adobe_cshow 2.0 8
|
||||||
|
%%DocumentNeededResources: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%+ procset Adobe_typography_AI5 1.0 0
|
||||||
|
%%+ procset Adobe_ColorImage_AI6 1.1 0
|
||||||
|
%%+ procset Adobe_Illustrator_AI5 1.0 0
|
||||||
|
%%DocumentNeededResources: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%+ procset Adobe_Illustrator_AI5 1.0 0
|
||||||
|
%%+ procset Adobe_packedarray 2.0 0
|
||||||
|
%%+ procset Adobe_cmykcolor 1.1 0
|
||||||
|
%%+ procset Adobe_cshow 1.1 0
|
||||||
|
%%+ procset Adobe_customcolor 1.0 0
|
||||||
|
%%+ procset Adobe_typography_AI3 1.0 1
|
||||||
|
%%+ procset Adobe_pattern_AI3 1.0 1
|
||||||
|
%%+ procset Adobe_IllustratorA_AI3 1.0 1
|
||||||
|
%%DocumentNeededResources: procset Adobe_packedarray 2.0 0
|
||||||
|
%%+ procset Adobe_cmykcolor 1.1 0
|
||||||
|
%%+ procset Adobe_cshow 1.1 0
|
||||||
|
%%+ procset Adobe_customcolor 1.0 0
|
||||||
|
%%+ procset Adobe_typography_AI3 1.0 1
|
||||||
|
%%+ procset Adobe_pattern_AI3 1.0 1
|
||||||
|
%%+ procset Adobe_IllustratorA_AI3 1.0 1
|
||||||
|
%AI3_ColorUsage: Color
|
||||||
|
%AI3_Cropmarks:0 0 842 595
|
||||||
|
%AI3_TileBox:0 0 842 595
|
||||||
|
%AI3_TemplateBox:421 297 421 297
|
||||||
|
%AI3_DocumentPreview: None
|
||||||
|
%AI5_ArtSize: 842 595
|
||||||
|
%AI5_NumLayers: 1
|
||||||
|
%AI5_FileFormat 2.0
|
||||||
|
%AI9_ColorModel: 2
|
||||||
|
%AI12_CMSettings: 00.MS
|
||||||
|
%AI7_Thumbnail: 128 44 8
|
||||||
|
%%BeginData: 4580 Hex Bytes
|
||||||
|
%2B2A29FEFEFE000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000000000000000000000000000
|
||||||
|
%000000000000000000000000000000000000
|
||||||
|
%524C45FD0601FD7A00FD0401FD7C00FD0301FD7D000101FD0500FD6301FD
|
||||||
|
%160001FD0400FD6601FD150001FD0300FD6801FD1800FD6901FD1600FD6B
|
||||||
|
%01FD1500FD5001FD0600FD1601FD1400FD0C01FD0500FD0901FD0600FD30
|
||||||
|
%01FD0600FD0501FD0300FD0F01FD1300FD0A01FD0A00FD0401FD0A00FD2E
|
||||||
|
%01FD0600FD0401FD0500FD0F01FD1200FD0901FD0C000101FD0C00FD2D01
|
||||||
|
%FD0600FD0401FD0500FD1001FD1100FD0801FD1C00FD2C01FD0600FD0401
|
||||||
|
%FD0500FD1101FD1000FD0701FD1E00FD2B01FD0600FD0401FD0500FD1201
|
||||||
|
%FD0F00FD0601FD1F00FD2B01FD0600FD0401FD0500FD1301FD0E00FD0601
|
||||||
|
%FD0700FD0401FD0900FD0501FD0700FD2A01FD0600FD1D01FD0D00FD0601
|
||||||
|
%FD0600FD0601FD0700FD0701FD0600FD0701FD0700FD0F01FD0700FD0601
|
||||||
|
%FD0600FD0401FD0500FD0901FD0700FD0501FD0C00FD0501FD0600FD0801
|
||||||
|
%FD0600FD0701FD0600FD0601FD0A00FD0C01FD0A00FD0401FD0600FD0401
|
||||||
|
%FD0500FD0801FD0A00FD0401FD0B00FD0501FD0600FD0801FD0600FD0701
|
||||||
|
%FD0600FD0401FD0D00FD0901FD0D00FD0301FD0600FD0401FD0500FD0601
|
||||||
|
%FD0D00FD0401FD0A00FD0501FD0600FD0801FD0600FD0701FD0600FD0301
|
||||||
|
%FD0F00FD0801FD0E000101FD0600FD0401FD0500FD0601FD0E00FD0401FD
|
||||||
|
%0900FD0501FD0600FD0801FD0600FD0701FD06000101FD1100FD0601FD10
|
||||||
|
%0001FD0600FD0401FD0500FD0501FD1000FD0401FD0800FD0501FD0600FD
|
||||||
|
%0801FD0600FD0701FD06000101FD1100FD0501FD110001FD0600FD0401FD
|
||||||
|
%0500FD0401FD1100FD0501FD0700FD0501FD0600FD0801FD0600FD0701FD
|
||||||
|
%060001FD0700FD0501FD0700FD0401FD0700FD0401FD060001FD0600FD04
|
||||||
|
%01FD0500FD0401FD0700FD0401FD0600FD0601FD0600FD0501FD0600FD08
|
||||||
|
%01FD0600FD0701FD060001FD0600FD0701FD0600FD0401FD0600FD0601FD
|
||||||
|
%050001FD0600FD0401FD0500FD0401FD0600FD0601FD0600FD0501FD0600
|
||||||
|
%FD0501FD0600FD0801FD0600FD0701FD060001FD0600FD0801FD0500FD04
|
||||||
|
%01FD0600FD0601FD0C00FD0401FD0500FD0401FD0600FD0601FD0600FD05
|
||||||
|
%01FD0600FD0501FD0600FD0801FD0600FD0701FD060001FD0500FD0901FD
|
||||||
|
%0600FD0301FD0600FD0601FD0C00FD0401FD0500FD0401FD0600FD0601FD
|
||||||
|
%0600FD0501FD0600FD0501FD0600FD0801FD0600FD0701FD0C00FD0901FD
|
||||||
|
%0600FD0301FD0600FD0C01FD0600FD0401FD0500FD0401FD0600FD0601FD
|
||||||
|
%0600FD0501FD0600FD0501FD0600FD0801FD0600FD0701FD060001FD0500
|
||||||
|
%FD0901FD0600FD0301FD0600FD0C01FD0600FD0401FD0500FD0401FD0600
|
||||||
|
%FD0601FD0600FD0501FD0600FD0501FD0600FD0801FD0600FD0701FD0600
|
||||||
|
%01FD0600FD0801FD0600FD0301FD0600FD0C01FD0600FD0401FD0500FD04
|
||||||
|
%01FD0600FD0601FD0600FD0501FD0600FD0501FD0600FD0801FD0600FD07
|
||||||
|
%01FD060001FD0600FD0801FD0600FD0301FD0600FD0C01FD0600FD0401FD
|
||||||
|
%0500FD0401FD0600FD0601FD0600FD0501FD0600FD0501FD0600FD0801FD
|
||||||
|
%0600FD0701FD060001FD0800FD0601FD0600FD0301FD0600FD0C01FD0600
|
||||||
|
%FD0401FD0500FD0401FD0600FD0601FD0600FD0501FD0600FD0501FD0600
|
||||||
|
%FD0801FD0600FD0701FD06000101FD0C0001FD0F00FD0C01FD090001FD0F
|
||||||
|
%00FD0601FD0600FD0501FD0600FD0501FD0600FD0801FD0600FD0701FD06
|
||||||
|
%000101FD0C0001FD0F00FD0D01FD080001FD0F00FD0601FD0600FD0501FD
|
||||||
|
%0600FD0501FD0600FD0801FD0600FD0701FD0600FD0301FD0B0001FD0F00
|
||||||
|
%FD0D01FD080001FD0F00FD0601FD0600FD0501FD0600FD0501FD0600FD08
|
||||||
|
%01FD0600FD0701FD0600FD0401FD0A0001FD0F00FD0E01FD070001FD0F00
|
||||||
|
%FD0601FD0600FD0501FD0600FD0501FD0600FD0801FD0600FD0701FD0600
|
||||||
|
%FD0601FD080001FD0F00FD0F01FD060001FD0F00FD0601FD0600FD0501FD
|
||||||
|
%0600FD0601FD0500FD0801FD0600FD0701FD0600FD0801FD060001FD0F00
|
||||||
|
%FD1101FD040001FD0F00FD0601FD0500FD0601FD0700FD7801FD040001FD
|
||||||
|
%0300FD7801FD03000101FD0400FD7601FD0400FD0301FD0500FD7201FD05
|
||||||
|
%00FD0501FD7A00FD0701FD7800FD0A01FD7400FD0601
|
||||||
|
%%EndData
|
||||||
|
%%EndComments
|
||||||
|
%%BeginProlog
|
||||||
|
%%IncludeResource: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%IncludeResource: procset Adobe_typography_AI5 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_ColorImage_AI6 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_Illustrator_AI5 1.2 0
|
||||||
|
%%IncludeResource: procset Adobe_cshow 2.0 8
|
||||||
|
%%IncludeResource: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%IncludeResource: procset Adobe_typography_AI5 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_ColorImage_AI6 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_Illustrator_AI5 1.2 0
|
||||||
|
%%IncludeResource: procset Adobe_cshow 2.0 8
|
||||||
|
%%IncludeResource: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%IncludeResource: procset Adobe_typography_AI5 1.0 0
|
||||||
|
%%IncludeResource: procset Adobe_ColorImage_AI6 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_Illustrator_AI5 1.0 0
|
||||||
|
%%IncludeResource: procset Adobe_level2_AI5 1.2 0
|
||||||
|
%%IncludeResource: procset Adobe_Illustrator_AI5 1.0 0
|
||||||
|
%%IncludeResource: procset Adobe_packedarray 2.0 0
|
||||||
|
Adobe_packedarray /initialize get exec
|
||||||
|
%%IncludeResource: procset Adobe_cmykcolor 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_cshow 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_customcolor 1.0 0
|
||||||
|
%%IncludeResource: procset Adobe_typography_AI3 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_pattern_AI3 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_IllustratorA_AI3 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_packedarray 2.0 0
|
||||||
|
Adobe_packedarray /initialize get exec
|
||||||
|
%%IncludeResource: procset Adobe_cmykcolor 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_cshow 1.1 0
|
||||||
|
%%IncludeResource: procset Adobe_customcolor 1.0 0
|
||||||
|
%%IncludeResource: procset Adobe_typography_AI3 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_pattern_AI3 1.0 1
|
||||||
|
%%IncludeResource: procset Adobe_IllustratorA_AI3 1.0 1
|
||||||
|
%%EndProlog
|
||||||
|
%%BeginSetup
|
||||||
|
Adobe_level2_AI5 /initialize get exec
|
||||||
|
Adobe_cshow /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
|
||||||
|
Adobe_ColorImage_AI6 /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5 /initialize get exec
|
||||||
|
Adobe_level2_AI5 /initialize get exec
|
||||||
|
Adobe_cshow /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
|
||||||
|
Adobe_ColorImage_AI6 /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5 /initialize get exec
|
||||||
|
Adobe_level2_AI5 /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5_vars Adobe_Illustrator_AI5 Adobe_typography_AI5 /initialize get exec
|
||||||
|
Adobe_ColorImage_AI6 /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5 /initialize get exec
|
||||||
|
Adobe_cmykcolor /initialize get exec
|
||||||
|
Adobe_cshow /initialize get exec
|
||||||
|
Adobe_customcolor /initialize get exec
|
||||||
|
Adobe_typography_AI3 /initialize get exec
|
||||||
|
Adobe_pattern_AI3 /initialize get exec
|
||||||
|
Adobe_IllustratorA_AI3 /initialize get exec
|
||||||
|
Adobe_level2_AI5 /initialize get exec
|
||||||
|
Adobe_Illustrator_AI5 /initialize get exec
|
||||||
|
Adobe_cmykcolor /initialize get exec
|
||||||
|
Adobe_cshow /initialize get exec
|
||||||
|
Adobe_customcolor /initialize get exec
|
||||||
|
Adobe_typography_AI3 /initialize get exec
|
||||||
|
Adobe_pattern_AI3 /initialize get exec
|
||||||
|
Adobe_IllustratorA_AI3 /initialize get exec
|
||||||
|
%%EndSetup
|
||||||
|
%AI5_BeginLayer
|
||||||
|
1 1 1 1 0 0 -1 43 42 41 Lb
|
||||||
|
(Layer 1) Ln
|
||||||
|
*u
|
||||||
|
1 XR
|
||||||
|
0 O
|
||||||
|
0.0000 0.0000 0.0000 1.0000 k
|
||||||
|
256.4660 3540.8095 m
|
||||||
|
256.4660 3520.4596 L
|
||||||
|
242.7843 3520.4596 L
|
||||||
|
242.7843 3565.7580 L
|
||||||
|
227.6082 3565.7580 L
|
||||||
|
227.6082 3520.4596 L
|
||||||
|
227.6082 3506.5480 L
|
||||||
|
242.7843 3506.5480 L
|
||||||
|
256.4660 3506.5480 L
|
||||||
|
271.6421 3506.5480 L
|
||||||
|
271.6421 3520.4596 L
|
||||||
|
271.6421 3541.1542 l
|
||||||
|
271.6421 3547.8227 276.4709 3552.4216 283.1394 3552.4216 c
|
||||||
|
293.1418 3552.4216 294.2915 3544.4886 294.2915 3541.1542 c
|
||||||
|
294.2915 3506.5480 L
|
||||||
|
298.3190 3506.5480 302.3467 3506.5480 306.3742 3506.5480 C
|
||||||
|
307.8984 3506.5145 309.4679 3507.4029 309.4679 3510.6398 c
|
||||||
|
309.4679 3540.8095 l
|
||||||
|
309.4679 3556.3306 299.6952 3567.2528 283.1394 3567.2528 c
|
||||||
|
267.0435 3567.2528 256.4660 3555.8705 256.4660 3540.8095 c
|
||||||
|
256.4660 3540.8095 l
|
||||||
|
f
|
||||||
|
140.5471 3506.5480 m
|
||||||
|
128.2450 3506.5480 L
|
||||||
|
113.0689 3506.5480 L
|
||||||
|
113.0689 3521.2643 L
|
||||||
|
113.0689 3535.9807 l
|
||||||
|
113.0689 3545.0634 106.2856 3552.5364 97.8928 3552.5364 c
|
||||||
|
89.5000 3552.5364 82.7167 3545.2933 82.7167 3536.4404 c
|
||||||
|
82.7167 3527.7026 89.5000 3521.2643 98.2378 3521.2643 c
|
||||||
|
106.9756 3521.2643 L
|
||||||
|
106.9756 3506.5480 L
|
||||||
|
96.3981 3506.5480 l
|
||||||
|
79.8423 3506.5480 67.4254 3519.8847 67.4254 3536.4404 c
|
||||||
|
67.4254 3553.2264 79.9571 3567.2528 97.8928 3567.2528 c
|
||||||
|
115.7134 3567.2528 128.2450 3553.2264 128.2450 3535.9807 c
|
||||||
|
128.2450 3521.2643 L
|
||||||
|
140.5471 3521.2643 L
|
||||||
|
140.5471 3540.8095 l
|
||||||
|
140.5471 3555.8705 151.1246 3567.2528 167.2206 3567.2528 c
|
||||||
|
183.7763 3567.2528 193.5490 3556.3306 193.5490 3540.8095 c
|
||||||
|
193.5490 3538.1650 L
|
||||||
|
178.3726 3538.1650 L
|
||||||
|
178.3726 3541.1542 l
|
||||||
|
178.3726 3544.4886 177.2229 3552.4216 167.2206 3552.4216 c
|
||||||
|
160.5521 3552.4216 155.7232 3547.8227 155.7232 3541.1542 c
|
||||||
|
155.7232 3521.2643 L
|
||||||
|
155.7232 3506.5480 L
|
||||||
|
140.5471 3506.5480 L
|
||||||
|
140.5471 3506.5480 L
|
||||||
|
f
|
||||||
|
64.0239 3559.5496 m
|
||||||
|
64.0239 3575.5308 52.1819 3588.2926 35.0512 3588.2926 c
|
||||||
|
26.3134 3588.2926 18.6103 3584.2686 13.7815 3577.9450 C
|
||||||
|
8.8379 3584.2686 1.3646 3588.2926 -7.4880 3588.2926 c
|
||||||
|
-24.5038 3588.2926 -36.3458 3575.5305 -36.3458 3559.5496 c
|
||||||
|
-36.3458 3542.7838 -36.3458 3526.0183 -36.3458 3509.2525 C
|
||||||
|
-36.3458 3507.8134 -35.2460 3506.5480 -33.5305 3506.5480 C
|
||||||
|
-21.2848 3506.5480 L
|
||||||
|
-21.2848 3559.7798 l
|
||||||
|
-21.2848 3567.3678 -15.8811 3573.4612 -7.4880 3573.4612 c
|
||||||
|
0.7897 3573.4612 6.1934 3567.3678 6.1934 3559.7798 c
|
||||||
|
6.1934 3506.5480 L
|
||||||
|
21.4846 3506.5480 L
|
||||||
|
21.4846 3559.7798 l
|
||||||
|
21.4846 3567.3678 26.6584 3573.4612 35.0512 3573.4612 c
|
||||||
|
43.3293 3573.4612 48.8477 3567.3678 48.8477 3559.7798 c
|
||||||
|
48.8477 3506.5480 L
|
||||||
|
64.0239 3506.5480 L
|
||||||
|
64.0239 3559.5496 l
|
||||||
|
64.0239 3559.5496 l
|
||||||
|
f
|
||||||
|
197.0773 3531.3817 m
|
||||||
|
197.0773 3515.1707 206.2749 3504.8234 223.6357 3506.6631 C
|
||||||
|
223.6357 3520.4596 L
|
||||||
|
216.1624 3519.9995 212.3685 3522.9889 212.3685 3531.3817 c
|
||||||
|
212.3685 3592.0865 L
|
||||||
|
197.0773 3592.0865 L
|
||||||
|
197.0773 3531.3817 l
|
||||||
|
197.0773 3531.3817 l
|
||||||
|
f
|
||||||
|
242.7843 3572.1967 m
|
||||||
|
242.7843 3580.7043 l
|
||||||
|
242.7843 3584.9582 239.3351 3588.2926 235.1962 3588.2926 c
|
||||||
|
230.9423 3588.2926 227.4931 3584.9582 227.4931 3580.7043 c
|
||||||
|
227.4931 3572.1967 L
|
||||||
|
242.7843 3572.1967 L
|
||||||
|
f
|
||||||
|
*U
|
||||||
|
1 XR
|
||||||
|
0 R
|
||||||
|
0.0000 0.0000 0.0000 1.0000 K
|
||||||
|
0 1 0 0 0 Xy
|
||||||
|
0 J
|
||||||
|
0 j
|
||||||
|
22.9256 M
|
||||||
|
7.0866 w
|
||||||
|
[]0 d
|
||||||
|
-31.5927 3613.1664 m
|
||||||
|
304.7145 3613.1664 l
|
||||||
|
320.3050 3613.1664 333.0609 3600.4107 333.0609 3584.8202 c
|
||||||
|
333.0609 3515.5123 l
|
||||||
|
333.0609 3499.9217 320.3050 3487.1661 304.7145 3487.1661 c
|
||||||
|
-31.5927 3487.1661 l
|
||||||
|
-47.1832 3487.1661 -59.9391 3499.9217 -59.9391 3515.5123 c
|
||||||
|
-59.9391 3584.8202 l
|
||||||
|
-59.9391 3600.4107 -47.1832 3613.1664 -31.5927 3613.1664 c
|
||||||
|
s
|
||||||
|
1 XR
|
||||||
|
0 O
|
||||||
|
0.0000 0.0000 0.0000 1.0000 k
|
||||||
|
336.5671 3616.7281 m
|
||||||
|
260.4297 3616.7281 L
|
||||||
|
336.5671 3539.4786 L
|
||||||
|
336.5671 3616.7281 L
|
||||||
|
f
|
||||||
|
LB
|
||||||
|
%AI5_EndLayer--
|
||||||
|
%%PageTrailer
|
||||||
|
gsave annotatepage grestore showpage
|
||||||
|
%%Trailer
|
||||||
|
Adobe_Illustrator_AI5 /terminate get exec
|
||||||
|
Adobe_ColorImage_AI6 /terminate get exec
|
||||||
|
Adobe_typography_AI5 /terminate get exec
|
||||||
|
Adobe_cshow /terminate get exec
|
||||||
|
Adobe_level2_AI5 /terminate get exec
|
||||||
|
Adobe_Illustrator_AI5 /terminate get exec
|
||||||
|
Adobe_ColorImage_AI6 /terminate get exec
|
||||||
|
Adobe_typography_AI5 /terminate get exec
|
||||||
|
Adobe_cshow /terminate get exec
|
||||||
|
Adobe_level2_AI5 /terminate get exec
|
||||||
|
Adobe_Illustrator_AI5 /terminate get exec
|
||||||
|
Adobe_ColorImage_AI6 /terminate get exec
|
||||||
|
Adobe_typography_AI5 /terminate get exec
|
||||||
|
Adobe_level2_AI5 /terminate get exec
|
||||||
|
Adobe_Illustrator_AI5 /terminate get exec
|
||||||
|
Adobe_level2_AI5 /terminate get exec
|
||||||
|
Adobe_IllustratorA_AI3 /terminate get exec
|
||||||
|
Adobe_pattern_AI3 /terminate get exec
|
||||||
|
Adobe_typography_AI3 /terminate get exec
|
||||||
|
Adobe_customcolor /terminate get exec
|
||||||
|
Adobe_cshow /terminate get exec
|
||||||
|
Adobe_cmykcolor /terminate get exec
|
||||||
|
Adobe_packedarray /terminate get exec
|
||||||
|
Adobe_IllustratorA_AI3 /terminate get exec
|
||||||
|
Adobe_pattern_AI3 /terminate get exec
|
||||||
|
Adobe_typography_AI3 /terminate get exec
|
||||||
|
Adobe_customcolor /terminate get exec
|
||||||
|
Adobe_cshow /terminate get exec
|
||||||
|
Adobe_cmykcolor /terminate get exec
|
||||||
|
Adobe_packedarray /terminate get exec
|
||||||
|
%%EOF
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
__Note for RAMPS users:__
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
-By default, RAMPS have no power on servo bus (if you happen to have a multimeter, check the voltage on servo power pins).
|
||||||
|
-In order to get the servo working, you need to supply 5V to 5V pin.. You can do it using your power supply (if it has a 5V output) or jumping the "Vcc" from Arduino to the 5V RAMPS rail.
|
||||||
|
-These 2 pins are located just between the Reset Button and the yellow fuses... There are marks in the board showing 5V and VCC.. just connect them..
|
||||||
|
-If jumping the arduino Vcc do RAMPS 5V rail, take care to not use a power hungry servo, otherwise you will cause a blackout in the arduino board ;-)
|
@ -0,0 +1,834 @@
|
|||||||
|
#ifndef CONFIGURATION_H
|
||||||
|
#define CONFIGURATION_H
|
||||||
|
|
||||||
|
#include "boards.h"
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Getting Started =============================
|
||||||
|
//===========================================================================
|
||||||
|
/*
|
||||||
|
Here are some standard links for getting your machine calibrated:
|
||||||
|
* http://reprap.org/wiki/Calibration
|
||||||
|
* http://youtu.be/wAL9d7FgInk
|
||||||
|
* http://calculator.josefprusa.cz
|
||||||
|
* http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
|
||||||
|
* http://www.thingiverse.com/thing:5573
|
||||||
|
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
|
||||||
|
* http://www.thingiverse.com/thing:298812
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This configuration file contains the basic settings.
|
||||||
|
// Advanced settings can be found in Configuration_adv.h
|
||||||
|
// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= DELTA Printer ===============================
|
||||||
|
//===========================================================================
|
||||||
|
// For a Delta printer replace the configuration files with the files in the
|
||||||
|
// example_configurations/delta directory.
|
||||||
|
//
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= SCARA Printer ===============================
|
||||||
|
//===========================================================================
|
||||||
|
// For a Delta printer replace the configuration files with the files in the
|
||||||
|
// example_configurations/SCARA directory.
|
||||||
|
//
|
||||||
|
|
||||||
|
// 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_VERSION "1.0.2"
|
||||||
|
#define STRING_URL "reprap.org"
|
||||||
|
#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
|
||||||
|
#define STRING_CONFIG_H_AUTHOR "(bq Hephestos)" // Who made the changes.
|
||||||
|
#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
|
||||||
|
//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
|
||||||
|
|
||||||
|
// SERIAL_PORT selects which serial port should be used for communication with the host.
|
||||||
|
// This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||||
|
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
|
||||||
|
#define SERIAL_PORT 0
|
||||||
|
|
||||||
|
// This determines the communication speed of the printer
|
||||||
|
#define BAUDRATE 115200
|
||||||
|
|
||||||
|
// This enables the serial port associated to the Bluetooth interface
|
||||||
|
//#define BTENABLED // Enable BT interface on AT90USB devices
|
||||||
|
|
||||||
|
// The following define selects which electronics board you have.
|
||||||
|
// Please choose the name from boards.h that matches your setup
|
||||||
|
#ifndef MOTHERBOARD
|
||||||
|
#define MOTHERBOARD BOARD_HEPHESTOS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Define this to set a custom name for your generic Mendel,
|
||||||
|
// #define CUSTOM_MENDEL_NAME "This Mendel"
|
||||||
|
|
||||||
|
// 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 http://www.uuidgenerator.net/version4)
|
||||||
|
// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||||
|
|
||||||
|
// This defines the number of extruders
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
|
||||||
|
//// The following define selects which power supply you have. Please choose the one that matches your setup
|
||||||
|
// 1 = ATX
|
||||||
|
// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
|
||||||
|
|
||||||
|
#define POWER_SUPPLY 1
|
||||||
|
|
||||||
|
// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
|
||||||
|
// #define PS_DEFAULT_OFF
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Thermal Settings ============================
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
|
||||||
|
//
|
||||||
|
//// Temperature sensor settings:
|
||||||
|
// -2 is thermocouple with MAX6675 (only for sensor 0)
|
||||||
|
// -1 is thermocouple with AD595
|
||||||
|
// 0 is not used
|
||||||
|
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
|
||||||
|
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||||
|
// 3 is Mendel-parts thermistor (4.7k pullup)
|
||||||
|
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
||||||
|
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
|
||||||
|
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
|
||||||
|
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
|
||||||
|
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
|
||||||
|
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
|
||||||
|
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
|
||||||
|
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
|
||||||
|
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
|
||||||
|
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
|
||||||
|
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
|
||||||
|
// 20 is the PT100 circuit found in the Ultimainboard V2.x
|
||||||
|
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||||
|
//
|
||||||
|
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
|
||||||
|
// (but gives greater accuracy and more stable PID)
|
||||||
|
// 51 is 100k thermistor - EPCOS (1k pullup)
|
||||||
|
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
|
||||||
|
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
|
||||||
|
//
|
||||||
|
// 1047 is Pt1000 with 4k7 pullup
|
||||||
|
// 1010 is Pt1000 with 1k pullup (non standard)
|
||||||
|
// 147 is Pt100 with 4k7 pullup
|
||||||
|
// 110 is Pt100 with 1k pullup (non standard)
|
||||||
|
|
||||||
|
#define TEMP_SENSOR_0 1
|
||||||
|
#define TEMP_SENSOR_1 0
|
||||||
|
#define TEMP_SENSOR_2 0
|
||||||
|
#define TEMP_SENSOR_BED 0
|
||||||
|
|
||||||
|
// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
|
||||||
|
//#define TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
|
||||||
|
|
||||||
|
// Actual temperature must be close to target for this long before M109 returns success
|
||||||
|
#define TEMP_RESIDENCY_TIME 10 // (seconds)
|
||||||
|
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
|
||||||
|
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
|
||||||
|
|
||||||
|
// The minimal temperature defines the temperature below which the heater will not be enabled It is used
|
||||||
|
// to check that the wiring to the thermistor is not broken.
|
||||||
|
// Otherwise this would lead to the heater being powered on all the time.
|
||||||
|
#define HEATER_0_MINTEMP 5
|
||||||
|
#define HEATER_1_MINTEMP 5
|
||||||
|
#define HEATER_2_MINTEMP 5
|
||||||
|
#define BED_MINTEMP 5
|
||||||
|
|
||||||
|
// When temperature exceeds max temp, your heater will be switched off.
|
||||||
|
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
|
||||||
|
// You should use MINTEMP for thermistor short/failure protection.
|
||||||
|
#define HEATER_0_MAXTEMP 260
|
||||||
|
#define HEATER_1_MAXTEMP 260
|
||||||
|
#define HEATER_2_MAXTEMP 260
|
||||||
|
#define BED_MAXTEMP 150
|
||||||
|
|
||||||
|
// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
|
||||||
|
// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
|
||||||
|
// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
|
||||||
|
//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
|
||||||
|
|
||||||
|
// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
|
||||||
|
//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R
|
||||||
|
//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= PID Settings ================================
|
||||||
|
//===========================================================================
|
||||||
|
// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
|
||||||
|
|
||||||
|
// Comment the following line to disable PID and enable bang-bang.
|
||||||
|
#define PIDTEMP
|
||||||
|
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||||
|
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||||
|
#ifdef PIDTEMP
|
||||||
|
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||||
|
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||||
|
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||||
|
//#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||||
|
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||||
|
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||||
|
// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
|
||||||
|
#define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term
|
||||||
|
#define K1 0.95 //smoothing factor within the PID
|
||||||
|
#define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// MakerGear
|
||||||
|
// #define DEFAULT_Kp 7.0
|
||||||
|
// #define DEFAULT_Ki 0.1
|
||||||
|
// #define DEFAULT_Kd 12
|
||||||
|
|
||||||
|
// Mendel Parts V9 on 12V
|
||||||
|
// #define DEFAULT_Kp 63.0
|
||||||
|
// #define DEFAULT_Ki 2.25
|
||||||
|
// #define DEFAULT_Kd 440
|
||||||
|
|
||||||
|
// Hephestos (i3)
|
||||||
|
#define DEFAULT_Kp 23.05
|
||||||
|
#define DEFAULT_Ki 2.00
|
||||||
|
#define DEFAULT_Kd 66.47
|
||||||
|
|
||||||
|
#endif // PIDTEMP
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= PID > Bed Temperature Control ===============
|
||||||
|
//===========================================================================
|
||||||
|
// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
|
||||||
|
//
|
||||||
|
// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
|
||||||
|
// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
|
||||||
|
// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
|
||||||
|
// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
//#define BED_LIMIT_SWITCHING
|
||||||
|
|
||||||
|
// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
|
||||||
|
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
|
||||||
|
// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
|
||||||
|
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||||
|
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||||
|
|
||||||
|
#ifdef PIDTEMPBED
|
||||||
|
//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
|
||||||
|
|
||||||
|
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
|
//from pidautotune
|
||||||
|
// #define DEFAULT_bedKp 97.1
|
||||||
|
// #define DEFAULT_bedKi 1.41
|
||||||
|
// #define DEFAULT_bedKd 1675.16
|
||||||
|
|
||||||
|
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||||
|
#endif // PIDTEMPBED
|
||||||
|
|
||||||
|
|
||||||
|
//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
|
||||||
|
//can be software-disabled for whatever purposes by
|
||||||
|
#define PREVENT_DANGEROUS_EXTRUDE
|
||||||
|
//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
|
||||||
|
#define PREVENT_LENGTHY_EXTRUDE
|
||||||
|
|
||||||
|
#define EXTRUDE_MINTEMP 170
|
||||||
|
#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Thermal Runaway Protection ==================
|
||||||
|
//===========================================================================
|
||||||
|
/*
|
||||||
|
This is a feature to protect your printer from burn up in flames if it has
|
||||||
|
a thermistor coming off place (this happened to a friend of mine recently and
|
||||||
|
motivated me writing this feature).
|
||||||
|
|
||||||
|
The issue: If a thermistor come off, it will read a lower temperature than actual.
|
||||||
|
The system will turn the heater on forever, burning up the filament and anything
|
||||||
|
else around.
|
||||||
|
|
||||||
|
After the temperature reaches the target for the first time, this feature will
|
||||||
|
start measuring for how long the current temperature stays below the target
|
||||||
|
minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
|
||||||
|
|
||||||
|
If it stays longer than _PERIOD, it means the thermistor temperature
|
||||||
|
cannot catch up with the target, so something *may be* wrong. Then, to be on the
|
||||||
|
safe side, the system will he halt.
|
||||||
|
|
||||||
|
Bear in mind the count down will just start AFTER the first time the
|
||||||
|
thermistor temperature is over the target, so you will have no problem if
|
||||||
|
your extruder heater takes 2 minutes to hit the target on heating.
|
||||||
|
|
||||||
|
*/
|
||||||
|
// If you want to enable this feature for all your extruder heaters,
|
||||||
|
// uncomment the 2 defines below:
|
||||||
|
|
||||||
|
// Parameters for all extruder heaters
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
|
||||||
|
|
||||||
|
// If you want to enable this feature for your bed heater,
|
||||||
|
// uncomment the 2 defines below:
|
||||||
|
|
||||||
|
// Parameters for the bed heater
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Mechanical Settings =========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// Uncomment the following line to enable CoreXY kinematics
|
||||||
|
// #define COREXY
|
||||||
|
|
||||||
|
// coarse Endstop Settings
|
||||||
|
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
|
||||||
|
|
||||||
|
#ifndef ENDSTOPPULLUPS
|
||||||
|
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
|
||||||
|
// #define ENDSTOPPULLUP_XMAX
|
||||||
|
// #define ENDSTOPPULLUP_YMAX
|
||||||
|
// #define ENDSTOPPULLUP_ZMAX
|
||||||
|
// #define ENDSTOPPULLUP_XMIN
|
||||||
|
// #define ENDSTOPPULLUP_YMIN
|
||||||
|
// #define ENDSTOPPULLUP_ZMIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENDSTOPPULLUPS
|
||||||
|
#define ENDSTOPPULLUP_XMAX
|
||||||
|
#define ENDSTOPPULLUP_YMAX
|
||||||
|
#define ENDSTOPPULLUP_ZMAX
|
||||||
|
#define ENDSTOPPULLUP_XMIN
|
||||||
|
#define ENDSTOPPULLUP_YMIN
|
||||||
|
#define ENDSTOPPULLUP_ZMIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
|
||||||
|
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
//#define DISABLE_MAX_ENDSTOPS
|
||||||
|
//#define DISABLE_MIN_ENDSTOPS
|
||||||
|
|
||||||
|
// Disable max endstops for compatibility with endstop checking routine
|
||||||
|
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
|
||||||
|
#define DISABLE_MAX_ENDSTOPS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
|
||||||
|
#define X_ENABLE_ON 0
|
||||||
|
#define Y_ENABLE_ON 0
|
||||||
|
#define Z_ENABLE_ON 0
|
||||||
|
#define E_ENABLE_ON 0 // For all extruders
|
||||||
|
|
||||||
|
// Disables axis when it's not being used.
|
||||||
|
#define DISABLE_X false
|
||||||
|
#define DISABLE_Y false
|
||||||
|
#define DISABLE_Z false
|
||||||
|
#define DISABLE_E false // For all extruders
|
||||||
|
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
|
||||||
|
|
||||||
|
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
|
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
|
||||||
|
// ENDSTOP SETTINGS:
|
||||||
|
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
|
#define X_HOME_DIR -1
|
||||||
|
#define Y_HOME_DIR -1
|
||||||
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
|
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
||||||
|
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
||||||
|
|
||||||
|
// Travel limits after homing (units in mm)
|
||||||
|
#define X_MAX_POS 215
|
||||||
|
#define X_MIN_POS 0
|
||||||
|
#define Y_MAX_POS 210
|
||||||
|
#define Y_MIN_POS 0
|
||||||
|
#define Z_MAX_POS 180
|
||||||
|
#define Z_MIN_POS 0
|
||||||
|
|
||||||
|
#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
|
||||||
|
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
|
||||||
|
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Bed Auto Leveling ===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
|
||||||
|
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
|
||||||
|
|
||||||
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
|
// There are 2 different ways to pick the X and Y locations to probe:
|
||||||
|
|
||||||
|
// - "grid" mode
|
||||||
|
// Probe every point in a rectangular grid
|
||||||
|
// You must specify the rectangle, and the density of sample points
|
||||||
|
// This mode is preferred because there are more measurements.
|
||||||
|
// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
|
||||||
|
|
||||||
|
// - "3-point" mode
|
||||||
|
// Probe 3 arbitrary points on the bed (that aren't colinear)
|
||||||
|
// You must specify the X & Y coordinates of all 3 points
|
||||||
|
|
||||||
|
#define AUTO_BED_LEVELING_GRID
|
||||||
|
// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
|
||||||
|
// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
|
||||||
|
// and least squares solution is calculated
|
||||||
|
// Note: this feature occupies 10'206 byte
|
||||||
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// set the rectangle in which to probe
|
||||||
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define BACK_PROBE_BED_POSITION 180
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
|
||||||
|
// set the number of grid points per dimension
|
||||||
|
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
|
||||||
|
#define AUTO_BED_LEVELING_GRID_POINTS 2
|
||||||
|
|
||||||
|
|
||||||
|
#else // not AUTO_BED_LEVELING_GRID
|
||||||
|
// with no grid, just probe 3 arbitrary points. A simple cross-product
|
||||||
|
// is used to esimate the plane of the print bed
|
||||||
|
|
||||||
|
#define ABL_PROBE_PT_1_X 15
|
||||||
|
#define ABL_PROBE_PT_1_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
|
#endif // AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
|
||||||
|
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
|
||||||
|
// X and Y offsets must be integers
|
||||||
|
#define X_PROBE_OFFSET_FROM_EXTRUDER -25
|
||||||
|
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
||||||
|
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
||||||
|
|
||||||
|
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
||||||
|
// Be sure you have this distance over your Z_MAX_POS in case
|
||||||
|
|
||||||
|
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
|
||||||
|
|
||||||
|
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
|
||||||
|
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
|
||||||
|
|
||||||
|
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
|
||||||
|
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
|
||||||
|
|
||||||
|
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
|
||||||
|
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
|
||||||
|
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
|
||||||
|
|
||||||
|
// #define PROBE_SERVO_DEACTIVATION_DELAY 300
|
||||||
|
|
||||||
|
|
||||||
|
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
|
||||||
|
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
|
||||||
|
|
||||||
|
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
|
||||||
|
// When defined, it will:
|
||||||
|
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
|
||||||
|
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
|
||||||
|
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
|
||||||
|
// - Block Z homing only when the probe is outside bed area.
|
||||||
|
|
||||||
|
#ifdef Z_SAFE_HOMING
|
||||||
|
|
||||||
|
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
|
||||||
|
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef AUTO_BED_LEVELING_GRID // Check if Probe_Offset * Grid Points is greater than Probing Range
|
||||||
|
#if X_PROBE_OFFSET_FROM_EXTRUDER < 0
|
||||||
|
#if (-(X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
|
||||||
|
#error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if ((X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
|
||||||
|
#error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
|
||||||
|
#if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
|
||||||
|
#error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if ((Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
|
||||||
|
#error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
|
|
||||||
|
// The position of the homing switches
|
||||||
|
//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used
|
||||||
|
//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)
|
||||||
|
|
||||||
|
//Manual homing switch locations:
|
||||||
|
// For deltabots this means top and center of the Cartesian print volume.
|
||||||
|
#define MANUAL_X_HOME_POS 0
|
||||||
|
#define MANUAL_Y_HOME_POS 0
|
||||||
|
#define MANUAL_Z_HOME_POS 0
|
||||||
|
//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
|
||||||
|
|
||||||
|
//// MOVEMENT SETTINGS
|
||||||
|
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
|
||||||
|
#define HOMING_FEEDRATE {2000, 2000, 150, 0} // set the homing speeds (mm/min)
|
||||||
|
|
||||||
|
// default settings
|
||||||
|
|
||||||
|
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,100.47095761381482} // default steps per unit for Ultimaker
|
||||||
|
#define DEFAULT_MAX_FEEDRATE {250, 250, 3.3, 25} // (mm/sec)
|
||||||
|
#define DEFAULT_MAX_ACCELERATION {3000,3000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
|
||||||
|
|
||||||
|
#define DEFAULT_ACCELERATION 1000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
|
||||||
|
#define DEFAULT_RETRACT_ACCELERATION 1000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
|
||||||
|
|
||||||
|
// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
|
||||||
|
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
|
||||||
|
// For the other hotends it is their distance from the extruder 0 hotend.
|
||||||
|
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||||
|
// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||||
|
|
||||||
|
// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
|
||||||
|
#define DEFAULT_XYJERK 10.0 // (mm/sec)
|
||||||
|
#define DEFAULT_ZJERK 0.4 // (mm/sec)
|
||||||
|
#define DEFAULT_EJERK 5.0 // (mm/sec)
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Additional Features =========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// Custom M code points
|
||||||
|
#define CUSTOM_M_CODES
|
||||||
|
#ifdef CUSTOM_M_CODES
|
||||||
|
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||||
|
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||||
|
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// EEPROM
|
||||||
|
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
|
||||||
|
// M500 - stores parameters in EEPROM
|
||||||
|
// 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 this to enable EEPROM support
|
||||||
|
//#define EEPROM_SETTINGS
|
||||||
|
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||||
|
// please keep turned on if you can.
|
||||||
|
//#define EEPROM_CHITCHAT
|
||||||
|
|
||||||
|
// Preheat Constants
|
||||||
|
#define PLA_PREHEAT_HOTEND_TEMP 200
|
||||||
|
#define PLA_PREHEAT_HPB_TEMP 0
|
||||||
|
#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
|
||||||
|
|
||||||
|
#define ABS_PREHEAT_HOTEND_TEMP 220
|
||||||
|
#define ABS_PREHEAT_HPB_TEMP 100
|
||||||
|
#define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
|
||||||
|
|
||||||
|
//LCD and SD support
|
||||||
|
|
||||||
|
// Character based displays can have different extended charsets.
|
||||||
|
#define DISPLAY_CHARSET_HD44780_JAPAN // "ääööüüß23°"
|
||||||
|
//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
|
||||||
|
|
||||||
|
#define ULTRA_LCD //general LCD support, also 16x2
|
||||||
|
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||||
|
#define SDSUPPORT // Enable SD Card Support in Hardware Console
|
||||||
|
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
|
||||||
|
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
|
||||||
|
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
|
||||||
|
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
|
||||||
|
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
|
||||||
|
#define ULTIPANEL //the UltiPanel as on Thingiverse
|
||||||
|
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
|
||||||
|
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
|
||||||
|
|
||||||
|
// The MaKr3d Makr-Panel with graphic controller and SD support
|
||||||
|
// http://reprap.org/wiki/MaKr3d_MaKrPanel
|
||||||
|
//#define MAKRPANEL
|
||||||
|
|
||||||
|
// The RepRapDiscount Smart Controller (white PCB)
|
||||||
|
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
|
||||||
|
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
|
||||||
|
// The GADGETS3D G3D LCD/SD Controller (blue PCB)
|
||||||
|
// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
|
||||||
|
//#define G3D_PANEL
|
||||||
|
|
||||||
|
// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
|
||||||
|
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
|
||||||
|
//
|
||||||
|
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
|
||||||
|
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||||
|
|
||||||
|
// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
|
||||||
|
// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
|
||||||
|
//#define REPRAPWORLD_KEYPAD
|
||||||
|
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click
|
||||||
|
|
||||||
|
// The Elefu RA Board Control Panel
|
||||||
|
// http://www.elefu.com/index.php?route=product/product&product_id=53
|
||||||
|
// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
|
||||||
|
//#define RA_CONTROL_PANEL
|
||||||
|
|
||||||
|
//automatic expansion
|
||||||
|
#if defined (MAKRPANEL)
|
||||||
|
#define DOGLCD
|
||||||
|
#define SDSUPPORT
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#define DEFAULT_LCD_CONTRAST 17
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
|
||||||
|
#define DOGLCD
|
||||||
|
#define U8GLIB_ST7920
|
||||||
|
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(REPRAPWORLD_KEYPAD)
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
#if defined(RA_CONTROL_PANEL)
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#define LCD_I2C_TYPE_PCA8574
|
||||||
|
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//I2C PANELS
|
||||||
|
|
||||||
|
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||||
|
#ifdef LCD_I2C_SAINSMART_YWROBOT
|
||||||
|
// This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
|
||||||
|
// Make sure it is placed in the Arduino libraries directory.
|
||||||
|
#define LCD_I2C_TYPE_PCF8575
|
||||||
|
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||||
|
//#define LCD_I2C_PANELOLU2
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||||
|
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||||
|
// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
|
||||||
|
// Note: The PANELOLU2 encoder click input can either be directly connected to a pin
|
||||||
|
// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
|
||||||
|
#define LCD_I2C_TYPE_MCP23017
|
||||||
|
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||||
|
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
|
||||||
|
#ifndef ENCODER_PULSES_PER_STEP
|
||||||
|
#define ENCODER_PULSES_PER_STEP 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENCODER_STEPS_PER_MENU_ITEM
|
||||||
|
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef LCD_USE_I2C_BUZZER
|
||||||
|
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
|
||||||
|
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||||
|
//#define LCD_I2C_VIKI
|
||||||
|
#ifdef LCD_I2C_VIKI
|
||||||
|
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||||
|
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||||
|
// Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||||
|
// BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||||
|
#define LCD_I2C_TYPE_MCP23017
|
||||||
|
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||||
|
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Shift register panels
|
||||||
|
// ---------------------
|
||||||
|
// 2 wire Non-latching LCD SR from:
|
||||||
|
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||||
|
|
||||||
|
//#define SAV_3DLCD
|
||||||
|
#ifdef SAV_3DLCD
|
||||||
|
#define SR_LCD_2W_NL // Non latching 2 wire shiftregister
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
// #define NEWPANEL //enable this if you have a click-encoder panel
|
||||||
|
#define SDSUPPORT
|
||||||
|
#define ULTRA_LCD
|
||||||
|
#ifdef DOGLCD // Change number of lines to match the DOG graphic display
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 5
|
||||||
|
#else
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 4
|
||||||
|
#endif
|
||||||
|
#else //no panel but just LCD
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
#ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 5
|
||||||
|
#else
|
||||||
|
#define LCD_WIDTH 16
|
||||||
|
#define LCD_HEIGHT 2
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// default LCD contrast for dogm-like LCD displays
|
||||||
|
#ifdef DOGLCD
|
||||||
|
# ifndef DEFAULT_LCD_CONTRAST
|
||||||
|
# define DEFAULT_LCD_CONTRAST 32
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
|
||||||
|
//#define FAST_PWM_FAN
|
||||||
|
|
||||||
|
// Temperature status LEDs that display the hotend and bet temperature.
|
||||||
|
// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on.
|
||||||
|
// Otherwise the RED led is on. There is 1C hysteresis.
|
||||||
|
//#define TEMP_STAT_LEDS
|
||||||
|
|
||||||
|
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
|
||||||
|
// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
|
||||||
|
// is too low, you should also increment SOFT_PWM_SCALE.
|
||||||
|
//#define FAN_SOFT_PWM
|
||||||
|
|
||||||
|
// Incrementing this by 1 will double the software PWM frequency,
|
||||||
|
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
|
||||||
|
// However, control resolution will be halved for each increment;
|
||||||
|
// at zero value, there are 128 effective control positions.
|
||||||
|
#define SOFT_PWM_SCALE 0
|
||||||
|
|
||||||
|
// M240 Triggers a camera by emulating a Canon RC-1 Remote
|
||||||
|
// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
|
||||||
|
// #define PHOTOGRAPH_PIN 23
|
||||||
|
|
||||||
|
// SF send wrong arc g-codes when using Arc Point as fillet procedure
|
||||||
|
//#define SF_ARC_FIX
|
||||||
|
|
||||||
|
// Support for the BariCUDA Paste Extruder.
|
||||||
|
//#define BARICUDA
|
||||||
|
|
||||||
|
//define BlinkM/CyzRgb Support
|
||||||
|
//#define BLINKM
|
||||||
|
|
||||||
|
/*********************************************************************\
|
||||||
|
* R/C SERVO support
|
||||||
|
* Sponsored by TrinityLabs, Reworked by codexmas
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
// Number of servos
|
||||||
|
//
|
||||||
|
// If you select a configuration below, this will receive a default value and does not need to be set manually
|
||||||
|
// set it manually if you have more servos than extruders and wish to manually control some
|
||||||
|
// leaving it undefined or defining as 0 will disable the servo subsystem
|
||||||
|
// If unsure, leave commented / disabled
|
||||||
|
//
|
||||||
|
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
|
||||||
|
|
||||||
|
// Servo Endstops
|
||||||
|
//
|
||||||
|
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
|
||||||
|
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
|
||||||
|
//
|
||||||
|
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
|
||||||
|
//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
|
||||||
|
|
||||||
|
/**********************************************************************\
|
||||||
|
* Support for a filament diameter sensor
|
||||||
|
* Also allows adjustment of diameter at print time (vs at slicing)
|
||||||
|
* Single extruder only at this point (extruder 0)
|
||||||
|
*
|
||||||
|
* Motherboards
|
||||||
|
* 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
|
||||||
|
* 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
|
||||||
|
* 301 - Rambo - uses Analog input 3
|
||||||
|
* Note may require analog pins to be defined for different motherboards
|
||||||
|
**********************************************************************/
|
||||||
|
// Uncomment below to enable
|
||||||
|
//#define FILAMENT_SENSOR
|
||||||
|
|
||||||
|
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||||
|
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||||
|
|
||||||
|
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||||
|
#define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm
|
||||||
|
#define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm
|
||||||
|
#define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM)
|
||||||
|
|
||||||
|
//defines used in the code
|
||||||
|
#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially
|
||||||
|
|
||||||
|
//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status. Status will appear for 5 sec.
|
||||||
|
//#define FILAMENT_LCD_DISPLAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "Configuration_adv.h"
|
||||||
|
#include "thermistortables.h"
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_H
|
@ -0,0 +1,535 @@
|
|||||||
|
#ifndef CONFIGURATION_ADV_H
|
||||||
|
#define CONFIGURATION_ADV_H
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Thermal Settings ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#ifdef BED_LIMIT_SWITCHING
|
||||||
|
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||||
|
#endif
|
||||||
|
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||||
|
|
||||||
|
//// Heating sanity check:
|
||||||
|
// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature
|
||||||
|
// If the temperature has not increased at the end of that period, the target temperature is set to zero.
|
||||||
|
// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature
|
||||||
|
// differ by at least 2x WATCH_TEMP_INCREASE
|
||||||
|
//#define WATCH_TEMP_PERIOD 40000 //40 seconds
|
||||||
|
//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds
|
||||||
|
|
||||||
|
#ifdef PIDTEMP
|
||||||
|
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
|
||||||
|
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
|
||||||
|
#define PID_ADD_EXTRUSION_RATE
|
||||||
|
#ifdef PID_ADD_EXTRUSION_RATE
|
||||||
|
#define DEFAULT_Kc (1) //heating power=Kc*(e_speed)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode.
|
||||||
|
//The maximum buffered steps/sec of the extruder motor are called "se".
|
||||||
|
//You enter the autotemp mode by a M109 S<mintemp> B<maxtemp> F<factor>
|
||||||
|
// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp
|
||||||
|
// you exit the value by any M109 without F*
|
||||||
|
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
|
||||||
|
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
|
||||||
|
#define AUTOTEMP
|
||||||
|
#ifdef AUTOTEMP
|
||||||
|
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Show Temperature ADC value
|
||||||
|
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||||
|
//#define SHOW_TEMP_ADC_VALUES
|
||||||
|
|
||||||
|
// extruder run-out prevention.
|
||||||
|
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
|
||||||
|
//#define EXTRUDER_RUNOUT_PREVENT
|
||||||
|
#define EXTRUDER_RUNOUT_MINTEMP 190
|
||||||
|
#define EXTRUDER_RUNOUT_SECONDS 30.
|
||||||
|
#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
|
||||||
|
#define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed
|
||||||
|
#define EXTRUDER_RUNOUT_EXTRUDE 100
|
||||||
|
|
||||||
|
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
|
||||||
|
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
|
||||||
|
#define TEMP_SENSOR_AD595_OFFSET 0.0
|
||||||
|
#define TEMP_SENSOR_AD595_GAIN 1.0
|
||||||
|
|
||||||
|
//This is for controlling a fan to cool down the stepper drivers
|
||||||
|
//it will turn on when any driver is enabled
|
||||||
|
//and turn off after the set amount of seconds from last driver being disabled again
|
||||||
|
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
|
||||||
|
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
|
||||||
|
#define CONTROLLERFAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
// When first starting the main fan, run it at full speed for the
|
||||||
|
// given number of milliseconds. This gets the fan spinning reliably
|
||||||
|
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
|
||||||
|
//#define FAN_KICKSTART_TIME 100
|
||||||
|
|
||||||
|
// Extruder cooling fans
|
||||||
|
// Configure fan pin outputs to automatically turn on/off when the associated
|
||||||
|
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
|
||||||
|
// Multiple extruders can be assigned to the same pin in which case
|
||||||
|
// the fan will turn on when any selected extruder is above the threshold.
|
||||||
|
#define EXTRUDER_0_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_1_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_2_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_3_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||||
|
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Mechanical Settings===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
|
||||||
|
|
||||||
|
|
||||||
|
//// AUTOSET LOCATIONS OF LIMIT SWITCHES
|
||||||
|
//// Added by ZetaPhoenix 09-15-2012
|
||||||
|
#ifdef MANUAL_HOME_POSITIONS // Use manual limit switch locations
|
||||||
|
#define X_HOME_POS MANUAL_X_HOME_POS
|
||||||
|
#define Y_HOME_POS MANUAL_Y_HOME_POS
|
||||||
|
#define Z_HOME_POS MANUAL_Z_HOME_POS
|
||||||
|
#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
|
||||||
|
//X axis
|
||||||
|
#if X_HOME_DIR == -1
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define X_HOME_POS X_MAX_LENGTH * -0.5
|
||||||
|
#else
|
||||||
|
#define X_HOME_POS X_MIN_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#else
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define X_HOME_POS X_MAX_LENGTH * 0.5
|
||||||
|
#else
|
||||||
|
#define X_HOME_POS X_MAX_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#endif //X_HOME_DIR == -1
|
||||||
|
|
||||||
|
//Y axis
|
||||||
|
#if Y_HOME_DIR == -1
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define Y_HOME_POS Y_MAX_LENGTH * -0.5
|
||||||
|
#else
|
||||||
|
#define Y_HOME_POS Y_MIN_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#else
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define Y_HOME_POS Y_MAX_LENGTH * 0.5
|
||||||
|
#else
|
||||||
|
#define Y_HOME_POS Y_MAX_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#endif //Y_HOME_DIR == -1
|
||||||
|
|
||||||
|
// Z axis
|
||||||
|
#if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used
|
||||||
|
#define Z_HOME_POS Z_MIN_POS
|
||||||
|
#else
|
||||||
|
#define Z_HOME_POS Z_MAX_POS
|
||||||
|
#endif //Z_HOME_DIR == -1
|
||||||
|
#endif //End auto min/max positions
|
||||||
|
//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP
|
||||||
|
|
||||||
|
|
||||||
|
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
|
||||||
|
|
||||||
|
// A single Z stepper driver is usually used to drive 2 stepper motors.
|
||||||
|
// Uncomment this define to utilize a separate stepper driver for each Z axis motor.
|
||||||
|
// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used
|
||||||
|
// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards.
|
||||||
|
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
|
||||||
|
//#define Z_DUAL_STEPPER_DRIVERS
|
||||||
|
|
||||||
|
#ifdef Z_DUAL_STEPPER_DRIVERS
|
||||||
|
#undef EXTRUDERS
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Same again but for Y Axis.
|
||||||
|
//#define Y_DUAL_STEPPER_DRIVERS
|
||||||
|
|
||||||
|
// Define if the two Y drives need to rotate in opposite directions
|
||||||
|
#define INVERT_Y2_VS_Y_DIR true
|
||||||
|
|
||||||
|
#ifdef Y_DUAL_STEPPER_DRIVERS
|
||||||
|
#undef EXTRUDERS
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS)
|
||||||
|
#error "You cannot have dual drivers for both Y and Z"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Enable this for dual x-carriage printers.
|
||||||
|
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
|
||||||
|
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
|
||||||
|
// allowing faster printing speeds.
|
||||||
|
//#define DUAL_X_CARRIAGE
|
||||||
|
#ifdef DUAL_X_CARRIAGE
|
||||||
|
// Configuration for second X-carriage
|
||||||
|
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
|
||||||
|
// the second x-carriage always homes to the maximum endstop.
|
||||||
|
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
|
||||||
|
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
|
||||||
|
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
|
||||||
|
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
|
||||||
|
// However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
|
||||||
|
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
|
||||||
|
// without modifying the firmware (through the "M218 T1 X???" command).
|
||||||
|
// Remember: you should set the second extruder x-offset to 0 in your slicer.
|
||||||
|
|
||||||
|
// Pins for second x-carriage stepper driver (defined here to avoid further complicating pins.h)
|
||||||
|
#define X2_ENABLE_PIN 29
|
||||||
|
#define X2_STEP_PIN 25
|
||||||
|
#define X2_DIR_PIN 23
|
||||||
|
|
||||||
|
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
|
||||||
|
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
|
||||||
|
// as long as it supports dual x-carriages. (M605 S0)
|
||||||
|
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
|
||||||
|
// that additional slicer support is not required. (M605 S1)
|
||||||
|
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
|
||||||
|
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
|
||||||
|
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
|
||||||
|
|
||||||
|
// This is the default power-up mode which can be later using M605.
|
||||||
|
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
|
||||||
|
|
||||||
|
// Default settings in "Auto-park Mode"
|
||||||
|
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
|
||||||
|
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
|
||||||
|
|
||||||
|
// Default x offset in duplication mode (typically set to half print bed width)
|
||||||
|
#define DEFAULT_DUPLICATION_X_OFFSET 100
|
||||||
|
|
||||||
|
#endif //DUAL_X_CARRIAGE
|
||||||
|
|
||||||
|
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
|
||||||
|
#define X_HOME_RETRACT_MM 5
|
||||||
|
#define Y_HOME_RETRACT_MM 5
|
||||||
|
#define Z_HOME_RETRACT_MM 2
|
||||||
|
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
|
||||||
|
|
||||||
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
#ifdef CONFIG_STEPPERS_TOSHIBA
|
||||||
|
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
|
||||||
|
#else
|
||||||
|
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
|
||||||
|
#endif
|
||||||
|
//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
||||||
|
#define INVERT_X_STEP_PIN false
|
||||||
|
#define INVERT_Y_STEP_PIN false
|
||||||
|
#define INVERT_Z_STEP_PIN false
|
||||||
|
#define INVERT_E_STEP_PIN false
|
||||||
|
|
||||||
|
//default stepper release if idle. Set to 0 to deactivate.
|
||||||
|
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
|
||||||
|
|
||||||
|
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||||
|
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||||
|
|
||||||
|
// Feedrates for manual moves along X, Y, Z, E from panel
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // set the speeds for manual moves (mm/min)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Comment to disable setting feedrate multiplier via encoder
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define ULTIPANEL_FEEDMULTIPLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
|
||||||
|
#define DEFAULT_MINSEGMENTTIME 20000
|
||||||
|
|
||||||
|
// If defined the movements slow down when the look ahead buffer is only half full
|
||||||
|
#define SLOWDOWN
|
||||||
|
|
||||||
|
// Frequency limit
|
||||||
|
// See nophead's blog for more info
|
||||||
|
// Not working O
|
||||||
|
//#define XY_FREQUENCY_LIMIT 15
|
||||||
|
|
||||||
|
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
|
||||||
|
// of the buffer and all stops. This should not be much greater than zero and should only be changed
|
||||||
|
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
|
||||||
|
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
|
||||||
|
|
||||||
|
// MS1 MS2 Stepper Driver Microstepping mode table
|
||||||
|
#define MICROSTEP1 LOW,LOW
|
||||||
|
#define MICROSTEP2 HIGH,LOW
|
||||||
|
#define MICROSTEP4 LOW,HIGH
|
||||||
|
#define MICROSTEP8 HIGH,HIGH
|
||||||
|
#define MICROSTEP16 HIGH,HIGH
|
||||||
|
|
||||||
|
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
|
||||||
|
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
|
||||||
|
|
||||||
|
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
|
||||||
|
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||||
|
|
||||||
|
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||||
|
//#define DIGIPOT_I2C
|
||||||
|
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
|
||||||
|
#define DIGIPOT_I2C_NUM_CHANNELS 8
|
||||||
|
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||||
|
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Additional Features===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
|
||||||
|
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
|
||||||
|
|
||||||
|
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||||
|
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||||
|
|
||||||
|
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||||
|
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||||
|
// using:
|
||||||
|
#define MENU_ADDAUTOSTART
|
||||||
|
|
||||||
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
//#define LCD_PROGRESS_BAR
|
||||||
|
|
||||||
|
#ifdef LCD_PROGRESS_BAR
|
||||||
|
// Amount of time (ms) to show the bar
|
||||||
|
#define PROGRESS_BAR_BAR_TIME 2000
|
||||||
|
// Amount of time (ms) to show the status message
|
||||||
|
#define PROGRESS_BAR_MSG_TIME 3000
|
||||||
|
// Amount of time (ms) to retain the status message (0=forever)
|
||||||
|
#define PROGRESS_MSG_EXPIRE 0
|
||||||
|
// Enable this to show messages for MSG_TIME then hide them
|
||||||
|
//#define PROGRESS_MSG_ONCE
|
||||||
|
#ifdef DOGLCD
|
||||||
|
#warning LCD_PROGRESS_BAR does not apply to graphical displays at this time.
|
||||||
|
#endif
|
||||||
|
#ifdef FILAMENT_LCD_DISPLAY
|
||||||
|
#error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
|
||||||
|
//#define USE_WATCHDOG
|
||||||
|
|
||||||
|
#ifdef USE_WATCHDOG
|
||||||
|
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
|
||||||
|
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
|
||||||
|
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
|
||||||
|
//#define WATCHDOG_RESET_MANUAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled.
|
||||||
|
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
|
||||||
|
|
||||||
|
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
|
||||||
|
// it can e.g. be used to change z-positions in the print startup phase in real-time
|
||||||
|
// does not respect endstops!
|
||||||
|
//#define BABYSTEPPING
|
||||||
|
#ifdef BABYSTEPPING
|
||||||
|
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
|
||||||
|
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
|
||||||
|
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
|
||||||
|
|
||||||
|
#ifdef COREXY
|
||||||
|
#error BABYSTEPPING not implemented for COREXY yet.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DELTA
|
||||||
|
#ifdef BABYSTEP_XY
|
||||||
|
#error BABYSTEPPING only implemented for Z axis on deltabots.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// extruder advance constant (s2/mm3)
|
||||||
|
//
|
||||||
|
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
||||||
|
//
|
||||||
|
// Hooke's law says: force = k * distance
|
||||||
|
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
||||||
|
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
||||||
|
//#define ADVANCE
|
||||||
|
|
||||||
|
#ifdef ADVANCE
|
||||||
|
#define EXTRUDER_ADVANCE_K .0
|
||||||
|
|
||||||
|
#define D_FILAMENT 1.75
|
||||||
|
#define STEPS_MM_E 100.47095761381482
|
||||||
|
#define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
|
||||||
|
#define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA)
|
||||||
|
|
||||||
|
#endif // ADVANCE
|
||||||
|
|
||||||
|
// Arc interpretation settings:
|
||||||
|
#define MM_PER_ARC_SEGMENT 1
|
||||||
|
#define N_ARC_CORRECTION 25
|
||||||
|
|
||||||
|
const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
|
||||||
|
|
||||||
|
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
|
||||||
|
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
|
||||||
|
// in the pins.h file. When using a push button pulling the pin to ground this will need inverted. This setting should
|
||||||
|
// be commented out otherwise
|
||||||
|
#define SDCARDDETECTINVERTED
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#undef SDCARDDETECTINVERTED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Power Signal Control Definitions
|
||||||
|
// By default use ATX definition
|
||||||
|
#ifndef POWER_SUPPLY
|
||||||
|
#define POWER_SUPPLY 1
|
||||||
|
#endif
|
||||||
|
// 1 = ATX
|
||||||
|
#if (POWER_SUPPLY == 1)
|
||||||
|
#define PS_ON_AWAKE LOW
|
||||||
|
#define PS_ON_ASLEEP HIGH
|
||||||
|
#endif
|
||||||
|
// 2 = X-Box 360 203W
|
||||||
|
#if (POWER_SUPPLY == 2)
|
||||||
|
#define PS_ON_AWAKE HIGH
|
||||||
|
#define PS_ON_ASLEEP LOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Control heater 0 and heater 1 in parallel.
|
||||||
|
//#define HEATERS_PARALLEL
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Buffers ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// The number of linear motions that can be in the plan at any give time.
|
||||||
|
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
|
||||||
|
#if defined SDSUPPORT
|
||||||
|
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
|
||||||
|
#else
|
||||||
|
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//The ASCII buffer for receiving from the serial:
|
||||||
|
#define MAX_CMD_SIZE 96
|
||||||
|
#define BUFSIZE 5
|
||||||
|
|
||||||
|
|
||||||
|
// Firmware based and LCD controlled retract
|
||||||
|
// M207 and M208 can be used to define parameters for the retraction.
|
||||||
|
// The retraction can be called by the slicer using G10 and G11
|
||||||
|
// until then, intended retractions can be detected by moves that only extrude and the direction.
|
||||||
|
// the moves are than replaced by the firmware controlled ones.
|
||||||
|
|
||||||
|
// #define FWRETRACT //ONLY PARTIALLY TESTED
|
||||||
|
#ifdef FWRETRACT
|
||||||
|
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
|
||||||
|
#define RETRACT_LENGTH 3 //default retract length (positive mm)
|
||||||
|
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
|
||||||
|
#define RETRACT_FEEDRATE 80*60 //default feedrate for retracting (mm/s)
|
||||||
|
#define RETRACT_ZLIFT 0 //default retract Z-lift
|
||||||
|
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
|
||||||
|
//#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
|
||||||
|
#define RETRACT_RECOVER_FEEDRATE 8*60 //default feedrate for recovering from retraction (mm/s)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//adds support for experimental filament exchange support M600; requires display
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define FILAMENTCHANGEENABLE
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#define FILAMENTCHANGE_XPOS 3
|
||||||
|
#define FILAMENTCHANGE_YPOS 3
|
||||||
|
#define FILAMENTCHANGE_ZADD 10
|
||||||
|
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
||||||
|
#define FILAMENTCHANGE_FINALRETRACT -100
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#ifdef EXTRUDER_RUNOUT_PREVENT
|
||||||
|
#error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Define Defines ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
|
||||||
|
#error "Bed Auto Leveling is still not compatible with Delta Kinematics."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if EXTRUDERS > 1 && defined HEATERS_PARALLEL
|
||||||
|
#error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_0 > 0
|
||||||
|
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
||||||
|
#define HEATER_0_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 > 0
|
||||||
|
#define THERMISTORHEATER_1 TEMP_SENSOR_1
|
||||||
|
#define HEATER_1_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 > 0
|
||||||
|
#define THERMISTORHEATER_2 TEMP_SENSOR_2
|
||||||
|
#define HEATER_2_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 > 0
|
||||||
|
#define THERMISTORHEATER_3 TEMP_SENSOR_3
|
||||||
|
#define HEATER_3_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED > 0
|
||||||
|
#define THERMISTORBED TEMP_SENSOR_BED
|
||||||
|
#define BED_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == -1
|
||||||
|
#define HEATER_0_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 == -1
|
||||||
|
#define HEATER_1_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 == -1
|
||||||
|
#define HEATER_2_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 == -1
|
||||||
|
#define HEATER_3_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED == -1
|
||||||
|
#define BED_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == -2
|
||||||
|
#define HEATER_0_USES_MAX6675
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == 0
|
||||||
|
#undef HEATER_0_MINTEMP
|
||||||
|
#undef HEATER_0_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 == 0
|
||||||
|
#undef HEATER_1_MINTEMP
|
||||||
|
#undef HEATER_1_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 == 0
|
||||||
|
#undef HEATER_2_MINTEMP
|
||||||
|
#undef HEATER_2_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 == 0
|
||||||
|
#undef HEATER_3_MINTEMP
|
||||||
|
#undef HEATER_3_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED == 0
|
||||||
|
#undef BED_MINTEMP
|
||||||
|
#undef BED_MAXTEMP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_ADV_H
|
@ -0,0 +1,844 @@
|
|||||||
|
#ifndef CONFIGURATION_H
|
||||||
|
#define CONFIGURATION_H
|
||||||
|
|
||||||
|
#include "boards.h"
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Getting Started =============================
|
||||||
|
//===========================================================================
|
||||||
|
/*
|
||||||
|
Here are some standard links for getting your machine calibrated:
|
||||||
|
* http://reprap.org/wiki/Calibration
|
||||||
|
* http://youtu.be/wAL9d7FgInk
|
||||||
|
* http://calculator.josefprusa.cz
|
||||||
|
* http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
|
||||||
|
* http://www.thingiverse.com/thing:5573
|
||||||
|
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
|
||||||
|
* http://www.thingiverse.com/thing:298812
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This configuration file contains the basic settings.
|
||||||
|
// Advanced settings can be found in Configuration_adv.h
|
||||||
|
// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= DELTA Printer ===============================
|
||||||
|
//===========================================================================
|
||||||
|
// For a Delta printer replace the configuration files with the files in the
|
||||||
|
// example_configurations/delta directory.
|
||||||
|
//
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= SCARA Printer ===============================
|
||||||
|
//===========================================================================
|
||||||
|
// For a Delta printer replace the configuration files with the files in the
|
||||||
|
// example_configurations/SCARA directory.
|
||||||
|
//
|
||||||
|
|
||||||
|
// 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_VERSION "v1.0.2"
|
||||||
|
#define STRING_URL "reprap.org"
|
||||||
|
#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
|
||||||
|
#define STRING_CONFIG_H_AUTHOR "(K8200, CONSULitAS)" // Who made the changes.
|
||||||
|
#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
|
||||||
|
//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
|
||||||
|
|
||||||
|
// SERIAL_PORT selects which serial port should be used for communication with the host.
|
||||||
|
// This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||||
|
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
|
||||||
|
#define SERIAL_PORT 0
|
||||||
|
|
||||||
|
// This determines the communication speed of the printer
|
||||||
|
#define BAUDRATE 250000
|
||||||
|
|
||||||
|
// This enables the serial port associated to the Bluetooth interface
|
||||||
|
//#define BTENABLED // Enable BT interface on AT90USB devices
|
||||||
|
|
||||||
|
// The following define selects which electronics board you have.
|
||||||
|
// Please choose the name from boards.h that matches your setup
|
||||||
|
#ifndef MOTHERBOARD
|
||||||
|
#define MOTHERBOARD BOARD_K8200
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Define this to set a custom name for your generic Mendel,
|
||||||
|
// #define CUSTOM_MENDEL_NAME "This Mendel"
|
||||||
|
|
||||||
|
// 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 http://www.uuidgenerator.net/version4)
|
||||||
|
// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||||
|
|
||||||
|
// This defines the number of extruders
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
|
||||||
|
//// The following define selects which power supply you have. Please choose the one that matches your setup
|
||||||
|
// 1 = ATX
|
||||||
|
// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
|
||||||
|
|
||||||
|
#define POWER_SUPPLY 1
|
||||||
|
|
||||||
|
// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
|
||||||
|
// #define PS_DEFAULT_OFF
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Thermal Settings ============================
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
|
||||||
|
//
|
||||||
|
//// Temperature sensor settings:
|
||||||
|
// -2 is thermocouple with MAX6675 (only for sensor 0)
|
||||||
|
// -1 is thermocouple with AD595
|
||||||
|
// 0 is not used
|
||||||
|
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
|
||||||
|
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||||
|
// 3 is Mendel-parts thermistor (4.7k pullup)
|
||||||
|
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
||||||
|
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
|
||||||
|
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
|
||||||
|
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
|
||||||
|
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
|
||||||
|
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
|
||||||
|
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
|
||||||
|
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
|
||||||
|
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
|
||||||
|
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
|
||||||
|
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
|
||||||
|
// 20 is the PT100 circuit found in the Ultimainboard V2.x
|
||||||
|
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||||
|
//
|
||||||
|
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
|
||||||
|
// (but gives greater accuracy and more stable PID)
|
||||||
|
// 51 is 100k thermistor - EPCOS (1k pullup)
|
||||||
|
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
|
||||||
|
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
|
||||||
|
//
|
||||||
|
// 1047 is Pt1000 with 4k7 pullup
|
||||||
|
// 1010 is Pt1000 with 1k pullup (non standard)
|
||||||
|
// 147 is Pt100 with 4k7 pullup
|
||||||
|
// 110 is Pt100 with 1k pullup (non standard)
|
||||||
|
|
||||||
|
#define TEMP_SENSOR_0 5
|
||||||
|
#define TEMP_SENSOR_1 0
|
||||||
|
#define TEMP_SENSOR_2 0
|
||||||
|
#define TEMP_SENSOR_BED 5
|
||||||
|
|
||||||
|
// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
|
||||||
|
//#define TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
|
||||||
|
|
||||||
|
// Actual temperature must be close to target for this long before M109 returns success
|
||||||
|
#define TEMP_RESIDENCY_TIME 10 // (seconds)
|
||||||
|
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
|
||||||
|
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
|
||||||
|
|
||||||
|
// The minimal temperature defines the temperature below which the heater will not be enabled It is used
|
||||||
|
// to check that the wiring to the thermistor is not broken.
|
||||||
|
// Otherwise this would lead to the heater being powered on all the time.
|
||||||
|
#define HEATER_0_MINTEMP 5
|
||||||
|
#define HEATER_1_MINTEMP 5
|
||||||
|
#define HEATER_2_MINTEMP 5
|
||||||
|
#define BED_MINTEMP 5
|
||||||
|
|
||||||
|
// When temperature exceeds max temp, your heater will be switched off.
|
||||||
|
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
|
||||||
|
// You should use MINTEMP for thermistor short/failure protection.
|
||||||
|
#define HEATER_0_MAXTEMP 275
|
||||||
|
#define HEATER_1_MAXTEMP 275
|
||||||
|
#define HEATER_2_MAXTEMP 275
|
||||||
|
#define BED_MAXTEMP 150
|
||||||
|
|
||||||
|
// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
|
||||||
|
// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
|
||||||
|
// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
|
||||||
|
//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
|
||||||
|
|
||||||
|
// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
|
||||||
|
//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R
|
||||||
|
//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= PID Settings ================================
|
||||||
|
//===========================================================================
|
||||||
|
// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
|
||||||
|
|
||||||
|
// Comment the following line to disable PID and enable bang-bang.
|
||||||
|
#define PIDTEMP
|
||||||
|
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||||
|
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||||
|
#ifdef PIDTEMP
|
||||||
|
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||||
|
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||||
|
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||||
|
//#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||||
|
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||||
|
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||||
|
// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
|
||||||
|
#define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term
|
||||||
|
#define K1 0.95 //smoothing factor within the PID
|
||||||
|
#define PID_dT ((OVERSAMPLENR * 10.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// MakerGear
|
||||||
|
// #define DEFAULT_Kp 7.0
|
||||||
|
// #define DEFAULT_Ki 0.1
|
||||||
|
// #define DEFAULT_Kd 12
|
||||||
|
|
||||||
|
// Mendel Parts V9 on 12V
|
||||||
|
// #define DEFAULT_Kp 63.0
|
||||||
|
// #define DEFAULT_Ki 2.25
|
||||||
|
// #define DEFAULT_Kd 440
|
||||||
|
|
||||||
|
// Vellemann K8200 Extruder - calculated with PID Autotune and tested
|
||||||
|
#define DEFAULT_Kp 24.29
|
||||||
|
#define DEFAULT_Ki 1.58
|
||||||
|
#define DEFAULT_Kd 93.51
|
||||||
|
#endif // PIDTEMP
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= PID > Bed Temperature Control ===============
|
||||||
|
//===========================================================================
|
||||||
|
// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
|
||||||
|
//
|
||||||
|
// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
|
||||||
|
// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
|
||||||
|
// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
|
||||||
|
// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
//#define BED_LIMIT_SWITCHING
|
||||||
|
|
||||||
|
// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
|
||||||
|
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
|
||||||
|
// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
|
||||||
|
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||||
|
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||||
|
|
||||||
|
#ifdef PIDTEMPBED
|
||||||
|
//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
|
||||||
|
|
||||||
|
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
|
//from pidautotune
|
||||||
|
// #define DEFAULT_bedKp 97.1
|
||||||
|
// #define DEFAULT_bedKi 1.41
|
||||||
|
// #define DEFAULT_bedKd 1675.16
|
||||||
|
|
||||||
|
//Vellemann K8200 PCB heatbed with standard PCU - calculated with PID Autotune and tested
|
||||||
|
//from pidautotune
|
||||||
|
#define DEFAULT_bedKp 341.88
|
||||||
|
#define DEFAULT_bedKi 25.32
|
||||||
|
#define DEFAULT_bedKd 1153.89
|
||||||
|
|
||||||
|
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||||
|
#endif // PIDTEMPBED
|
||||||
|
|
||||||
|
|
||||||
|
//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
|
||||||
|
//can be software-disabled for whatever purposes by
|
||||||
|
#define PREVENT_DANGEROUS_EXTRUDE
|
||||||
|
//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
|
||||||
|
#define PREVENT_LENGTHY_EXTRUDE
|
||||||
|
|
||||||
|
#define EXTRUDE_MINTEMP 170
|
||||||
|
#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Thermal Runaway Protection ==================
|
||||||
|
//===========================================================================
|
||||||
|
/*
|
||||||
|
This is a feature to protect your printer from burn up in flames if it has
|
||||||
|
a thermistor coming off place (this happened to a friend of mine recently and
|
||||||
|
motivated me writing this feature).
|
||||||
|
|
||||||
|
The issue: If a thermistor come off, it will read a lower temperature than actual.
|
||||||
|
The system will turn the heater on forever, burning up the filament and anything
|
||||||
|
else around.
|
||||||
|
|
||||||
|
After the temperature reaches the target for the first time, this feature will
|
||||||
|
start measuring for how long the current temperature stays below the target
|
||||||
|
minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
|
||||||
|
|
||||||
|
If it stays longer than _PERIOD, it means the thermistor temperature
|
||||||
|
cannot catch up with the target, so something *may be* wrong. Then, to be on the
|
||||||
|
safe side, the system will he halt.
|
||||||
|
|
||||||
|
Bear in mind the count down will just start AFTER the first time the
|
||||||
|
thermistor temperature is over the target, so you will have no problem if
|
||||||
|
your extruder heater takes 2 minutes to hit the target on heating.
|
||||||
|
|
||||||
|
*/
|
||||||
|
// If you want to enable this feature for all your extruder heaters,
|
||||||
|
// uncomment the 2 defines below:
|
||||||
|
|
||||||
|
// Parameters for all extruder heaters
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
|
||||||
|
|
||||||
|
// If you want to enable this feature for your bed heater,
|
||||||
|
// uncomment the 2 defines below:
|
||||||
|
|
||||||
|
// Parameters for the bed heater
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Mechanical Settings =========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// Uncomment the following line to enable CoreXY kinematics
|
||||||
|
// #define COREXY
|
||||||
|
|
||||||
|
// coarse Endstop Settings
|
||||||
|
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
|
||||||
|
|
||||||
|
#ifndef ENDSTOPPULLUPS
|
||||||
|
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
|
||||||
|
// #define ENDSTOPPULLUP_XMAX
|
||||||
|
// #define ENDSTOPPULLUP_YMAX
|
||||||
|
// #define ENDSTOPPULLUP_ZMAX
|
||||||
|
#define ENDSTOPPULLUP_XMIN
|
||||||
|
#define ENDSTOPPULLUP_YMIN
|
||||||
|
#define ENDSTOPPULLUP_ZMIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENDSTOPPULLUPS
|
||||||
|
// #define ENDSTOPPULLUP_XMAX
|
||||||
|
// #define ENDSTOPPULLUP_YMAX
|
||||||
|
// #define ENDSTOPPULLUP_ZMAX
|
||||||
|
#define ENDSTOPPULLUP_XMIN
|
||||||
|
#define ENDSTOPPULLUP_YMIN
|
||||||
|
#define ENDSTOPPULLUP_ZMIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
|
||||||
|
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
|
||||||
|
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
#define DISABLE_MAX_ENDSTOPS
|
||||||
|
//#define DISABLE_MIN_ENDSTOPS
|
||||||
|
|
||||||
|
// Disable max endstops for compatibility with endstop checking routine
|
||||||
|
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
|
||||||
|
#define DISABLE_MAX_ENDSTOPS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
|
||||||
|
#define X_ENABLE_ON 0
|
||||||
|
#define Y_ENABLE_ON 0
|
||||||
|
#define Z_ENABLE_ON 0
|
||||||
|
#define E_ENABLE_ON 0 // For all extruders
|
||||||
|
|
||||||
|
// Disables axis when it's not being used.
|
||||||
|
#define DISABLE_X false
|
||||||
|
#define DISABLE_Y false
|
||||||
|
#define DISABLE_Z true
|
||||||
|
#define DISABLE_E false // For all extruders
|
||||||
|
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
|
||||||
|
|
||||||
|
#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
|
#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E1_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E2_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
|
||||||
|
// ENDSTOP SETTINGS:
|
||||||
|
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
|
#define X_HOME_DIR -1
|
||||||
|
#define Y_HOME_DIR -1
|
||||||
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
|
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
||||||
|
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
||||||
|
|
||||||
|
// Travel limits after homing (units are in mm)
|
||||||
|
#define X_MAX_POS 200
|
||||||
|
#define X_MIN_POS 0
|
||||||
|
#define Y_MAX_POS 200
|
||||||
|
#define Y_MIN_POS 0
|
||||||
|
#define Z_MAX_POS 200
|
||||||
|
#define Z_MIN_POS 0
|
||||||
|
|
||||||
|
#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
|
||||||
|
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
|
||||||
|
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Bed Auto Leveling ===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
|
||||||
|
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
|
||||||
|
|
||||||
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
|
// There are 2 different ways to pick the X and Y locations to probe:
|
||||||
|
|
||||||
|
// - "grid" mode
|
||||||
|
// Probe every point in a rectangular grid
|
||||||
|
// You must specify the rectangle, and the density of sample points
|
||||||
|
// This mode is preferred because there are more measurements.
|
||||||
|
// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
|
||||||
|
|
||||||
|
// - "3-point" mode
|
||||||
|
// Probe 3 arbitrary points on the bed (that aren't colinear)
|
||||||
|
// You must specify the X & Y coordinates of all 3 points
|
||||||
|
|
||||||
|
#define AUTO_BED_LEVELING_GRID
|
||||||
|
// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
|
||||||
|
// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
|
||||||
|
// and least squares solution is calculated
|
||||||
|
// Note: this feature occupies 10'206 byte
|
||||||
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// set the rectangle in which to probe
|
||||||
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define BACK_PROBE_BED_POSITION 180
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
|
||||||
|
// set the number of grid points per dimension
|
||||||
|
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
|
||||||
|
#define AUTO_BED_LEVELING_GRID_POINTS 2
|
||||||
|
|
||||||
|
|
||||||
|
#else // not AUTO_BED_LEVELING_GRID
|
||||||
|
// with no grid, just probe 3 arbitrary points. A simple cross-product
|
||||||
|
// is used to esimate the plane of the print bed
|
||||||
|
|
||||||
|
#define ABL_PROBE_PT_1_X 15
|
||||||
|
#define ABL_PROBE_PT_1_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
|
#endif // AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
|
||||||
|
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
|
||||||
|
// X and Y offsets must be integers
|
||||||
|
#define X_PROBE_OFFSET_FROM_EXTRUDER -25
|
||||||
|
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
||||||
|
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
||||||
|
|
||||||
|
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
||||||
|
// Be sure you have this distance over your Z_MAX_POS in case
|
||||||
|
|
||||||
|
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
|
||||||
|
|
||||||
|
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
|
||||||
|
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
|
||||||
|
|
||||||
|
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
|
||||||
|
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
|
||||||
|
|
||||||
|
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
|
||||||
|
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
|
||||||
|
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
|
||||||
|
|
||||||
|
// #define PROBE_SERVO_DEACTIVATION_DELAY 300
|
||||||
|
|
||||||
|
|
||||||
|
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
|
||||||
|
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
|
||||||
|
|
||||||
|
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
|
||||||
|
// When defined, it will:
|
||||||
|
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
|
||||||
|
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
|
||||||
|
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
|
||||||
|
// - Block Z homing only when the probe is outside bed area.
|
||||||
|
|
||||||
|
#ifdef Z_SAFE_HOMING
|
||||||
|
|
||||||
|
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
|
||||||
|
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef AUTO_BED_LEVELING_GRID // Check if Probe_Offset * Grid Points is greater than Probing Range
|
||||||
|
#if X_PROBE_OFFSET_FROM_EXTRUDER < 0
|
||||||
|
#if (-(X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
|
||||||
|
#error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if ((X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
|
||||||
|
#error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
|
||||||
|
#if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
|
||||||
|
#error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if ((Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
|
||||||
|
#error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
|
|
||||||
|
// The position of the homing switches
|
||||||
|
//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used
|
||||||
|
//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)
|
||||||
|
|
||||||
|
//Manual homing switch locations:
|
||||||
|
// For deltabots this means top and center of the Cartesian print volume.
|
||||||
|
#define MANUAL_X_HOME_POS 0
|
||||||
|
#define MANUAL_Y_HOME_POS 0
|
||||||
|
#define MANUAL_Z_HOME_POS 0
|
||||||
|
//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
|
||||||
|
|
||||||
|
//// MOVEMENT SETTINGS
|
||||||
|
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
|
||||||
|
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
|
||||||
|
|
||||||
|
// default settings
|
||||||
|
|
||||||
|
#define DEFAULT_AXIS_STEPS_PER_UNIT {64.25,64.25,2560,600} // default steps per unit for K8200
|
||||||
|
#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 500} // (mm/sec)
|
||||||
|
#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
|
||||||
|
|
||||||
|
#define DEFAULT_ACCELERATION 1000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
|
||||||
|
#define DEFAULT_RETRACT_ACCELERATION 1000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
|
||||||
|
|
||||||
|
// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
|
||||||
|
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
|
||||||
|
// For the other hotends it is their distance from the extruder 0 hotend.
|
||||||
|
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||||
|
// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||||
|
|
||||||
|
// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
|
||||||
|
#define DEFAULT_XYJERK 20.0 // (mm/sec)
|
||||||
|
#define DEFAULT_ZJERK 0.4 // (mm/sec)
|
||||||
|
#define DEFAULT_EJERK 5.0 // (mm/sec)
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Additional Features =========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// Custom M code points
|
||||||
|
#define CUSTOM_M_CODES
|
||||||
|
#ifdef CUSTOM_M_CODES
|
||||||
|
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||||
|
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||||
|
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// EEPROM
|
||||||
|
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
|
||||||
|
// M500 - stores parameters in EEPROM
|
||||||
|
// 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 this to enable EEPROM support
|
||||||
|
#define EEPROM_SETTINGS
|
||||||
|
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||||
|
// please keep turned on if you can.
|
||||||
|
//#define EEPROM_CHITCHAT
|
||||||
|
|
||||||
|
// Preheat Constants
|
||||||
|
#define PLA_PREHEAT_HOTEND_TEMP 190
|
||||||
|
#define PLA_PREHEAT_HPB_TEMP 50
|
||||||
|
#define PLA_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255
|
||||||
|
|
||||||
|
#define ABS_PREHEAT_HOTEND_TEMP 240
|
||||||
|
#define ABS_PREHEAT_HPB_TEMP 60
|
||||||
|
#define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255
|
||||||
|
|
||||||
|
//LCD and SD support
|
||||||
|
|
||||||
|
// VM8201 (LCD Option for K8200) uses "DISPLAY_CHARSET_HD44870_JAPAN" and "ULTIMAKERCONTROLLER"
|
||||||
|
|
||||||
|
// Character based displays can have different extended charsets.
|
||||||
|
#define DISPLAY_CHARSET_HD44780_JAPAN // "ääööüüß23°"
|
||||||
|
//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
|
||||||
|
|
||||||
|
//#define ULTRA_LCD //general LCD support, also 16x2
|
||||||
|
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||||
|
//#define SDSUPPORT // Enable SD Card Support in Hardware Console
|
||||||
|
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
|
||||||
|
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
|
||||||
|
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
|
||||||
|
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
|
||||||
|
#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
|
||||||
|
//#define ULTIPANEL //the UltiPanel as on Thingiverse
|
||||||
|
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
|
||||||
|
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
|
||||||
|
|
||||||
|
// The MaKr3d Makr-Panel with graphic controller and SD support
|
||||||
|
// http://reprap.org/wiki/MaKr3d_MaKrPanel
|
||||||
|
//#define MAKRPANEL
|
||||||
|
|
||||||
|
// The RepRapDiscount Smart Controller (white PCB)
|
||||||
|
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
|
||||||
|
//#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
|
||||||
|
// The GADGETS3D G3D LCD/SD Controller (blue PCB)
|
||||||
|
// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
|
||||||
|
//#define G3D_PANEL
|
||||||
|
|
||||||
|
// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
|
||||||
|
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
|
||||||
|
//
|
||||||
|
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
|
||||||
|
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||||
|
|
||||||
|
// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
|
||||||
|
// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
|
||||||
|
//#define REPRAPWORLD_KEYPAD
|
||||||
|
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click
|
||||||
|
|
||||||
|
// The Elefu RA Board Control Panel
|
||||||
|
// http://www.elefu.com/index.php?route=product/product&product_id=53
|
||||||
|
// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
|
||||||
|
//#define RA_CONTROL_PANEL
|
||||||
|
|
||||||
|
//automatic expansion
|
||||||
|
#if defined (MAKRPANEL)
|
||||||
|
#define DOGLCD
|
||||||
|
#define SDSUPPORT
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#define DEFAULT_LCD_CONTRAST 17
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
|
||||||
|
#define DOGLCD
|
||||||
|
#define U8GLIB_ST7920
|
||||||
|
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(REPRAPWORLD_KEYPAD)
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
#if defined(RA_CONTROL_PANEL)
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#define LCD_I2C_TYPE_PCA8574
|
||||||
|
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//I2C PANELS
|
||||||
|
|
||||||
|
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||||
|
#ifdef LCD_I2C_SAINSMART_YWROBOT
|
||||||
|
// This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
|
||||||
|
// Make sure it is placed in the Arduino libraries directory.
|
||||||
|
#define LCD_I2C_TYPE_PCF8575
|
||||||
|
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||||
|
//#define LCD_I2C_PANELOLU2
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||||
|
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||||
|
// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
|
||||||
|
// Note: The PANELOLU2 encoder click input can either be directly connected to a pin
|
||||||
|
// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
|
||||||
|
#define LCD_I2C_TYPE_MCP23017
|
||||||
|
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||||
|
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
|
||||||
|
#ifndef ENCODER_PULSES_PER_STEP
|
||||||
|
#define ENCODER_PULSES_PER_STEP 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENCODER_STEPS_PER_MENU_ITEM
|
||||||
|
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef LCD_USE_I2C_BUZZER
|
||||||
|
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
|
||||||
|
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||||
|
//#define LCD_I2C_VIKI
|
||||||
|
#ifdef LCD_I2C_VIKI
|
||||||
|
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||||
|
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||||
|
// Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||||
|
// BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||||
|
#define LCD_I2C_TYPE_MCP23017
|
||||||
|
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||||
|
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Shift register panels
|
||||||
|
// ---------------------
|
||||||
|
// 2 wire Non-latching LCD SR from:
|
||||||
|
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||||
|
|
||||||
|
//#define SAV_3DLCD
|
||||||
|
#ifdef SAV_3DLCD
|
||||||
|
#define SR_LCD_2W_NL // Non latching 2 wire shiftregister
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
// #define NEWPANEL //enable this if you have a click-encoder panel
|
||||||
|
#define SDSUPPORT
|
||||||
|
#define ULTRA_LCD
|
||||||
|
#ifdef DOGLCD // Change number of lines to match the DOG graphic display
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 5
|
||||||
|
#else
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 4
|
||||||
|
#endif
|
||||||
|
#else //no panel but just LCD
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
#ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 5
|
||||||
|
#else
|
||||||
|
#define LCD_WIDTH 16
|
||||||
|
#define LCD_HEIGHT 2
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// default LCD contrast for dogm-like LCD displays
|
||||||
|
#ifdef DOGLCD
|
||||||
|
# ifndef DEFAULT_LCD_CONTRAST
|
||||||
|
# define DEFAULT_LCD_CONTRAST 32
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
|
||||||
|
//#define FAST_PWM_FAN
|
||||||
|
|
||||||
|
// Temperature status LEDs that display the hotend and bet temperature.
|
||||||
|
// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on.
|
||||||
|
// Otherwise the RED led is on. There is 1C hysteresis.
|
||||||
|
//#define TEMP_STAT_LEDS
|
||||||
|
|
||||||
|
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
|
||||||
|
// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
|
||||||
|
// is too low, you should also increment SOFT_PWM_SCALE.
|
||||||
|
//#define FAN_SOFT_PWM
|
||||||
|
|
||||||
|
// Incrementing this by 1 will double the software PWM frequency,
|
||||||
|
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
|
||||||
|
// However, control resolution will be halved for each increment;
|
||||||
|
// at zero value, there are 128 effective control positions.
|
||||||
|
#define SOFT_PWM_SCALE 0
|
||||||
|
|
||||||
|
// M240 Triggers a camera by emulating a Canon RC-1 Remote
|
||||||
|
// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
|
||||||
|
// #define PHOTOGRAPH_PIN 23
|
||||||
|
|
||||||
|
// SF send wrong arc g-codes when using Arc Point as fillet procedure
|
||||||
|
//#define SF_ARC_FIX
|
||||||
|
|
||||||
|
// Support for the BariCUDA Paste Extruder.
|
||||||
|
//#define BARICUDA
|
||||||
|
|
||||||
|
//define BlinkM/CyzRgb Support
|
||||||
|
//#define BLINKM
|
||||||
|
|
||||||
|
/*********************************************************************\
|
||||||
|
* R/C SERVO support
|
||||||
|
* Sponsored by TrinityLabs, Reworked by codexmas
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
// Number of servos
|
||||||
|
//
|
||||||
|
// If you select a configuration below, this will receive a default value and does not need to be set manually
|
||||||
|
// set it manually if you have more servos than extruders and wish to manually control some
|
||||||
|
// leaving it undefined or defining as 0 will disable the servo subsystem
|
||||||
|
// If unsure, leave commented / disabled
|
||||||
|
//
|
||||||
|
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
|
||||||
|
|
||||||
|
// Servo Endstops
|
||||||
|
//
|
||||||
|
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
|
||||||
|
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
|
||||||
|
//
|
||||||
|
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
|
||||||
|
//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
|
||||||
|
|
||||||
|
/**********************************************************************\
|
||||||
|
* Support for a filament diameter sensor
|
||||||
|
* Also allows adjustment of diameter at print time (vs at slicing)
|
||||||
|
* Single extruder only at this point (extruder 0)
|
||||||
|
*
|
||||||
|
* Motherboards
|
||||||
|
* 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
|
||||||
|
* 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
|
||||||
|
* 301 - Rambo - uses Analog input 3
|
||||||
|
* Note may require analog pins to be defined for different motherboards
|
||||||
|
**********************************************************************/
|
||||||
|
// Uncomment below to enable
|
||||||
|
//#define FILAMENT_SENSOR
|
||||||
|
|
||||||
|
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||||
|
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||||
|
|
||||||
|
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||||
|
#define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm
|
||||||
|
#define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm
|
||||||
|
#define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM)
|
||||||
|
|
||||||
|
//defines used in the code
|
||||||
|
#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially
|
||||||
|
|
||||||
|
//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status. Status will appear for 5 sec.
|
||||||
|
//#define FILAMENT_LCD_DISPLAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "Configuration_adv.h"
|
||||||
|
#include "thermistortables.h"
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_H
|
@ -0,0 +1,535 @@
|
|||||||
|
#ifndef CONFIGURATION_ADV_H
|
||||||
|
#define CONFIGURATION_ADV_H
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Thermal Settings ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#ifdef BED_LIMIT_SWITCHING
|
||||||
|
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||||
|
#endif
|
||||||
|
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||||
|
|
||||||
|
//// Heating sanity check:
|
||||||
|
// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature
|
||||||
|
// If the temperature has not increased at the end of that period, the target temperature is set to zero.
|
||||||
|
// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature
|
||||||
|
// differ by at least 2x WATCH_TEMP_INCREASE
|
||||||
|
//#define WATCH_TEMP_PERIOD 40000 //40 seconds
|
||||||
|
//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds
|
||||||
|
|
||||||
|
#ifdef PIDTEMP
|
||||||
|
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
|
||||||
|
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
|
||||||
|
#define PID_ADD_EXTRUSION_RATE
|
||||||
|
#ifdef PID_ADD_EXTRUSION_RATE
|
||||||
|
#define DEFAULT_Kc (1) //heating power=Kc*(e_speed)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode.
|
||||||
|
//The maximum buffered steps/sec of the extruder motor are called "se".
|
||||||
|
//You enter the autotemp mode by a M109 S<mintemp> B<maxtemp> F<factor>
|
||||||
|
// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp
|
||||||
|
// you exit the value by any M109 without F*
|
||||||
|
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
|
||||||
|
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
|
||||||
|
#define AUTOTEMP
|
||||||
|
#ifdef AUTOTEMP
|
||||||
|
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Show Temperature ADC value
|
||||||
|
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||||
|
//#define SHOW_TEMP_ADC_VALUES
|
||||||
|
|
||||||
|
// extruder run-out prevention.
|
||||||
|
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
|
||||||
|
//#define EXTRUDER_RUNOUT_PREVENT
|
||||||
|
#define EXTRUDER_RUNOUT_MINTEMP 190
|
||||||
|
#define EXTRUDER_RUNOUT_SECONDS 30.
|
||||||
|
#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
|
||||||
|
#define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed
|
||||||
|
#define EXTRUDER_RUNOUT_EXTRUDE 100
|
||||||
|
|
||||||
|
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
|
||||||
|
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
|
||||||
|
#define TEMP_SENSOR_AD595_OFFSET 0.0
|
||||||
|
#define TEMP_SENSOR_AD595_GAIN 1.0
|
||||||
|
|
||||||
|
//This is for controlling a fan to cool down the stepper drivers
|
||||||
|
//it will turn on when any driver is enabled
|
||||||
|
//and turn off after the set amount of seconds from last driver being disabled again
|
||||||
|
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
|
||||||
|
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
|
||||||
|
#define CONTROLLERFAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
// When first starting the main fan, run it at full speed for the
|
||||||
|
// given number of milliseconds. This gets the fan spinning reliably
|
||||||
|
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
|
||||||
|
//#define FAN_KICKSTART_TIME 100
|
||||||
|
|
||||||
|
// Extruder cooling fans
|
||||||
|
// Configure fan pin outputs to automatically turn on/off when the associated
|
||||||
|
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
|
||||||
|
// Multiple extruders can be assigned to the same pin in which case
|
||||||
|
// the fan will turn on when any selected extruder is above the threshold.
|
||||||
|
#define EXTRUDER_0_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_1_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_2_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_3_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||||
|
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Mechanical Settings===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
|
||||||
|
|
||||||
|
|
||||||
|
//// AUTOSET LOCATIONS OF LIMIT SWITCHES
|
||||||
|
//// Added by ZetaPhoenix 09-15-2012
|
||||||
|
#ifdef MANUAL_HOME_POSITIONS // Use manual limit switch locations
|
||||||
|
#define X_HOME_POS MANUAL_X_HOME_POS
|
||||||
|
#define Y_HOME_POS MANUAL_Y_HOME_POS
|
||||||
|
#define Z_HOME_POS MANUAL_Z_HOME_POS
|
||||||
|
#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
|
||||||
|
//X axis
|
||||||
|
#if X_HOME_DIR == -1
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define X_HOME_POS X_MAX_LENGTH * -0.5
|
||||||
|
#else
|
||||||
|
#define X_HOME_POS X_MIN_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#else
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define X_HOME_POS X_MAX_LENGTH * 0.5
|
||||||
|
#else
|
||||||
|
#define X_HOME_POS X_MAX_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#endif //X_HOME_DIR == -1
|
||||||
|
|
||||||
|
//Y axis
|
||||||
|
#if Y_HOME_DIR == -1
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define Y_HOME_POS Y_MAX_LENGTH * -0.5
|
||||||
|
#else
|
||||||
|
#define Y_HOME_POS Y_MIN_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#else
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define Y_HOME_POS Y_MAX_LENGTH * 0.5
|
||||||
|
#else
|
||||||
|
#define Y_HOME_POS Y_MAX_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#endif //Y_HOME_DIR == -1
|
||||||
|
|
||||||
|
// Z axis
|
||||||
|
#if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used
|
||||||
|
#define Z_HOME_POS Z_MIN_POS
|
||||||
|
#else
|
||||||
|
#define Z_HOME_POS Z_MAX_POS
|
||||||
|
#endif //Z_HOME_DIR == -1
|
||||||
|
#endif //End auto min/max positions
|
||||||
|
//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP
|
||||||
|
|
||||||
|
|
||||||
|
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
|
||||||
|
|
||||||
|
// A single Z stepper driver is usually used to drive 2 stepper motors.
|
||||||
|
// Uncomment this define to utilize a separate stepper driver for each Z axis motor.
|
||||||
|
// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used
|
||||||
|
// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards.
|
||||||
|
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
|
||||||
|
//#define Z_DUAL_STEPPER_DRIVERS
|
||||||
|
|
||||||
|
#ifdef Z_DUAL_STEPPER_DRIVERS
|
||||||
|
#undef EXTRUDERS
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Same again but for Y Axis.
|
||||||
|
//#define Y_DUAL_STEPPER_DRIVERS
|
||||||
|
|
||||||
|
// Define if the two Y drives need to rotate in opposite directions
|
||||||
|
#define INVERT_Y2_VS_Y_DIR true
|
||||||
|
|
||||||
|
#ifdef Y_DUAL_STEPPER_DRIVERS
|
||||||
|
#undef EXTRUDERS
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS)
|
||||||
|
#error "You cannot have dual drivers for both Y and Z"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Enable this for dual x-carriage printers.
|
||||||
|
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
|
||||||
|
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
|
||||||
|
// allowing faster printing speeds.
|
||||||
|
//#define DUAL_X_CARRIAGE
|
||||||
|
#ifdef DUAL_X_CARRIAGE
|
||||||
|
// Configuration for second X-carriage
|
||||||
|
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
|
||||||
|
// the second x-carriage always homes to the maximum endstop.
|
||||||
|
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
|
||||||
|
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
|
||||||
|
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
|
||||||
|
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
|
||||||
|
// However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
|
||||||
|
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
|
||||||
|
// without modifying the firmware (through the "M218 T1 X???" command).
|
||||||
|
// Remember: you should set the second extruder x-offset to 0 in your slicer.
|
||||||
|
|
||||||
|
// Pins for second x-carriage stepper driver (defined here to avoid further complicating pins.h)
|
||||||
|
#define X2_ENABLE_PIN 29
|
||||||
|
#define X2_STEP_PIN 25
|
||||||
|
#define X2_DIR_PIN 23
|
||||||
|
|
||||||
|
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
|
||||||
|
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
|
||||||
|
// as long as it supports dual x-carriages. (M605 S0)
|
||||||
|
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
|
||||||
|
// that additional slicer support is not required. (M605 S1)
|
||||||
|
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
|
||||||
|
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
|
||||||
|
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
|
||||||
|
|
||||||
|
// This is the default power-up mode which can be later using M605.
|
||||||
|
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
|
||||||
|
|
||||||
|
// Default settings in "Auto-park Mode"
|
||||||
|
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
|
||||||
|
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
|
||||||
|
|
||||||
|
// Default x offset in duplication mode (typically set to half print bed width)
|
||||||
|
#define DEFAULT_DUPLICATION_X_OFFSET 100
|
||||||
|
|
||||||
|
#endif //DUAL_X_CARRIAGE
|
||||||
|
|
||||||
|
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
|
||||||
|
#define X_HOME_RETRACT_MM 5
|
||||||
|
#define Y_HOME_RETRACT_MM 5
|
||||||
|
#define Z_HOME_RETRACT_MM 3
|
||||||
|
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
|
||||||
|
|
||||||
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
#ifdef CONFIG_STEPPERS_TOSHIBA
|
||||||
|
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
|
||||||
|
#else
|
||||||
|
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
|
||||||
|
#endif
|
||||||
|
//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
||||||
|
#define INVERT_X_STEP_PIN false
|
||||||
|
#define INVERT_Y_STEP_PIN false
|
||||||
|
#define INVERT_Z_STEP_PIN false
|
||||||
|
#define INVERT_E_STEP_PIN false
|
||||||
|
|
||||||
|
//default stepper release if idle. Set to 0 to deactivate.
|
||||||
|
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
|
||||||
|
|
||||||
|
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||||
|
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||||
|
|
||||||
|
// Feedrates for manual moves along X, Y, Z, E from panel
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // set the speeds for manual moves (mm/min)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Comment to disable setting feedrate multiplier via encoder
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define ULTIPANEL_FEEDMULTIPLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
|
||||||
|
#define DEFAULT_MINSEGMENTTIME 20000
|
||||||
|
|
||||||
|
// If defined the movements slow down when the look ahead buffer is only half full
|
||||||
|
#define SLOWDOWN
|
||||||
|
|
||||||
|
// Frequency limit
|
||||||
|
// See nophead's blog for more info
|
||||||
|
// Not working O
|
||||||
|
//#define XY_FREQUENCY_LIMIT 15
|
||||||
|
|
||||||
|
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
|
||||||
|
// of the buffer and all stops. This should not be much greater than zero and should only be changed
|
||||||
|
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
|
||||||
|
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
|
||||||
|
|
||||||
|
// MS1 MS2 Stepper Driver Microstepping mode table
|
||||||
|
#define MICROSTEP1 LOW,LOW
|
||||||
|
#define MICROSTEP2 HIGH,LOW
|
||||||
|
#define MICROSTEP4 LOW,HIGH
|
||||||
|
#define MICROSTEP8 HIGH,HIGH
|
||||||
|
#define MICROSTEP16 HIGH,HIGH
|
||||||
|
|
||||||
|
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
|
||||||
|
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
|
||||||
|
|
||||||
|
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
|
||||||
|
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||||
|
|
||||||
|
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||||
|
//#define DIGIPOT_I2C
|
||||||
|
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
|
||||||
|
#define DIGIPOT_I2C_NUM_CHANNELS 8
|
||||||
|
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||||
|
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Additional Features===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
|
||||||
|
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
|
||||||
|
|
||||||
|
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||||
|
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||||
|
|
||||||
|
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||||
|
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||||
|
// using:
|
||||||
|
//#define MENU_ADDAUTOSTART
|
||||||
|
|
||||||
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
//#define LCD_PROGRESS_BAR
|
||||||
|
|
||||||
|
#ifdef LCD_PROGRESS_BAR
|
||||||
|
// Amount of time (ms) to show the bar
|
||||||
|
#define PROGRESS_BAR_BAR_TIME 2000
|
||||||
|
// Amount of time (ms) to show the status message
|
||||||
|
#define PROGRESS_BAR_MSG_TIME 3000
|
||||||
|
// Amount of time (ms) to retain the status message (0=forever)
|
||||||
|
#define PROGRESS_MSG_EXPIRE 0
|
||||||
|
// Enable this to show messages for MSG_TIME then hide them
|
||||||
|
//#define PROGRESS_MSG_ONCE
|
||||||
|
#ifdef DOGLCD
|
||||||
|
#warning LCD_PROGRESS_BAR does not apply to graphical displays at this time.
|
||||||
|
#endif
|
||||||
|
#ifdef FILAMENT_LCD_DISPLAY
|
||||||
|
#error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
|
||||||
|
//#define USE_WATCHDOG
|
||||||
|
|
||||||
|
#ifdef USE_WATCHDOG
|
||||||
|
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
|
||||||
|
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
|
||||||
|
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
|
||||||
|
//#define WATCHDOG_RESET_MANUAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled.
|
||||||
|
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
|
||||||
|
|
||||||
|
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
|
||||||
|
// it can e.g. be used to change z-positions in the print startup phase in real-time
|
||||||
|
// does not respect endstops!
|
||||||
|
//#define BABYSTEPPING
|
||||||
|
#ifdef BABYSTEPPING
|
||||||
|
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
|
||||||
|
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
|
||||||
|
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
|
||||||
|
|
||||||
|
#ifdef COREXY
|
||||||
|
#error BABYSTEPPING not implemented for COREXY yet.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DELTA
|
||||||
|
#ifdef BABYSTEP_XY
|
||||||
|
#error BABYSTEPPING only implemented for Z axis on deltabots.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// extruder advance constant (s2/mm3)
|
||||||
|
//
|
||||||
|
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
||||||
|
//
|
||||||
|
// Hooke's law says: force = k * distance
|
||||||
|
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
||||||
|
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
||||||
|
//#define ADVANCE
|
||||||
|
|
||||||
|
#ifdef ADVANCE
|
||||||
|
#define EXTRUDER_ADVANCE_K .0
|
||||||
|
|
||||||
|
#define D_FILAMENT 2.85
|
||||||
|
#define STEPS_MM_E 836
|
||||||
|
#define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
|
||||||
|
#define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA)
|
||||||
|
|
||||||
|
#endif // ADVANCE
|
||||||
|
|
||||||
|
// Arc interpretation settings:
|
||||||
|
#define MM_PER_ARC_SEGMENT 1
|
||||||
|
#define N_ARC_CORRECTION 25
|
||||||
|
|
||||||
|
const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
|
||||||
|
|
||||||
|
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
|
||||||
|
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
|
||||||
|
// in the pins.h file. When using a push button pulling the pin to ground this will need inverted. This setting should
|
||||||
|
// be commented out otherwise
|
||||||
|
#define SDCARDDETECTINVERTED
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#undef SDCARDDETECTINVERTED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Power Signal Control Definitions
|
||||||
|
// By default use ATX definition
|
||||||
|
#ifndef POWER_SUPPLY
|
||||||
|
#define POWER_SUPPLY 1
|
||||||
|
#endif
|
||||||
|
// 1 = ATX
|
||||||
|
#if (POWER_SUPPLY == 1)
|
||||||
|
#define PS_ON_AWAKE LOW
|
||||||
|
#define PS_ON_ASLEEP HIGH
|
||||||
|
#endif
|
||||||
|
// 2 = X-Box 360 203W
|
||||||
|
#if (POWER_SUPPLY == 2)
|
||||||
|
#define PS_ON_AWAKE HIGH
|
||||||
|
#define PS_ON_ASLEEP LOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Control heater 0 and heater 1 in parallel.
|
||||||
|
//#define HEATERS_PARALLEL
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Buffers ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// The number of linear motions that can be in the plan at any give time.
|
||||||
|
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
|
||||||
|
#if defined SDSUPPORT
|
||||||
|
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
|
||||||
|
#else
|
||||||
|
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//The ASCII buffer for receiving from the serial:
|
||||||
|
#define MAX_CMD_SIZE 96
|
||||||
|
#define BUFSIZE 4
|
||||||
|
|
||||||
|
|
||||||
|
// Firmware based and LCD controlled retract
|
||||||
|
// M207 and M208 can be used to define parameters for the retraction.
|
||||||
|
// The retraction can be called by the slicer using G10 and G11
|
||||||
|
// until then, intended retractions can be detected by moves that only extrude and the direction.
|
||||||
|
// the moves are than replaced by the firmware controlled ones.
|
||||||
|
|
||||||
|
// #define FWRETRACT //ONLY PARTIALLY TESTED
|
||||||
|
#ifdef FWRETRACT
|
||||||
|
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
|
||||||
|
#define RETRACT_LENGTH 3 //default retract length (positive mm)
|
||||||
|
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
|
||||||
|
#define RETRACT_FEEDRATE 45 //default feedrate for retracting (mm/s)
|
||||||
|
#define RETRACT_ZLIFT 0 //default retract Z-lift
|
||||||
|
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
|
||||||
|
#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
|
||||||
|
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//adds support for experimental filament exchange support M600; requires display
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define FILAMENTCHANGEENABLE
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#define FILAMENTCHANGE_XPOS 3
|
||||||
|
#define FILAMENTCHANGE_YPOS 3
|
||||||
|
#define FILAMENTCHANGE_ZADD 10
|
||||||
|
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
||||||
|
#define FILAMENTCHANGE_FINALRETRACT -100
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#ifdef EXTRUDER_RUNOUT_PREVENT
|
||||||
|
#error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Define Defines ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
|
||||||
|
#error "Bed Auto Leveling is still not compatible with Delta Kinematics."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if EXTRUDERS > 1 && defined HEATERS_PARALLEL
|
||||||
|
#error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_0 > 0
|
||||||
|
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
||||||
|
#define HEATER_0_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 > 0
|
||||||
|
#define THERMISTORHEATER_1 TEMP_SENSOR_1
|
||||||
|
#define HEATER_1_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 > 0
|
||||||
|
#define THERMISTORHEATER_2 TEMP_SENSOR_2
|
||||||
|
#define HEATER_2_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 > 0
|
||||||
|
#define THERMISTORHEATER_3 TEMP_SENSOR_3
|
||||||
|
#define HEATER_3_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED > 0
|
||||||
|
#define THERMISTORBED TEMP_SENSOR_BED
|
||||||
|
#define BED_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == -1
|
||||||
|
#define HEATER_0_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 == -1
|
||||||
|
#define HEATER_1_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 == -1
|
||||||
|
#define HEATER_2_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 == -1
|
||||||
|
#define HEATER_3_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED == -1
|
||||||
|
#define BED_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == -2
|
||||||
|
#define HEATER_0_USES_MAX6675
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == 0
|
||||||
|
#undef HEATER_0_MINTEMP
|
||||||
|
#undef HEATER_0_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 == 0
|
||||||
|
#undef HEATER_1_MINTEMP
|
||||||
|
#undef HEATER_1_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 == 0
|
||||||
|
#undef HEATER_2_MINTEMP
|
||||||
|
#undef HEATER_2_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 == 0
|
||||||
|
#undef HEATER_3_MINTEMP
|
||||||
|
#undef HEATER_3_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED == 0
|
||||||
|
#undef BED_MINTEMP
|
||||||
|
#undef BED_MAXTEMP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_ADV_H
|
@ -0,0 +1,13 @@
|
|||||||
|
# Example Configuration for Vellemann K8200
|
||||||
|
* Configuration files for **Vellemann K8200** (with VM8201 - LCD Option for K8200)
|
||||||
|
* K8200 is a 3Drag clone - configuration should work with 3Drag http://reprap.org/wiki/3drag, too. Please report.
|
||||||
|
|
||||||
|
* updated manually with parameters form genuine Vellemann Firmware "firmware_k8200_marlinv2" based on the recent development branch
|
||||||
|
|
||||||
|
* VM8201 uses "DISPLAY_CHARSET_HD44870_JAPAN" and "ULTIMAKERCONTROLLER"
|
||||||
|
* german (de) translation with umlaut is supported now - thanks to @AnHardt for the great hardware based umlaut support
|
||||||
|
|
||||||
|
I (@CONSULitAS) tested the changes on my K8200 with 20x4-LCD and Arduino 1.0.5 for Windows (SD library added to IDE manually) - everything works well.
|
||||||
|
|
||||||
|
**Source for genuine Vellemann Firmware V2 (with LCD/SD-Support):**
|
||||||
|
* [firmware_k8200_marlinv2.zip](http://www.k8200.eu/downloads/files/downloads/firmware_k8200_marlinv2.zip)
|
@ -0,0 +1,838 @@
|
|||||||
|
#ifndef CONFIGURATION_H
|
||||||
|
#define CONFIGURATION_H
|
||||||
|
|
||||||
|
#include "boards.h"
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Getting Started =============================
|
||||||
|
//===========================================================================
|
||||||
|
/*
|
||||||
|
Here are some standard links for getting your machine calibrated:
|
||||||
|
* http://reprap.org/wiki/Calibration
|
||||||
|
* http://youtu.be/wAL9d7FgInk
|
||||||
|
* http://calculator.josefprusa.cz
|
||||||
|
* http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
|
||||||
|
* http://www.thingiverse.com/thing:5573
|
||||||
|
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
|
||||||
|
* http://www.thingiverse.com/thing:298812
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// This configuration file contains the basic settings.
|
||||||
|
// Advanced settings can be found in Configuration_adv.h
|
||||||
|
// BASIC SETTINGS: select your board type, temperature sensor type, axis scaling, and endstop configuration
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= DELTA Printer ===============================
|
||||||
|
//===========================================================================
|
||||||
|
// For a Delta printer replace the configuration files with the files in the
|
||||||
|
// example_configurations/delta directory.
|
||||||
|
//
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= SCARA Printer ===============================
|
||||||
|
//===========================================================================
|
||||||
|
// For a Delta printer replace the configuration files with the files in the
|
||||||
|
// example_configurations/SCARA directory.
|
||||||
|
//
|
||||||
|
|
||||||
|
// 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_VERSION "1.0.2"
|
||||||
|
#define STRING_URL "reprap.org"
|
||||||
|
#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
|
||||||
|
#define STRING_CONFIG_H_AUTHOR "(bq Witbox)" // Who made the changes.
|
||||||
|
#define STRING_SPLASH_LINE1 "v" STRING_VERSION // will be shown during bootup in line 1
|
||||||
|
//#define STRING_SPLASH_LINE2 STRING_VERSION_CONFIG_H // will be shown during bootup in line2
|
||||||
|
|
||||||
|
// SERIAL_PORT selects which serial port should be used for communication with the host.
|
||||||
|
// This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||||
|
// Serial port 0 is still used by the Arduino bootloader regardless of this setting.
|
||||||
|
#define SERIAL_PORT 0
|
||||||
|
|
||||||
|
// This determines the communication speed of the printer
|
||||||
|
#define BAUDRATE 115200
|
||||||
|
|
||||||
|
// This enables the serial port associated to the Bluetooth interface
|
||||||
|
//#define BTENABLED // Enable BT interface on AT90USB devices
|
||||||
|
|
||||||
|
// The following define selects which electronics board you have.
|
||||||
|
// Please choose the name from boards.h that matches your setup
|
||||||
|
#ifndef MOTHERBOARD
|
||||||
|
#define MOTHERBOARD BOARD_WITBOX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Define this to set a custom name for your generic Mendel,
|
||||||
|
// #define CUSTOM_MENDEL_NAME "This Mendel"
|
||||||
|
|
||||||
|
// 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 http://www.uuidgenerator.net/version4)
|
||||||
|
// #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||||
|
|
||||||
|
// This defines the number of extruders
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
|
||||||
|
//// The following define selects which power supply you have. Please choose the one that matches your setup
|
||||||
|
// 1 = ATX
|
||||||
|
// 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
|
||||||
|
|
||||||
|
#define POWER_SUPPLY 1
|
||||||
|
|
||||||
|
// Define this to have the electronics keep the power supply off on startup. If you don't know what this is leave it.
|
||||||
|
// #define PS_DEFAULT_OFF
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Thermal Settings ============================
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
//--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
|
||||||
|
//
|
||||||
|
//// Temperature sensor settings:
|
||||||
|
// -2 is thermocouple with MAX6675 (only for sensor 0)
|
||||||
|
// -1 is thermocouple with AD595
|
||||||
|
// 0 is not used
|
||||||
|
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
|
||||||
|
// 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||||
|
// 3 is Mendel-parts thermistor (4.7k pullup)
|
||||||
|
// 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
||||||
|
// 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
|
||||||
|
// 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
|
||||||
|
// 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
|
||||||
|
// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
|
||||||
|
// 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
|
||||||
|
// 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
|
||||||
|
// 10 is 100k RS thermistor 198-961 (4.7k pullup)
|
||||||
|
// 11 is 100k beta 3950 1% thermistor (4.7k pullup)
|
||||||
|
// 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
|
||||||
|
// 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
|
||||||
|
// 20 is the PT100 circuit found in the Ultimainboard V2.x
|
||||||
|
// 60 is 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||||
|
//
|
||||||
|
// 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k
|
||||||
|
// (but gives greater accuracy and more stable PID)
|
||||||
|
// 51 is 100k thermistor - EPCOS (1k pullup)
|
||||||
|
// 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
|
||||||
|
// 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
|
||||||
|
//
|
||||||
|
// 1047 is Pt1000 with 4k7 pullup
|
||||||
|
// 1010 is Pt1000 with 1k pullup (non standard)
|
||||||
|
// 147 is Pt100 with 4k7 pullup
|
||||||
|
// 110 is Pt100 with 1k pullup (non standard)
|
||||||
|
|
||||||
|
#define TEMP_SENSOR_0 1
|
||||||
|
#define TEMP_SENSOR_1 0
|
||||||
|
#define TEMP_SENSOR_2 0
|
||||||
|
#define TEMP_SENSOR_BED 0
|
||||||
|
|
||||||
|
// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted.
|
||||||
|
//#define TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
|
||||||
|
|
||||||
|
// Actual temperature must be close to target for this long before M109 returns success
|
||||||
|
#define TEMP_RESIDENCY_TIME 10 // (seconds)
|
||||||
|
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered "close" to the target one
|
||||||
|
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
|
||||||
|
|
||||||
|
// The minimal temperature defines the temperature below which the heater will not be enabled It is used
|
||||||
|
// to check that the wiring to the thermistor is not broken.
|
||||||
|
// Otherwise this would lead to the heater being powered on all the time.
|
||||||
|
#define HEATER_0_MINTEMP 5
|
||||||
|
#define HEATER_1_MINTEMP 5
|
||||||
|
#define HEATER_2_MINTEMP 5
|
||||||
|
#define BED_MINTEMP 5
|
||||||
|
|
||||||
|
// When temperature exceeds max temp, your heater will be switched off.
|
||||||
|
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
|
||||||
|
// You should use MINTEMP for thermistor short/failure protection.
|
||||||
|
#define HEATER_0_MAXTEMP 260
|
||||||
|
#define HEATER_1_MAXTEMP 260
|
||||||
|
#define HEATER_2_MAXTEMP 260
|
||||||
|
#define BED_MAXTEMP 150
|
||||||
|
|
||||||
|
// If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
|
||||||
|
// average current. The value should be an integer and the heat bed will be turned on for 1 interval of
|
||||||
|
// HEATER_BED_DUTY_CYCLE_DIVIDER intervals.
|
||||||
|
//#define HEATER_BED_DUTY_CYCLE_DIVIDER 4
|
||||||
|
|
||||||
|
// If you want the M105 heater power reported in watts, define the BED_WATTS, and (shared for all extruders) EXTRUDER_WATTS
|
||||||
|
//#define EXTRUDER_WATTS (12.0*12.0/6.7) // P=I^2/R
|
||||||
|
//#define BED_WATTS (12.0*12.0/1.1) // P=I^2/R
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= PID Settings ================================
|
||||||
|
//===========================================================================
|
||||||
|
// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
|
||||||
|
|
||||||
|
// Comment the following line to disable PID and enable bang-bang.
|
||||||
|
#define PIDTEMP
|
||||||
|
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
|
||||||
|
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
|
||||||
|
#ifdef PIDTEMP
|
||||||
|
//#define PID_DEBUG // Sends debug data to the serial port.
|
||||||
|
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
|
||||||
|
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
|
||||||
|
//#define PID_PARAMS_PER_EXTRUDER // Uses separate PID parameters for each extruder (useful for mismatched extruders)
|
||||||
|
// Set/get with gcode: M301 E[extruder number, 0-2]
|
||||||
|
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
|
||||||
|
// is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
|
||||||
|
#define PID_INTEGRAL_DRIVE_MAX PID_MAX //limit for the integral term
|
||||||
|
#define K1 0.95 //smoothing factor within the PID
|
||||||
|
#define PID_dT ((OVERSAMPLENR * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// MakerGear
|
||||||
|
// #define DEFAULT_Kp 7.0
|
||||||
|
// #define DEFAULT_Ki 0.1
|
||||||
|
// #define DEFAULT_Kd 12
|
||||||
|
|
||||||
|
// Mendel Parts V9 on 12V
|
||||||
|
// #define DEFAULT_Kp 63.0
|
||||||
|
// #define DEFAULT_Ki 2.25
|
||||||
|
// #define DEFAULT_Kd 440
|
||||||
|
|
||||||
|
// Witbox
|
||||||
|
#define DEFAULT_Kp 22.2
|
||||||
|
#define DEFAULT_Ki 1.08
|
||||||
|
#define DEFAULT_Kd 114
|
||||||
|
#endif // PIDTEMP
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= PID > Bed Temperature Control ===============
|
||||||
|
//===========================================================================
|
||||||
|
// Select PID or bang-bang with PIDTEMPBED. If bang-bang, BED_LIMIT_SWITCHING will enable hysteresis
|
||||||
|
//
|
||||||
|
// Uncomment this to enable PID on the bed. It uses the same frequency PWM as the extruder.
|
||||||
|
// If your PID_dT above is the default, and correct for your hardware/configuration, that means 7.689Hz,
|
||||||
|
// which is fine for driving a square wave into a resistive load and does not significantly impact you FET heating.
|
||||||
|
// This also works fine on a Fotek SSR-10DA Solid State Relay into a 250W heater.
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
//#define BED_LIMIT_SWITCHING
|
||||||
|
|
||||||
|
// This sets the max power delivered to the bed, and replaces the HEATER_BED_DUTY_CYCLE_DIVIDER option.
|
||||||
|
// all forms of bed control obey this (PID, bang-bang, bang-bang with hysteresis)
|
||||||
|
// setting this to anything other than 255 enables a form of PWM to the bed just like HEATER_BED_DUTY_CYCLE_DIVIDER did,
|
||||||
|
// so you shouldn't use it unless you are OK with PWM on your bed. (see the comment on enabling PIDTEMPBED)
|
||||||
|
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=full current
|
||||||
|
|
||||||
|
#ifdef PIDTEMPBED
|
||||||
|
//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
|
||||||
|
|
||||||
|
//120v 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
|
//from pidautotune
|
||||||
|
// #define DEFAULT_bedKp 97.1
|
||||||
|
// #define DEFAULT_bedKi 1.41
|
||||||
|
// #define DEFAULT_bedKd 1675.16
|
||||||
|
|
||||||
|
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||||
|
#endif // PIDTEMPBED
|
||||||
|
|
||||||
|
|
||||||
|
//this prevents dangerous Extruder moves, i.e. if the temperature is under the limit
|
||||||
|
//can be software-disabled for whatever purposes by
|
||||||
|
#define PREVENT_DANGEROUS_EXTRUDE
|
||||||
|
//if PREVENT_DANGEROUS_EXTRUDE is on, you can still disable (uncomment) very long bits of extrusion separately.
|
||||||
|
#define PREVENT_LENGTHY_EXTRUDE
|
||||||
|
|
||||||
|
#define EXTRUDE_MINTEMP 170
|
||||||
|
#define EXTRUDE_MAXLENGTH (X_MAX_LENGTH+Y_MAX_LENGTH) //prevent extrusion of very large distances.
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Thermal Runaway Protection ==================
|
||||||
|
//===========================================================================
|
||||||
|
/*
|
||||||
|
This is a feature to protect your printer from burn up in flames if it has
|
||||||
|
a thermistor coming off place (this happened to a friend of mine recently and
|
||||||
|
motivated me writing this feature).
|
||||||
|
|
||||||
|
The issue: If a thermistor come off, it will read a lower temperature than actual.
|
||||||
|
The system will turn the heater on forever, burning up the filament and anything
|
||||||
|
else around.
|
||||||
|
|
||||||
|
After the temperature reaches the target for the first time, this feature will
|
||||||
|
start measuring for how long the current temperature stays below the target
|
||||||
|
minus _HYSTERESIS (set_temperature - THERMAL_RUNAWAY_PROTECTION_HYSTERESIS).
|
||||||
|
|
||||||
|
If it stays longer than _PERIOD, it means the thermistor temperature
|
||||||
|
cannot catch up with the target, so something *may be* wrong. Then, to be on the
|
||||||
|
safe side, the system will he halt.
|
||||||
|
|
||||||
|
Bear in mind the count down will just start AFTER the first time the
|
||||||
|
thermistor temperature is over the target, so you will have no problem if
|
||||||
|
your extruder heater takes 2 minutes to hit the target on heating.
|
||||||
|
|
||||||
|
*/
|
||||||
|
// If you want to enable this feature for all your extruder heaters,
|
||||||
|
// uncomment the 2 defines below:
|
||||||
|
|
||||||
|
// Parameters for all extruder heaters
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40 //in seconds
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4 // in degree Celsius
|
||||||
|
|
||||||
|
// If you want to enable this feature for your bed heater,
|
||||||
|
// uncomment the 2 defines below:
|
||||||
|
|
||||||
|
// Parameters for the bed heater
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20 //in seconds
|
||||||
|
//#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2 // in degree Celsius
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Mechanical Settings =========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// Uncomment the following line to enable CoreXY kinematics
|
||||||
|
// #define COREXY
|
||||||
|
|
||||||
|
// coarse Endstop Settings
|
||||||
|
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
|
||||||
|
|
||||||
|
#ifndef ENDSTOPPULLUPS
|
||||||
|
// fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
|
||||||
|
// #define ENDSTOPPULLUP_XMAX
|
||||||
|
// #define ENDSTOPPULLUP_YMAX
|
||||||
|
// #define ENDSTOPPULLUP_ZMAX
|
||||||
|
// #define ENDSTOPPULLUP_XMIN
|
||||||
|
// #define ENDSTOPPULLUP_YMIN
|
||||||
|
// #define ENDSTOPPULLUP_ZMIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENDSTOPPULLUPS
|
||||||
|
#define ENDSTOPPULLUP_XMAX
|
||||||
|
#define ENDSTOPPULLUP_YMAX
|
||||||
|
#define ENDSTOPPULLUP_ZMAX
|
||||||
|
#define ENDSTOPPULLUP_XMIN
|
||||||
|
#define ENDSTOPPULLUP_YMIN
|
||||||
|
#define ENDSTOPPULLUP_ZMIN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
|
||||||
|
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
|
||||||
|
//#define DISABLE_MAX_ENDSTOPS
|
||||||
|
//#define DISABLE_MIN_ENDSTOPS
|
||||||
|
|
||||||
|
// Disable max endstops for compatibility with endstop checking routine
|
||||||
|
#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
|
||||||
|
#define DISABLE_MAX_ENDSTOPS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
|
||||||
|
#define X_ENABLE_ON 0
|
||||||
|
#define Y_ENABLE_ON 0
|
||||||
|
#define Z_ENABLE_ON 0
|
||||||
|
#define E_ENABLE_ON 0 // For all extruders
|
||||||
|
|
||||||
|
// Disables axis when it's not being used.
|
||||||
|
#define DISABLE_X false
|
||||||
|
#define DISABLE_Y false
|
||||||
|
#define DISABLE_Z true
|
||||||
|
#define DISABLE_E false // For all extruders
|
||||||
|
#define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
|
||||||
|
|
||||||
|
#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
|
||||||
|
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
|
||||||
|
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
#define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
|
||||||
|
|
||||||
|
// ENDSTOP SETTINGS:
|
||||||
|
// Sets direction of endstops when homing; 1=MAX, -1=MIN
|
||||||
|
#define X_HOME_DIR 1
|
||||||
|
#define Y_HOME_DIR 1
|
||||||
|
#define Z_HOME_DIR -1
|
||||||
|
|
||||||
|
#define min_software_endstops true // If true, axis won't move to coordinates less than HOME_POS.
|
||||||
|
#define max_software_endstops true // If true, axis won't move to coordinates greater than the defined lengths below.
|
||||||
|
|
||||||
|
// Travel limits after homing (units are in mm)
|
||||||
|
#define X_MAX_POS 297
|
||||||
|
#define X_MIN_POS 0
|
||||||
|
#define Y_MAX_POS 210
|
||||||
|
#define Y_MIN_POS 0
|
||||||
|
#define Z_MAX_POS 200
|
||||||
|
#define Z_MIN_POS 0
|
||||||
|
|
||||||
|
#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
|
||||||
|
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
|
||||||
|
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Bed Auto Leveling ===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
|
||||||
|
#define Z_PROBE_REPEATABILITY_TEST // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
|
||||||
|
|
||||||
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
|
// There are 2 different ways to pick the X and Y locations to probe:
|
||||||
|
|
||||||
|
// - "grid" mode
|
||||||
|
// Probe every point in a rectangular grid
|
||||||
|
// You must specify the rectangle, and the density of sample points
|
||||||
|
// This mode is preferred because there are more measurements.
|
||||||
|
// It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
|
||||||
|
|
||||||
|
// - "3-point" mode
|
||||||
|
// Probe 3 arbitrary points on the bed (that aren't colinear)
|
||||||
|
// You must specify the X & Y coordinates of all 3 points
|
||||||
|
|
||||||
|
#define AUTO_BED_LEVELING_GRID
|
||||||
|
// with AUTO_BED_LEVELING_GRID, the bed is sampled in a
|
||||||
|
// AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
|
||||||
|
// and least squares solution is calculated
|
||||||
|
// Note: this feature occupies 10'206 byte
|
||||||
|
#ifdef AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
// set the rectangle in which to probe
|
||||||
|
#define LEFT_PROBE_BED_POSITION 15
|
||||||
|
#define RIGHT_PROBE_BED_POSITION 170
|
||||||
|
#define BACK_PROBE_BED_POSITION 180
|
||||||
|
#define FRONT_PROBE_BED_POSITION 20
|
||||||
|
|
||||||
|
// set the number of grid points per dimension
|
||||||
|
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)
|
||||||
|
#define AUTO_BED_LEVELING_GRID_POINTS 2
|
||||||
|
|
||||||
|
|
||||||
|
#else // not AUTO_BED_LEVELING_GRID
|
||||||
|
// with no grid, just probe 3 arbitrary points. A simple cross-product
|
||||||
|
// is used to esimate the plane of the print bed
|
||||||
|
|
||||||
|
#define ABL_PROBE_PT_1_X 15
|
||||||
|
#define ABL_PROBE_PT_1_Y 180
|
||||||
|
#define ABL_PROBE_PT_2_X 15
|
||||||
|
#define ABL_PROBE_PT_2_Y 20
|
||||||
|
#define ABL_PROBE_PT_3_X 170
|
||||||
|
#define ABL_PROBE_PT_3_Y 20
|
||||||
|
|
||||||
|
#endif // AUTO_BED_LEVELING_GRID
|
||||||
|
|
||||||
|
|
||||||
|
// these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
|
||||||
|
// X and Y offsets must be integers
|
||||||
|
#define X_PROBE_OFFSET_FROM_EXTRUDER -25
|
||||||
|
#define Y_PROBE_OFFSET_FROM_EXTRUDER -29
|
||||||
|
#define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
|
||||||
|
|
||||||
|
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.
|
||||||
|
// Be sure you have this distance over your Z_MAX_POS in case
|
||||||
|
|
||||||
|
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min
|
||||||
|
|
||||||
|
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.
|
||||||
|
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points
|
||||||
|
|
||||||
|
//#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
|
||||||
|
//#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
|
||||||
|
|
||||||
|
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
|
||||||
|
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
|
||||||
|
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
|
||||||
|
|
||||||
|
// #define PROBE_SERVO_DEACTIVATION_DELAY 300
|
||||||
|
|
||||||
|
|
||||||
|
//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
|
||||||
|
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
|
||||||
|
|
||||||
|
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.
|
||||||
|
// When defined, it will:
|
||||||
|
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled
|
||||||
|
// - If stepper drivers timeout, it will need X and Y homing again before Z homing
|
||||||
|
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
|
||||||
|
// - Block Z homing only when the probe is outside bed area.
|
||||||
|
|
||||||
|
#ifdef Z_SAFE_HOMING
|
||||||
|
|
||||||
|
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)
|
||||||
|
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef AUTO_BED_LEVELING_GRID // Check if Probe_Offset * Grid Points is greater than Probing Range
|
||||||
|
#if X_PROBE_OFFSET_FROM_EXTRUDER < 0
|
||||||
|
#if (-(X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
|
||||||
|
#error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if ((X_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
|
||||||
|
#error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
|
||||||
|
#if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
|
||||||
|
#error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if ((Y_PROBE_OFFSET_FROM_EXTRUDER * (AUTO_BED_LEVELING_GRID_POINTS-1)) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
|
||||||
|
#error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
|
|
||||||
|
// The position of the homing switches
|
||||||
|
//#define MANUAL_HOME_POSITIONS // If defined, MANUAL_*_HOME_POS below will be used
|
||||||
|
//#define BED_CENTER_AT_0_0 // If defined, the center of the bed is at (X=0, Y=0)
|
||||||
|
|
||||||
|
//Manual homing switch locations:
|
||||||
|
// For deltabots this means top and center of the Cartesian print volume.
|
||||||
|
#define MANUAL_X_HOME_POS 0
|
||||||
|
#define MANUAL_Y_HOME_POS 0
|
||||||
|
#define MANUAL_Z_HOME_POS 0
|
||||||
|
//#define MANUAL_Z_HOME_POS 402 // For delta: Distance between nozzle and print surface after homing.
|
||||||
|
|
||||||
|
//// MOVEMENT SETTINGS
|
||||||
|
#define NUM_AXIS 4 // The axis order in all axis related arrays is X, Y, Z, E
|
||||||
|
#define HOMING_FEEDRATE {120*60, 120*60, 7.2*60, 0} // set the homing speeds (mm/min)
|
||||||
|
|
||||||
|
// default settings
|
||||||
|
|
||||||
|
#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,600.0*8/3,102.073} // default steps per unit for Ultimaker
|
||||||
|
#define DEFAULT_MAX_FEEDRATE {350, 350, 7.2, 80} // (mm/sec)
|
||||||
|
#define DEFAULT_MAX_ACCELERATION {1000,1000,10,1000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.
|
||||||
|
|
||||||
|
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves
|
||||||
|
#define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts
|
||||||
|
|
||||||
|
// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
|
||||||
|
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
|
||||||
|
// For the other hotends it is their distance from the extruder 0 hotend.
|
||||||
|
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||||
|
// #define EXTRUDER_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||||
|
|
||||||
|
// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
|
||||||
|
#define DEFAULT_XYJERK 10.0 // (mm/sec)
|
||||||
|
#define DEFAULT_ZJERK 0.4 // (mm/sec)
|
||||||
|
#define DEFAULT_EJERK 5.0 // (mm/sec)
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================ Additional Features ==========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// Custom M code points
|
||||||
|
#define CUSTOM_M_CODES
|
||||||
|
#ifdef CUSTOM_M_CODES
|
||||||
|
#define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851
|
||||||
|
#define Z_PROBE_OFFSET_RANGE_MIN -15
|
||||||
|
#define Z_PROBE_OFFSET_RANGE_MAX -5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// EEPROM
|
||||||
|
// The microcontroller can store settings in the EEPROM, e.g. max velocity...
|
||||||
|
// M500 - stores parameters in EEPROM
|
||||||
|
// 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 this to enable EEPROM support
|
||||||
|
//#define EEPROM_SETTINGS
|
||||||
|
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||||
|
// please keep turned on if you can.
|
||||||
|
//#define EEPROM_CHITCHAT
|
||||||
|
|
||||||
|
// Preheat Constants
|
||||||
|
#define PLA_PREHEAT_HOTEND_TEMP 200
|
||||||
|
#define PLA_PREHEAT_HPB_TEMP 0
|
||||||
|
#define PLA_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
|
||||||
|
|
||||||
|
#define ABS_PREHEAT_HOTEND_TEMP 220
|
||||||
|
#define ABS_PREHEAT_HPB_TEMP 100
|
||||||
|
#define ABS_PREHEAT_FAN_SPEED 255 // Insert Value between 0 and 255
|
||||||
|
|
||||||
|
//LCD and SD support
|
||||||
|
|
||||||
|
// Character based displays can have different extended charsets.
|
||||||
|
#define DISPLAY_CHARSET_HD44780_JAPAN // "ääööüüß23°"
|
||||||
|
//#define DISPLAY_CHARSET_HD44780_WESTERN // "ÄäÖöÜüß²³°" if you see a '~' instead of a 'arrow_right' at the right of submenuitems - this is the right one.
|
||||||
|
|
||||||
|
#define ULTRA_LCD //general LCD support, also 16x2
|
||||||
|
//#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||||
|
#define SDSUPPORT // Enable SD Card Support in Hardware Console
|
||||||
|
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
|
||||||
|
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
|
||||||
|
//#define ENCODER_PULSES_PER_STEP 1 // Increase if you have a high resolution encoder
|
||||||
|
//#define ENCODER_STEPS_PER_MENU_ITEM 5 // Set according to ENCODER_PULSES_PER_STEP or your liking
|
||||||
|
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
|
||||||
|
#define ULTIPANEL //the UltiPanel as on Thingiverse
|
||||||
|
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000 // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
|
||||||
|
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click
|
||||||
|
|
||||||
|
// The MaKr3d Makr-Panel with graphic controller and SD support
|
||||||
|
// http://reprap.org/wiki/MaKr3d_MaKrPanel
|
||||||
|
//#define MAKRPANEL
|
||||||
|
|
||||||
|
// The RepRapDiscount Smart Controller (white PCB)
|
||||||
|
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
|
||||||
|
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
|
||||||
|
// The GADGETS3D G3D LCD/SD Controller (blue PCB)
|
||||||
|
// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
|
||||||
|
//#define G3D_PANEL
|
||||||
|
|
||||||
|
// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCB)
|
||||||
|
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
|
||||||
|
//
|
||||||
|
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
|
||||||
|
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||||
|
|
||||||
|
// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
|
||||||
|
// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
|
||||||
|
//#define REPRAPWORLD_KEYPAD
|
||||||
|
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click
|
||||||
|
|
||||||
|
// The Elefu RA Board Control Panel
|
||||||
|
// http://www.elefu.com/index.php?route=product/product&product_id=53
|
||||||
|
// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C
|
||||||
|
//#define RA_CONTROL_PANEL
|
||||||
|
|
||||||
|
//automatic expansion
|
||||||
|
#if defined (MAKRPANEL)
|
||||||
|
#define DOGLCD
|
||||||
|
#define SDSUPPORT
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#define DEFAULT_LCD_CONTRAST 17
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
|
||||||
|
#define DOGLCD
|
||||||
|
#define U8GLIB_ST7920
|
||||||
|
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(REPRAPWORLD_KEYPAD)
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
#if defined(RA_CONTROL_PANEL)
|
||||||
|
#define ULTIPANEL
|
||||||
|
#define NEWPANEL
|
||||||
|
#define LCD_I2C_TYPE_PCA8574
|
||||||
|
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//I2C PANELS
|
||||||
|
|
||||||
|
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||||
|
#ifdef LCD_I2C_SAINSMART_YWROBOT
|
||||||
|
// This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
|
||||||
|
// Make sure it is placed in the Arduino libraries directory.
|
||||||
|
#define LCD_I2C_TYPE_PCF8575
|
||||||
|
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||||
|
//#define LCD_I2C_PANELOLU2
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||||
|
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||||
|
// (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
|
||||||
|
// Note: The PANELOLU2 encoder click input can either be directly connected to a pin
|
||||||
|
// (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
|
||||||
|
#define LCD_I2C_TYPE_MCP23017
|
||||||
|
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||||
|
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
|
||||||
|
#ifndef ENCODER_PULSES_PER_STEP
|
||||||
|
#define ENCODER_PULSES_PER_STEP 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENCODER_STEPS_PER_MENU_ITEM
|
||||||
|
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef LCD_USE_I2C_BUZZER
|
||||||
|
#define LCD_FEEDBACK_FREQUENCY_HZ 1000
|
||||||
|
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||||
|
//#define LCD_I2C_VIKI
|
||||||
|
#ifdef LCD_I2C_VIKI
|
||||||
|
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||||
|
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||||
|
// Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||||
|
// BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||||
|
#define LCD_I2C_TYPE_MCP23017
|
||||||
|
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||||
|
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Shift register panels
|
||||||
|
// ---------------------
|
||||||
|
// 2 wire Non-latching LCD SR from:
|
||||||
|
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
|
||||||
|
|
||||||
|
//#define SAV_3DLCD
|
||||||
|
#ifdef SAV_3DLCD
|
||||||
|
#define SR_LCD_2W_NL // Non latching 2 wire shiftregister
|
||||||
|
#define NEWPANEL
|
||||||
|
#define ULTIPANEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
// #define NEWPANEL //enable this if you have a click-encoder panel
|
||||||
|
#define SDSUPPORT
|
||||||
|
#define ULTRA_LCD
|
||||||
|
#ifdef DOGLCD // Change number of lines to match the DOG graphic display
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 5
|
||||||
|
#else
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 4
|
||||||
|
#endif
|
||||||
|
#else //no panel but just LCD
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
#ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
|
||||||
|
#define LCD_WIDTH 20
|
||||||
|
#define LCD_HEIGHT 5
|
||||||
|
#else
|
||||||
|
#define LCD_WIDTH 16
|
||||||
|
#define LCD_HEIGHT 2
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// default LCD contrast for dogm-like LCD displays
|
||||||
|
#ifdef DOGLCD
|
||||||
|
# ifndef DEFAULT_LCD_CONTRAST
|
||||||
|
# define DEFAULT_LCD_CONTRAST 32
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Increase the FAN pwm frequency. Removes the PWM noise but increases heating in the FET/Arduino
|
||||||
|
//#define FAST_PWM_FAN
|
||||||
|
|
||||||
|
// Temperature status LEDs that display the hotend and bet temperature.
|
||||||
|
// If all hotends and bed temperature and temperature setpoint are < 54C then the BLUE led is on.
|
||||||
|
// Otherwise the RED led is on. There is 1C hysteresis.
|
||||||
|
//#define TEMP_STAT_LEDS
|
||||||
|
|
||||||
|
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
|
||||||
|
// which is not ass annoying as with the hardware PWM. On the other hand, if this frequency
|
||||||
|
// is too low, you should also increment SOFT_PWM_SCALE.
|
||||||
|
//#define FAN_SOFT_PWM
|
||||||
|
|
||||||
|
// Incrementing this by 1 will double the software PWM frequency,
|
||||||
|
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
|
||||||
|
// However, control resolution will be halved for each increment;
|
||||||
|
// at zero value, there are 128 effective control positions.
|
||||||
|
#define SOFT_PWM_SCALE 0
|
||||||
|
|
||||||
|
// M240 Triggers a camera by emulating a Canon RC-1 Remote
|
||||||
|
// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
|
||||||
|
// #define PHOTOGRAPH_PIN 23
|
||||||
|
|
||||||
|
// SF send wrong arc g-codes when using Arc Point as fillet procedure
|
||||||
|
//#define SF_ARC_FIX
|
||||||
|
|
||||||
|
// Support for the BariCUDA Paste Extruder.
|
||||||
|
//#define BARICUDA
|
||||||
|
|
||||||
|
//define BlinkM/CyzRgb Support
|
||||||
|
//#define BLINKM
|
||||||
|
|
||||||
|
/*********************************************************************\
|
||||||
|
* R/C SERVO support
|
||||||
|
* Sponsored by TrinityLabs, Reworked by codexmas
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
// Number of servos
|
||||||
|
//
|
||||||
|
// If you select a configuration below, this will receive a default value and does not need to be set manually
|
||||||
|
// set it manually if you have more servos than extruders and wish to manually control some
|
||||||
|
// leaving it undefined or defining as 0 will disable the servo subsystem
|
||||||
|
// If unsure, leave commented / disabled
|
||||||
|
//
|
||||||
|
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
|
||||||
|
|
||||||
|
// Servo Endstops
|
||||||
|
//
|
||||||
|
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.
|
||||||
|
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.
|
||||||
|
//
|
||||||
|
//#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
|
||||||
|
//#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 70,0} // X,Y,Z Axis Extend and Retract angles
|
||||||
|
|
||||||
|
/**********************************************************************\
|
||||||
|
* Support for a filament diameter sensor
|
||||||
|
* Also allows adjustment of diameter at print time (vs at slicing)
|
||||||
|
* Single extruder only at this point (extruder 0)
|
||||||
|
*
|
||||||
|
* Motherboards
|
||||||
|
* 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
|
||||||
|
* 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
|
||||||
|
* 301 - Rambo - uses Analog input 3
|
||||||
|
* Note may require analog pins to be defined for different motherboards
|
||||||
|
**********************************************************************/
|
||||||
|
// Uncomment below to enable
|
||||||
|
//#define FILAMENT_SENSOR
|
||||||
|
|
||||||
|
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2)
|
||||||
|
#define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel
|
||||||
|
|
||||||
|
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0 //Enter the diameter (in mm) of the filament generally used (3.0 mm or 1.75 mm) - this is then used in the slicer software. Used for sensor reading validation
|
||||||
|
#define MEASURED_UPPER_LIMIT 3.30 //upper limit factor used for sensor reading validation in mm
|
||||||
|
#define MEASURED_LOWER_LIMIT 1.90 //lower limit factor for sensor reading validation in mm
|
||||||
|
#define MAX_MEASUREMENT_DELAY 20 //delay buffer size in bytes (1 byte = 1cm)- limits maximum measurement delay allowable (must be larger than MEASUREMENT_DELAY_CM and lower number saves RAM)
|
||||||
|
|
||||||
|
//defines used in the code
|
||||||
|
#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA //set measured to nominal initially
|
||||||
|
|
||||||
|
//When using an LCD, uncomment the line below to display the Filament sensor data on the last line instead of status. Status will appear for 5 sec.
|
||||||
|
//#define FILAMENT_LCD_DISPLAY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "Configuration_adv.h"
|
||||||
|
#include "thermistortables.h"
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_H
|
@ -0,0 +1,535 @@
|
|||||||
|
#ifndef CONFIGURATION_ADV_H
|
||||||
|
#define CONFIGURATION_ADV_H
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Thermal Settings ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#ifdef BED_LIMIT_SWITCHING
|
||||||
|
#define BED_HYSTERESIS 2 //only disable heating if T>target+BED_HYSTERESIS and enable heating if T>target-BED_HYSTERESIS
|
||||||
|
#endif
|
||||||
|
#define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control
|
||||||
|
|
||||||
|
//// Heating sanity check:
|
||||||
|
// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperature
|
||||||
|
// If the temperature has not increased at the end of that period, the target temperature is set to zero.
|
||||||
|
// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature
|
||||||
|
// differ by at least 2x WATCH_TEMP_INCREASE
|
||||||
|
//#define WATCH_TEMP_PERIOD 40000 //40 seconds
|
||||||
|
//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds
|
||||||
|
|
||||||
|
#ifdef PIDTEMP
|
||||||
|
// this adds an experimental additional term to the heating power, proportional to the extrusion speed.
|
||||||
|
// if Kc is chosen well, the additional required power due to increased melting should be compensated.
|
||||||
|
#define PID_ADD_EXTRUSION_RATE
|
||||||
|
#ifdef PID_ADD_EXTRUSION_RATE
|
||||||
|
#define DEFAULT_Kc (1) //heating power=Kc*(e_speed)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//automatic temperature: The hot end target temperature is calculated by all the buffered lines of gcode.
|
||||||
|
//The maximum buffered steps/sec of the extruder motor are called "se".
|
||||||
|
//You enter the autotemp mode by a M109 S<mintemp> B<maxtemp> F<factor>
|
||||||
|
// the target temperature is set to mintemp+factor*se[steps/sec] and limited by mintemp and maxtemp
|
||||||
|
// you exit the value by any M109 without F*
|
||||||
|
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
|
||||||
|
// on an Ultimaker, some initial testing worked with M109 S215 B260 F1 in the start.gcode
|
||||||
|
#define AUTOTEMP
|
||||||
|
#ifdef AUTOTEMP
|
||||||
|
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Show Temperature ADC value
|
||||||
|
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||||
|
//#define SHOW_TEMP_ADC_VALUES
|
||||||
|
|
||||||
|
// extruder run-out prevention.
|
||||||
|
//if the machine is idle, and the temperature over MINTEMP, every couple of SECONDS some filament is extruded
|
||||||
|
//#define EXTRUDER_RUNOUT_PREVENT
|
||||||
|
#define EXTRUDER_RUNOUT_MINTEMP 190
|
||||||
|
#define EXTRUDER_RUNOUT_SECONDS 30.
|
||||||
|
#define EXTRUDER_RUNOUT_ESTEPS 14. //mm filament
|
||||||
|
#define EXTRUDER_RUNOUT_SPEED 1500. //extrusion speed
|
||||||
|
#define EXTRUDER_RUNOUT_EXTRUDE 100
|
||||||
|
|
||||||
|
//These defines help to calibrate the AD595 sensor in case you get wrong temperature measurements.
|
||||||
|
//The measured temperature is defined as "actualTemp = (measuredTemp * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET"
|
||||||
|
#define TEMP_SENSOR_AD595_OFFSET 0.0
|
||||||
|
#define TEMP_SENSOR_AD595_GAIN 1.0
|
||||||
|
|
||||||
|
//This is for controlling a fan to cool down the stepper drivers
|
||||||
|
//it will turn on when any driver is enabled
|
||||||
|
//and turn off after the set amount of seconds from last driver being disabled again
|
||||||
|
#define CONTROLLERFAN_PIN -1 //Pin used for the fan to cool controller (-1 to disable)
|
||||||
|
#define CONTROLLERFAN_SECS 60 //How many seconds, after all motors were disabled, the fan should run
|
||||||
|
#define CONTROLLERFAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
// When first starting the main fan, run it at full speed for the
|
||||||
|
// given number of milliseconds. This gets the fan spinning reliably
|
||||||
|
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
|
||||||
|
//#define FAN_KICKSTART_TIME 100
|
||||||
|
|
||||||
|
// Extruder cooling fans
|
||||||
|
// Configure fan pin outputs to automatically turn on/off when the associated
|
||||||
|
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
|
||||||
|
// Multiple extruders can be assigned to the same pin in which case
|
||||||
|
// the fan will turn on when any selected extruder is above the threshold.
|
||||||
|
#define EXTRUDER_0_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_1_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_2_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_3_AUTO_FAN_PIN -1
|
||||||
|
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||||
|
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||||
|
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Mechanical Settings===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
|
||||||
|
|
||||||
|
|
||||||
|
//// AUTOSET LOCATIONS OF LIMIT SWITCHES
|
||||||
|
//// Added by ZetaPhoenix 09-15-2012
|
||||||
|
#ifdef MANUAL_HOME_POSITIONS // Use manual limit switch locations
|
||||||
|
#define X_HOME_POS MANUAL_X_HOME_POS
|
||||||
|
#define Y_HOME_POS MANUAL_Y_HOME_POS
|
||||||
|
#define Z_HOME_POS MANUAL_Z_HOME_POS
|
||||||
|
#else //Set min/max homing switch positions based upon homing direction and min/max travel limits
|
||||||
|
//X axis
|
||||||
|
#if X_HOME_DIR == -1
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define X_HOME_POS X_MAX_LENGTH * -0.5
|
||||||
|
#else
|
||||||
|
#define X_HOME_POS X_MIN_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#else
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define X_HOME_POS X_MAX_LENGTH * 0.5
|
||||||
|
#else
|
||||||
|
#define X_HOME_POS X_MAX_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#endif //X_HOME_DIR == -1
|
||||||
|
|
||||||
|
//Y axis
|
||||||
|
#if Y_HOME_DIR == -1
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define Y_HOME_POS Y_MAX_LENGTH * -0.5
|
||||||
|
#else
|
||||||
|
#define Y_HOME_POS Y_MIN_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#else
|
||||||
|
#ifdef BED_CENTER_AT_0_0
|
||||||
|
#define Y_HOME_POS Y_MAX_LENGTH * 0.5
|
||||||
|
#else
|
||||||
|
#define Y_HOME_POS Y_MAX_POS
|
||||||
|
#endif //BED_CENTER_AT_0_0
|
||||||
|
#endif //Y_HOME_DIR == -1
|
||||||
|
|
||||||
|
// Z axis
|
||||||
|
#if Z_HOME_DIR == -1 //BED_CENTER_AT_0_0 not used
|
||||||
|
#define Z_HOME_POS Z_MIN_POS
|
||||||
|
#else
|
||||||
|
#define Z_HOME_POS Z_MAX_POS
|
||||||
|
#endif //Z_HOME_DIR == -1
|
||||||
|
#endif //End auto min/max positions
|
||||||
|
//END AUTOSET LOCATIONS OF LIMIT SWITCHES -ZP
|
||||||
|
|
||||||
|
|
||||||
|
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.
|
||||||
|
|
||||||
|
// A single Z stepper driver is usually used to drive 2 stepper motors.
|
||||||
|
// Uncomment this define to utilize a separate stepper driver for each Z axis motor.
|
||||||
|
// Only a few motherboards support this, like RAMPS, which have dual extruder support (the 2nd, often unused, extruder driver is used
|
||||||
|
// to control the 2nd Z axis stepper motor). The pins are currently only defined for a RAMPS motherboards.
|
||||||
|
// On a RAMPS (or other 5 driver) motherboard, using this feature will limit you to using 1 extruder.
|
||||||
|
//#define Z_DUAL_STEPPER_DRIVERS
|
||||||
|
|
||||||
|
#ifdef Z_DUAL_STEPPER_DRIVERS
|
||||||
|
#undef EXTRUDERS
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Same again but for Y Axis.
|
||||||
|
//#define Y_DUAL_STEPPER_DRIVERS
|
||||||
|
|
||||||
|
// Define if the two Y drives need to rotate in opposite directions
|
||||||
|
#define INVERT_Y2_VS_Y_DIR true
|
||||||
|
|
||||||
|
#ifdef Y_DUAL_STEPPER_DRIVERS
|
||||||
|
#undef EXTRUDERS
|
||||||
|
#define EXTRUDERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (Z_DUAL_STEPPER_DRIVERS) && defined (Y_DUAL_STEPPER_DRIVERS)
|
||||||
|
#error "You cannot have dual drivers for both Y and Z"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Enable this for dual x-carriage printers.
|
||||||
|
// A dual x-carriage design has the advantage that the inactive extruder can be parked which
|
||||||
|
// prevents hot-end ooze contaminating the print. It also reduces the weight of each x-carriage
|
||||||
|
// allowing faster printing speeds.
|
||||||
|
//#define DUAL_X_CARRIAGE
|
||||||
|
#ifdef DUAL_X_CARRIAGE
|
||||||
|
// Configuration for second X-carriage
|
||||||
|
// Note: the first x-carriage is defined as the x-carriage which homes to the minimum endstop;
|
||||||
|
// the second x-carriage always homes to the maximum endstop.
|
||||||
|
#define X2_MIN_POS 80 // set minimum to ensure second x-carriage doesn't hit the parked first X-carriage
|
||||||
|
#define X2_MAX_POS 353 // set maximum to the distance between toolheads when both heads are homed
|
||||||
|
#define X2_HOME_DIR 1 // the second X-carriage always homes to the maximum endstop position
|
||||||
|
#define X2_HOME_POS X2_MAX_POS // default home position is the maximum carriage position
|
||||||
|
// However: In this mode the EXTRUDER_OFFSET_X value for the second extruder provides a software
|
||||||
|
// override for X2_HOME_POS. This also allow recalibration of the distance between the two endstops
|
||||||
|
// without modifying the firmware (through the "M218 T1 X???" command).
|
||||||
|
// Remember: you should set the second extruder x-offset to 0 in your slicer.
|
||||||
|
|
||||||
|
// Pins for second x-carriage stepper driver (defined here to avoid further complicating pins.h)
|
||||||
|
#define X2_ENABLE_PIN 29
|
||||||
|
#define X2_STEP_PIN 25
|
||||||
|
#define X2_DIR_PIN 23
|
||||||
|
|
||||||
|
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
|
||||||
|
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
|
||||||
|
// as long as it supports dual x-carriages. (M605 S0)
|
||||||
|
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
|
||||||
|
// that additional slicer support is not required. (M605 S1)
|
||||||
|
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
|
||||||
|
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
|
||||||
|
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
|
||||||
|
|
||||||
|
// This is the default power-up mode which can be later using M605.
|
||||||
|
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
|
||||||
|
|
||||||
|
// Default settings in "Auto-park Mode"
|
||||||
|
#define TOOLCHANGE_PARK_ZLIFT 0.2 // the distance to raise Z axis when parking an extruder
|
||||||
|
#define TOOLCHANGE_UNPARK_ZLIFT 1 // the distance to raise Z axis when unparking an extruder
|
||||||
|
|
||||||
|
// Default x offset in duplication mode (typically set to half print bed width)
|
||||||
|
#define DEFAULT_DUPLICATION_X_OFFSET 100
|
||||||
|
|
||||||
|
#endif //DUAL_X_CARRIAGE
|
||||||
|
|
||||||
|
//homing hits the endstop, then retracts by this distance, before it tries to slowly bump again:
|
||||||
|
#define X_HOME_RETRACT_MM 5
|
||||||
|
#define Y_HOME_RETRACT_MM 5
|
||||||
|
#define Z_HOME_RETRACT_MM 2
|
||||||
|
//#define QUICK_HOME //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
|
||||||
|
|
||||||
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
#ifdef CONFIG_STEPPERS_TOSHIBA
|
||||||
|
#define MAX_STEP_FREQUENCY 10000 // Max step frequency for Toshiba Stepper Controllers
|
||||||
|
#else
|
||||||
|
#define MAX_STEP_FREQUENCY 40000 // Max step frequency for Ultimaker (5000 pps / half step)
|
||||||
|
#endif
|
||||||
|
//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
||||||
|
#define INVERT_X_STEP_PIN false
|
||||||
|
#define INVERT_Y_STEP_PIN false
|
||||||
|
#define INVERT_Z_STEP_PIN false
|
||||||
|
#define INVERT_E_STEP_PIN false
|
||||||
|
|
||||||
|
//default stepper release if idle. Set to 0 to deactivate.
|
||||||
|
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
|
||||||
|
|
||||||
|
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||||
|
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||||
|
|
||||||
|
// Feedrates for manual moves along X, Y, Z, E from panel
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define MANUAL_FEEDRATE {120*60, 120*60, 18*60, 60} // set the speeds for manual moves (mm/min)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//Comment to disable setting feedrate multiplier via encoder
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define ULTIPANEL_FEEDMULTIPLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// minimum time in microseconds that a movement needs to take if the buffer is emptied.
|
||||||
|
#define DEFAULT_MINSEGMENTTIME 20000
|
||||||
|
|
||||||
|
// If defined the movements slow down when the look ahead buffer is only half full
|
||||||
|
#define SLOWDOWN
|
||||||
|
|
||||||
|
// Frequency limit
|
||||||
|
// See nophead's blog for more info
|
||||||
|
// Not working O
|
||||||
|
//#define XY_FREQUENCY_LIMIT 15
|
||||||
|
|
||||||
|
// Minimum planner junction speed. Sets the default minimum speed the planner plans for at the end
|
||||||
|
// of the buffer and all stops. This should not be much greater than zero and should only be changed
|
||||||
|
// if unwanted behavior is observed on a user's machine when running at very slow speeds.
|
||||||
|
#define MINIMUM_PLANNER_SPEED 0.05// (mm/sec)
|
||||||
|
|
||||||
|
// MS1 MS2 Stepper Driver Microstepping mode table
|
||||||
|
#define MICROSTEP1 LOW,LOW
|
||||||
|
#define MICROSTEP2 HIGH,LOW
|
||||||
|
#define MICROSTEP4 LOW,HIGH
|
||||||
|
#define MICROSTEP8 HIGH,HIGH
|
||||||
|
#define MICROSTEP16 HIGH,HIGH
|
||||||
|
|
||||||
|
// Microstep setting (Only functional when stepper driver microstep pins are connected to MCU.
|
||||||
|
#define MICROSTEP_MODES {16,16,16,16,16} // [1,2,4,8,16]
|
||||||
|
|
||||||
|
// Motor Current setting (Only functional when motor driver current ref pins are connected to a digital trimpot on supported boards)
|
||||||
|
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||||
|
|
||||||
|
// uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||||
|
//#define DIGIPOT_I2C
|
||||||
|
// Number of channels available for I2C digipot, For Azteeg X3 Pro we have 8
|
||||||
|
#define DIGIPOT_I2C_NUM_CHANNELS 8
|
||||||
|
// actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||||
|
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0}
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Additional Features===========================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//#define CHDK 4 //Pin for triggering CHDK to take a picture see how to use it here http://captain-slow.dk/2014/03/09/3d-printing-timelapses/
|
||||||
|
#define CHDK_DELAY 50 //How long in ms the pin should stay HIGH before going LOW again
|
||||||
|
|
||||||
|
#define SD_FINISHED_STEPPERRELEASE true //if sd support and the file is finished: disable steppers?
|
||||||
|
#define SD_FINISHED_RELEASECOMMAND "M84 X Y Z E" // You might want to keep the z enabled so your bed stays in place.
|
||||||
|
|
||||||
|
#define SDCARD_RATHERRECENTFIRST //reverse file order of sd card menu display. Its sorted practically after the file system block order.
|
||||||
|
// if a file is deleted, it frees a block. hence, the order is not purely chronological. To still have auto0.g accessible, there is again the option to do that.
|
||||||
|
// using:
|
||||||
|
#define MENU_ADDAUTOSTART
|
||||||
|
|
||||||
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
//#define LCD_PROGRESS_BAR
|
||||||
|
|
||||||
|
#ifdef LCD_PROGRESS_BAR
|
||||||
|
// Amount of time (ms) to show the bar
|
||||||
|
#define PROGRESS_BAR_BAR_TIME 2000
|
||||||
|
// Amount of time (ms) to show the status message
|
||||||
|
#define PROGRESS_BAR_MSG_TIME 3000
|
||||||
|
// Amount of time (ms) to retain the status message (0=forever)
|
||||||
|
#define PROGRESS_MSG_EXPIRE 0
|
||||||
|
// Enable this to show messages for MSG_TIME then hide them
|
||||||
|
//#define PROGRESS_MSG_ONCE
|
||||||
|
#ifdef DOGLCD
|
||||||
|
#warning LCD_PROGRESS_BAR does not apply to graphical displays at this time.
|
||||||
|
#endif
|
||||||
|
#ifdef FILAMENT_LCD_DISPLAY
|
||||||
|
#error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The hardware watchdog should reset the microcontroller disabling all outputs, in case the firmware gets stuck and doesn't do temperature regulation.
|
||||||
|
//#define USE_WATCHDOG
|
||||||
|
|
||||||
|
#ifdef USE_WATCHDOG
|
||||||
|
// If you have a watchdog reboot in an ArduinoMega2560 then the device will hang forever, as a watchdog reset will leave the watchdog on.
|
||||||
|
// The "WATCHDOG_RESET_MANUAL" goes around this by not using the hardware reset.
|
||||||
|
// However, THIS FEATURE IS UNSAFE!, as it will only work if interrupts are disabled. And the code could hang in an interrupt routine with interrupts disabled.
|
||||||
|
//#define WATCHDOG_RESET_MANUAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Enable the option to stop SD printing when hitting and endstops, needs to be enabled from the LCD menu when this option is enabled.
|
||||||
|
//#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
|
||||||
|
|
||||||
|
// Babystepping enables the user to control the axis in tiny amounts, independently from the normal printing process
|
||||||
|
// it can e.g. be used to change z-positions in the print startup phase in real-time
|
||||||
|
// does not respect endstops!
|
||||||
|
//#define BABYSTEPPING
|
||||||
|
#ifdef BABYSTEPPING
|
||||||
|
#define BABYSTEP_XY //not only z, but also XY in the menu. more clutter, more functions
|
||||||
|
#define BABYSTEP_INVERT_Z false //true for inverse movements in Z
|
||||||
|
#define BABYSTEP_Z_MULTIPLICATOR 2 //faster z movements
|
||||||
|
|
||||||
|
#ifdef COREXY
|
||||||
|
#error BABYSTEPPING not implemented for COREXY yet.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DELTA
|
||||||
|
#ifdef BABYSTEP_XY
|
||||||
|
#error BABYSTEPPING only implemented for Z axis on deltabots.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// extruder advance constant (s2/mm3)
|
||||||
|
//
|
||||||
|
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
||||||
|
//
|
||||||
|
// Hooke's law says: force = k * distance
|
||||||
|
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
||||||
|
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
||||||
|
//#define ADVANCE
|
||||||
|
|
||||||
|
#ifdef ADVANCE
|
||||||
|
#define EXTRUDER_ADVANCE_K .0
|
||||||
|
|
||||||
|
#define D_FILAMENT 1.75
|
||||||
|
#define STEPS_MM_E 100.47095761381482
|
||||||
|
#define EXTRUSION_AREA (0.25 * D_FILAMENT * D_FILAMENT * 3.14159)
|
||||||
|
#define STEPS_PER_CUBIC_MM_E (axis_steps_per_unit[E_AXIS]/ EXTRUSION_AREA)
|
||||||
|
|
||||||
|
#endif // ADVANCE
|
||||||
|
|
||||||
|
// Arc interpretation settings:
|
||||||
|
#define MM_PER_ARC_SEGMENT 1
|
||||||
|
#define N_ARC_CORRECTION 25
|
||||||
|
|
||||||
|
const unsigned int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
|
||||||
|
|
||||||
|
// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
|
||||||
|
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
|
||||||
|
// in the pins.h file. When using a push button pulling the pin to ground this will need inverted. This setting should
|
||||||
|
// be commented out otherwise
|
||||||
|
#define SDCARDDETECTINVERTED
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#undef SDCARDDETECTINVERTED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Power Signal Control Definitions
|
||||||
|
// By default use ATX definition
|
||||||
|
#ifndef POWER_SUPPLY
|
||||||
|
#define POWER_SUPPLY 1
|
||||||
|
#endif
|
||||||
|
// 1 = ATX
|
||||||
|
#if (POWER_SUPPLY == 1)
|
||||||
|
#define PS_ON_AWAKE LOW
|
||||||
|
#define PS_ON_ASLEEP HIGH
|
||||||
|
#endif
|
||||||
|
// 2 = X-Box 360 203W
|
||||||
|
#if (POWER_SUPPLY == 2)
|
||||||
|
#define PS_ON_AWAKE HIGH
|
||||||
|
#define PS_ON_ASLEEP LOW
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Control heater 0 and heater 1 in parallel.
|
||||||
|
//#define HEATERS_PARALLEL
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//=============================Buffers ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
// The number of linear motions that can be in the plan at any give time.
|
||||||
|
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2, i.g. 8,16,32 because shifts and ors are used to do the ring-buffering.
|
||||||
|
#if defined SDSUPPORT
|
||||||
|
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
|
||||||
|
#else
|
||||||
|
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//The ASCII buffer for receiving from the serial:
|
||||||
|
#define MAX_CMD_SIZE 96
|
||||||
|
#define BUFSIZE 5
|
||||||
|
|
||||||
|
|
||||||
|
// Firmware based and LCD controlled retract
|
||||||
|
// M207 and M208 can be used to define parameters for the retraction.
|
||||||
|
// The retraction can be called by the slicer using G10 and G11
|
||||||
|
// until then, intended retractions can be detected by moves that only extrude and the direction.
|
||||||
|
// the moves are than replaced by the firmware controlled ones.
|
||||||
|
|
||||||
|
// #define FWRETRACT //ONLY PARTIALLY TESTED
|
||||||
|
#ifdef FWRETRACT
|
||||||
|
#define MIN_RETRACT 0.1 //minimum extruded mm to accept a automatic gcode retraction attempt
|
||||||
|
#define RETRACT_LENGTH 3 //default retract length (positive mm)
|
||||||
|
#define RETRACT_LENGTH_SWAP 13 //default swap retract length (positive mm), for extruder change
|
||||||
|
#define RETRACT_FEEDRATE 80*60 //default feedrate for retracting (mm/s)
|
||||||
|
#define RETRACT_ZLIFT 0 //default retract Z-lift
|
||||||
|
#define RETRACT_RECOVER_LENGTH 0 //default additional recover length (mm, added to retract length when recovering)
|
||||||
|
//#define RETRACT_RECOVER_LENGTH_SWAP 0 //default additional swap recover length (mm, added to retract length when recovering from extruder change)
|
||||||
|
#define RETRACT_RECOVER_FEEDRATE 8*60 //default feedrate for recovering from retraction (mm/s)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//adds support for experimental filament exchange support M600; requires display
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define FILAMENTCHANGEENABLE
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#define FILAMENTCHANGE_XPOS 3
|
||||||
|
#define FILAMENTCHANGE_YPOS 3
|
||||||
|
#define FILAMENTCHANGE_ZADD 10
|
||||||
|
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
||||||
|
#define FILAMENTCHANGE_FINALRETRACT -100
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FILAMENTCHANGEENABLE
|
||||||
|
#ifdef EXTRUDER_RUNOUT_PREVENT
|
||||||
|
#error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//============================= Define Defines ============================
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
|
||||||
|
#error "Bed Auto Leveling is still not compatible with Delta Kinematics."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
|
||||||
|
#error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if EXTRUDERS > 1 && defined HEATERS_PARALLEL
|
||||||
|
#error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_0 > 0
|
||||||
|
#define THERMISTORHEATER_0 TEMP_SENSOR_0
|
||||||
|
#define HEATER_0_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 > 0
|
||||||
|
#define THERMISTORHEATER_1 TEMP_SENSOR_1
|
||||||
|
#define HEATER_1_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 > 0
|
||||||
|
#define THERMISTORHEATER_2 TEMP_SENSOR_2
|
||||||
|
#define HEATER_2_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 > 0
|
||||||
|
#define THERMISTORHEATER_3 TEMP_SENSOR_3
|
||||||
|
#define HEATER_3_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED > 0
|
||||||
|
#define THERMISTORBED TEMP_SENSOR_BED
|
||||||
|
#define BED_USES_THERMISTOR
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == -1
|
||||||
|
#define HEATER_0_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 == -1
|
||||||
|
#define HEATER_1_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 == -1
|
||||||
|
#define HEATER_2_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 == -1
|
||||||
|
#define HEATER_3_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED == -1
|
||||||
|
#define BED_USES_AD595
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == -2
|
||||||
|
#define HEATER_0_USES_MAX6675
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_0 == 0
|
||||||
|
#undef HEATER_0_MINTEMP
|
||||||
|
#undef HEATER_0_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_1 == 0
|
||||||
|
#undef HEATER_1_MINTEMP
|
||||||
|
#undef HEATER_1_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_2 == 0
|
||||||
|
#undef HEATER_2_MINTEMP
|
||||||
|
#undef HEATER_2_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_3 == 0
|
||||||
|
#undef HEATER_3_MINTEMP
|
||||||
|
#undef HEATER_3_MAXTEMP
|
||||||
|
#endif
|
||||||
|
#if TEMP_SENSOR_BED == 0
|
||||||
|
#undef BED_MINTEMP
|
||||||
|
#undef BED_MAXTEMP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif //__CONFIGURATION_ADV_H
|
@ -0,0 +1,130 @@
|
|||||||
|
/**
|
||||||
|
* Portuguese (Brazil)
|
||||||
|
*
|
||||||
|
* LCD Menu Messages
|
||||||
|
* Please note these are limited to 17 characters!
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef LANGUAGE_PT_BR_H
|
||||||
|
#define LANGUAGE_PT_BR_H
|
||||||
|
|
||||||
|
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||||
|
#define MSG_SD_INSERTED "Cartao inserido"
|
||||||
|
#define MSG_SD_REMOVED "Cartao removido"
|
||||||
|
#define MSG_MAIN " Menu principal \003"
|
||||||
|
#define MSG_AUTOSTART "Autostart"
|
||||||
|
#define MSG_DISABLE_STEPPERS " Apagar motores"
|
||||||
|
#define MSG_AUTO_HOME "Ir para origen"
|
||||||
|
#define MSG_SET_HOME_OFFSETS "Set home offsets"
|
||||||
|
#define MSG_SET_ORIGIN "Estabelecer orig."
|
||||||
|
#define MSG_PREHEAT_PLA "Pre-aquecer PLA"
|
||||||
|
#define MSG_PREHEAT_PLA_N "Pre-aquecer PLA "
|
||||||
|
#define MSG_PREHEAT_PLA_ALL "Pre-aq. PLA Tudo"
|
||||||
|
#define MSG_PREHEAT_PLA_BEDONLY "Pre-aq. PLA \002Base"
|
||||||
|
#define MSG_PREHEAT_PLA_SETTINGS "PLA setting"
|
||||||
|
#define MSG_PREHEAT_ABS "Pre-aquecer ABS"
|
||||||
|
#define MSG_PREHEAT_ABS_N "Pre-aquecer ABS "
|
||||||
|
#define MSG_PREHEAT_ABS_ALL "Pre-aq. ABS Tudo"
|
||||||
|
#define MSG_PREHEAT_ABS_BEDONLY "Pre-aq. ABS \002Base"
|
||||||
|
#define MSG_PREHEAT_ABS_SETTINGS "ABS setting"
|
||||||
|
#define MSG_COOLDOWN "Esfriar"
|
||||||
|
#define MSG_SWITCH_PS_ON "Switch Power On"
|
||||||
|
#define MSG_SWITCH_PS_OFF "Switch Power Off"
|
||||||
|
#define MSG_EXTRUDE "Extrudar"
|
||||||
|
#define MSG_RETRACT "Retrair"
|
||||||
|
#define MSG_MOVE_AXIS "Mover eixo \x7E"
|
||||||
|
#define MSG_MOVE_X "Move X"
|
||||||
|
#define MSG_MOVE_Y "Move Y"
|
||||||
|
#define MSG_MOVE_Z "Move Z"
|
||||||
|
#define MSG_MOVE_E "Extruder"
|
||||||
|
#define MSG_MOVE_01MM "Move 0.1mm"
|
||||||
|
#define MSG_MOVE_1MM "Move 1mm"
|
||||||
|
#define MSG_MOVE_10MM "Move 10mm"
|
||||||
|
#define MSG_SPEED "Velocidade"
|
||||||
|
#define MSG_NOZZLE "\002Nozzle"
|
||||||
|
#define MSG_BED "\002Base"
|
||||||
|
#define MSG_FAN_SPEED "Velocidade vento."
|
||||||
|
#define MSG_FLOW "Fluxo"
|
||||||
|
#define MSG_CONTROL "Controle \003"
|
||||||
|
#define MSG_MIN "\002 Min"
|
||||||
|
#define MSG_MAX "\002 Max"
|
||||||
|
#define MSG_FACTOR "\002 Fact"
|
||||||
|
#define MSG_AUTOTEMP "Autotemp"
|
||||||
|
#define MSG_ON "On "
|
||||||
|
#define MSG_OFF "Off"
|
||||||
|
#define MSG_PID_P "PID-P"
|
||||||
|
#define MSG_PID_I "PID-I"
|
||||||
|
#define MSG_PID_D "PID-D"
|
||||||
|
#define MSG_PID_C "PID-C"
|
||||||
|
#define MSG_ACC "Acc"
|
||||||
|
#define MSG_VXY_JERK "Vxy-jerk"
|
||||||
|
#define MSG_VZ_JERK "Vz-jerk"
|
||||||
|
#define MSG_VE_JERK "Ve-jerk"
|
||||||
|
#define MSG_VMAX " Vmax "
|
||||||
|
#define MSG_X "x"
|
||||||
|
#define MSG_Y "y"
|
||||||
|
#define MSG_Z "z"
|
||||||
|
#define MSG_E "e"
|
||||||
|
#define MSG_VMIN "Vmin"
|
||||||
|
#define MSG_VTRAV_MIN "VTrav min"
|
||||||
|
#define MSG_AMAX "Amax "
|
||||||
|
#define MSG_A_RETRACT "A-retract"
|
||||||
|
#define MSG_XSTEPS "Xpasso/mm"
|
||||||
|
#define MSG_YSTEPS "Ypasso/mm"
|
||||||
|
#define MSG_ZSTEPS "Zpasso/mm"
|
||||||
|
#define MSG_ESTEPS "Epasso/mm"
|
||||||
|
#define MSG_TEMPERATURE "Temperatura"
|
||||||
|
#define MSG_MOTION "Movimento"
|
||||||
|
#define MSG_VOLUMETRIC "Filament"
|
||||||
|
#define MSG_VOLUMETRIC_ENABLED "E in mm3"
|
||||||
|
#define MSG_FILAMENT_SIZE_EXTRUDER_0 "Fil. Dia. 1"
|
||||||
|
#define MSG_FILAMENT_SIZE_EXTRUDER_1 "Fil. Dia. 2"
|
||||||
|
#define MSG_FILAMENT_SIZE_EXTRUDER_2 "Fil. Dia. 3"
|
||||||
|
#define MSG_CONTRAST "Contrast"
|
||||||
|
#define MSG_STORE_EPROM "Guardar memoria"
|
||||||
|
#define MSG_LOAD_EPROM "Carregar memoria"
|
||||||
|
#define MSG_RESTORE_FAILSAFE "Rest. de emergen."
|
||||||
|
#define MSG_REFRESH "\004Recarregar"
|
||||||
|
#define MSG_WATCH "Monitorar \003"
|
||||||
|
#define MSG_PREPARE "Preparar \x7E"
|
||||||
|
#define MSG_TUNE "Tune \x7E"
|
||||||
|
#define MSG_PAUSE_PRINT "Pausar impressao"
|
||||||
|
#define MSG_RESUME_PRINT "Resumir impressao"
|
||||||
|
#define MSG_STOP_PRINT "Parar impressao"
|
||||||
|
#define MSG_CARD_MENU "Menu cartao SD"
|
||||||
|
#define MSG_NO_CARD "Sem cartao SD"
|
||||||
|
#define MSG_DWELL "Repouso..."
|
||||||
|
#define MSG_USERWAIT "Esperando ordem"
|
||||||
|
#define MSG_RESUMING "Resuming print"
|
||||||
|
#define MSG_PRINT_ABORTED "Print aborted"
|
||||||
|
#define MSG_NO_MOVE "Sem movimento"
|
||||||
|
#define MSG_KILLED "PARADA DE EMERG."
|
||||||
|
#define MSG_STOPPED "PARADA. "
|
||||||
|
#define MSG_CONTROL_RETRACT " Retrair mm"
|
||||||
|
#define MSG_CONTROL_RETRACT_SWAP "Troca Retrair mm"
|
||||||
|
#define MSG_CONTROL_RETRACTF " Retrair V"
|
||||||
|
#define MSG_CONTROL_RETRACT_ZLIFT " Levantar mm"
|
||||||
|
#define MSG_CONTROL_RETRACT_RECOVER " DesRet +mm"
|
||||||
|
#define MSG_CONTROL_RETRACT_RECOVER_SWAP "Troca DesRet +mm"
|
||||||
|
#define MSG_CONTROL_RETRACT_RECOVERF " DesRet V"
|
||||||
|
#define MSG_AUTORETRACT " AutoRetr."
|
||||||
|
#define MSG_FILAMENTCHANGE "Change filament"
|
||||||
|
#define MSG_INIT_SDCARD "Init. SD-Card"
|
||||||
|
#define MSG_CNG_SDCARD "Change SD-Card"
|
||||||
|
#define MSG_ZPROBE_OUT "Son. fora da mesa"
|
||||||
|
#define MSG_POSITION_UNKNOWN "XY antes de Z"
|
||||||
|
#define MSG_ZPROBE_ZOFFSET "Z Offset"
|
||||||
|
#define MSG_BABYSTEP_X "Babystep X"
|
||||||
|
#define MSG_BABYSTEP_Y "Babystep Y"
|
||||||
|
#define MSG_BABYSTEP_Z "Babystep Z"
|
||||||
|
#define MSG_ENDSTOP_ABORT "Endstop abort"
|
||||||
|
|
||||||
|
#ifdef DELTA_CALIBRATION_MENU
|
||||||
|
#define MSG_DELTA_CALIBRATE "Delta Calibration"
|
||||||
|
#define MSG_DELTA_CALIBRATE_X "Calibrate X"
|
||||||
|
#define MSG_DELTA_CALIBRATE_Y "Calibrate Y"
|
||||||
|
#define MSG_DELTA_CALIBRATE_Z "Calibrate Z"
|
||||||
|
#define MSG_DELTA_CALIBRATE_CENTER "Calibrate Center"
|
||||||
|
#endif // DELTA_CALIBRATION_MENU
|
||||||
|
|
||||||
|
#endif // LANGUAGE_PT_BR_H
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,37 @@
|
|||||||
|
/**
|
||||||
|
* 3DRAG (and K8200) Arduino Mega with RAMPS v1.3 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pins_RAMPS_13.h"
|
||||||
|
|
||||||
|
#define X_MAX_PIN 2
|
||||||
|
#define Y_MAX_PIN 15
|
||||||
|
#define Z_MAX_PIN -1
|
||||||
|
|
||||||
|
#define SDSS 25//53
|
||||||
|
|
||||||
|
#define BEEPER 33
|
||||||
|
|
||||||
|
#define FAN_PIN 8
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 10
|
||||||
|
#define HEATER_1_PIN 12
|
||||||
|
#define HEATER_2_PIN 6
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 9 // BED
|
||||||
|
|
||||||
|
#if defined(ULTRA_LCD) && defined(NEWPANEL)
|
||||||
|
#define BEEPER -1
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 27
|
||||||
|
#define LCD_PINS_ENABLE 29
|
||||||
|
#define LCD_PINS_D4 37
|
||||||
|
#define LCD_PINS_D5 35
|
||||||
|
#define LCD_PINS_D6 33
|
||||||
|
#define LCD_PINS_D7 31
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
#define BTN_EN1 16
|
||||||
|
#define BTN_EN2 17
|
||||||
|
#define BTN_ENC 23 //the click
|
||||||
|
#endif // ULTRA_LCD && NEWPANEL
|
@ -0,0 +1,75 @@
|
|||||||
|
/**
|
||||||
|
* 5DPrint D8 Driver board pin assignments
|
||||||
|
*
|
||||||
|
* https://bitbucket.org/makible/5dprint-d8-controller-board
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB1286__
|
||||||
|
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AT90USB 1286 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 0
|
||||||
|
#define X_DIR_PIN 1
|
||||||
|
#define X_ENABLE_PIN 23
|
||||||
|
#define X_STOP_PIN 37
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 2
|
||||||
|
#define Y_DIR_PIN 3
|
||||||
|
#define Y_ENABLE_PIN 19
|
||||||
|
#define Y_STOP_PIN 36
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 4
|
||||||
|
#define Z_DIR_PIN 5
|
||||||
|
#define Z_ENABLE_PIN 18
|
||||||
|
#define Z_STOP_PIN 39
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 6
|
||||||
|
#define E0_DIR_PIN 7
|
||||||
|
#define E0_ENABLE_PIN 17
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 21 // Extruder
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 20 // Bed
|
||||||
|
// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h
|
||||||
|
// for the fan and Teensyduino uses a different pin mapping.
|
||||||
|
#define FAN_PIN 16 // Fan
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 1 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_BED_PIN 0 // Bed / Analog pin numbering
|
||||||
|
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
|
||||||
|
// The SDSS pin uses a different pin mapping from file Sd2PinMap.h
|
||||||
|
#define SDSS 20
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 9
|
||||||
|
#define MISO_PIN 11
|
||||||
|
#define MOSI_PIN 10
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Microstepping pins
|
||||||
|
// Note that the pin mapping is not from fastio.h
|
||||||
|
// See Sd2PinMap.h for the pin configurations
|
||||||
|
#define X_MS1_PIN 25
|
||||||
|
#define X_MS2_PIN 26
|
||||||
|
#define Y_MS1_PIN 9
|
||||||
|
#define Y_MS2_PIN 8
|
||||||
|
#define Z_MS1_PIN 7
|
||||||
|
#define Z_MS2_PIN 6
|
||||||
|
#define E0_MS1_PIN 5
|
||||||
|
#define E0_MS2_PIN 4
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
/**
|
||||||
|
* Board 99 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define X_STEP_PIN 2
|
||||||
|
#define X_DIR_PIN 3
|
||||||
|
#define X_ENABLE_PIN -1
|
||||||
|
#define X_STOP_PIN 16
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 5
|
||||||
|
#define Y_DIR_PIN 6
|
||||||
|
#define Y_ENABLE_PIN -1
|
||||||
|
#define Y_STOP_PIN 67
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 62
|
||||||
|
#define Z_DIR_PIN 63
|
||||||
|
#define Z_ENABLE_PIN -1
|
||||||
|
#define Z_STOP_PIN 59
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 65
|
||||||
|
#define E0_DIR_PIN 66
|
||||||
|
#define E0_ENABLE_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define FAN_PIN -1
|
||||||
|
#define PS_ON_PIN 9
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 13
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_0_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_1_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define HEATER_BED_PIN 4
|
||||||
|
#define TEMP_BED_PIN 10
|
@ -0,0 +1,7 @@
|
|||||||
|
/**
|
||||||
|
* Azteeg X1 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SANGUINOLOLU_V_1_2
|
||||||
|
|
||||||
|
#include "pins_SANGUINOLOLU_11.h"
|
@ -0,0 +1,5 @@
|
|||||||
|
/**
|
||||||
|
* AZTEEG_X3 Arduino Mega with RAMPS v1.3 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pins_RAMPS_13.h"
|
@ -0,0 +1,30 @@
|
|||||||
|
/**
|
||||||
|
* AZTEEG_X3_PRO (Arduino Mega) pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pins_RAMPS_13.h"
|
||||||
|
|
||||||
|
#define E2_STEP_PIN 23
|
||||||
|
#define E2_DIR_PIN 25
|
||||||
|
#define E2_ENABLE_PIN 40
|
||||||
|
|
||||||
|
#define E3_STEP_PIN 27
|
||||||
|
#define E3_DIR_PIN 29
|
||||||
|
#define E3_ENABLE_PIN 41
|
||||||
|
|
||||||
|
#define E4_STEP_PIN 43
|
||||||
|
#define E4_DIR_PIN 37
|
||||||
|
#define E4_ENABLE_PIN 42
|
||||||
|
|
||||||
|
#define HEATER_2_PIN 16
|
||||||
|
#define HEATER_3_PIN 17
|
||||||
|
#define HEATER_4_PIN 4
|
||||||
|
#define HEATER_5_PIN 5
|
||||||
|
#define HEATER_6_PIN 6
|
||||||
|
#define HEATER_7_PIN 11
|
||||||
|
|
||||||
|
#define TEMP_2_PIN 12 // ANALOG NUMBERING
|
||||||
|
#define TEMP_3_PIN 11 // ANALOG NUMBERING
|
||||||
|
#define TEMP_4_PIN 10 // ANALOG NUMBERING
|
||||||
|
#define TC1 4 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro
|
||||||
|
#define TC2 5 // ANALOG NUMBERING Thermo couple on Azteeg X3Pro
|
@ -0,0 +1,61 @@
|
|||||||
|
/**
|
||||||
|
* Brainwave 1.0 pin assignments (AT90USB646)
|
||||||
|
*
|
||||||
|
* Requires hardware bundle for Arduino:
|
||||||
|
* https://github.com/unrepentantgeek/brainwave-arduino
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB646__
|
||||||
|
#error Oops! Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AT90USB 646 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#define X_STEP_PIN 27
|
||||||
|
#define X_DIR_PIN 29
|
||||||
|
#define X_ENABLE_PIN 28
|
||||||
|
#define X_STOP_PIN 7
|
||||||
|
#define X_ATT_PIN 26
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 31
|
||||||
|
#define Y_DIR_PIN 33
|
||||||
|
#define Y_ENABLE_PIN 32
|
||||||
|
#define Y_STOP_PIN 6
|
||||||
|
#define Y_ATT_PIN 30
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 17
|
||||||
|
#define Z_DIR_PIN 19
|
||||||
|
#define Z_ENABLE_PIN 18
|
||||||
|
#define Z_STOP_PIN 5
|
||||||
|
#define Z_ATT_PIN 16
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 21
|
||||||
|
#define E0_DIR_PIN 23
|
||||||
|
#define E0_ENABLE_PIN 22
|
||||||
|
#define E0_ATT_PIN 20
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 4 // Extruder
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 38 // Bed
|
||||||
|
#define FAN_PIN 3 // Fan
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1
|
||||||
|
#define LED_PIN 39
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 9
|
||||||
|
#define MISO_PIN 11
|
||||||
|
#define MOSI_PIN 10
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,95 @@
|
|||||||
|
/**
|
||||||
|
* Cheaptronic v1.0 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
// X motor stepper
|
||||||
|
#define X_STEP_PIN 14
|
||||||
|
#define X_DIR_PIN 15
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
|
||||||
|
// X endstop
|
||||||
|
#define X_MIN_PIN 3
|
||||||
|
#define X_MAX_PIN -1
|
||||||
|
|
||||||
|
// Y motor stepper
|
||||||
|
#define Y_STEP_PIN 35
|
||||||
|
#define Y_DIR_PIN 36
|
||||||
|
#define Y_ENABLE_PIN 31
|
||||||
|
|
||||||
|
// Y endstop
|
||||||
|
#define Y_MIN_PIN 2
|
||||||
|
#define Y_MAX_PIN -1
|
||||||
|
|
||||||
|
// Z motor stepper
|
||||||
|
#define Z_STEP_PIN 40
|
||||||
|
#define Z_DIR_PIN 41
|
||||||
|
#define Z_ENABLE_PIN 37
|
||||||
|
|
||||||
|
// Z endstop
|
||||||
|
#define Z_MIN_PIN 5
|
||||||
|
#define Z_MAX_PIN -1
|
||||||
|
|
||||||
|
// Extruder 0 stepper
|
||||||
|
#define E0_STEP_PIN 26
|
||||||
|
#define E0_DIR_PIN 28
|
||||||
|
#define E0_ENABLE_PIN 25
|
||||||
|
|
||||||
|
// Extruder 1 stepper
|
||||||
|
#define E1_STEP_PIN 33
|
||||||
|
#define E1_DIR_PIN 34
|
||||||
|
#define E1_ENABLE_PIN 30
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
// FAN
|
||||||
|
#define FAN_PIN -1
|
||||||
|
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 19 // EXTRUDER 1
|
||||||
|
#define HEATER_1_PIN 23 // EXTRUDER 2
|
||||||
|
// HeatedBad
|
||||||
|
#define HEATER_BED_PIN 22
|
||||||
|
// Cheaptronic v1.0 hasent EXTRUDER 3
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
// Temperature sensors
|
||||||
|
#define TEMP_0_PIN 15
|
||||||
|
#define TEMP_1_PIN 14
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 13
|
||||||
|
|
||||||
|
// Cheaptronic v1.0 doesn't support LCD
|
||||||
|
#define LCD_PINS_RS -1
|
||||||
|
#define LCD_PINS_ENABLE -1
|
||||||
|
#define LCD_PINS_D4 -1
|
||||||
|
#define LCD_PINS_D5 -1
|
||||||
|
#define LCD_PINS_D6 -1
|
||||||
|
#define LCD_PINS_D7 -1
|
||||||
|
|
||||||
|
// Cheaptronic v1.0 doesn't support keypad
|
||||||
|
#define BTN_EN1 -1
|
||||||
|
#define BTN_EN2 -1
|
||||||
|
#define BTN_ENC -1
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
// Cheaptronic v1.0 does not use this port
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
|
||||||
|
// Encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* Duemilanove w/ ATMega328P pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega328P__
|
||||||
|
#error Oops! Make sure you have 'Arduino Duemilanove w/ ATMega328' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 19
|
||||||
|
#define X_DIR_PIN 18
|
||||||
|
#define X_ENABLE_PIN -1
|
||||||
|
#define X_STOP_PIN 17
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 10
|
||||||
|
#define Y_DIR_PIN 7
|
||||||
|
#define Y_ENABLE_PIN -1
|
||||||
|
#define Y_STOP_PIN 8
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 13
|
||||||
|
#define Z_DIR_PIN 3
|
||||||
|
#define Z_ENABLE_PIN 2
|
||||||
|
#define Z_STOP_PIN 4
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 11
|
||||||
|
#define E0_DIR_PIN 12
|
||||||
|
#define E0_ENABLE_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define FAN_PIN 5
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 6
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN -1
|
||||||
|
#define TEMP_BED_PIN -1
|
||||||
|
|
@ -0,0 +1,116 @@
|
|||||||
|
/**
|
||||||
|
* Elefu RA Board Pin Assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 49
|
||||||
|
#define X_DIR_PIN 13
|
||||||
|
#define X_ENABLE_PIN 48
|
||||||
|
#define X_MIN_PIN 35
|
||||||
|
#define X_MAX_PIN 34
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 11
|
||||||
|
#define Y_DIR_PIN 9
|
||||||
|
#define Y_ENABLE_PIN 12
|
||||||
|
#define Y_MIN_PIN 33
|
||||||
|
#define Y_MAX_PIN 32
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 7
|
||||||
|
#define Z_DIR_PIN 6
|
||||||
|
#define Z_ENABLE_PIN 8
|
||||||
|
#define Z_MIN_PIN 31
|
||||||
|
#define Z_MAX_PIN 30
|
||||||
|
|
||||||
|
#define E2_STEP_PIN 43
|
||||||
|
#define E2_DIR_PIN 47
|
||||||
|
#define E2_ENABLE_PIN 42
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 18
|
||||||
|
#define E1_DIR_PIN 19
|
||||||
|
#define E1_ENABLE_PIN 38
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 40
|
||||||
|
#define E0_DIR_PIN 41
|
||||||
|
#define E0_ENABLE_PIN 37
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define LED_PIN -1 //Use +12V Aux port for LED Ring
|
||||||
|
|
||||||
|
#define FAN_PIN 16 //5V PWM
|
||||||
|
|
||||||
|
#define PS_ON_PIN 10 //Set to -1 if using a manual switch on the PWRSW Connector
|
||||||
|
#define SLEEP_WAKE_PIN 26 //This feature still needs work
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 45 //12V PWM1
|
||||||
|
#define HEATER_1_PIN 46 //12V PWM2
|
||||||
|
#define HEATER_2_PIN 17 //12V PWM3
|
||||||
|
#define HEATER_BED_PIN 44 //DOUBLE 12V PWM
|
||||||
|
#define TEMP_0_PIN 3 //ANALOG NUMBERING
|
||||||
|
#define TEMP_1_PIN 2 //ANALOG NUMBERING
|
||||||
|
#define TEMP_2_PIN 1 //ANALOG NUMBERING
|
||||||
|
#define TEMP_BED_PIN 0 //ANALOG NUMBERING
|
||||||
|
|
||||||
|
#define BEEPER 36
|
||||||
|
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
// M240 Triggers a camera by emulating a Canon RC-1 Remote
|
||||||
|
// Data from: http://www.doc-diy.net/photo/rc-1_hacked/
|
||||||
|
#define PHOTOGRAPH_PIN 29
|
||||||
|
|
||||||
|
#ifdef RA_CONTROL_PANEL
|
||||||
|
|
||||||
|
#define SDSS 53
|
||||||
|
#define SDCARDDETECT 28
|
||||||
|
|
||||||
|
#define BTN_EN1 14
|
||||||
|
#define BTN_EN2 39
|
||||||
|
#define BTN_ENC 15 //the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
//encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
||||||
|
|
||||||
|
#endif // RA_CONTROL_PANEL
|
||||||
|
|
||||||
|
#ifdef RA_DISCO
|
||||||
|
//variables for which pins the TLC5947 is using
|
||||||
|
#define TLC_CLOCK_PIN 25
|
||||||
|
#define TLC_BLANK_PIN 23
|
||||||
|
#define TLC_XLAT_PIN 22
|
||||||
|
#define TLC_DATA_PIN 24
|
||||||
|
|
||||||
|
//We also need to define pin to port number mapping for the 2560 to match the pins listed above. If you change the TLC pins, update this as well per the 2560 datasheet!
|
||||||
|
//This currently only works with the RA Board.
|
||||||
|
#define TLC_CLOCK_BIT 3 //bit 3 on port A
|
||||||
|
#define TLC_CLOCK_PORT &PORTA //bit 3 on port A
|
||||||
|
|
||||||
|
#define TLC_BLANK_BIT 1 //bit 1 on port A
|
||||||
|
#define TLC_BLANK_PORT &PORTA //bit 1 on port A
|
||||||
|
|
||||||
|
#define TLC_DATA_BIT 2 //bit 2 on port A
|
||||||
|
#define TLC_DATA_PORT &PORTA //bit 2 on port A
|
||||||
|
|
||||||
|
#define TLC_XLAT_BIT 0 //bit 0 on port A
|
||||||
|
#define TLC_XLAT_PORT &PORTA //bit 0 on port A
|
||||||
|
|
||||||
|
//change this to match your situation. Lots of TLCs takes up the arduino SRAM very quickly, so be careful
|
||||||
|
//Leave it at at least 1 if you have enabled RA_LIGHTING
|
||||||
|
//The number of TLC5947 boards chained together for use with the animation, additional ones will repeat the animation on them, but are not individually addressable and mimic those before them. You can leave the default at 2 even if you only have 1 TLC5947 module.
|
||||||
|
#define NUM_TLCS 2
|
||||||
|
|
||||||
|
//These TRANS_ARRAY values let you change the order the LEDs on the lighting modules will animate for chase functions.
|
||||||
|
//Modify them according to your specific situation.
|
||||||
|
//NOTE: the array should be 8 long for every TLC you have. These defaults assume (2) TLCs.
|
||||||
|
#define TRANS_ARRAY {0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8} //forwards
|
||||||
|
//#define TRANS_ARRAY {7, 6, 5, 4, 3, 2, 1, 0, 8, 9, 10, 11, 12, 13, 14, 15} //backwards
|
||||||
|
#endif // RA_DISCO
|
@ -0,0 +1,61 @@
|
|||||||
|
/**
|
||||||
|
* Gen3 Monolithic Electronics pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega644P__
|
||||||
|
#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DEBUG_PIN 0
|
||||||
|
|
||||||
|
// x axis
|
||||||
|
#define X_STEP_PIN 15
|
||||||
|
#define X_DIR_PIN 18
|
||||||
|
#define X_MIN_PIN 20
|
||||||
|
// Alex Checar #define X_STOP_PIN 20
|
||||||
|
#define X_ENABLE_PIN 24 // actually uses Y_enable_pin
|
||||||
|
#define X_MAX_PIN -1
|
||||||
|
|
||||||
|
// y axis
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_MIN_PIN 25
|
||||||
|
// Alex Checar #define Y_STOP_PIN 25
|
||||||
|
#define Y_ENABLE_PIN 24 // shared with X_enable_pin
|
||||||
|
#define Y_MAX_PIN -1
|
||||||
|
|
||||||
|
// z axis
|
||||||
|
#define Z_STEP_PIN 27
|
||||||
|
#define Z_DIR_PIN 28
|
||||||
|
#define Z_MIN_PIN 30
|
||||||
|
// Alex Checar #define Z_STOP_PIN 30
|
||||||
|
#define Z_ENABLE_PIN 29
|
||||||
|
#define Z_MAX_PIN -1
|
||||||
|
|
||||||
|
// extruder pins
|
||||||
|
#define E0_STEP_PIN 12
|
||||||
|
#define E0_DIR_PIN 17
|
||||||
|
#define E0_ENABLE_PIN 3
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 16
|
||||||
|
#define TEMP_0_PIN 0
|
||||||
|
|
||||||
|
#define FAN_PIN -1
|
||||||
|
|
||||||
|
// bed pins
|
||||||
|
#define HEATER_BED_PIN -1
|
||||||
|
#define TEMP_BED_PIN -1
|
||||||
|
|
||||||
|
|
||||||
|
#define SDSS -1
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
// pin for controlling the PSU.
|
||||||
|
#define PS_ON_PIN 14 // Alex, Do this work on the card?
|
||||||
|
|
||||||
|
// Alex extras from Gen3+
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
* Gen3+ pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__)
|
||||||
|
#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 15
|
||||||
|
#define X_DIR_PIN 18
|
||||||
|
#define X_STOP_PIN 20
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_STOP_PIN 25
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 27
|
||||||
|
#define Z_DIR_PIN 28
|
||||||
|
#define Z_STOP_PIN 30
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 17
|
||||||
|
#define E0_DIR_PIN 21
|
||||||
|
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
#define FAN_PIN -1
|
||||||
|
|
||||||
|
#define PS_ON_PIN 14
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 12 // (extruder)
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 16 // (bed)
|
||||||
|
#define X_ENABLE_PIN 19
|
||||||
|
#define Y_ENABLE_PIN 24
|
||||||
|
#define Z_ENABLE_PIN 29
|
||||||
|
#define E0_ENABLE_PIN 13
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder)
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 5 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 4
|
||||||
|
#define HEATER_2_PIN -1
|
@ -0,0 +1,62 @@
|
|||||||
|
/**
|
||||||
|
* Gen6 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega644P__
|
||||||
|
#ifndef __AVR_ATmega1284P__
|
||||||
|
#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//x axis pins
|
||||||
|
#define X_STEP_PIN 15
|
||||||
|
#define X_DIR_PIN 18
|
||||||
|
#define X_ENABLE_PIN 19
|
||||||
|
#define X_STOP_PIN 20
|
||||||
|
|
||||||
|
//y axis pins
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_ENABLE_PIN 24
|
||||||
|
#define Y_STOP_PIN 25
|
||||||
|
|
||||||
|
//z axis pins
|
||||||
|
#define Z_STEP_PIN 27
|
||||||
|
#define Z_DIR_PIN 28
|
||||||
|
#define Z_ENABLE_PIN 29
|
||||||
|
#define Z_STOP_PIN 30
|
||||||
|
|
||||||
|
//extruder pins
|
||||||
|
#define E0_STEP_PIN 4 //Edited @ EJE Electronics 20100715
|
||||||
|
#define E0_DIR_PIN 2 //Edited @ EJE Electronics 20100715
|
||||||
|
#define E0_ENABLE_PIN 3 //Added @ EJE Electronics 20100715
|
||||||
|
#define TEMP_0_PIN 5 //changed @ rkoeppl 20110410
|
||||||
|
#define TEMP_1_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
|
||||||
|
|
||||||
|
#define TEMP_2_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
#define HEATER_0_PIN 14 //changed @ rkoeppl 20110410
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
#if MB(GEN6)
|
||||||
|
#define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
#define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
#else
|
||||||
|
#define HEATER_BED_PIN 1 //changed @ rkoeppl 20110410
|
||||||
|
#define TEMP_BED_PIN 0 //changed @ rkoeppl 20110410
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 17
|
||||||
|
#define LED_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
#define FAN_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
#define PS_ON_PIN -1 //changed @ rkoeppl 20110410
|
||||||
|
#define KILL_PIN -1 //changed @ drakelive 20120830
|
||||||
|
//our pin for debugging.
|
||||||
|
|
||||||
|
#define DEBUG_PIN 0
|
||||||
|
|
||||||
|
//our RS485 pins
|
||||||
|
#define TX_ENABLE_PIN 12
|
||||||
|
#define RX_ENABLE_PIN 13
|
@ -0,0 +1,5 @@
|
|||||||
|
/**
|
||||||
|
* Gen6 Deluxe pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pins_GEN6.h"
|
@ -0,0 +1,72 @@
|
|||||||
|
/**
|
||||||
|
* Gen7 v1.1, v1.2, v1.3 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
|
||||||
|
#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GEN7_VERSION
|
||||||
|
#define GEN7_VERSION 12 // v1.x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//x axis pins
|
||||||
|
#define X_STEP_PIN 19
|
||||||
|
#define X_DIR_PIN 18
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
#define X_STOP_PIN 7
|
||||||
|
|
||||||
|
//y axis pins
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_ENABLE_PIN 24
|
||||||
|
#define Y_STOP_PIN 5
|
||||||
|
|
||||||
|
//z axis pins
|
||||||
|
#define Z_STEP_PIN 26
|
||||||
|
#define Z_DIR_PIN 25
|
||||||
|
#define Z_ENABLE_PIN 24
|
||||||
|
#define Z_MIN_PIN 1
|
||||||
|
#define Z_MAX_PIN 0
|
||||||
|
|
||||||
|
//extruder pins
|
||||||
|
#define E0_STEP_PIN 28
|
||||||
|
#define E0_DIR_PIN 27
|
||||||
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 1
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 2
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 4
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 3
|
||||||
|
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1 // SCL pin of I2C header
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
#if (GEN7_VERSION >= 13)
|
||||||
|
// Gen7 v1.3 removed the fan pin
|
||||||
|
#define FAN_PIN -1
|
||||||
|
#else
|
||||||
|
#define FAN_PIN 31
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PS_ON_PIN 15
|
||||||
|
|
||||||
|
//All these generations of Gen7 supply thermistor power
|
||||||
|
//via PS_ON, so ignore bad thermistor readings
|
||||||
|
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
||||||
|
|
||||||
|
//our pin for debugging.
|
||||||
|
#define DEBUG_PIN 0
|
||||||
|
|
||||||
|
//our RS485 pins
|
||||||
|
#define TX_ENABLE_PIN 12
|
||||||
|
#define RX_ENABLE_PIN 13
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
/**
|
||||||
|
* Gen7 v1.3 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MOTHERBOARD BOARD_GEN7_12
|
||||||
|
#define GEN7_VERSION 13 // v1.3
|
||||||
|
|
||||||
|
#include "pins_GEN7_12.h"
|
@ -0,0 +1,60 @@
|
|||||||
|
/**
|
||||||
|
* Gen7 v1.4 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define GEN7_VERSION 14 // v1.4
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
|
||||||
|
#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//x axis pins
|
||||||
|
#define X_STEP_PIN 29
|
||||||
|
#define X_DIR_PIN 28
|
||||||
|
#define X_ENABLE_PIN 25
|
||||||
|
#define X_STOP_PIN 0
|
||||||
|
|
||||||
|
//y axis pins
|
||||||
|
#define Y_STEP_PIN 27
|
||||||
|
#define Y_DIR_PIN 26
|
||||||
|
#define Y_ENABLE_PIN 25
|
||||||
|
#define Y_STOP_PIN 1
|
||||||
|
|
||||||
|
//z axis pins
|
||||||
|
#define Z_STEP_PIN 23
|
||||||
|
#define Z_DIR_PIN 22
|
||||||
|
#define Z_ENABLE_PIN 25
|
||||||
|
#define Z_STOP_PIN 2
|
||||||
|
|
||||||
|
//extruder pins
|
||||||
|
#define E0_STEP_PIN 19
|
||||||
|
#define E0_DIR_PIN 18
|
||||||
|
#define E0_ENABLE_PIN 25
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 1
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 0
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 4
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 3
|
||||||
|
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1 // SCL pin of I2C header
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
#define FAN_PIN -1
|
||||||
|
|
||||||
|
#define PS_ON_PIN 15
|
||||||
|
|
||||||
|
//our pin for debugging.
|
||||||
|
#define DEBUG_PIN 0
|
||||||
|
|
||||||
|
//our RS485 pins
|
||||||
|
#define TX_ENABLE_PIN 12
|
||||||
|
#define RX_ENABLE_PIN 13
|
||||||
|
|
@ -0,0 +1,76 @@
|
|||||||
|
/**
|
||||||
|
* Gen7 Alfons3 board pin assignments
|
||||||
|
*
|
||||||
|
* These Pins are assigned for the modified GEN7 Board from Alfons3.
|
||||||
|
* Please review the pins and adjust them for your needs.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
|
||||||
|
#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//x axis pins
|
||||||
|
#define X_STEP_PIN 21 // different from standard GEN7
|
||||||
|
#define X_DIR_PIN 20 // different from standard GEN7
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
#define X_STOP_PIN 0
|
||||||
|
|
||||||
|
//y axis pins
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_ENABLE_PIN 24
|
||||||
|
#define Y_STOP_PIN 1
|
||||||
|
|
||||||
|
//z axis pins
|
||||||
|
#define Z_STEP_PIN 26
|
||||||
|
#define Z_DIR_PIN 25
|
||||||
|
#define Z_ENABLE_PIN 24
|
||||||
|
#define Z_STOP_PIN 2
|
||||||
|
|
||||||
|
//extruder pins
|
||||||
|
#define E0_STEP_PIN 28
|
||||||
|
#define E0_DIR_PIN 27
|
||||||
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 2
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 4
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 3 // (bed)
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
#define FAN_PIN -1
|
||||||
|
#define PS_ON_PIN 19
|
||||||
|
//our pin for debugging.
|
||||||
|
|
||||||
|
#define DEBUG_PIN -1
|
||||||
|
|
||||||
|
//our RS485 pins
|
||||||
|
//#define TX_ENABLE_PIN 12
|
||||||
|
//#define RX_ENABLE_PIN 13
|
||||||
|
|
||||||
|
#define BEEPER -1
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
#define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work
|
||||||
|
|
||||||
|
#define KILL_PIN -1
|
||||||
|
//Pins for 4bit LCD Support
|
||||||
|
#define LCD_PINS_RS 18
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 16
|
||||||
|
#define LCD_PINS_D5 15
|
||||||
|
#define LCD_PINS_D6 13
|
||||||
|
#define LCD_PINS_D7 14
|
||||||
|
|
||||||
|
//buttons are directly attached
|
||||||
|
#define BTN_EN1 11
|
||||||
|
#define BTN_EN2 10
|
||||||
|
#define BTN_ENC 12 //the click
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
/**
|
||||||
|
* K8200 Arduino Mega with RAMPS v1.3 pin assignments
|
||||||
|
* Identical to 3DRAG
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pins_3DRAG.h"
|
@ -0,0 +1,62 @@
|
|||||||
|
/**
|
||||||
|
* Leapfrog Driver board pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 28
|
||||||
|
#define X_DIR_PIN 63
|
||||||
|
#define X_ENABLE_PIN 29
|
||||||
|
#define X_MIN_PIN 47
|
||||||
|
#define X_MAX_PIN 2 //Max endstops default to disabled "-1", set to commented value to enable.
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 14 // A6
|
||||||
|
#define Y_DIR_PIN 15 // A0
|
||||||
|
#define Y_ENABLE_PIN 39
|
||||||
|
#define Y_MIN_PIN 48
|
||||||
|
#define Y_MAX_PIN 15
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 31 // A2
|
||||||
|
#define Z_DIR_PIN 32 // A6
|
||||||
|
#define Z_ENABLE_PIN 30 // A1
|
||||||
|
#define Z_MIN_PIN 49
|
||||||
|
#define Z_MAX_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 34 //34
|
||||||
|
#define E0_DIR_PIN 35 //35
|
||||||
|
#define E0_ENABLE_PIN 33 //33
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 37 //37
|
||||||
|
#define E1_DIR_PIN 40 //40
|
||||||
|
#define E1_ENABLE_PIN 36 //36
|
||||||
|
|
||||||
|
#define Y2_STEP_PIN 37
|
||||||
|
#define Y2_DIR_PIN 40
|
||||||
|
#define Y2_ENABLE_PIN 36
|
||||||
|
|
||||||
|
#define Z2_STEP_PIN 37
|
||||||
|
#define Z2_DIR_PIN 40
|
||||||
|
#define Z2_ENABLE_PIN 36
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 11
|
||||||
|
#define SDCARDDETECT -1 // 10 optional also used as mode pin
|
||||||
|
#define LED_PIN 13
|
||||||
|
#define FAN_PIN 7
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define SOL1_PIN 16
|
||||||
|
#define SOL2_PIN 17
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 9
|
||||||
|
#define HEATER_1_PIN 8 // 12
|
||||||
|
#define HEATER_2_PIN 11 //-1 // 13
|
||||||
|
#define TEMP_0_PIN 13 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_1_PIN 15 // 1
|
||||||
|
#define TEMP_2_PIN -1 // 2
|
||||||
|
#define HEATER_BED_PIN 10 // 14/15
|
||||||
|
#define TEMP_BED_PIN 14 // 1,2 or I2C
|
||||||
|
/* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */
|
||||||
|
|
@ -0,0 +1,92 @@
|
|||||||
|
/**
|
||||||
|
* MegaTronics pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 26
|
||||||
|
#define X_DIR_PIN 28
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
#define X_MIN_PIN 41
|
||||||
|
#define X_MAX_PIN 37
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 60 // A6
|
||||||
|
#define Y_DIR_PIN 61 // A7
|
||||||
|
#define Y_ENABLE_PIN 22
|
||||||
|
#define Y_MIN_PIN 14
|
||||||
|
#define Y_MAX_PIN 15
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 54 // A0
|
||||||
|
#define Z_DIR_PIN 55 // A1
|
||||||
|
#define Z_ENABLE_PIN 56 // A2
|
||||||
|
#define Z_MIN_PIN 18
|
||||||
|
#define Z_MAX_PIN 19
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 31
|
||||||
|
#define E0_DIR_PIN 32
|
||||||
|
#define E0_ENABLE_PIN 38
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 34
|
||||||
|
#define E1_DIR_PIN 36
|
||||||
|
#define E1_ENABLE_PIN 30
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
|
||||||
|
|
||||||
|
#define FAN_PIN 7 // IO pin. Buffer needed
|
||||||
|
#define PS_ON_PIN 12
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 9 // EXTRUDER 1
|
||||||
|
#define HEATER_1_PIN 8 // EXTRUDER 2 (FAN On Sprinter)
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_0 == -1
|
||||||
|
#define TEMP_0_PIN 8 // ANALOG NUMBERING
|
||||||
|
#else
|
||||||
|
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
||||||
|
#define TEMP_2_PIN -1 // ANALOG NUMBERING
|
||||||
|
#define HEATER_BED_PIN 10 // BED
|
||||||
|
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#define BEEPER 33 // Beeper on AUX-4
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(ULTRA_LCD) && defined(NEWPANEL)
|
||||||
|
//arduino pin which triggers an piezzo beeper
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 16
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 23
|
||||||
|
#define LCD_PINS_D5 25
|
||||||
|
#define LCD_PINS_D6 27
|
||||||
|
#define LCD_PINS_D7 29
|
||||||
|
|
||||||
|
//buttons are directly attached using AUX-2
|
||||||
|
#define BTN_EN1 59
|
||||||
|
#define BTN_EN2 64
|
||||||
|
#define BTN_ENC 43 //the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT -1 // Ramps does not use this port
|
||||||
|
|
||||||
|
//encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
||||||
|
|
||||||
|
#endif // ULTRA_LCD && NEWPANEL
|
@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* Minitronics v1.0 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega1281__
|
||||||
|
#error Oops! Make sure you have 'Minitronics' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 48
|
||||||
|
#define X_DIR_PIN 47
|
||||||
|
#define X_ENABLE_PIN 49
|
||||||
|
#define X_MIN_PIN 5
|
||||||
|
#define X_MAX_PIN 2
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 39 // A6
|
||||||
|
#define Y_DIR_PIN 40 // A0
|
||||||
|
#define Y_ENABLE_PIN 38
|
||||||
|
#define Y_MIN_PIN 2
|
||||||
|
#define Y_MAX_PIN 15
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 42 // A2
|
||||||
|
#define Z_DIR_PIN 43 // A6
|
||||||
|
#define Z_ENABLE_PIN 41 // A1
|
||||||
|
#define Z_MIN_PIN 6
|
||||||
|
#define Z_MAX_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 45
|
||||||
|
#define E0_DIR_PIN 44
|
||||||
|
#define E0_ENABLE_PIN 27
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 36
|
||||||
|
#define E1_DIR_PIN 35
|
||||||
|
#define E1_ENABLE_PIN 37
|
||||||
|
|
||||||
|
#define E2_STEP_PIN -1
|
||||||
|
#define E2_DIR_PIN -1
|
||||||
|
#define E2_ENABLE_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 16
|
||||||
|
#define LED_PIN 46
|
||||||
|
|
||||||
|
#define FAN_PIN 9
|
||||||
|
#define FAN2_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 7 // EXTRUDER 1
|
||||||
|
#define HEATER_1_PIN 8 // EXTRUDER 2
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 7 // ANALOG NUMBERING
|
||||||
|
#define TEMP_1_PIN 6 // ANALOG NUMBERING
|
||||||
|
#define TEMP_2_PIN -1 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 3 // BED
|
||||||
|
#define TEMP_BED_PIN 6 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#define BEEPER -1
|
||||||
|
|
||||||
|
|
||||||
|
#define LCD_PINS_RS -1
|
||||||
|
#define LCD_PINS_ENABLE -1
|
||||||
|
#define LCD_PINS_D4 -1
|
||||||
|
#define LCD_PINS_D5 -1
|
||||||
|
#define LCD_PINS_D6 -1
|
||||||
|
#define LCD_PINS_D7 -1
|
||||||
|
|
||||||
|
|
||||||
|
// Buttons are directly attached using keypad
|
||||||
|
#define BTN_EN1 -1
|
||||||
|
#define BTN_EN2 -1
|
||||||
|
#define BTN_ENC -1 // the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT -1 // Megatronics does not use this port
|
||||||
|
|
||||||
|
// Encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
@ -0,0 +1,103 @@
|
|||||||
|
/**
|
||||||
|
* MegaTronics v2.0 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 26
|
||||||
|
#define X_DIR_PIN 27
|
||||||
|
#define X_ENABLE_PIN 25
|
||||||
|
#define X_MIN_PIN 37
|
||||||
|
#define X_MAX_PIN 40
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 4 // A6
|
||||||
|
#define Y_DIR_PIN 54 // A0
|
||||||
|
#define Y_ENABLE_PIN 5
|
||||||
|
#define Y_MIN_PIN 41
|
||||||
|
#define Y_MAX_PIN 38
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 56 // A2
|
||||||
|
#define Z_DIR_PIN 60 // A6
|
||||||
|
#define Z_ENABLE_PIN 55 // A1
|
||||||
|
#define Z_MIN_PIN 18
|
||||||
|
#define Z_MAX_PIN 19
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 35
|
||||||
|
#define E0_DIR_PIN 36
|
||||||
|
#define E0_ENABLE_PIN 34
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 29
|
||||||
|
#define E1_DIR_PIN 39
|
||||||
|
#define E1_ENABLE_PIN 28
|
||||||
|
|
||||||
|
#define E2_STEP_PIN 23
|
||||||
|
#define E2_DIR_PIN 24
|
||||||
|
#define E2_ENABLE_PIN 22
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
|
||||||
|
#define FAN_PIN 7
|
||||||
|
#define FAN2_PIN 6
|
||||||
|
#define PS_ON_PIN 12
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 9 // EXTRUDER 1
|
||||||
|
#define HEATER_1_PIN 8 // EXTRUDER 2
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_0 == -1
|
||||||
|
#define TEMP_0_PIN 4 // ANALOG NUMBERING
|
||||||
|
#else
|
||||||
|
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_1 == -1
|
||||||
|
#define TEMP_1_PIN 8 // ANALOG NUMBERING
|
||||||
|
#else
|
||||||
|
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TEMP_2_PIN -1 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 10 // BED
|
||||||
|
|
||||||
|
#if TEMP_SENSOR_BED == -1
|
||||||
|
#define TEMP_BED_PIN 8 // ANALOG NUMBERING
|
||||||
|
#else
|
||||||
|
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BEEPER 64
|
||||||
|
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 14
|
||||||
|
#define LCD_PINS_ENABLE 15
|
||||||
|
#define LCD_PINS_D4 30
|
||||||
|
#define LCD_PINS_D5 31
|
||||||
|
#define LCD_PINS_D6 32
|
||||||
|
#define LCD_PINS_D7 33
|
||||||
|
|
||||||
|
|
||||||
|
// Buttons are directly attached using keypad
|
||||||
|
#define BTN_EN1 61
|
||||||
|
#define BTN_EN2 59
|
||||||
|
#define BTN_ENC 43 //the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT -1 // Megatronics does not use this port
|
||||||
|
|
||||||
|
// Encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
@ -0,0 +1,89 @@
|
|||||||
|
/**
|
||||||
|
* MegaTronics v3.0 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 58
|
||||||
|
#define X_DIR_PIN 57
|
||||||
|
#define X_ENABLE_PIN 59
|
||||||
|
#define X_MIN_PIN 37
|
||||||
|
#define X_MAX_PIN 40 // 2 // Max endstops default to disabled "-1", set to commented value to enable.
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 5 // A6
|
||||||
|
#define Y_DIR_PIN 17 // A0
|
||||||
|
#define Y_ENABLE_PIN 4
|
||||||
|
#define Y_MIN_PIN 41
|
||||||
|
#define Y_MAX_PIN 38 // 15
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 16 // A2
|
||||||
|
#define Z_DIR_PIN 11 // A6
|
||||||
|
#define Z_ENABLE_PIN 3 // A1
|
||||||
|
#define Z_MIN_PIN 18
|
||||||
|
#define Z_MAX_PIN 19
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 28
|
||||||
|
#define E0_DIR_PIN 27
|
||||||
|
#define E0_ENABLE_PIN 29
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 25
|
||||||
|
#define E1_DIR_PIN 24
|
||||||
|
#define E1_ENABLE_PIN 26
|
||||||
|
|
||||||
|
#define E2_STEP_PIN 22
|
||||||
|
#define E2_DIR_PIN 60
|
||||||
|
#define E2_ENABLE_PIN 23
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
|
||||||
|
#define PS_ON_PIN 12
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 2
|
||||||
|
#define HEATER_1_PIN 9
|
||||||
|
#define HEATER_2_PIN 8
|
||||||
|
#define HEATER_BED_PIN 10
|
||||||
|
#define FAN_PIN 6
|
||||||
|
#define FAN2_PIN 7
|
||||||
|
|
||||||
|
#define TEMP_0_PIN (TEMP_SENSOR_0 == -1 ? 11 : 15) // ANALOG NUMBERING
|
||||||
|
#define TEMP_1_PIN (TEMP_SENSOR_1 == -1 ? 10 : 13) // ANALOG NUMBERING
|
||||||
|
#define TEMP_2_PIN (TEMP_SENSOR_2 == -1 ? 9 : 12) // ANALOG NUMBERING
|
||||||
|
#define TEMP_BED_PIN (TEMP_SENSOR_BED == -1 ? 8 : 14) // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#define BEEPER 61
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 32
|
||||||
|
#define LCD_PINS_ENABLE 31
|
||||||
|
#define LCD_PINS_D4 14
|
||||||
|
#define LCD_PINS_D5 30
|
||||||
|
#define LCD_PINS_D6 39
|
||||||
|
#define LCD_PINS_D7 15
|
||||||
|
|
||||||
|
#define SHIFT_CLK 43
|
||||||
|
#define SHIFT_LD 35
|
||||||
|
#define SHIFT_OUT 34
|
||||||
|
#define SHIFT_EN 44
|
||||||
|
|
||||||
|
// Buttons are directly attached using keypad
|
||||||
|
#define BTN_EN1 44
|
||||||
|
#define BTN_EN2 45
|
||||||
|
#define BTN_ENC 33 // the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT -1 // Megatronics does not use this port
|
||||||
|
|
||||||
|
// Encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* Melzi pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SANGUINOLOLU_V_1_2
|
||||||
|
|
||||||
|
#if defined(__AVR_ATmega1284P__)
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "pins_SANGUINOLOLU_11.h"
|
@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Melzi with ATmega1284 (MaKr3d version) pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MELZI
|
||||||
|
|
||||||
|
#undef MOTHERBOARD
|
||||||
|
#define MOTHERBOARD BOARD_SANGUINOLOLU_11
|
||||||
|
#define SANGUINOLOLU_V_1_2
|
||||||
|
|
||||||
|
#if defined(__AVR_ATmega1284P__)
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "pins_SANGUINOLOLU_11.h"
|
@ -0,0 +1,91 @@
|
|||||||
|
/**
|
||||||
|
* Open Motion controller with enable based extruders (Final!)
|
||||||
|
*
|
||||||
|
* ATMega644
|
||||||
|
*
|
||||||
|
* +---\/---+
|
||||||
|
* (D 0) PB0 1| |40 PA0 (AI 0 / D31)
|
||||||
|
* (D 1) PB1 2| |39 PA1 (AI 1 / D30)
|
||||||
|
* INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29)
|
||||||
|
* PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28)
|
||||||
|
* PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27)
|
||||||
|
* MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26)
|
||||||
|
* MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25)
|
||||||
|
* SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24)
|
||||||
|
* RST 9| |32 AREF
|
||||||
|
* VCC 10| |31 GND
|
||||||
|
* GND 11| |30 AVCC
|
||||||
|
* XTAL2 12| |29 PC7 (D 23)
|
||||||
|
* XTAL1 13| |28 PC6 (D 22)
|
||||||
|
* RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI
|
||||||
|
* TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO
|
||||||
|
* INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS
|
||||||
|
* INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK
|
||||||
|
* PWM (D 12) PD4 18| |23 PC1 (D 17) SDA
|
||||||
|
* PWM (D 13) PD5 19| |22 PC0 (D 16) SCL
|
||||||
|
* PWM (D 14) PD6 20| |21 PD7 (D 15) PWM
|
||||||
|
* +--------+
|
||||||
|
*
|
||||||
|
* REF http://sanguino.cc/hardware
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__)
|
||||||
|
#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 26
|
||||||
|
#define X_DIR_PIN 25
|
||||||
|
#define X_ENABLE_PIN 10
|
||||||
|
#define X_STOP_PIN 0
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 28
|
||||||
|
#define Y_DIR_PIN 27
|
||||||
|
#define Y_ENABLE_PIN 10
|
||||||
|
#define Y_STOP_PIN 1
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 23
|
||||||
|
#define Z_DIR_PIN 22
|
||||||
|
#define Z_ENABLE_PIN 10
|
||||||
|
#define Z_STOP_PIN 2
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 24
|
||||||
|
#define E0_DIR_PIN 21
|
||||||
|
#define E0_ENABLE_PIN 10
|
||||||
|
|
||||||
|
// future proofing
|
||||||
|
#define __FS 20
|
||||||
|
#define __FD 19
|
||||||
|
#define __GS 18
|
||||||
|
#define __GD 13
|
||||||
|
|
||||||
|
#define UNUSED_PWM 14 // PWM on LEFT connector
|
||||||
|
|
||||||
|
#define E1_STEP_PIN -1 // 21
|
||||||
|
#define E1_DIR_PIN -1 // 20
|
||||||
|
#define E1_ENABLE_PIN -1 // 19
|
||||||
|
|
||||||
|
#define E2_STEP_PIN -1 // 21
|
||||||
|
#define E2_DIR_PIN -1 // 20
|
||||||
|
#define E2_ENABLE_PIN -1 // 18
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 11
|
||||||
|
#define SDCARDDETECT -1 // 10 optional also used as mode pin
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define FAN_PIN 14 // PWM on MIDDLE connector
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 3 // DONE PWM on RIGHT connector
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_0_PIN 0 // ANALOG INPUT NUMBERING
|
||||||
|
#define TEMP_1_PIN 1 // ANALOG
|
||||||
|
#define TEMP_2_PIN -1 // 2
|
||||||
|
#define HEATER_BED_PIN 4
|
||||||
|
#define TEMP_BED_PIN 2 // 1,2 or I2C
|
||||||
|
|
||||||
|
#define I2C_SCL 16
|
||||||
|
#define I2C_SDA 17
|
@ -0,0 +1,78 @@
|
|||||||
|
/**
|
||||||
|
* Open Motion controller with enable based extruders (Alpha!)
|
||||||
|
*
|
||||||
|
* ATMega644
|
||||||
|
*
|
||||||
|
* +---\/---+
|
||||||
|
* (D 0) PB0 1| |40 PA0 (AI 0 / D31)
|
||||||
|
* (D 1) PB1 2| |39 PA1 (AI 1 / D30)
|
||||||
|
* INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29)
|
||||||
|
* PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28)
|
||||||
|
* PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27)
|
||||||
|
* MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26)
|
||||||
|
* MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25)
|
||||||
|
* SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24)
|
||||||
|
* RST 9| |32 AREF
|
||||||
|
* VCC 10| |31 GND
|
||||||
|
* GND 11| |30 AVCC
|
||||||
|
* XTAL2 12| |29 PC7 (D 23)
|
||||||
|
* XTAL1 13| |28 PC6 (D 22)
|
||||||
|
* RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI
|
||||||
|
* TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO
|
||||||
|
* INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS
|
||||||
|
* INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK
|
||||||
|
* PWM (D 12) PD4 18| |23 PC1 (D 17) SDA
|
||||||
|
* PWM (D 13) PD5 19| |22 PC0 (D 16) SCL
|
||||||
|
* PWM (D 14) PD6 20| |21 PD7 (D 15) PWM
|
||||||
|
* +--------+
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega644__
|
||||||
|
#error Oops! Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 21
|
||||||
|
#define X_DIR_PIN 20
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
#define X_STOP_PIN 0
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_ENABLE_PIN 24
|
||||||
|
#define Y_STOP_PIN 1
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 26
|
||||||
|
#define Z_DIR_PIN 25
|
||||||
|
#define Z_ENABLE_PIN 24
|
||||||
|
#define Z_STOP_PIN 2
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 28
|
||||||
|
#define E0_DIR_PIN 27
|
||||||
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define E1_STEP_PIN -1 // 19
|
||||||
|
#define E1_DIR_PIN -1 // 18
|
||||||
|
#define E1_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define E2_STEP_PIN -1 // 17
|
||||||
|
#define E2_DIR_PIN -1 // 16
|
||||||
|
#define E2_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 11
|
||||||
|
#define SDCARDDETECT -1 // 10 optional also used as mode pin
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define FAN_PIN 3
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 4
|
||||||
|
#define HEATER_1_PIN -1 // 12
|
||||||
|
#define HEATER_2_PIN -1 // 13
|
||||||
|
#define TEMP_0_PIN 0 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_1_PIN -1 // 1
|
||||||
|
#define TEMP_2_PIN -1 // 2
|
||||||
|
#define HEATER_BED_PIN -1 // 14/15
|
||||||
|
#define TEMP_BED_PIN -1 // 1,2 or I2C
|
||||||
|
/* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */
|
@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* Printrboard pin assignments (AT90USB1286)
|
||||||
|
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
|
||||||
|
* http://www.pjrc.com/teensy/teensyduino.html
|
||||||
|
* See http://reprap.org/wiki/Printrboard for more info
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB1286__
|
||||||
|
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional.
|
||||||
|
#error These Printrboard assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AT90USB 1286 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 0
|
||||||
|
#define X_DIR_PIN 1
|
||||||
|
#define X_ENABLE_PIN 39
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 2
|
||||||
|
#define Y_DIR_PIN 3
|
||||||
|
#define Y_ENABLE_PIN 38
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 4
|
||||||
|
#define Z_DIR_PIN 5
|
||||||
|
#define Z_ENABLE_PIN 23
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 6
|
||||||
|
#define E0_DIR_PIN 7
|
||||||
|
#define E0_ENABLE_PIN 19
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 21 // Extruder
|
||||||
|
#define HEATER_1_PIN 46
|
||||||
|
#define HEATER_2_PIN 47
|
||||||
|
#define HEATER_BED_PIN 20
|
||||||
|
|
||||||
|
// If soft or fast PWM is off then use Teensyduino pin numbering, Marlin
|
||||||
|
// fastio pin numbering otherwise
|
||||||
|
#ifdef FAN_SOFT_PWM || FAST_PWM_FAN
|
||||||
|
#define FAN_PIN 22
|
||||||
|
#else
|
||||||
|
#define FAN_PIN 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STOP_PIN 35
|
||||||
|
#define Y_STOP_PIN 8
|
||||||
|
#define Z_STOP_PIN 36
|
||||||
|
#define TEMP_0_PIN 1 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_BED_PIN 0 // Bed / Analog pin numbering
|
||||||
|
|
||||||
|
#ifdef FILAMENT_SENSOR
|
||||||
|
#define FILWIDTH_PIN 2
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 8
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 9
|
||||||
|
#define MISO_PIN 11
|
||||||
|
#define MOSI_PIN 10
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ULTRA_LCD) && defined(NEWPANEL)
|
||||||
|
//we have no buzzer installed
|
||||||
|
#define BEEPER -1
|
||||||
|
//LCD Pins
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
#define BTN_EN1 27 //RX1 - fastio.h pin mapping 27
|
||||||
|
#define BTN_EN2 26 //TX1 - fastio.h pin mapping 26
|
||||||
|
#define BTN_ENC 43 //A3 - fastio.h pin mapping 43
|
||||||
|
#define SDSS 40 //use SD card on Panelolu2 (Teensyduino pin mapping)
|
||||||
|
#endif // LCD_I2C_PANELOLU2
|
||||||
|
//not connected to a pin
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
#endif // ULTRA_LCD && NEWPANEL
|
@ -0,0 +1,165 @@
|
|||||||
|
/**
|
||||||
|
* Rambo pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
// Servo support
|
||||||
|
#ifdef NUM_SERVOS
|
||||||
|
#define SERVO0_PIN 22 //motor header MX1
|
||||||
|
#if NUM_SERVOS > 1
|
||||||
|
#define SERVO1_PIN 23 //Motor header MX2
|
||||||
|
#if NUM_SERVOS > 2
|
||||||
|
#define SERVO2_PIN 24 //Motor header MX3
|
||||||
|
#if NUM_SERVOS > 3
|
||||||
|
#define SERVO2_PIN 5 //pwm header pin 5
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 37
|
||||||
|
#define X_DIR_PIN 48
|
||||||
|
#define X_MIN_PIN 12
|
||||||
|
#define X_MAX_PIN 24
|
||||||
|
#define X_ENABLE_PIN 29
|
||||||
|
#define X_MS1_PIN 40
|
||||||
|
#define X_MS2_PIN 41
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 36
|
||||||
|
#define Y_DIR_PIN 49
|
||||||
|
#define Y_MIN_PIN 11
|
||||||
|
#define Y_MAX_PIN 23
|
||||||
|
#define Y_ENABLE_PIN 28
|
||||||
|
#define Y_MS1_PIN 69
|
||||||
|
#define Y_MS2_PIN 39
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 35
|
||||||
|
#define Z_DIR_PIN 47
|
||||||
|
#define Z_MIN_PIN 10
|
||||||
|
#define Z_MAX_PIN 30
|
||||||
|
#define Z_ENABLE_PIN 27
|
||||||
|
#define Z_MS1_PIN 68
|
||||||
|
#define Z_MS2_PIN 67
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 3
|
||||||
|
#define TEMP_BED_PIN 2
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 9
|
||||||
|
#define TEMP_0_PIN 0
|
||||||
|
|
||||||
|
#define HEATER_1_PIN 7
|
||||||
|
#define TEMP_1_PIN 1
|
||||||
|
|
||||||
|
#ifdef BARICUDA
|
||||||
|
#define HEATER_2_PIN 6
|
||||||
|
#else
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 34
|
||||||
|
#define E0_DIR_PIN 43
|
||||||
|
#define E0_ENABLE_PIN 26
|
||||||
|
#define E0_MS1_PIN 65
|
||||||
|
#define E0_MS2_PIN 66
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 33
|
||||||
|
#define E1_DIR_PIN 42
|
||||||
|
#define E1_ENABLE_PIN 25
|
||||||
|
#define E1_MS1_PIN 63
|
||||||
|
#define E1_MS2_PIN 64
|
||||||
|
|
||||||
|
#define DIGIPOTSS_PIN 38
|
||||||
|
#define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
#define FAN_PIN 8
|
||||||
|
|
||||||
|
/**********************************************************
|
||||||
|
Fan Pins
|
||||||
|
Fan_0 8
|
||||||
|
Fan_1 6
|
||||||
|
Fan_2 2
|
||||||
|
***********************************************************/
|
||||||
|
#define PS_ON_PIN 4
|
||||||
|
#define KILL_PIN -1 //80 with Smart Controller LCD
|
||||||
|
#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
#define KILL_PIN 80
|
||||||
|
#ifdef NEWPANEL
|
||||||
|
//arduino pin which triggers an piezzo beeper
|
||||||
|
#define BEEPER 79 // Beeper on AUX-4
|
||||||
|
#define LCD_PINS_RS 70
|
||||||
|
#define LCD_PINS_ENABLE 71
|
||||||
|
#define LCD_PINS_D4 72
|
||||||
|
#define LCD_PINS_D5 73
|
||||||
|
#define LCD_PINS_D6 74
|
||||||
|
#define LCD_PINS_D7 75
|
||||||
|
|
||||||
|
//buttons are directly attached using AUX-2
|
||||||
|
#define BTN_EN1 76
|
||||||
|
#define BTN_EN2 77
|
||||||
|
#define BTN_ENC 78 //the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT 81 // Ramps does not use this port
|
||||||
|
|
||||||
|
//encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
||||||
|
#else //!NEWPANEL - old style panel with shift register
|
||||||
|
//arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 33 No Beeper added
|
||||||
|
//buttons are attached to a shift register
|
||||||
|
// Not wired this yet
|
||||||
|
// #define SHIFT_CLK 38
|
||||||
|
// #define SHIFT_LD 42
|
||||||
|
// #define SHIFT_OUT 40
|
||||||
|
// #define SHIFT_EN 17
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 75
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 23
|
||||||
|
#define LCD_PINS_D5 25
|
||||||
|
#define LCD_PINS_D6 27
|
||||||
|
#define LCD_PINS_D7 29
|
||||||
|
|
||||||
|
//encoder rotation values
|
||||||
|
#define encrot0 0
|
||||||
|
#define encrot1 2
|
||||||
|
#define encrot2 3
|
||||||
|
#define encrot3 1
|
||||||
|
|
||||||
|
//bits in the shift register that carry the buttons for:
|
||||||
|
// left up center down right red
|
||||||
|
#define BL_LE 7
|
||||||
|
#define BL_UP 6
|
||||||
|
#define BL_MI 5
|
||||||
|
#define BL_DW 4
|
||||||
|
#define BL_RI 3
|
||||||
|
#define BL_ST 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#endif // !NEWPANEL
|
||||||
|
|
||||||
|
#endif // ULTRA_LCD
|
||||||
|
|
||||||
|
#ifdef FILAMENT_SENSOR
|
||||||
|
//Filip added pin for Filament sensor analog input
|
||||||
|
#define FILWIDTH_PIN 3
|
||||||
|
#endif
|
@ -0,0 +1,227 @@
|
|||||||
|
/**
|
||||||
|
* Arduino Mega with RAMPS v1.3 pin assignments
|
||||||
|
*
|
||||||
|
* Applies to the following boards:
|
||||||
|
*
|
||||||
|
* RAMPS_13_EFB (Extruder, Fan, Bed)
|
||||||
|
* RAMPS_13_EEB (Extruder, Extruder, Bed)
|
||||||
|
* RAMPS_13_EFF (Extruder, Fan, Fan)
|
||||||
|
* RAMPS_13_EEF (Extruder, Extruder, Fan)
|
||||||
|
* 3DRAG
|
||||||
|
* K8200
|
||||||
|
* AZTEEG_X3
|
||||||
|
* AZTEEG_X3_PRO
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 54
|
||||||
|
#define X_DIR_PIN 55
|
||||||
|
#define X_ENABLE_PIN 38
|
||||||
|
#define X_MIN_PIN 3
|
||||||
|
#define X_MAX_PIN 2
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 60
|
||||||
|
#define Y_DIR_PIN 61
|
||||||
|
#define Y_ENABLE_PIN 56
|
||||||
|
#define Y_MIN_PIN 14
|
||||||
|
#define Y_MAX_PIN 15
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 46
|
||||||
|
#define Z_DIR_PIN 48
|
||||||
|
#define Z_ENABLE_PIN 62
|
||||||
|
#define Z_MIN_PIN 18
|
||||||
|
#define Z_MAX_PIN 19
|
||||||
|
|
||||||
|
#define Y2_STEP_PIN 36
|
||||||
|
#define Y2_DIR_PIN 34
|
||||||
|
#define Y2_ENABLE_PIN 30
|
||||||
|
|
||||||
|
#define Z2_STEP_PIN 36
|
||||||
|
#define Z2_DIR_PIN 34
|
||||||
|
#define Z2_ENABLE_PIN 30
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 26
|
||||||
|
#define E0_DIR_PIN 28
|
||||||
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 36
|
||||||
|
#define E1_DIR_PIN 34
|
||||||
|
#define E1_ENABLE_PIN 30
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
|
||||||
|
#if MB(RAMPS_13_EEB) && defined(FILAMENT_SENSOR) // FMM added for Filament Extruder
|
||||||
|
// define analog pin for the filament width sensor input
|
||||||
|
// Use the RAMPS 1.4 Analog input 5 on the AUX2 connector
|
||||||
|
#define FILWIDTH_PIN 5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MB(RAMPS_13_EFB) || MB(RAMPS_13_EFF) || MB(AZTEEG_X3) || MB(AZTEEG_X3_PRO) || MB(WITBOX) || MB(HEPHESTOS)
|
||||||
|
#define FAN_PIN 9 // (Sprinter config)
|
||||||
|
#if MB(RAMPS_13_EFF)
|
||||||
|
#define CONTROLLERFAN_PIN -1 // Pin used for the fan to cool controller
|
||||||
|
#endif
|
||||||
|
#elif MB(RAMPS_13_EEF)
|
||||||
|
#define FAN_PIN 8
|
||||||
|
#else
|
||||||
|
#define FAN_PIN 4 // IO pin. Buffer needed
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PS_ON_PIN 12
|
||||||
|
|
||||||
|
#if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
|
||||||
|
#define KILL_PIN 41
|
||||||
|
#else
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MB(RAMPS_13_EFF)
|
||||||
|
#define HEATER_0_PIN 8
|
||||||
|
#else
|
||||||
|
#define HEATER_0_PIN 10 // EXTRUDER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MB(RAMPS_13_EFB) || MB(AZTEEG_X3) || MB(WITBOX) || MB(HEPHESTOS)
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#else
|
||||||
|
#define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 13 // ANALOG NUMBERING
|
||||||
|
#define TEMP_1_PIN 15 // ANALOG NUMBERING
|
||||||
|
#define TEMP_2_PIN -1 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#if MB(RAMPS_13_EFF) || MB(RAMPS_13_EEF)
|
||||||
|
#define HEATER_BED_PIN -1 // NO BED
|
||||||
|
#else
|
||||||
|
#define HEATER_BED_PIN 8 // BED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TEMP_BED_PIN 14 // ANALOG NUMBERING
|
||||||
|
|
||||||
|
#ifdef NUM_SERVOS
|
||||||
|
#define SERVO0_PIN 11
|
||||||
|
|
||||||
|
#if NUM_SERVOS > 1
|
||||||
|
#define SERVO1_PIN 6
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if NUM_SERVOS > 2
|
||||||
|
#define SERVO2_PIN 5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if NUM_SERVOS > 3
|
||||||
|
#define SERVO3_PIN 4
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MB(AZTEEG_X3_PRO)
|
||||||
|
#define BEEPER 33
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef TEMP_STAT_LEDS
|
||||||
|
#if MB(AZTEEG_X3)
|
||||||
|
#define STAT_LED_RED 6
|
||||||
|
#define STAT_LED_BLUE 11
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
|
||||||
|
#ifdef NEWPANEL
|
||||||
|
#define LCD_PINS_RS 16
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 23
|
||||||
|
#define LCD_PINS_D5 25
|
||||||
|
#define LCD_PINS_D6 27
|
||||||
|
#define LCD_PINS_D7 29
|
||||||
|
|
||||||
|
#ifdef REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||||
|
#define BEEPER 37
|
||||||
|
|
||||||
|
#define BTN_EN1 31
|
||||||
|
#define BTN_EN2 33
|
||||||
|
#define BTN_ENC 35
|
||||||
|
|
||||||
|
#define SDCARDDETECT 49
|
||||||
|
#elif defined(LCD_I2C_PANELOLU2)
|
||||||
|
#define BTN_EN1 47 // reverse if the encoder turns the wrong way.
|
||||||
|
#define BTN_EN2 43
|
||||||
|
#define BTN_ENC 32
|
||||||
|
#define LCD_SDSS 53
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
#define KILL_PIN 41
|
||||||
|
#elif defined(LCD_I2C_VIKI)
|
||||||
|
#define BTN_EN1 22 // reverse if the encoder turns the wrong way.
|
||||||
|
#define BTN_EN2 7
|
||||||
|
#define BTN_ENC -1
|
||||||
|
#define LCD_SDSS 53
|
||||||
|
#define SDCARDDETECT 49
|
||||||
|
#else
|
||||||
|
// arduino pin which triggers an piezzo beeper
|
||||||
|
#define BEEPER 33 // Beeper on AUX-4
|
||||||
|
|
||||||
|
// buttons are directly attached using AUX-2
|
||||||
|
#ifdef REPRAPWORLD_KEYPAD
|
||||||
|
#define BTN_EN1 64 // encoder
|
||||||
|
#define BTN_EN2 59 // encoder
|
||||||
|
#define BTN_ENC 63 // enter button
|
||||||
|
#define SHIFT_OUT 40 // shift register
|
||||||
|
#define SHIFT_CLK 44 // shift register
|
||||||
|
#define SHIFT_LD 42 // shift register
|
||||||
|
#else
|
||||||
|
#define BTN_EN1 37
|
||||||
|
#define BTN_EN2 35
|
||||||
|
#define BTN_ENC 31 // the click
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef G3D_PANEL
|
||||||
|
#define SDCARDDETECT 49
|
||||||
|
#else
|
||||||
|
#define SDCARDDETECT -1 // Ramps does not use this port
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else // Old-style panel with shift register
|
||||||
|
// Arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 33 // No Beeper added
|
||||||
|
|
||||||
|
// Buttons are attached to a shift register
|
||||||
|
// Not wired yet
|
||||||
|
// #define SHIFT_CLK 38
|
||||||
|
// #define SHIFT_LD 42
|
||||||
|
// #define SHIFT_OUT 40
|
||||||
|
// #define SHIFT_EN 17
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 16
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 23
|
||||||
|
#define LCD_PINS_D5 25
|
||||||
|
#define LCD_PINS_D6 27
|
||||||
|
#define LCD_PINS_D7 29
|
||||||
|
#endif
|
||||||
|
#endif // ULTRA_LCD
|
||||||
|
|
||||||
|
// SPI for Max6675 Thermocouple
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
#define MAX6675_SS 66 // Do not use pin 53 if there is even the remote possibility of using Display/SD card
|
||||||
|
#else
|
||||||
|
#define MAX6675_SS 66 // Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 52
|
||||||
|
#define MISO_PIN 50
|
||||||
|
#define MOSI_PIN 51
|
||||||
|
#endif
|
@ -0,0 +1,69 @@
|
|||||||
|
/**
|
||||||
|
* Arduino Mega with RAMPS v1.0, v1.1, v1.2 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Uncomment the following line for RAMPS v1.0
|
||||||
|
//#define RAMPS_V_1_0
|
||||||
|
|
||||||
|
#define X_STEP_PIN 26
|
||||||
|
#define X_DIR_PIN 28
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
#define X_MIN_PIN 3
|
||||||
|
#define X_MAX_PIN 2
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 38
|
||||||
|
#define Y_DIR_PIN 40
|
||||||
|
#define Y_ENABLE_PIN 36
|
||||||
|
#define Y_MIN_PIN 16
|
||||||
|
#define Y_MAX_PIN 17
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 44
|
||||||
|
#define Z_DIR_PIN 46
|
||||||
|
#define Z_ENABLE_PIN 42
|
||||||
|
#define Z_MIN_PIN 18
|
||||||
|
#define Z_MAX_PIN 19
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 32
|
||||||
|
#define E0_DIR_PIN 34
|
||||||
|
#define E0_ENABLE_PIN 30
|
||||||
|
|
||||||
|
#define SDPOWER 48
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#ifdef RAMPS_V_1_0 // RAMPS_V_1_0
|
||||||
|
#define HEATER_0_PIN 12 // RAMPS 1.0
|
||||||
|
#define HEATER_BED_PIN -1 // RAMPS 1.0
|
||||||
|
#define FAN_PIN 11 // RAMPS 1.0
|
||||||
|
#else // RAMPS_V_1_1 or RAMPS_V_1_2
|
||||||
|
#define HEATER_0_PIN 10 // RAMPS 1.1
|
||||||
|
#define HEATER_BED_PIN 8 // RAMPS 1.1
|
||||||
|
#define FAN_PIN 9 // RAMPS 1.1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!!
|
||||||
|
|
||||||
|
// SPI for Max6675 Thermocouple
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
#define MAX6675_SS 66// Do not use pin 53 if there is even the remote possibility of using Display/SD card
|
||||||
|
#else
|
||||||
|
#define MAX6675_SS 66// Do not use pin 49 as this is tied to the switch inside the SD card socket to detect if there is an SD card present
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 52
|
||||||
|
#define MISO_PIN 50
|
||||||
|
#define MOSI_PIN 51
|
||||||
|
#endif
|
@ -0,0 +1,113 @@
|
|||||||
|
/**
|
||||||
|
* RUMBA pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 17
|
||||||
|
#define X_DIR_PIN 16
|
||||||
|
#define X_ENABLE_PIN 48
|
||||||
|
#define X_MIN_PIN 37
|
||||||
|
#define X_MAX_PIN 36
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 54
|
||||||
|
#define Y_DIR_PIN 47
|
||||||
|
#define Y_ENABLE_PIN 55
|
||||||
|
#define Y_MIN_PIN 35
|
||||||
|
#define Y_MAX_PIN 34
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 57
|
||||||
|
#define Z_DIR_PIN 56
|
||||||
|
#define Z_ENABLE_PIN 62
|
||||||
|
#define Z_MIN_PIN 33
|
||||||
|
#define Z_MAX_PIN 32
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 23
|
||||||
|
#define E0_DIR_PIN 22
|
||||||
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 26
|
||||||
|
#define E1_DIR_PIN 25
|
||||||
|
#define E1_ENABLE_PIN 27
|
||||||
|
|
||||||
|
#define E2_STEP_PIN 29
|
||||||
|
#define E2_DIR_PIN 28
|
||||||
|
#define E2_ENABLE_PIN 39
|
||||||
|
|
||||||
|
#define LED_PIN 13
|
||||||
|
|
||||||
|
#define FAN_PIN 7
|
||||||
|
#define FAN1_PIN 8
|
||||||
|
|
||||||
|
#define PS_ON_PIN 45
|
||||||
|
#define KILL_PIN 46
|
||||||
|
|
||||||
|
#if (TEMP_SENSOR_0==0)
|
||||||
|
#define TEMP_0_PIN -1
|
||||||
|
#define HEATER_0_PIN -1
|
||||||
|
#else
|
||||||
|
#define HEATER_0_PIN 2 // EXTRUDER 1
|
||||||
|
#if (TEMP_SENSOR_0==-1)
|
||||||
|
#define TEMP_0_PIN 6 // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used
|
||||||
|
#else
|
||||||
|
#define TEMP_0_PIN 15 // ANALOG NUMBERING - default connector for thermistor *T0* on rumba board is used
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (TEMP_SENSOR_1==0)
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#else
|
||||||
|
#define HEATER_1_PIN 3 // EXTRUDER 2
|
||||||
|
#if (TEMP_SENSOR_1==-1)
|
||||||
|
#define TEMP_1_PIN 5 // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used
|
||||||
|
#else
|
||||||
|
#define TEMP_1_PIN 14 // ANALOG NUMBERING - default connector for thermistor *T1* on rumba board is used
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (TEMP_SENSOR_2==0)
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#else
|
||||||
|
#define HEATER_2_PIN 6 // EXTRUDER 3
|
||||||
|
#if (TEMP_SENSOR_2==-1)
|
||||||
|
#define TEMP_2_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple
|
||||||
|
#else
|
||||||
|
#define TEMP_2_PIN 13 // ANALOG NUMBERING - default connector for thermistor *T2* on rumba board is used
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//optional for extruder 4 or chamber: #define TEMP_X_PIN 12 // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used
|
||||||
|
//optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4
|
||||||
|
|
||||||
|
#if (TEMP_SENSOR_BED==0)
|
||||||
|
#define TEMP_BED_PIN -1
|
||||||
|
#define HEATER_BED_PIN -1
|
||||||
|
#else
|
||||||
|
#define HEATER_BED_PIN 9 // BED
|
||||||
|
#if (TEMP_SENSOR_BED==-1)
|
||||||
|
#define TEMP_BED_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple
|
||||||
|
#else
|
||||||
|
#define TEMP_BED_PIN 11 // ANALOG NUMBERING - default connector for thermistor *THB* on rumba board is used
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define SDCARDDETECT 49
|
||||||
|
#define BEEPER 44
|
||||||
|
#define LCD_PINS_RS 19
|
||||||
|
#define LCD_PINS_ENABLE 42
|
||||||
|
#define LCD_PINS_D4 18
|
||||||
|
#define LCD_PINS_D5 38
|
||||||
|
#define LCD_PINS_D6 41
|
||||||
|
#define LCD_PINS_D7 40
|
||||||
|
#define BTN_EN1 11
|
||||||
|
#define BTN_EN2 12
|
||||||
|
#define BTN_ENC 43
|
||||||
|
|
||||||
|
#define SERVO0_PIN 5
|
||||||
|
|
@ -0,0 +1,172 @@
|
|||||||
|
/**
|
||||||
|
* Sanguinololu board pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega1284P__)
|
||||||
|
#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 15
|
||||||
|
#define X_DIR_PIN 21
|
||||||
|
#define X_STOP_PIN 18
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 22
|
||||||
|
#define Y_DIR_PIN 23
|
||||||
|
#define Y_STOP_PIN 19
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 3
|
||||||
|
#define Z_DIR_PIN 2
|
||||||
|
#define Z_STOP_PIN 20
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 1
|
||||||
|
#define E0_DIR_PIN 0
|
||||||
|
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
#define FAN_PIN -1
|
||||||
|
|
||||||
|
// #if FAN_PIN == 12 || FAN_PIN ==13
|
||||||
|
// #define FAN_SOFT_PWM
|
||||||
|
// #endif
|
||||||
|
|
||||||
|
#if MB(MELZI)
|
||||||
|
#define LED_PIN 27 /* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs LED_PIN as pin 28. But you better upgrade your Sanguino libraries! See #368. */
|
||||||
|
#define FAN_PIN 4 // Works for Panelolu2 too
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MB(STB_11)
|
||||||
|
#define FAN_PIN 4
|
||||||
|
// Uncomment this if you have the first generation (V1.10) of STBs board
|
||||||
|
#define LCD_PIN_BL 17 // LCD backlight LED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if MB(AZTEEG_X1)
|
||||||
|
#define FAN_PIN 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef NUM_SERVOS
|
||||||
|
#define SERVO0_PIN -1
|
||||||
|
|
||||||
|
#if NUM_SERVOS > 1
|
||||||
|
#define SERVO1_PIN -1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if NUM_SERVOS > 2
|
||||||
|
#define SERVO2_PIN -1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if NUM_SERVOS > 3
|
||||||
|
#define SERVO3_PIN -1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 13 // (extruder)
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
|
||||||
|
#ifdef SANGUINOLOLU_V_1_2
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 12 // (bed)
|
||||||
|
#define X_ENABLE_PIN 14
|
||||||
|
#define Y_ENABLE_PIN 14
|
||||||
|
#define Z_ENABLE_PIN 26
|
||||||
|
#define E0_ENABLE_PIN 14
|
||||||
|
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
#define FAN_PIN 4 // Uses Transistor1 (PWM) on Panelolu2's Sanguino Adapter Board to drive the fan
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 14 // (bed)
|
||||||
|
#define X_ENABLE_PIN -1
|
||||||
|
#define Y_ENABLE_PIN -1
|
||||||
|
#define Z_ENABLE_PIN -1
|
||||||
|
#define E0_ENABLE_PIN -1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 7 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder)
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 31
|
||||||
|
|
||||||
|
/* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs SDSS as pin 24. But you better upgrade your Sanguino libraries! See #368. */
|
||||||
|
//#define SDSS 24
|
||||||
|
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
#ifdef NEWPANEL
|
||||||
|
//we have no buzzer installed
|
||||||
|
#define BEEPER -1
|
||||||
|
//LCD Pins
|
||||||
|
#ifdef DOGLCD
|
||||||
|
#ifdef U8GLIB_ST7920 //SPI GLCD 12864 ST7920 ( like [www.digole.com] ) For Melzi V2.0
|
||||||
|
#define LCD_PINS_RS 30 //CS chip select /SS chip slave select
|
||||||
|
#define LCD_PINS_ENABLE 29 //SID (MOSI)
|
||||||
|
#define LCD_PINS_D4 17 //SCK (CLK) clock
|
||||||
|
#define BEEPER 27 // Pin 27 is take by LED_Pin, but Melzi LED do nothing with Marlin and I take this pin for BEEPER.... See here > [github.com] , If you want use this pin with Gcode M42 instead BEEPER
|
||||||
|
#else
|
||||||
|
// Pins for DOGM SPI LCD Support
|
||||||
|
#define DOGLCD_A0 30
|
||||||
|
#define DOGLCD_CS 29
|
||||||
|
#define LCD_CONTRAST 1
|
||||||
|
#endif
|
||||||
|
// Uncomment screen orientation
|
||||||
|
#define LCD_SCREEN_ROT_0
|
||||||
|
// #define LCD_SCREEN_ROT_90
|
||||||
|
// #define LCD_SCREEN_ROT_180
|
||||||
|
// #define LCD_SCREEN_ROT_270
|
||||||
|
#else // standard Hitachi LCD controller
|
||||||
|
#define LCD_PINS_RS 4
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 30
|
||||||
|
#define LCD_PINS_D5 29
|
||||||
|
#define LCD_PINS_D6 28
|
||||||
|
#define LCD_PINS_D7 27
|
||||||
|
#endif
|
||||||
|
//The encoder and click button
|
||||||
|
#define BTN_EN1 11
|
||||||
|
#define BTN_EN2 10
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
#if MB(MELZI)
|
||||||
|
#define BTN_ENC 29 //the click switch
|
||||||
|
#define LCD_SDSS 30 //to use the SD card reader on the Panelolu2 rather than the melzi board
|
||||||
|
#else
|
||||||
|
#define BTN_ENC 30 //the click switch
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define BTN_ENC 16 //the click switch
|
||||||
|
#define LCD_SDSS 28 //to use the SD card reader on the smart controller rather than the melzi board
|
||||||
|
#endif //Panelolu2
|
||||||
|
//not connected to a pin
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
|
||||||
|
#endif //NEWPANEL
|
||||||
|
#endif //ULTRA_LCD
|
||||||
|
|
||||||
|
#ifdef MAKRPANEL
|
||||||
|
#define BEEPER 29
|
||||||
|
// Pins for DOGM SPI LCD Support
|
||||||
|
#define DOGLCD_A0 30
|
||||||
|
#define DOGLCD_CS 17
|
||||||
|
#define LCD_PIN_BL 28 // backlight LED on PA3
|
||||||
|
// GLCD features
|
||||||
|
#define LCD_CONTRAST 1
|
||||||
|
// Uncomment screen orientation
|
||||||
|
#define LCD_SCREEN_ROT_0
|
||||||
|
// #define LCD_SCREEN_ROT_90
|
||||||
|
// #define LCD_SCREEN_ROT_180
|
||||||
|
// #define LCD_SCREEN_ROT_270
|
||||||
|
//The encoder and click button
|
||||||
|
#define BTN_EN1 11
|
||||||
|
#define BTN_EN2 10
|
||||||
|
#define BTN_ENC 16 //the click switch
|
||||||
|
//not connected to a pin
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
#endif //Makrpanel
|
||||||
|
|
@ -0,0 +1,19 @@
|
|||||||
|
/**
|
||||||
|
* Sanguinololu V1.2 pin assignments
|
||||||
|
*
|
||||||
|
* Applies to the following boards:
|
||||||
|
*
|
||||||
|
* AZTEEG_X1
|
||||||
|
* MELZI
|
||||||
|
* MELZI_1284
|
||||||
|
* SANGUINOLOLU_12
|
||||||
|
* STB_11
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SANGUINOLOLU_V_1_2
|
||||||
|
|
||||||
|
#if defined(__AVR_ATmega1284P__)
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "pins_SANGUINOLOLU_11.h"
|
@ -0,0 +1,88 @@
|
|||||||
|
/**
|
||||||
|
* SAV MkI pin assignments (AT90USB1286)
|
||||||
|
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
|
||||||
|
* http://www.pjrc.com/teensy/teensyduino.html
|
||||||
|
* RepRap Clone Wars project board.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB1286__
|
||||||
|
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AT90USB 1286 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 0
|
||||||
|
#define X_DIR_PIN 1
|
||||||
|
#define X_ENABLE_PIN 39
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 2
|
||||||
|
#define Y_DIR_PIN 3
|
||||||
|
#define Y_ENABLE_PIN 38
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 4
|
||||||
|
#define Z_DIR_PIN 5
|
||||||
|
#define Z_ENABLE_PIN 23
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 6
|
||||||
|
#define E0_DIR_PIN 7
|
||||||
|
#define E0_ENABLE_PIN 19
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 21 // Extruder
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 20 // Bed
|
||||||
|
#define FAN_PIN 16 // Fan -- from Teensyduino environment.
|
||||||
|
// For the fan and Teensyduino uses a different pin mapping.
|
||||||
|
|
||||||
|
#define X_STOP_PIN 13
|
||||||
|
#define Y_STOP_PIN 14
|
||||||
|
#define Z_STOP_PIN 15
|
||||||
|
//#define Z_STOP_PIN 36 // For inductive sensor.
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
|
||||||
|
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 20 // PB0 - 8 in marlin env.
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 9
|
||||||
|
#define MISO_PIN 11
|
||||||
|
#define MOSI_PIN 10
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BEEPER -1
|
||||||
|
#define LCD_PINS_RS -1
|
||||||
|
#define LCD_PINS_ENABLE -1
|
||||||
|
#define LCD_PINS_D4 -1
|
||||||
|
#define LCD_PINS_D5 -1
|
||||||
|
#define LCD_PINS_D6 -1
|
||||||
|
#define LCD_PINS_D7 -1
|
||||||
|
|
||||||
|
#ifdef SAV_3DLCD
|
||||||
|
// For LCD SHIFT register LCD
|
||||||
|
#define SR_DATA_PIN 1
|
||||||
|
#define SR_CLK_PIN 0
|
||||||
|
|
||||||
|
#define BTN_EN1 41
|
||||||
|
#define BTN_EN2 40
|
||||||
|
#define BTN_ENC 12
|
||||||
|
|
||||||
|
#define KILL_PIN 42 // A2 = 42 - teensy = 40
|
||||||
|
#define HOME_PIN -1 // A4 = marlin 44 - teensy = 42
|
||||||
|
|
||||||
|
#ifdef NUM_SERVOS
|
||||||
|
#define SERVO0_PIN 41 // In teensy's pin definition for pinMode (in Servo.cpp)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // SAV_3DLCD
|
@ -0,0 +1,71 @@
|
|||||||
|
/**
|
||||||
|
* Sethi 3D_1 pin assignments - www.sethi3d.com.br
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
|
||||||
|
#error Oops! Make sure you have 'Sethi 3D' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GEN7_VERSION
|
||||||
|
#define GEN7_VERSION 12 // v1.x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//x axis pins
|
||||||
|
#define X_STEP_PIN 19
|
||||||
|
#define X_DIR_PIN 18
|
||||||
|
#define X_ENABLE_PIN 24
|
||||||
|
#define X_STOP_PIN 2
|
||||||
|
|
||||||
|
//y axis pins
|
||||||
|
#define Y_STEP_PIN 23
|
||||||
|
#define Y_DIR_PIN 22
|
||||||
|
#define Y_ENABLE_PIN 24
|
||||||
|
#define Y_STOP_PIN 0
|
||||||
|
|
||||||
|
//z axis pins
|
||||||
|
#define Z_STEP_PIN 26
|
||||||
|
#define Z_DIR_PIN 25
|
||||||
|
#define Z_ENABLE_PIN 24
|
||||||
|
#define Z_MIN_PIN 1
|
||||||
|
#define Z_MAX_PIN 0
|
||||||
|
|
||||||
|
//extruder pins
|
||||||
|
#define E0_STEP_PIN 28
|
||||||
|
#define E0_DIR_PIN 27
|
||||||
|
#define E0_ENABLE_PIN 24
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 1
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
#define TEMP_BED_PIN 2
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 4
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 3
|
||||||
|
|
||||||
|
#define KILL_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1 // SCL pin of I2C header
|
||||||
|
#define LED_PIN -1
|
||||||
|
|
||||||
|
#if (GEN7_VERSION >= 13)
|
||||||
|
// Gen7 v1.3 removed the fan pin
|
||||||
|
#define FAN_PIN -1
|
||||||
|
#else
|
||||||
|
#define FAN_PIN 31
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define PS_ON_PIN 15
|
||||||
|
|
||||||
|
//All these generations of Gen7 supply thermistor power
|
||||||
|
//via PS_ON, so ignore bad thermistor readings
|
||||||
|
#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
|
||||||
|
|
||||||
|
//our pin for debugging.
|
||||||
|
#define DEBUG_PIN 0
|
||||||
|
|
||||||
|
//our RS485 pins
|
||||||
|
#define TX_ENABLE_PIN 12
|
||||||
|
#define RX_ENABLE_PIN 13
|
@ -0,0 +1,11 @@
|
|||||||
|
/**
|
||||||
|
* STB V1.1 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SANGUINOLOLU_V_1_2
|
||||||
|
|
||||||
|
#if defined(__AVR_ATmega1284P__)
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "pins_SANGUINOLOLU_11.h"
|
@ -0,0 +1,115 @@
|
|||||||
|
/**
|
||||||
|
* Teensy++ 2.0 Breadboard pin assignments (AT90USB1286)
|
||||||
|
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
|
||||||
|
* http://www.pjrc.com/teensy/teensyduino.html
|
||||||
|
* See http://reprap.org/wiki/Printrboard for more info
|
||||||
|
*
|
||||||
|
* CLI build: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make
|
||||||
|
*
|
||||||
|
* DaveX plan for Teensylu/printrboard-type pinouts for a TeensyBreadboard:
|
||||||
|
* (ref teensylu & sprinter)
|
||||||
|
*
|
||||||
|
* USB
|
||||||
|
* GND GND |-----#####-----| +5V ATX +5SB
|
||||||
|
* ATX PS_ON PWM 27 |b7 ##### b6| 26 PWM* Stepper Enable
|
||||||
|
* PWM 0 |d0 b5| 25 PWM*
|
||||||
|
* PWM 1 |d1 b4| 24 PWM
|
||||||
|
* X_MIN 2 |d2 b3| 23 MISO_PIN
|
||||||
|
* Y_MIN 3 |d3 b2| 22 MOSI_PIN
|
||||||
|
* Z_MIN 4 |d4 * * b1| 21 SCK_PIN
|
||||||
|
* 5 |d5 e e b0| 20 SDSS
|
||||||
|
* LED 6 |d6 5 4 e7| 19
|
||||||
|
* 7 |d7 e6| 18
|
||||||
|
* LCD RS 8 |e0 | GND
|
||||||
|
* LCD EN 9 |e1 a4 a0 R| AREF
|
||||||
|
* LCD D4 10 |c0 a5 a1 f0| 38 A0 ENC_1
|
||||||
|
* LCD D5 11 |c1 a6 a2 f1| 39 A1 ENC_2
|
||||||
|
* LCD D6 12 |c2 a7 a3 f2| 40 A2 ENC_CLK
|
||||||
|
* LCD D6 13 |c3 f3| 41 A3
|
||||||
|
* Bed Heat PWM 14 |c4 V G R f4| 42 A4
|
||||||
|
* Extruder Heat PWM 15 |c5 c n S f5| 43 A5
|
||||||
|
* Fan PWM 16 |c6 c d T f6| 44 A6 Bed TC
|
||||||
|
* 17 |c7 * * * f7| 45 A7 Extruder TC * 4.7k * +5
|
||||||
|
* -----------------
|
||||||
|
*
|
||||||
|
* Interior E4: 36, INT4
|
||||||
|
* Interior E5: 37, INT5
|
||||||
|
* Interior PA0-7: 28-35 -- Printrboard and Teensylu use these pins for step & direction:
|
||||||
|
* T++ PA Signal Marlin
|
||||||
|
*
|
||||||
|
* Z STEP 32 a4 a0 28 X STEP
|
||||||
|
* Z DIR 33 a5 a1 29 X DIR
|
||||||
|
* E STEP 34 a6 a2 30 Y STEP
|
||||||
|
* E DIR 35 a7 a3 31 Y DIR
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB1286__
|
||||||
|
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin alphabetical.
|
||||||
|
#error Uncomment #define AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h for this config
|
||||||
|
// (or build from command line)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AT90USB 1286 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 28 // 0 Marlin
|
||||||
|
#define X_DIR_PIN 29 // 1 Marlin
|
||||||
|
#define X_ENABLE_PIN 26
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 30 // 2 Marlin
|
||||||
|
#define Y_DIR_PIN 31 // 3
|
||||||
|
#define Y_ENABLE_PIN 26 // Shared w/x
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 32 // 4
|
||||||
|
#define Z_DIR_PIN 33 // 5
|
||||||
|
#define Z_ENABLE_PIN 26 // Shared w/x
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 34 // 6
|
||||||
|
#define E0_DIR_PIN 35 // 7
|
||||||
|
#define E0_ENABLE_PIN 26 // Shared w/x
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 15 // 21 // Extruder
|
||||||
|
#define HEATER_1_PIN -1
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define HEATER_BED_PIN 14 // 20 // Bed
|
||||||
|
#define FAN_PIN 16 // 22 // Fan
|
||||||
|
|
||||||
|
#define X_STOP_PIN 2
|
||||||
|
#define Y_STOP_PIN 3
|
||||||
|
#define Z_STOP_PIN 4
|
||||||
|
|
||||||
|
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
#define SDSS 20 // 8
|
||||||
|
#define LED_PIN 6
|
||||||
|
#define PS_ON_PIN 27
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 21 // 9
|
||||||
|
#define MISO_PIN 23 // 11
|
||||||
|
#define MOSI_PIN 22 // 10
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ULTIPANEL
|
||||||
|
#define LCD_PINS_RS 8
|
||||||
|
#define LCD_PINS_ENABLE 9
|
||||||
|
#define LCD_PINS_D4 10
|
||||||
|
#define LCD_PINS_D5 11
|
||||||
|
#define LCD_PINS_D6 12
|
||||||
|
#define LCD_PINS_D7 13
|
||||||
|
#define BTN_EN1 38
|
||||||
|
#define BTN_EN2 39
|
||||||
|
#define BTN_ENC 40
|
||||||
|
#endif
|
@ -0,0 +1,85 @@
|
|||||||
|
/**
|
||||||
|
* Teensylu 0.7 pin assignments (AT90USB1286)
|
||||||
|
* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE!
|
||||||
|
* http://www.pjrc.com/teensy/teensyduino.html
|
||||||
|
* See http://reprap.org/wiki/Printrboard for more info
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_AT90USB1286__
|
||||||
|
#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef AT90USBxx_TEENSYPP_ASSIGNMENTS // use Teensyduino Teensy++2.0 pin assignments instead of Marlin traditional.
|
||||||
|
#error These Teensylu assignments depend on traditional Marlin assignments, not AT90USBxx_TEENSYPP_ASSIGNMENTS in fastio.h
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define AT90USB 1286 // Disable MarlinSerial etc.
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 0
|
||||||
|
#define X_DIR_PIN 1
|
||||||
|
#define X_ENABLE_PIN 39
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 2
|
||||||
|
#define Y_DIR_PIN 3
|
||||||
|
#define Y_ENABLE_PIN 38
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 4
|
||||||
|
#define Z_DIR_PIN 5
|
||||||
|
#define Z_ENABLE_PIN 23
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 6
|
||||||
|
#define E0_DIR_PIN 7
|
||||||
|
#define E0_ENABLE_PIN 19
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 21 // Extruder
|
||||||
|
#define HEATER_1_PIN 46
|
||||||
|
#define HEATER_2_PIN 47
|
||||||
|
#define HEATER_BED_PIN 20
|
||||||
|
|
||||||
|
// If soft or fast PWM is off then use Teensyduino pin numbering, Marlin
|
||||||
|
// fastio pin numbering otherwise
|
||||||
|
#ifdef FAN_SOFT_PWM || FAST_PWM_FAN
|
||||||
|
#define FAN_PIN 22
|
||||||
|
#else
|
||||||
|
#define FAN_PIN 16
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STOP_PIN 13
|
||||||
|
#define Y_STOP_PIN 14
|
||||||
|
#define Z_STOP_PIN 15
|
||||||
|
#define TEMP_0_PIN 7 // Extruder / Analog pin numbering
|
||||||
|
#define TEMP_BED_PIN 6 // Bed / Analog pin numbering
|
||||||
|
|
||||||
|
#define TEMP_1_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 8
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define ALARM_PIN -1
|
||||||
|
|
||||||
|
#ifndef SDSUPPORT
|
||||||
|
// these pins are defined in the SD library if building with SD support
|
||||||
|
#define SCK_PIN 9
|
||||||
|
#define MISO_PIN 11
|
||||||
|
#define MOSI_PIN 10
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(ULTRA_LCD) && defined(NEWPANEL)
|
||||||
|
//we have no buzzer installed
|
||||||
|
#define BEEPER -1
|
||||||
|
//LCD Pins
|
||||||
|
#ifdef LCD_I2C_PANELOLU2
|
||||||
|
#define BTN_EN1 27 //RX1 - fastio.h pin mapping 27
|
||||||
|
#define BTN_EN2 26 //TX1 - fastio.h pin mapping 26
|
||||||
|
#define BTN_ENC 43 //A3 - fastio.h pin mapping 43
|
||||||
|
#define SDSS 40 //use SD card on Panelolu2 (Teensyduino pin mapping)
|
||||||
|
#endif // LCD_I2C_PANELOLU2
|
||||||
|
//not connected to a pin
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
#endif // ULTRA_LCD && NEWPANEL
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
/**
|
||||||
|
* Ultiboard v2.0 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __AVR_ATmega2560__
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define X_STEP_PIN 25
|
||||||
|
#define X_DIR_PIN 23
|
||||||
|
#define X_STOP_PIN 22
|
||||||
|
#define X_ENABLE_PIN 27
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 32
|
||||||
|
#define Y_DIR_PIN 33
|
||||||
|
#define Y_STOP_PIN 26
|
||||||
|
#define Y_ENABLE_PIN 31
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 35
|
||||||
|
#define Z_DIR_PIN 36
|
||||||
|
#define Z_STOP_PIN 29
|
||||||
|
#define Z_ENABLE_PIN 34
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 4
|
||||||
|
#define TEMP_BED_PIN 10
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 2
|
||||||
|
#define TEMP_0_PIN 8
|
||||||
|
|
||||||
|
#define HEATER_1_PIN 3
|
||||||
|
#define TEMP_1_PIN 9
|
||||||
|
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 42
|
||||||
|
#define E0_DIR_PIN 43
|
||||||
|
#define E0_ENABLE_PIN 37
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 49
|
||||||
|
#define E1_DIR_PIN 47
|
||||||
|
#define E1_ENABLE_PIN 48
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 8
|
||||||
|
#define FAN_PIN 7
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
#define SAFETY_TRIGGERED_PIN 28 //PIN to detect the safety circuit has triggered
|
||||||
|
#define MAIN_VOLTAGE_MEASURE_PIN 14 //Analogue PIN to measure the main voltage, with a 100k - 4k7 resitor divider.
|
||||||
|
|
||||||
|
#define MOTOR_CURRENT_PWM_XY_PIN 44
|
||||||
|
#define MOTOR_CURRENT_PWM_Z_PIN 45
|
||||||
|
#define MOTOR_CURRENT_PWM_E_PIN 46
|
||||||
|
//Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
|
||||||
|
#define MOTOR_CURRENT_PWM_RANGE 2000
|
||||||
|
#define DEFAULT_PWM_MOTOR_CURRENT {1300, 1300, 1250}
|
||||||
|
|
||||||
|
//arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 18
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 20
|
||||||
|
#define LCD_PINS_ENABLE 15
|
||||||
|
#define LCD_PINS_D4 14
|
||||||
|
#define LCD_PINS_D5 21
|
||||||
|
#define LCD_PINS_D6 5
|
||||||
|
#define LCD_PINS_D7 6
|
||||||
|
|
||||||
|
//buttons are directly attached
|
||||||
|
#define BTN_EN1 40
|
||||||
|
#define BTN_EN2 41
|
||||||
|
#define BTN_ENC 19 //the click
|
||||||
|
|
||||||
|
#define BLEN_C 2
|
||||||
|
#define BLEN_B 1
|
||||||
|
#define BLEN_A 0
|
||||||
|
|
||||||
|
#define SDCARDDETECT 39
|
@ -0,0 +1,100 @@
|
|||||||
|
/**
|
||||||
|
* Ultimaker pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 25
|
||||||
|
#define X_DIR_PIN 23
|
||||||
|
#define X_MIN_PIN 22
|
||||||
|
#define X_MAX_PIN 24
|
||||||
|
#define X_ENABLE_PIN 27
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 31
|
||||||
|
#define Y_DIR_PIN 33
|
||||||
|
#define Y_MIN_PIN 26
|
||||||
|
#define Y_MAX_PIN 28
|
||||||
|
#define Y_ENABLE_PIN 29
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 37
|
||||||
|
#define Z_DIR_PIN 39
|
||||||
|
#define Z_MIN_PIN 30
|
||||||
|
#define Z_MAX_PIN 32
|
||||||
|
#define Z_ENABLE_PIN 35
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN 4
|
||||||
|
#define TEMP_BED_PIN 10
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 2
|
||||||
|
#define TEMP_0_PIN 8
|
||||||
|
|
||||||
|
#define HEATER_1_PIN 3
|
||||||
|
#define TEMP_1_PIN 9
|
||||||
|
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 43
|
||||||
|
#define E0_DIR_PIN 45
|
||||||
|
#define E0_ENABLE_PIN 41
|
||||||
|
|
||||||
|
#define E1_STEP_PIN 49
|
||||||
|
#define E1_DIR_PIN 47
|
||||||
|
#define E1_ENABLE_PIN 48
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS 53
|
||||||
|
#define LED_PIN 13
|
||||||
|
#define FAN_PIN 7
|
||||||
|
#define PS_ON_PIN 12
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
#define SERVO0_PIN 13 // untested
|
||||||
|
|
||||||
|
#ifdef ULTRA_LCD
|
||||||
|
|
||||||
|
#ifdef NEWPANEL
|
||||||
|
//arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 18
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 20
|
||||||
|
#define LCD_PINS_ENABLE 17
|
||||||
|
#define LCD_PINS_D4 16
|
||||||
|
#define LCD_PINS_D5 21
|
||||||
|
#define LCD_PINS_D6 5
|
||||||
|
#define LCD_PINS_D7 6
|
||||||
|
|
||||||
|
//buttons are directly attached
|
||||||
|
#define BTN_EN1 40
|
||||||
|
#define BTN_EN2 42
|
||||||
|
#define BTN_ENC 19 //the click
|
||||||
|
|
||||||
|
#define SDCARDDETECT 38
|
||||||
|
|
||||||
|
#else //!NEWPANEL - Old style panel with shift register
|
||||||
|
|
||||||
|
//arduino pin witch triggers an piezzo beeper
|
||||||
|
#define BEEPER 18
|
||||||
|
|
||||||
|
//buttons are attached to a shift register
|
||||||
|
#define SHIFT_CLK 38
|
||||||
|
#define SHIFT_LD 42
|
||||||
|
#define SHIFT_OUT 40
|
||||||
|
#define SHIFT_EN 17
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 16
|
||||||
|
#define LCD_PINS_ENABLE 5
|
||||||
|
#define LCD_PINS_D4 6
|
||||||
|
#define LCD_PINS_D5 21
|
||||||
|
#define LCD_PINS_D6 20
|
||||||
|
#define LCD_PINS_D7 19
|
||||||
|
|
||||||
|
#define SDCARDDETECT -1
|
||||||
|
|
||||||
|
#endif // !NEWPANEL
|
||||||
|
|
||||||
|
#endif // ULTRA_LCD
|
@ -0,0 +1,62 @@
|
|||||||
|
/**
|
||||||
|
* Ultimaker pin assignments (Old electronics)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
|
||||||
|
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LARGE_FLASH true
|
||||||
|
|
||||||
|
#define X_STEP_PIN 25
|
||||||
|
#define X_DIR_PIN 23
|
||||||
|
#define X_MIN_PIN 15
|
||||||
|
#define X_MAX_PIN 14
|
||||||
|
#define X_ENABLE_PIN 27
|
||||||
|
|
||||||
|
#define Y_STEP_PIN 31
|
||||||
|
#define Y_DIR_PIN 33
|
||||||
|
#define Y_MIN_PIN 17
|
||||||
|
#define Y_MAX_PIN 16
|
||||||
|
#define Y_ENABLE_PIN 29
|
||||||
|
|
||||||
|
#define Z_STEP_PIN 37
|
||||||
|
#define Z_DIR_PIN 39
|
||||||
|
#define Z_MIN_PIN 19
|
||||||
|
#define Z_MAX_PIN 18
|
||||||
|
#define Z_ENABLE_PIN 35
|
||||||
|
|
||||||
|
#define HEATER_BED_PIN -1
|
||||||
|
#define TEMP_BED_PIN -1
|
||||||
|
|
||||||
|
#define HEATER_0_PIN 2
|
||||||
|
#define TEMP_0_PIN 8
|
||||||
|
|
||||||
|
#define HEATER_1_PIN 1
|
||||||
|
#define TEMP_1_PIN 1
|
||||||
|
|
||||||
|
#define HEATER_2_PIN -1
|
||||||
|
#define TEMP_2_PIN -1
|
||||||
|
|
||||||
|
#define E0_STEP_PIN 43
|
||||||
|
#define E0_DIR_PIN 45
|
||||||
|
#define E0_ENABLE_PIN 41
|
||||||
|
|
||||||
|
#define E1_STEP_PIN -1
|
||||||
|
#define E1_DIR_PIN -1
|
||||||
|
#define E1_ENABLE_PIN -1
|
||||||
|
|
||||||
|
#define SDPOWER -1
|
||||||
|
#define SDSS -1
|
||||||
|
#define LED_PIN -1
|
||||||
|
#define FAN_PIN -1
|
||||||
|
#define PS_ON_PIN -1
|
||||||
|
#define KILL_PIN -1
|
||||||
|
#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing.
|
||||||
|
|
||||||
|
#define LCD_PINS_RS 24
|
||||||
|
#define LCD_PINS_ENABLE 22
|
||||||
|
#define LCD_PINS_D4 36
|
||||||
|
#define LCD_PINS_D5 34
|
||||||
|
#define LCD_PINS_D6 32
|
||||||
|
#define LCD_PINS_D7 30
|
@ -0,0 +1,5 @@
|
|||||||
|
/**
|
||||||
|
* bq WITBOX Arduino Mega with RAMPS v1.3/1.4 pin assignments
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "pins_RAMPS_13.h"
|
@ -1,425 +1,60 @@
|
|||||||
Current Status: Bug Fixing
|
# Marlin 3D Printer Firmware
|
||||||
===================
|
<img align="right" src="Documentation/Logo/Marlin%20Logo%20GitHub.png" />
|
||||||
|
|
||||||
What bugs are we working on: https://github.com/MarlinFirmware/Marlin/milestones/Bug%20Fixing%20Round%201
|
* [Configuration & Compilation](/Documentation/Compilation.md)
|
||||||
|
* Supported
|
||||||
|
* [Features](/Documentation/Features.md)
|
||||||
|
* [Hardware](/Documentation/Hardware.md)
|
||||||
|
* [GCodes](/Documentation/GCodes.md)
|
||||||
|
* Notes
|
||||||
|
* [Auto Bed Leveling](/Documentation/BedLeveling.md)
|
||||||
|
* [Filament Sensor](/Documentation/FilamentSensor.md)
|
||||||
|
* [Ramps Servo Power](/Documentation/RampsServoPower.md)
|
||||||
|
|
||||||
IRC channel on freenode: #marlin-firmware
|
##### [RepRap.org Wiki Page](http://reprap.org/wiki/Marlin)
|
||||||
|
|
||||||
(baaaah, #marlin was taken)
|
## Quick Information
|
||||||
|
|
||||||
Developer Notes
|
This is a firmware for reprap single-processor electronics setups.
|
||||||
===================
|
It also works on the Ultimaker PCB. It supports printing from SD card+Folders, and look-ahead trajectory planning.
|
||||||
|
This firmware is a mashup between [Sprinter](https://github.com/kliment/Sprinter), [grbl](https://github.com/simen/grbl) and many original parts.
|
||||||
|
|
||||||
- There are now 2 branches: The __development__ branch is where new features and code changes will be sorted out. This branch may have untested code in it, so please let us know if you find any bugs. When the __development__ branch has reached a state where it is stable, it will be moved to the __stable__ branch.
|
## Current Status: Bug Fixing
|
||||||
|
|
||||||
- We are doing a kind of cleanup in the list of Issues and Pull Requests, the aim is to get to a state where we can certify the code as stable. To get the code tested as widely as possible we require several volunteers with a wide variety of hardware configurations willing to test the firmware and help us to certify it as stable. If you want to help out testing go to this issue and let us know: https://github.com/MarlinFirmware/Marlin/issues/1209
|
The Marlin development is currently revived. There's a long list of reported issues and pull requests, which we are working on currently.
|
||||||
|
We are actively looking for testers. So please try the current development version and report new issues and feedback.
|
||||||
|
|
||||||
- Before you submit any pull request, we ask that you _PLEASE_ test your code before submission, even if the change seems innocuous. When creating the pull request, please include the hardware you used for testing and a short synopsis of your testing procedure. Untested pull requests are less likely to be merged, as even slight changes create the risk of breaking the main branch.
|
|
||||||
|
|
||||||
- If you have a fix don't open an issue telling about it, but test the code and submit a pull request. Use the __development__ branch when you submit.
|
|
||||||
|
|
||||||
==========================
|
|
||||||
Marlin 3D Printer Firmware
|
|
||||||
==========================
|
|
||||||
[![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224)
|
[![Coverity Scan Build Status](https://scan.coverity.com/projects/2224/badge.svg)](https://scan.coverity.com/projects/2224)
|
||||||
[![Travis Build Status](https://travis-ci.org/ErikZalm/Marlin.svg)](https://travis-ci.org/ErikZalm/Marlin)
|
[![Travis Build Status](https://travis-ci.org/MarlinFirmware/Marlin.svg)](https://travis-ci.org/MarlinFirmware/Marlin)
|
||||||
|
|
||||||
Marlin has a GPL license because I believe in open development.
|
|
||||||
Please do not use this code in products (3D printers, CNC etc) that are closed source or are crippled by a patent.
|
|
||||||
|
|
||||||
[![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/ErikZalm/Marlin&title=Marlin&language=&tags=github&category=software)
|
|
||||||
|
|
||||||
Quick Information
|
|
||||||
===================
|
|
||||||
This RepRap firmware is a mashup between <a href="https://github.com/kliment/Sprinter">Sprinter</a>, <a href="https://github.com/simen/grbl/tree">grbl</a> and many original parts.
|
|
||||||
|
|
||||||
Derived from Sprinter and Grbl by Erik van der Zalm.
|
|
||||||
Sprinters lead developers are Kliment and caru.
|
|
||||||
Grbls lead developer is Simen Svale Skogsrud. Sonney Jeon (Chamnit) improved some parts of grbl
|
|
||||||
A fork by bkubicek for the Ultimaker was merged, and further development was aided by him.
|
|
||||||
Some features have been added by:
|
|
||||||
Lampmaker, Bradley Feldman, and others...
|
|
||||||
|
|
||||||
|
|
||||||
Features:
|
|
||||||
=========
|
|
||||||
|
|
||||||
* Interrupt based movement with real linear acceleration
|
|
||||||
* High steprate
|
|
||||||
* Look ahead (Keep the speed high when possible. High cornering speed)
|
|
||||||
* Interrupt based temperature protection
|
|
||||||
* preliminary support for Matthew Roberts advance algorithm
|
|
||||||
For more info see: http://reprap.org/pipermail/reprap-dev/2011-May/003323.html
|
|
||||||
* Full endstop support
|
|
||||||
* SD Card support
|
|
||||||
* SD Card folders (works in pronterface)
|
|
||||||
* SD Card autostart support
|
|
||||||
* LCD support (ideally 20x4)
|
|
||||||
* LCD menu system for autonomous SD card printing, controlled by an click-encoder.
|
|
||||||
* EEPROM storage of e.g. max-velocity, max-acceleration, and similar variables
|
|
||||||
* many small but handy things originating from bkubicek's fork.
|
|
||||||
* Arc support
|
|
||||||
* Temperature oversampling
|
|
||||||
* Dynamic Temperature setpointing aka "AutoTemp"
|
|
||||||
* Support for QTMarlin, a very beta GUI for PID-tuning and velocity-acceleration testing. https://github.com/bkubicek/QTMarlin
|
|
||||||
* Endstop trigger reporting to the host software.
|
|
||||||
* Updated sdcardlib
|
|
||||||
* Heater power reporting. Useful for PID monitoring.
|
|
||||||
* PID tuning
|
|
||||||
* CoreXY kinematics (www.corexy.com/theory.html)
|
|
||||||
* Delta kinematics
|
|
||||||
* SCARA kinematics
|
|
||||||
* Dual X-carriage support for multiple extruder systems
|
|
||||||
* Configurable serial port to support connection of wireless adaptors.
|
|
||||||
* Automatic operation of extruder/cold-end cooling fans based on nozzle temperature
|
|
||||||
* RC Servo Support, specify angle or duration for continuous rotation servos.
|
|
||||||
* Bed Auto Leveling.
|
|
||||||
* Support for a filament diameter sensor, which adjusts extrusion volume
|
|
||||||
|
|
||||||
The default baudrate is 250000. This baudrate has less jitter and hence errors than the usual 115200 baud, but is less supported by drivers and host-environments.
|
|
||||||
|
|
||||||
|
|
||||||
Differences and additions to the already good Sprinter firmware:
|
|
||||||
================================================================
|
|
||||||
|
|
||||||
Look-ahead:
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Marlin has look-ahead. While sprinter has to break and re-accelerate at each corner,
|
|
||||||
lookahead will only decelerate and accelerate to a velocity,
|
|
||||||
so that the change in vectorial velocity magnitude is less than the xy_jerk_velocity.
|
|
||||||
This is only possible, if some future moves are already processed, hence the name.
|
|
||||||
It leads to less over-deposition at corners, especially at flat angles.
|
|
||||||
|
|
||||||
Arc support:
|
|
||||||
------------
|
|
||||||
|
|
||||||
Slic3r can find curves that, although broken into segments, were ment to describe an arc.
|
|
||||||
Marlin is able to print those arcs. The advantage is the firmware can choose the resolution,
|
|
||||||
and can perform the arc with nearly constant velocity, resulting in a nice finish.
|
|
||||||
Also, less serial communication is needed.
|
|
||||||
|
|
||||||
Temperature Oversampling:
|
|
||||||
-------------------------
|
|
||||||
|
|
||||||
To reduce noise and make the PID-differential term more useful, 16 ADC conversion results are averaged.
|
|
||||||
|
|
||||||
AutoTemp:
|
|
||||||
---------
|
|
||||||
|
|
||||||
If your gcode contains a wide spread of extruder velocities, or you realtime change the building speed, the temperature should be changed accordingly.
|
|
||||||
Usually, higher speed requires higher temperature.
|
|
||||||
This can now be performed by the AutoTemp function
|
|
||||||
By calling M109 S<mintemp> B<maxtemp> F<factor> you enter the autotemp mode.
|
|
||||||
|
|
||||||
You can leave it by calling M109 without any F.
|
|
||||||
If active, the maximal extruder stepper rate of all buffered moves will be calculated, and named "maxerate" [steps/sec].
|
|
||||||
The wanted temperature then will be set to t=tempmin+factor*maxerate, while being limited between tempmin and tempmax.
|
|
||||||
If the target temperature is set manually or by gcode to a value less then tempmin, it will be kept without change.
|
|
||||||
Ideally, your gcode can be completely free of temperature controls, apart from a M109 S T F in the start.gcode, and a M109 S0 in the end.gcode.
|
|
||||||
|
|
||||||
EEPROM:
|
|
||||||
-------
|
|
||||||
|
|
||||||
If you know your PID values, the acceleration and max-velocities of your unique machine, you can set them, and finally store them in the EEPROM.
|
|
||||||
After each reboot, it will magically load them from EEPROM, independent what your Configuration.h says.
|
|
||||||
|
|
||||||
LCD Menu:
|
|
||||||
---------
|
|
||||||
|
|
||||||
If your hardware supports it, you can build yourself a LCD-CardReader+Click+encoder combination. It will enable you to realtime tune temperatures,
|
|
||||||
accelerations, velocities, flow rates, select and print files from the SD card, preheat, disable the steppers, and do other fancy stuff.
|
|
||||||
One working hardware is documented here: http://www.thingiverse.com/thing:12663
|
|
||||||
Also, with just a 20x4 or 16x2 display, useful data is shown.
|
|
||||||
|
|
||||||
SD card folders:
|
|
||||||
----------------
|
|
||||||
|
|
||||||
If you have an SD card reader attached to your controller, also folders work now. Listing the files in pronterface will show "/path/subpath/file.g".
|
|
||||||
You can write to file in a subfolder by specifying a similar text using small letters in the path.
|
|
||||||
Also, backup copies of various operating systems are hidden, as well as files not ending with ".g".
|
|
||||||
|
|
||||||
SD card folders:
|
|
||||||
----------------
|
|
||||||
|
|
||||||
If you place a file auto[0-9].g into the root of the sd card, it will be automatically executed if you boot the printer. The same file will be executed by selecting "Autostart" from the menu.
|
|
||||||
First *0 will be performed, than *1 and so on. That way, you can heat up or even print automatically without user interaction.
|
|
||||||
|
|
||||||
Endstop trigger reporting:
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
If an endstop is hit while moving towards the endstop, the location at which the firmware thinks that the endstop was triggered is outputed on the serial port.
|
|
||||||
This is useful, because the user gets a warning message.
|
|
||||||
However, also tools like QTMarlin can use this for finding acceptable combinations of velocity+acceleration.
|
|
||||||
|
|
||||||
Coding paradigm:
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Not relevant from a user side, but Marlin was split into thematic junks, and has tried to partially enforced private variables.
|
|
||||||
This is intended to make it clearer, what interacts which what, and leads to a higher level of modularization.
|
|
||||||
We think that this is a useful prestep for porting this firmware to e.g. an ARM platform in the future.
|
|
||||||
A lot of RAM (with enabled LCD ~2200 bytes) was saved by storing char []="some message" in Program memory.
|
|
||||||
In the serial communication, a #define based level of abstraction was enforced, so that it is clear that
|
|
||||||
some transfer is information (usually beginning with "echo:"), an error "error:", or just normal protocol,
|
|
||||||
necessary for backwards compatibility.
|
|
||||||
|
|
||||||
Interrupt based temperature measurements:
|
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
An interrupt is used to manage ADC conversions, and enforce checking for critical temperatures.
|
|
||||||
This leads to less blocking in the heater management routine.
|
|
||||||
|
|
||||||
Implemented G Codes:
|
|
||||||
====================
|
|
||||||
|
|
||||||
* G0 -> G1
|
|
||||||
* G1 - Coordinated Movement X Y Z E
|
|
||||||
* G2 - CW ARC
|
|
||||||
* G3 - CCW ARC
|
|
||||||
* G4 - Dwell S<seconds> or P<milliseconds>
|
|
||||||
* G10 - retract filament according to settings of M207
|
|
||||||
* G11 - retract recover filament according to settings of M208
|
|
||||||
* G28 - Home all Axis
|
|
||||||
* G29 - Detailed Z-Probe, probes the bed at 3 points. You must de at the home position for this to work correctly.
|
|
||||||
* G30 - Single Z Probe, probes bed at current XY location.
|
|
||||||
* G31 - Dock Z Probe sled (if enabled)
|
|
||||||
* G32 - Undock Z Probe sled (if enabled)
|
|
||||||
* G90 - Use Absolute Coordinates
|
|
||||||
* G91 - Use Relative Coordinates
|
|
||||||
* G92 - Set current position to cordinates given
|
|
||||||
|
|
||||||
M Codes
|
What bugs are we working on: [Bug Fixing Round 2](https://github.com/MarlinFirmware/Marlin/milestones/Bug%20Fixing%20Round%202)
|
||||||
* M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
|
|
||||||
* M1 - Same as M0
|
|
||||||
* M17 - Enable/Power all stepper motors
|
|
||||||
* M18 - Disable all stepper motors; same as M84
|
|
||||||
* M20 - List SD card
|
|
||||||
* M21 - Init SD card
|
|
||||||
* M22 - Release SD card
|
|
||||||
* M23 - Select SD file (M23 filename.g)
|
|
||||||
* M24 - Start/resume SD print
|
|
||||||
* M25 - Pause SD print
|
|
||||||
* M26 - Set SD position in bytes (M26 S12345)
|
|
||||||
* M27 - Report SD print status
|
|
||||||
* M28 - Start SD write (M28 filename.g)
|
|
||||||
* M29 - Stop SD write
|
|
||||||
* M30 - Delete file from SD (M30 filename.g)
|
|
||||||
* M31 - Output time since last M109 or SD card start to serial
|
|
||||||
* M32 - Select file and start SD print (Can be used when printing from SD card)
|
|
||||||
* M42 - Change pin status via gcode Use M42 Px Sy to set pin x to value y, when omitting Px the onboard led will be used.
|
|
||||||
* M80 - Turn on Power Supply
|
|
||||||
* M81 - Turn off Power Supply
|
|
||||||
* M82 - Set E codes absolute (default)
|
|
||||||
* M83 - Set E codes relative while in Absolute Coordinates (G90) mode
|
|
||||||
* M84 - Disable steppers until next move, or use S<seconds> to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout.
|
|
||||||
* M85 - Set inactivity shutdown timer with parameter S<seconds>. To disable set zero (default)
|
|
||||||
* M92 - Set axis_steps_per_unit - same syntax as G92
|
|
||||||
* M104 - Set extruder target temp
|
|
||||||
* M105 - Read current temp
|
|
||||||
* M106 - Fan on
|
|
||||||
* M107 - Fan off
|
|
||||||
* M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating
|
|
||||||
* Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling
|
|
||||||
* M112 - Emergency stop
|
|
||||||
* M114 - Output current position to serial port
|
|
||||||
* M115 - Capabilities string
|
|
||||||
* M117 - display message
|
|
||||||
* M119 - Output Endstop status to serial port
|
|
||||||
* M126 - Solenoid Air Valve Open (BariCUDA support by jmil)
|
|
||||||
* M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil)
|
|
||||||
* M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
|
||||||
* M129 - EtoP Closed (BariCUDA EtoP = electricity to air pressure transducer by jmil)
|
|
||||||
* M140 - Set bed target temp
|
|
||||||
* M190 - Sxxx Wait for bed current temp to reach target temp. Waits only when heating
|
|
||||||
* Rxxx Wait for bed current temp to reach target temp. Waits when heating and cooling
|
|
||||||
* M200 D<millimeters>- set filament diameter and set E axis units to cubic millimeters (use S0 to set back to millimeters).
|
|
||||||
* M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
|
|
||||||
* M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!
|
|
||||||
* M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
|
|
||||||
* M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
|
|
||||||
* M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
|
|
||||||
* M206 - set additional homeing offset
|
|
||||||
* M207 - set retract length S[positive mm] F[feedrate mm/min] Z[additional zlift/hop], stays in mm regardless of M200 setting
|
|
||||||
* M208 - set recover=unretract length S[positive mm surplus to the M207 S*] F[feedrate mm/min]
|
|
||||||
* M209 - S<1=true/0=false> enable automatic retract detect if the slicer did not support G10/11: every normal extrude-only move will be classified as retract depending on the direction.
|
|
||||||
* M218 - set hotend offset (in mm): T<extruder_number> X<offset_on_X> Y<offset_on_Y>
|
|
||||||
* M220 S<factor in percent>- set speed factor override percentage
|
|
||||||
* M221 S<factor in percent>- set extrude factor override percentage
|
|
||||||
* M240 - Trigger a camera to take a photograph
|
|
||||||
* M280 - Position an RC Servo P<index> S<angle/microseconds>, ommit S to report back current angle
|
|
||||||
* M300 - Play beepsound S<frequency Hz> P<duration ms>
|
|
||||||
* M301 - Set PID parameters P I and D
|
|
||||||
* M302 - Allow cold extrudes
|
|
||||||
* M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
|
|
||||||
* M304 - Set bed PID parameters P I and D
|
|
||||||
* M400 - Finish all moves
|
|
||||||
* M401 - Lower z-probe if present
|
|
||||||
* M402 - Raise z-probe if present
|
|
||||||
* M404 - N<dia in mm> Enter the nominal filament width (3mm, 1.75mm ) or will display nominal filament width without parameters
|
|
||||||
* M405 - Turn on Filament Sensor extrusion control. Optional D<delay in cm> to set delay in centimeters between sensor and extruder
|
|
||||||
* M406 - Turn off Filament Sensor extrusion control
|
|
||||||
* M407 - Displays measured filament diameter
|
|
||||||
* M500 - stores paramters in EEPROM
|
|
||||||
* 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.
|
|
||||||
* M503 - print the current settings (from memory not from eeprom)
|
|
||||||
* M540 - Use S[0|1] to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
|
|
||||||
* M600 - Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
|
|
||||||
* M907 - Set digital trimpot motor current using axis codes.
|
|
||||||
* M908 - Control digital trimpot directly.
|
|
||||||
* M350 - Set microstepping mode.
|
|
||||||
* M351 - Toggle MS1 MS2 pins directly.
|
|
||||||
* M928 - Start SD logging (M928 filename.g) - ended by M29
|
|
||||||
* M999 - Restart after being stopped by error
|
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
Configuring and compilation:
|
__IRC:__ #marlin-firmware @freenode ([WebChat Client](https://webchat.freenode.net/?channels=marlin-firmware), [Archive](http://energymonitor-dk.dns4e.net/marlin-firmware-log/))
|
||||||
============================
|
|
||||||
|
|
||||||
Install the arduino software IDE/toolset v23 (Some configurations also work with 1.x.x)
|
__Mailing List:__ marlin@lists.0l.de ([Subscribe](http://lists.0l.de/mailman/listinfo/marlin), [Archive](http://lists.0l.de/pipermail/marlin/))
|
||||||
http://www.arduino.cc/en/Main/Software
|
|
||||||
|
|
||||||
Download the Marlin firmware
|
## Credits
|
||||||
https://github.com/ErikZalm/Marlin/tree/Marlin_v1
|
|
||||||
Use the "Download Zip" button on the right.
|
|
||||||
|
|
||||||
For gen6/gen7 and sanguinololu the Sanguino directory in the Marlin dir needs to be copied to the arduino environment.
|
The current Marlin dev team consists of:
|
||||||
copy ArduinoAddons\Arduino_x.x.x\sanguino <arduino home>\hardware\Sanguino
|
|
||||||
|
|
||||||
Start the arduino IDE.
|
- Erik van der Zalm ([@ErikZalm](https://github.com/ErikZalm))
|
||||||
Select Tools -> Board -> Arduino Mega 2560 or your microcontroller
|
- [@daid](https://github.com/daid)
|
||||||
Select the correct serial port in Tools ->Serial Port
|
|
||||||
Open Marlin.pde
|
|
||||||
|
|
||||||
Click the Verify/Compile button
|
Sprinters lead developers are Kliment and caru.
|
||||||
|
Grbls lead developer is Simen Svale Skogsrud.
|
||||||
Click the Upload button
|
Sonney Jeon (Chamnit) improved some parts of grbl
|
||||||
If all goes well the firmware is uploading
|
A fork by bkubicek for the Ultimaker was merged.
|
||||||
|
|
||||||
That's ok. Enjoy Silky Smooth Printing.
|
|
||||||
|
|
||||||
===============================================
|
|
||||||
Instructions for configuring Bed Auto Leveling
|
|
||||||
===============================================
|
|
||||||
There are two options for this feature. You may choose to use a servo mounted on the X carriage or you may use a sled that mounts on the X axis and can be docked when not in use.
|
|
||||||
See the section for each option below for specifics about installation and configuration. Also included are instructions that apply to both options.
|
|
||||||
|
|
||||||
Note for RAMPS users:
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
By default, RAMPS have no power on servo bus (if you happen to have a multimeter, check the voltage on servo power pins).
|
|
||||||
In order to get the servo working, you need to supply 5V to 5V pin.. You can do it using your power supply (if it has a 5V output) or jumping the "Vcc" from Arduino to the 5V RAMPS rail.
|
|
||||||
These 2 pins are located just between the Reset Button and the yellow fuses... There are marks in the board showing 5V and VCC.. just connect them..
|
|
||||||
If jumping the arduino Vcc do RAMPS 5V rail, take care to not use a power hungry servo, otherwise you will cause a blackout in the arduino board ;-)
|
|
||||||
|
|
||||||
Instructions for Both Options
|
|
||||||
-----------------------------
|
|
||||||
|
|
||||||
Uncomment the "ENABLE_AUTO_BED_LEVELING" define (commented by default)
|
|
||||||
|
|
||||||
The following options define the probing positions. These are good starting values.
|
|
||||||
I recommend to keep a better clearance from borders in the first run and then make the probes as close as possible to borders:
|
|
||||||
|
|
||||||
* \#define LEFT_PROBE_BED_POSITION 30
|
|
||||||
* \#define RIGHT_PROBE_BED_POSITION 140
|
|
||||||
* \#define BACK_PROBE_BED_POSITION 140
|
|
||||||
* \#define FRONT_PROBE_BED_POSITION 30
|
|
||||||
|
|
||||||
A few more options:
|
|
||||||
|
|
||||||
* \#define XY_TRAVEL_SPEED 6000
|
|
||||||
|
|
||||||
X and Y axis travel speed between probes, in mm/min.
|
|
||||||
Bear in mind that really fast moves may render step skipping. 6000 mm/min (100mm/s) is a good value.
|
|
||||||
|
|
||||||
* \#define Z_RAISE_BEFORE_PROBING 10
|
|
||||||
* \#define Z_RAISE_BETWEEN_PROBINGS 10
|
|
||||||
|
|
||||||
The Z axis is lifted when traveling to the first probe point by Z_RAISE_BEFORE_PROBING value
|
|
||||||
and then lifted when traveling from first to second and second to third point by Z_RAISE_BETWEEN_PROBINGS.
|
|
||||||
All values are in mm as usual.
|
|
||||||
|
|
||||||
Servo Option Notes
|
|
||||||
------------------
|
|
||||||
You will probably need a swivel Z-MIN endstop in the extruder. A rc servo do a great job.
|
|
||||||
Check the system working here: http://www.youtube.com/watch?v=3IKMeOYz-1Q (Enable English subtitles)
|
|
||||||
Teasing ;-) video: http://www.youtube.com/watch?v=x8eqSQNAyro
|
|
||||||
|
|
||||||
In order to get the servo working, you need to enable:
|
|
||||||
|
|
||||||
* \#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
|
|
||||||
|
|
||||||
* \#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1
|
|
||||||
|
|
||||||
* \#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 165,60} // X,Y,Z Axis Extend and Retract angles
|
|
||||||
|
|
||||||
The first define tells firmware how many servos you have.
|
|
||||||
The second tells what axis this servo will be attached to. In the example above, we have a servo in Z axis.
|
|
||||||
The third one tells the angle in 2 situations: Probing (165º) and resting (60º). Check this with command M280 P0 S{angle} (example: M280 P0 S60 moves the servo to 60º)
|
|
||||||
|
|
||||||
Next you need to define the Z endstop (probe) offset from hotend.
|
|
||||||
My preferred method:
|
|
||||||
|
|
||||||
* a) Make a small mark in the bed with a marker/felt-tip pen.
|
|
||||||
* b) Place the hotend tip as *exactly* as possible on the mark, touching the bed. Raise the hotend 0.1mm (a regular paper thickness) and zero all axis (G92 X0 Y0 Z0);
|
|
||||||
* d) Raise the hotend 10mm (or more) for probe clearance, lower the Z probe (Z-Endstop) with M401 and place it just on that mark by moving X, Y and Z;
|
|
||||||
* e) Lower the Z in 0.1mm steps, with the probe always touching the mark (it may be necessary to adjust X and Y as well) until you hear the "click" meaning the mechanical endstop was trigged. You can confirm with M119;
|
|
||||||
* f) Now you have the probe in the same place as your hotend tip was before. Perform a M114 and write down the values, for example: X:24.3 Y:-31.4 Z:5.1;
|
|
||||||
* g) You can raise the z probe with M402 command;
|
|
||||||
* h) Fill the defines bellow multiplying the values by "-1" (just change the signal)
|
|
||||||
|
|
||||||
|
|
||||||
* \#define X_PROBE_OFFSET_FROM_EXTRUDER -24.3
|
|
||||||
* \#define Y_PROBE_OFFSET_FROM_EXTRUDER 31.4
|
|
||||||
* \#define Z_PROBE_OFFSET_FROM_EXTRUDER -5.1
|
|
||||||
|
|
||||||
|
|
||||||
Sled Option Notes
|
|
||||||
-----------------
|
|
||||||
The sled option uses an electromagnet to attach and detach to/from the X carriage. See http://www.thingiverse.com/thing:396692 for more details on how to print and install this feature. It uses the same connections as the servo option.
|
|
||||||
|
|
||||||
To use the sled option, you must define two additional things in Configuration.h:
|
|
||||||
|
|
||||||
* \#define Z_PROBE_SLED
|
|
||||||
* \#define SLED_DOCKING_OFFSET 5
|
|
||||||
|
|
||||||
Uncomment the Z_PROBE_SLED to define to enable the sled (commented out by default).
|
|
||||||
|
|
||||||
Uncomment the SLED_DOCKING_OFFSET to set the extra distance the X axis must travel to dock the sled. This value can be found by moving the X axis to its maximum position then measure the distance to the right X end and subtract the width of the sled (23mm if you printed the sled from Thingiverse).
|
|
||||||
|
|
||||||
Next you need to define the Z endstop (probe) offset from hotend.
|
|
||||||
My preferred method:
|
|
||||||
|
|
||||||
* a) Home the X and Y axes.
|
|
||||||
* b) Move the X axis to about the center of the print bed. Make a mark on the print bed.
|
|
||||||
* c) Move the Y axis to the maximum position. Make another mark.
|
|
||||||
* d) Home the X axis and use a straight edge to make a line between the two points.
|
|
||||||
* e) Repeat (b)-(d) reversing the X and Y. When you are done you will have two lines on the print bed. We will use these to measure the offset for the Z probe endstop.
|
|
||||||
* f) Move the nozzle so that it is positioned on the center point of the two lines. You can use fine movement of 0.1mm to get it as close as possible. Note the position of X and Y.
|
|
||||||
* g) Zero the Z axis with the G92 Z0 command.
|
|
||||||
* h) Raise the Z axis about 20mmm.
|
|
||||||
* i) Use the G32 command to retrieve the sled.
|
|
||||||
* j) Now more the X and Y axis to the position recorded in (f).
|
|
||||||
* k) Lower the Z axis in 0.1mm steps until you hear the "click" meaning the mechanical endstop was trigged. You can confirm with the M119 command. Note the position of the Z axis.
|
|
||||||
* l) Make a mark on the print bed where the endstop lever has touched the print bed. Raise the Z-axis about 30mm to give yourself some room.
|
|
||||||
* m) Now measure the distance from the center point to the endstop impact site along the X and Y axis using the lines drawn previously.
|
|
||||||
* n) Fill in the values below. If the endstop mark is in front of the line running left-to-right, use positive values. If it is behind, use negative values. For the Z axis use the value from (k) and subtract 0.1mm.
|
|
||||||
|
|
||||||
For example, suppose you measured the endstop position and it was 20mm to the right of the line running front-to-back, 10mm toward the front of the line running left-to-right, and the value from (k) was 2.85. The values for the defines would be:
|
|
||||||
|
|
||||||
* \#define X_PROBE_OFFSET_FROM_EXTRUDER 20
|
|
||||||
* \#define Y_PROBE_OFFSET_FROM_EXTRUDER 10
|
|
||||||
* \#define Z_PROBE_OFFSET_FROM_EXTRUDER 2.75
|
|
||||||
|
|
||||||
That's it.. enjoy never having to calibrate your Z endstop neither leveling your bed by hand anymore ;-)
|
|
||||||
|
|
||||||
Filament Sensor
|
|
||||||
---------------
|
|
||||||
Supports the use of a real time filament diameter sensor that measures the diameter of the filament going into the extruder and then adjusts the extrusion rate to compensate for filament that does not match what is defined in the g-code. The diameter can also be displayed on the LCD screen. This potentially eliminates the need to measure filament diameter when changing spools of filament. Gcode becomes independent of the filament diameter. Can also compensate for changing diameter.
|
|
||||||
|
|
||||||
For examples of these sensors, see: http://www.thingiverse.com/thing:454584, https://www.youmagine.com/designs/filament-diameter-sensor, http://diy3dprinting.blogspot.com/2014/01/diy-filament-diameter-sensor.html. Any sensor which produces a voltage equivalent to the diameter in mm (i.e. 1v = 1mm) can be used. This provides a very simple interface and may encourage more innovation in this area.
|
More features have been added by:
|
||||||
|
- Lampmaker,
|
||||||
|
- Bradley Feldman,
|
||||||
|
- and others...
|
||||||
|
|
||||||
4 new Mcodes are defined to set relevant parameters: M404, M405, M406, M407 - see above.
|
## Licence
|
||||||
|
|
||||||
Implements a delay buffer to handle the transit delay between where the filament is measured and when it gets to the extruder.
|
Marlin is published unde the [GPL license](/Documentation/COPYING.md) because I believe in open development.
|
||||||
|
Please do not use this code in products (3D printers, CNC etc) that are closed source or are crippled by a patent.
|
||||||
|
|
||||||
|
[![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)
|
||||||
|
Loading…
Reference in new issue