Browse Source

Merge pull request #563 from njprossi/Marlin_v1

Improvment for delta, Honeywell thermistor table and move from panel
ErikZalm 12 years ago
parent
commit
07f029c2d5

+ 4
- 0
Marlin/Configuration.h View File

107
 #define DELTA_TOWER3_X 0.0 // back middle tower
107
 #define DELTA_TOWER3_X 0.0 // back middle tower
108
 #define DELTA_TOWER3_Y DELTA_RADIUS
108
 #define DELTA_TOWER3_Y DELTA_RADIUS
109
 
109
 
110
+// Diagonal rod squared
111
+#define DELTA_DIAGONAL_ROD_2 pow(DELTA_DIAGONAL_ROD,2)
112
+
110
 //===========================================================================
113
 //===========================================================================
111
 //=============================Thermal Settings  ============================
114
 //=============================Thermal Settings  ============================
112
 //===========================================================================
115
 //===========================================================================
124
 // 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan) (4.7k pullup)
127
 // 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan) (4.7k pullup)
125
 // 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
128
 // 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
126
 // 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
129
 // 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
130
+// 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
127
 // 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
131
 // 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
128
 // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
132
 // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
129
 // 10 is 100k RS thermistor 198-961 (4.7k pullup)
133
 // 10 is 100k RS thermistor 198-961 (4.7k pullup)

+ 5
- 0
Marlin/Configuration_adv.h View File

193
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
193
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
194
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
194
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
195
 
195
 
196
+// Feedrates for manual moves along X, Y, Z, E from panel
197
+#ifdef ULTIPANEL
198
+#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min)
199
+#endif
200
+
196
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
201
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
197
 #define DEFAULT_MINSEGMENTTIME        20000
202
 #define DEFAULT_MINSEGMENTTIME        20000
198
 
203
 

+ 3
- 3
Marlin/Marlin_main.cpp View File

2254
 #ifdef DELTA
2254
 #ifdef DELTA
2255
 void calculate_delta(float cartesian[3])
2255
 void calculate_delta(float cartesian[3])
2256
 {
2256
 {
2257
-  delta[X_AXIS] = sqrt(sq(DELTA_DIAGONAL_ROD)
2257
+  delta[X_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2
2258
                        - sq(DELTA_TOWER1_X-cartesian[X_AXIS])
2258
                        - sq(DELTA_TOWER1_X-cartesian[X_AXIS])
2259
                        - sq(DELTA_TOWER1_Y-cartesian[Y_AXIS])
2259
                        - sq(DELTA_TOWER1_Y-cartesian[Y_AXIS])
2260
                        ) + cartesian[Z_AXIS];
2260
                        ) + cartesian[Z_AXIS];
2261
-  delta[Y_AXIS] = sqrt(sq(DELTA_DIAGONAL_ROD)
2261
+  delta[Y_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2
2262
                        - sq(DELTA_TOWER2_X-cartesian[X_AXIS])
2262
                        - sq(DELTA_TOWER2_X-cartesian[X_AXIS])
2263
                        - sq(DELTA_TOWER2_Y-cartesian[Y_AXIS])
2263
                        - sq(DELTA_TOWER2_Y-cartesian[Y_AXIS])
2264
                        ) + cartesian[Z_AXIS];
2264
                        ) + cartesian[Z_AXIS];
2265
-  delta[Z_AXIS] = sqrt(sq(DELTA_DIAGONAL_ROD)
2265
+  delta[Z_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2
2266
                        - sq(DELTA_TOWER3_X-cartesian[X_AXIS])
2266
                        - sq(DELTA_TOWER3_X-cartesian[X_AXIS])
2267
                        - sq(DELTA_TOWER3_Y-cartesian[Y_AXIS])
2267
                        - sq(DELTA_TOWER3_Y-cartesian[Y_AXIS])
2268
                        ) + cartesian[Z_AXIS];
2268
                        ) + cartesian[Z_AXIS];

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

195
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
195
 #define DEFAULT_MINIMUMFEEDRATE       0.0     // minimum feedrate
196
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
196
 #define DEFAULT_MINTRAVELFEEDRATE     0.0
197
 
197
 
198
+// Feedrates for manual moves along X, Y, Z, E from panel
199
+#ifdef ULTIPANEL
200
+#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60}  // set the speeds for manual moves (mm/min)
201
+#endif
202
+
198
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
203
 // minimum time in microseconds that a movement needs to take if the buffer is emptied.
199
 #define DEFAULT_MINSEGMENTTIME        20000
204
 #define DEFAULT_MINSEGMENTTIME        20000
200
 
205
 

+ 152
- 0
Marlin/thermistortables.h View File

314
    {1023*OVERSAMPLENR, 0}  //to allow internal 0 degrees C
314
    {1023*OVERSAMPLENR, 0}  //to allow internal 0 degrees C
315
 };
315
 };
