Browse Source

Merge branch 'Development' into issue_1493

Merging latest upstream changes
Scott Lahteine 10 years ago
parent
commit
7c6236761a

+ 28
- 7
Marlin/Configuration.h View File

@@ -122,6 +122,7 @@ Here are some standard links for getting your machine calibrated:
122 122
 #define TEMP_SENSOR_0 -1
123 123
 #define TEMP_SENSOR_1 -1
124 124
 #define TEMP_SENSOR_2 0
125
+#define TEMP_SENSOR_3 0
125 126
 #define TEMP_SENSOR_BED 0
126 127
 
127 128
 // 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.
@@ -139,6 +140,7 @@ Here are some standard links for getting your machine calibrated:
139 140
 #define HEATER_0_MINTEMP 5
140 141
 #define HEATER_1_MINTEMP 5
141 142
 #define HEATER_2_MINTEMP 5
143
+#define HEATER_3_MINTEMP 5
142 144
 #define BED_MINTEMP 5
143 145
 
144 146
 // When temperature exceeds max temp, your heater will be switched off.
@@ -147,6 +149,7 @@ Here are some standard links for getting your machine calibrated:
147 149
 #define HEATER_0_MAXTEMP 275
148 150
 #define HEATER_1_MAXTEMP 275
149 151
 #define HEATER_2_MAXTEMP 275
152
+#define HEATER_3_MAXTEMP 275
150 153
 #define BED_MAXTEMP 150
151 154
 
152 155
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -323,11 +326,6 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
323 326
 //#define DISABLE_MAX_ENDSTOPS
324 327
 //#define DISABLE_MIN_ENDSTOPS
325 328
 
326
-// Disable max endstops for compatibility with endstop checking routine
327
-#if defined(COREXY) && !defined(DISABLE_MAX_ENDSTOPS)
328
-  #define DISABLE_MAX_ENDSTOPS
329
-#endif
330
-
331 329
 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
332 330
 #define X_ENABLE_ON 0
333 331
 #define Y_ENABLE_ON 0
@@ -341,12 +339,13 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
341 339
 #define DISABLE_E false // For all extruders
342 340
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
343 341
 
344
-#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
342
+#define INVERT_X_DIR true     // for Mendel set to false, for Orca set to true
345 343
 #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
346 344
 #define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
347 345
 #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
348
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
346
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
349 347
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
348
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
350 349
 
351 350
 // ENDSTOP SETTINGS:
352 351
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -586,6 +585,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
586 585
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
587 586
 //#define MAKRPANEL
588 587
 
588
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
589
+// http://panucatt.com
590
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
591
+//#define VIKI2
592
+//#define miniVIKI
593
+
589 594
 // The RepRapDiscount Smart Controller (white PCB)
590 595
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
591 596
 //#define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -619,6 +624,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
619 624
  #define DEFAULT_LCD_CONTRAST 17
620 625
 #endif
621 626
 
627
+#if defined(miniVIKI) || defined(VIKI2)
628
+ #define ULTRA_LCD  //general LCD support, also 16x2
629
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
630
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
631
+ 
632
+  #ifdef miniVIKI
633
+   #define DEFAULT_LCD_CONTRAST 95
634
+  #else
635
+   #define DEFAULT_LCD_CONTRAST 40
636
+  #endif
637
+  
638
+ #define ENCODER_PULSES_PER_STEP 4
639
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
640
+#endif
641
+
642
+
622 643
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
623 644
  #define DOGLCD
624 645
  #define U8GLIB_ST7920

+ 3
- 2
Marlin/Marlin.h View File

@@ -201,8 +201,9 @@ void Stop();
201 201
 
202 202
 bool IsStopped();
203 203
 
204
-void enquecommand(const char *cmd); //put an ASCII command at the end of the current buffer.
205
-void enquecommand_P(const char *cmd); //put an ASCII command at the end of the current buffer, read from flash
204
+bool enquecommand(const char *cmd); //put a single ASCII command at the end of the current buffer or return false when it is full
205
+void enquecommands_P(const char *cmd); //put one or many ASCII commands at the end of the current buffer, read from flash
206
+
206 207
 void prepare_arc_move(char isclockwise);
207 208
 void clamp_to_software_endstops(float target[3]);
208 209
 

+ 65
- 26
Marlin/Marlin_main.cpp View File

@@ -385,6 +385,8 @@ static int serial_count = 0;
385 385
 static boolean comment_mode = false;
386 386
 static char *strchr_pointer; ///< A pointer to find chars in the command string (X, Y, Z, E, etc.)
387 387
 
388
+const char* queued_commands_P= NULL; /* pointer to the current line in the active sequence of commands, or NULL when none */
389
+
388 390
 const int sensitive_pins[] = SENSITIVE_PINS; ///< Sensitive pin list for M42
389 391
 
390 392
 // Inactivity shutdown
@@ -448,39 +450,64 @@ void serial_echopair_P(const char *s_P, unsigned long v)
448 450
   }
449 451
 #endif //!SDSUPPORT
450 452
 
451
-//adds an command to the main command buffer
452
-//thats really done in a non-safe way.
453
-//needs overworking someday
454
-void enquecommand(const char *cmd)
453
+//Injects the next command from the pending sequence of commands, when possible
454
+//Return false if and only if no command was pending
455
+static bool drain_queued_commands_P()
455 456
 {
456
-  if(buflen < BUFSIZE)
457
+  char cmd[30];
458
+  if(!queued_commands_P)
459
+    return false;
460
+  // Get the next 30 chars from the sequence of gcodes to run
461
+  strncpy_P(cmd, queued_commands_P, sizeof(cmd)-1);
462
+  cmd[sizeof(cmd)-1]= 0;
463
+  // Look for the end of line, or the end of sequence
464
+  size_t i= 0;
465
+  char c;
466
+  while( (c= cmd[i]) && c!='\n' )
467
+    ++i; // look for the end of this gcode command
468
+  cmd[i]= 0;
469
+  if(enquecommand(cmd)) // buffer was not full (else we will retry later)
457 470
   {
458
-    //this is dangerous if a mixing of serial and this happens
459
-    strcpy(&(cmdbuffer[bufindw][0]),cmd);
460
-    SERIAL_ECHO_START;
461
-    SERIAL_ECHOPGM(MSG_Enqueing);
462
-    SERIAL_ECHO(cmdbuffer[bufindw]);
463
-    SERIAL_ECHOLNPGM("\"");
464
-    bufindw= (bufindw + 1)%BUFSIZE;
465
-    buflen += 1;
471
+    if(c)
472
+      queued_commands_P+= i+1; // move to next command
473
+    else
474
+      queued_commands_P= NULL; // will have no more commands in the sequence
466 475
   }
476
+  return true;
467 477
 }