316
 #endif
316
 #endif
317
+
318
+#if (THERMISTORHEATER_0 == 71) || (THERMISTORHEATER_1 == 71) || (THERMISTORHEATER_2 == 71) || (THERMISTORBED == 71) // 100k Honeywell 135-104LAF-J01
319
+// R0 = 100000 Ohm
320
+// T0 = 25 °C
321
+// Beta = 3974
322
+// R1 = 0 Ohm
323
+// R2 = 4700 Ohm
324
+const short temptable_71[][2] PROGMEM = {
325
+   {35*OVERSAMPLENR, 300},
326
+   {51*OVERSAMPLENR, 270},
327
+   {54*OVERSAMPLENR, 265},
328
+   {58*OVERSAMPLENR, 260},
329
+   {59*OVERSAMPLENR, 258},
330
+   {61*OVERSAMPLENR, 256},
331
+   {63*OVERSAMPLENR, 254},
332
+   {64*OVERSAMPLENR, 252},
333
+   {66*OVERSAMPLENR, 250},
334
+   {67*OVERSAMPLENR, 249},
335
+   {68*OVERSAMPLENR, 248},
336
+   {69*OVERSAMPLENR, 247},
337
+   {70*OVERSAMPLENR, 246},
338
+   {71*OVERSAMPLENR, 245},
339
+   {72*OVERSAMPLENR, 244},
340
+   {73*OVERSAMPLENR, 243},
341
+   {74*OVERSAMPLENR, 242},
342
+   {75*OVERSAMPLENR, 241},
343
+   {76*OVERSAMPLENR, 240},
344
+   {77*OVERSAMPLENR, 239},
345
+   {78*OVERSAMPLENR, 238},
346
+   {79*OVERSAMPLENR, 237},
347
+   {80*OVERSAMPLENR, 236},
348
+   {81*OVERSAMPLENR, 235},
349
+   {82*OVERSAMPLENR, 234},
350
+   {84*OVERSAMPLENR, 233},
351
+   {85*OVERSAMPLENR, 232},
352
+   {86*OVERSAMPLENR, 231},
353
+   {87*OVERSAMPLENR, 230},
354
+   {89*OVERSAMPLENR, 229},
355
+   {90*OVERSAMPLENR, 228},
356
+   {91*OVERSAMPLENR, 227},
357
+   {92*OVERSAMPLENR, 226},
358
+   {94*OVERSAMPLENR, 225},
359
+   {95*OVERSAMPLENR, 224},
360
+   {97*OVERSAMPLENR, 223},
361
+   {98*OVERSAMPLENR, 222},
362
+   {99*OVERSAMPLENR, 221},
363
+   {101*OVERSAMPLENR, 220},
364
+   {102*OVERSAMPLENR, 219},
365
+   {104*OVERSAMPLENR, 218},
366
+   {106*OVERSAMPLENR, 217},
367
+   {107*OVERSAMPLENR, 216},
368
+   {109*OVERSAMPLENR, 215},
369
+   {110*OVERSAMPLENR, 214},
370
+   {112*OVERSAMPLENR, 213},
371
+   {114*OVERSAMPLENR, 212},
372
+   {115*OVERSAMPLENR, 211},
373
+   {117*OVERSAMPLENR, 210},
374
+   {119*OVERSAMPLENR, 209},
375
+   {121*OVERSAMPLENR, 208},
376
+   {123*OVERSAMPLENR, 207},
377
+   {125*OVERSAMPLENR, 206},
378
+   {126*OVERSAMPLENR, 205},
379
+   {128*OVERSAMPLENR, 204},
380
+   {130*OVERSAMPLENR, 203},
381
+   {132*OVERSAMPLENR, 202},
382
+   {134*OVERSAMPLENR, 201},
383
+   {136*OVERSAMPLENR, 200},
384
+   {139*OVERSAMPLENR, 199},
385
+   {141*OVERSAMPLENR, 198},
386
+   {143*OVERSAMPLENR, 197},
387
+   {145*OVERSAMPLENR, 196},
388
+   {147*OVERSAMPLENR, 195},
389
+   {150*OVERSAMPLENR, 194},
390
+   {152*OVERSAMPLENR, 193},
391
+   {154*OVERSAMPLENR, 192},
392
+   {157*OVERSAMPLENR, 191},
393
+   {159*OVERSAMPLENR, 190},
394
+   {162*OVERSAMPLENR, 189},
395
+   {164*OVERSAMPLENR, 188},
396
+   {167*OVERSAMPLENR, 187},
397
+   {170*OVERSAMPLENR, 186},
398
+   {172*OVERSAMPLENR, 185},
399
+   {175*OVERSAMPLENR, 184},
400
+   {178*OVERSAMPLENR, 183},
401
+   {181*OVERSAMPLENR, 182},
402
+   {184*OVERSAMPLENR, 181},
403
+   {187*OVERSAMPLENR, 180},
404
+   {190*OVERSAMPLENR, 179},
405
+   {193*OVERSAMPLENR, 178},
406
+   {196*OVERSAMPLENR, 177},
407
+   {199*OVERSAMPLENR, 176},
408
+   {202*OVERSAMPLENR, 175},
409
+   {205*OVERSAMPLENR, 174},
410
+   {208*OVERSAMPLENR, 173},
411
+   {212*OVERSAMPLENR, 172},
412
+   {215*OVERSAMPLENR, 171},
413
+   {219*OVERSAMPLENR, 170},
414
+   {237*OVERSAMPLENR, 165},
415
+   {256*OVERSAMPLENR, 160},
416
+   {300*OVERSAMPLENR, 150},
417
+   {351*OVERSAMPLENR, 140},
418
+   {470*OVERSAMPLENR, 120},
419
+   {504*OVERSAMPLENR, 115},
420
+   {538*OVERSAMPLENR, 110},
421
+   {552*OVERSAMPLENR, 108},
422
+   {566*OVERSAMPLENR, 106},
423
+   {580*OVERSAMPLENR, 104},
424
+   {594*OVERSAMPLENR, 102},
425
+   {608*OVERSAMPLENR, 100},
426
+   {622*OVERSAMPLENR, 98},
427
+   {636*OVERSAMPLENR, 96},
428
+   {650*OVERSAMPLENR, 94},
429
+   {664*OVERSAMPLENR, 92},
430
+   {678*OVERSAMPLENR, 90},
431
+   {712*OVERSAMPLENR, 85},
432
+   {745*OVERSAMPLENR, 80},
433
+   {758*OVERSAMPLENR, 78},
434
+   {770*OVERSAMPLENR, 76},
435
+   {783*OVERSAMPLENR, 74},
436
+   {795*OVERSAMPLENR, 72},
437
+   {806*OVERSAMPLENR, 70},
438
+   {818*OVERSAMPLENR, 68},
439
+   {829*OVERSAMPLENR, 66},
440
+   {840*OVERSAMPLENR, 64},
441
+   {850*OVERSAMPLENR, 62},
442
+   {860*OVERSAMPLENR, 60},
443
+   {870*OVERSAMPLENR, 58},
444
+   {879*OVERSAMPLENR, 56},
445
+   {888*OVERSAMPLENR, 54},
446
+   {897*OVERSAMPLENR, 52},
447
+   {905*OVERSAMPLENR, 50},
448
+   {924*OVERSAMPLENR, 45},
449
+   {940*OVERSAMPLENR, 40},
450
+   {955*OVERSAMPLENR, 35},
451
+   {967*OVERSAMPLENR, 30},
452
+   {970*OVERSAMPLENR, 29},
453
+   {972*OVERSAMPLENR, 28},
454
+   {974*OVERSAMPLENR, 27},
455
+   {976*OVERSAMPLENR, 26},
456
+   {978*OVERSAMPLENR, 25},
457
+   {980*OVERSAMPLENR, 24},
458
+   {982*OVERSAMPLENR, 23},
459
+   {984*OVERSAMPLENR, 22},
460
+   {985*OVERSAMPLENR, 21},
461
+   {987*OVERSAMPLENR, 20},
462
+   {995*OVERSAMPLENR, 15},
463
+   {1001*OVERSAMPLENR, 10},
464
+   {1006*OVERSAMPLENR, 5},
465
+   {1010*OVERSAMPLENR, 0},
466
+};
467
+#endif
468
+
317
 #if (THERMISTORHEATER_0 == 8) || (THERMISTORHEATER_1 == 8) || (THERMISTORHEATER_2 == 8) || (THERMISTORBED == 8)