468 478
 
469
-void enquecommand_P(const char *cmd)
479
+//Record one or many commands to run from program memory.
480
+//Aborts the current queue, if any.
481
+//Note: drain_queued_commands_P() must be called repeatedly to drain the commands afterwards
482
+void enquecommands_P(const char* pgcode)
470 483
 {
471
-  if(buflen < BUFSIZE)
472
-  {
473
-    //this is dangerous if a mixing of serial and this happens
474
-    strcpy_P(&(cmdbuffer[bufindw][0]),cmd);
475
-    SERIAL_ECHO_START;
476
-    SERIAL_ECHOPGM(MSG_Enqueing);
477
-    SERIAL_ECHO(cmdbuffer[bufindw]);
478
-    SERIAL_ECHOLNPGM("\"");
479
-    bufindw= (bufindw + 1)%BUFSIZE;
480
-    buflen += 1;
481
-  }
484
+    queued_commands_P= pgcode;
485
+    drain_queued_commands_P(); // first command exectuted asap (when possible)
486
+}
487
+
488
+//adds a single command to the main command buffer, from RAM
489
+//that is really done in a non-safe way.
490
+//needs overworking someday
491
+//Returns false if it failed to do so
492
+bool enquecommand(const char *cmd)
493
+{
494
+  if(*cmd==';')
495
+    return false;
496
+  if(buflen >= BUFSIZE)
497
+    return false;
498
+  //this is dangerous if a mixing of serial and this happens
499
+  strcpy(&(cmdbuffer[bufindw][0]),cmd);
500
+  SERIAL_ECHO_START;
501
+  SERIAL_ECHOPGM(MSG_Enqueing);
502
+  SERIAL_ECHO(cmdbuffer[bufindw]);
503
+  SERIAL_ECHOLNPGM("\"");
504
+  bufindw= (bufindw + 1)%BUFSIZE;
505
+  buflen += 1;
506
+  return true;
482 507
 }
483 508
 
509
+
510
+
484 511
 void setup_killpin()
485 512
 {
486 513
   #if defined(KILL_PIN) && KILL_PIN > -1
@@ -632,6 +659,15 @@ void setup()
632 659
   digitalWrite(SERVO0_PIN, LOW); // turn it off
633 660
 #endif // Z_PROBE_SLED
634 661
   setup_homepin();
662
+  
663
+#ifdef STAT_LED_RED
664
+  pinMode(STAT_LED_RED, OUTPUT);
665
+  digitalWrite(STAT_LED_RED, LOW); // turn it off
666
+#endif
667
+#ifdef STAT_LED_BLUE
668
+  pinMode(STAT_LED_BLUE, OUTPUT);
669
+  digitalWrite(STAT_LED_BLUE, LOW); // turn it off
670
+#endif  
635 671
 }
636 672
 
637 673
 
@@ -684,6 +720,9 @@ void loop()
684 720
 
685 721
 void get_command()
686 722
 {
723
+  if(drain_queued_commands_P()) // priority is given to non-serial commands
724
+    return;
725
+  
687 726
   while( MYSERIAL.available() > 0  && buflen < BUFSIZE) {
688 727
     serial_char = MYSERIAL.read();
689 728
     if(serial_char == '\n' ||
@@ -4459,7 +4498,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument s
4459 4498
     {
4460 4499
        if (homeDebounceCount == 0)
4461 4500
        {
4462
-          enquecommand_P((PSTR("G28")));
4501
+          enquecommands_P((PSTR("G28")));
4463 4502
           homeDebounceCount++;
4464 4503
           LCD_ALERTMESSAGEPGM(MSG_AUTO_HOME);
4465 4504
        }

+ 2
- 2
Marlin/cardreader.cpp View File

@@ -532,7 +532,7 @@ void CardReader::checkautostart(bool force)
532 532
 
533 533
       sprintf_P(cmd, PSTR("M23 %s"), autoname);
534 534
       enquecommand(cmd);
535
-      enquecommand_P(PSTR("M24"));
535
+      enquecommands_P(PSTR("M24"));
536 536
       found=true;
537 537
     }
538 538
   }
@@ -637,7 +637,7 @@ void CardReader::printingHasFinished()
637 637
       if(SD_FINISHED_STEPPERRELEASE)
638 638
       {
639 639
           //finishAndDisableSteppers();
640
-          enquecommand_P(PSTR(SD_FINISHED_RELEASECOMMAND));
640
+          enquecommands_P(PSTR(SD_FINISHED_RELEASECOMMAND));
641 641
       }
642 642
       autotempShutdown();
643 643
     }

+ 3
- 0
Marlin/dogm_lcd_implementation.h View File

@@ -92,6 +92,9 @@ U8GLIB_ST7920_128X64_RRD u8g(0);
92 92
 #elif defined(MAKRPANEL)
93 93
 // The MaKrPanel display, ST7565 controller as well
94 94
 U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
95
+#elif defined(VIKI2) || defined(miniVIKI)
96
+// Mini Viki and Viki 2.0 LCD, ST7565 controller as well
97
+U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
95 98
 #else
96 99
 // for regular DOGM128 display with HW-SPI
97 100
 U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0);  // HW-SPI Com: CS, A0

+ 28
- 2
Marlin/example_configurations/Hephestos/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -122,6 +122,7 @@ Here are some standard links for getting your machine calibrated:
122 122
 #define TEMP_SENSOR_0 1
123 123
 #define TEMP_SENSOR_1 0
124 124
 #define TEMP_SENSOR_2 0
125
+#define TEMP_SENSOR_3 0
125 126
 #define TEMP_SENSOR_BED 0
126 127
 
127 128
 // 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.
@@ -139,6 +140,7 @@ Here are some standard links for getting your machine calibrated:
139 140
 #define HEATER_0_MINTEMP 5
140 141
 #define HEATER_1_MINTEMP 5
141 142
 #define HEATER_2_MINTEMP 5
143
+#define HEATER_3_MINTEMP 5
142 144
 #define BED_MINTEMP 5
143 145
 
144 146
 // When temperature exceeds max temp, your heater will be switched off.
@@ -147,6 +149,7 @@ Here are some standard links for getting your machine calibrated:
147 149
 #define HEATER_0_MAXTEMP 260
148 150
 #define HEATER_1_MAXTEMP 260
149 151
 #define HEATER_2_MAXTEMP 260
152
+#define HEATER_3_MAXTEMP 260
150 153
 #define BED_MAXTEMP 150
151 154
 
152 155
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -351,8 +354,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
351 354
 #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
352 355
 #define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
353 356
 #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
354
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
357
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
355 358
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
359
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
356 360
 
357 361
 // ENDSTOP SETTINGS:
358 362
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -587,6 +591,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
587 591
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
588 592
 //#define MAKRPANEL
589 593
 
594
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
595
+// http://panucatt.com
596
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
597
+//#define VIKI2
598
+//#define miniVIKI
599
+
590 600
 // The RepRapDiscount Smart Controller (white PCB)
591 601
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
592 602
 #define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -620,6 +630,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
620 630
  #define DEFAULT_LCD_CONTRAST 17
621 631
 #endif
622 632
 
633
+#if defined(miniVIKI) || defined(VIKI2)
634
+ #define ULTRA_LCD  //general LCD support, also 16x2
635
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
636
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
637
+ 
638
+  #ifdef miniVIKI
639
+   #define DEFAULT_LCD_CONTRAST 95
640
+  #else
641
+   #define DEFAULT_LCD_CONTRAST 40
642
+  #endif
643
+  
644
+ #define ENCODER_PULSES_PER_STEP 4
645
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
646
+#endif
647
+
648
+
623 649
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
624 650
  #define DOGLCD
625 651
  #define U8GLIB_ST7920

+ 29
- 3
Marlin/example_configurations/K8200/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -124,6 +124,7 @@ Here are some standard links for getting your machine calibrated:
124 124
 #define TEMP_SENSOR_0 5
125 125
 #define TEMP_SENSOR_1 0
126 126
 #define TEMP_SENSOR_2 0
127
+#define TEMP_SENSOR_3 0
127 128
 #define TEMP_SENSOR_BED 5
128 129
 
129 130
 // 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.
@@ -141,6 +142,7 @@ Here are some standard links for getting your machine calibrated:
141 142
 #define HEATER_0_MINTEMP 5
142 143
 #define HEATER_1_MINTEMP 5
143 144
 #define HEATER_2_MINTEMP 5
145
+#define HEATER_3_MINTEMP 5
144 146
 #define BED_MINTEMP 5
145 147
 
146 148
 // When temperature exceeds max temp, your heater will be switched off.
@@ -149,6 +151,7 @@ Here are some standard links for getting your machine calibrated:
149 151
 #define HEATER_0_MAXTEMP 275
150 152
 #define HEATER_1_MAXTEMP 275
151 153
 #define HEATER_2_MAXTEMP 275
154
+#define HEATER_3_MAXTEMP 275
152 155
 #define BED_MAXTEMP 150
153 156
 
154 157
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -357,10 +360,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
357 360
 
358 361
 #define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
359 362
 #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
360
-#define INVERT_Z_DIR false     // for Mendel set to false, for Orca set to true
363
+#define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true
361 364
 #define INVERT_E0_DIR true   // for direct drive extruder v9 set to true, for geared extruder set to false
362
-#define INVERT_E1_DIR true    // for direct drive extruder v9 set to true, for geared extruder set to false
365
+#define INVERT_E1_DIR true   // for direct drive extruder v9 set to true, for geared extruder set to false
363 366
 #define INVERT_E2_DIR true   // for direct drive extruder v9 set to true, for geared extruder set to false
367
+#define INVERT_E3_DIR true   // for direct drive extruder v9 set to true, for geared extruder set to false
364 368
 
365 369
 // ENDSTOP SETTINGS:
366 370
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -597,6 +601,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
597 601
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
598 602
 //#define MAKRPANEL
599 603
 
604
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
605
+// http://panucatt.com
606
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
607
+//#define VIKI2
608
+//#define miniVIKI
609
+
600 610
 // The RepRapDiscount Smart Controller (white PCB)
601 611
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
602 612
 //#define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -630,6 +640,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
630 640
  #define DEFAULT_LCD_CONTRAST 17
631 641
 #endif
632 642
 
643
+#if defined(miniVIKI) || defined(VIKI2)
644
+ #define ULTRA_LCD  //general LCD support, also 16x2
645
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
646
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
647
+ 
648
+  #ifdef miniVIKI
649
+   #define DEFAULT_LCD_CONTRAST 95
650
+  #else
651
+   #define DEFAULT_LCD_CONTRAST 40
652
+  #endif
653
+  
654
+ #define ENCODER_PULSES_PER_STEP 4
655
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
656
+#endif
657
+
658
+
633 659
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
634 660
  #define DOGLCD
635 661
  #define U8GLIB_ST7920

+ 28
- 2
Marlin/example_configurations/SCARA/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -142,6 +142,7 @@ Here are some standard links for getting your machine calibrated:
142 142
 #define TEMP_SENSOR_0 1
143 143
 #define TEMP_SENSOR_1 0
144 144
 #define TEMP_SENSOR_2 0
145
+#define TEMP_SENSOR_3 0
145 146
 #define TEMP_SENSOR_BED 1
146 147
 
147 148
 // 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.
@@ -159,6 +160,7 @@ Here are some standard links for getting your machine calibrated:
159 160
 #define HEATER_0_MINTEMP 5
160 161
 #define HEATER_1_MINTEMP 5
161 162
 #define HEATER_2_MINTEMP 5
163
+#define HEATER_3_MINTEMP 5
162 164
 #define BED_MINTEMP 5
163 165
 
164 166
 // When temperature exceeds max temp, your heater will be switched off.
@@ -167,6 +169,7 @@ Here are some standard links for getting your machine calibrated:
167 169
 #define HEATER_0_MAXTEMP 275
168 170
 #define HEATER_1_MAXTEMP 275
169 171
 #define HEATER_2_MAXTEMP 275
172
+#define HEATER_3_MAXTEMP 275
170 173
 #define BED_MAXTEMP 150
171 174
 
172 175
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -380,8 +383,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
380 383
 #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
381 384
 #define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
382 385
 #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
383
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
386
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
384 387
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
388
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
385 389
 
386 390
 // ENDSTOP SETTINGS:
387 391
 // Sets direction of endstop	s when homing; 1=MAX, -1=MIN
@@ -590,6 +594,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
590 594
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
591 595
 //#define MAKRPANEL
592 596
 
597
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
598
+// http://panucatt.com
599
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
600
+//#define VIKI2
601
+//#define miniVIKI
602
+
593 603
 // The RepRapDiscount Smart Controller (white PCB)
594 604
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
595 605
 //#define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -623,6 +633,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
623 633
  #define DEFAULT_LCD_CONTRAST 17
624 634
 #endif
625 635
 