469
 #if (THERMISTORHEATER_0 == 8) || (THERMISTORHEATER_1 == 8) || (THERMISTORHEATER_2 == 8) || (THERMISTORBED == 8)
318
 // 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
470
 // 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
319
 const short temptable_8[][2] PROGMEM = {
471
 const short temptable_8[][2] PROGMEM = {

+ 10
- 8
Marlin/ultralcd.cpp View File

18
 int absPreheatHotendTemp;
18
 int absPreheatHotendTemp;
19
 int absPreheatHPBTemp;
19
 int absPreheatHPBTemp;
20
 int absPreheatFanSpeed;
20
 int absPreheatFanSpeed;
21
+
22
+static float manual_feedrate[] = MANUAL_FEEDRATE;
21
 /* !Configuration settings */
23
 /* !Configuration settings */
22
 
24
 
23
 //Function pointer to menu functions.
25
 //Function pointer to menu functions.
377
         encoderPosition = 0;
379
         encoderPosition = 0;
378
         #ifdef DELTA
380
         #ifdef DELTA
379
         calculate_delta(current_position);
381
         calculate_delta(current_position);
380
-        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], 600, active_extruder);
382
+        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[X_AXIS]/60, active_extruder);
381
         #else
383
         #else
382
-        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600, active_extruder);
384
+        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[X_AXIS]/60, active_extruder);
383
         #endif