636
+#if defined(miniVIKI) || defined(VIKI2)
637
+ #define ULTRA_LCD  //general LCD support, also 16x2
638
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
639
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
640
+ 
641
+  #ifdef miniVIKI
642
+   #define DEFAULT_LCD_CONTRAST 95
643
+  #else
644
+   #define DEFAULT_LCD_CONTRAST 40
645
+  #endif
646
+  
647
+ #define ENCODER_PULSES_PER_STEP 4
648
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
649
+#endif
650
+
651
+
626 652
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
627 653
  #define DOGLCD
628 654
  #define U8GLIB_ST7920

+ 12
- 0
Marlin/example_configurations/SCARA/Configuration_adv.h View File

@@ -78,6 +78,7 @@
78 78
 #define EXTRUDER_0_AUTO_FAN_PIN   -1
79 79
 #define EXTRUDER_1_AUTO_FAN_PIN   -1
80 80
 #define EXTRUDER_2_AUTO_FAN_PIN   -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN   -1
81 82
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
82 83
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
83 84
 
@@ -478,6 +479,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
478 479
   #define THERMISTORHEATER_2 TEMP_SENSOR_2
479 480
   #define HEATER_2_USES_THERMISTOR
480 481
 #endif
482
+#if TEMP_SENSOR_3 > 0
483
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
484
+  #define HEATER_3_USES_THERMISTOR
485
+#endif
481 486
 #if TEMP_SENSOR_BED > 0
482 487
   #define THERMISTORBED TEMP_SENSOR_BED
483 488
   #define BED_USES_THERMISTOR
@@ -491,6 +496,9 @@ const unsigned int dropsegments=5; //everything with less than this number of st
491 496
 #if TEMP_SENSOR_2 == -1
492 497
   #define HEATER_2_USES_AD595
493 498
 #endif
499
+#if TEMP_SENSOR_3 == -1
500
+  #define HEATER_3_USES_AD595
501
+#endif
494 502
 #if TEMP_SENSOR_BED == -1
495 503
   #define BED_USES_AD595
496 504
 #endif
@@ -509,6 +517,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
509 517
   #undef HEATER_2_MINTEMP
510 518
   #undef HEATER_2_MAXTEMP
511 519
 #endif
520
+#if TEMP_SENSOR_3 == 0
521
+  #undef HEATER_3_MINTEMP
522
+  #undef HEATER_3_MAXTEMP
523
+#endif
512 524
 #if TEMP_SENSOR_BED == 0
513 525
   #undef BED_MINTEMP
514 526
   #undef BED_MAXTEMP

+ 29
- 3
Marlin/example_configurations/WITBOX/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -125,6 +125,7 @@ Here are some standard links for getting your machine calibrated:
125 125
 #define TEMP_SENSOR_0 1
126 126
 #define TEMP_SENSOR_1 0
127 127
 #define TEMP_SENSOR_2 0
128
+#define TEMP_SENSOR_3 0
128 129
 #define TEMP_SENSOR_BED 0
129 130
 
130 131
 // 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.
@@ -142,6 +143,7 @@ Here are some standard links for getting your machine calibrated:
142 143
 #define HEATER_0_MINTEMP 5
143 144
 #define HEATER_1_MINTEMP 5
144 145
 #define HEATER_2_MINTEMP 5
146
+#define HEATER_3_MINTEMP 5
145 147
 #define BED_MINTEMP 5
146 148
 
147 149
 // When temperature exceeds max temp, your heater will be switched off.
@@ -150,6 +152,7 @@ Here are some standard links for getting your machine calibrated:
150 152
 #define HEATER_0_MAXTEMP 260
151 153
 #define HEATER_1_MAXTEMP 260
152 154
 #define HEATER_2_MAXTEMP 260
155
+#define HEATER_3_MAXTEMP 260
153 156
 #define BED_MAXTEMP 150
154 157
 
155 158
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -351,12 +354,13 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
351 354
 #define DISABLE_E false // For all extruders
352 355
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
353 356
 
354
-#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
357
+#define INVERT_X_DIR true     // for Mendel set to false, for Orca set to true
355 358
 #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
356 359
 #define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
357 360
 #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
358
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
361
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
359 362
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
363
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
360 364
 
361 365
 // ENDSTOP SETTINGS:
362 366
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -591,6 +595,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
591 595
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
592 596
 //#define MAKRPANEL
593 597
 
598
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
599
+// http://panucatt.com
600
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
601
+//#define VIKI2
602
+//#define miniVIKI
603
+
594 604
 // The RepRapDiscount Smart Controller (white PCB)
595 605
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
596 606
 #define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -624,6 +634,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
624 634
  #define DEFAULT_LCD_CONTRAST 17
625 635
 #endif
626 636
 
637
+#if defined(miniVIKI) || defined(VIKI2)
638
+ #define ULTRA_LCD  //general LCD support, also 16x2
639
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
640
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
641
+ 
642
+  #ifdef miniVIKI
643
+   #define DEFAULT_LCD_CONTRAST 95
644
+  #else
645
+   #define DEFAULT_LCD_CONTRAST 40
646
+  #endif
647
+  
648
+ #define ENCODER_PULSES_PER_STEP 4
649
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
650
+#endif
651
+
652
+
627 653
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
628 654
  #define DOGLCD
629 655
  #define U8GLIB_ST7920

+ 28
- 2
Marlin/example_configurations/delta/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -147,6 +147,7 @@ Here are some standard links for getting your machine calibrated:
147 147
 #define TEMP_SENSOR_0 -1
148 148
 #define TEMP_SENSOR_1 -1
149 149
 #define TEMP_SENSOR_2 0
150
+#define TEMP_SENSOR_3 0
150 151
 #define TEMP_SENSOR_BED 0
151 152
 
152 153
 // 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.
@@ -164,6 +165,7 @@ Here are some standard links for getting your machine calibrated:
164 165
 #define HEATER_0_MINTEMP 5
165 166
 #define HEATER_1_MINTEMP 5
166 167
 #define HEATER_2_MINTEMP 5
168
+#define HEATER_3_MINTEMP 5
167 169
 #define BED_MINTEMP 5
168 170
 
169 171
 // When temperature exceeds max temp, your heater will be switched off.
@@ -172,6 +174,7 @@ Here are some standard links for getting your machine calibrated:
172 174
 #define HEATER_0_MAXTEMP 275
173 175
 #define HEATER_1_MAXTEMP 275
174 176
 #define HEATER_2_MAXTEMP 275
177
+#define HEATER_3_MAXTEMP 275
175 178
 #define BED_MAXTEMP 150
176 179
 
177 180
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -368,8 +371,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
368 371
 #define INVERT_Z_DIR false
369 372
 
370 373
 #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
371
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
374
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
372 375
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
376
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
373 377
 
374 378
 // ENDSTOP SETTINGS:
375 379
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -495,6 +499,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
495 499
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
496 500
 //#define MAKRPANEL
497 501
 
502
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
503
+// http://panucatt.com
504
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
505
+//#define VIKI2
506
+//#define miniVIKI
507
+
498 508
 // The RepRapDiscount Smart Controller (white PCB)
499 509
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
500 510
 //#define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -535,6 +545,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
535 545
  #define DEFAULT_LCD_CONTRAST 17
536 546
 #endif
537 547
 
548
+#if defined(miniVIKI) || defined(VIKI2)
549
+ #define ULTRA_LCD  //general LCD support, also 16x2
550
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
551
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
552
+ 
553
+  #ifdef miniVIKI
554
+   #define DEFAULT_LCD_CONTRAST 95
555
+  #else
556
+   #define DEFAULT_LCD_CONTRAST 40
557
+  #endif
558
+  
559
+ #define ENCODER_PULSES_PER_STEP 4
560
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
561
+#endif
562
+
563
+
538 564
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
539 565
  #define DOGLCD
540 566
  #define U8GLIB_ST7920

+ 12
- 0
Marlin/example_configurations/delta/Configuration_adv.h View File

@@ -78,6 +78,7 @@
78 78
 #define EXTRUDER_0_AUTO_FAN_PIN   -1
79 79
 #define EXTRUDER_1_AUTO_FAN_PIN   -1
80 80
 #define EXTRUDER_2_AUTO_FAN_PIN   -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN   -1
81 82
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
82 83
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
83 84
 
@@ -472,6 +473,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
472 473
   #define THERMISTORHEATER_2 TEMP_SENSOR_2
473 474
   #define HEATER_2_USES_THERMISTOR
474 475
 #endif
476
+#if TEMP_SENSOR_3 > 0
477
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
478
+  #define HEATER_3_USES_THERMISTOR
479
+#endif
475 480
 #if TEMP_SENSOR_BED > 0
476 481
   #define THERMISTORBED TEMP_SENSOR_BED
477 482
   #define BED_USES_THERMISTOR
@@ -485,6 +490,9 @@ const unsigned int dropsegments=5; //everything with less than this number of st
485 490
 #if TEMP_SENSOR_2 == -1
486 491
   #define HEATER_2_USES_AD595
487 492
 #endif
493
+#if TEMP_SENSOR_3 == -1
494
+  #define HEATER_3_USES_AD595
495
+#endif
488 496
 #if TEMP_SENSOR_BED == -1
489 497
   #define BED_USES_AD595
490 498
 #endif
@@ -503,6 +511,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
503 511
   #undef HEATER_2_MINTEMP
504 512
   #undef HEATER_2_MAXTEMP
505 513
 #endif
514
+#if TEMP_SENSOR_3 == 0
515
+  #undef HEATER_3_MINTEMP
516
+  #undef HEATER_3_MAXTEMP
517
+#endif
506 518
 #if TEMP_SENSOR_BED == 0
507 519
   #undef BED_MINTEMP
508 520
   #undef BED_MAXTEMP

+ 29
- 3
Marlin/example_configurations/makibox/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -127,6 +127,7 @@ Here are some standard links for getting your machine calibrated:
127 127
 #define TEMP_SENSOR_0 1
128 128
 #define TEMP_SENSOR_1 0
129 129
 #define TEMP_SENSOR_2 0
130
+#define TEMP_SENSOR_3 0
130 131
 #define TEMP_SENSOR_BED 12
131 132
 
132 133
 // 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.
@@ -144,6 +145,7 @@ Here are some standard links for getting your machine calibrated:
144 145
 #define HEATER_0_MINTEMP 5
145 146
 #define HEATER_1_MINTEMP 5
146 147
 #define HEATER_2_MINTEMP 5
148
+#define HEATER_3_MINTEMP 5
147 149
 #define BED_MINTEMP 5
148 150
 
149 151
 // When temperature exceeds max temp, your heater will be switched off.
@@ -152,6 +154,7 @@ Here are some standard links for getting your machine calibrated:
152 154
 #define HEATER_0_MAXTEMP 275
153 155
 #define HEATER_1_MAXTEMP 275
154 156
 #define HEATER_2_MAXTEMP 275
157
+#define HEATER_3_MAXTEMP 275
155 158
 #define BED_MAXTEMP 150
156 159
 
157 160
 // If your bed has low resistance e.g. .6 ohm and throws the fuse you can duty cycle it to reduce the
@@ -352,9 +355,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
352 355
 #define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
353 356
 #define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
354 357
 #define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true
355
-#define INVERT_E0_DIR true   // for direct drive extruder v9 set to true, for geared extruder set to false
356
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
358
+#define INVERT_E0_DIR true    // for direct drive extruder v9 set to true, for geared extruder set to false
359
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
357 360
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
361
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
358 362
 
359 363
 // ENDSTOP SETTINGS:
360 364
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -565,6 +569,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
565 569
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
566 570
 //#define MAKRPANEL
567 571
 
572
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
573
+// http://panucatt.com
574
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
575
+//#define VIKI2
576
+//#define miniVIKI
577
+
568 578
 // The RepRapDiscount Smart Controller (white PCB)
569 579
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
570 580
 //#define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -598,6 +608,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
598 608
  #define DEFAULT_LCD_CONTRAST 17
599 609
 #endif
600 610
 
611
+#if defined(miniVIKI) || defined(VIKI2)
612
+ #define ULTRA_LCD  //general LCD support, also 16x2
613
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
614
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
615
+ 
616
+  #ifdef miniVIKI
617
+   #define DEFAULT_LCD_CONTRAST 95
618
+  #else
619
+   #define DEFAULT_LCD_CONTRAST 40
620
+  #endif
621
+  
622
+ #define ENCODER_PULSES_PER_STEP 4
623
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
624
+#endif
625
+
626
+
601 627
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
602 628
  #define DOGLCD
603 629
  #define U8GLIB_ST7920

+ 12
- 0
Marlin/example_configurations/makibox/Configuration_adv.h View File

@@ -78,6 +78,7 @@
78 78
 #define EXTRUDER_0_AUTO_FAN_PIN   -1
79 79
 #define EXTRUDER_1_AUTO_FAN_PIN   -1
80 80
 #define EXTRUDER_2_AUTO_FAN_PIN   -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN   -1