385
         #endif
384
         lcdDrawUpdate = 1;
386
         lcdDrawUpdate = 1;
385
     }
387
     }
406
         encoderPosition = 0;
408
         encoderPosition = 0;
407
         #ifdef DELTA
409
         #ifdef DELTA
408
         calculate_delta(current_position);
410
         calculate_delta(current_position);
409
-        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], 600, active_extruder);
411
+        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[Y_AXIS]/60, active_extruder);
410
         #else
412
         #else
411
-        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600, active_extruder);
413
+        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[Y_AXIS]/60, active_extruder);
412
         #endif
414
         #endif
413
         lcdDrawUpdate = 1;
415
         lcdDrawUpdate = 1;
414
     }
416
     }
435
         encoderPosition = 0;
437
         encoderPosition = 0;
436
         #ifdef DELTA
438
         #ifdef DELTA
437
         calculate_delta(current_position);
439
         calculate_delta(current_position);
438
-        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS]/60, active_extruder);
440
+        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder);
439
         #else
441
         #else
440
-        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[Z_AXIS]/60, active_extruder);
442
+        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[Z_AXIS]/60, active_extruder);
441
         #endif
443
         #endif
442
         lcdDrawUpdate = 1;
444
         lcdDrawUpdate = 1;
443
     }
445
     }
460
         encoderPosition = 0;
462
         encoderPosition = 0;
461
         #ifdef DELTA
463
         #ifdef DELTA
462
         calculate_delta(current_position);
464
         calculate_delta(current_position);
463
-        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], 20, active_extruder);
465
+        plan_buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS], manual_feedrate[E_AXIS]/60, active_extruder);
464
         #else
466
         #else
465
-        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 20, active_extruder);
467
+        plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], manual_feedrate[E_AXIS]/60, active_extruder);
466
         #endif
468
         #endif
467
         lcdDrawUpdate = 1;
469
         lcdDrawUpdate = 1;
468
     }
470
     }

Loading…
Cancel
Save