81 82
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
82 83
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
83 84
 
@@ -469,6 +470,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
469 470
   #define THERMISTORHEATER_2 TEMP_SENSOR_2
470 471
   #define HEATER_2_USES_THERMISTOR
471 472
 #endif
473
+#if TEMP_SENSOR_3 > 0
474
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
475
+  #define HEATER_3_USES_THERMISTOR
476
+#endif
472 477
 #if TEMP_SENSOR_BED > 0
473 478
   #define THERMISTORBED TEMP_SENSOR_BED
474 479
   #define BED_USES_THERMISTOR
@@ -482,6 +487,9 @@ const unsigned int dropsegments=5; //everything with less than this number of st
482 487
 #if TEMP_SENSOR_2 == -1
483 488
   #define HEATER_2_USES_AD595
484 489
 #endif
490
+#if TEMP_SENSOR_3 == -1
491
+  #define HEATER_3_USES_AD595
492
+#endif
485 493
 #if TEMP_SENSOR_BED == -1
486 494
   #define BED_USES_AD595
487 495
 #endif
@@ -500,6 +508,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
500 508
   #undef HEATER_2_MINTEMP
501 509
   #undef HEATER_2_MAXTEMP
502 510
 #endif
511
+#if TEMP_SENSOR_3 == 0
512
+  #undef HEATER_3_MINTEMP
513
+  #undef HEATER_3_MAXTEMP
514
+#endif
503 515
 #if TEMP_SENSOR_BED == 0
504 516
   #undef BED_MINTEMP
505 517
   #undef BED_MAXTEMP

+ 30
- 4
Marlin/example_configurations/tvrrug/Round2/Configuration.h View File

@@ -1,4 +1,4 @@
1
-#ifndef CONFIGURATION_H
1
+#ifndef CONFIGURATION_H
2 2
 #define CONFIGURATION_H
3 3
 
4 4
 #include "boards.h"
@@ -126,6 +126,7 @@ Here are some standard links for getting your machine calibrated:
126 126
 #define TEMP_SENSOR_0 5
127 127
 #define TEMP_SENSOR_1 0
128 128
 #define TEMP_SENSOR_2 0
129
+#define TEMP_SENSOR_3 0
129 130
 #define TEMP_SENSOR_BED 5
130 131
 
131 132
 // 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.
@@ -143,6 +144,7 @@ Here are some standard links for getting your machine calibrated:
143 144
 #define HEATER_0_MINTEMP 5
144 145
 #define HEATER_1_MINTEMP 5
145 146
 #define HEATER_2_MINTEMP 5
147
+#define HEATER_3_MINTEMP 5
146 148
 #define BED_MINTEMP 5
147 149
 
148 150
 // When temperature exceeds max temp, your heater will be switched off.
@@ -151,6 +153,7 @@ Here are some standard links for getting your machine calibrated:
151 153
 #define HEATER_0_MAXTEMP 275
152 154
 #define HEATER_1_MAXTEMP 275
153 155
 #define HEATER_2_MAXTEMP 275
156
+#define HEATER_3_MAXTEMP 275
154 157
 #define BED_MAXTEMP 150
155 158
 
156 159
 #define CONFIG_STEPPERS_TOSHIBA	1
@@ -353,11 +356,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
353 356
 #define DISABLE_INACTIVE_EXTRUDER true //disable only inactive extruders and keep active extruder enabled
354 357
 
355 358
 #define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
356
-#define INVERT_Y_DIR true    // for Mendel set to true, for Orca set to false
357
-#define INVERT_Z_DIR false     // for Mendel set to false, for Orca set to true
359
+#define INVERT_Y_DIR true     // for Mendel set to true, for Orca set to false
360
+#define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true
358 361
 #define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
359
-#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
362
+#define INVERT_E1_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
360 363
 #define INVERT_E2_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
364
+#define INVERT_E3_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
361 365
 
362 366
 // ENDSTOP SETTINGS:
363 367
 // Sets direction of endstops when homing; 1=MAX, -1=MIN
@@ -578,6 +582,12 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
578 582
 // http://reprap.org/wiki/MaKr3d_MaKrPanel
579 583
 //#define MAKRPANEL
580 584
 
585
+// The Panucatt Devices Viki 2.0 and mini Viki with Graphic LCD
586
+// http://panucatt.com
587
+// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: http://code.google.com/p/u8glib/wiki/u8glib
588
+//#define VIKI2
589
+//#define miniVIKI
590
+
581 591
 // The RepRapDiscount Smart Controller (white PCB)
582 592
 // http://reprap.org/wiki/RepRapDiscount_Smart_Controller
583 593
 //#define REPRAP_DISCOUNT_SMART_CONTROLLER
@@ -611,6 +621,22 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
611 621
  #define DEFAULT_LCD_CONTRAST 17
612 622
 #endif
613 623
 
624
+#if defined(miniVIKI) || defined(VIKI2)
625
+ #define ULTRA_LCD  //general LCD support, also 16x2
626
+ #define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
627
+ #define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
628
+ 
629
+  #ifdef miniVIKI
630
+   #define DEFAULT_LCD_CONTRAST 95
631
+  #else
632
+   #define DEFAULT_LCD_CONTRAST 40
633
+  #endif
634
+  
635
+ #define ENCODER_PULSES_PER_STEP 4
636
+ #define ENCODER_STEPS_PER_MENU_ITEM 1
637
+#endif
638
+
639
+
614 640
 #if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
615 641
  #define DOGLCD
616 642
  #define U8GLIB_ST7920

+ 12
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

@@ -78,6 +78,7 @@
78 78
 #define EXTRUDER_0_AUTO_FAN_PIN   -1
79 79
 #define EXTRUDER_1_AUTO_FAN_PIN   -1
80 80
 #define EXTRUDER_2_AUTO_FAN_PIN   -1
81
+#define EXTRUDER_3_AUTO_FAN_PIN   -1
81 82
 #define EXTRUDER_AUTO_FAN_TEMPERATURE 50
82 83
 #define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed
83 84
 
@@ -472,6 +473,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
472 473
   #define THERMISTORHEATER_2 TEMP_SENSOR_2
473 474
   #define HEATER_2_USES_THERMISTOR
474 475
 #endif
476
+#if TEMP_SENSOR_3 > 0
477
+  #define THERMISTORHEATER_3 TEMP_SENSOR_3
478
+  #define HEATER_3_USES_THERMISTOR
479
+#endif
475 480
 #if TEMP_SENSOR_BED > 0
476 481
   #define THERMISTORBED TEMP_SENSOR_BED
477 482
   #define BED_USES_THERMISTOR
@@ -485,6 +490,9 @@ const unsigned int dropsegments=5; //everything with less than this number of st
485 490
 #if TEMP_SENSOR_2 == -1
486 491
   #define HEATER_2_USES_AD595
487 492
 #endif
493
+#if TEMP_SENSOR_3 == -1
494
+  #define HEATER_3_USES_AD595
495
+#endif
488 496
 #if TEMP_SENSOR_BED == -1
489 497
   #define BED_USES_AD595
490 498
 #endif
@@ -503,6 +511,10 @@ const unsigned int dropsegments=5; //everything with less than this number of st
503 511
   #undef HEATER_2_MINTEMP
504 512
   #undef HEATER_2_MAXTEMP
505 513
 #endif
514
+#if TEMP_SENSOR_3 == 0
515
+  #undef HEATER_3_MINTEMP
516
+  #undef HEATER_3_MAXTEMP
517
+#endif
506 518
 #if TEMP_SENSOR_BED == 0
507 519
   #undef BED_MINTEMP
508 520
   #undef BED_MAXTEMP

+ 10
- 2
Marlin/planner.cpp View File

@@ -629,13 +629,21 @@ block->steps_y = labs((target[X_AXIS]-position[X_AXIS]) - (target[Y_AXIS]-positi
629 629
     block->direction_bits |= (1<<Y_AXIS); 
630 630
   }
631 631
 #else
632
+  if (target[X_AXIS] < position[X_AXIS])
633
+  {
634
+    block->direction_bits |= (1<<X_HEAD); //AlexBorro: Save the real Extruder (head) direction in X Axis
635
+  }
636
+  if (target[Y_AXIS] < position[Y_AXIS])
637
+  {
638
+    block->direction_bits |= (1<<Y_HEAD); //AlexBorro: Save the real Extruder (head) direction in Y Axis
639
+  }
632 640
   if ((target[X_AXIS]-position[X_AXIS]) + (target[Y_AXIS]-position[Y_AXIS]) < 0)
633 641
   {
634
-    block->direction_bits |= (1<<X_AXIS); 
642
+    block->direction_bits |= (1<<X_AXIS); //AlexBorro: Motor A direction (Incorrectly implemented as X_AXIS)
635 643
   }
636 644
   if ((target[X_AXIS]-position[X_AXIS]) - (target[Y_AXIS]-position[Y_AXIS]) < 0)
637 645
   {
638
-    block->direction_bits |= (1<<Y_AXIS); 
646
+    block->direction_bits |= (1<<Y_AXIS); //AlexBorro: Motor B direction (Incorrectly implemented as Y_AXIS)
639 647
   }
640 648
 #endif
641 649
   if (target[Z_AXIS] < position[Z_AXIS])

+ 10
- 6
Marlin/stepper.cpp View File

@@ -401,10 +401,11 @@ ISR(TIMER1_COMPA_vect)
401 401
 
402 402
     // Set direction en check limit switches
403 403
     #ifndef COREXY
404
-    if ((out_bits & (1<<X_AXIS)) != 0) {   // stepping along -X axis
404
+    if ((out_bits & (1<<X_AXIS)) != 0)   // stepping along -X axis
405 405
     #else
406
-    if ((((out_bits & (1<<X_AXIS)) != 0)&&(out_bits & (1<<Y_AXIS)) != 0)) {   //-X occurs for -A and -B
406
+    if ((out_bits & (1<<X_HEAD)) != 0)   //AlexBorro: Head direction in -X axis for CoreXY bots.
407 407
     #endif
408
+    {
408 409
       CHECK_ENDSTOPS
409 410
       {
410 411
         #ifdef DUAL_X_CARRIAGE
@@ -425,7 +426,8 @@ ISR(TIMER1_COMPA_vect)
425 426
         }
426 427
       }
427 428
     }
428
-    else { // +direction
429
+    else 
430
+    { // +direction
429 431
       CHECK_ENDSTOPS
430 432
       {
431 433
         #ifdef DUAL_X_CARRIAGE
@@ -448,10 +450,11 @@ ISR(TIMER1_COMPA_vect)
448 450
     }
449 451
 
450 452
     #ifndef COREXY
451
-    if ((out_bits & (1<<Y_AXIS)) != 0) {   // -direction
453
+    if ((out_bits & (1<<Y_AXIS)) != 0)   // -direction
452 454
     #else
453
-    if ((((out_bits & (1<<X_AXIS)) != 0)&&(out_bits & (1<<Y_AXIS)) == 0)) {   // -Y occurs for -A and +B
455
+    if ((out_bits & (1<<Y_HEAD)) != 0)  //AlexBorro: Head direction in -Y axis for CoreXY bots.
454 456
     #endif
457
+    {
455 458
       CHECK_ENDSTOPS
456 459
       {
457 460
         #if defined(Y_MIN_PIN) && Y_MIN_PIN > -1
@@ -465,7 +468,8 @@ ISR(TIMER1_COMPA_vect)
465 468
         #endif
466 469
       }
467 470
     }
468
-    else { // +direction
471
+    else 
472
+    { // +direction
469 473
       CHECK_ENDSTOPS
470 474
       {
471 475
         #if defined(Y_MAX_PIN) && Y_MAX_PIN > -1

+ 7
- 5
Marlin/temperature.cpp View File

@@ -136,11 +136,11 @@ static volatile bool temp_meas_ready = false;
136 136
 
137 137
 #ifdef PIDTEMP
138 138
 #ifdef PID_PARAMS_PER_EXTRUDER
139
-  float Kp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Kp, DEFAULT_Kp, DEFAULT_Kp);
140
-  float Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Ki*PID_dT, DEFAULT_Ki*PID_dT, DEFAULT_Ki*PID_dT);
141
-  float Kd[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Kd / PID_dT, DEFAULT_Kd / PID_dT, DEFAULT_Kd / PID_dT);
139
+  float Kp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Kp, DEFAULT_Kp, DEFAULT_Kp, DEFAULT_Kp);
140
+  float Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Ki*PID_dT, DEFAULT_Ki*PID_dT, DEFAULT_Ki*PID_dT, DEFAULT_Ki*PID_dT);
141
+  float Kd[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Kd / PID_dT, DEFAULT_Kd / PID_dT, DEFAULT_Kd / PID_dT, DEFAULT_Kd / PID_dT);
142 142
   #ifdef PID_ADD_EXTRUSION_RATE
143
-    float Kc[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Kc, DEFAULT_Kc, DEFAULT_Kc);
143
+    float Kc[EXTRUDERS] = ARRAY_BY_EXTRUDERS(DEFAULT_Kc, DEFAULT_Kc, DEFAULT_Kc, DEFAULT_Kc);
144 144
   #endif // PID_ADD_EXTRUSION_RATE
145 145
 #else //PID_PARAMS_PER_EXTRUDER
146 146
   float Kp = DEFAULT_Kp;
@@ -460,13 +460,15 @@ void checkExtruderAutoFans()
460 460
   #endif 
461 461
   #if defined(EXTRUDER_2_AUTO_FAN_PIN) && EXTRUDER_2_AUTO_FAN_PIN > -1
462 462
     if (EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN 
463
+        && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN)
463 464
         && EXTRUDER_2_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN)
464 465
       setExtruderAutoFanState(EXTRUDER_2_AUTO_FAN_PIN, (fanState & 4) != 0);
465 466
   #endif
466 467
   #if defined(EXTRUDER_3_AUTO_FAN_PIN) && EXTRUDER_3_AUTO_FAN_PIN > -1
467 468
     if (EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN 
468
-        && EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN)
469 469
         && EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_0_AUTO_FAN_PIN)
470
+        && EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_1_AUTO_FAN_PIN)
471
+        && EXTRUDER_3_AUTO_FAN_PIN != EXTRUDER_2_AUTO_FAN_PIN)
470 472
       setExtruderAutoFanState(EXTRUDER_3_AUTO_FAN_PIN, (fanState & 8) != 0);
471 473
   #endif
472 474
 }

+ 19
- 6
Marlin/ultralcd.cpp View File

@@ -324,7 +324,7 @@ static void lcd_sdcard_stop()
324 324
     quickStop();
325 325
     if(SD_FINISHED_STEPPERRELEASE)
326 326
     {
327
-        enquecommand_P(PSTR(SD_FINISHED_RELEASECOMMAND));
327
+        enquecommands_P(PSTR(SD_FINISHED_RELEASECOMMAND));
328 328
     }
329 329
     autotempShutdown();
330 330
 
@@ -347,6 +347,7 @@ static void lcd_main_menu()
347 347
         MENU_ITEM(submenu, MSG_DELTA_CALIBRATE, lcd_delta_calibrate_menu);
348 348
 #endif // DELTA_CALIBRATION_MENU
349 349
     }
350
+/*JFR TEST*/            MENU_ITEM(gcode, "test multiline", PSTR("G4 S3\nM104 S50\nG4 S1\nM104 S200\nG4 S2\nM104 S0"));  // SD-card changed by user
350 351
     MENU_ITEM(submenu, MSG_CONTROL, lcd_control_menu);
351 352
 #ifdef SDSUPPORT
352 353
     if (card.cardOK)
@@ -394,8 +395,7 @@ void lcd_set_home_offsets()
394 395
     plan_set_position(0.0, 0.0, 0.0, current_position[E_AXIS]);
395 396
 
396 397
     // Audio feedback
397
-    enquecommand_P(PSTR("M300 S659 P200"));
398
-    enquecommand_P(PSTR("M300 S698 P200"));
398
+    enquecommands_P(PSTR("M300 S659 P200\nM300 S698 P200"));
399 399
     lcd_return_to_status();
400 400
 }
401 401
 
@@ -677,6 +677,13 @@ static void lcd_prepare_menu()
677 677
     }
678 678
 #endif
679 679
     MENU_ITEM(submenu, MSG_MOVE_AXIS, lcd_move_menu);
680
+		
681
+    // JFR for RMud delta printer
682
+    MENU_ITEM(gcode, "Calibrate bed", PSTR("M702\nG28\nG1 X-77.94 Y-45 Z36 F8000\nG4 S3\nM701 P0\nG1 X77.94 Y-45 Z36\nG4 S3\nM701 P1\nG1 X0 Y90 Z36\nG4 S3\nM701 P2\nM700\nG1 X0 Y0 Z100 F8000"));
683
+    MENU_ITEM(gcode, "Check level", PSTR("G28\nG1 X0 Y0 Z1 F4000\nG1 X-77.94 Y-45 Z1\nG1 X77.94 Y-45\nG1 X0 Y90\nG1 X-77.94 Y-45\nG4 S2\nG1 X-77.94 Y-45 Z0.3 F2000\nG1 X-77.94 Y-45\nG1 X77.94 Y-45\nG1 X0 Y90\nG1 X-77.94 Y-45\nG1 X0 Y0 Z0"));
684
+    MENU_ITEM(gcode, "Retract filament", PSTR("M302\nM82\nG92 E0\nG1 F4000 E-800"));
685
+    MENU_ITEM(gcode, "Insert filament", PSTR("M302\nM82\nG92 E0\nG1 F4000 E60"));
686
+    MENU_ITEM(gcode, "Finalize filament", PSTR("G1 F4000 E790"));
680 687
     END_MENU();
681 688
 }
682 689
 
@@ -1148,7 +1155,7 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01)
1148 1155
     lcd_move_y();
1149 1156
 	}
1150 1157
 	static void reprapworld_keypad_move_home() {
1151
-		enquecommand_P((PSTR("G28"))); // move all axis home
1158
+		enquecommands_P((PSTR("G28"))); // move all axis home
1152 1159
 	}
1153 1160
 #endif
1154 1161
 
@@ -1164,7 +1171,13 @@ static void lcd_quick_feedback()
1164 1171
 /** Menu action functions **/
1165 1172
 static void menu_action_back(menuFunc_t data) { lcd_goto_menu(data); }
1166 1173
 static void menu_action_submenu(menuFunc_t data) { lcd_goto_menu(data); }
1167
-static void menu_action_gcode(const char* pgcode) { enquecommand_P(pgcode); }
1174
+
1175
+static void menu_action_gcode(const char* pgcode)
1176
+{
1177
+    enquecommands_P(pgcode);
1178
+}
1179
+
1180
+
1168 1181
 static void menu_action_function(menuFunc_t data) { (*data)(); }
1169 1182
 static void menu_action_sdfile(const char* filename, char* longFilename)
1170 1183
 {
@@ -1174,7 +1187,7 @@ static void menu_action_sdfile(const char* filename, char* longFilename)
1174 1187
     for(c = &cmd[4]; *c; c++)
1175 1188
         *c = tolower(*c);
1176 1189
     enquecommand(cmd);
1177
-    enquecommand_P(PSTR("M24"));
1190
+    enquecommands_P(PSTR("M24"));
1178 1191
     lcd_return_to_status();
1179 1192
 }
1180 1193
 static void menu_action_sddirectory(const char* filename, char* longFilename)

Loading…
Cancel
Save