Browse Source

Styling adjustments (PR#2668 & PR#2670)

Keep "astyled" reformatting
Scott Lahteine 8 years ago
parent
commit
0c7f7ebcfb
100 changed files with 10256 additions and 10658 deletions
  1. 12
    12
      Marlin/Conditionals.h
  2. 185
    210
      Marlin/M100_Free_Mem_Chk.cpp
  3. 13
    13
      Marlin/Marlin.h
  4. 20
    18
      Marlin/MarlinSerial.cpp
  5. 15
    16
      Marlin/MarlinSerial.h
  6. 342
    370
      Marlin/Marlin_main.cpp
  7. 299
    299
      Marlin/SanityCheck.h
  8. 159
    173
      Marlin/Sd2Card.cpp
  9. 23
    23
      Marlin/Sd2Card.h
  10. 55
    55
      Marlin/Sd2PinMap.h
  11. 136
    132
      Marlin/SdBaseFile.cpp
  12. 27
    27
      Marlin/SdBaseFile.h
  13. 92
    92
      Marlin/SdFatConfig.h
  14. 19
    19
      Marlin/SdFatStructs.h
  15. 5
    5
      Marlin/SdFatUtil.cpp
  16. 2
    2
      Marlin/SdFatUtil.h
  17. 4
    6
      Marlin/SdFile.cpp
  18. 2
    2
      Marlin/SdFile.h
  19. 7
    7
      Marlin/SdInfo.h
  20. 53
    47
      Marlin/SdVolume.cpp
  21. 11
    7
      Marlin/SdVolume.h
  22. 1
    1
      Marlin/blinkm.cpp
  23. 1
    1
      Marlin/buzzer.h
  24. 27
    28
      Marlin/cardreader.cpp
  25. 1
    1
      Marlin/cardreader.h
  26. 11
    11
      Marlin/configuration_store.cpp
  27. 5
    6
      Marlin/digipot_mcp4451.cpp
  28. 206
    207
      Marlin/dogm_bitmaps.h
  29. 145
    144
      Marlin/dogm_font_data_6x9_marlin.h
  30. 159
    158
      Marlin/dogm_font_data_HD44780_C.h
  31. 157
    156
      Marlin/dogm_font_data_HD44780_J.h
  32. 191
    190
      Marlin/dogm_font_data_HD44780_W.h
  33. 163
    163
      Marlin/dogm_font_data_ISO10646_1.h
  34. 161
    161
      Marlin/dogm_font_data_ISO10646_5_Cyrillic.h
  35. 258
    257
      Marlin/dogm_font_data_ISO10646_CN.h
  36. 161
    160
      Marlin/dogm_font_data_ISO10646_Kana.h
  37. 10
    9
      Marlin/dogm_font_data_Marlin_symbols.h
  38. 36
    36
      Marlin/dogm_lcd_implementation.h
  39. 3918
    3918
      Marlin/fastio.h
  40. 2
    2
      Marlin/fonts/README.fonts
  41. 3
    3
      Marlin/language.h
  42. 5
    5
      Marlin/language_an.h
  43. 5
    5
      Marlin/language_bg.h
  44. 5
    5
      Marlin/language_ca.h
  45. 127
    127
      Marlin/language_cn.h
  46. 5
    5
      Marlin/language_da.h
  47. 5
    5
      Marlin/language_de.h
  48. 158
    161
      Marlin/language_en.h
  49. 5
    5
      Marlin/language_es.h
  50. 5
    5
      Marlin/language_eu.h
  51. 5
    5
      Marlin/language_fi.h
  52. 5
    5
      Marlin/language_fr.h
  53. 5
    5
      Marlin/language_it.h
  54. 5
    5
      Marlin/language_kana.h
  55. 5
    5
      Marlin/language_kana_utf8.h
  56. 5
    5
      Marlin/language_nl.h
  57. 5
    5
      Marlin/language_pl.h
  58. 6
    6
      Marlin/language_pt-br.h
  59. 5
    5
      Marlin/language_pt.h
  60. 5
    5
      Marlin/language_ru.h
  61. 1
    1
      Marlin/mesh_bed_leveling.cpp
  62. 13
    13
      Marlin/mesh_bed_leveling.h
  63. 9
    9
      Marlin/pins.h
  64. 1
    1
      Marlin/pins_5DPRINT.h
  65. 17
    17
      Marlin/pins_AZTEEG_X3_PRO.h
  66. 1
    1
      Marlin/pins_BRAINWAVE_PRO.h
  67. 2
    2
      Marlin/pins_GEN3_PLUS.h
  68. 1
    1
      Marlin/pins_GEN7_CUSTOM.h
  69. 20
    20
      Marlin/pins_MEGACONTROLLER.h
  70. 6
    6
      Marlin/pins_MEGATRONICS_3.h
  71. 1
    1
      Marlin/pins_MINIRAMBO.h
  72. 19
    19
      Marlin/pins_PRINTRBOARD.h
  73. 17
    17
      Marlin/pins_RAMBO.h
  74. 20
    20
      Marlin/pins_RAMPS_13.h
  75. 4
    4
      Marlin/pins_SANGUINOLOLU_11.h
  76. 1
    1
      Marlin/pins_SAV_MKI.h
  77. 19
    19
      Marlin/pins_TEENSY2.h
  78. 2
    2
      Marlin/pins_TEENSYLU.h
  79. 41
    43
      Marlin/planner.cpp
  80. 14
    14
      Marlin/planner.h
  81. 366
    702
      Marlin/qr_solve.cpp
  82. 16
    16
      Marlin/qr_solve.h
  83. 15
    15
      Marlin/servo.cpp
  84. 2
    2
      Marlin/servo.h
  85. 128
    128
      Marlin/speed_lookuptable.h
  86. 179
    180
      Marlin/stepper.cpp
  87. 8
    8
      Marlin/stepper.h
  88. 97
    99
      Marlin/stepper_indirection.cpp
  89. 318
    318
      Marlin/stepper_indirection.h
  90. 94
    91
      Marlin/temperature.cpp
  91. 16
    16
      Marlin/temperature.h
  92. 969
    969
      Marlin/thermistortables.h
  93. 119
    115
      Marlin/ultralcd.cpp
  94. 37
    37
      Marlin/ultralcd.h
  95. 90
    90
      Marlin/ultralcd_implementation_hitachi_HD44780.h
  96. 58
    71
      Marlin/ultralcd_st7920_u8glib_rrd.h
  97. 3
    3
      Marlin/utf_mapper.h
  98. 43
    43
      Marlin/vector_3.cpp
  99. 21
    23
      Marlin/vector_3.h
  100. 0
    0
      Marlin/watchdog.cpp

+ 12
- 12
Marlin/Conditionals.h View File

@@ -74,10 +74,10 @@
74 74
   #endif
75 75
 
76 76
   #if ENABLED(MINIPANEL)
77
-   #define DOGLCD
78
-   #define ULTIPANEL
79
-   #define NEWPANEL
80
-   #define DEFAULT_LCD_CONTRAST 17
77
+    #define DOGLCD
78
+    #define ULTIPANEL
79
+    #define NEWPANEL
80
+    #define DEFAULT_LCD_CONTRAST 17
81 81
   #endif
82 82
 
83 83
   /**
@@ -135,9 +135,9 @@
135 135
   // https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
136 136
 
137 137
   #if ENABLED(SAV_3DLCD)
138
-     #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister
139
-     #define ULTIPANEL
140
-     #define NEWPANEL
138
+    #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister
139
+    #define ULTIPANEL
140
+    #define NEWPANEL
141 141
   #endif
142 142
 
143 143
   #if ENABLED(ULTIPANEL)
@@ -205,7 +205,7 @@
205 205
     #endif
206 206
     #if ENABLED(U8GLIB_SSD1306)
207 207
       #undef HAS_LCD_CONTRAST
208
-    #endif  
208
+    #endif
209 209
   #endif
210 210
 
211 211
 #else // CONFIGURATION_LCD
@@ -285,13 +285,13 @@
285 285
 
286 286
   #define SERVO_LEVELING (defined(AUTO_BED_LEVELING_FEATURE) && defined(Z_ENDSTOP_SERVO_NR))
287 287
 
288
-   /**
289
-    * Sled Options
290
-    */ 
288
+  /**
289
+   * Sled Options
290
+   */
291 291
   #if ENABLED(Z_PROBE_SLED)
292 292
     #define Z_SAFE_HOMING
293 293
   #endif
294
-  
294
+
295 295
   /**
296 296
    * MAX_STEP_FREQUENCY differs for TOSHIBA
297 297
    */

+ 185
- 210
Marlin/M100_Free_Mem_Chk.cpp View File

@@ -1,5 +1,5 @@
1
-#define M100_FREE_MEMORY_DUMPER			// Comment out to remove Dump sub-command
2
-#define M100_FREE_MEMORY_CORRUPTOR		// Comment out to remove Corrupt sub-command
1
+#define M100_FREE_MEMORY_DUMPER     // Comment out to remove Dump sub-command
2
+#define M100_FREE_MEMORY_CORRUPTOR    // Comment out to remove Corrupt sub-command
3 3
 
4 4
 
5 5
 // M100 Free Memory Watcher
@@ -7,14 +7,14 @@
7 7
 // This code watches the free memory block between the bottom of the heap and the top of the stack.
8 8
 // This memory block is initialized and watched via the M100 command.
9 9
 //
10
-// M100 I	Initializes the free memory block and prints vitals statistics about the area
11
-// M100 F	Identifies how much of the free memory block remains free and unused.  It also
12
-// 		detects and reports any corruption within the free memory block that may have
13
-// 		happened due to errant firmware.
14
-// M100 D	Does a hex display of the free memory block along with a flag for any errant
15
-// 		data that does not match the expected value.
16
-// M100 C x	Corrupts x locations within the free memory block.   This is useful to check the
17
-// 		correctness of the M100 F and M100 D commands.
10
+// M100 I Initializes the free memory block and prints vitals statistics about the area
11
+// M100 F Identifies how much of the free memory block remains free and unused.  It also
12
+//    detects and reports any corruption within the free memory block that may have
13
+//    happened due to errant firmware.
14
+// M100 D Does a hex display of the free memory block along with a flag for any errant
15
+//    data that does not match the expected value.
16
+// M100 C x Corrupts x locations within the free memory block.   This is useful to check the
17
+//    correctness of the M100 F and M100 D commands.
18 18
 //
19 19
 // Initial version by Roxy-3DPrintBoard
20 20
 //
@@ -24,7 +24,7 @@
24 24
 #include "Marlin.h"
25 25
 
26 26
 #if ENABLED(M100_FREE_MEMORY_WATCHER)
27
-extern void *__brkval;
27
+extern void* __brkval;
28 28
 extern size_t  __heap_start, __heap_end, __flp;
29 29
 
30 30
 
@@ -34,12 +34,12 @@ extern size_t  __heap_start, __heap_end, __flp;
34 34
 
35 35
 float code_value();
36 36
 long code_value_long();
37
-bool code_seen(char );
38
-void serial_echopair_P(const char *, float );
39
-void serial_echopair_P(const char *, double );
40
-void serial_echopair_P(const char *, unsigned long );
41
-void serial_echopair_P(const char *, int );
42
-void serial_echopair_P(const char *, long );
37
+bool code_seen(char);
38
+void serial_echopair_P(const char*, float);
39
+void serial_echopair_P(const char*, double);
40
+void serial_echopair_P(const char*, unsigned long);
41
+void serial_echopair_P(const char*, int);
42
+void serial_echopair_P(const char*, long);
43 43
 
44 44
 
45 45
 
@@ -48,188 +48,168 @@ void serial_echopair_P(const char *, long );
48 48
 // Utility functions used by M100 to get its work done.
49 49
 //
50 50
 
51
-unsigned char *top_of_stack();
52
-void prt_hex_nibble( unsigned int );
53
-void prt_hex_byte(unsigned int );
54
-void prt_hex_word(unsigned int );
55
-int how_many_E5s_are_here( unsigned char *);
51
+unsigned char* top_of_stack();
52
+void prt_hex_nibble(unsigned int);
53
+void prt_hex_byte(unsigned int);
54
+void prt_hex_word(unsigned int);
55
+int how_many_E5s_are_here(unsigned char*);
56 56
 
57 57
 
58 58
 
59 59
 
60
-void gcode_M100()
61
-{
62
-static int m100_not_initialized=1;
63
-unsigned char *sp, *ptr;
64
-int i, j, n;
65
-
66
-//
67
-// M100 D dumps the free memory block from __brkval to the stack pointer.
68
-// malloc() eats memory from the start of the block and the stack grows
69
-// up from the bottom of the block.    Solid 0xE5's indicate nothing has
70
-// used that memory yet.   There should not be anything but 0xE5's within
71
-// the block of 0xE5's.  If there is, that would indicate memory corruption
72
-// probably caused by bad pointers.  Any unexpected values will be flagged in
73
-// the right hand column to help spotting them.
74
-//
75
-
60
+void gcode_M100() {
61
+  static int m100_not_initialized = 1;
62
+  unsigned char* sp, *ptr;
63
+  int i, j, n;
64
+  //
65
+  // M100 D dumps the free memory block from __brkval to the stack pointer.
66
+  // malloc() eats memory from the start of the block and the stack grows
67
+  // up from the bottom of the block.    Solid 0xE5's indicate nothing has
68
+  // used that memory yet.   There should not be anything but 0xE5's within
69
+  // the block of 0xE5's.  If there is, that would indicate memory corruption
70
+  // probably caused by bad pointers.  Any unexpected values will be flagged in
71
+  // the right hand column to help spotting them.
72
+  //
76 73
 #if ENABLED(M100_FREE_MEMORY_DUMPER) // Disable to remove Dump sub-command
77
-	if ( code_seen('D') ) {
78
- 		ptr = (unsigned char *) __brkval;
79
-
80
-//
81
-// We want to start and end the dump on a nice 16 byte boundry even though
82
-// the values we are using are not 16 byte aligned.
83
-//
84
-  		SERIAL_ECHOPGM("\n__brkval : ");
85
-		prt_hex_word( (unsigned int) ptr );
86
-  		ptr = (unsigned char *) ((unsigned long) ptr & 0xfff0);
87
-
88
-		sp = top_of_stack();
89
-  		SERIAL_ECHOPGM("\nStack Pointer : ");
90
-		prt_hex_word( (unsigned int) sp );
91
-  		SERIAL_ECHOPGM("\n");
92
-
93
-		sp = (unsigned char *) ((unsigned long) sp | 0x000f);
94
-		n = sp - ptr;
95
-//
96
-// This is the main loop of the Dump command.
97
-//
98
-		while ( ptr < sp ) {
99
-			prt_hex_word( (unsigned int) ptr);	// Print the address
100
-  			SERIAL_ECHOPGM(":");
101
-			for(i=0; i<16; i++) {			// and 16 data bytes
102
-				prt_hex_byte( *(ptr+i));
103
-  				SERIAL_ECHOPGM(" ");
104
-				delay(2);
105
-			}
106
-
107
-  			SERIAL_ECHO("|");   			// now show where non 0xE5's are
108
-			for(i=0; i<16; i++) {
109
-				delay(2);
110
-				if ( *(ptr+i)==0xe5)
111
-  					SERIAL_ECHOPGM(" ");
112
-				else
113
-  					SERIAL_ECHOPGM("?");
114
-			}
115
-  			SERIAL_ECHO("\n");
116
-
117
-			ptr += 16;
118
-			delay(2);
119
-		}
120
-  		SERIAL_ECHOLNPGM("Done.\n");
121
-		return;
122
-	}
74
+  if (code_seen('D')) {
75
+    ptr = (unsigned char*) __brkval;
76
+    //
77
+    // We want to start and end the dump on a nice 16 byte boundry even though
78
+    // the values we are using are not 16 byte aligned.
79
+    //
80
+    SERIAL_ECHOPGM("\n__brkval : ");
81
+    prt_hex_word((unsigned int) ptr);
82
+    ptr = (unsigned char*)((unsigned long) ptr & 0xfff0);
83
+    sp = top_of_stack();
84
+    SERIAL_ECHOPGM("\nStack Pointer : ");
85
+    prt_hex_word((unsigned int) sp);
86
+    SERIAL_ECHOPGM("\n");
87
+    sp = (unsigned char*)((unsigned long) sp | 0x000f);
88
+    n = sp - ptr;
89
+    //
90
+    // This is the main loop of the Dump command.
91
+    //
92
+    while (ptr < sp) {
93
+      prt_hex_word((unsigned int) ptr); // Print the address
94
+      SERIAL_ECHOPGM(":");
95
+      for (i = 0; i < 16; i++) {      // and 16 data bytes
96
+        prt_hex_byte(*(ptr + i));
97
+        SERIAL_ECHOPGM(" ");
98
+        delay(2);
99
+      }
100
+      SERIAL_ECHO("|");         // now show where non 0xE5's are
101
+      for (i = 0; i < 16; i++) {
102
+        delay(2);
103
+        if (*(ptr + i) == 0xe5)
104
+          SERIAL_ECHOPGM(" ");
105
+        else
106
+          SERIAL_ECHOPGM("?");
107
+      }
108
+      SERIAL_ECHO("\n");
109
+      ptr += 16;
110
+      delay(2);
111
+    }
112
+    SERIAL_ECHOLNPGM("Done.\n");
113
+    return;
114
+  }
123 115
 #endif
124
-
125
-//
126
-// M100 F   requests the code to return the number of free bytes in the memory pool along with
127
-// other vital statistics that define the memory pool.
128
-//
129
-	if ( code_seen('F') ) {
130
-	int max_addr = (int) __brkval;
131
-	int max_cnt = 0;
132
-	int block_cnt = 0;
133
-  		ptr = (unsigned char *) __brkval;
134
-		sp = top_of_stack();
135
-		n = sp - ptr;
136
-
137
-// Scan through the range looking for the biggest block of 0xE5's we can find
138
-
139
-		for(i=0; i<n; i++) {
140
-			if ( *(ptr+i) == (unsigned char) 0xe5) {
141
-				j = how_many_E5s_are_here( (unsigned char *) ptr+i );
142
-				if ( j>8) {
143
- 					SERIAL_ECHOPAIR("Found ", j );
144
- 					SERIAL_ECHOPGM(" bytes free at 0x");
145
-					prt_hex_word( (int) ptr+i );
146
- 					SERIAL_ECHOPGM("\n");
147
-					i += j;
148
-				        block_cnt++;
149
-				}
150
-				if ( j>max_cnt) {			// We don't do anything with this information yet
151
-					max_cnt  = j;			// but we do know where the biggest free memory block is.
152
-					max_addr = (int) ptr+i;
153
-				}
154
-			}
155
-		}
156
-		if (block_cnt>1)
157
-  			SERIAL_ECHOLNPGM("\nMemory Corruption detected in free memory area.\n");
158
-
159
-  		SERIAL_ECHO("\nDone.\n");
160
-		return;
161
-	}
162
-//
163
-// M100 C x  Corrupts x locations in the free memory pool and reports the locations of the corruption.
164
-// This is useful to check the correctness of the M100 D and the M100 F commands.
165
-//
116
+  //
117
+  // M100 F   requests the code to return the number of free bytes in the memory pool along with
118
+  // other vital statistics that define the memory pool.
119
+  //
120
+  if (code_seen('F')) {
121
+    int max_addr = (int) __brkval;
122
+    int max_cnt = 0;
123
+    int block_cnt = 0;
124
+    ptr = (unsigned char*) __brkval;
125
+    sp = top_of_stack();
126
+    n = sp - ptr;
127
+    // Scan through the range looking for the biggest block of 0xE5's we can find
128
+    for (i = 0; i < n; i++) {
129
+      if (*(ptr + i) == (unsigned char) 0xe5) {
130
+        j = how_many_E5s_are_here((unsigned char*) ptr + i);
131
+        if (j > 8) {
132
+          SERIAL_ECHOPAIR("Found ", j);
133
+          SERIAL_ECHOPGM(" bytes free at 0x");
134
+          prt_hex_word((int) ptr + i);
135
+          SERIAL_ECHOPGM("\n");
136
+          i += j;
137
+          block_cnt++;
138
+        }
139
+        if (j > max_cnt) {      // We don't do anything with this information yet
140
+          max_cnt  = j;     // but we do know where the biggest free memory block is.
141
+          max_addr = (int) ptr + i;
142
+        }
143
+      }
144
+    }
145
+    if (block_cnt > 1)
146
+      SERIAL_ECHOLNPGM("\nMemory Corruption detected in free memory area.\n");
147
+    SERIAL_ECHO("\nDone.\n");
148
+    return;
149
+  }
150
+  //
151
+  // M100 C x  Corrupts x locations in the free memory pool and reports the locations of the corruption.
152
+  // This is useful to check the correctness of the M100 D and the M100 F commands.
153
+  //
166 154
 #if ENABLED(M100_FREE_MEMORY_CORRUPTOR)
167
-	if ( code_seen('C') ) {
168
-		int x;			// x gets the # of locations to corrupt within the memory pool
169
-		x = code_value();
170
-  		SERIAL_ECHOLNPGM("Corrupting free memory block.\n");
171
-  		ptr = (unsigned char *) __brkval;
172
-  		SERIAL_ECHOPAIR("\n__brkval : ",(long) ptr );
173
-  		ptr += 8;
174
-
175
-		sp = top_of_stack();
176
-  		SERIAL_ECHOPAIR("\nStack Pointer : ",(long) sp );
177
-  		SERIAL_ECHOLNPGM("\n");
178
-
179
-		n = sp - ptr - 64;  	// -64 just to keep us from finding interrupt activity that
180
-	       				// has altered the stack.
181
-		j = n / (x+1);
182
-		for(i=1; i<=x; i++) {
183
-			*(ptr+(i*j)) = i;
184
-  			SERIAL_ECHO("\nCorrupting address: 0x");
185
-		      	prt_hex_word( (unsigned int)  (ptr+(i*j)) );
186
-		}
187
-  		SERIAL_ECHOLNPGM("\n");
188
-		return;
189
-	}
155
+  if (code_seen('C')) {
156
+    int x;      // x gets the # of locations to corrupt within the memory pool
157
+    x = code_value();
158
+    SERIAL_ECHOLNPGM("Corrupting free memory block.\n");
159
+    ptr = (unsigned char*) __brkval;
160
+    SERIAL_ECHOPAIR("\n__brkval : ", (long) ptr);
161
+    ptr += 8;
162
+    sp = top_of_stack();
163
+    SERIAL_ECHOPAIR("\nStack Pointer : ", (long) sp);
164
+    SERIAL_ECHOLNPGM("\n");
165
+    n = sp - ptr - 64;    // -64 just to keep us from finding interrupt activity that
166
+    // has altered the stack.
167
+    j = n / (x + 1);
168
+    for (i = 1; i <= x; i++) {
169
+      *(ptr + (i * j)) = i;
170
+      SERIAL_ECHO("\nCorrupting address: 0x");
171
+      prt_hex_word((unsigned int)(ptr + (i * j)));
172
+    }
173
+    SERIAL_ECHOLNPGM("\n");
174
+    return;
175
+  }
190 176
 #endif
191
-
192
-//
193
-// M100 I    Initializes the free memory pool so it can be watched and prints vital
194
-// statistics that define the free memory pool.
195
-//
196
-	if (m100_not_initialized || code_seen('I') ) {				// If no sub-command is specified, the first time
197
-  		SERIAL_ECHOLNPGM("Initializing free memory block.\n");   	// this happens, it will Initialize.
198
-  		ptr = (unsigned char *) __brkval;				// Repeated M100 with no sub-command will not destroy the
199
-  		SERIAL_ECHOPAIR("\n__brkval : ",(long) ptr );			// state of the initialized free memory pool.
200
-  		ptr += 8;
201
-
202
-		sp = top_of_stack();
203
-  		SERIAL_ECHOPAIR("\nStack Pointer : ",(long) sp );
204
-  		SERIAL_ECHOLNPGM("\n");
205
-
206
-		n = sp - ptr - 64;  	// -64 just to keep us from finding interrupt activity that
207
-	       				// has altered the stack.
208
-
209
-  		SERIAL_ECHO( n );
210
-  		SERIAL_ECHOLNPGM(" bytes of memory initialized.\n");
211
-
212
-		for(i=0; i<n; i++)
213
-			*(ptr+i) = (unsigned char) 0xe5;
214
-
215
-		for(i=0; i<n; i++) {
216
-			if ( *(ptr+i) != (unsigned char) 0xe5 ) {
217
-  				SERIAL_ECHOPAIR("? address : ", (unsigned long) ptr+i );
218
-  				SERIAL_ECHOPAIR("=", *(ptr+i) );
219
-  				SERIAL_ECHOLNPGM("\n");
220
-			}
221
-		}
222
-		m100_not_initialized = 0;
223
-  		SERIAL_ECHOLNPGM("Done.\n");
224
-		return;
225
-	}
226
-	return;
177
+  //
178
+  // M100 I    Initializes the free memory pool so it can be watched and prints vital
179
+  // statistics that define the free memory pool.
180
+  //
181
+  if (m100_not_initialized || code_seen('I')) {       // If no sub-command is specified, the first time
182
+    SERIAL_ECHOLNPGM("Initializing free memory block.\n");    // this happens, it will Initialize.
183
+    ptr = (unsigned char*) __brkval;        // Repeated M100 with no sub-command will not destroy the
184
+    SERIAL_ECHOPAIR("\n__brkval : ", (long) ptr);     // state of the initialized free memory pool.
185
+    ptr += 8;
186
+    sp = top_of_stack();
187
+    SERIAL_ECHOPAIR("\nStack Pointer : ", (long) sp);
188
+    SERIAL_ECHOLNPGM("\n");
189
+    n = sp - ptr - 64;    // -64 just to keep us from finding interrupt activity that
190
+    // has altered the stack.
191
+    SERIAL_ECHO(n);
192
+    SERIAL_ECHOLNPGM(" bytes of memory initialized.\n");
193
+    for (i = 0; i < n; i++)
194
+      *(ptr + i) = (unsigned char) 0xe5;
195
+    for (i = 0; i < n; i++) {
196
+      if (*(ptr + i) != (unsigned char) 0xe5) {
197
+        SERIAL_ECHOPAIR("? address : ", (unsigned long) ptr + i);
198
+        SERIAL_ECHOPAIR("=", *(ptr + i));
199
+        SERIAL_ECHOLNPGM("\n");
200
+      }
201
+    }
202
+    m100_not_initialized = 0;
203
+    SERIAL_ECHOLNPGM("Done.\n");
204
+    return;
205
+  }
206
+  return;
227 207
 }
228 208
 
229 209
 // top_of_stack() returns the location of a variable on its stack frame.  The value returned is above
230 210
 // the stack once the function returns to the caller.
231 211
 
232
-unsigned char *top_of_stack() {
212
+unsigned char* top_of_stack() {
233 213
   unsigned char x;
234 214
   return &x + 1; // x is pulled on return;
235 215
 }
@@ -238,39 +218,34 @@ unsigned char *top_of_stack() {
238 218
 // 3 support routines to print hex numbers.  We can print a nibble, byte and word
239 219
 //
240 220
 
241
-void prt_hex_nibble( unsigned int n )
242
-{
243
-	if ( n <= 9 )
244
-		SERIAL_ECHO(n);
245
-	else
246
-		SERIAL_ECHO( (char) ('A'+n-10) );
247
-	delay(2);
221
+void prt_hex_nibble(unsigned int n) {
222
+  if (n <= 9)
223
+    SERIAL_ECHO(n);
224
+  else
225
+    SERIAL_ECHO((char)('A' + n - 10));
226
+  delay(2);
248 227
 }
249 228
 
250
-void prt_hex_byte(unsigned int b)
251
-{
252
-	prt_hex_nibble( ( b & 0xf0 ) >> 4 );
253
-	prt_hex_nibble(  b & 0x0f );
229
+void prt_hex_byte(unsigned int b) {
230
+  prt_hex_nibble((b & 0xf0) >> 4);
231
+  prt_hex_nibble(b & 0x0f);
254 232
 }
255 233
 
256
-void prt_hex_word(unsigned int w)
257
-{
258
-	prt_hex_byte( ( w & 0xff00 ) >> 8 );
259
-	prt_hex_byte(  w & 0x0ff );
234
+void prt_hex_word(unsigned int w) {
235
+  prt_hex_byte((w & 0xff00) >> 8);
236
+  prt_hex_byte(w & 0x0ff);
260 237
 }
261 238
 
262 239
 // how_many_E5s_are_here() is a utility function to easily find out how many 0xE5's are
263 240
 // at the specified location.  Having this logic as a function simplifies the search code.
264 241
 //
265
-int how_many_E5s_are_here( unsigned char *p)
266
-{
267
-int n;
268
-
269
-	for(n=0; n<32000; n++) {
270
-		if ( *(p+n) != (unsigned char) 0xe5)
271
-			return n-1;
272
-	}
273
-	return -1;
242
+int how_many_E5s_are_here(unsigned char* p) {
243
+  int n;
244
+  for (n = 0; n < 32000; n++) {
245
+    if (*(p + n) != (unsigned char) 0xe5)
246
+      return n - 1;
247
+  }
248
+  return -1;
274 249
 }
275 250
 
276 251
 #endif

+ 13
- 13
Marlin/Marlin.h View File

@@ -92,15 +92,15 @@ extern const char echomagic[] PROGMEM;
92 92
 
93 93
 #define SERIAL_ECHOPAIR(name,value) do{ serial_echopair_P(PSTR(name),(value)); }while(0)
94 94
 
95
-void serial_echopair_P(const char *s_P, int v);
96
-void serial_echopair_P(const char *s_P, long v);
97
-void serial_echopair_P(const char *s_P, float v);
98
-void serial_echopair_P(const char *s_P, double v);
99
-void serial_echopair_P(const char *s_P, unsigned long v);
95
+void serial_echopair_P(const char* s_P, int v);
96
+void serial_echopair_P(const char* s_P, long v);
97
+void serial_echopair_P(const char* s_P, float v);
98
+void serial_echopair_P(const char* s_P, double v);
99
+void serial_echopair_P(const char* s_P, unsigned long v);
100 100
 
101 101
 
102 102
 // Things to write to serial from Program memory. Saves 400 to 2k of RAM.
103
-FORCE_INLINE void serialprintPGM(const char *str) {
103
+FORCE_INLINE void serialprintPGM(const char* str) {
104 104
   char ch;
105 105
   while ((ch = pgm_read_byte(str))) {
106 106
     MYSERIAL.write(ch);
@@ -112,7 +112,7 @@ void get_command();
112 112
 
113 113
 void idle(); // the standard idle routine calls manage_inactivity(false)
114 114
 
115
-void manage_inactivity(bool ignore_stepper_queue=false);
115
+void manage_inactivity(bool ignore_stepper_queue = false);
116 116
 
117 117
 #if ENABLED(DUAL_X_CARRIAGE) && HAS_X_ENABLE && HAS_X2_ENABLE
118 118
   #define  enable_x() do { X_ENABLE_WRITE( X_ENABLE_ON); X2_ENABLE_WRITE( X_ENABLE_ON); } while (0)
@@ -194,9 +194,9 @@ void manage_inactivity(bool ignore_stepper_queue=false);
194 194
  * A_AXIS and B_AXIS are used by COREXY printers
195 195
  * X_HEAD and Y_HEAD is used for systems that don't have a 1:1 relationship between X_AXIS and X Head movement, like CoreXY bots.
196 196
  */
197
-enum AxisEnum {X_AXIS=0, A_AXIS=0, Y_AXIS=1, B_AXIS=1, Z_AXIS=2, C_AXIS=2, E_AXIS=3, X_HEAD=4, Y_HEAD=5, Z_HEAD=5};
197
+enum AxisEnum {X_AXIS = 0, A_AXIS = 0, Y_AXIS = 1, B_AXIS = 1, Z_AXIS = 2, C_AXIS = 2, E_AXIS = 3, X_HEAD = 4, Y_HEAD = 5, Z_HEAD = 5};
198 198
 
199
-enum EndstopEnum {X_MIN=0, Y_MIN=1, Z_MIN=2, Z_MIN_PROBE=3, X_MAX=4, Y_MAX=5, Z_MAX=6, Z2_MIN=7, Z2_MAX=8};
199
+enum EndstopEnum {X_MIN = 0, Y_MIN = 1, Z_MIN = 2, Z_MIN_PROBE = 3, X_MAX = 4, Y_MAX = 5, Z_MAX = 6, Z2_MIN = 7, Z2_MAX = 8};
200 200
 
201 201
 void enable_all_steppers();
202 202
 void disable_all_steppers();
@@ -206,7 +206,7 @@ void ok_to_send();
206 206
 
207 207
 void reset_bed_level();
208 208
 void prepare_move();
209
-void kill(const char *);
209
+void kill(const char*);
210 210
 void Stop();
211 211
 
212 212
 #if ENABLED(FILAMENT_RUNOUT_SENSOR)
@@ -230,8 +230,8 @@ extern bool Running;
230 230
 inline bool IsRunning() { return  Running; }
231 231
 inline bool IsStopped() { return !Running; }
232 232
 
233
-bool enqueuecommand(const char *cmd); //put a single ASCII command at the end of the current buffer or return false when it is full
234
-void enqueuecommands_P(const char *cmd); //put one or many ASCII commands at the end of the current buffer, read from flash
233
+bool enqueuecommand(const char* cmd); //put a single ASCII command at the end of the current buffer or return false when it is full
234
+void enqueuecommands_P(const char* cmd); //put one or many ASCII commands at the end of the current buffer, read from flash
235 235
 
236 236
 void prepare_arc_move(char isclockwise);
237 237
 void clamp_to_software_endstops(float target[3]);
@@ -347,7 +347,7 @@ extern millis_t print_job_stop_ms;
347 347
 extern uint8_t active_extruder;
348 348
 
349 349
 #if ENABLED(DIGIPOT_I2C)
350
-  extern void digipot_i2c_set_current( int channel, float current );
350
+  extern void digipot_i2c_set_current(int channel, float current);
351 351
   extern void digipot_i2c_init();
352 352
 #endif
353 353
 

+ 20
- 18
Marlin/MarlinSerial.cpp View File

@@ -15,7 +15,7 @@
15 15
   You should have received a copy of the GNU Lesser General Public
16 16
   License along with this library; if not, write to the Free Software
17 17
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
-  
18
+
19 19
   Modified 23 November 2006 by David A. Mellis
20 20
   Modified 28 September 2010 by Mark Sproul
21 21
 */
@@ -24,7 +24,7 @@
24 24
 #include "MarlinSerial.h"
25 25
 
26 26
 #ifndef USBCON
27
-// this next line disables the entire HardwareSerial.cpp, 
27
+// this next line disables the entire HardwareSerial.cpp,
28 28
 // this is so I can support Attiny series and any other chip without a UART
29 29
 #if defined(UBRRH) || defined(UBRR0H) || defined(UBRR1H) || defined(UBRR2H) || defined(UBRR3H)
30 30
 
@@ -74,7 +74,7 @@ void MarlinSerial::begin(long baud) {
74 74
       useU2X = false;
75 75
     }
76 76
   #endif
77
-  
77
+
78 78
   if (useU2X) {
79 79
     M_UCSRxA = BIT(M_U2Xx);
80 80
     baud_setting = (F_CPU / 4 / baud - 1) / 2;
@@ -95,14 +95,15 @@ void MarlinSerial::begin(long baud) {
95 95
 void MarlinSerial::end() {
96 96
   cbi(M_UCSRxB, M_RXENx);
97 97
   cbi(M_UCSRxB, M_TXENx);
98
-  cbi(M_UCSRxB, M_RXCIEx);  
98
+  cbi(M_UCSRxB, M_RXCIEx);
99 99
 }
100 100
 
101 101
 
102 102
 int MarlinSerial::peek(void) {
103 103
   if (rx_buffer.head == rx_buffer.tail) {
104 104
     return -1;
105
-  } else {
105
+  }
106
+  else {
106 107
     return rx_buffer.buffer[rx_buffer.tail];
107 108
   }
108 109
 }
@@ -162,7 +163,8 @@ void MarlinSerial::print(long n, int base) {
162 163
       n = -n;
163 164
     }
164 165
     printNumber(n, 10);
165
-  } else {
166
+  }
167
+  else {
166 168
     printNumber(n, base);
167 169
   }
168 170
 }
@@ -178,10 +180,10 @@ void MarlinSerial::print(double n, int digits) {
178 180
 
179 181
 void MarlinSerial::println(void) {
180 182
   print('\r');
181
-  print('\n');  
183
+  print('\n');
182 184
 }
183 185
 
184
-void MarlinSerial::println(const String &s) {
186
+void MarlinSerial::println(const String& s) {
185 187
   print(s);
186 188
   println();
187 189
 }
@@ -229,13 +231,13 @@ void MarlinSerial::println(double n, int digits) {
229 231
 // Private Methods /////////////////////////////////////////////////////////////
230 232
 
231 233
 void MarlinSerial::printNumber(unsigned long n, uint8_t base) {
232
-  unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars. 
234
+  unsigned char buf[8 * sizeof(long)]; // Assumes 8-bit chars.
233 235
   unsigned long i = 0;
234 236
 
235 237
   if (n == 0) {
236 238
     print('0');
237 239
     return;
238
-  } 
240
+  }
239 241
 
240 242
   while (n > 0) {
241 243
     buf[i++] = n % base;
@@ -243,23 +245,23 @@ void MarlinSerial::printNumber(unsigned long n, uint8_t base) {
243 245
   }
244 246
 
245 247
   for (; i > 0; i--)
246
-    print((char) (buf[i - 1] < 10 ?
247
-      '0' + buf[i - 1] :
248
-      'A' + buf[i - 1] - 10));
248
+    print((char)(buf[i - 1] < 10 ?
249
+                 '0' + buf[i - 1] :
250
+                 'A' + buf[i - 1] - 10));
249 251
 }
250 252
 
251 253
 void MarlinSerial::printFloat(double number, uint8_t digits) {
252 254
   // Handle negative numbers
253 255
   if (number < 0.0) {
254
-     print('-');
255
-     number = -number;
256
+    print('-');
257
+    number = -number;
256 258
   }
257 259
 
258 260
   // Round correctly so that print(1.999, 2) prints as "2.00"
259 261
   double rounding = 0.5;
260 262
   for (uint8_t i = 0; i < digits; ++i)
261 263
     rounding /= 10.0;
262
-  
264
+
263 265
   number += rounding;
264 266
 
265 267
   // Extract the integer part of the number and print it
@@ -275,8 +277,8 @@ void MarlinSerial::printFloat(double number, uint8_t digits) {
275 277
     remainder *= 10.0;
276 278
     int toPrint = int(remainder);
277 279
     print(toPrint);
278
-    remainder -= toPrint; 
279
-  } 
280
+    remainder -= toPrint;
281
+  }
280 282
 }
281 283
 // Preinstantiate Objects //////////////////////////////////////////////////////
282 284
 

+ 15
- 16
Marlin/MarlinSerial.h View File

@@ -29,9 +29,9 @@
29 29
 
30 30
 // The presence of the UBRRH register is used to detect a UART.
31 31
 #define UART_PRESENT(port) ((port == 0 && (defined(UBRRH) || defined(UBRR0H))) || \
32
-						(port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
33
-						(port == 3 && defined(UBRR3H)))				
34
-						
32
+                            (port == 1 && defined(UBRR1H)) || (port == 2 && defined(UBRR2H)) || \
33
+                            (port == 3 && defined(UBRR3H)))
34
+
35 35
 // These are macros to build serial port register names for the selected SERIAL_PORT (C preprocessor
36 36
 // requires two levels of indirection to expand macro values properly)
37 37
 #define SERIAL_REGNAME(registerbase,number,suffix) SERIAL_REGNAME_INTERNAL(registerbase,number,suffix)
@@ -41,15 +41,15 @@
41 41
   #define SERIAL_REGNAME_INTERNAL(registerbase,number,suffix) registerbase##number##suffix
42 42
 #endif
43 43
 
44
-// Registers used by MarlinSerial class (these are expanded 
44
+// Registers used by MarlinSerial class (these are expanded
45 45
 // depending on selected serial port
46 46
 #define M_UCSRxA SERIAL_REGNAME(UCSR,SERIAL_PORT,A) // defines M_UCSRxA to be UCSRnA where n is the serial port number
47
-#define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B) 
48
-#define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)    
49
-#define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)    
50
-#define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)    
51
-#define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)    
52
-#define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,)  
47
+#define M_UCSRxB SERIAL_REGNAME(UCSR,SERIAL_PORT,B)
48
+#define M_RXENx SERIAL_REGNAME(RXEN,SERIAL_PORT,)
49
+#define M_TXENx SERIAL_REGNAME(TXEN,SERIAL_PORT,)
50
+#define M_RXCIEx SERIAL_REGNAME(RXCIE,SERIAL_PORT,)
51
+#define M_UDREx SERIAL_REGNAME(UDRE,SERIAL_PORT,)
52
+#define M_UDRx SERIAL_REGNAME(UDR,SERIAL_PORT,)
53 53
 #define M_UBRRxH SERIAL_REGNAME(UBRR,SERIAL_PORT,H)
54 54
 #define M_UBRRxL SERIAL_REGNAME(UBRR,SERIAL_PORT,L)
55 55
 #define M_RXCx SERIAL_REGNAME(RXC,SERIAL_PORT,)
@@ -99,7 +99,6 @@ class MarlinSerial { //: public Stream
99 99
     FORCE_INLINE void write(uint8_t c) {
100 100
       while (!TEST(M_UCSRxA, M_UDREx))
101 101
         ;
102
-
103 102
       M_UDRx = c;
104 103
     }
105 104
 
@@ -124,10 +123,10 @@ class MarlinSerial { //: public Stream
124 123
     void printFloat(double, uint8_t);
125 124
 
126 125
   public:
127
-    FORCE_INLINE void write(const char *str) { while (*str) write(*str++); }
128
-    FORCE_INLINE void write(const uint8_t *buffer, size_t size) { while (size--) write(*buffer++); }
129
-    FORCE_INLINE void print(const String &s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
130
-    FORCE_INLINE void print(const char *str) { write(str); }
126
+    FORCE_INLINE void write(const char* str) { while (*str) write(*str++); }
127
+    FORCE_INLINE void write(const uint8_t* buffer, size_t size) { while (size--) write(*buffer++); }
128
+    FORCE_INLINE void print(const String& s) { for (int i = 0; i < (int)s.length(); i++) write(s[i]); }
129
+    FORCE_INLINE void print(const char* str) { write(str); }
131 130
 
132 131
     void print(char, int = BYTE);
133 132
     void print(unsigned char, int = BYTE);
@@ -137,7 +136,7 @@ class MarlinSerial { //: public Stream
137 136
     void print(unsigned long, int = DEC);
138 137
     void print(double, int = 2);
139 138
 
140
-    void println(const String &s);
139
+    void println(const String& s);
141 140
     void println(const char[]);
142 141
     void println(char, int = BYTE);
143 142
     void println(unsigned char, int = BYTE);

+ 342
- 370
Marlin/Marlin_main.cpp
File diff suppressed because it is too large
View File


+ 299
- 299
Marlin/SanityCheck.h View File

@@ -4,363 +4,363 @@
4 4
  * Test configuration values for errors at compile-time.
5 5
  */
6 6
 #ifndef SANITYCHECK_H
7
-  #define SANITYCHECK_H
7
+#define SANITYCHECK_H
8 8
 
9
-  /**
10
-   * Dual Stepper Drivers
11
-   */
12
-  #if ENABLED(Z_DUAL_STEPPER_DRIVERS) && ENABLED(Y_DUAL_STEPPER_DRIVERS)
13
-    #error You cannot have dual stepper drivers for both Y and Z.
9
+/**
10
+ * Dual Stepper Drivers
11
+ */
12
+#if ENABLED(Z_DUAL_STEPPER_DRIVERS) && ENABLED(Y_DUAL_STEPPER_DRIVERS)
13
+  #error You cannot have dual stepper drivers for both Y and Z.
14
+#endif
15
+
16
+/**
17
+ * Progress Bar
18
+ */
19
+#if ENABLED(LCD_PROGRESS_BAR)
20
+  #if DISABLED(SDSUPPORT)
21
+    #error LCD_PROGRESS_BAR requires SDSUPPORT.
22
+  #endif
23
+  #if ENABLED(DOGLCD)
24
+    #error LCD_PROGRESS_BAR does not apply to graphical displays.
14 25
   #endif
26
+  #if ENABLED(FILAMENT_LCD_DISPLAY)
27
+    #error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
28
+  #endif
29
+#endif
15 30
 
16
-  /**
17
-   * Progress Bar
18
-   */
19
-  #if ENABLED(LCD_PROGRESS_BAR)
20
-    #if DISABLED(SDSUPPORT)
21
-      #error LCD_PROGRESS_BAR requires SDSUPPORT.
22
-    #endif
23
-    #if ENABLED(DOGLCD)
24
-      #error LCD_PROGRESS_BAR does not apply to graphical displays.
25
-    #endif
26
-    #if ENABLED(FILAMENT_LCD_DISPLAY)
27
-      #error LCD_PROGRESS_BAR and FILAMENT_LCD_DISPLAY are not fully compatible. Comment out this line to use both.
28
-    #endif
31
+/**
32
+ * Babystepping
33
+ */
34
+#if ENABLED(BABYSTEPPING)
35
+  #if ENABLED(COREXY) && ENABLED(BABYSTEP_XY)
36
+    #error BABYSTEPPING only implemented for Z axis on CoreXY.
29 37
   #endif
38
+  #if ENABLED(SCARA)
39
+    #error BABYSTEPPING is not implemented for SCARA yet.
40
+  #endif
41
+  #if ENABLED(DELTA) && ENABLED(BABYSTEP_XY)
42
+    #error BABYSTEPPING only implemented for Z axis on deltabots.
43
+  #endif
44
+#endif
30 45
 
31
-  /**
32
-   * Babystepping
33
-   */
34
-  #if ENABLED(BABYSTEPPING)
35
-    #if ENABLED(COREXY) && ENABLED(BABYSTEP_XY)
36
-      #error BABYSTEPPING only implemented for Z axis on CoreXY.
37
-    #endif
38
-    #if ENABLED(SCARA)
39
-      #error BABYSTEPPING is not implemented for SCARA yet.
40
-    #endif
41
-    #if ENABLED(DELTA) && ENABLED(BABYSTEP_XY)
42
-      #error BABYSTEPPING only implemented for Z axis on deltabots.
43
-    #endif
46
+/**
47
+ * Filament Change with Extruder Runout Prevention
48
+ */
49
+#if ENABLED(FILAMENTCHANGEENABLE) && ENABLED(EXTRUDER_RUNOUT_PREVENT)
50
+  #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE.
51
+#endif
52
+
53
+/**
54
+ * Options only for EXTRUDERS > 1
55
+ */
56
+#if EXTRUDERS > 1
57
+
58
+  #if EXTRUDERS > 4
59
+    #error The maximum number of EXTRUDERS in Marlin is 4.
44 60
   #endif
45 61
 
46
-  /**
47
-   * Filament Change with Extruder Runout Prevention
48
-   */
49
-  #if ENABLED(FILAMENTCHANGEENABLE) && ENABLED(EXTRUDER_RUNOUT_PREVENT)
50
-    #error EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE.
62
+  #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
63
+    #error EXTRUDERS must be 1 with TEMP_SENSOR_1_AS_REDUNDANT.
51 64
   #endif
52 65
 
53
-  /**
54
-   * Options only for EXTRUDERS > 1
55
-   */
56
-  #if EXTRUDERS > 1
66
+  #if ENABLED(HEATERS_PARALLEL)
67
+    #error EXTRUDERS must be 1 with HEATERS_PARALLEL.
68
+  #endif
57 69
 
58
-    #if EXTRUDERS > 4
59
-      #error The maximum number of EXTRUDERS in Marlin is 4.
60
-    #endif
70
+  #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
71
+    #error EXTRUDERS must be 1 with Y_DUAL_STEPPER_DRIVERS.
72
+  #endif
61 73
 
62
-    #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
63
-      #error EXTRUDERS must be 1 with TEMP_SENSOR_1_AS_REDUNDANT.
64
-    #endif
74
+  #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
75
+    #error EXTRUDERS must be 1 with Z_DUAL_STEPPER_DRIVERS.
76
+  #endif
65 77
 
66
-    #if ENABLED(HEATERS_PARALLEL)
67
-      #error EXTRUDERS must be 1 with HEATERS_PARALLEL.
68
-    #endif
78
+#endif // EXTRUDERS > 1
69 79
 
70
-    #if ENABLED(Y_DUAL_STEPPER_DRIVERS)
71
-      #error EXTRUDERS must be 1 with Y_DUAL_STEPPER_DRIVERS.
80
+/**
81
+ * Limited number of servos
82
+ */
83
+#if NUM_SERVOS > 4
84
+  #error The maximum number of SERVOS in Marlin is 4.
85
+#endif
86
+#if defined(NUM_SERVOS) && NUM_SERVOS > 0
87
+  #if X_ENDSTOP_SERVO_NR >= 0 || Y_ENDSTOP_SERVO_NR >= 0 || Z_ENDSTOP_SERVO_NR >= 0
88
+    #if X_ENDSTOP_SERVO_NR >= NUM_SERVOS
89
+      #error X_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
90
+    #elif Y_ENDSTOP_SERVO_NR >= NUM_SERVOS
91
+      #error Y_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
92
+    #elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
93
+      #error Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
72 94
     #endif
95
+  #endif
96
+#endif
73 97
 
74
-    #if ENABLED(Z_DUAL_STEPPER_DRIVERS)
75
-      #error EXTRUDERS must be 1 with Z_DUAL_STEPPER_DRIVERS.
76
-    #endif
98
+/**
99
+ * Servo deactivation depends on servo endstops
100
+ */
101
+#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_SERVO_ENDSTOPS
102
+  #error At least one of the ?_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE.
103
+#endif
77 104
 
78
-  #endif // EXTRUDERS > 1
105
+/**
106
+ * Required LCD language
107
+ */
108
+#if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC)
109
+  #error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN  or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
110
+#endif
79 111
 
80
-  /**
81
-   * Limited number of servos
82
-   */
83
-  #if NUM_SERVOS > 4
84
-    #error The maximum number of SERVOS in Marlin is 4.
112
+/**
113
+ * Mesh Bed Leveling
114
+ */
115
+#if ENABLED(MESH_BED_LEVELING)
116
+  #if ENABLED(DELTA)
117
+    #error MESH_BED_LEVELING does not yet support DELTA printers.
85 118
   #endif
86
-  #if defined(NUM_SERVOS) && NUM_SERVOS > 0
87
-    #if X_ENDSTOP_SERVO_NR >= 0 || Y_ENDSTOP_SERVO_NR >= 0 || Z_ENDSTOP_SERVO_NR >= 0
88
-      #if X_ENDSTOP_SERVO_NR >= NUM_SERVOS
89
-        #error X_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
90
-      #elif Y_ENDSTOP_SERVO_NR >= NUM_SERVOS
91
-        #error Y_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
92
-      #elif Z_ENDSTOP_SERVO_NR >= NUM_SERVOS
93
-        #error Z_ENDSTOP_SERVO_NR must be smaller than NUM_SERVOS.
94
-      #endif
95
-    #endif
119
+  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
120
+    #error Select AUTO_BED_LEVELING_FEATURE or MESH_BED_LEVELING, not both.
96 121
   #endif
97
-
98
-  /**
99
-   * Servo deactivation depends on servo endstops
100
-   */
101
-  #if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_SERVO_ENDSTOPS
102
-    #error At least one of the ?_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE.
122
+  #if MESH_NUM_X_POINTS > 7 || MESH_NUM_Y_POINTS > 7
123
+    #error MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS need to be less than 8.
103 124
   #endif
125
+#endif
126
+
127
+/**
128
+ * Auto Bed Leveling
129
+ */
130
+#if ENABLED(AUTO_BED_LEVELING_FEATURE)
104 131
 
105 132
   /**
106
-   * Required LCD language
133
+   * Require a Z min pin
107 134
    */
108
-  #if DISABLED(DOGLCD) && ENABLED(ULTRA_LCD) && DISABLED(DISPLAY_CHARSET_HD44780_JAPAN) && DISABLED(DISPLAY_CHARSET_HD44780_WESTERN) && DISABLED(DISPLAY_CHARSET_HD44780_CYRILLIC)
109
-    #error You must enable either DISPLAY_CHARSET_HD44780_JAPAN or DISPLAY_CHARSET_HD44780_WESTERN  or DISPLAY_CHARSET_HD44780_CYRILLIC for your LCD controller.
135
+  #if !PIN_EXISTS(Z_MIN)
136
+    #if !PIN_EXISTS(Z_MIN_PROBE) || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z probe, but not enable it.
137
+      #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
138
+        #error You must have a Z_MIN or Z_PROBE endstop to enable Z_MIN_PROBE_REPEATABILITY_TEST.
139
+      #else
140
+        #error AUTO_BED_LEVELING_FEATURE requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_MIN_PROBE_PIN must point to a valid hardware pin.
141
+      #endif
142
+    #endif
110 143
   #endif
111 144
 
112 145
   /**
113
-   * Mesh Bed Leveling
146
+   * Require a Z probe pin if Z_MIN_PROBE_ENDSTOP is enabled.
114 147
    */
115
-  #if ENABLED(MESH_BED_LEVELING)
116
-    #if ENABLED(DELTA)
117
-      #error MESH_BED_LEVELING does not yet support DELTA printers.
118
-    #endif
119
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
120
-      #error Select AUTO_BED_LEVELING_FEATURE or MESH_BED_LEVELING, not both.
121
-    #endif
122
-    #if MESH_NUM_X_POINTS > 7 || MESH_NUM_Y_POINTS > 7
123
-      #error MESH_NUM_X_POINTS and MESH_NUM_Y_POINTS need to be less than 8.
148
+  #if ENABLED(Z_MIN_PROBE_ENDSTOP)
149
+    #if !PIN_EXISTS(Z_MIN_PROBE)
150
+      #error You must have a Z_MIN_PROBE_PIN defined in your pins_XXXX.h file if you enable Z_MIN_PROBE_ENDSTOP.
124 151
     #endif
152
+    // Forcing Servo definitions can break some hall effect sensor setups. Leaving these here for further comment.
153
+    //#ifndef NUM_SERVOS
154
+    //  #error You must have NUM_SERVOS defined and there must be at least 1 configured to use Z_MIN_PROBE_ENDSTOP.
155
+    //#endif
156
+    //#if defined(NUM_SERVOS) && NUM_SERVOS < 1
157
+    //  #error You must have at least 1 servo defined for NUM_SERVOS to use Z_MIN_PROBE_ENDSTOP.
158
+    //#endif
159
+    //#if Z_ENDSTOP_SERVO_NR < 0
160
+    //  #error You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_MIN_PROBE_ENDSTOP.
161
+    //#endif
162
+    //#ifndef SERVO_ENDSTOP_ANGLES
163
+    //  #error You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_MIN_PROBE_ENDSTOP.
164
+    //#endif
125 165
   #endif
126
-
127 166
   /**
128
-   * Auto Bed Leveling
167
+   * Check if Probe_Offset * Grid Points is greater than Probing Range
129 168
    */
130
-  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
131
-
132
-    /**
133
-     * Require a Z min pin
134
-     */
135
-    #if !PIN_EXISTS(Z_MIN)
136
-      #if !PIN_EXISTS(Z_MIN_PROBE) || (DISABLED(Z_MIN_PROBE_ENDSTOP) || ENABLED(DISABLE_Z_MIN_PROBE_ENDSTOP)) // It's possible for someone to set a pin for the Z probe, but not enable it.
137
-        #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
138
-          #error You must have a Z_MIN or Z_PROBE endstop to enable Z_MIN_PROBE_REPEATABILITY_TEST.
139
-        #else
140
-          #error AUTO_BED_LEVELING_FEATURE requires a Z_MIN or Z_PROBE endstop. Z_MIN_PIN or Z_MIN_PROBE_PIN must point to a valid hardware pin.
141
-        #endif
169
+  #if ENABLED(AUTO_BED_LEVELING_GRID)
170
+    #ifndef DELTA_PROBABLE_RADIUS
171
+      // Be sure points are in the right order
172
+      #if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
173
+        #error LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION.
174
+      #elif FRONT_PROBE_BED_POSITION > BACK_PROBE_BED_POSITION
175
+        #error FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION.
142 176
       #endif
143
-    #endif
144
-
145
-    /**
146
-     * Require a Z probe pin if Z_MIN_PROBE_ENDSTOP is enabled.
147
-     */
148
-    #if ENABLED(Z_MIN_PROBE_ENDSTOP)
149
-      #if !PIN_EXISTS(Z_MIN_PROBE)
150
-        #error You must have a Z_MIN_PROBE_PIN defined in your pins_XXXX.h file if you enable Z_MIN_PROBE_ENDSTOP.
177
+      // Make sure probing points are reachable
178
+      #if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
179
+        #error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
180
+      #elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
181
+        #error "The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe."
182
+      #elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
183
+        #error "The given FRONT_PROBE_BED_POSITION can't be reached by the Z probe."
184
+      #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
185
+        #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
151 186
       #endif
152
-// Forcing Servo definitions can break some hall effect sensor setups. Leaving these here for further comment.
153
-//      #ifndef NUM_SERVOS
154
-//        #error You must have NUM_SERVOS defined and there must be at least 1 configured to use Z_MIN_PROBE_ENDSTOP.
155
-//      #endif
156
-//      #if defined(NUM_SERVOS) && NUM_SERVOS < 1
157
-//        #error You must have at least 1 servo defined for NUM_SERVOS to use Z_MIN_PROBE_ENDSTOP.
158
-//      #endif
159
-//      #if Z_ENDSTOP_SERVO_NR < 0
160
-//        #error You must have Z_ENDSTOP_SERVO_NR set to at least 0 or above to use Z_MIN_PROBE_ENDSTOP.
161
-//      #endif
162
-//      #ifndef SERVO_ENDSTOP_ANGLES
163
-//        #error You must have SERVO_ENDSTOP_ANGLES defined for Z Extend and Retract to use Z_MIN_PROBE_ENDSTOP.
164
-//      #endif
165 187
     #endif
166
-    /**
167
-     * Check if Probe_Offset * Grid Points is greater than Probing Range
168
-     */
169
-    #if ENABLED(AUTO_BED_LEVELING_GRID)
170
-      #ifndef DELTA_PROBABLE_RADIUS
171
-        // Be sure points are in the right order
172
-        #if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
173
-          #error LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION.
174
-        #elif FRONT_PROBE_BED_POSITION > BACK_PROBE_BED_POSITION
175
-          #error FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION.
176
-        #endif
177
-        // Make sure probing points are reachable
178
-        #if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
179
-          #error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
180
-        #elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
181
-          #error "The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe."
182
-        #elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
183
-          #error "The given FRONT_PROBE_BED_POSITION can't be reached by the Z probe."
184
-        #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
185
-          #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
186
-        #endif
187
-      #endif
188
-    #else // !AUTO_BED_LEVELING_GRID
189
-
190
-      // Check the triangulation points
191
-      #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
192
-        #error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
193
-      #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
194
-        #error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
195
-      #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
196
-        #error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
197
-      #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
198
-        #error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
199
-      #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
200
-        #error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
201
-      #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
202
-        #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
203
-      #endif
204
-
205
-    #endif // !AUTO_BED_LEVELING_GRID
188
+  #else // !AUTO_BED_LEVELING_GRID
189
+
190
+    // Check the triangulation points
191
+    #if ABL_PROBE_PT_1_X < MIN_PROBE_X || ABL_PROBE_PT_1_X > MAX_PROBE_X
192
+      #error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
193
+    #elif ABL_PROBE_PT_2_X < MIN_PROBE_X || ABL_PROBE_PT_2_X > MAX_PROBE_X
194
+      #error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
195
+    #elif ABL_PROBE_PT_3_X < MIN_PROBE_X || ABL_PROBE_PT_3_X > MAX_PROBE_X
196
+      #error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
197
+    #elif ABL_PROBE_PT_1_Y < MIN_PROBE_Y || ABL_PROBE_PT_1_Y > MAX_PROBE_Y
198
+      #error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
199
+    #elif ABL_PROBE_PT_2_Y < MIN_PROBE_Y || ABL_PROBE_PT_2_Y > MAX_PROBE_Y
200
+      #error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
201
+    #elif ABL_PROBE_PT_3_Y < MIN_PROBE_Y || ABL_PROBE_PT_3_Y > MAX_PROBE_Y
202
+      #error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
203
+    #endif
206 204
 
207
-  #endif // AUTO_BED_LEVELING_FEATURE
205
+  #endif // !AUTO_BED_LEVELING_GRID
208 206
 
209
-  /**
210
-   * ULTIPANEL encoder
211
-   */
212
-  #if ENABLED(ULTIPANEL) && DISABLED(NEWPANEL) && DISABLED(SR_LCD_2W_NL) && !defined(SHIFT_CLK)
213
-    #error ULTIPANEL requires some kind of encoder.
214
-  #endif
207
+#endif // AUTO_BED_LEVELING_FEATURE
215 208
 
216
-  /**
217
-   * Delta has limited bed leveling options
218
-   */
219
-  #if ENABLED(DELTA)
209
+/**
210
+ * ULTIPANEL encoder
211
+ */
212
+#if ENABLED(ULTIPANEL) && DISABLED(NEWPANEL) && DISABLED(SR_LCD_2W_NL) && !defined(SHIFT_CLK)
213
+  #error ULTIPANEL requires some kind of encoder.
214
+#endif
220 215
 
221
-    #if ENABLED(AUTO_BED_LEVELING_FEATURE)
216
+/**
217
+ * Delta has limited bed leveling options
218
+ */
219
+#if ENABLED(DELTA)
222 220
 
223
-      #if DISABLED(AUTO_BED_LEVELING_GRID)
224
-        #error Only AUTO_BED_LEVELING_GRID is supported with DELTA.
225
-      #endif
221
+  #if ENABLED(AUTO_BED_LEVELING_FEATURE)
226 222
 
227
-      #if ENABLED(Z_PROBE_SLED)
228
-        #error You cannot use Z_PROBE_SLED with DELTA.
229
-      #endif
223
+    #if DISABLED(AUTO_BED_LEVELING_GRID)
224
+      #error Only AUTO_BED_LEVELING_GRID is supported with DELTA.
225
+    #endif
230 226
 
231
-      #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
232
-        #error Z_MIN_PROBE_REPEATABILITY_TEST is not supported with DELTA yet.
233
-      #endif
227
+    #if ENABLED(Z_PROBE_SLED)
228
+      #error You cannot use Z_PROBE_SLED with DELTA.
229
+    #endif
234 230
 
231
+    #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
232
+      #error Z_MIN_PROBE_REPEATABILITY_TEST is not supported with DELTA yet.
235 233
     #endif
236 234
 
237 235
   #endif
238 236
 
239
-  /**
240
-   * Allen Key Z probe requires Auto Bed Leveling grid and Delta
241
-   */
242
-  #if ENABLED(Z_PROBE_ALLEN_KEY) && !(ENABLED(AUTO_BED_LEVELING_GRID) && ENABLED(DELTA))
243
-    #error Invalid use of Z_PROBE_ALLEN_KEY.
244
-  #endif
237
+#endif
245 238
 
246
-  /**
247
-   * Dual X Carriage requirements
248
-   */
249
-  #if ENABLED(DUAL_X_CARRIAGE)
250
-    #if EXTRUDERS == 1 || ENABLED(COREXY) \
251
-        || !HAS_X2_ENABLE || !HAS_X2_STEP || !HAS_X2_DIR \
252
-        || !defined(X2_HOME_POS) || !defined(X2_MIN_POS) || !defined(X2_MAX_POS) \
253
-        || !HAS_X_MAX
254
-      #error Missing or invalid definitions for DUAL_X_CARRIAGE mode.
255
-    #endif
256
-    #if X_HOME_DIR != -1 || X2_HOME_DIR != 1
257
-      #error Please use canonical x-carriage assignment.
258
-    #endif
259
-  #endif // DUAL_X_CARRIAGE
239
+/**
240
+ * Allen Key Z probe requires Auto Bed Leveling grid and Delta
241
+ */
242
+#if ENABLED(Z_PROBE_ALLEN_KEY) && !(ENABLED(AUTO_BED_LEVELING_GRID) && ENABLED(DELTA))
243
+  #error Invalid use of Z_PROBE_ALLEN_KEY.
244
+#endif
260 245
 
261
-  /**
262
-   * Make sure auto fan pins don't conflict with the fan pin
263
-   */
264
-  #if HAS_AUTO_FAN && HAS_FAN
265
-    #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN
266
-      #error You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN.
267
-    #elif EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN
268
-      #error You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN.
269
-    #elif EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN
270
-      #error You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN.
271
-    #elif EXTRUDER_3_AUTO_FAN_PIN == FAN_PIN
272
-      #error You cannot set EXTRUDER_3_AUTO_FAN_PIN equal to FAN_PIN.
273
-    #endif
246
+/**
247
+ * Dual X Carriage requirements
248
+ */
249
+#if ENABLED(DUAL_X_CARRIAGE)
250
+  #if EXTRUDERS == 1 || ENABLED(COREXY) \
251
+      || !HAS_X2_ENABLE || !HAS_X2_STEP || !HAS_X2_DIR \
252
+      || !defined(X2_HOME_POS) || !defined(X2_MIN_POS) || !defined(X2_MAX_POS) \
253
+      || !HAS_X_MAX
254
+    #error Missing or invalid definitions for DUAL_X_CARRIAGE mode.
274 255
   #endif
275
-
276
-  #if HAS_FAN && CONTROLLERFAN_PIN == FAN_PIN
277
-    #error You cannot set CONTROLLERFAN_PIN equal to FAN_PIN.
256
+  #if X_HOME_DIR != -1 || X2_HOME_DIR != 1
257
+    #error Please use canonical x-carriage assignment.
278 258
   #endif
259
+#endif // DUAL_X_CARRIAGE
279 260
 
280
-  /**
281
-   * Test Heater, Temp Sensor, and Extruder Pins; Sensor Type must also be set.
282
-   */
283
-  #if EXTRUDERS > 3
284
-    #if !HAS_HEATER_3
285
-      #error HEATER_3_PIN not defined for this board.
286
-    #elif !PIN_EXISTS(TEMP_3)
287
-      #error TEMP_3_PIN not defined for this board.
288
-    #elif !PIN_EXISTS(E3_STEP) || !PIN_EXISTS(E3_DIR) || !PIN_EXISTS(E3_ENABLE)
289
-      #error E3_STEP_PIN, E3_DIR_PIN, or E3_ENABLE_PIN not defined for this board.
290
-    #elif TEMP_SENSOR_3 == 0
291
-      #error TEMP_SENSOR_3 is required with 4 EXTRUDERS.
292
-    #endif
293
-  #elif EXTRUDERS > 2
294
-    #if !HAS_HEATER_2
295
-      #error HEATER_2_PIN not defined for this board.
296
-    #elif !PIN_EXISTS(TEMP_2)
297
-      #error TEMP_2_PIN not defined for this board.
298
-    #elif !PIN_EXISTS(E2_STEP) || !PIN_EXISTS(E2_DIR) || !PIN_EXISTS(E2_ENABLE)
299
-      #error E2_STEP_PIN, E2_DIR_PIN, or E2_ENABLE_PIN not defined for this board.
300
-    #elif TEMP_SENSOR_2 == 0
301
-      #error TEMP_SENSOR_2 is required with 3 or more EXTRUDERS.
302
-    #endif
303
-  #elif EXTRUDERS > 1
304
-    #if !PIN_EXISTS(TEMP_1)
305
-      #error TEMP_1_PIN not defined for this board.
306
-    #elif !PIN_EXISTS(E1_STEP) || !PIN_EXISTS(E1_DIR) || !PIN_EXISTS(E1_ENABLE)
307
-      #error E1_STEP_PIN, E1_DIR_PIN, or E1_ENABLE_PIN not defined for this board.
308
-    #endif
261
+/**
262
+ * Make sure auto fan pins don't conflict with the fan pin
263
+ */
264
+#if HAS_AUTO_FAN && HAS_FAN
265
+  #if EXTRUDER_0_AUTO_FAN_PIN == FAN_PIN
266
+    #error You cannot set EXTRUDER_0_AUTO_FAN_PIN equal to FAN_PIN.
267
+  #elif EXTRUDER_1_AUTO_FAN_PIN == FAN_PIN
268
+    #error You cannot set EXTRUDER_1_AUTO_FAN_PIN equal to FAN_PIN.
269
+  #elif EXTRUDER_2_AUTO_FAN_PIN == FAN_PIN
270
+    #error You cannot set EXTRUDER_2_AUTO_FAN_PIN equal to FAN_PIN.
271
+  #elif EXTRUDER_3_AUTO_FAN_PIN == FAN_PIN
272
+    #error You cannot set EXTRUDER_3_AUTO_FAN_PIN equal to FAN_PIN.
309 273
   #endif
274
+#endif
310 275
 
311
-  #if EXTRUDERS > 1 || ENABLED(HEATERS_PARALLEL)
312
-    #if !HAS_HEATER_1
313
-      #error HEATER_1_PIN not defined for this board.
314
-    #endif
315
-  #endif
276
+#if HAS_FAN && CONTROLLERFAN_PIN == FAN_PIN
277
+  #error You cannot set CONTROLLERFAN_PIN equal to FAN_PIN.
278
+#endif
316 279
 
317
-  #if TEMP_SENSOR_1 == 0
318
-    #if EXTRUDERS > 1
319
-      #error TEMP_SENSOR_1 is required with 2 or more EXTRUDERS.
320
-    #elif ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
321
-      #error TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT.
322
-    #endif
280
+/**
281
+ * Test Heater, Temp Sensor, and Extruder Pins; Sensor Type must also be set.
282
+ */
283
+#if EXTRUDERS > 3
284
+  #if !HAS_HEATER_3
285
+    #error HEATER_3_PIN not defined for this board.
286
+  #elif !PIN_EXISTS(TEMP_3)
287
+    #error TEMP_3_PIN not defined for this board.
288
+  #elif !PIN_EXISTS(E3_STEP) || !PIN_EXISTS(E3_DIR) || !PIN_EXISTS(E3_ENABLE)
289
+    #error E3_STEP_PIN, E3_DIR_PIN, or E3_ENABLE_PIN not defined for this board.
290
+  #elif TEMP_SENSOR_3 == 0
291
+    #error TEMP_SENSOR_3 is required with 4 EXTRUDERS.
323 292
   #endif
293
+#elif EXTRUDERS > 2
294
+  #if !HAS_HEATER_2
295
+    #error HEATER_2_PIN not defined for this board.
296
+  #elif !PIN_EXISTS(TEMP_2)
297
+    #error TEMP_2_PIN not defined for this board.
298
+  #elif !PIN_EXISTS(E2_STEP) || !PIN_EXISTS(E2_DIR) || !PIN_EXISTS(E2_ENABLE)
299
+    #error E2_STEP_PIN, E2_DIR_PIN, or E2_ENABLE_PIN not defined for this board.
300
+  #elif TEMP_SENSOR_2 == 0
301
+    #error TEMP_SENSOR_2 is required with 3 or more EXTRUDERS.
302
+  #endif
303
+#elif EXTRUDERS > 1
304
+  #if !PIN_EXISTS(TEMP_1)
305
+    #error TEMP_1_PIN not defined for this board.
306
+  #elif !PIN_EXISTS(E1_STEP) || !PIN_EXISTS(E1_DIR) || !PIN_EXISTS(E1_ENABLE)
307
+    #error E1_STEP_PIN, E1_DIR_PIN, or E1_ENABLE_PIN not defined for this board.
308
+  #endif
309
+#endif
324 310
 
325
-  #if !HAS_HEATER_0
326
-    #error HEATER_0_PIN not defined for this board.
327
-  #elif !PIN_EXISTS(TEMP_0)
328
-    #error TEMP_0_PIN not defined for this board.
329
-  #elif !PIN_EXISTS(E0_STEP) || !PIN_EXISTS(E0_DIR) || !PIN_EXISTS(E0_ENABLE)
330
-    #error E0_STEP_PIN, E0_DIR_PIN, or E0_ENABLE_PIN not defined for this board.
331
-  #elif TEMP_SENSOR_0 == 0
332
-    #error TEMP_SENSOR_0 is required.
311
+#if EXTRUDERS > 1 || ENABLED(HEATERS_PARALLEL)
312
+  #if !HAS_HEATER_1
313
+    #error HEATER_1_PIN not defined for this board.
333 314
   #endif
315
+#endif
334 316
 
335
-  /**
336
-   * Warnings for old configurations
337
-   */
338
-  #if WATCH_TEMP_PERIOD > 500
339
-    #error WATCH_TEMP_PERIOD now uses seconds instead of milliseconds.
340
-  #elif DISABLED(THERMAL_PROTECTION_HOTENDS) && (defined(WATCH_TEMP_PERIOD) || defined(THERMAL_PROTECTION_PERIOD))
341
-    #error Thermal Runaway Protection for hotends is now enabled with THERMAL_PROTECTION_HOTENDS.
342
-  #elif DISABLED(THERMAL_PROTECTION_BED) && defined(THERMAL_PROTECTION_BED_PERIOD)
343
-    #error Thermal Runaway Protection for the bed is now enabled with THERMAL_PROTECTION_BED.
344
-  #elif ENABLED(COREXZ) && ENABLED(Z_LATE_ENABLE)
345
-    #error "Z_LATE_ENABLE can't be used with COREXZ."
346
-  #elif defined(X_HOME_RETRACT_MM)
347
-    #error [XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM.
348
-  #elif defined(PROBE_SERVO_DEACTIVATION_DELAY)
349
-    #error PROBE_SERVO_DEACTIVATION_DELAY has been replaced with DEACTIVATE_SERVOS_AFTER_MOVE and SERVO_DEACTIVATION_DELAY.
350
-  #elif defined(BEEPER)
351
-    #error BEEPER is now BEEPER_PIN. Please update your pins definitions.
352
-  #elif defined(SDCARDDETECT)
353
-    #error SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions.
354
-  #elif defined(SDCARDDETECTINVERTED)
355
-    #error SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration.
356
-  #elif defined(BTENABLED)
357
-    #error BTENABLED is now BLUETOOTH. Please update your configuration.
358
-  #elif defined(CUSTOM_MENDEL_NAME)
359
-    #error CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration.
360
-  #elif defined(HAS_AUTOMATIC_VERSIONING)
361
-    #error HAS_AUTOMATIC_VERSIONING deprecated - use USE_AUTOMATIC_VERSIONING instead
362
-  #elif defined(ENABLE_AUTO_BED_LEVELING)
363
-    #error ENABLE_AUTO_BED_LEVELING deprecated - use AUTO_BED_LEVELING_FEATURE instead
317
+#if TEMP_SENSOR_1 == 0
318
+  #if EXTRUDERS > 1
319
+    #error TEMP_SENSOR_1 is required with 2 or more EXTRUDERS.
320
+  #elif ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
321
+    #error TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT.
364 322
   #endif
323
+#endif
324
+
325
+#if !HAS_HEATER_0
326
+  #error HEATER_0_PIN not defined for this board.
327
+#elif !PIN_EXISTS(TEMP_0)
328
+  #error TEMP_0_PIN not defined for this board.
329
+#elif !PIN_EXISTS(E0_STEP) || !PIN_EXISTS(E0_DIR) || !PIN_EXISTS(E0_ENABLE)
330
+  #error E0_STEP_PIN, E0_DIR_PIN, or E0_ENABLE_PIN not defined for this board.
331
+#elif TEMP_SENSOR_0 == 0
332
+  #error TEMP_SENSOR_0 is required.
333
+#endif
334
+
335
+/**
336
+ * Warnings for old configurations
337
+ */
338
+#if WATCH_TEMP_PERIOD > 500
339
+  #error WATCH_TEMP_PERIOD now uses seconds instead of milliseconds.
340
+#elif DISABLED(THERMAL_PROTECTION_HOTENDS) && (defined(WATCH_TEMP_PERIOD) || defined(THERMAL_PROTECTION_PERIOD))
341
+  #error Thermal Runaway Protection for hotends is now enabled with THERMAL_PROTECTION_HOTENDS.
342
+#elif DISABLED(THERMAL_PROTECTION_BED) && defined(THERMAL_PROTECTION_BED_PERIOD)
343
+  #error Thermal Runaway Protection for the bed is now enabled with THERMAL_PROTECTION_BED.
344
+#elif ENABLED(COREXZ) && ENABLED(Z_LATE_ENABLE)
345
+  #error "Z_LATE_ENABLE can't be used with COREXZ."
346
+#elif defined(X_HOME_RETRACT_MM)
347
+  #error [XYZ]_HOME_RETRACT_MM settings have been renamed [XYZ]_HOME_BUMP_MM.
348
+#elif defined(PROBE_SERVO_DEACTIVATION_DELAY)
349
+  #error PROBE_SERVO_DEACTIVATION_DELAY has been replaced with DEACTIVATE_SERVOS_AFTER_MOVE and SERVO_DEACTIVATION_DELAY.
350
+#elif defined(BEEPER)
351
+  #error BEEPER is now BEEPER_PIN. Please update your pins definitions.
352
+#elif defined(SDCARDDETECT)
353
+  #error SDCARDDETECT is now SD_DETECT_PIN. Please update your pins definitions.
354
+#elif defined(SDCARDDETECTINVERTED)
355
+  #error SDCARDDETECTINVERTED is now SD_DETECT_INVERTED. Please update your configuration.
356
+#elif defined(BTENABLED)
357
+  #error BTENABLED is now BLUETOOTH. Please update your configuration.
358
+#elif defined(CUSTOM_MENDEL_NAME)
359
+  #error CUSTOM_MENDEL_NAME is now CUSTOM_MACHINE_NAME. Please update your configuration.
360
+#elif defined(HAS_AUTOMATIC_VERSIONING)
361
+  #error HAS_AUTOMATIC_VERSIONING deprecated - use USE_AUTOMATIC_VERSIONING instead
362
+#elif defined(ENABLE_AUTO_BED_LEVELING)
363
+  #error ENABLE_AUTO_BED_LEVELING deprecated - use AUTO_BED_LEVELING_FEATURE instead
364
+#endif
365 365
 
366 366
 #endif //SANITYCHECK_H

+ 159
- 173
Marlin/Sd2Card.cpp View File

@@ -23,131 +23,129 @@
23 23
 #include "Sd2Card.h"
24 24
 //------------------------------------------------------------------------------
25 25
 #if DISABLED(SOFTWARE_SPI)
26
-// functions for hardware SPI
27
-//------------------------------------------------------------------------------
28
-// make sure SPCR rate is in expected bits
29
-#if (SPR0 != 0 || SPR1 != 1)
30
-#error unexpected SPCR bits
31
-#endif
32
-/**
33
- * Initialize hardware SPI
34
- * Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6]
35
- */
36
-static void spiInit(uint8_t spiRate) {
37
-  // See avr processor documentation
38
-  SPCR = BIT(SPE) | BIT(MSTR) | (spiRate >> 1);
39
-  SPSR = spiRate & 1 || spiRate == 6 ? 0 : BIT(SPI2X);
40
-}
41
-//------------------------------------------------------------------------------
42
-/** SPI receive a byte */
43
-static uint8_t spiRec() {
44
-  SPDR = 0XFF;
45
-  while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
46
-  return SPDR;
47
-}
48
-//------------------------------------------------------------------------------
49
-/** SPI read data - only one call so force inline */
50
-static inline __attribute__((always_inline))
51
-void spiRead(uint8_t* buf, uint16_t nbyte) {
52
-  if (nbyte-- == 0) return;
53
-  SPDR = 0XFF;
54
-  for (uint16_t i = 0; i < nbyte; i++) {
26
+  // functions for hardware SPI
27
+  //------------------------------------------------------------------------------
28
+  // make sure SPCR rate is in expected bits
29
+  #if (SPR0 != 0 || SPR1 != 1)
30
+    #error unexpected SPCR bits
31
+  #endif
32
+  /**
33
+   * Initialize hardware SPI
34
+   * Set SCK rate to F_CPU/pow(2, 1 + spiRate) for spiRate [0,6]
35
+   */
36
+  static void spiInit(uint8_t spiRate) {
37
+    // See avr processor documentation
38
+    SPCR = BIT(SPE) | BIT(MSTR) | (spiRate >> 1);
39
+    SPSR = spiRate & 1 || spiRate == 6 ? 0 : BIT(SPI2X);
40
+  }
41
+  //------------------------------------------------------------------------------
42
+  /** SPI receive a byte */
43
+  static uint8_t spiRec() {
44
+    SPDR = 0XFF;
55 45
     while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
56
-    buf[i] = SPDR;
46
+    return SPDR;
47
+  }
48
+  //------------------------------------------------------------------------------
49
+  /** SPI read data - only one call so force inline */
50
+  static inline __attribute__((always_inline))
51
+  void spiRead(uint8_t* buf, uint16_t nbyte) {
52
+    if (nbyte-- == 0) return;
57 53
     SPDR = 0XFF;
54
+    for (uint16_t i = 0; i < nbyte; i++) {
55
+      while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
56
+      buf[i] = SPDR;
57
+      SPDR = 0XFF;
58
+    }
59
+    while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
60
+    buf[nbyte] = SPDR;
58 61
   }
59
-  while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
60
-  buf[nbyte] = SPDR;
61
-}
62
-//------------------------------------------------------------------------------
63
-/** SPI send a byte */
64
-static void spiSend(uint8_t b) {
65
-  SPDR = b;
66
-  while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
67
-}
68
-//------------------------------------------------------------------------------
69
-/** SPI send block - only one call so force inline */
70
-static inline __attribute__((always_inline))
71
-  void spiSendBlock(uint8_t token, const uint8_t* buf) {
72
-  SPDR = token;
73
-  for (uint16_t i = 0; i < 512; i += 2) {
62
+  //------------------------------------------------------------------------------
63
+  /** SPI send a byte */
64
+  static void spiSend(uint8_t b) {
65
+    SPDR = b;
74 66
     while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
75
-    SPDR = buf[i];
67
+  }
68
+  //------------------------------------------------------------------------------
69
+  /** SPI send block - only one call so force inline */
70
+  static inline __attribute__((always_inline))
71
+  void spiSendBlock(uint8_t token, const uint8_t* buf) {
72
+    SPDR = token;
73
+    for (uint16_t i = 0; i < 512; i += 2) {
74
+      while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
75
+      SPDR = buf[i];
76
+      while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
77
+      SPDR = buf[i + 1];
78
+    }
76 79
     while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
77
-    SPDR = buf[i + 1];
78 80
   }
79
-  while (!TEST(SPSR, SPIF)) { /* Intentionally left empty */ }
80
-}
81
-//------------------------------------------------------------------------------
81
+       //------------------------------------------------------------------------------
82 82
 #else  // SOFTWARE_SPI
83
-//------------------------------------------------------------------------------
84
-/** nop to tune soft SPI timing */
85
-#define nop asm volatile ("nop\n\t")
86
-//------------------------------------------------------------------------------
87
-/** Soft SPI receive byte */
88
-static uint8_t spiRec() {
89
-  uint8_t data = 0;
90
-  // no interrupts during byte receive - about 8 us
91
-  cli();
92
-  // output pin high - like sending 0XFF
93
-  fastDigitalWrite(SPI_MOSI_PIN, HIGH);
83
+       //------------------------------------------------------------------------------
84
+  /** nop to tune soft SPI timing */
85
+  #define nop asm volatile ("nop\n\t")
86
+  //------------------------------------------------------------------------------
87
+  /** Soft SPI receive byte */
88
+  static uint8_t spiRec() {
89
+    uint8_t data = 0;
90
+    // no interrupts during byte receive - about 8 us
91
+    cli();
92
+    // output pin high - like sending 0XFF
93
+    fastDigitalWrite(SPI_MOSI_PIN, HIGH);
94
+
95
+    for (uint8_t i = 0; i < 8; i++) {
96
+      fastDigitalWrite(SPI_SCK_PIN, HIGH);
97
+
98
+      // adjust so SCK is nice
99
+      nop;
100
+      nop;
101
+
102
+      data <<= 1;
103
+
104
+      if (fastDigitalRead(SPI_MISO_PIN)) data |= 1;
105
+
106
+      fastDigitalWrite(SPI_SCK_PIN, LOW);
107
+    }
108
+    // enable interrupts
109
+    sei();
110
+    return data;
111
+  }
112
+  //------------------------------------------------------------------------------
113
+  /** Soft SPI read data */
114
+  static void spiRead(uint8_t* buf, uint16_t nbyte) {
115
+    for (uint16_t i = 0; i < nbyte; i++)
116
+      buf[i] = spiRec();
117
+  }
118
+  //------------------------------------------------------------------------------
119
+  /** Soft SPI send byte */
120
+  static void spiSend(uint8_t data) {
121
+    // no interrupts during byte send - about 8 us
122
+    cli();
123
+    for (uint8_t i = 0; i < 8; i++) {
124
+      fastDigitalWrite(SPI_SCK_PIN, LOW);
94 125
 
95
-  for (uint8_t i = 0; i < 8; i++) {
96
-    fastDigitalWrite(SPI_SCK_PIN, HIGH);
126
+      fastDigitalWrite(SPI_MOSI_PIN, data & 0X80);
97 127
 
98
-    // adjust so SCK is nice
128
+      data <<= 1;
129
+
130
+      fastDigitalWrite(SPI_SCK_PIN, HIGH);
131
+    }
132
+    // hold SCK high for a few ns
133
+    nop;
134
+    nop;
99 135
     nop;
100 136
     nop;
101 137
 
102
-    data <<= 1;
103
-
104
-    if (fastDigitalRead(SPI_MISO_PIN)) data |= 1;
105
-
106
-    fastDigitalWrite(SPI_SCK_PIN, LOW);
107
-  }
108
-  // enable interrupts
109
-  sei();
110
-  return data;
111
-}
112
-//------------------------------------------------------------------------------
113
-/** Soft SPI read data */
114
-static void spiRead(uint8_t* buf, uint16_t nbyte) {
115
-  for (uint16_t i = 0; i < nbyte; i++) {
116
-    buf[i] = spiRec();
117
-  }
118
-}
119
-//------------------------------------------------------------------------------
120
-/** Soft SPI send byte */
121
-static void spiSend(uint8_t data) {
122
-  // no interrupts during byte send - about 8 us
123
-  cli();
124
-  for (uint8_t i = 0; i < 8; i++) {
125 138
     fastDigitalWrite(SPI_SCK_PIN, LOW);
126
-
127
-    fastDigitalWrite(SPI_MOSI_PIN, data & 0X80);
128
-
129
-    data <<= 1;
130
-
131
-    fastDigitalWrite(SPI_SCK_PIN, HIGH);
139
+    // enable interrupts
140
+    sei();
132 141
   }
133
-  // hold SCK high for a few ns
134
-  nop;
135
-  nop;
136
-  nop;
137
-  nop;
138
-
139
-  fastDigitalWrite(SPI_SCK_PIN, LOW);
140
-  // enable interrupts
141
-  sei();
142
-}
143
-//------------------------------------------------------------------------------
144
-/** Soft SPI send block */
142
+  //------------------------------------------------------------------------------
143
+  /** Soft SPI send block */
145 144
   void spiSendBlock(uint8_t token, const uint8_t* buf) {
146
-  spiSend(token);
147
-  for (uint16_t i = 0; i < 512; i++) {
148
-    spiSend(buf[i]);
145
+    spiSend(token);
146
+    for (uint16_t i = 0; i < 512; i++)
147
+      spiSend(buf[i]);
149 148
   }
150
-}
151 149
 #endif  // SOFTWARE_SPI
152 150
 //------------------------------------------------------------------------------
153 151
 // send command and return error code.  Return zero for OK
@@ -209,9 +207,9 @@ void Sd2Card::chipSelectHigh() {
209 207
 }
210 208
 //------------------------------------------------------------------------------
211 209
 void Sd2Card::chipSelectLow() {
212
-#if DISABLED(SOFTWARE_SPI)
213
-  spiInit(spiRate_);
214
-#endif  // SOFTWARE_SPI
210
+  #if DISABLED(SOFTWARE_SPI)
211
+    spiInit(spiRate_);
212
+  #endif  // SOFTWARE_SPI
215 213
   digitalWrite(chipSelectPin_, LOW);
216 214
 }
217 215
 //------------------------------------------------------------------------------
@@ -246,10 +244,10 @@ bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) {
246 244
     lastBlock <<= 9;
247 245
   }
248 246
   if (cardCommand(CMD32, firstBlock)
249
-    || cardCommand(CMD33, lastBlock)
250
-    || cardCommand(CMD38, 0)) {
251
-      error(SD_CARD_ERROR_ERASE);
252
-      goto fail;
247
+      || cardCommand(CMD33, lastBlock)
248
+      || cardCommand(CMD38, 0)) {
249
+    error(SD_CARD_ERROR_ERASE);
250
+    goto fail;
253 251
   }
254 252
   if (!waitNotBusy(SD_ERASE_TIMEOUT)) {
255 253
     error(SD_CARD_ERROR_ERASE_TIMEOUT);
@@ -257,8 +255,7 @@ bool Sd2Card::erase(uint32_t firstBlock, uint32_t lastBlock) {
257 255
   }
258 256
   chipSelectHigh();
259 257
   return true;
260
-
261
- fail:
258
+fail:
262 259
   chipSelectHigh();
263 260
   return false;
264 261
 }
@@ -297,17 +294,17 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
297 294
   pinMode(SPI_MOSI_PIN, OUTPUT);
298 295
   pinMode(SPI_SCK_PIN, OUTPUT);
299 296
 
300
-#if DISABLED(SOFTWARE_SPI)
301
-  // SS must be in output mode even it is not chip select
302
-  pinMode(SS_PIN, OUTPUT);
303
-  // set SS high - may be chip select for another SPI device
304
-#if SET_SPI_SS_HIGH
305
-  digitalWrite(SS_PIN, HIGH);
306
-#endif  // SET_SPI_SS_HIGH
307
-  // set SCK rate for initialization commands
308
-  spiRate_ = SPI_SD_INIT_RATE;
309
-  spiInit(spiRate_);
310
-#endif  // SOFTWARE_SPI
297
+  #if DISABLED(SOFTWARE_SPI)
298
+    // SS must be in output mode even it is not chip select
299
+    pinMode(SS_PIN, OUTPUT);
300
+    // set SS high - may be chip select for another SPI device
301
+    #if SET_SPI_SS_HIGH
302
+      digitalWrite(SS_PIN, HIGH);
303
+    #endif  // SET_SPI_SS_HIGH
304
+    // set SCK rate for initialization commands
305
+    spiRate_ = SPI_SD_INIT_RATE;
306
+    spiInit(spiRate_);
307
+  #endif  // SOFTWARE_SPI
311 308
 
312 309
   // must supply min of 74 clock cycles with CS high.
313 310
   for (uint8_t i = 0; i < 10; i++) spiSend(0XFF);
@@ -322,7 +319,8 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
322 319
   // check SD version
323 320
   if ((cardCommand(CMD8, 0x1AA) & R1_ILLEGAL_COMMAND)) {
324 321
     type(SD_CARD_TYPE_SD1);
325
-  } else {
322
+  }
323
+  else {
326 324
     // only need last byte of r7 response
327 325
     for (uint8_t i = 0; i < 4; i++) status_ = spiRec();
328 326
     if (status_ != 0XAA) {
@@ -353,13 +351,13 @@ bool Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin) {
353 351
   }
354 352
   chipSelectHigh();
355 353
 
356
-#if DISABLED(SOFTWARE_SPI)
357
-  return setSckRate(sckRateID);
358
-#else  // SOFTWARE_SPI
359
-  return true;
360
-#endif  // SOFTWARE_SPI
354
+  #if DISABLED(SOFTWARE_SPI)
355
+    return setSckRate(sckRateID);
356
+  #else  // SOFTWARE_SPI
357
+    return true;
358
+  #endif  // SOFTWARE_SPI
361 359
 
362
- fail:
360
+fail:
363 361
   chipSelectHigh();
364 362
   return false;
365 363
 }
@@ -376,28 +374,27 @@ bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) {
376 374
 #if ENABLED(SD_CHECK_AND_RETRY)
377 375
   uint8_t retryCnt = 3;
378 376
   // use address if not SDHC card
379
-  if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9;
380
- retry2:
377
+  if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
378
+retry2:
381 379
   retryCnt --;
382 380
   if (cardCommand(CMD17, blockNumber)) {
383 381
     error(SD_CARD_ERROR_CMD17);
384 382
     if (retryCnt > 0) goto retry;
385 383
     goto fail;
386 384
   }
387
-  if (!readData(dst, 512))
388
-  {
385
+  if (!readData(dst, 512)) {
389 386
     if (retryCnt > 0) goto retry;
390 387
     goto fail;
391 388
   }
392 389
   return true;
393
- retry:
394
-   chipSelectHigh();
395
-   cardCommand(CMD12, 0);//Try sending a stop command, but ignore the result.
396
-   errorCode_ = 0;
397
-   goto retry2;
390
+retry:
391
+  chipSelectHigh();
392
+  cardCommand(CMD12, 0);//Try sending a stop command, but ignore the result.
393
+  errorCode_ = 0;
394
+  goto retry2;
398 395
 #else
399 396
   // use address if not SDHC card
400
-  if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9;
397
+  if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
401 398
   if (cardCommand(CMD17, blockNumber)) {
402 399
     error(SD_CARD_ERROR_CMD17);
403 400
     goto fail;
@@ -405,7 +402,7 @@ bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) {
405 402
   return readData(dst, 512);
406 403
 #endif
407 404
 
408
- fail:
405
+fail:
409 406
   chipSelectHigh();
410 407
   return false;
411 408
 }
@@ -417,7 +414,7 @@ bool Sd2Card::readBlock(uint32_t blockNumber, uint8_t* dst) {
417 414
  * \return The value one, true, is returned for success and
418 415
  * the value zero, false, is returned for failure.
419 416
  */
420
-bool Sd2Card::readData(uint8_t *dst) {
417
+bool Sd2Card::readData(uint8_t* dst) {
421 418
   chipSelectLow();
422 419
   return readData(dst, 512);
423 420
 }
@@ -488,10 +485,9 @@ bool Sd2Card::readData(uint8_t* dst, uint16_t count) {
488 485
     uint16_t calcCrc = CRC_CCITT(dst, count);
489 486
     uint16_t recvCrc = spiRec() << 8;
490 487
     recvCrc |= spiRec();
491
-    if (calcCrc != recvCrc)
492
-    {
493
-        error(SD_CARD_ERROR_CRC);
494
-        goto fail;
488
+    if (calcCrc != recvCrc) {
489
+      error(SD_CARD_ERROR_CRC);
490
+      goto fail;
495 491
     }
496 492
   }
497 493
 #else
@@ -501,8 +497,7 @@ bool Sd2Card::readData(uint8_t* dst, uint16_t count) {
501 497
 #endif
502 498
   chipSelectHigh();
503 499
   return true;
504
-
505
- fail:
500
+fail:
506 501
   chipSelectHigh();
507 502
   return false;
508 503
 }
@@ -515,8 +510,7 @@ bool Sd2Card::readRegister(uint8_t cmd, void* buf) {
515 510
     goto fail;
516 511
   }
517 512
   return readData(dst, 16);
518
-
519
- fail:
513
+fail:
520 514
   chipSelectHigh();
521 515
   return false;
522 516
 }
@@ -532,15 +526,14 @@ bool Sd2Card::readRegister(uint8_t cmd, void* buf) {
532 526
  * the value zero, false, is returned for failure.
533 527
  */
534 528
 bool Sd2Card::readStart(uint32_t blockNumber) {
535
-  if (type()!= SD_CARD_TYPE_SDHC) blockNumber <<= 9;
529
+  if (type() != SD_CARD_TYPE_SDHC) blockNumber <<= 9;
536 530
   if (cardCommand(CMD18, blockNumber)) {
537 531
     error(SD_CARD_ERROR_CMD18);
538 532
     goto fail;
539 533
   }
540 534
   chipSelectHigh();
541 535
   return true;
542
-
543
- fail:
536
+fail:
544 537
   chipSelectHigh();
545 538
   return false;
546 539
 }
@@ -558,8 +551,7 @@ bool Sd2Card::readStop() {
558 551
   }
559 552
   chipSelectHigh();
560 553
   return true;
561
-
562
- fail:
554
+fail:
563 555
   chipSelectHigh();
564 556
   return false;
565 557
 }
@@ -592,8 +584,7 @@ bool Sd2Card::waitNotBusy(uint16_t timeoutMillis) {
592 584
     if (((uint16_t)millis() - t0) >= timeoutMillis) goto fail;
593 585
   }
594 586
   return true;
595
-
596
- fail:
587
+fail:
597 588
   return false;
598 589
 }
599 590
 //------------------------------------------------------------------------------
@@ -626,8 +617,7 @@ bool Sd2Card::writeBlock(uint32_t blockNumber, const uint8_t* src) {
626 617
   }
627 618
   chipSelectHigh();
628 619
   return true;
629
-
630
- fail:
620
+fail:
631 621
   chipSelectHigh();
632 622
   return false;
633 623
 }
@@ -644,8 +634,7 @@ bool Sd2Card::writeData(const uint8_t* src) {
644 634
   if (!writeData(WRITE_MULTIPLE_TOKEN, src)) goto fail;
645 635
   chipSelectHigh();
646 636
   return true;
647
-
648
- fail:
637
+fail:
649 638
   error(SD_CARD_ERROR_WRITE_MULTIPLE);
650 639
   chipSelectHigh();
651 640
   return false;
@@ -664,8 +653,7 @@ bool Sd2Card::writeData(uint8_t token, const uint8_t* src) {
664 653
     goto fail;
665 654
   }
666 655
   return true;
667
-
668
- fail:
656
+fail:
669 657
   chipSelectHigh();
670 658
   return false;
671 659
 }
@@ -695,8 +683,7 @@ bool Sd2Card::writeStart(uint32_t blockNumber, uint32_t eraseCount) {
695 683
   }
696 684
   chipSelectHigh();
697 685
   return true;
698
-
699
- fail:
686
+fail:
700 687
   chipSelectHigh();
701 688
   return false;
702 689
 }
@@ -713,8 +700,7 @@ bool Sd2Card::writeStop() {
713 700
   if (!waitNotBusy(SD_WRITE_TIMEOUT)) goto fail;
714 701
   chipSelectHigh();
715 702
   return true;
716
-
717
- fail:
703
+fail:
718 704
   error(SD_CARD_ERROR_STOP_TRAN);
719 705
   chipSelectHigh();
720 706
   return false;

+ 23
- 23
Marlin/Sd2Card.h View File

@@ -118,35 +118,35 @@ uint8_t const SD_CARD_TYPE_SDHC = 3;
118 118
  */
119 119
 //------------------------------------------------------------------------------
120 120
 #if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__))
121
-#define SOFTWARE_SPI
121
+  #define SOFTWARE_SPI
122 122
 #elif USE_SOFTWARE_SPI
123
-#define SOFTWARE_SPI
123
+  #define SOFTWARE_SPI
124 124
 #endif  // MEGA_SOFT_SPI
125 125
 //------------------------------------------------------------------------------
126 126
 // SPI pin definitions - do not edit here - change in SdFatConfig.h
127 127
 //
128 128
 #if DISABLED(SOFTWARE_SPI)
129
-// hardware pin defs
130
-/** The default chip select pin for the SD card is SS. */
131
-uint8_t const  SD_CHIP_SELECT_PIN = SS_PIN;
132
-// The following three pins must not be redefined for hardware SPI.
133
-/** SPI Master Out Slave In pin */
134
-uint8_t const  SPI_MOSI_PIN = MOSI_PIN;
135
-/** SPI Master In Slave Out pin */
136
-uint8_t const  SPI_MISO_PIN = MISO_PIN;
137
-/** SPI Clock pin */
138
-uint8_t const  SPI_SCK_PIN = SCK_PIN;
129
+  // hardware pin defs
130
+  /** The default chip select pin for the SD card is SS. */
131
+  uint8_t const  SD_CHIP_SELECT_PIN = SS_PIN;
132
+  // The following three pins must not be redefined for hardware SPI.
133
+  /** SPI Master Out Slave In pin */
134
+  uint8_t const  SPI_MOSI_PIN = MOSI_PIN;
135
+  /** SPI Master In Slave Out pin */
136
+  uint8_t const  SPI_MISO_PIN = MISO_PIN;
137
+  /** SPI Clock pin */
138
+  uint8_t const  SPI_SCK_PIN = SCK_PIN;
139 139
 
140 140
 #else  // SOFTWARE_SPI
141 141
 
142
-/** SPI chip select pin */
143
-uint8_t const SD_CHIP_SELECT_PIN = SOFT_SPI_CS_PIN;
144
-/** SPI Master Out Slave In pin */
145
-uint8_t const SPI_MOSI_PIN = SOFT_SPI_MOSI_PIN;
146
-/** SPI Master In Slave Out pin */
147
-uint8_t const SPI_MISO_PIN = SOFT_SPI_MISO_PIN;
148
-/** SPI Clock pin */
149
-uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN;
142
+  /** SPI chip select pin */
143
+  uint8_t const SD_CHIP_SELECT_PIN = SOFT_SPI_CS_PIN;
144
+  /** SPI Master Out Slave In pin */
145
+  uint8_t const SPI_MOSI_PIN = SOFT_SPI_MOSI_PIN;
146
+  /** SPI Master In Slave Out pin */
147
+  uint8_t const SPI_MISO_PIN = SOFT_SPI_MISO_PIN;
148
+  /** SPI Clock pin */
149
+  uint8_t const SPI_SCK_PIN = SOFT_SPI_SCK_PIN;
150 150
 #endif  // SOFTWARE_SPI
151 151
 //------------------------------------------------------------------------------
152 152
 /**
@@ -178,12 +178,12 @@ class Sd2Card {
178 178
    * \return true for success or false for failure.
179 179
    */
180 180
   bool init(uint8_t sckRateID = SPI_FULL_SPEED,
181
-    uint8_t chipSelectPin = SD_CHIP_SELECT_PIN);
181
+            uint8_t chipSelectPin = SD_CHIP_SELECT_PIN);
182 182
   bool readBlock(uint32_t block, uint8_t* dst);
183 183
   /**
184 184
    * Read a card's CID register. The CID contains card identification
185 185
    * information such as Manufacturer ID, Product name, Product serial
186
-   * number and Manufacturing date. 
186
+   * number and Manufacturing date.
187 187
    *
188 188
    * \param[out] cid pointer to area for returned data.
189 189
    *
@@ -203,7 +203,7 @@ class Sd2Card {
203 203
   bool readCSD(csd_t* csd) {
204 204
     return readRegister(CMD9, csd);
205 205
   }
206
-  bool readData(uint8_t *dst);
206
+  bool readData(uint8_t* dst);
207 207
   bool readStart(uint32_t blockNumber);
208 208
   bool readStop();
209 209
   bool setSckRate(uint8_t sckRateID);

+ 55
- 55
Marlin/Sd2PinMap.h View File

@@ -316,12 +316,12 @@ static const pin_map_t digitalPinMap[] = {
316 316
 };
317 317
 #elif defined(__AVR_ATmega1281__)
318 318
 // Waspmote
319
- 
319
+
320 320
 // Two Wire (aka I2C) ports
321 321
 uint8_t const SDA_PIN = 41;
322 322
 uint8_t const SCL_PIN = 40;
323
- 
324
- 
323
+
324
+
325 325
 #undef MOSI_PIN
326 326
 #undef MISO_PIN
327 327
 // SPI port
@@ -329,59 +329,59 @@ uint8_t const SS_PIN = 16;    // B0
329 329
 uint8_t const MOSI_PIN = 11;  // B2
330 330
 uint8_t const MISO_PIN = 12;  // B3
331 331
 uint8_t const SCK_PIN = 10;   // B1
332
- 
332
+
333 333
 static const pin_map_t digitalPinMap[] = {
334
-    {&DDRE, &PINE, &PORTE, 0}, // E0 0
335
-    {&DDRE, &PINE, &PORTE, 1}, // E1 1
336
-    {&DDRE, &PINE, &PORTE, 3}, // E3 2
337
-    {&DDRE, &PINE, &PORTE, 4}, // E4 3
338
-    {&DDRC, &PINC, &PORTC, 4}, // C4 4
339
-    {&DDRC, &PINC, &PORTC, 5}, // C5 5
340
-    {&DDRC, &PINC, &PORTC, 6}, // C6 6
341
-    {&DDRC, &PINC, &PORTC, 7}, // C7 7
342
-    {&DDRA, &PINA, &PORTA, 2}, // A2 8
343
-    {&DDRA, &PINA, &PORTA, 3}, // A3 9
344
-    {&DDRA, &PINA, &PORTA, 4}, // A4 10
345
-    {&DDRD, &PIND, &PORTD, 5}, // D5 11
346
-    {&DDRD, &PIND, &PORTD, 6}, // D6 12
347
-    {&DDRC, &PINC, &PORTC, 1}, // C1 13
348
-    {&DDRF, &PINF, &PORTF, 1}, // F1 14
349
-    {&DDRF, &PINF, &PORTF, 2}, // F2 15
350
-    {&DDRF, &PINF, &PORTF, 3}, // F3 16
351
-    {&DDRF, &PINF, &PORTF, 4}, // F4 17
352
-    {&DDRF, &PINF, &PORTF, 5}, // F5 18
353
-    {&DDRF, &PINF, &PORTF, 6}, // F6 19
354
-    {&DDRF, &PINF, &PORTF, 7}, // F7 20
355
-    {&DDRF, &PINF, &PORTF, 0}, // F0 21
356
-    {&DDRA, &PINA, &PORTA, 1}, // A1 22
357
-    {&DDRD, &PIND, &PORTD, 7}, // D7 23
358
-    {&DDRE, &PINE, &PORTE, 5}, // E5 24
359
-    {&DDRA, &PINA, &PORTA, 6}, // A6 25
360
-    {&DDRE, &PINE, &PORTE, 2}, // E2 26
361
-    {&DDRA, &PINA, &PORTA, 5}, // A5 27
362
-    {&DDRC, &PINC, &PORTC, 0}, // C0 28
363
-    {&DDRB, &PINB, &PORTB, 0}, // B0 29
364
-    {&DDRB, &PINB, &PORTB, 1}, // B1 30
365
-    {&DDRB, &PINB, &PORTB, 2}, // B2 31
366
-    {&DDRB, &PINB, &PORTB, 3}, // B3 32
367
-    {&DDRB, &PINB, &PORTB, 4}, // B4 33
368
-    {&DDRB, &PINB, &PORTB, 5}, // B5 34
369
-    {&DDRA, &PINA, &PORTA, 0}, // A0 35
370
-    {&DDRB, &PINB, &PORTB, 6}, // B6 36
371
-    {&DDRB, &PINB, &PORTB, 7}, // B7 37
372
-    {&DDRE, &PINE, &PORTE, 6}, // E6 38
373
-    {&DDRE, &PINE, &PORTE, 7}, // E7 39
374
-    {&DDRD, &PIND, &PORTD, 0}, // D0 40
375
-    {&DDRD, &PIND, &PORTD, 1}, // D1 41
376
-    {&DDRC, &PINC, &PORTC, 3}, // C3 42
377
-    {&DDRD, &PIND, &PORTD, 2}, // D2 43
378
-    {&DDRD, &PIND, &PORTD, 3}, // D3 44
379
-    {&DDRA, &PINA, &PORTA, 7}, // A7 45
380
-    {&DDRC, &PINC, &PORTC, 2}, // C2 46
381
-    {&DDRD, &PIND, &PORTD, 4}, // D4 47
382
-    {&DDRG, &PING, &PORTG, 2}, // G2 48
383
-    {&DDRG, &PING, &PORTG, 1}, // G1 49
384
-    {&DDRG, &PING, &PORTG, 0}, // G0 50
334
+  {&DDRE, &PINE, &PORTE, 0}, // E0 0
335
+  {&DDRE, &PINE, &PORTE, 1}, // E1 1
336
+  {&DDRE, &PINE, &PORTE, 3}, // E3 2
337
+  {&DDRE, &PINE, &PORTE, 4}, // E4 3
338
+  {&DDRC, &PINC, &PORTC, 4}, // C4 4
339
+  {&DDRC, &PINC, &PORTC, 5}, // C5 5
340
+  {&DDRC, &PINC, &PORTC, 6}, // C6 6
341
+  {&DDRC, &PINC, &PORTC, 7}, // C7 7
342
+  {&DDRA, &PINA, &PORTA, 2}, // A2 8
343
+  {&DDRA, &PINA, &PORTA, 3}, // A3 9
344
+  {&DDRA, &PINA, &PORTA, 4}, // A4 10
345
+  {&DDRD, &PIND, &PORTD, 5}, // D5 11
346
+  {&DDRD, &PIND, &PORTD, 6}, // D6 12
347
+  {&DDRC, &PINC, &PORTC, 1}, // C1 13
348
+  {&DDRF, &PINF, &PORTF, 1}, // F1 14
349
+  {&DDRF, &PINF, &PORTF, 2}, // F2 15
350
+  {&DDRF, &PINF, &PORTF, 3}, // F3 16
351
+  {&DDRF, &PINF, &PORTF, 4}, // F4 17
352
+  {&DDRF, &PINF, &PORTF, 5}, // F5 18
353
+  {&DDRF, &PINF, &PORTF, 6}, // F6 19
354
+  {&DDRF, &PINF, &PORTF, 7}, // F7 20
355
+  {&DDRF, &PINF, &PORTF, 0}, // F0 21
356
+  {&DDRA, &PINA, &PORTA, 1}, // A1 22
357
+  {&DDRD, &PIND, &PORTD, 7}, // D7 23
358
+  {&DDRE, &PINE, &PORTE, 5}, // E5 24
359
+  {&DDRA, &PINA, &PORTA, 6}, // A6 25
360
+  {&DDRE, &PINE, &PORTE, 2}, // E2 26
361
+  {&DDRA, &PINA, &PORTA, 5}, // A5 27
362
+  {&DDRC, &PINC, &PORTC, 0}, // C0 28
363
+  {&DDRB, &PINB, &PORTB, 0}, // B0 29
364
+  {&DDRB, &PINB, &PORTB, 1}, // B1 30
365
+  {&DDRB, &PINB, &PORTB, 2}, // B2 31
366
+  {&DDRB, &PINB, &PORTB, 3}, // B3 32
367
+  {&DDRB, &PINB, &PORTB, 4}, // B4 33
368
+  {&DDRB, &PINB, &PORTB, 5}, // B5 34
369
+  {&DDRA, &PINA, &PORTA, 0}, // A0 35
370
+  {&DDRB, &PINB, &PORTB, 6}, // B6 36
371
+  {&DDRB, &PINB, &PORTB, 7}, // B7 37
372
+  {&DDRE, &PINE, &PORTE, 6}, // E6 38
373
+  {&DDRE, &PINE, &PORTE, 7}, // E7 39
374
+  {&DDRD, &PIND, &PORTD, 0}, // D0 40
375
+  {&DDRD, &PIND, &PORTD, 1}, // D1 41
376
+  {&DDRC, &PINC, &PORTC, 3}, // C3 42
377
+  {&DDRD, &PIND, &PORTD, 2}, // D2 43
378
+  {&DDRD, &PIND, &PORTD, 3}, // D3 44
379
+  {&DDRA, &PINA, &PORTA, 7}, // A7 45
380
+  {&DDRC, &PINC, &PORTC, 2}, // C2 46
381
+  {&DDRD, &PIND, &PORTD, 4}, // D4 47
382
+  {&DDRG, &PING, &PORTG, 2}, // G2 48
383
+  {&DDRG, &PING, &PORTG, 1}, // G1 49
384
+  {&DDRG, &PING, &PORTG, 0}, // G0 50
385 385
 };
386 386
 #else  // defined(__AVR_ATmega1280__)
387 387
 #error unknown chip

+ 136
- 132
Marlin/SdBaseFile.cpp View File

@@ -48,7 +48,7 @@ bool SdBaseFile::addCluster() {
48 48
 bool SdBaseFile::addDirCluster() {
49 49
   uint32_t block;
50 50
   // max folder size
51
-  if (fileSize_/sizeof(dir_t) >= 0XFFFF) goto fail;
51
+  if (fileSize_ / sizeof(dir_t) >= 0XFFFF) goto fail;
52 52
 
53 53
   if (!addCluster()) goto fail;
54 54
   if (!vol_->cacheFlush()) goto fail;
@@ -68,8 +68,7 @@ bool SdBaseFile::addDirCluster() {
68 68
   // Increase directory file size by cluster size
69 69
   fileSize_ += 512UL << vol_->clusterSizeShift_;
70 70
   return true;
71
-
72
- fail:
71
+fail:
73 72
   return false;
74 73
 }
75 74
 //------------------------------------------------------------------------------
@@ -78,8 +77,7 @@ bool SdBaseFile::addDirCluster() {
78 77
 dir_t* SdBaseFile::cacheDirEntry(uint8_t action) {
79 78
   if (!vol_->cacheRawBlock(dirBlock_, action)) goto fail;
80 79
   return vol_->cache()->dir + dirIndex_;
81
-
82
- fail:
80
+fail:
83 81
   return 0;
84 82
 }
85 83
 //------------------------------------------------------------------------------
@@ -125,7 +123,7 @@ bool SdBaseFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock) {
125 123
     }
126 124
   }
127 125
 
128
- fail:
126
+fail:
129 127
   return false;
130 128
 }
131 129
 //------------------------------------------------------------------------------
@@ -147,7 +145,7 @@ bool SdBaseFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock) {
147 145
  *
148 146
  */
149 147
 bool SdBaseFile::createContiguous(SdBaseFile* dirFile,
150
-        const char* path, uint32_t size) {
148
+                                  const char* path, uint32_t size) {
151 149
   uint32_t count;
152 150
   // don't allow zero length file
153 151
   if (size == 0) goto fail;
@@ -167,8 +165,7 @@ bool SdBaseFile::createContiguous(SdBaseFile* dirFile,
167 165
   flags_ |= F_FILE_DIR_DIRTY;
168 166
 
169 167
   return sync();
170
-
171
- fail:
168
+fail:
172 169
   return false;
173 170
 }
174 171
 //------------------------------------------------------------------------------
@@ -191,8 +188,7 @@ bool SdBaseFile::dirEntry(dir_t* dir) {
191 188
   // copy to caller's struct
192 189
   memcpy(dir, p, sizeof(dir_t));
193 190
   return true;
194
-
195
- fail:
191
+fail:
196 192
   return false;
197 193
 }
198 194
 //------------------------------------------------------------------------------
@@ -258,7 +254,8 @@ int16_t SdBaseFile::fgets(char* str, int16_t num, char* delim) {
258 254
     str[n++] = ch;
259 255
     if (!delim) {
260 256
       if (ch == '\n') break;
261
-    } else {
257
+    }
258
+    else {
262 259
       if (strchr(delim, ch)) break;
263 260
     }
264 261
   }
@@ -318,11 +315,11 @@ void SdBaseFile::getpos(fpos_t* pos) {
318 315
 void SdBaseFile::ls(uint8_t flags, uint8_t indent) {
319 316
   rewind();
320 317
   int8_t status;
321
-  while ((status = lsPrintNext( flags, indent))) {
318
+  while ((status = lsPrintNext(flags, indent))) {
322 319
     if (status > 1 && (flags & LS_R)) {
323
-      uint16_t index = curPosition()/32 - 1;
320
+      uint16_t index = curPosition() / 32 - 1;
324 321
       SdBaseFile s;
325
-      if (s.open(this, index, O_READ)) s.ls( flags, indent + 2);
322
+      if (s.open(this, index, O_READ)) s.ls(flags, indent + 2);
326 323
       seekSet(32 * (index + 1));
327 324
     }
328 325
   }
@@ -330,7 +327,7 @@ void SdBaseFile::ls(uint8_t flags, uint8_t indent) {
330 327
 //------------------------------------------------------------------------------
331 328
 // saves 32 bytes on stack for ls recursion
332 329
 // return 0 - EOF, 1 - normal file, or 2 - directory
333
-int8_t SdBaseFile::lsPrintNext( uint8_t flags, uint8_t indent) {
330
+int8_t SdBaseFile::lsPrintNext(uint8_t flags, uint8_t indent) {
334 331
   dir_t dir;
335 332
   uint8_t w = 0;
336 333
 
@@ -340,7 +337,7 @@ int8_t SdBaseFile::lsPrintNext( uint8_t flags, uint8_t indent) {
340 337
 
341 338
     // skip deleted entry and entries for . and  ..
342 339
     if (dir.name[0] != DIR_NAME_DELETED && dir.name[0] != '.'
343
-      && DIR_IS_FILE_OR_SUBDIR(&dir)) break;
340
+        && DIR_IS_FILE_OR_SUBDIR(&dir)) break;
344 341
   }
345 342
   // indent for dir level
346 343
   for (uint8_t i = 0; i < indent; i++) MYSERIAL.write(' ');
@@ -365,9 +362,9 @@ int8_t SdBaseFile::lsPrintNext( uint8_t flags, uint8_t indent) {
365 362
   // print modify date/time if requested
366 363
   if (flags & LS_DATE) {
367 364
     MYSERIAL.write(' ');
368
-    printFatDate( dir.lastWriteDate);
365
+    printFatDate(dir.lastWriteDate);
369 366
     MYSERIAL.write(' ');
370
-    printFatTime( dir.lastWriteTime);
367
+    printFatTime(dir.lastWriteTime);
371 368
   }
372 369
   // print size if requested
373 370
   if (!DIR_IS_SUBDIR(&dir) && (flags & LS_SIZE)) {
@@ -392,7 +389,8 @@ bool SdBaseFile::make83Name(const char* str, uint8_t* name, const char** ptr) {
392 389
       if (n == 10) goto fail;  // only one dot allowed
393 390
       n = 10;  // max index for full 8.3 name
394 391
       i = 8;   // place for extension
395
-    } else {
392
+    }
393
+    else {
396 394
       // illegal FAT characters
397 395
       PGM_P p = PSTR("|<>^+=?/[];,*\"\\");
398 396
       uint8_t b;
@@ -400,14 +398,13 @@ bool SdBaseFile::make83Name(const char* str, uint8_t* name, const char** ptr) {
400 398
       // check size and only allow ASCII printable characters
401 399
       if (i > n || c < 0X21 || c > 0X7E)goto fail;
402 400
       // only upper case allowed in 8.3 names - convert lower to upper
403
-      name[i++] = (c < 'a' || c > 'z') ?  (c) : (c + ('A' - 'a'));
401
+      name[i++] = (c < 'a' || c > 'z') ? (c) : (c + ('A' - 'a'));
404 402
     }
405 403
   }
406 404
   *ptr = str;
407 405
   // must have a file name, extension is optional
408 406
   return name[0] != ' ';
409
-
410
- fail:
407
+fail:
411 408
   return false;
412 409
 }
413 410
 //------------------------------------------------------------------------------
@@ -454,8 +451,7 @@ bool SdBaseFile::mkdir(SdBaseFile* parent, const char* path, bool pFlag) {
454 451
     sub = parent != &dir1 ? &dir1 : &dir2;
455 452
   }
456 453
   return mkdir(parent, dname);
457
-
458
-  fail:
454
+fail:
459 455
   return false;
460 456
 }
461 457
 //------------------------------------------------------------------------------
@@ -503,7 +499,8 @@ bool SdBaseFile::mkdir(SdBaseFile* parent, const uint8_t dname[11]) {
503 499
   if (parent->isRoot()) {
504 500
     d.firstClusterLow = 0;
505 501
     d.firstClusterHigh = 0;
506
-  } else {
502
+  }
503
+  else {
507 504
     d.firstClusterLow = parent->firstCluster_ & 0XFFFF;
508 505
     d.firstClusterHigh = parent->firstCluster_ >> 16;
509 506
   }
@@ -512,24 +509,23 @@ bool SdBaseFile::mkdir(SdBaseFile* parent, const uint8_t dname[11]) {
512 509
 
513 510
   // write first block
514 511
   return vol_->cacheFlush();
515
-
516
- fail:
512
+fail:
517 513
   return false;
518 514
 }
519 515
 //------------------------------------------------------------------------------
520
- /** Open a file in the current working directory.
521
-  *
522
-  * \param[in] path A path with a valid 8.3 DOS name for a file to be opened.
523
-  *
524
-  * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive
525
-  * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t).
526
-  *
527
-  * \return The value one, true, is returned for success and
528
-  * the value zero, false, is returned for failure.
529
-  */
530
-  bool SdBaseFile::open(const char* path, uint8_t oflag) {
531
-    return open(cwd_, path, oflag);
532
-  }
516
+/** Open a file in the current working directory.
517
+ *
518
+ * \param[in] path A path with a valid 8.3 DOS name for a file to be opened.
519
+ *
520
+ * \param[in] oflag Values for \a oflag are constructed by a bitwise-inclusive
521
+ * OR of open flags. see SdBaseFile::open(SdBaseFile*, const char*, uint8_t).
522
+ *
523
+ * \return The value one, true, is returned for success and
524
+ * the value zero, false, is returned for failure.
525
+ */
526
+bool SdBaseFile::open(const char* path, uint8_t oflag) {
527
+  return open(cwd_, path, oflag);
528
+}
533 529
 //------------------------------------------------------------------------------
534 530
 /** Open a file or directory by name.
535 531
  *
@@ -584,8 +580,8 @@ bool SdBaseFile::mkdir(SdBaseFile* parent, const uint8_t dname[11]) {
584 580
 bool SdBaseFile::open(SdBaseFile* dirFile, const char* path, uint8_t oflag) {
585 581
   uint8_t dname[11];
586 582
   SdBaseFile dir1, dir2;
587
-  SdBaseFile *parent = dirFile;
588
-  SdBaseFile *sub = &dir1;
583
+  SdBaseFile* parent = dirFile;
584
+  SdBaseFile* sub = &dir1;
589 585
 
590 586
   if (!dirFile) goto fail;
591 587
 
@@ -609,14 +605,13 @@ bool SdBaseFile::open(SdBaseFile* dirFile, const char* path, uint8_t oflag) {
609 605
     sub = parent != &dir1 ? &dir1 : &dir2;
610 606
   }
611 607
   return open(parent, dname, oflag);
612
-
613
- fail:
608
+fail:
614 609
   return false;
615 610
 }
616 611
 //------------------------------------------------------------------------------
617 612
 // open with filename in dname
618 613
 bool SdBaseFile::open(SdBaseFile* dirFile,
619
-  const uint8_t dname[11], uint8_t oflag) {
614
+                      const uint8_t dname[11], uint8_t oflag) {
620 615
   bool emptyFound = false;
621 616
   bool fileFound = false;
622 617
   uint8_t index;
@@ -641,7 +636,8 @@ bool SdBaseFile::open(SdBaseFile* dirFile,
641 636
       }
642 637
       // done if no entries follow
643 638
       if (p->name[0] == DIR_NAME_FREE) break;
644
-    } else if (!memcmp(dname, p->name, 11)) {
639
+    }
640
+    else if (!memcmp(dname, p->name, 11)) {
645 641
       fileFound = true;
646 642
       break;
647 643
     }
@@ -649,14 +645,16 @@ bool SdBaseFile::open(SdBaseFile* dirFile,
649 645
   if (fileFound) {
650 646
     // don't open existing file if O_EXCL
651 647
     if (oflag & O_EXCL) goto fail;
652
-  } else {
648
+  }
649
+  else {
653 650
     // don't create unless O_CREAT and O_WRITE
654 651
     if (!(oflag & O_CREAT) || !(oflag & O_WRITE)) goto fail;
655 652
     if (emptyFound) {
656 653
       index = dirIndex_;
657 654
       p = cacheDirEntry(SdVolume::CACHE_FOR_WRITE);
658 655
       if (!p) goto fail;
659
-    } else {
656
+    }
657
+    else {
660 658
       if (dirFile->type_ == FAT_FILE_TYPE_ROOT_FIXED) goto fail;
661 659
 
662 660
       // add and zero cluster for dirFile - first cluster is in cache for write
@@ -674,7 +672,8 @@ bool SdBaseFile::open(SdBaseFile* dirFile,
674 672
     if (dateTime_) {
675 673
       // call user date/time function
676 674
       dateTime_(&p->creationDate, &p->creationTime);
677
-    } else {
675
+    }
676
+    else {
678 677
       // use default date/time
679 678
       p->creationDate = FAT_DEFAULT_DATE;
680 679
       p->creationTime = FAT_DEFAULT_TIME;
@@ -688,8 +687,7 @@ bool SdBaseFile::open(SdBaseFile* dirFile,
688 687
   }
689 688
   // open entry in cache
690 689
   return openCachedEntry(index, oflag);
691
-
692
- fail:
690
+fail:
693 691
   return false;
694 692
 }
695 693
 //------------------------------------------------------------------------------
@@ -731,8 +729,7 @@ bool SdBaseFile::open(SdBaseFile* dirFile, uint16_t index, uint8_t oflag) {
731 729
   }
732 730
   // open cached entry
733 731
   return openCachedEntry(index & 0XF, oflag);
734
-
735
- fail:
732
+fail:
736 733
   return false;
737 734
 }
738 735
 //------------------------------------------------------------------------------
@@ -757,10 +754,12 @@ bool SdBaseFile::openCachedEntry(uint8_t dirIndex, uint8_t oflag) {
757 754
   if (DIR_IS_FILE(p)) {
758 755
     fileSize_ = p->fileSize;
759 756
     type_ = FAT_FILE_TYPE_NORMAL;
760
-  } else if (DIR_IS_SUBDIR(p)) {
757
+  }
758
+  else if (DIR_IS_SUBDIR(p)) {
761 759
     if (!vol_->chainSize(firstCluster_, &fileSize_)) goto fail;
762 760
     type_ = FAT_FILE_TYPE_SUBDIR;
763
-  } else {
761
+  }
762
+  else {
764 763
     goto fail;
765 764
   }
766 765
   // save open flags for read/write
@@ -771,8 +770,7 @@ bool SdBaseFile::openCachedEntry(uint8_t dirIndex, uint8_t oflag) {
771 770
   curPosition_ = 0;
772 771
   if ((oflag & O_TRUNC) && !truncate(0)) return false;
773 772
   return oflag & O_AT_END ? seekEnd(0) : true;
774
-
775
- fail:
773
+fail:
776 774
   type_ = FAT_FILE_TYPE_CLOSED;
777 775
   return false;
778 776
 }
@@ -818,8 +816,7 @@ bool SdBaseFile::openNext(SdBaseFile* dirFile, uint8_t oflag) {
818 816
       return openCachedEntry(index, oflag);
819 817
     }
820 818
   }
821
-
822
- fail:
819
+fail:
823 820
   return false;
824 821
 }
825 822
 //------------------------------------------------------------------------------
@@ -862,8 +859,9 @@ bool SdBaseFile::openParent(SdBaseFile* dir) {
862 859
   // '..' is pointer to first cluster of parent. open '../..' to find parent
863 860
   if (p->firstClusterHigh == 0 && p->firstClusterLow == 0) {
864 861
     if (!file.openRoot(dir->volume())) goto fail;
865
-  } else {
866
-    if (!file.openCachedEntry(1, O_READ)) goto fail;
862
+  }
863
+  else if (!file.openCachedEntry(1, O_READ)) {
864
+    goto fail;
867 865
   }
868 866
   // search for parent in '../..'
869 867
   do {
@@ -872,9 +870,8 @@ bool SdBaseFile::openParent(SdBaseFile* dir) {
872 870
     c |= (uint32_t)entry.firstClusterHigh << 16;
873 871
   } while (c != cluster);
874 872
   // open parent
875
-  return open(&file, file.curPosition()/32 - 1, O_READ);
876
-
877
- fail:
873
+  return open(&file, file.curPosition() / 32 - 1, O_READ);
874
+fail:
878 875
   return false;
879 876
 }
880 877
 //------------------------------------------------------------------------------
@@ -895,11 +892,13 @@ bool SdBaseFile::openRoot(SdVolume* vol) {
895 892
     type_ = FAT_FILE_TYPE_ROOT_FIXED;
896 893
     firstCluster_ = 0;
897 894
     fileSize_ = 32 * vol->rootDirEntryCount();
898
-  } else if (vol->fatType() == 32) {
895
+  }
896
+  else if (vol->fatType() == 32) {
899 897
     type_ = FAT_FILE_TYPE_ROOT32;
900 898
     firstCluster_ = vol->rootDirStart();
901 899
     if (!vol->chainSize(firstCluster_, &fileSize_)) goto fail;
902
-  } else {
900
+  }
901
+  else {
903 902
     // volume is not initialized, invalid, or FAT12 without support
904 903
     return false;
905 904
   }
@@ -915,8 +914,7 @@ bool SdBaseFile::openRoot(SdVolume* vol) {
915 914
   dirBlock_ = 0;
916 915
   dirIndex_ = 0;
917 916
   return true;
918
-
919
- fail:
917
+fail:
920 918
   return false;
921 919
 }
922 920
 //------------------------------------------------------------------------------
@@ -940,7 +938,7 @@ int SdBaseFile::peek() {
940 938
  * \param[in] printSlash Print '/' after directory names if true.
941 939
  */
942 940
 void SdBaseFile::printDirName(const dir_t& dir,
943
-  uint8_t width, bool printSlash) {
941
+                              uint8_t width, bool printSlash) {
944 942
   uint8_t w = 0;
945 943
   for (uint8_t i = 0; i < 11; i++) {
946 944
     if (dir.name[i] == ' ')continue;
@@ -962,7 +960,7 @@ void SdBaseFile::printDirName(const dir_t& dir,
962 960
 }
963 961
 //------------------------------------------------------------------------------
964 962
 // print uint8_t with width 2
965
-static void print2u( uint8_t v) {
963
+static void print2u(uint8_t v) {
966 964
   if (v < 10) MYSERIAL.write('0');
967 965
   MYSERIAL.print(v, DEC);
968 966
 }
@@ -985,9 +983,9 @@ static void print2u( uint8_t v) {
985 983
 void SdBaseFile::printFatDate(uint16_t fatDate) {
986 984
   MYSERIAL.print(FAT_YEAR(fatDate));
987 985
   MYSERIAL.write('-');
988
-  print2u( FAT_MONTH(fatDate));
986
+  print2u(FAT_MONTH(fatDate));
989 987
   MYSERIAL.write('-');
990
-  print2u( FAT_DAY(fatDate));
988
+  print2u(FAT_DAY(fatDate));
991 989
 }
992 990
 
993 991
 //------------------------------------------------------------------------------
@@ -998,12 +996,12 @@ void SdBaseFile::printFatDate(uint16_t fatDate) {
998 996
  * \param[in] pr Print stream for output.
999 997
  * \param[in] fatTime The time field from a directory entry.
1000 998
  */
1001
-void SdBaseFile::printFatTime( uint16_t fatTime) {
1002
-  print2u( FAT_HOUR(fatTime));
999
+void SdBaseFile::printFatTime(uint16_t fatTime) {
1000
+  print2u(FAT_HOUR(fatTime));
1003 1001
   MYSERIAL.write(':');
1004
-  print2u( FAT_MINUTE(fatTime));
1002
+  print2u(FAT_MINUTE(fatTime));
1005 1003
   MYSERIAL.write(':');
1006
-  print2u( FAT_SECOND(fatTime));
1004
+  print2u(FAT_SECOND(fatTime));
1007 1005
 }
1008 1006
 //------------------------------------------------------------------------------
1009 1007
 /** Print a file's name to Serial
@@ -1060,14 +1058,16 @@ int16_t SdBaseFile::read(void* buf, uint16_t nbyte) {
1060 1058
     offset = curPosition_ & 0X1FF;  // offset in block
1061 1059
     if (type_ == FAT_FILE_TYPE_ROOT_FIXED) {
1062 1060
       block = vol_->rootDirStart() + (curPosition_ >> 9);
1063
-    } else {
1061
+    }
1062
+    else {
1064 1063
       uint8_t blockOfCluster = vol_->blockOfCluster(curPosition_);
1065 1064
       if (offset == 0 && blockOfCluster == 0) {
1066 1065
         // start of new cluster
1067 1066
         if (curPosition_ == 0) {
1068 1067
           // use first cluster in file
1069 1068
           curCluster_ = firstCluster_;
1070
-        } else {
1069
+        }
1070
+        else {
1071 1071
           // get next cluster from FAT
1072 1072
           if (!vol_->fatGet(curCluster_, &curCluster_)) goto fail;
1073 1073
         }
@@ -1082,7 +1082,8 @@ int16_t SdBaseFile::read(void* buf, uint16_t nbyte) {
1082 1082
     // no buffering needed if n == 512
1083 1083
     if (n == 512 && block != vol_->cacheBlockNumber()) {
1084 1084
       if (!vol_->readBlock(block, dst)) goto fail;
1085
-    } else {
1085
+    }
1086
+    else {
1086 1087
       // read block to cache and copy data to caller
1087 1088
       if (!vol_->cacheRawBlock(block, SdVolume::CACHE_FOR_READ)) goto fail;
1088 1089
       uint8_t* src = vol_->cache()->data + offset;
@@ -1093,8 +1094,7 @@ int16_t SdBaseFile::read(void* buf, uint16_t nbyte) {
1093 1094
     toRead -= n;
1094 1095
   }
1095 1096
   return nbyte;
1096
-
1097
- fail:
1097
+fail:
1098 1098
   return -1;
1099 1099
 }
1100 1100
 
@@ -1113,7 +1113,7 @@ int8_t SdBaseFile::readDir(dir_t* dir, char* longFilename) {
1113 1113
   int16_t n;
1114 1114
   // if not a directory file or miss-positioned return an error
1115 1115
   if (!isDir() || (0X1F & curPosition_)) return -1;
1116
-  
1116
+
1117 1117
   //If we have a longFilename buffer, mark it as invalid. If we find a long filename it will be filled automaticly.
1118 1118
   if (longFilename != NULL) longFilename[0] = '\0';
1119 1119
 
@@ -1131,15 +1131,15 @@ int8_t SdBaseFile::readDir(dir_t* dir, char* longFilename) {
1131 1131
     // Fill the long filename if we have a long filename entry.
1132 1132
     // Long filename entries are stored before the short filename.
1133 1133
     if (longFilename != NULL && DIR_IS_LONG_NAME(dir)) {
1134
-      vfat_t *VFAT = (vfat_t*)dir;
1134
+      vfat_t* VFAT = (vfat_t*)dir;
1135 1135
       // Sanity-check the VFAT entry. The first cluster is always set to zero. And the sequence number should be higher than 0
1136 1136
       if (VFAT->firstClusterLow == 0 && (VFAT->sequenceNumber & 0x1F) > 0 && (VFAT->sequenceNumber & 0x1F) <= MAX_VFAT_ENTRIES) {
1137 1137
         // TODO: Store the filename checksum to verify if a none-long filename aware system modified the file table.
1138 1138
         n = ((VFAT->sequenceNumber & 0x1F) - 1) * FILENAME_LENGTH;
1139
-        for (uint8_t i=0; i<FILENAME_LENGTH; i++)
1140
-          longFilename[n+i] = (i < 5) ? VFAT->name1[i] : (i < 11) ? VFAT->name2[i-5] : VFAT->name3[i-11];
1139
+        for (uint8_t i = 0; i < FILENAME_LENGTH; i++)
1140
+          longFilename[n + i] = (i < 5) ? VFAT->name1[i] : (i < 11) ? VFAT->name2[i - 5] : VFAT->name3[i - 11];
1141 1141
         // If this VFAT entry is the last one, add a NUL terminator at the end of the string
1142
-        if (VFAT->sequenceNumber & 0x40) longFilename[n+FILENAME_LENGTH] = '\0';
1142
+        if (VFAT->sequenceNumber & 0x40) longFilename[n + FILENAME_LENGTH] = '\0';
1143 1143
       }
1144 1144
     }
1145 1145
     // Return if normal file or subdirectory
@@ -1166,8 +1166,7 @@ dir_t* SdBaseFile::readDirCache() {
1166 1166
 
1167 1167
   // return pointer to entry
1168 1168
   return vol_->cache()->dir + i;
1169
-
1170
- fail:
1169
+fail:
1171 1170
   return 0;
1172 1171
 }
1173 1172
 //------------------------------------------------------------------------------
@@ -1202,8 +1201,7 @@ bool SdBaseFile::remove() {
1202 1201
   // write entry to SD
1203 1202
   return vol_->cacheFlush();
1204 1203
   return true;
1205
-
1206
- fail:
1204
+fail:
1207 1205
   return false;
1208 1206
 }
1209 1207
 //------------------------------------------------------------------------------
@@ -1228,8 +1226,7 @@ bool SdBaseFile::remove(SdBaseFile* dirFile, const char* path) {
1228 1226
   SdBaseFile file;
1229 1227
   if (!file.open(dirFile, path, O_WRITE)) goto fail;
1230 1228
   return file.remove();
1231
-
1232
- fail:
1229
+fail:
1233 1230
   // can't set iostate - static function
1234 1231
   return false;
1235 1232
 }
@@ -1272,7 +1269,8 @@ bool SdBaseFile::rename(SdBaseFile* dirFile, const char* newPath) {
1272 1269
     if (!file.open(dirFile, newPath, O_CREAT | O_EXCL | O_WRITE)) {
1273 1270
       goto restore;
1274 1271
     }
1275
-  } else {
1272
+  }
1273
+  else {
1276 1274
     // don't create missing path prefix components
1277 1275
     if (!file.mkdir(dirFile, newPath, false)) {
1278 1276
       goto restore;
@@ -1311,14 +1309,14 @@ bool SdBaseFile::rename(SdBaseFile* dirFile, const char* newPath) {
1311 1309
   }
1312 1310
   return vol_->cacheFlush();
1313 1311
 
1314
- restore:
1312
+restore:
1315 1313
   d = cacheDirEntry(SdVolume::CACHE_FOR_WRITE);
1316 1314
   if (!d) goto fail;
1317 1315
   // restore entry
1318 1316
   d->name[0] = entry.name[0];
1319 1317
   vol_->cacheFlush();
1320 1318
 
1321
- fail:
1319
+fail:
1322 1320
   return false;
1323 1321
 }
1324 1322
 //------------------------------------------------------------------------------
@@ -1358,8 +1356,7 @@ bool SdBaseFile::rmdir() {
1358 1356
   type_ = FAT_FILE_TYPE_NORMAL;
1359 1357
   flags_ |= O_WRITE;
1360 1358
   return remove();
1361
-
1362
- fail:
1359
+fail:
1363 1360
   return false;
1364 1361
 }
1365 1362
 //------------------------------------------------------------------------------
@@ -1384,7 +1381,7 @@ bool SdBaseFile::rmRfStar() {
1384 1381
   rewind();
1385 1382
   while (curPosition_ < fileSize_) {
1386 1383
     // remember position
1387
-    index = curPosition_/32;
1384
+    index = curPosition_ / 32;
1388 1385
 
1389 1386
     dir_t* p = readDirCache();
1390 1387
     if (!p) goto fail;
@@ -1402,14 +1399,15 @@ bool SdBaseFile::rmRfStar() {
1402 1399
     if (f.isSubDir()) {
1403 1400
       // recursively delete
1404 1401
       if (!f.rmRfStar()) goto fail;
1405
-    } else {
1402
+    }
1403
+    else {
1406 1404
       // ignore read-only
1407 1405
       f.flags_ |= O_WRITE;
1408 1406
       if (!f.remove()) goto fail;
1409 1407
     }
1410 1408
     // position to next entry if required
1411
-    if (curPosition_ != (32*(index + 1))) {
1412
-      if (!seekSet(32*(index + 1))) goto fail;
1409
+    if (curPosition_ != (32 * (index + 1))) {
1410
+      if (!seekSet(32 * (index + 1))) goto fail;
1413 1411
     }
1414 1412
   }
1415 1413
   // don't try to delete root
@@ -1417,8 +1415,7 @@ bool SdBaseFile::rmRfStar() {
1417 1415
     if (!rmdir()) goto fail;
1418 1416
   }
1419 1417
   return true;
1420
-
1421
- fail:
1418
+fail:
1422 1419
   return false;
1423 1420
 }
1424 1421
 //------------------------------------------------------------------------------
@@ -1465,7 +1462,8 @@ bool SdBaseFile::seekSet(uint32_t pos) {
1465 1462
   if (nNew < nCur || curPosition_ == 0) {
1466 1463
     // must follow chain from first cluster
1467 1464
     curCluster_ = firstCluster_;
1468
-  } else {
1465
+  }
1466
+  else {
1469 1467
     // advance from curPosition
1470 1468
     nNew -= nCur;
1471 1469
   }
@@ -1474,10 +1472,10 @@ bool SdBaseFile::seekSet(uint32_t pos) {
1474 1472
   }
1475 1473
   curPosition_ = pos;
1476 1474
 
1477
- done:
1475
+done:
1478 1476
   return true;
1479 1477
 
1480
- fail:
1478
+fail:
1481 1479
   return false;
1482 1480
 }
1483 1481
 //------------------------------------------------------------------------------
@@ -1520,7 +1518,7 @@ bool SdBaseFile::sync() {
1520 1518
   }
1521 1519
   return vol_->cacheFlush();
1522 1520
 
1523
- fail:
1521
+fail:
1524 1522
   writeError = true;
1525 1523
   return false;
1526 1524
 }
@@ -1560,7 +1558,7 @@ bool SdBaseFile::timestamp(SdBaseFile* file) {
1560 1558
   // write back entry
1561 1559
   return vol_->cacheFlush();
1562 1560
 
1563
- fail:
1561
+fail:
1564 1562
   return false;
1565 1563
 }
1566 1564
 //------------------------------------------------------------------------------
@@ -1598,22 +1596,22 @@ bool SdBaseFile::timestamp(SdBaseFile* file) {
1598 1596
  * the value zero, false, is returned for failure.
1599 1597
  */
1600 1598
 bool SdBaseFile::timestamp(uint8_t flags, uint16_t year, uint8_t month,
1601
-         uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) {
1599
+                           uint8_t day, uint8_t hour, uint8_t minute, uint8_t second) {
1602 1600
   uint16_t dirDate;
1603 1601
   uint16_t dirTime;
1604 1602
   dir_t* d;
1605 1603
 
1606 1604
   if (!isOpen()
1607
-    || year < 1980
1608
-    || year > 2107
1609
-    || month < 1
1610
-    || month > 12
1611
-    || day < 1
1612
-    || day > 31
1613
-    || hour > 23
1614
-    || minute > 59
1615
-    || second > 59) {
1616
-      goto fail;
1605
+      || year < 1980
1606
+      || year > 2107
1607
+      || month < 1
1608
+      || month > 12
1609
+      || day < 1
1610
+      || day > 31
1611
+      || hour > 23
1612
+      || minute > 59
1613
+      || second > 59) {
1614
+    goto fail;
1617 1615
   }
1618 1616
   // update directory entry
1619 1617
   if (!sync()) goto fail;
@@ -1637,8 +1635,7 @@ bool SdBaseFile::timestamp(uint8_t flags, uint16_t year, uint8_t month,
1637 1635
     d->lastWriteTime = dirTime;
1638 1636
   }
1639 1637
   return vol_->cacheFlush();
1640
-
1641
- fail:
1638
+fail:
1642 1639
   return false;
1643 1640
 }
1644 1641
 //------------------------------------------------------------------------------
@@ -1674,7 +1671,8 @@ bool SdBaseFile::truncate(uint32_t length) {
1674 1671
     // free all clusters
1675 1672
     if (!vol_->freeChain(firstCluster_)) goto fail;
1676 1673
     firstCluster_ = 0;
1677
-  } else {
1674
+  }
1675
+  else {
1678 1676
     uint32_t toFree;
1679 1677
     if (!vol_->fatGet(curCluster_, &toFree)) goto fail;
1680 1678
 
@@ -1696,7 +1694,7 @@ bool SdBaseFile::truncate(uint32_t length) {
1696 1694
   // set file to correct position
1697 1695
   return seekSet(newPos);
1698 1696
 
1699
- fail:
1697
+fail:
1700 1698
   return false;
1701 1699
 }
1702 1700
 //------------------------------------------------------------------------------
@@ -1739,16 +1737,19 @@ int16_t SdBaseFile::write(const void* buf, uint16_t nbyte) {
1739 1737
         if (firstCluster_ == 0) {
1740 1738
           // allocate first cluster of file
1741 1739
           if (!addCluster()) goto fail;
1742
-        } else {
1740
+        }
1741
+        else {
1743 1742
           curCluster_ = firstCluster_;
1744 1743
         }
1745
-      } else {
1744
+      }
1745
+      else {
1746 1746
         uint32_t next;
1747 1747
         if (!vol_->fatGet(curCluster_, &next)) goto fail;
1748 1748
         if (vol_->isEOC(next)) {
1749 1749
           // add cluster if at end of chain
1750 1750
           if (!addCluster()) goto fail;
1751
-        } else {
1751
+        }
1752
+        else {
1752 1753
           curCluster_ = next;
1753 1754
         }
1754 1755
       }
@@ -1768,13 +1769,15 @@ int16_t SdBaseFile::write(const void* buf, uint16_t nbyte) {
1768 1769
         vol_->cacheSetBlockNumber(0XFFFFFFFF, false);
1769 1770
       }
1770 1771
       if (!vol_->writeBlock(block, src)) goto fail;
1771
-    } else {
1772
+    }
1773
+    else {
1772 1774
       if (blockOffset == 0 && curPosition_ >= fileSize_) {
1773 1775
         // start of new block don't need to read into cache
1774 1776
         if (!vol_->cacheFlush()) goto fail;
1775 1777
         // set cache dirty and SD address of block
1776 1778
         vol_->cacheSetBlockNumber(block, true);
1777
-      } else {
1779
+      }
1780
+      else {
1778 1781
         // rewrite part of block
1779 1782
         if (!vol_->cacheRawBlock(block, SdVolume::CACHE_FOR_WRITE)) goto fail;
1780 1783
       }
@@ -1789,7 +1792,8 @@ int16_t SdBaseFile::write(const void* buf, uint16_t nbyte) {
1789 1792
     // update fileSize and insure sync will update dir entry
1790 1793
     fileSize_ = curPosition_;
1791 1794
     flags_ |= F_FILE_DIR_DIRTY;
1792
-  } else if (dateTime_ && nbyte) {
1795
+  }
1796
+  else if (dateTime_ && nbyte) {
1793 1797
     // insure sync will update modified date and time
1794 1798
     flags_ |= F_FILE_DIR_DIRTY;
1795 1799
   }
@@ -1799,7 +1803,7 @@ int16_t SdBaseFile::write(const void* buf, uint16_t nbyte) {
1799 1803
   }
1800 1804
   return nbyte;
1801 1805
 
1802
- fail:
1806
+fail:
1803 1807
   // return for write error
1804 1808
   writeError = true;
1805 1809
   return -1;
@@ -1807,7 +1811,7 @@ int16_t SdBaseFile::write(const void* buf, uint16_t nbyte) {
1807 1811
 //------------------------------------------------------------------------------
1808 1812
 // suppress cpplint warnings with NOLINT comment
1809 1813
 #if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
1810
-void (*SdBaseFile::oldDateTime_)(uint16_t& date, uint16_t& time) = 0;  // NOLINT
1814
+  void (*SdBaseFile::oldDateTime_)(uint16_t& date, uint16_t& time) = 0;  // NOLINT
1811 1815
 #endif  // ALLOW_DEPRECATED_FUNCTIONS
1812 1816
 
1813 1817
 

+ 27
- 27
Marlin/SdBaseFile.h View File

@@ -158,7 +158,7 @@ static inline uint8_t FAT_HOUR(uint16_t fatTime) {
158 158
  * \return Extracted minute [0,59]
159 159
  */
160 160
 static inline uint8_t FAT_MINUTE(uint16_t fatTime) {
161
-  return(fatTime >> 5) & 0X3F;
161
+  return (fatTime >> 5) & 0X3F;
162 162
 }
163 163
 /** second part of FAT directory time field
164 164
  * Note second/2 is stored in packed time.
@@ -168,7 +168,7 @@ static inline uint8_t FAT_MINUTE(uint16_t fatTime) {
168 168
  * \return Extracted second [0,58]
169 169
  */
170 170
 static inline uint8_t FAT_SECOND(uint16_t fatTime) {
171
-  return 2*(fatTime & 0X1F);
171
+  return 2 * (fatTime & 0X1F);
172 172
 }
173 173
 /** Default date for file timestamps is 1 Jan 2000 */
174 174
 uint16_t const FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1;
@@ -184,7 +184,7 @@ class SdBaseFile {
184 184
   /** Create an instance. */
185 185
   SdBaseFile() : writeError(false), type_(FAT_FILE_TYPE_CLOSED) {}
186 186
   SdBaseFile(const char* path, uint8_t oflag);
187
-  ~SdBaseFile() {if(isOpen()) close();}
187
+  ~SdBaseFile() {if (isOpen()) close();}
188 188
   /**
189 189
    * writeError is set to true if an error occurs during a write().
190 190
    * Set writeError to false before calling print() and/or write() and check
@@ -205,7 +205,7 @@ class SdBaseFile {
205 205
   bool close();
206 206
   bool contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock);
207 207
   bool createContiguous(SdBaseFile* dirFile,
208
-          const char* path, uint32_t size);
208
+                        const char* path, uint32_t size);
209 209
   /** \return The current cluster number for a file or directory. */
210 210
   uint32_t curCluster() const {return curCluster_;}
211 211
   /** \return The current position for a file or directory. */
@@ -266,7 +266,7 @@ class SdBaseFile {
266 266
   bool isRoot() const {
267 267
     return type_ == FAT_FILE_TYPE_ROOT_FIXED || type_ == FAT_FILE_TYPE_ROOT32;
268 268
   }
269
-  void ls( uint8_t flags = 0, uint8_t indent = 0);
269
+  void ls(uint8_t flags = 0, uint8_t indent = 0);
270 270
   bool mkdir(SdBaseFile* dir, const char* path, bool pFlag = true);
271 271
   // alias for backward compactability
272 272
   bool makeDir(SdBaseFile* dir, const char* path) {
@@ -279,7 +279,7 @@ class SdBaseFile {
279 279
   bool openRoot(SdVolume* vol);
280 280
   int peek();
281 281
   static void printFatDate(uint16_t fatDate);
282
-  static void printFatTime( uint16_t fatTime);
282
+  static void printFatTime(uint16_t fatTime);
283 283
   bool printName();
284 284
   int16_t read();
285 285
   int16_t read(void* buf, uint16_t nbyte);
@@ -309,7 +309,7 @@ class SdBaseFile {
309 309
   bool sync();
310 310
   bool timestamp(SdBaseFile* file);
311 311
   bool timestamp(uint8_t flag, uint16_t year, uint8_t month, uint8_t day,
312
-          uint8_t hour, uint8_t minute, uint8_t second);
312
+                 uint8_t hour, uint8_t minute, uint8_t second);
313 313
   /** Type of file.  You should use isFile() or isDir() instead of type()
314 314
    * if possible.
315 315
    *
@@ -320,7 +320,7 @@ class SdBaseFile {
320 320
   /** \return SdVolume that contains this file. */
321 321
   SdVolume* volume() const {return vol_;}
322 322
   int16_t write(const void* buf, uint16_t nbyte);
323
-//------------------------------------------------------------------------------
323
+  //------------------------------------------------------------------------------
324 324
  private:
325 325
   // allow SdFat to set cwd_
326 326
   friend class SdFat;
@@ -352,18 +352,18 @@ class SdBaseFile {
352 352
   bool addCluster();
353 353
   bool addDirCluster();
354 354
   dir_t* cacheDirEntry(uint8_t action);
355
-  int8_t lsPrintNext( uint8_t flags, uint8_t indent);
355
+  int8_t lsPrintNext(uint8_t flags, uint8_t indent);
356 356
   static bool make83Name(const char* str, uint8_t* name, const char** ptr);
357 357
   bool mkdir(SdBaseFile* parent, const uint8_t dname[11]);
358 358
   bool open(SdBaseFile* dirFile, const uint8_t dname[11], uint8_t oflag);
359 359
   bool openCachedEntry(uint8_t cacheIndex, uint8_t oflags);
360 360
   dir_t* readDirCache();
361
-//------------------------------------------------------------------------------
362
-// to be deleted
363
-  static void printDirName( const dir_t& dir,
364
-    uint8_t width, bool printSlash);
365
-//------------------------------------------------------------------------------
366
-// Deprecated functions  - suppress cpplint warnings with NOLINT comment
361
+  //------------------------------------------------------------------------------
362
+  // to be deleted
363
+  static void printDirName(const dir_t& dir,
364
+                           uint8_t width, bool printSlash);
365
+  //------------------------------------------------------------------------------
366
+  // Deprecated functions  - suppress cpplint warnings with NOLINT comment
367 367
 #if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
368 368
  public:
369 369
   /** \deprecated Use:
@@ -375,16 +375,16 @@ class SdBaseFile {
375 375
   bool contiguousRange(uint32_t& bgnBlock, uint32_t& endBlock) {  // NOLINT
376 376
     return contiguousRange(&bgnBlock, &endBlock);
377 377
   }
378
- /** \deprecated Use:
379
-   * bool createContiguous(SdBaseFile* dirFile,
380
-   *   const char* path, uint32_t size)
381
-   * \param[in] dirFile The directory where the file will be created.
382
-   * \param[in] path A path with a valid DOS 8.3 file name.
383
-   * \param[in] size The desired file size.
384
-   * \return true for success or false for failure.
385
-   */
378
+  /** \deprecated Use:
379
+    * bool createContiguous(SdBaseFile* dirFile,
380
+    *   const char* path, uint32_t size)
381
+    * \param[in] dirFile The directory where the file will be created.
382
+    * \param[in] path A path with a valid DOS 8.3 file name.
383
+    * \param[in] size The desired file size.
384
+    * \return true for success or false for failure.
385
+    */
386 386
   bool createContiguous(SdBaseFile& dirFile,  // NOLINT
387
-    const char* path, uint32_t size) {
387
+                        const char* path, uint32_t size) {
388 388
     return createContiguous(&dirFile, path, size);
389 389
   }
390 390
   /** \deprecated Use:
@@ -422,7 +422,7 @@ class SdBaseFile {
422 422
    * \return true for success or false for failure.
423 423
    */
424 424
   bool open(SdBaseFile& dirFile, // NOLINT
425
-    const char* path, uint8_t oflag) {
425
+            const char* path, uint8_t oflag) {
426 426
     return open(&dirFile, path, oflag);
427 427
   }
428 428
   /** \deprecated  Do not use in new apps
@@ -465,8 +465,8 @@ class SdBaseFile {
465 465
   static bool remove(SdBaseFile& dirFile, const char* path) {  // NOLINT
466 466
     return remove(&dirFile, path);
467 467
   }
468
-//------------------------------------------------------------------------------
469
-// rest are private
468
+  //------------------------------------------------------------------------------
469
+  // rest are private
470 470
  private:
471 471
   static void (*oldDateTime_)(uint16_t& date, uint16_t& time);  // NOLINT
472 472
   static void oldToNew(uint16_t* date, uint16_t* time) {

+ 92
- 92
Marlin/SdFatConfig.h View File

@@ -25,100 +25,100 @@
25 25
 #if ENABLED(SDSUPPORT)
26 26
 
27 27
 #ifndef SdFatConfig_h
28
-#define SdFatConfig_h
29
-#include <stdint.h>
30
-//------------------------------------------------------------------------------
31
-/**
32
- * To use multiple SD cards set USE_MULTIPLE_CARDS nonzero.
33
- *
34
- * Using multiple cards costs 400 - 500  bytes of flash.
35
- *
36
- * Each card requires about 550 bytes of SRAM so use of a Mega is recommended.
37
- */
38
-#define USE_MULTIPLE_CARDS 0
39
-//------------------------------------------------------------------------------
40
-/**
41
- * Call flush for endl if ENDL_CALLS_FLUSH is nonzero
42
- *
43
- * The standard for iostreams is to call flush.  This is very costly for
44
- * SdFat.  Each call to flush causes 2048 bytes of I/O to the SD.
45
- *
46
- * SdFat has a single 512 byte buffer for SD I/O so it must write the current
47
- * data block to the SD, read the directory block from the SD, update the
48
- * directory entry, write the directory block to the SD and read the data
49
- * block back into the buffer.
50
- *
51
- * The SD flash memory controller is not designed for this many rewrites
52
- * so performance may be reduced by more than a factor of 100.
53
- *
54
- * If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force
55
- * all data to be written to the SD.
56
- */
57
-#define ENDL_CALLS_FLUSH 0
58
-//------------------------------------------------------------------------------
59
-/**
60
- * Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero
61
- */
62
-#define ALLOW_DEPRECATED_FUNCTIONS 1
63
-//------------------------------------------------------------------------------
64
-/**
65
- * Allow FAT12 volumes if FAT12_SUPPORT is nonzero.
66
- * FAT12 has not been well tested.
67
- */
68
-#define FAT12_SUPPORT 0
69
-//------------------------------------------------------------------------------
70
-/**
71
- * SPI init rate for SD initialization commands. Must be 5 (F_CPU/64)
72
- * or 6 (F_CPU/128).
73
- */
74
-#define SPI_SD_INIT_RATE 5
75
-//------------------------------------------------------------------------------
76
-/**
77
- * Set the SS pin high for hardware SPI.  If SS is chip select for another SPI
78
- * device this will disable that device during the SD init phase.
79
- */
80
-#define SET_SPI_SS_HIGH 1
81
-//------------------------------------------------------------------------------
82
-/**
83
- * Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos.
84
- * Pins used are SS 10, MOSI 11, MISO 12, and SCK 13.
85
- *
86
- * MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used
87
- * on Mega Arduinos.  Software SPI works well with GPS Shield V1.1
88
- * but many SD cards will fail with GPS Shield V1.0.
89
- */
90
-#define MEGA_SOFT_SPI 0
91
-//------------------------------------------------------------------------------
92
-/**
93
- * Set USE_SOFTWARE_SPI nonzero to always use software SPI.
94
- */
95
-#define USE_SOFTWARE_SPI 0
96
-// define software SPI pins so Mega can use unmodified 168/328 shields
97
-/** Software SPI chip select pin for the SD */
98
-uint8_t const SOFT_SPI_CS_PIN = 10;
99
-/** Software SPI Master Out Slave In pin */
100
-uint8_t const SOFT_SPI_MOSI_PIN = 11;
101
-/** Software SPI Master In Slave Out pin */
102
-uint8_t const SOFT_SPI_MISO_PIN = 12;
103
-/** Software SPI Clock pin */
104
-uint8_t const SOFT_SPI_SCK_PIN = 13;
105
-//------------------------------------------------------------------------------
106
-/**
107
- * The __cxa_pure_virtual function is an error handler that is invoked when
108
- * a pure virtual function is called.
109
- */
110
-#define USE_CXA_PURE_VIRTUAL 1
28
+  #define SdFatConfig_h
29
+  #include <stdint.h>
30
+  //------------------------------------------------------------------------------
31
+  /**
32
+  * To use multiple SD cards set USE_MULTIPLE_CARDS nonzero.
33
+  *
34
+  * Using multiple cards costs 400 - 500  bytes of flash.
35
+  *
36
+  * Each card requires about 550 bytes of SRAM so use of a Mega is recommended.
37
+  */
38
+  #define USE_MULTIPLE_CARDS 0
39
+  //------------------------------------------------------------------------------
40
+  /**
41
+  * Call flush for endl if ENDL_CALLS_FLUSH is nonzero
42
+  *
43
+  * The standard for iostreams is to call flush.  This is very costly for
44
+  * SdFat.  Each call to flush causes 2048 bytes of I/O to the SD.
45
+  *
46
+  * SdFat has a single 512 byte buffer for SD I/O so it must write the current
47
+  * data block to the SD, read the directory block from the SD, update the
48
+  * directory entry, write the directory block to the SD and read the data
49
+  * block back into the buffer.
50
+  *
51
+  * The SD flash memory controller is not designed for this many rewrites
52
+  * so performance may be reduced by more than a factor of 100.
53
+  *
54
+  * If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force
55
+  * all data to be written to the SD.
56
+  */
57
+  #define ENDL_CALLS_FLUSH 0
58
+  //------------------------------------------------------------------------------
59
+  /**
60
+  * Allow use of deprecated functions if ALLOW_DEPRECATED_FUNCTIONS is nonzero
61
+  */
62
+  #define ALLOW_DEPRECATED_FUNCTIONS 1
63
+  //------------------------------------------------------------------------------
64
+  /**
65
+  * Allow FAT12 volumes if FAT12_SUPPORT is nonzero.
66
+  * FAT12 has not been well tested.
67
+  */
68
+  #define FAT12_SUPPORT 0
69
+  //------------------------------------------------------------------------------
70
+  /**
71
+  * SPI init rate for SD initialization commands. Must be 5 (F_CPU/64)
72
+  * or 6 (F_CPU/128).
73
+  */
74
+  #define SPI_SD_INIT_RATE 5
75
+  //------------------------------------------------------------------------------
76
+  /**
77
+  * Set the SS pin high for hardware SPI.  If SS is chip select for another SPI
78
+  * device this will disable that device during the SD init phase.
79
+  */
80
+  #define SET_SPI_SS_HIGH 1
81
+  //------------------------------------------------------------------------------
82
+  /**
83
+  * Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos.
84
+  * Pins used are SS 10, MOSI 11, MISO 12, and SCK 13.
85
+  *
86
+  * MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used
87
+  * on Mega Arduinos.  Software SPI works well with GPS Shield V1.1
88
+  * but many SD cards will fail with GPS Shield V1.0.
89
+  */
90
+  #define MEGA_SOFT_SPI 0
91
+  //------------------------------------------------------------------------------
92
+  /**
93
+  * Set USE_SOFTWARE_SPI nonzero to always use software SPI.
94
+  */
95
+  #define USE_SOFTWARE_SPI 0
96
+  // define software SPI pins so Mega can use unmodified 168/328 shields
97
+  /** Software SPI chip select pin for the SD */
98
+  uint8_t const SOFT_SPI_CS_PIN = 10;
99
+  /** Software SPI Master Out Slave In pin */
100
+  uint8_t const SOFT_SPI_MOSI_PIN = 11;
101
+  /** Software SPI Master In Slave Out pin */
102
+  uint8_t const SOFT_SPI_MISO_PIN = 12;
103
+  /** Software SPI Clock pin */
104
+  uint8_t const SOFT_SPI_SCK_PIN = 13;
105
+  //------------------------------------------------------------------------------
106
+  /**
107
+  * The __cxa_pure_virtual function is an error handler that is invoked when
108
+  * a pure virtual function is called.
109
+  */
110
+  #define USE_CXA_PURE_VIRTUAL 1
111 111
 
112
-/** Number of UTF-16 characters per entry */
113
-#define FILENAME_LENGTH 13
112
+  /** Number of UTF-16 characters per entry */
113
+  #define FILENAME_LENGTH 13
114 114
 
115
-/**
116
- * Defines for long (vfat) filenames
117
- */
118
-/** Number of VFAT entries used. Every entry has 13 UTF-16 characters */
119
-#define MAX_VFAT_ENTRIES (2)
120
-/** Total size of the buffer used to store the long filenames */
121
-#define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1)
115
+  /**
116
+  * Defines for long (vfat) filenames
117
+  */
118
+  /** Number of VFAT entries used. Every entry has 13 UTF-16 characters */
119
+  #define MAX_VFAT_ENTRIES (2)
120
+  /** Total size of the buffer used to store the long filenames */
121
+  #define LONG_FILENAME_LENGTH (FILENAME_LENGTH*MAX_VFAT_ENTRIES+1)
122 122
 #endif  // SdFatConfig_h
123 123
 
124 124
 

+ 19
- 19
Marlin/SdFatStructs.h View File

@@ -55,9 +55,9 @@ struct partitionTable {
55 55
            */
56 56
   uint8_t  boot;
57 57
           /**
58
-            * Head part of Cylinder-head-sector address of the first block in
59
-            * the partition. Legal values are 0-255. Only used in old PC BIOS.
60
-            */
58
+           * Head part of Cylinder-head-sector address of the first block in
59
+           * the partition. Legal values are 0-255. Only used in old PC BIOS.
60
+           */
61 61
   uint8_t  beginHead;
62 62
           /**
63 63
            * Sector part of Cylinder-head-sector address of the first block in
@@ -337,10 +337,10 @@ struct fat32_boot {
337 337
            * Bits 0-3 -- Zero-based number of active FAT.
338 338
            *             Only valid if mirroring is disabled.
339 339
            * Bits 4-6 -- Reserved.
340
-           * Bit 7	-- 0 means the FAT is mirrored at runtime into all FATs.
341
-	         *        -- 1 means only one FAT is active; it is the one referenced
342
-	         *             in bits 0-3.
343
-           * Bits 8-15 	-- Reserved.
340
+           * Bit 7  -- 0 means the FAT is mirrored at runtime into all FATs.
341
+           *        -- 1 means only one FAT is active; it is the one referenced
342
+           *             in bits 0-3.
343
+           * Bits 8-15  -- Reserved.
344 344
            */
345 345
   uint16_t fat32Flags;
346 346
           /**
@@ -468,29 +468,29 @@ uint32_t const FAT32MASK = 0X0FFFFFFF;
468 468
  * \brief FAT short directory entry
469 469
  *
470 470
  * Short means short 8.3 name, not the entry size.
471
- *  
472
- * Date Format. A FAT directory entry date stamp is a 16-bit field that is 
471
+ *
472
+ * Date Format. A FAT directory entry date stamp is a 16-bit field that is
473 473
  * basically a date relative to the MS-DOS epoch of 01/01/1980. Here is the
474
- * format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the 
474
+ * format (bit 0 is the LSB of the 16-bit word, bit 15 is the MSB of the
475 475
  * 16-bit word):
476
- *   
477
- * Bits 9-15: Count of years from 1980, valid value range 0-127 
476
+ *
477
+ * Bits 9-15: Count of years from 1980, valid value range 0-127
478 478
  * inclusive (1980-2107).
479
- *   
479
+ *
480 480
  * Bits 5-8: Month of year, 1 = January, valid value range 1-12 inclusive.
481 481
  *
482 482
  * Bits 0-4: Day of month, valid value range 1-31 inclusive.
483 483
  *
484 484
  * Time Format. A FAT directory entry time stamp is a 16-bit field that has
485
- * a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the 
485
+ * a granularity of 2 seconds. Here is the format (bit 0 is the LSB of the
486 486
  * 16-bit word, bit 15 is the MSB of the 16-bit word).
487
- *   
487
+ *
488 488
  * Bits 11-15: Hours, valid value range 0-23 inclusive.
489
- * 
489
+ *
490 490
  * Bits 5-10: Minutes, valid value range 0-59 inclusive.
491
- *      
491
+ *
492 492
  * Bits 0-4: 2-second count, valid value range 0-29 inclusive (0 - 58 seconds).
493
- *   
493
+ *
494 494
  * The valid time range is from Midnight 00:00:00 to 23:59:58.
495 495
  */
496 496
 struct directoryEntry {
@@ -548,7 +548,7 @@ struct directoryEntry {
548 548
  *
549 549
  * directoryVFATEntries are found in the same list as normal directoryEntry.
550 550
  * But have the attribute field set to DIR_ATT_LONG_NAME.
551
- * 
551
+ *
552 552
  * Long filenames are saved in multiple directoryVFATEntries.
553 553
  * Each entry containing 13 UTF-16 characters.
554 554
  */

+ 5
- 5
Marlin/SdFatUtil.cpp View File

@@ -33,7 +33,7 @@ int SdFatUtil::FreeRam() {
33 33
   return &top - reinterpret_cast<char*>(sbrk(0));
34 34
 }
35 35
 #else  // __arm__
36
-extern char *__brkval;
36
+extern char* __brkval;
37 37
 extern char __bss_end;
38 38
 /** Amount of free RAM
39 39
  * \return The number of free bytes.
@@ -50,7 +50,7 @@ int SdFatUtil::FreeRam() {
50 50
  * \param[in] pr Print object for output.
51 51
  * \param[in] str Pointer to string stored in flash memory.
52 52
  */
53
-void SdFatUtil::print_P( PGM_P str) {
53
+void SdFatUtil::print_P(PGM_P str) {
54 54
   for (uint8_t c; (c = pgm_read_byte(str)); str++) MYSERIAL.write(c);
55 55
 }
56 56
 //------------------------------------------------------------------------------
@@ -59,8 +59,8 @@ void SdFatUtil::print_P( PGM_P str) {
59 59
  * \param[in] pr Print object for output.
60 60
  * \param[in] str Pointer to string stored in flash memory.
61 61
  */
62
-void SdFatUtil::println_P( PGM_P str) {
63
-  print_P( str);
62
+void SdFatUtil::println_P(PGM_P str) {
63
+  print_P(str);
64 64
   MYSERIAL.println();
65 65
 }
66 66
 //------------------------------------------------------------------------------
@@ -77,6 +77,6 @@ void SdFatUtil::SerialPrint_P(PGM_P str) {
77 77
  * \param[in] str Pointer to string stored in flash memory.
78 78
  */
79 79
 void SdFatUtil::SerialPrintln_P(PGM_P str) {
80
-  println_P( str);
80
+  println_P(str);
81 81
 }
82 82
 #endif

+ 2
- 2
Marlin/SdFatUtil.h View File

@@ -35,8 +35,8 @@
35 35
 
36 36
 namespace SdFatUtil {
37 37
   int FreeRam();
38
-  void print_P( PGM_P str);
39
-  void println_P( PGM_P str);
38
+  void print_P(PGM_P str);
39
+  void println_P(PGM_P str);
40 40
   void SerialPrint_P(PGM_P str);
41 41
   void SerialPrintln_P(PGM_P str);
42 42
 }

+ 4
- 6
Marlin/SdFile.cpp View File

@@ -55,15 +55,13 @@ int16_t SdFile::write(const void* buf, uint16_t nbyte) {
55 55
  * Use writeError to check for errors.
56 56
  */
57 57
 #if ARDUINO >= 100
58
-size_t SdFile::write(uint8_t b)
59
-{
58
+  size_t SdFile::write(uint8_t b) {
60 59
     return SdBaseFile::write(&b, 1);
61
-}
60
+  }
62 61
 #else
63
-void SdFile::write(uint8_t b)
64
-{
62
+  void SdFile::write(uint8_t b) {
65 63
     SdBaseFile::write(&b, 1);
66
-}
64
+  }
67 65
 #endif
68 66
 //------------------------------------------------------------------------------
69 67
 /** Write a string to a file. Used by the Arduino Print class.

+ 2
- 2
Marlin/SdFile.h View File

@@ -38,11 +38,11 @@ class SdFile : public SdBaseFile, public Print {
38 38
   SdFile() {}
39 39
   SdFile(const char* name, uint8_t oflag);
40 40
   #if ARDUINO >= 100
41
-      size_t write(uint8_t b);
41
+    size_t write(uint8_t b);
42 42
   #else
43 43
    void write(uint8_t b);
44 44
   #endif
45
-  
45
+
46 46
   int16_t write(const void* buf, uint16_t nbyte);
47 47
   void write(const char* str);
48 48
   void write_P(PGM_P str);

+ 7
- 7
Marlin/SdInfo.h View File

@@ -118,13 +118,13 @@ typedef struct CID {
118 118
   /** Manufacturing date month */
119 119
   unsigned char mdt_month : 4;
120 120
   /** Manufacturing date year low digit */
121
-  unsigned char mdt_year_low :4;
121
+  unsigned char mdt_year_low : 4;
122 122
   // byte 15
123 123
   /** not used always 1 */
124 124
   unsigned char always1 : 1;
125 125
   /** CRC7 checksum */
126 126
   unsigned char crc : 7;
127
-}cid_t;
127
+} cid_t;
128 128
 //------------------------------------------------------------------------------
129 129
 /** CSD for version 1.00 cards */
130 130
 typedef struct CSDV1 {
@@ -146,7 +146,7 @@ typedef struct CSDV1 {
146 146
   unsigned char c_size_high : 2;
147 147
   unsigned char reserved2 : 2;
148 148
   unsigned char dsr_imp : 1;
149
-  unsigned char read_blk_misalign :1;
149
+  unsigned char read_blk_misalign : 1;
150 150
   unsigned char write_blk_misalign : 1;
151 151
   unsigned char read_bl_partial : 1;
152 152
   // byte 7
@@ -154,7 +154,7 @@ typedef struct CSDV1 {
154 154
   // byte 8
155 155
   unsigned char vdd_r_curr_max : 3;
156 156
   unsigned char vdd_r_curr_min : 3;
157
-  unsigned char c_size_low :2;
157
+  unsigned char c_size_low : 2;
158 158
   // byte 9
159 159
   unsigned char c_size_mult_high : 2;
160 160
   unsigned char vdd_w_cur_max : 3;
@@ -186,7 +186,7 @@ typedef struct CSDV1 {
186 186
   // byte 15
187 187
   unsigned char always1 : 1;
188 188
   unsigned char crc : 7;
189
-}csd1_t;
189
+} csd1_t;
190 190
 //------------------------------------------------------------------------------
191 191
 /** CSD for version 2.00 cards */
192 192
 typedef struct CSDV2 {
@@ -212,7 +212,7 @@ typedef struct CSDV2 {
212 212
   unsigned char reserved2 : 4;
213 213
   unsigned char dsr_imp : 1;
214 214
   /** fixed to 0 */
215
-  unsigned char read_blk_misalign :1;
215
+  unsigned char read_blk_misalign : 1;
216 216
   /** fixed to 0 */
217 217
   unsigned char write_blk_misalign : 1;
218 218
   /** fixed to 0 - no partial read */
@@ -268,7 +268,7 @@ typedef struct CSDV2 {
268 268
   unsigned char always1 : 1;
269 269
   /** checksum */
270 270
   unsigned char crc : 7;
271
-}csd2_t;
271
+} csd2_t;
272 272
 //------------------------------------------------------------------------------
273 273
 /** union of old and new style CSD register */
274 274
 union csd_t {

+ 53
- 47
Marlin/SdVolume.cpp View File

@@ -23,12 +23,12 @@
23 23
 #include "SdVolume.h"
24 24
 //------------------------------------------------------------------------------
25 25
 #if !USE_MULTIPLE_CARDS
26
-// raw block cache
27
-uint32_t SdVolume::cacheBlockNumber_;  // current block number
28
-cache_t  SdVolume::cacheBuffer_;       // 512 byte cache for Sd2Card
29
-Sd2Card* SdVolume::sdCard_;            // pointer to SD card object
30
-bool     SdVolume::cacheDirty_;        // cacheFlush() will write block if true
31
-uint32_t SdVolume::cacheMirrorBlock_;  // mirror  block for second FAT
26
+  // raw block cache
27
+  uint32_t SdVolume::cacheBlockNumber_;  // current block number
28
+  cache_t  SdVolume::cacheBuffer_;       // 512 byte cache for Sd2Card
29
+  Sd2Card* SdVolume::sdCard_;            // pointer to SD card object
30
+  bool     SdVolume::cacheDirty_;        // cacheFlush() will write block if true
31
+  uint32_t SdVolume::cacheMirrorBlock_;  // mirror  block for second FAT
32 32
 #endif  // USE_MULTIPLE_CARDS
33 33
 //------------------------------------------------------------------------------
34 34
 // find a contiguous group of clusters
@@ -50,7 +50,8 @@ bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) {
50 50
 
51 51
     // don't save new start location
52 52
     setStart = false;
53
-  } else {
53
+  }
54
+  else {
54 55
     // start at likely place for free cluster
55 56
     bgnCluster = allocSearchStart_;
56 57
 
@@ -75,7 +76,8 @@ bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) {
75 76
     if (f != 0) {
76 77
       // cluster in use try next cluster as bgnCluster
77 78
       bgnCluster = endCluster + 1;
78
-    } else if ((endCluster - bgnCluster + 1) == count) {
79
+    }
80
+    else if ((endCluster - bgnCluster + 1) == count) {
79 81
       // done - found space
80 82
       break;
81 83
     }
@@ -99,8 +101,7 @@ bool SdVolume::allocContiguous(uint32_t count, uint32_t* curCluster) {
99 101
   if (setStart) allocSearchStart_ = bgnCluster + 1;
100 102
 
101 103
   return true;
102
-
103
- fail:
104
+fail:
104 105
   return false;
105 106
 }
106 107
 //------------------------------------------------------------------------------
@@ -119,8 +120,7 @@ bool SdVolume::cacheFlush() {
119 120
     cacheDirty_ = 0;
120 121
   }
121 122
   return true;
122
-
123
- fail:
123
+fail:
124 124
   return false;
125 125
 }
126 126
 //------------------------------------------------------------------------------
@@ -132,8 +132,7 @@ bool SdVolume::cacheRawBlock(uint32_t blockNumber, bool dirty) {
132 132
   }
133 133
   if (dirty) cacheDirty_ = true;
134 134
   return true;
135
-
136
- fail:
135
+fail:
137 136
   return false;
138 137
 }
139 138
 //------------------------------------------------------------------------------
@@ -146,8 +145,7 @@ bool SdVolume::chainSize(uint32_t cluster, uint32_t* size) {
146 145
   } while (!isEOC(cluster));
147 146
   *size = s;
148 147
   return true;
149
-
150
- fail:
148
+fail:
151 149
   return false;
152 150
 }
153 151
 //------------------------------------------------------------------------------
@@ -173,9 +171,11 @@ bool SdVolume::fatGet(uint32_t cluster, uint32_t* value) {
173 171
   }
174 172
   if (fatType_ == 16) {
175 173
     lba = fatStartBlock_ + (cluster >> 8);
176
-  } else if (fatType_ == 32) {
174
+  }
175
+  else if (fatType_ == 32) {
177 176
     lba = fatStartBlock_ + (cluster >> 7);
178
-  } else {
177
+  }
178
+  else {
179 179
     goto fail;
180 180
   }
181 181
   if (lba != cacheBlockNumber_) {
@@ -183,12 +183,12 @@ bool SdVolume::fatGet(uint32_t cluster, uint32_t* value) {
183 183
   }
184 184
   if (fatType_ == 16) {
185 185
     *value = cacheBuffer_.fat16[cluster & 0XFF];
186
-  } else {
186
+  }
187
+  else {
187 188
     *value = cacheBuffer_.fat32[cluster & 0X7F] & FAT32MASK;
188 189
   }
189 190
   return true;
190
-
191
- fail:
191
+fail:
192 192
   return false;
193 193
 }
194 194
 //------------------------------------------------------------------------------
@@ -231,23 +231,25 @@ bool SdVolume::fatPut(uint32_t cluster, uint32_t value) {
231 231
   }
232 232
   if (fatType_ == 16) {
233 233
     lba = fatStartBlock_ + (cluster >> 8);
234
-  } else if (fatType_ == 32) {
234
+  }
235
+  else if (fatType_ == 32) {
235 236
     lba = fatStartBlock_ + (cluster >> 7);
236
-  } else {
237
+  }
238
+  else {
237 239
     goto fail;
238 240
   }
239 241
   if (!cacheRawBlock(lba, CACHE_FOR_WRITE)) goto fail;
240 242
   // store entry
241 243
   if (fatType_ == 16) {
242 244
     cacheBuffer_.fat16[cluster & 0XFF] = value;
243
-  } else {
245
+  }
246
+  else {
244 247
     cacheBuffer_.fat32[cluster & 0X7F] = value;
245 248
   }
246 249
   // mirror second FAT
247 250
   if (fatCount_ > 1) cacheMirrorBlock_ = lba + blocksPerFat_;
248 251
   return true;
249
-
250
- fail:
252
+fail:
251 253
   return false;
252 254
 }
253 255
 //------------------------------------------------------------------------------
@@ -268,8 +270,7 @@ bool SdVolume::freeChain(uint32_t cluster) {
268 270
   } while (!isEOC(cluster));
269 271
 
270 272
   return true;
271
-
272
- fail:
273
+fail:
273 274
   return false;
274 275
 }
275 276
 //------------------------------------------------------------------------------
@@ -284,9 +285,11 @@ int32_t SdVolume::freeClusterCount() {
284 285
 
285 286
   if (fatType_ == 16) {
286 287
     n = 256;
287
-  } else if (fatType_ == 32) {
288
+  }
289
+  else if (fatType_ == 32) {
288 290
     n = 128;
289
-  } else {
291
+  }
292
+  else {
290 293
     // put FAT12 here
291 294
     return -1;
292 295
   }
@@ -298,7 +301,8 @@ int32_t SdVolume::freeClusterCount() {
298 301
       for (uint16_t i = 0; i < n; i++) {
299 302
         if (cacheBuffer_.fat16[i] == 0) free++;
300 303
       }
301
-    } else {
304
+    }
305
+    else {
302 306
       for (uint16_t i = 0; i < n; i++) {
303 307
         if (cacheBuffer_.fat32[i] == 0) free++;
304 308
       }
@@ -338,10 +342,10 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
338 342
   if (part) {
339 343
     if (part > 4)goto fail;
340 344
     if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail;
341
-    part_t* p = &cacheBuffer_.mbr.part[part-1];
342
-    if ((p->boot & 0X7F) !=0  ||
343
-      p->totalSectors < 100 ||
344
-      p->firstSector == 0) {
345
+    part_t* p = &cacheBuffer_.mbr.part[part - 1];
346
+    if ((p->boot & 0X7F) != 0  ||
347
+        p->totalSectors < 100 ||
348
+        p->firstSector == 0) {
345 349
       // not a valid partition
346 350
       goto fail;
347 351
     }
@@ -350,11 +354,11 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
350 354
   if (!cacheRawBlock(volumeStartBlock, CACHE_FOR_READ)) goto fail;
351 355
   fbs = &cacheBuffer_.fbs32;
352 356
   if (fbs->bytesPerSector != 512 ||
353
-    fbs->fatCount == 0 ||
354
-    fbs->reservedSectorCount == 0 ||
355
-    fbs->sectorsPerCluster == 0) {
356
-       // not valid FAT volume
357
-      goto fail;
357
+      fbs->fatCount == 0 ||
358
+      fbs->reservedSectorCount == 0 ||
359
+      fbs->sectorsPerCluster == 0) {
360
+    // not valid FAT volume
361
+    goto fail;
358 362
   }
359 363
   fatCount_ = fbs->fatCount;
360 364
   blocksPerCluster_ = fbs->sectorsPerCluster;
@@ -365,7 +369,7 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
365 369
     if (clusterSizeShift_++ > 7) goto fail;
366 370
   }
367 371
   blocksPerFat_ = fbs->sectorsPerFat16 ?
368
-                    fbs->sectorsPerFat16 : fbs->sectorsPerFat32;
372
+                  fbs->sectorsPerFat16 : fbs->sectorsPerFat32;
369 373
 
370 374
   fatStartBlock_ = volumeStartBlock + fbs->reservedSectorCount;
371 375
 
@@ -376,11 +380,12 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
376 380
   rootDirStart_ = fatStartBlock_ + fbs->fatCount * blocksPerFat_;
377 381
 
378 382
   // data start for FAT16 and FAT32
379
-  dataStartBlock_ = rootDirStart_ + ((32 * fbs->rootDirEntryCount + 511)/512);
383
+  dataStartBlock_ = rootDirStart_ + ((32 * fbs->rootDirEntryCount + 511) / 512);
380 384
 
381 385
   // total blocks for FAT16 or FAT32
382 386
   totalBlocks = fbs->totalSectors16 ?
383
-                           fbs->totalSectors16 : fbs->totalSectors32;
387
+                fbs->totalSectors16 : fbs->totalSectors32;
388
+
384 389
   // total data blocks
385 390
   clusterCount_ = totalBlocks - (dataStartBlock_ - volumeStartBlock);
386 391
 
@@ -391,15 +396,16 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
391 396
   if (clusterCount_ < 4085) {
392 397
     fatType_ = 12;
393 398
     if (!FAT12_SUPPORT) goto fail;
394
-  } else if (clusterCount_ < 65525) {
399
+  }
400
+  else if (clusterCount_ < 65525) {
395 401
     fatType_ = 16;
396
-  } else {
402
+  }
403
+  else {
397 404
     rootDirStart_ = fbs->fat32RootCluster;
398 405
     fatType_ = 32;
399 406
   }
400 407
   return true;
401
-
402
- fail:
408
+fail:
403 409
   return false;
404 410
 }
405 411
 #endif

+ 11
- 7
Marlin/SdVolume.h View File

@@ -117,7 +117,7 @@ class SdVolume {
117 117
    * \return true for success or false for failure
118 118
    */
119 119
   bool dbgFat(uint32_t n, uint32_t* v) {return fatGet(n, v);}
120
-//------------------------------------------------------------------------------
120
+  //------------------------------------------------------------------------------
121 121
  private:
122 122
   // Allow SdBaseFile access to SdVolume private data.
123 123
   friend class SdBaseFile;
@@ -154,12 +154,15 @@ class SdVolume {
154 154
   //----------------------------------------------------------------------------
155 155
   bool allocContiguous(uint32_t count, uint32_t* curCluster);
156 156
   uint8_t blockOfCluster(uint32_t position) const {
157
-          return (position >> 9) & (blocksPerCluster_ - 1);}
157
+    return (position >> 9) & (blocksPerCluster_ - 1);
158
+  }
158 159
   uint32_t clusterStartBlock(uint32_t cluster) const {
159
-           return dataStartBlock_ + ((cluster - 2) << clusterSizeShift_);}
160
+    return dataStartBlock_ + ((cluster - 2) << clusterSizeShift_);
161
+  }
160 162
   uint32_t blockNumber(uint32_t cluster, uint32_t position) const {
161
-           return clusterStartBlock(cluster) + blockOfCluster(position);}
162
-  cache_t *cache() {return &cacheBuffer_;}
163
+    return clusterStartBlock(cluster) + blockOfCluster(position);
164
+  }
165
+  cache_t* cache() {return &cacheBuffer_;}
163 166
   uint32_t cacheBlockNumber() {return cacheBlockNumber_;}
164 167
 #if USE_MULTIPLE_CARDS
165 168
   bool cacheFlush();
@@ -187,11 +190,12 @@ class SdVolume {
187 190
     return  cluster >= FAT32EOC_MIN;
188 191
   }
189 192
   bool readBlock(uint32_t block, uint8_t* dst) {
190
-    return sdCard_->readBlock(block, dst);}
193
+    return sdCard_->readBlock(block, dst);
194
+  }
191 195
   bool writeBlock(uint32_t block, const uint8_t* dst) {
192 196
     return sdCard_->writeBlock(block, dst);
193 197
   }
194
-//------------------------------------------------------------------------------
198
+  //------------------------------------------------------------------------------
195 199
   // Deprecated functions  - suppress cpplint warnings with NOLINT comment
196 200
 #if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
197 201
  public:

+ 1
- 1
Marlin/blinkm.cpp View File

@@ -9,7 +9,7 @@
9 9
 #include "blinkm.h"
10 10
 
11 11
 void SendColors(byte red, byte grn, byte blu) {
12
-  Wire.begin(); 
12
+  Wire.begin();
13 13
   Wire.beginTransmission(0x09);
14 14
   Wire.write('o');                    //to disable ongoing script, only needs to be used once
15 15
   Wire.write('n');

+ 1
- 1
Marlin/buzzer.h View File

@@ -2,7 +2,7 @@
2 2
   #define BUZZER_H
3 3
 
4 4
   #if HAS_BUZZER
5
-    void buzz(long duration,uint16_t freq);
5
+    void buzz(long duration, uint16_t freq);
6 6
   #endif
7 7
 
8 8
 #endif //BUZZER_H

+ 27
- 28
Marlin/cardreader.cpp View File

@@ -248,9 +248,8 @@ void CardReader::release() {
248 248
 }
249 249
 
250 250
 void CardReader::startFileprint() {
251
-  if (cardOK) {
251
+  if (cardOK)
252 252
     sdprinting = true;
253
-  }
254 253
 }
255 254
 
256 255
 void CardReader::pauseSDPrint() {
@@ -267,7 +266,7 @@ void CardReader::getAbsFilename(char *t) {
267 266
   *t = '/'; t++; cnt++;
268 267
   for (uint8_t i = 0; i < workDirDepth; i++) {
269 268
     workDirParents[i].getFilename(t); //SDBaseFile.getfilename!
270
-    while(*t && cnt < MAXPATHNAMELENGTH) { t++; cnt++; } //crawl counter forward.
269
+    while (*t && cnt < MAXPATHNAMELENGTH) { t++; cnt++; } //crawl counter forward.
271 270
   }
272 271
   if (cnt < MAXPATHNAMELENGTH - FILENAME_LENGTH)
273 272
     file.getFilename(t);
@@ -279,34 +278,34 @@ void CardReader::openFile(char* name, bool read, bool replace_current/*=true*/)
279 278
   if (!cardOK) return;
280 279
   if (file.isOpen()) { //replacing current file by new file, or subfile call
281 280
     if (!replace_current) {
282
-     if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
283
-       SERIAL_ERROR_START;
284
-       SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
285
-       SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
286
-       kill(PSTR(MSG_KILLED));
287
-       return;
288
-     }
281
+      if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
282
+        SERIAL_ERROR_START;
283
+        SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
284
+        SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
285
+        kill(PSTR(MSG_KILLED));
286
+        return;
287
+      }
289 288
 
290
-     SERIAL_ECHO_START;
291
-     SERIAL_ECHOPGM("SUBROUTINE CALL target:\"");
292
-     SERIAL_ECHO(name);
293
-     SERIAL_ECHOPGM("\" parent:\"");
289
+      SERIAL_ECHO_START;
290
+      SERIAL_ECHOPGM("SUBROUTINE CALL target:\"");
291
+      SERIAL_ECHO(name);
292
+      SERIAL_ECHOPGM("\" parent:\"");
294 293
 
295
-     //store current filename and position
296
-     getAbsFilename(filenames[file_subcall_ctr]);
294
+      //store current filename and position
295
+      getAbsFilename(filenames[file_subcall_ctr]);
297 296
 
298
-     SERIAL_ECHO(filenames[file_subcall_ctr]);
299
-     SERIAL_ECHOPGM("\" pos");
300
-     SERIAL_ECHOLN(sdpos);
301
-     filespos[file_subcall_ctr] = sdpos;
302
-     file_subcall_ctr++;
303
-    }
304
-    else {
305
-     SERIAL_ECHO_START;
306
-     SERIAL_ECHOPGM("Now doing file: ");
307
-     SERIAL_ECHOLN(name);
308
-    }
309
-    file.close();
297
+      SERIAL_ECHO(filenames[file_subcall_ctr]);
298
+      SERIAL_ECHOPGM("\" pos");
299
+      SERIAL_ECHOLN(sdpos);
300
+      filespos[file_subcall_ctr] = sdpos;
301
+      file_subcall_ctr++;
302
+     }
303
+     else {
304
+      SERIAL_ECHO_START;
305
+      SERIAL_ECHOPGM("Now doing file: ");
306
+      SERIAL_ECHOLN(name);
307
+     }
308
+     file.close();
310 309
   }
311 310
   else { //opening fresh file
312 311
     file_subcall_ctr = 0; //resetting procedure depth in case user cancels print while in procedure

+ 1
- 1
Marlin/cardreader.h View File

@@ -38,7 +38,7 @@ public:
38 38
   void getAbsFilename(char *t);
39 39
 
40 40
   void ls();
41
-  void chdir(const char * relpath);
41
+  void chdir(const char *relpath);
42 42
   void updir();
43 43
   void setroot();
44 44
 

+ 11
- 11
Marlin/configuration_store.cpp View File

@@ -102,7 +102,7 @@
102 102
 
103 103
 void _EEPROM_writeData(int &pos, uint8_t* value, uint8_t size) {
104 104
   uint8_t c;
105
-  while(size--) {
105
+  while (size--) {
106 106
     eeprom_write_byte((unsigned char*)pos, *value);
107 107
     c = eeprom_read_byte((unsigned char*)pos);
108 108
     if (c != *value) {
@@ -156,7 +156,7 @@ void Config_StoreSettings()  {
156 156
   uint8_t mesh_num_y = 3;
157 157
   #if ENABLED(MESH_BED_LEVELING)
158 158
     // Compile time test that sizeof(mbl.z_values) is as expected
159
-    typedef char c_assert[(sizeof(mbl.z_values) == MESH_NUM_X_POINTS*MESH_NUM_Y_POINTS*sizeof(dummy)) ? 1 : -1];
159
+    typedef char c_assert[(sizeof(mbl.z_values) == MESH_NUM_X_POINTS * MESH_NUM_Y_POINTS * sizeof(dummy)) ? 1 : -1];
160 160
     mesh_num_x = MESH_NUM_X_POINTS;
161 161
     mesh_num_y = MESH_NUM_Y_POINTS;
162 162
     EEPROM_WRITE_VAR(i, mbl.active);
@@ -169,7 +169,7 @@ void Config_StoreSettings()  {
169 169
     EEPROM_WRITE_VAR(i, mesh_num_x);
170 170
     EEPROM_WRITE_VAR(i, mesh_num_y);
171 171
     dummy = 0.0f;
172
-    for (uint8_t q=0; q<mesh_num_x*mesh_num_y; q++) EEPROM_WRITE_VAR(i, dummy);
172
+    for (uint8_t q = 0; q < mesh_num_x * mesh_num_y; q++) EEPROM_WRITE_VAR(i, dummy);
173 173
   #endif // MESH_BED_LEVELING
174 174
 
175 175
   #if DISABLED(AUTO_BED_LEVELING_FEATURE)
@@ -185,10 +185,10 @@ void Config_StoreSettings()  {
185 185
   #elif ENABLED(Z_DUAL_ENDSTOPS)
186 186
     EEPROM_WRITE_VAR(i, z_endstop_adj);            // 1 floats
187 187
     dummy = 0.0f;
188
-    for (int q=5; q--;) EEPROM_WRITE_VAR(i, dummy);
188
+    for (int q = 5; q--;) EEPROM_WRITE_VAR(i, dummy);
189 189
   #else
190 190
     dummy = 0.0f;
191
-    for (int q=6; q--;) EEPROM_WRITE_VAR(i, dummy);
191
+    for (int q = 6; q--;) EEPROM_WRITE_VAR(i, dummy);
192 192
   #endif
193 193
 
194 194
   #if DISABLED(ULTIPANEL)
@@ -579,7 +579,7 @@ void Config_ResetDefault() {
579 579
   #endif
580 580
 
581 581
   volumetric_enabled = false;
582
-  for (uint8_t q=0; q<COUNT(filament_size); q++)
582
+  for (uint8_t q = 0; q < COUNT(filament_size); q++)
583 583
     filament_size[q] = DEFAULT_NOMINAL_FILAMENT_DIA;
584 584
   calculate_volumetric_multipliers();
585 585
 
@@ -686,8 +686,8 @@ void Config_PrintSettings(bool forReplay) {
686 686
     SERIAL_ECHOPAIR(" X", (unsigned long)MESH_NUM_X_POINTS);
687 687
     SERIAL_ECHOPAIR(" Y", (unsigned long)MESH_NUM_Y_POINTS);
688 688
     SERIAL_EOL;
689
-    for (int y=0; y<MESH_NUM_Y_POINTS; y++) {
690
-      for (int x=0; x<MESH_NUM_X_POINTS; x++) {
689
+    for (int y = 0; y < MESH_NUM_Y_POINTS; y++) {
690
+      for (int x = 0; x < MESH_NUM_X_POINTS; x++) {
691 691
         CONFIG_ECHO_START;
692 692
         SERIAL_ECHOPAIR("  M421 X", mbl.get_x(x));
693 693
         SERIAL_ECHOPAIR(" Y", mbl.get_y(y));
@@ -721,7 +721,7 @@ void Config_PrintSettings(bool forReplay) {
721 721
       CONFIG_ECHO_START;
722 722
     }
723 723
     SERIAL_ECHOPAIR("  M666 Z", z_endstop_adj);
724
-    SERIAL_EOL;  
724
+    SERIAL_EOL;
725 725
   #endif // DELTA
726 726
 
727 727
   #if ENABLED(ULTIPANEL)
@@ -810,7 +810,7 @@ void Config_PrintSettings(bool forReplay) {
810 810
     #if EXTRUDERS > 1
811 811
       SERIAL_ECHOPAIR(" W", retract_length_swap);
812 812
     #endif
813
-    SERIAL_ECHOPAIR(" F", retract_feedrate*60);
813
+    SERIAL_ECHOPAIR(" F", retract_feedrate * 60);
814 814
     SERIAL_ECHOPAIR(" Z", retract_zlift);
815 815
     SERIAL_EOL;
816 816
     CONFIG_ECHO_START;
@@ -822,7 +822,7 @@ void Config_PrintSettings(bool forReplay) {
822 822
     #if EXTRUDERS > 1
823 823
       SERIAL_ECHOPAIR(" W", retract_recover_length_swap);
824 824
     #endif
825
-    SERIAL_ECHOPAIR(" F", retract_recover_feedrate*60);
825
+    SERIAL_ECHOPAIR(" F", retract_recover_feedrate * 60);
826 826
     SERIAL_EOL;
827 827
     CONFIG_ECHO_START;
828 828
     if (!forReplay) {

+ 5
- 6
Marlin/digipot_mcp4451.cpp View File

@@ -16,7 +16,7 @@
16 16
 #endif
17 17
 
18 18
 static byte current_to_wiper(float current) {
19
-  return byte(ceil(float((DIGIPOT_I2C_FACTOR*current))));
19
+  return byte(ceil(float((DIGIPOT_I2C_FACTOR * current))));
20 20
 }
21 21
 
22 22
 static void i2c_send(byte addr, byte a, byte b) {
@@ -28,13 +28,13 @@ static void i2c_send(byte addr, byte a, byte b) {
28 28
 
29 29
 // This is for the MCP4451 I2C based digipot
30 30
 void digipot_i2c_set_current(int channel, float current) {
31
-  current = min( (float) max( current, 0.0f ), DIGIPOT_I2C_MAX_CURRENT);
31
+  current = min((float) max(current, 0.0f), DIGIPOT_I2C_MAX_CURRENT);
32 32
   // these addresses are specific to Azteeg X3 Pro, can be set to others,
33 33
   // In this case first digipot is at address A0=0, A1= 0, second one is at A0=0, A1= 1
34 34
   byte addr = 0x2C; // channel 0-3
35 35
   if (channel >= 4) {
36
-  	addr = 0x2E; // channel 4-7
37
-  	channel -= 4;
36
+    addr = 0x2E; // channel 4-7
37
+    channel -= 4;
38 38
   }
39 39
 
40 40
   // Initial setup
@@ -50,9 +50,8 @@ void digipot_i2c_init() {
50 50
   const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS;
51 51
   Wire.begin();
52 52
   // setup initial currents as defined in Configuration_adv.h
53
-  for(int i = 0; i < COUNT(digipot_motor_current); i++) {
53
+  for (int i = 0; i < COUNT(digipot_motor_current); i++)
54 54
     digipot_i2c_set_current(i, digipot_motor_current[i]);
55
-  }
56 55
 }
57 56
 
58 57
 #endif //DIGIPOT_I2C

+ 206
- 207
Marlin/dogm_bitmaps.h View File

@@ -1,6 +1,6 @@
1 1
 // BitMap for splashscreen
2 2
 // Generated with: http://www.digole.com/tools/PicturetoC_Hex_converter.php
3
-// Please note that using the high-res version takes 402Bytes of PROGMEM. 
3
+// Please note that using the high-res version takes 402Bytes of PROGMEM.
4 4
 //#define START_BMPHIGH
5 5
 
6 6
 #if ENABLED(SHOW_BOOTSCREEN)
@@ -11,44 +11,44 @@
11 11
     #define START_BMPBYTES      532 // START_BMPWIDTH * START_BMPHEIGHT / 8
12 12
 
13 13
     const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
14
-       0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
15
-      ,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
16
-      ,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xff,0xff
17
-      ,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xff,0xff
18
-      ,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff
19
-      ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff
20
-      ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0xff
21
-      ,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x3f,0xff
22
-      ,0xc0,0x0f,0xc0,0xfc,0x00,0x00,0x00,0x00,0x00,0x78,0x18,0x00,0x1f,0xff
23
-      ,0xc0,0x3f,0xe1,0xff,0x00,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x0f,0xff
24
-      ,0xc0,0x7f,0xf3,0xff,0x80,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x07,0xff
25
-      ,0xc0,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x00,0x78,0x3c,0x00,0x03,0xff
26
-      ,0xc1,0xf8,0x7f,0x87,0xe0,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x01,0xff
27
-      ,0xc1,0xf0,0x3f,0x03,0xe0,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xff
28
-      ,0xc1,0xe0,0x1e,0x01,0xe0,0x1f,0x00,0x03,0xe0,0x78,0x3c,0x03,0xf0,0x7f
29
-      ,0xc1,0xe0,0x1e,0x01,0xe0,0x7f,0xc0,0x0f,0xf8,0x78,0x3c,0x07,0xfc,0x3f
30
-      ,0xc1,0xe0,0x1e,0x01,0xe1,0xff,0xe0,0x1f,0xfc,0x78,0x3c,0x0f,0xfe,0x1f
31
-      ,0xc1,0xe0,0x1e,0x01,0xe3,0xff,0xf0,0x3f,0xfe,0x78,0x3c,0x1f,0xfe,0x0f
32
-      ,0xc1,0xe0,0x1e,0x01,0xe3,0xf3,0xf8,0x3f,0x3e,0x78,0x3c,0x3f,0x3f,0x07
33
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0xe0,0xfc,0x7c,0x1f,0x78,0x3c,0x3e,0x1f,0x07
34
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0xc0,0x7c,0x7c,0x0f,0x78,0x3c,0x3c,0x0f,0x03
35
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x7c,0x78,0x0f,0x78,0x3c,0x3c,0x0f,0x03
36
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03
37
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03
38
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0x80,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03
39
-      ,0xc1,0xe0,0x1e,0x01,0xe7,0xc0,0x3c,0x78,0x00,0x78,0x3c,0x3c,0x0f,0x03
40
-      ,0xc1,0xe0,0x1e,0x01,0xe3,0xe0,0x3c,0x78,0x00,0x7c,0x3c,0x3c,0x0f,0x03
41
-      ,0xc1,0xe0,0x1e,0x01,0xe3,0xff,0x3f,0xf8,0x00,0x7f,0xbc,0x3c,0x0f,0x03
42
-      ,0xc1,0xe0,0x1e,0x01,0xe1,0xff,0x3f,0xf8,0x00,0x3f,0xbf,0xfc,0x0f,0x03
43
-      ,0xc1,0xe0,0x1e,0x01,0xe0,0xff,0x3f,0xf8,0x00,0x1f,0xbf,0xfc,0x0f,0x03
44
-      ,0xc1,0xe0,0x1e,0x01,0xe0,0x7f,0x3f,0xf8,0x00,0x0f,0xbf,0xfc,0x0f,0x03
45
-      ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07
46
-      ,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06
47
-      ,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e
48
-      ,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c
49
-      ,0x1e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78
50
-      ,0x0f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf0
51
-      ,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80 };
14
+      0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
15
+      0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
16
+      0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF,
17
+      0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF,
18
+      0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
19
+      0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
20
+      0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
21
+      0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x3F, 0xFF,
22
+      0xC0, 0x0F, 0xC0, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x00, 0x1F, 0xFF,
23
+      0xC0, 0x3F, 0xE1, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x0F, 0xFF,
24
+      0xC0, 0x7F, 0xF3, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x07, 0xFF,
25
+      0xC0, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x3C, 0x00, 0x03, 0xFF,
26
+      0xC1, 0xF8, 0x7F, 0x87, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x01, 0xFF,
27
+      0xC1, 0xF0, 0x3F, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xFF,
28
+      0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x1F, 0x00, 0x03, 0xE0, 0x78, 0x3C, 0x03, 0xF0, 0x7F,
29
+      0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x7F, 0xC0, 0x0F, 0xF8, 0x78, 0x3C, 0x07, 0xFC, 0x3F,
30
+      0xC1, 0xE0, 0x1E, 0x01, 0xE1, 0xFF, 0xE0, 0x1F, 0xFC, 0x78, 0x3C, 0x0F, 0xFE, 0x1F,
31
+      0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xFF, 0xF0, 0x3F, 0xFE, 0x78, 0x3C, 0x1F, 0xFE, 0x0F,
32
+      0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xF3, 0xF8, 0x3F, 0x3E, 0x78, 0x3C, 0x3F, 0x3F, 0x07,
33
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xE0, 0xFC, 0x7C, 0x1F, 0x78, 0x3C, 0x3E, 0x1F, 0x07,
34
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xC0, 0x7C, 0x7C, 0x0F, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
35
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x7C, 0x78, 0x0F, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
36
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
37
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
38
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0x80, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
39
+      0xC1, 0xE0, 0x1E, 0x01, 0xE7, 0xC0, 0x3C, 0x78, 0x00, 0x78, 0x3C, 0x3C, 0x0F, 0x03,
40
+      0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xE0, 0x3C, 0x78, 0x00, 0x7C, 0x3C, 0x3C, 0x0F, 0x03,
41
+      0xC1, 0xE0, 0x1E, 0x01, 0xE3, 0xFF, 0x3F, 0xF8, 0x00, 0x7F, 0xBC, 0x3C, 0x0F, 0x03,
42
+      0xC1, 0xE0, 0x1E, 0x01, 0xE1, 0xFF, 0x3F, 0xF8, 0x00, 0x3F, 0xBF, 0xFC, 0x0F, 0x03,
43
+      0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0xFF, 0x3F, 0xF8, 0x00, 0x1F, 0xBF, 0xFC, 0x0F, 0x03,
44
+      0xC1, 0xE0, 0x1E, 0x01, 0xE0, 0x7F, 0x3F, 0xF8, 0x00, 0x0F, 0xBF, 0xFC, 0x0F, 0x03,
45
+      0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
46
+      0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
47
+      0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E,
48
+      0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C,
49
+      0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78,
50
+      0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0,
51
+      0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80 };
52 52
   #else
53 53
     #define START_BMPWIDTH      56
54 54
     #define START_BMPHEIGHT     19
@@ -56,184 +56,183 @@
56 56
     #define START_BMPBYTES      133 // START_BMPWIDTH * START_BMPHEIGHT / 8
57 57
 
58 58
     const unsigned char start_bmp[START_BMPBYTES] PROGMEM = {
59
-       0x1f,0xff,0xff,0xff,0xff,0xff,0xff
60
-      ,0x60,0x00,0x00,0x00,0x00,0x01,0xff
61
-      ,0x40,0x00,0x00,0x00,0x00,0x00,0xff
62
-      ,0x80,0x00,0x00,0x00,0x00,0x00,0x7f
63
-      ,0x83,0xcf,0x00,0x00,0x0c,0x30,0x3f
64
-      ,0x87,0xff,0x80,0x00,0x0c,0x30,0x1f
65
-      ,0x86,0x79,0x80,0x00,0x0c,0x00,0x0f
66
-      ,0x8c,0x30,0xc7,0x83,0x8c,0x30,0xe7
67
-      ,0x8c,0x30,0xcf,0xc7,0xcc,0x31,0xf3
68
-      ,0x8c,0x30,0xdc,0xec,0xec,0x33,0xb9
69
-      ,0x8c,0x30,0xd8,0x6c,0x6c,0x33,0x19
70
-      ,0x8c,0x30,0xd0,0x6c,0x0c,0x33,0x19
71
-      ,0x8c,0x30,0xd8,0x6c,0x0c,0x33,0x19
72
-      ,0x8c,0x30,0xdc,0x6c,0x0e,0x3b,0x19
73
-      ,0x8c,0x30,0xcf,0x7c,0x07,0x9f,0x19
74
-      ,0x8c,0x30,0xc7,0x7c,0x03,0x8f,0x19
75
-      ,0x40,0x00,0x00,0x00,0x00,0x00,0x02
76
-      ,0x60,0x00,0x00,0x00,0x00,0x00,0x06
77
-      ,0x1f,0xff,0xff,0xff,0xff,0xff,0xf8 };
59
+      0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
60
+      0x60, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF,
61
+      0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
62
+      0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F,
63
+      0x83, 0xCF, 0x00, 0x00, 0x0C, 0x30, 0x3F,
64
+      0x87, 0xFF, 0x80, 0x00, 0x0C, 0x30, 0x1F,
65
+      0x86, 0x79, 0x80, 0x00, 0x0C, 0x00, 0x0F,
66
+      0x8C, 0x30, 0xC7, 0x83, 0x8C, 0x30, 0xE7,
67
+      0x8C, 0x30, 0xCF, 0xC7, 0xCC, 0x31, 0xF3,
68
+      0x8C, 0x30, 0xDC, 0xEC, 0xEC, 0x33, 0xB9,
69
+      0x8C, 0x30, 0xD8, 0x6C, 0x6C, 0x33, 0x19,
70
+      0x8C, 0x30, 0xD0, 0x6C, 0x0C, 0x33, 0x19,
71
+      0x8C, 0x30, 0xD8, 0x6C, 0x0C, 0x33, 0x19,
72
+      0x8C, 0x30, 0xDC, 0x6C, 0x0E, 0x3B, 0x19,
73
+      0x8C, 0x30, 0xCF, 0x7C, 0x07, 0x9F, 0x19,
74
+      0x8C, 0x30, 0xC7, 0x7C, 0x03, 0x8F, 0x19,
75
+      0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
76
+      0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06,
77
+      0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8 };
78 78
   #endif
79 79
 #endif
80 80
 
81
-// Here comes a compile-time operation to match the extruder symbols 
81
+// Here comes a compile-time operation to match the extruder symbols
82 82
 // on the info screen to the set number of extruders in configuration.h
83
-// 
84
-// When only one extruder is selected, the "1" on the symbol will not 
83
+//
84
+// When only one extruder is selected, the "1" on the symbol will not
85 85
 // be displayed.
86 86
 
87 87
 #if EXTRUDERS == 1
88
-	#define STATUS_SCREENWIDTH 		115	//Width in pixels
89
-	#define STATUS_SCREENHEIGHT 	19	//Height in pixels
90
-	#define STATUS_SCREENBYTEWIDTH 	15	//Width in bytes
91
-	const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
92
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xE0,
93
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
94
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x0C,0x60,
95
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x0E,0x20,
96
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4F,0x0F,0x20,
97
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x0F,0xA0,
98
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x07,0xA0,
99
-	0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x40,0x60,0x20,
100
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x40,0xF0,0x20,
101
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x40,0xF0,0x20,
102
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x40,0x60,0x20,
103
-	0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x5E,0x07,0xA0,
104
-	0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x5F,0x0F,0xA0,
105
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x4F,0x0F,0x20,
106
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x47,0x0E,0x20,
107
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x63,0x0C,0x60,
108
-	0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
109
-	0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xE0,
110
-	0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00
111
-	};
88
+  #define STATUS_SCREENWIDTH     115 //Width in pixels
89
+  #define STATUS_SCREENHEIGHT     19 //Height in pixels
90
+  #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
91
+  const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
92
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
93
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
94
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
95
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
96
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
97
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
98
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
99
+    0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
100
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
101
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
102
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
103
+    0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
104
+    0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
105
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
106
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
107
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
108
+    0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
109
+    0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
110
+    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
111
+  };
112 112
 
113
-	#define STATUS_SCREENWIDTH 		115	//Width in pixels
114
-	#define STATUS_SCREENHEIGHT 	19	//Height in pixels
115
-	#define STATUS_SCREENBYTEWIDTH 	15	//Width in bytes
116
-	const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
117
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xE0,
118
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
119
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0xF8,0x60,
120
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xF8,0x20,
121
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xF0,0x20,
122
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x20,
123
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x01,0xA0,
124
-	0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x5C,0x63,0xA0,
125
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x5E,0xF7,0xA0,
126
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x5E,0xF7,0xA0,
127
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x5C,0x63,0xA0,
128
-	0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x58,0x01,0xA0,
129
-	0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x40,0x60,0x20,
130
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x40,0xF0,0x20,
131
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x41,0xF8,0x20,
132
-	0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x61,0xF8,0x60,
133
-	0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
134
-	0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xE0,
135
-	0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00
136
-	};
113
+  #define STATUS_SCREENWIDTH     115 //Width in pixels
114
+  #define STATUS_SCREENHEIGHT     19 //Height in pixels
115
+  #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
116
+  const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
117
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
118
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
119
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
120
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
121
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
122
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
123
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
124
+    0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
125
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
126
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
127
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
128
+    0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
129
+    0x7F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
130
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
131
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
132
+    0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
133
+    0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
134
+    0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
135
+    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
136
+  };
137 137
 #elif EXTRUDERS == 2
138
-	#define STATUS_SCREENWIDTH 		115	//Width in pixels
139
-	#define STATUS_SCREENHEIGHT 	19	//Height in pixels
140
-	#define STATUS_SCREENBYTEWIDTH 	15	//Width in bytes
141
-	const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
142
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xE0,
143
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
144
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x0C,0x60,
145
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x0E,0x20,
146
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4F,0x0F,0x20,
147
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x0F,0xA0,
148
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x07,0xA0,
149
-	0x7F,0x80,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x40,0x60,0x20,
150
-	0xFB,0xC0,0x00,0x79,0xE0,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x40,0xF0,0x20,
151
-	0xF3,0xC0,0x00,0x76,0xE0,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x40,0xF0,0x20,
152
-	0xEB,0xC0,0x00,0x7E,0xE0,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x40,0x60,0x20,
153
-	0x7B,0x80,0x00,0x3D,0xC0,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x5E,0x07,0xA0,
154
-	0x7B,0x80,0x00,0x3B,0xC0,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x5F,0x0F,0xA0,
155
-	0xFB,0xC0,0x00,0x77,0xE0,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x4F,0x0F,0x20,
156
-	0xFB,0xC0,0x00,0x70,0xE0,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x47,0x0E,0x20,
157
-	0xFF,0xC0,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x63,0x0C,0x60,
158
-	0x3F,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
159
-	0x1E,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xE0,
160
-	0x0C,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00
161
-	};
138
+  #define STATUS_SCREENWIDTH     115 //Width in pixels
139
+  #define STATUS_SCREENHEIGHT     19 //Height in pixels
140
+  #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
141
+  const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
142
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
143
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
144
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
145
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
146
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
147
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
148
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
149
+    0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
150
+    0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
151
+    0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
152
+    0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
153
+    0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
154
+    0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
155
+    0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
156
+    0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
157
+    0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
158
+    0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
159
+    0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
160
+    0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
161
+  };
162 162
 
163
-	#define STATUS_SCREENWIDTH 		115	//Width in pixels
164
-	#define STATUS_SCREENHEIGHT 	19	//Height in pixels
165
-	#define STATUS_SCREENBYTEWIDTH 	15	//Width in bytes
166
-	const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
167
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xE0,
168
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
169
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0xF8,0x60,
170
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xF8,0x20,
171
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xF0,0x20,
172
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x20,
173
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x01,0xA0,
174
-	0x7F,0x80,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x5C,0x63,0xA0,
175
-	0xFB,0xC0,0x00,0x79,0xE0,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x5E,0xF7,0xA0,
176
-	0xF3,0xC0,0x00,0x76,0xE0,0x00,0x00,0x00,0x00,0x20,0x82,0x00,0x5E,0xF7,0xA0,
177
-	0xEB,0xC0,0x00,0x7E,0xE0,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x5C,0x63,0xA0,
178
-	0x7B,0x80,0x00,0x3D,0xC0,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x58,0x01,0xA0,
179
-	0x7B,0x80,0x00,0x3B,0xC0,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x40,0x60,0x20,
180
-	0xFB,0xC0,0x00,0x77,0xE0,0x00,0x00,0x00,0x01,0x04,0x10,0x00,0x40,0xF0,0x20,
181
-	0xFB,0xC0,0x00,0x70,0xE0,0x00,0x00,0x00,0x00,0x82,0x08,0x00,0x41,0xF8,0x20,
182
-	0xFF,0xC0,0x00,0x7F,0xE0,0x00,0x00,0x00,0x00,0x41,0x04,0x00,0x61,0xF8,0x60,
183
-	0x3F,0x00,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
184
-	0x1E,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xE0,
185
-	0x0C,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00
186
-	};
163
+  #define STATUS_SCREENWIDTH     115 //Width in pixels
164
+  #define STATUS_SCREENHEIGHT     19 //Height in pixels
165
+  #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
166
+  const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
167
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
168
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
169
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
170
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
171
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
172
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
173
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
174
+    0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
175
+    0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
176
+    0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
177
+    0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
178
+    0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
179
+    0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
180
+    0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
181
+    0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
182
+    0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
183
+    0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
184
+    0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
185
+    0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
186
+  };
187 187
 #else
188
-	#define STATUS_SCREENWIDTH 		115	//Width in pixels
189
-	#define STATUS_SCREENHEIGHT 	19	//Height in pixels
190
-	#define STATUS_SCREENBYTEWIDTH 	15	//Width in bytes
191
-	const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
192
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xE0,
193
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
194
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x0C,0x60,
195
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x47,0x0E,0x20,
196
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4F,0x0F,0x20,
197
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x0F,0xA0,
198
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x07,0xA0,
199
-	0x7F,0x80,0x00,0x3F,0xC0,0x00,0x3F,0xC0,0x00,0x41,0x04,0x00,0x40,0x60,0x20,
200
-	0xFB,0xC0,0x00,0x79,0xE0,0x00,0x79,0xE0,0x00,0x20,0x82,0x00,0x40,0xF0,0x20,
201
-	0xF3,0xC0,0x00,0x76,0xE0,0x00,0x76,0xE0,0x00,0x20,0x82,0x00,0x40,0xF0,0x20,
202
-	0xEB,0xC0,0x00,0x7E,0xE0,0x00,0x7E,0xE0,0x00,0x41,0x04,0x00,0x40,0x60,0x20,
203
-	0x7B,0x80,0x00,0x3D,0xC0,0x00,0x39,0xC0,0x00,0x82,0x08,0x00,0x5E,0x07,0xA0,
204
-	0x7B,0x80,0x00,0x3B,0xC0,0x00,0x3E,0xC0,0x01,0x04,0x10,0x00,0x5F,0x0F,0xA0,
205
-	0xFB,0xC0,0x00,0x77,0xE0,0x00,0x76,0xE0,0x01,0x04,0x10,0x00,0x4F,0x0F,0x20,
206
-	0xFB,0xC0,0x00,0x70,0xE0,0x00,0x79,0xE0,0x00,0x82,0x08,0x00,0x47,0x0E,0x20,
207
-	0xFF,0xC0,0x00,0x7F,0xE0,0x00,0x7F,0xE0,0x00,0x41,0x04,0x00,0x63,0x0C,0x60,
208
-	0x3F,0x00,0x00,0x1F,0x80,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
209
-	0x1E,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xE0,
210
-	0x0C,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00
211
-	};
212
-
213
-	#define STATUS_SCREENWIDTH 		115	//Width in pixels
214
-	#define STATUS_SCREENHEIGHT 	19	//Height in pixels
215
-	#define STATUS_SCREENBYTEWIDTH 	15	//Width in bytes
216
-	const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
217
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xE0,
218
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
219
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0xF8,0x60,
220
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0xF8,0x20,
221
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xF0,0x20,
222
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x60,0x20,
223
-	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x01,0xA0,
224
-	0x7F,0x80,0x00,0x3F,0xC0,0x00,0x3F,0xC0,0x00,0x41,0x04,0x00,0x5C,0x63,0xA0,
225
-	0xFB,0xC0,0x00,0x79,0xE0,0x00,0x79,0xE0,0x00,0x20,0x82,0x00,0x5E,0xF7,0xA0,
226
-	0xF3,0xC0,0x00,0x76,0xE0,0x00,0x76,0xE0,0x00,0x20,0x82,0x00,0x5E,0xF7,0xA0,
227
-	0xEB,0xC0,0x00,0x7E,0xE0,0x00,0x7E,0xE0,0x00,0x41,0x04,0x00,0x5C,0x63,0xA0,
228
-	0x7B,0x80,0x00,0x3D,0xC0,0x00,0x39,0xC0,0x00,0x82,0x08,0x00,0x58,0x01,0xA0,
229
-	0x7B,0x80,0x00,0x3B,0xC0,0x00,0x3E,0xC0,0x01,0x04,0x10,0x00,0x40,0x60,0x20,
230
-	0xFB,0xC0,0x00,0x77,0xE0,0x00,0x76,0xE0,0x01,0x04,0x10,0x00,0x40,0xF0,0x20,
231
-	0xFB,0xC0,0x00,0x70,0xE0,0x00,0x79,0xE0,0x00,0x82,0x08,0x00,0x41,0xF8,0x20,
232
-	0xFF,0xC0,0x00,0x7F,0xE0,0x00,0x7F,0xE0,0x00,0x41,0x04,0x00,0x61,0xF8,0x60,
233
-	0x3F,0x00,0x00,0x1F,0x80,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,
234
-	0x1E,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x01,0xFF,0xFF,0x80,0x7F,0xFF,0xE0,
235
-	0x0C,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x01,0xFF,0xFF,0x80,0x00,0x00,0x00
236
-	};
237
-#endif // Extruders 
188
+  #define STATUS_SCREENWIDTH     115 //Width in pixels
189
+  #define STATUS_SCREENHEIGHT     19 //Height in pixels
190
+  #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
191
+  const unsigned char status_screen0_bmp[] PROGMEM = { //AVR-GCC, WinAVR
192
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
193
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
194
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x0C, 0x60,
195
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0E, 0x20,
196
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x0F, 0x20,
197
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x0F, 0xA0,
198
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x07, 0xA0,
199
+    0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
200
+    0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
201
+    0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x40, 0xF0, 0x20,
202
+    0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x40, 0x60, 0x20,
203
+    0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x5E, 0x07, 0xA0,
204
+    0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x5F, 0x0F, 0xA0,
205
+    0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x4F, 0x0F, 0x20,
206
+    0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x47, 0x0E, 0x20,
207
+    0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x63, 0x0C, 0x60,
208
+    0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
209
+    0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
210
+    0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
211
+  };
238 212
 
213
+  #define STATUS_SCREENWIDTH     115 //Width in pixels
214
+  #define STATUS_SCREENHEIGHT     19 //Height in pixels
215
+  #define STATUS_SCREENBYTEWIDTH  15 //Width in bytes
216
+  const unsigned char status_screen1_bmp[] PROGMEM = { //AVR-GCC, WinAVR
217
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xE0,
218
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
219
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xF8, 0x60,
220
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF8, 0x20,
221
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xF0, 0x20,
222
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x20,
223
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x01, 0xA0,
224
+    0x7F, 0x80, 0x00, 0x3F, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
225
+    0xFB, 0xC0, 0x00, 0x79, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
226
+    0xF3, 0xC0, 0x00, 0x76, 0xE0, 0x00, 0x76, 0xE0, 0x00, 0x20, 0x82, 0x00, 0x5E, 0xF7, 0xA0,
227
+    0xEB, 0xC0, 0x00, 0x7E, 0xE0, 0x00, 0x7E, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x5C, 0x63, 0xA0,
228
+    0x7B, 0x80, 0x00, 0x3D, 0xC0, 0x00, 0x39, 0xC0, 0x00, 0x82, 0x08, 0x00, 0x58, 0x01, 0xA0,
229
+    0x7B, 0x80, 0x00, 0x3B, 0xC0, 0x00, 0x3E, 0xC0, 0x01, 0x04, 0x10, 0x00, 0x40, 0x60, 0x20,
230
+    0xFB, 0xC0, 0x00, 0x77, 0xE0, 0x00, 0x76, 0xE0, 0x01, 0x04, 0x10, 0x00, 0x40, 0xF0, 0x20,
231
+    0xFB, 0xC0, 0x00, 0x70, 0xE0, 0x00, 0x79, 0xE0, 0x00, 0x82, 0x08, 0x00, 0x41, 0xF8, 0x20,
232
+    0xFF, 0xC0, 0x00, 0x7F, 0xE0, 0x00, 0x7F, 0xE0, 0x00, 0x41, 0x04, 0x00, 0x61, 0xF8, 0x60,
233
+    0x3F, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xE0,
234
+    0x1E, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x7F, 0xFF, 0xE0,
235
+    0x0C, 0x00, 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00
236
+  };
237
+#endif // Extruders
239 238
 

+ 145
- 144
Marlin/dogm_font_data_6x9_marlin.h View File

@@ -11,147 +11,148 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t u8g_font_6x9[2300] U8G_SECTION(".progmem.u8g_font_6x9") = {
14
-  0,6,9,0,254,6,1,137,2,254,32,255,254,7,254,6,
15
-  254,0,0,0,6,0,7,1,6,6,6,2,0,128,128,128,
16
-  128,0,128,3,3,3,6,1,3,160,160,160,5,7,7,6,
17
-  0,255,80,80,248,80,248,80,80,5,9,9,6,0,254,32,
18
-  112,168,160,112,40,168,112,32,6,8,8,6,0,255,64,168,
19
-  72,16,32,72,84,8,5,7,7,6,0,255,96,144,144,96,
20
-  152,144,104,1,3,3,6,2,3,128,128,128,2,7,7,6,
21
-  2,255,64,128,128,128,128,128,64,2,7,7,6,2,255,128,
22
-  64,64,64,64,64,128,5,5,5,6,0,0,136,80,248,80,
23
-  136,5,5,5,6,0,0,32,32,248,32,32,2,4,4,6,
24
-  2,254,192,64,64,128,5,1,1,6,0,2,248,2,2,2,
25
-  6,2,0,192,192,4,6,6,6,1,0,16,16,32,64,128,
26
-  128,4,6,6,6,1,0,96,144,144,144,144,96,3,6,6,
27
-  6,1,0,64,192,64,64,64,224,4,6,6,6,1,0,96,
28
-  144,16,32,64,240,4,6,6,6,1,0,240,32,96,16,16,
29
-  224,5,6,6,6,0,0,16,48,80,144,248,16,4,6,6,
30
-  6,1,0,240,128,224,16,16,224,4,6,6,6,1,0,96,
31
-  128,224,144,144,96,4,6,6,6,1,0,240,16,16,32,64,
32
-  64,4,6,6,6,1,0,96,144,96,144,144,96,4,6,6,
33
-  6,1,0,96,144,144,112,16,96,2,5,5,6,2,0,192,
34
-  192,0,192,192,2,7,7,6,2,254,192,192,0,192,64,64,
35
-  128,5,5,5,6,0,0,24,96,128,96,24,5,3,3,6,
36
-  0,1,248,0,248,5,5,5,6,0,0,192,48,8,48,192,
37
-  4,7,7,6,1,0,96,144,16,96,64,0,64,5,6,6,
38
-  6,0,0,112,144,168,176,128,112,5,6,6,6,0,0,32,
39
-  80,136,248,136,136,5,6,6,6,0,0,240,136,240,136,136,
40
-  240,4,6,6,6,1,0,96,144,128,128,144,96,4,6,6,
41
-  6,1,0,224,144,144,144,144,224,4,6,6,6,1,0,240,
42
-  128,224,128,128,240,4,6,6,6,1,0,240,128,224,128,128,
43
-  128,4,6,6,6,1,0,96,144,128,176,144,96,4,6,6,
44
-  6,1,0,144,144,240,144,144,144,3,6,6,6,1,0,224,
45
-  64,64,64,64,224,5,6,6,6,0,0,56,16,16,16,144,
46
-  96,4,6,6,6,1,0,144,160,192,160,144,144,4,6,6,
47
-  6,1,0,128,128,128,128,128,240,5,6,6,6,0,0,136,
48
-  216,168,168,136,136,4,6,6,6,1,0,144,208,176,144,144,
49
-  144,5,6,6,6,0,0,112,136,136,136,136,112,4,6,6,
50
-  6,1,0,224,144,144,224,128,128,4,7,7,6,1,255,96,
51
-  144,144,208,176,96,16,4,6,6,6,1,0,224,144,144,224,
52
-  144,144,4,6,6,6,1,0,96,144,64,32,144,96,5,6,
53
-  6,6,0,0,248,32,32,32,32,32,4,6,6,6,1,0,
54
-  144,144,144,144,144,96,4,6,6,6,1,0,144,144,144,240,
55
-  96,96,5,6,6,6,0,0,136,136,168,168,216,136,5,6,
56
-  6,6,0,0,136,80,32,32,80,136,5,6,6,6,0,0,
57
-  136,136,80,32,32,32,4,6,6,6,1,0,240,16,32,64,
58
-  128,240,3,6,6,6,1,0,224,128,128,128,128,224,4,6,
59
-  6,6,1,0,128,128,64,32,16,16,3,6,6,6,1,0,
60
-  224,32,32,32,32,224,5,3,3,6,0,3,32,80,136,5,
61
-  1,1,6,0,254,248,2,2,2,6,2,4,128,64,4,4,
62
-  4,6,1,0,112,144,144,112,4,6,6,6,1,0,128,128,
63
-  224,144,144,224,4,4,4,6,1,0,112,128,128,112,4,6,
64
-  6,6,1,0,16,16,112,144,144,112,4,4,4,6,1,0,
65
-  96,176,192,112,4,6,6,6,1,0,32,80,64,224,64,64,
66
-  4,6,6,6,1,254,96,144,144,112,16,96,4,6,6,6,
67
-  1,0,128,128,224,144,144,144,3,6,6,6,1,0,64,0,
68
-  192,64,64,224,3,8,8,6,1,254,32,0,96,32,32,32,
69
-  160,64,4,6,6,6,1,0,128,128,160,192,160,144,3,6,
70
-  6,6,1,0,192,64,64,64,64,224,5,4,4,6,0,0,
71
-  208,168,168,136,4,4,4,6,1,0,224,144,144,144,4,4,
72
-  4,6,1,0,96,144,144,96,4,6,6,6,1,254,224,144,
73
-  144,224,128,128,4,6,6,6,1,254,112,144,144,112,16,16,
74
-  4,4,4,6,1,0,160,208,128,128,4,4,4,6,1,0,
75
-  112,192,48,224,4,6,6,6,1,0,64,64,224,64,80,32,
76
-  4,4,4,6,1,0,144,144,144,112,4,4,4,6,1,0,
77
-  144,144,96,96,5,4,4,6,0,0,136,168,168,80,4,4,
78
-  4,6,1,0,144,96,96,144,4,6,6,6,1,254,144,144,
79
-  144,112,144,96,4,4,4,6,1,0,240,32,64,240,3,7,
80
-  7,6,1,0,32,64,64,128,64,64,32,1,7,7,6,2,
81
-  255,128,128,128,128,128,128,128,3,7,7,6,1,0,128,64,
82
-  64,32,64,64,128,4,2,2,6,1,3,80,160,255,255,255,
83
-  255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
84
-  255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,
85
-  0,6,0,7,1,6,6,6,2,0,128,0,128,128,128,128,
86
-  4,6,6,6,1,255,32,112,160,160,112,32,5,7,7,6,
87
-  0,255,48,72,64,240,64,64,248,5,5,5,6,0,0,168,
88
-  80,136,80,168,5,6,6,6,0,0,136,80,248,32,248,32,
89
-  1,7,7,6,2,255,128,128,128,0,128,128,128,4,7,7,
90
-  6,1,255,112,128,96,144,96,16,224,3,1,1,6,1,5,
91
-  160,6,7,7,6,0,0,120,132,148,164,148,132,120,3,5,
92
-  5,6,1,1,96,160,96,0,224,5,5,5,6,0,0,40,
93
-  80,160,80,40,4,3,3,6,1,0,240,16,16,4,1,1,
94
-  6,1,2,240,6,7,7,6,0,0,120,132,180,164,164,132,
95
-  120,4,1,1,6,1,5,240,4,3,3,6,1,2,96,144,
96
-  96,5,7,7,6,0,255,32,32,248,32,32,0,248,3,5,
97
-  5,6,1,1,64,160,32,64,224,3,5,5,6,1,1,192,
98
-  32,64,32,192,2,2,2,6,2,4,64,128,4,5,5,6,
99
-  1,255,144,144,176,208,128,5,6,6,6,0,0,120,232,232,
100
-  104,40,40,1,1,1,6,2,2,128,2,2,2,6,2,254,
101
-  64,128,3,5,5,6,1,1,64,192,64,64,224,3,5,5,
102
-  6,1,1,64,160,64,0,224,5,5,5,6,0,0,160,80,
103
-  40,80,160,5,8,8,6,0,255,64,192,64,80,112,48,120,
104
-  16,5,8,8,6,0,255,64,192,64,80,104,8,16,56,5,
105
-  8,8,6,0,255,192,32,64,48,240,48,120,16,4,7,7,
106
-  6,1,0,32,0,32,96,128,144,96,5,7,7,6,0,0,
107
-  64,32,32,80,112,136,136,5,7,7,6,0,0,16,32,32,
108
-  80,112,136,136,5,7,7,6,0,0,32,80,32,80,112,136,
109
-  136,5,7,7,6,0,0,40,80,32,80,112,136,136,5,7,
110
-  7,6,0,0,80,0,32,80,112,136,136,5,7,7,6,0,
111
-  0,32,80,32,80,112,136,136,5,6,6,6,0,0,120,160,
112
-  240,160,160,184,4,8,8,6,1,254,96,144,128,128,144,96,
113
-  32,64,4,7,7,6,1,0,64,32,240,128,224,128,240,4,
114
-  7,7,6,1,0,32,64,240,128,224,128,240,4,7,7,6,
115
-  1,0,32,80,240,128,224,128,240,4,7,7,6,1,0,80,
116
-  0,240,128,224,128,240,3,7,7,6,1,0,128,64,224,64,
117
-  64,64,224,3,7,7,6,1,0,32,64,224,64,64,64,224,
118
-  3,7,7,6,1,0,64,160,224,64,64,64,224,3,7,7,
119
-  6,1,0,160,0,224,64,64,64,224,5,6,6,6,0,0,
120
-  112,72,232,72,72,112,4,7,7,6,1,0,80,160,144,208,
121
-  176,144,144,4,7,7,6,1,0,64,32,96,144,144,144,96,
122
-  4,7,7,6,1,0,32,64,96,144,144,144,96,4,7,7,
123
-  6,1,0,32,80,96,144,144,144,96,4,7,7,6,1,0,
124
-  80,160,96,144,144,144,96,4,7,7,6,1,0,80,0,96,
125
-  144,144,144,96,5,5,5,6,0,0,136,80,32,80,136,4,
126
-  8,8,6,1,255,16,112,176,176,208,208,224,128,4,7,7,
127
-  6,1,0,64,32,144,144,144,144,96,4,7,7,6,1,0,
128
-  32,64,144,144,144,144,96,4,7,7,6,1,0,32,80,144,
129
-  144,144,144,96,4,7,7,6,1,0,80,0,144,144,144,144,
130
-  96,5,7,7,6,0,0,16,32,136,80,32,32,32,4,6,
131
-  6,6,1,0,128,224,144,144,224,128,4,6,6,6,1,0,
132
-  96,144,160,160,144,160,4,7,7,6,1,0,64,32,0,112,
133
-  144,144,112,4,7,7,6,1,0,32,64,0,112,144,144,112,
134
-  4,7,7,6,1,0,32,80,0,112,144,144,112,4,7,7,
135
-  6,1,0,80,160,0,112,144,144,112,4,6,6,6,1,0,
136
-  80,0,112,144,144,112,4,7,7,6,1,0,32,80,32,112,
137
-  144,144,112,5,4,4,6,0,0,112,168,176,120,4,6,6,
138
-  6,1,254,112,128,128,112,32,64,4,7,7,6,1,0,64,
139
-  32,0,96,176,192,112,4,7,7,6,1,0,32,64,0,96,
140
-  176,192,112,4,7,7,6,1,0,32,80,0,96,176,192,112,
141
-  4,6,6,6,1,0,80,0,96,176,192,112,3,7,7,6,
142
-  1,0,128,64,0,192,64,64,224,3,7,7,6,1,0,32,
143
-  64,0,192,64,64,224,3,7,7,6,1,0,64,160,0,192,
144
-  64,64,224,3,6,6,6,1,0,160,0,192,64,64,224,4,
145
-  7,7,6,1,0,48,96,16,112,144,144,96,4,7,7,6,
146
-  1,0,80,160,0,224,144,144,144,4,7,7,6,1,0,64,
147
-  32,0,96,144,144,96,4,7,7,6,1,0,32,64,0,96,
148
-  144,144,96,4,7,7,6,1,0,32,80,0,96,144,144,96,
149
-  4,7,7,6,1,0,80,160,0,96,144,144,96,4,6,6,
150
-  6,1,0,80,0,96,144,144,96,5,5,5,6,0,0,32,
151
-  0,248,0,32,4,4,4,6,1,0,112,176,208,224,4,7,
152
-  7,6,1,0,64,32,0,144,144,144,112,4,7,7,6,1,
153
-  0,32,64,0,144,144,144,112,4,7,7,6,1,0,32,80,
154
-  0,144,144,144,112,4,6,6,6,1,0,80,0,144,144,144,
155
-  112,4,9,9,6,1,254,32,64,0,144,144,144,112,144,96,
156
-  4,8,8,6,1,254,128,128,224,144,144,224,128,128,4,8,
157
-  8,6,1,254,80,0,144,144,144,112,144,96};
14
+  0, 6, 9, 0, 254, 6, 1, 137, 2, 254, 32, 255, 254, 7, 254, 6,
15
+  254, 0, 0, 0, 6, 0, 7, 1, 6, 6, 6, 2, 0, 128, 128, 128,
16
+  128, 0, 128, 3, 3, 3, 6, 1, 3, 160, 160, 160, 5, 7, 7, 6,
17
+  0, 255, 80, 80, 248, 80, 248, 80, 80, 5, 9, 9, 6, 0, 254, 32,
18
+  112, 168, 160, 112, 40, 168, 112, 32, 6, 8, 8, 6, 0, 255, 64, 168,
19
+  72, 16, 32, 72, 84, 8, 5, 7, 7, 6, 0, 255, 96, 144, 144, 96,
20
+  152, 144, 104, 1, 3, 3, 6, 2, 3, 128, 128, 128, 2, 7, 7, 6,
21
+  2, 255, 64, 128, 128, 128, 128, 128, 64, 2, 7, 7, 6, 2, 255, 128,
22
+  64, 64, 64, 64, 64, 128, 5, 5, 5, 6, 0, 0, 136, 80, 248, 80,
23
+  136, 5, 5, 5, 6, 0, 0, 32, 32, 248, 32, 32, 2, 4, 4, 6,
24
+  2, 254, 192, 64, 64, 128, 5, 1, 1, 6, 0, 2, 248, 2, 2, 2,
25
+  6, 2, 0, 192, 192, 4, 6, 6, 6, 1, 0, 16, 16, 32, 64, 128,
26
+  128, 4, 6, 6, 6, 1, 0, 96, 144, 144, 144, 144, 96, 3, 6, 6,
27
+  6, 1, 0, 64, 192, 64, 64, 64, 224, 4, 6, 6, 6, 1, 0, 96,
28
+  144, 16, 32, 64, 240, 4, 6, 6, 6, 1, 0, 240, 32, 96, 16, 16,
29
+  224, 5, 6, 6, 6, 0, 0, 16, 48, 80, 144, 248, 16, 4, 6, 6,
30
+  6, 1, 0, 240, 128, 224, 16, 16, 224, 4, 6, 6, 6, 1, 0, 96,
31
+  128, 224, 144, 144, 96, 4, 6, 6, 6, 1, 0, 240, 16, 16, 32, 64,
32
+  64, 4, 6, 6, 6, 1, 0, 96, 144, 96, 144, 144, 96, 4, 6, 6,
33
+  6, 1, 0, 96, 144, 144, 112, 16, 96, 2, 5, 5, 6, 2, 0, 192,
34
+  192, 0, 192, 192, 2, 7, 7, 6, 2, 254, 192, 192, 0, 192, 64, 64,
35
+  128, 5, 5, 5, 6, 0, 0, 24, 96, 128, 96, 24, 5, 3, 3, 6,
36
+  0, 1, 248, 0, 248, 5, 5, 5, 6, 0, 0, 192, 48, 8, 48, 192,
37
+  4, 7, 7, 6, 1, 0, 96, 144, 16, 96, 64, 0, 64, 5, 6, 6,
38
+  6, 0, 0, 112, 144, 168, 176, 128, 112, 5, 6, 6, 6, 0, 0, 32,
39
+  80, 136, 248, 136, 136, 5, 6, 6, 6, 0, 0, 240, 136, 240, 136, 136,
40
+  240, 4, 6, 6, 6, 1, 0, 96, 144, 128, 128, 144, 96, 4, 6, 6,
41
+  6, 1, 0, 224, 144, 144, 144, 144, 224, 4, 6, 6, 6, 1, 0, 240,
42
+  128, 224, 128, 128, 240, 4, 6, 6, 6, 1, 0, 240, 128, 224, 128, 128,
43
+  128, 4, 6, 6, 6, 1, 0, 96, 144, 128, 176, 144, 96, 4, 6, 6,
44
+  6, 1, 0, 144, 144, 240, 144, 144, 144, 3, 6, 6, 6, 1, 0, 224,
45
+  64, 64, 64, 64, 224, 5, 6, 6, 6, 0, 0, 56, 16, 16, 16, 144,
46
+  96, 4, 6, 6, 6, 1, 0, 144, 160, 192, 160, 144, 144, 4, 6, 6,
47
+  6, 1, 0, 128, 128, 128, 128, 128, 240, 5, 6, 6, 6, 0, 0, 136,
48
+  216, 168, 168, 136, 136, 4, 6, 6, 6, 1, 0, 144, 208, 176, 144, 144,
49
+  144, 5, 6, 6, 6, 0, 0, 112, 136, 136, 136, 136, 112, 4, 6, 6,
50
+  6, 1, 0, 224, 144, 144, 224, 128, 128, 4, 7, 7, 6, 1, 255, 96,
51
+  144, 144, 208, 176, 96, 16, 4, 6, 6, 6, 1, 0, 224, 144, 144, 224,
52
+  144, 144, 4, 6, 6, 6, 1, 0, 96, 144, 64, 32, 144, 96, 5, 6,
53
+  6, 6, 0, 0, 248, 32, 32, 32, 32, 32, 4, 6, 6, 6, 1, 0,
54
+  144, 144, 144, 144, 144, 96, 4, 6, 6, 6, 1, 0, 144, 144, 144, 240,
55
+  96, 96, 5, 6, 6, 6, 0, 0, 136, 136, 168, 168, 216, 136, 5, 6,
56
+  6, 6, 0, 0, 136, 80, 32, 32, 80, 136, 5, 6, 6, 6, 0, 0,
57
+  136, 136, 80, 32, 32, 32, 4, 6, 6, 6, 1, 0, 240, 16, 32, 64,
58
+  128, 240, 3, 6, 6, 6, 1, 0, 224, 128, 128, 128, 128, 224, 4, 6,
59
+  6, 6, 1, 0, 128, 128, 64, 32, 16, 16, 3, 6, 6, 6, 1, 0,
60
+  224, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 3, 32, 80, 136, 5,
61
+  1, 1, 6, 0, 254, 248, 2, 2, 2, 6, 2, 4, 128, 64, 4, 4,
62
+  4, 6, 1, 0, 112, 144, 144, 112, 4, 6, 6, 6, 1, 0, 128, 128,
63
+  224, 144, 144, 224, 4, 4, 4, 6, 1, 0, 112, 128, 128, 112, 4, 6,
64
+  6, 6, 1, 0, 16, 16, 112, 144, 144, 112, 4, 4, 4, 6, 1, 0,
65
+  96, 176, 192, 112, 4, 6, 6, 6, 1, 0, 32, 80, 64, 224, 64, 64,
66
+  4, 6, 6, 6, 1, 254, 96, 144, 144, 112, 16, 96, 4, 6, 6, 6,
67
+  1, 0, 128, 128, 224, 144, 144, 144, 3, 6, 6, 6, 1, 0, 64, 0,
68
+  192, 64, 64, 224, 3, 8, 8, 6, 1, 254, 32, 0, 96, 32, 32, 32,
69
+  160, 64, 4, 6, 6, 6, 1, 0, 128, 128, 160, 192, 160, 144, 3, 6,
70
+  6, 6, 1, 0, 192, 64, 64, 64, 64, 224, 5, 4, 4, 6, 0, 0,
71
+  208, 168, 168, 136, 4, 4, 4, 6, 1, 0, 224, 144, 144, 144, 4, 4,
72
+  4, 6, 1, 0, 96, 144, 144, 96, 4, 6, 6, 6, 1, 254, 224, 144,
73
+  144, 224, 128, 128, 4, 6, 6, 6, 1, 254, 112, 144, 144, 112, 16, 16,
74
+  4, 4, 4, 6, 1, 0, 160, 208, 128, 128, 4, 4, 4, 6, 1, 0,
75
+  112, 192, 48, 224, 4, 6, 6, 6, 1, 0, 64, 64, 224, 64, 80, 32,
76
+  4, 4, 4, 6, 1, 0, 144, 144, 144, 112, 4, 4, 4, 6, 1, 0,
77
+  144, 144, 96, 96, 5, 4, 4, 6, 0, 0, 136, 168, 168, 80, 4, 4,
78
+  4, 6, 1, 0, 144, 96, 96, 144, 4, 6, 6, 6, 1, 254, 144, 144,
79
+  144, 112, 144, 96, 4, 4, 4, 6, 1, 0, 240, 32, 64, 240, 3, 7,
80
+  7, 6, 1, 0, 32, 64, 64, 128, 64, 64, 32, 1, 7, 7, 6, 2,
81
+  255, 128, 128, 128, 128, 128, 128, 128, 3, 7, 7, 6, 1, 0, 128, 64,
82
+  64, 32, 64, 64, 128, 4, 2, 2, 6, 1, 3, 80, 160, 255, 255, 255,
83
+  255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
84
+  255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0,
85
+  0, 6, 0, 7, 1, 6, 6, 6, 2, 0, 128, 0, 128, 128, 128, 128,
86
+  4, 6, 6, 6, 1, 255, 32, 112, 160, 160, 112, 32, 5, 7, 7, 6,
87
+  0, 255, 48, 72, 64, 240, 64, 64, 248, 5, 5, 5, 6, 0, 0, 168,
88
+  80, 136, 80, 168, 5, 6, 6, 6, 0, 0, 136, 80, 248, 32, 248, 32,
89
+  1, 7, 7, 6, 2, 255, 128, 128, 128, 0, 128, 128, 128, 4, 7, 7,
90
+  6, 1, 255, 112, 128, 96, 144, 96, 16, 224, 3, 1, 1, 6, 1, 5,
91
+  160, 6, 7, 7, 6, 0, 0, 120, 132, 148, 164, 148, 132, 120, 3, 5,
92
+  5, 6, 1, 1, 96, 160, 96, 0, 224, 5, 5, 5, 6, 0, 0, 40,
93
+  80, 160, 80, 40, 4, 3, 3, 6, 1, 0, 240, 16, 16, 4, 1, 1,
94
+  6, 1, 2, 240, 6, 7, 7, 6, 0, 0, 120, 132, 180, 164, 164, 132,
95
+  120, 4, 1, 1, 6, 1, 5, 240, 4, 3, 3, 6, 1, 2, 96, 144,
96
+  96, 5, 7, 7, 6, 0, 255, 32, 32, 248, 32, 32, 0, 248, 3, 5,
97
+  5, 6, 1, 1, 64, 160, 32, 64, 224, 3, 5, 5, 6, 1, 1, 192,
98
+  32, 64, 32, 192, 2, 2, 2, 6, 2, 4, 64, 128, 4, 5, 5, 6,
99
+  1, 255, 144, 144, 176, 208, 128, 5, 6, 6, 6, 0, 0, 120, 232, 232,
100
+  104, 40, 40, 1, 1, 1, 6, 2, 2, 128, 2, 2, 2, 6, 2, 254,
101
+  64, 128, 3, 5, 5, 6, 1, 1, 64, 192, 64, 64, 224, 3, 5, 5,
102
+  6, 1, 1, 64, 160, 64, 0, 224, 5, 5, 5, 6, 0, 0, 160, 80,
103
+  40, 80, 160, 5, 8, 8, 6, 0, 255, 64, 192, 64, 80, 112, 48, 120,
104
+  16, 5, 8, 8, 6, 0, 255, 64, 192, 64, 80, 104, 8, 16, 56, 5,
105
+  8, 8, 6, 0, 255, 192, 32, 64, 48, 240, 48, 120, 16, 4, 7, 7,
106
+  6, 1, 0, 32, 0, 32, 96, 128, 144, 96, 5, 7, 7, 6, 0, 0,
107
+  64, 32, 32, 80, 112, 136, 136, 5, 7, 7, 6, 0, 0, 16, 32, 32,
108
+  80, 112, 136, 136, 5, 7, 7, 6, 0, 0, 32, 80, 32, 80, 112, 136,
109
+  136, 5, 7, 7, 6, 0, 0, 40, 80, 32, 80, 112, 136, 136, 5, 7,
110
+  7, 6, 0, 0, 80, 0, 32, 80, 112, 136, 136, 5, 7, 7, 6, 0,
111
+  0, 32, 80, 32, 80, 112, 136, 136, 5, 6, 6, 6, 0, 0, 120, 160,
112
+  240, 160, 160, 184, 4, 8, 8, 6, 1, 254, 96, 144, 128, 128, 144, 96,
113
+  32, 64, 4, 7, 7, 6, 1, 0, 64, 32, 240, 128, 224, 128, 240, 4,
114
+  7, 7, 6, 1, 0, 32, 64, 240, 128, 224, 128, 240, 4, 7, 7, 6,
115
+  1, 0, 32, 80, 240, 128, 224, 128, 240, 4, 7, 7, 6, 1, 0, 80,
116
+  0, 240, 128, 224, 128, 240, 3, 7, 7, 6, 1, 0, 128, 64, 224, 64,
117
+  64, 64, 224, 3, 7, 7, 6, 1, 0, 32, 64, 224, 64, 64, 64, 224,
118
+  3, 7, 7, 6, 1, 0, 64, 160, 224, 64, 64, 64, 224, 3, 7, 7,
119
+  6, 1, 0, 160, 0, 224, 64, 64, 64, 224, 5, 6, 6, 6, 0, 0,
120
+  112, 72, 232, 72, 72, 112, 4, 7, 7, 6, 1, 0, 80, 160, 144, 208,
121
+  176, 144, 144, 4, 7, 7, 6, 1, 0, 64, 32, 96, 144, 144, 144, 96,
122
+  4, 7, 7, 6, 1, 0, 32, 64, 96, 144, 144, 144, 96, 4, 7, 7,
123
+  6, 1, 0, 32, 80, 96, 144, 144, 144, 96, 4, 7, 7, 6, 1, 0,
124
+  80, 160, 96, 144, 144, 144, 96, 4, 7, 7, 6, 1, 0, 80, 0, 96,
125
+  144, 144, 144, 96, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 4,
126
+  8, 8, 6, 1, 255, 16, 112, 176, 176, 208, 208, 224, 128, 4, 7, 7,
127
+  6, 1, 0, 64, 32, 144, 144, 144, 144, 96, 4, 7, 7, 6, 1, 0,
128
+  32, 64, 144, 144, 144, 144, 96, 4, 7, 7, 6, 1, 0, 32, 80, 144,
129
+  144, 144, 144, 96, 4, 7, 7, 6, 1, 0, 80, 0, 144, 144, 144, 144,
130
+  96, 5, 7, 7, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32, 4, 6,
131
+  6, 6, 1, 0, 128, 224, 144, 144, 224, 128, 4, 6, 6, 6, 1, 0,
132
+  96, 144, 160, 160, 144, 160, 4, 7, 7, 6, 1, 0, 64, 32, 0, 112,
133
+  144, 144, 112, 4, 7, 7, 6, 1, 0, 32, 64, 0, 112, 144, 144, 112,
134
+  4, 7, 7, 6, 1, 0, 32, 80, 0, 112, 144, 144, 112, 4, 7, 7,
135
+  6, 1, 0, 80, 160, 0, 112, 144, 144, 112, 4, 6, 6, 6, 1, 0,
136
+  80, 0, 112, 144, 144, 112, 4, 7, 7, 6, 1, 0, 32, 80, 32, 112,
137
+  144, 144, 112, 5, 4, 4, 6, 0, 0, 112, 168, 176, 120, 4, 6, 6,
138
+  6, 1, 254, 112, 128, 128, 112, 32, 64, 4, 7, 7, 6, 1, 0, 64,
139
+  32, 0, 96, 176, 192, 112, 4, 7, 7, 6, 1, 0, 32, 64, 0, 96,
140
+  176, 192, 112, 4, 7, 7, 6, 1, 0, 32, 80, 0, 96, 176, 192, 112,
141
+  4, 6, 6, 6, 1, 0, 80, 0, 96, 176, 192, 112, 3, 7, 7, 6,
142
+  1, 0, 128, 64, 0, 192, 64, 64, 224, 3, 7, 7, 6, 1, 0, 32,
143
+  64, 0, 192, 64, 64, 224, 3, 7, 7, 6, 1, 0, 64, 160, 0, 192,
144
+  64, 64, 224, 3, 6, 6, 6, 1, 0, 160, 0, 192, 64, 64, 224, 4,
145
+  7, 7, 6, 1, 0, 48, 96, 16, 112, 144, 144, 96, 4, 7, 7, 6,
146
+  1, 0, 80, 160, 0, 224, 144, 144, 144, 4, 7, 7, 6, 1, 0, 64,
147
+  32, 0, 96, 144, 144, 96, 4, 7, 7, 6, 1, 0, 32, 64, 0, 96,
148
+  144, 144, 96, 4, 7, 7, 6, 1, 0, 32, 80, 0, 96, 144, 144, 96,
149
+  4, 7, 7, 6, 1, 0, 80, 160, 0, 96, 144, 144, 96, 4, 6, 6,
150
+  6, 1, 0, 80, 0, 96, 144, 144, 96, 5, 5, 5, 6, 0, 0, 32,
151
+  0, 248, 0, 32, 4, 4, 4, 6, 1, 0, 112, 176, 208, 224, 4, 7,
152
+  7, 6, 1, 0, 64, 32, 0, 144, 144, 144, 112, 4, 7, 7, 6, 1,
153
+  0, 32, 64, 0, 144, 144, 144, 112, 4, 7, 7, 6, 1, 0, 32, 80,
154
+  0, 144, 144, 144, 112, 4, 6, 6, 6, 1, 0, 80, 0, 144, 144, 144,
155
+  112, 4, 9, 9, 6, 1, 254, 32, 64, 0, 144, 144, 144, 112, 144, 96,
156
+  4, 8, 8, 6, 1, 254, 128, 128, 224, 144, 144, 224, 128, 128, 4, 8,
157
+  8, 6, 1, 254, 80, 0, 144, 144, 144, 112, 144, 96
158
+};

+ 159
- 158
Marlin/dogm_font_data_HD44780_C.h View File

@@ -11,161 +11,162 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t HD44780_C_5x7[2522] U8G_SECTION(".progmem.HD44780_C_5x7") = {
14
-  0,6,9,0,254,7,1,145,3,34,32,255,255,8,255,7,
15
-  255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
16
-  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
-  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
-  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
-  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
-  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
-  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
-  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
-  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
-  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
-  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
-  0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
27
-  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
-  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
-  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
-  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
-  48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
-  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
-  112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
34
-  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
-  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
-  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
37
-  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
-  8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
39
-  112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
40
-  7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
41
-  0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
42
-  136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
43
-  128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
44
-  7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
45
-  0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
46
-  128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
47
-  16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
48
-  5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
49
-  6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
50
-  136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
51
-  136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
52
-  128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
53
-  7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
54
-  0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
55
-  32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
56
-  136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
57
-  7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
58
-  0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
59
-  136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
60
-  64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
61
-  5,7,7,6,0,0,32,112,160,160,168,112,32,3,7,7,
62
-  6,1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,
63
-  32,80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,
64
-  128,64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,
65
-  6,0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,
66
-  112,128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,
67
-  136,120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,
68
-  6,0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,
69
-  112,136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,
70
-  136,136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,
71
-  3,8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,
72
-  7,6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,
73
-  0,192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,
74
-  168,168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,
75
-  5,6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,
76
-  136,136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,
77
-  8,5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,
78
-  0,0,112,128,112,8,240,5,7,7,6,0,0,64,64,224,
79
-  64,64,72,48,5,5,5,6,0,0,136,136,136,152,104,5,
80
-  5,5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,
81
-  136,136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,
82
-  5,6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,
83
-  0,0,248,16,32,64,248,5,5,5,6,0,2,184,168,168,
84
-  168,184,5,5,5,6,0,2,184,136,184,160,184,5,5,5,
85
-  6,0,2,184,160,184,136,184,5,6,6,6,0,1,8,40,
86
-  72,248,64,32,5,5,5,6,0,0,56,112,224,136,240,0,
87
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
88
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
89
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
90
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
91
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
92
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
93
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
94
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
95
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
96
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
97
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
98
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,5,
99
-  7,7,6,0,0,248,136,128,240,136,136,240,5,7,7,6,
100
-  0,0,248,136,128,128,128,128,128,5,7,7,6,0,0,80,
101
-  0,248,128,240,128,248,5,7,7,6,0,0,168,168,168,112,
102
-  168,168,168,5,7,7,6,0,0,240,8,8,112,8,8,240,
103
-  5,7,7,6,0,0,136,136,152,168,200,136,136,5,8,8,
104
-  6,0,0,80,32,136,152,168,168,200,136,5,7,7,6,0,
105
-  0,120,40,40,40,40,168,72,5,7,7,6,0,0,248,136,
106
-  136,136,136,136,136,5,7,7,6,0,0,136,136,136,80,32,
107
-  64,128,5,7,7,6,0,0,32,112,168,168,168,112,32,5,
108
-  7,7,6,0,0,136,136,136,120,8,8,8,5,7,7,6,
109
-  0,0,168,168,168,168,168,168,248,5,7,7,6,0,0,192,
110
-  64,64,112,72,72,112,5,7,7,6,0,0,136,136,136,200,
111
-  168,168,200,5,7,7,6,0,0,112,136,8,56,8,136,112,
112
-  5,7,7,6,0,0,144,168,168,232,168,168,144,5,7,7,
113
-  6,0,0,120,136,136,120,40,72,136,5,7,7,6,0,0,
114
-  24,96,128,240,136,136,112,4,5,5,6,0,0,224,144,224,
115
-  144,224,5,5,5,6,0,0,248,136,128,128,128,5,7,7,
116
-  6,0,0,80,0,112,136,248,128,112,5,5,5,6,0,0,
117
-  168,168,112,168,168,5,5,5,6,0,0,240,8,48,8,240,
118
-  5,5,5,6,0,0,136,152,168,200,136,5,7,7,6,0,
119
-  0,80,32,136,152,168,200,136,4,5,5,6,0,0,144,160,
120
-  192,160,144,5,5,5,6,0,0,248,40,40,168,72,5,5,
121
-  5,6,0,0,136,216,168,136,136,5,5,5,6,0,0,136,
122
-  136,248,136,136,5,5,5,6,0,0,248,136,136,136,136,5,
123
-  5,5,6,0,0,248,32,32,32,32,5,5,5,6,0,0,
124
-  136,136,120,8,8,5,5,5,6,0,0,168,168,168,168,248,
125
-  5,5,5,6,0,0,192,64,112,72,112,5,5,5,6,0,
126
-  0,136,136,200,168,200,4,5,5,6,0,0,128,128,224,144,
127
-  224,5,5,5,6,0,0,112,136,56,136,112,5,5,5,6,
128
-  0,0,144,168,232,168,144,5,5,5,6,0,0,120,136,120,
129
-  40,72,5,5,5,6,0,1,32,72,144,72,32,5,5,5,
130
-  6,0,1,32,144,72,144,32,5,3,3,6,0,0,72,144,
131
-  216,5,3,3,6,0,4,216,72,144,5,7,7,6,0,0,
132
-  144,208,176,144,56,40,56,5,7,7,6,0,0,32,0,32,
133
-  64,128,136,112,5,7,7,6,0,0,24,32,32,112,32,32,
134
-  192,5,7,7,6,0,0,32,80,64,240,64,64,120,1,2,
135
-  2,6,2,0,128,128,1,4,4,6,2,0,128,128,128,128,
136
-  3,5,5,6,1,0,160,160,160,0,224,3,5,5,6,1,
137
-  0,160,160,160,0,160,5,7,7,6,0,0,160,0,232,16,
138
-  32,64,128,5,5,5,6,0,1,216,112,32,112,216,5,7,
139
-  7,6,0,0,160,64,168,16,32,64,128,3,6,6,6,1,
140
-  1,224,64,64,64,64,224,5,6,6,6,0,1,248,80,80,
141
-  80,80,248,5,7,7,6,0,0,32,112,168,32,32,32,32,
142
-  5,7,7,6,0,0,32,32,32,32,168,112,32,5,7,7,
143
-  6,0,0,128,144,176,248,176,144,128,5,7,7,6,0,0,
144
-  8,72,104,248,104,72,8,5,7,7,6,0,0,128,136,168,
145
-  248,168,136,128,5,7,7,6,0,0,128,224,136,16,32,64,
146
-  128,2,2,2,6,2,2,192,192,5,8,8,6,0,255,120,
147
-  40,40,40,72,136,248,136,5,8,8,6,0,255,136,136,136,
148
-  136,136,136,248,8,5,8,8,6,0,255,168,168,168,168,168,
149
-  168,248,8,5,6,6,6,0,255,120,40,72,136,248,136,5,
150
-  7,7,6,0,255,32,32,112,168,168,112,32,5,6,6,6,
151
-  0,255,136,136,136,136,248,8,5,6,6,6,0,255,168,168,
152
-  168,168,248,8,2,2,2,6,2,6,64,128,3,1,1,6,
153
-  1,7,160,5,2,2,6,0,6,72,176,5,8,8,6,0,
154
-  0,16,32,0,112,136,248,128,112,5,6,6,6,0,255,112,
155
-  128,136,112,32,96,3,7,7,6,1,0,160,0,160,160,160,
156
-  32,192,5,6,6,6,0,1,32,112,112,112,248,32,5,5,
157
-  5,6,0,1,80,0,136,0,80,5,5,5,6,0,1,112,
158
-  136,136,136,112,5,7,7,6,0,0,136,144,168,88,184,8,
159
-  8,5,7,7,6,0,0,136,144,184,72,184,8,56,5,7,
160
-  7,6,0,0,136,144,184,72,152,32,56,5,8,8,6,0,
161
-  0,192,64,192,72,216,56,8,8,5,7,7,6,0,0,136,
162
-  248,136,248,136,248,136,4,5,5,6,0,2,192,0,48,0,
163
-  96,5,8,8,6,0,0,64,160,224,168,8,40,120,32,5,
164
-  8,8,6,0,0,64,112,64,120,64,112,64,224,5,8,8,
165
-  6,0,0,32,112,32,248,32,112,32,112,5,7,7,6,0,
166
-  0,104,0,232,0,104,16,56,5,8,8,6,0,0,16,112,
167
-  16,240,16,112,16,56,5,7,7,6,0,1,32,112,32,248,
168
-  32,112,32,5,8,8,6,0,0,16,144,80,48,80,144,16,
169
-  56,5,8,8,6,0,0,48,72,32,80,80,32,144,96,5,
170
-  7,7,6,0,0,120,168,168,120,40,40,40,5,8,8,6,
171
-  0,0,248,248,248,248,248,248,248,248};
14
+  0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 255, 7,
15
+  255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
16
+  128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
17
+  0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
18
+  120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
19
+  64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
20
+  2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
21
+  64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
22
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
23
+  5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
24
+  64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
25
+  192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
26
+  0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
27
+  192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
28
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
29
+  5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
30
+  6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
31
+  48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32
+  32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
33
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
34
+  5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
35
+  192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
36
+  32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
37
+  0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
38
+  8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
39
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
40
+  7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
41
+  0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
42
+  136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
43
+  128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
44
+  7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
45
+  0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
46
+  128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
47
+  16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
48
+  5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
49
+  6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
50
+  136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
51
+  136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
52
+  128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
53
+  7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
54
+  0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
55
+  32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
56
+  136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
57
+  7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
58
+  0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
59
+  136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
60
+  64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
61
+  5, 7, 7, 6, 0, 0, 32, 112, 160, 160, 168, 112, 32, 3, 7, 7,
62
+  6, 1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4,
63
+  32, 80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5,
64
+  128, 64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7,
65
+  6, 0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0,
66
+  112, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136,
67
+  136, 120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7,
68
+  6, 0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255,
69
+  112, 136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200,
70
+  136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
71
+  3, 8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7,
72
+  7, 6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1,
73
+  0, 192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168,
74
+  168, 168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5,
75
+  5, 6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240,
76
+  136, 136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8,
77
+  8, 5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6,
78
+  0, 0, 112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224,
79
+  64, 64, 72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5,
80
+  5, 5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0,
81
+  136, 136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136,
82
+  5, 6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6,
83
+  0, 0, 248, 16, 32, 64, 248, 5, 5, 5, 6, 0, 2, 184, 168, 168,
84
+  168, 184, 5, 5, 5, 6, 0, 2, 184, 136, 184, 160, 184, 5, 5, 5,
85
+  6, 0, 2, 184, 160, 184, 136, 184, 5, 6, 6, 6, 0, 1, 8, 40,
86
+  72, 248, 64, 32, 5, 5, 5, 6, 0, 0, 56, 112, 224, 136, 240, 0,
87
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
88
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
89
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
90
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
91
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
92
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
93
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
94
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
95
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
96
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
97
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
98
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5,
99
+  7, 7, 6, 0, 0, 248, 136, 128, 240, 136, 136, 240, 5, 7, 7, 6,
100
+  0, 0, 248, 136, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 80,
101
+  0, 248, 128, 240, 128, 248, 5, 7, 7, 6, 0, 0, 168, 168, 168, 112,
102
+  168, 168, 168, 5, 7, 7, 6, 0, 0, 240, 8, 8, 112, 8, 8, 240,
103
+  5, 7, 7, 6, 0, 0, 136, 136, 152, 168, 200, 136, 136, 5, 8, 8,
104
+  6, 0, 0, 80, 32, 136, 152, 168, 168, 200, 136, 5, 7, 7, 6, 0,
105
+  0, 120, 40, 40, 40, 40, 168, 72, 5, 7, 7, 6, 0, 0, 248, 136,
106
+  136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136, 136, 80, 32,
107
+  64, 128, 5, 7, 7, 6, 0, 0, 32, 112, 168, 168, 168, 112, 32, 5,
108
+  7, 7, 6, 0, 0, 136, 136, 136, 120, 8, 8, 8, 5, 7, 7, 6,
109
+  0, 0, 168, 168, 168, 168, 168, 168, 248, 5, 7, 7, 6, 0, 0, 192,
110
+  64, 64, 112, 72, 72, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 200,
111
+  168, 168, 200, 5, 7, 7, 6, 0, 0, 112, 136, 8, 56, 8, 136, 112,
112
+  5, 7, 7, 6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7,
113
+  6, 0, 0, 120, 136, 136, 120, 40, 72, 136, 5, 7, 7, 6, 0, 0,
114
+  24, 96, 128, 240, 136, 136, 112, 4, 5, 5, 6, 0, 0, 224, 144, 224,
115
+  144, 224, 5, 5, 5, 6, 0, 0, 248, 136, 128, 128, 128, 5, 7, 7,
116
+  6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 5, 5, 5, 6, 0, 0,
117
+  168, 168, 112, 168, 168, 5, 5, 5, 6, 0, 0, 240, 8, 48, 8, 240,
118
+  5, 5, 5, 6, 0, 0, 136, 152, 168, 200, 136, 5, 7, 7, 6, 0,
119
+  0, 80, 32, 136, 152, 168, 200, 136, 4, 5, 5, 6, 0, 0, 144, 160,
120
+  192, 160, 144, 5, 5, 5, 6, 0, 0, 248, 40, 40, 168, 72, 5, 5,
121
+  5, 6, 0, 0, 136, 216, 168, 136, 136, 5, 5, 5, 6, 0, 0, 136,
122
+  136, 248, 136, 136, 5, 5, 5, 6, 0, 0, 248, 136, 136, 136, 136, 5,
123
+  5, 5, 6, 0, 0, 248, 32, 32, 32, 32, 5, 5, 5, 6, 0, 0,
124
+  136, 136, 120, 8, 8, 5, 5, 5, 6, 0, 0, 168, 168, 168, 168, 248,
125
+  5, 5, 5, 6, 0, 0, 192, 64, 112, 72, 112, 5, 5, 5, 6, 0,
126
+  0, 136, 136, 200, 168, 200, 4, 5, 5, 6, 0, 0, 128, 128, 224, 144,
127
+  224, 5, 5, 5, 6, 0, 0, 112, 136, 56, 136, 112, 5, 5, 5, 6,
128
+  0, 0, 144, 168, 232, 168, 144, 5, 5, 5, 6, 0, 0, 120, 136, 120,
129
+  40, 72, 5, 5, 5, 6, 0, 1, 32, 72, 144, 72, 32, 5, 5, 5,
130
+  6, 0, 1, 32, 144, 72, 144, 32, 5, 3, 3, 6, 0, 0, 72, 144,
131
+  216, 5, 3, 3, 6, 0, 4, 216, 72, 144, 5, 7, 7, 6, 0, 0,
132
+  144, 208, 176, 144, 56, 40, 56, 5, 7, 7, 6, 0, 0, 32, 0, 32,
133
+  64, 128, 136, 112, 5, 7, 7, 6, 0, 0, 24, 32, 32, 112, 32, 32,
134
+  192, 5, 7, 7, 6, 0, 0, 32, 80, 64, 240, 64, 64, 120, 1, 2,
135
+  2, 6, 2, 0, 128, 128, 1, 4, 4, 6, 2, 0, 128, 128, 128, 128,
136
+  3, 5, 5, 6, 1, 0, 160, 160, 160, 0, 224, 3, 5, 5, 6, 1,
137
+  0, 160, 160, 160, 0, 160, 5, 7, 7, 6, 0, 0, 160, 0, 232, 16,
138
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 216, 112, 32, 112, 216, 5, 7,
139
+  7, 6, 0, 0, 160, 64, 168, 16, 32, 64, 128, 3, 6, 6, 6, 1,
140
+  1, 224, 64, 64, 64, 64, 224, 5, 6, 6, 6, 0, 1, 248, 80, 80,
141
+  80, 80, 248, 5, 7, 7, 6, 0, 0, 32, 112, 168, 32, 32, 32, 32,
142
+  5, 7, 7, 6, 0, 0, 32, 32, 32, 32, 168, 112, 32, 5, 7, 7,
143
+  6, 0, 0, 128, 144, 176, 248, 176, 144, 128, 5, 7, 7, 6, 0, 0,
144
+  8, 72, 104, 248, 104, 72, 8, 5, 7, 7, 6, 0, 0, 128, 136, 168,
145
+  248, 168, 136, 128, 5, 7, 7, 6, 0, 0, 128, 224, 136, 16, 32, 64,
146
+  128, 2, 2, 2, 6, 2, 2, 192, 192, 5, 8, 8, 6, 0, 255, 120,
147
+  40, 40, 40, 72, 136, 248, 136, 5, 8, 8, 6, 0, 255, 136, 136, 136,
148
+  136, 136, 136, 248, 8, 5, 8, 8, 6, 0, 255, 168, 168, 168, 168, 168,
149
+  168, 248, 8, 5, 6, 6, 6, 0, 255, 120, 40, 72, 136, 248, 136, 5,
150
+  7, 7, 6, 0, 255, 32, 32, 112, 168, 168, 112, 32, 5, 6, 6, 6,
151
+  0, 255, 136, 136, 136, 136, 248, 8, 5, 6, 6, 6, 0, 255, 168, 168,
152
+  168, 168, 248, 8, 2, 2, 2, 6, 2, 6, 64, 128, 3, 1, 1, 6,
153
+  1, 7, 160, 5, 2, 2, 6, 0, 6, 72, 176, 5, 8, 8, 6, 0,
154
+  0, 16, 32, 0, 112, 136, 248, 128, 112, 5, 6, 6, 6, 0, 255, 112,
155
+  128, 136, 112, 32, 96, 3, 7, 7, 6, 1, 0, 160, 0, 160, 160, 160,
156
+  32, 192, 5, 6, 6, 6, 0, 1, 32, 112, 112, 112, 248, 32, 5, 5,
157
+  5, 6, 0, 1, 80, 0, 136, 0, 80, 5, 5, 5, 6, 0, 1, 112,
158
+  136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 144, 168, 88, 184, 8,
159
+  8, 5, 7, 7, 6, 0, 0, 136, 144, 184, 72, 184, 8, 56, 5, 7,
160
+  7, 6, 0, 0, 136, 144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0,
161
+  0, 192, 64, 192, 72, 216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 136,
162
+  248, 136, 248, 136, 248, 136, 4, 5, 5, 6, 0, 2, 192, 0, 48, 0,
163
+  96, 5, 8, 8, 6, 0, 0, 64, 160, 224, 168, 8, 40, 120, 32, 5,
164
+  8, 8, 6, 0, 0, 64, 112, 64, 120, 64, 112, 64, 224, 5, 8, 8,
165
+  6, 0, 0, 32, 112, 32, 248, 32, 112, 32, 112, 5, 7, 7, 6, 0,
166
+  0, 104, 0, 232, 0, 104, 16, 56, 5, 8, 8, 6, 0, 0, 16, 112,
167
+  16, 240, 16, 112, 16, 56, 5, 7, 7, 6, 0, 1, 32, 112, 32, 248,
168
+  32, 112, 32, 5, 8, 8, 6, 0, 0, 16, 144, 80, 48, 80, 144, 16,
169
+  56, 5, 8, 8, 6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 5,
170
+  7, 7, 6, 0, 0, 120, 168, 168, 120, 40, 40, 40, 5, 8, 8, 6,
171
+  0, 0, 248, 248, 248, 248, 248, 248, 248, 248
172
+};

+ 157
- 156
Marlin/dogm_font_data_HD44780_J.h View File

@@ -11,159 +11,160 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t HD44780_J_5x7[2491] U8G_SECTION(".progmem.HD44780_J_5x7") = {
14
-  0,6,9,0,254,7,1,145,3,34,32,255,255,8,254,7,
15
-  255,0,0,0,6,0,8,1,7,7,6,2,0,128,128,128,
16
-  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
-  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
-  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
-  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
-  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
-  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
-  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
-  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
-  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
-  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
-  0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
27
-  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
-  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
-  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
-  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
-  48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
-  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
-  112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
34
-  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
-  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
-  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
37
-  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
-  8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
39
-  112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
40
-  7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
41
-  0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
42
-  136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
43
-  128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
44
-  7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
45
-  0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
46
-  128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
47
-  16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
48
-  5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
49
-  6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
50
-  136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
51
-  136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
52
-  128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
53
-  7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
54
-  0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
55
-  32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
56
-  136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
57
-  7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
58
-  0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
59
-  136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
60
-  64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
61
-  5,7,7,6,0,0,136,80,248,32,248,32,32,3,7,7,
62
-  6,1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,
63
-  32,80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,
64
-  128,64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,
65
-  6,0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,
66
-  112,128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,
67
-  136,120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,
68
-  6,0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,
69
-  112,136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,
70
-  136,136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,
71
-  3,8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,
72
-  7,6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,
73
-  0,192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,
74
-  168,168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,
75
-  5,6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,
76
-  136,136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,
77
-  8,5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,
78
-  0,0,112,128,112,8,240,5,7,7,6,0,0,64,64,224,
79
-  64,64,72,48,5,5,5,6,0,0,136,136,136,152,104,5,
80
-  5,5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,
81
-  136,136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,
82
-  5,6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,
83
-  0,0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,
84
-  128,64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,
85
-  128,3,7,7,6,1,0,128,64,64,32,64,64,128,5,5,
86
-  5,6,0,1,32,16,248,16,32,5,5,5,6,0,1,32,
87
-  64,248,64,32,0,0,0,6,0,8,0,0,0,6,0,8,
88
-  0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
89
-  0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
90
-  0,6,0,8,0,0,0,6,0,8,0,0,0,6,0,8,
91
-  0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
92
-  0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
93
-  0,6,0,8,0,0,0,6,0,8,0,0,0,6,0,8,
94
-  0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
95
-  0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
96
-  0,6,0,8,0,0,0,6,0,8,0,0,0,6,0,8,
97
-  0,0,0,6,0,8,0,0,0,6,0,8,0,0,0,6,
98
-  0,8,0,0,0,6,0,8,0,0,0,6,0,8,0,0,
99
-  0,6,0,8,0,0,0,6,0,8,3,3,3,6,0,0,
100
-  224,160,224,3,4,4,6,2,3,224,128,128,128,3,4,4,
101
-  6,0,0,32,32,32,224,3,3,3,6,0,0,128,64,32,
102
-  2,2,2,6,1,2,192,192,5,6,6,6,0,0,248,8,
103
-  248,8,16,32,5,5,5,6,0,0,248,8,48,32,64,4,
104
-  5,5,6,0,0,16,32,96,160,32,5,5,5,6,0,0,
105
-  32,248,136,8,48,5,4,4,6,0,0,248,32,32,248,5,
106
-  5,5,6,0,0,16,248,48,80,144,5,5,5,6,0,0,
107
-  64,248,72,80,64,5,4,4,6,0,0,112,16,16,248,4,
108
-  5,5,6,0,0,240,16,240,16,240,5,4,4,6,0,0,
109
-  168,168,8,48,5,1,1,6,0,4,248,5,7,7,6,0,
110
-  0,248,8,40,48,32,32,64,5,7,7,6,0,0,8,16,
111
-  32,96,160,32,32,5,7,7,6,0,0,32,248,136,136,8,
112
-  16,32,5,6,6,6,0,0,248,32,32,32,32,248,5,7,
113
-  7,6,0,0,16,248,16,48,80,144,16,5,7,7,6,0,
114
-  0,64,248,72,72,72,72,144,5,7,7,6,0,0,32,248,
115
-  32,248,32,32,32,5,6,6,6,0,0,120,72,136,8,16,
116
-  96,5,7,7,6,0,0,64,120,144,16,16,16,32,5,6,
117
-  6,6,0,0,248,8,8,8,8,248,5,7,7,6,0,0,
118
-  80,248,80,80,16,32,64,5,6,6,6,0,0,192,8,200,
119
-  8,16,224,5,6,6,6,0,0,248,8,16,32,80,136,5,
120
-  7,7,6,0,0,64,248,72,80,64,64,56,5,6,6,6,
121
-  0,0,136,136,72,8,16,96,5,6,6,6,0,0,120,72,
122
-  168,24,16,96,5,7,7,6,0,0,16,224,32,248,32,32,
123
-  64,5,6,6,6,0,0,168,168,168,8,16,32,5,7,7,
124
-  6,0,0,112,0,248,32,32,32,64,3,7,7,6,1,0,
125
-  128,128,128,192,160,128,128,5,7,7,6,0,0,32,32,248,
126
-  32,32,64,128,5,6,6,6,0,0,112,0,0,0,0,248,
127
-  5,6,6,6,0,0,248,8,80,32,80,128,5,6,6,6,
128
-  0,1,32,248,16,32,112,168,3,7,7,6,1,0,32,32,
129
-  32,32,32,64,128,5,6,6,6,0,0,32,16,136,136,136,
130
-  136,5,7,7,6,0,0,128,128,248,128,128,128,120,5,6,
131
-  6,6,0,0,248,8,8,8,16,96,5,5,5,6,0,1,
132
-  64,160,16,8,8,5,7,7,6,0,0,32,248,32,32,168,
133
-  168,32,5,6,6,6,0,0,248,8,8,80,32,16,4,6,
134
-  6,6,1,0,224,0,224,0,224,16,5,6,6,6,0,0,
135
-  32,64,128,136,248,8,5,6,6,6,0,0,8,8,80,32,
136
-  80,128,5,6,6,6,0,0,248,64,248,64,64,56,5,7,
137
-  7,6,0,0,64,64,248,72,80,64,64,5,7,7,6,0,
138
-  0,112,16,16,16,16,16,248,5,6,6,6,0,0,248,8,
139
-  248,8,8,248,5,7,7,6,0,0,112,0,248,8,8,16,
140
-  32,4,7,7,6,0,0,144,144,144,144,16,32,64,5,6,
141
-  6,6,0,0,32,160,160,168,168,176,5,7,7,6,0,0,
142
-  128,128,128,136,144,160,192,5,6,6,6,0,0,248,136,136,
143
-  136,136,248,5,6,6,6,0,0,248,136,136,8,16,32,5,
144
-  6,6,6,0,0,192,0,8,8,16,224,4,3,3,6,0,
145
-  4,32,144,64,3,3,3,6,0,4,224,160,224,5,5,5,
146
-  6,0,1,72,168,144,144,104,5,7,7,6,0,0,80,0,
147
-  112,8,120,136,120,4,8,8,6,1,255,96,144,144,224,144,
148
-  144,224,128,5,5,5,6,0,0,112,128,96,136,112,5,6,
149
-  6,6,0,255,136,136,152,232,136,128,5,5,5,6,0,0,
150
-  120,160,144,136,112,5,7,7,6,0,254,48,72,136,136,240,
151
-  128,128,5,8,8,6,0,254,120,136,136,136,120,8,8,112,
152
-  5,5,5,6,0,1,56,32,32,160,64,4,3,3,6,0,
153
-  3,16,208,16,4,8,8,6,0,255,16,0,48,16,16,16,
154
-  144,96,3,3,3,6,0,4,160,64,160,5,7,7,6,0,
155
-  0,32,112,160,160,168,112,32,5,7,7,6,0,0,64,64,
156
-  224,64,224,64,120,5,7,7,6,0,0,112,0,176,200,136,
157
-  136,136,5,7,7,6,0,0,80,0,112,136,136,136,112,5,
158
-  7,7,6,0,255,176,200,136,136,240,128,128,5,7,7,6,
159
-  0,255,104,152,136,136,120,8,8,5,6,6,6,0,0,112,
160
-  136,248,136,136,112,5,3,3,6,0,2,88,168,208,5,5,
161
-  5,6,0,0,112,136,136,80,216,5,7,7,6,0,0,80,
162
-  0,136,136,136,152,104,5,7,7,6,0,0,248,128,64,32,
163
-  64,128,248,5,5,5,6,0,0,248,80,80,80,152,5,7,
164
-  7,6,0,0,248,0,136,80,32,80,136,5,7,7,6,0,
165
-  255,136,136,136,136,120,8,112,5,6,6,6,0,1,8,240,
166
-  32,248,32,32,5,5,5,6,0,0,248,64,120,72,136,5,
167
-  5,5,6,0,0,248,168,248,136,136,5,5,5,6,0,1,
168
-  32,0,248,0,32,0,0,0,6,0,8,6,10,10,6,0,
169
-  254,252,252,252,252,252,252,252,252,252,252};
14
+  0, 6, 9, 0, 254, 7, 1, 145, 3, 34, 32, 255, 255, 8, 254, 7,
15
+  255, 0, 0, 0, 6, 0, 8, 1, 7, 7, 6, 2, 0, 128, 128, 128,
16
+  128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
17
+  0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
18
+  120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
19
+  64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
20
+  2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
21
+  64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
22
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
23
+  5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
24
+  64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
25
+  192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
26
+  0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
27
+  192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
28
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
29
+  5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
30
+  6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
31
+  48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32
+  32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
33
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
34
+  5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
35
+  192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
36
+  32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
37
+  0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
38
+  8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
39
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
40
+  7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
41
+  0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
42
+  136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
43
+  128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
44
+  7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
45
+  0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
46
+  128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
47
+  16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
48
+  5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
49
+  6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
50
+  136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
51
+  136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
52
+  128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
53
+  7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
54
+  0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
55
+  32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
56
+  136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
57
+  7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
58
+  0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
59
+  136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
60
+  64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
61
+  5, 7, 7, 6, 0, 0, 136, 80, 248, 32, 248, 32, 32, 3, 7, 7,
62
+  6, 1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4,
63
+  32, 80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5,
64
+  128, 64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7,
65
+  6, 0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0,
66
+  112, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136,
67
+  136, 120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7,
68
+  6, 0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255,
69
+  112, 136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200,
70
+  136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
71
+  3, 8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7,
72
+  7, 6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1,
73
+  0, 192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168,
74
+  168, 168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5,
75
+  5, 6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240,
76
+  136, 136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8,
77
+  8, 5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6,
78
+  0, 0, 112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224,
79
+  64, 64, 72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5,
80
+  5, 5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0,
81
+  136, 136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136,
82
+  5, 6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6,
83
+  0, 0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64,
84
+  128, 64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128,
85
+  128, 3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 5,
86
+  5, 6, 0, 1, 32, 16, 248, 16, 32, 5, 5, 5, 6, 0, 1, 32,
87
+  64, 248, 64, 32, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
88
+  0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
89
+  0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
90
+  0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
91
+  0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
92
+  0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
93
+  0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
94
+  0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
95
+  0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
96
+  0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8,
97
+  0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6,
98
+  0, 8, 0, 0, 0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 0, 0,
99
+  0, 6, 0, 8, 0, 0, 0, 6, 0, 8, 3, 3, 3, 6, 0, 0,
100
+  224, 160, 224, 3, 4, 4, 6, 2, 3, 224, 128, 128, 128, 3, 4, 4,
101
+  6, 0, 0, 32, 32, 32, 224, 3, 3, 3, 6, 0, 0, 128, 64, 32,
102
+  2, 2, 2, 6, 1, 2, 192, 192, 5, 6, 6, 6, 0, 0, 248, 8,
103
+  248, 8, 16, 32, 5, 5, 5, 6, 0, 0, 248, 8, 48, 32, 64, 4,
104
+  5, 5, 6, 0, 0, 16, 32, 96, 160, 32, 5, 5, 5, 6, 0, 0,
105
+  32, 248, 136, 8, 48, 5, 4, 4, 6, 0, 0, 248, 32, 32, 248, 5,
106
+  5, 5, 6, 0, 0, 16, 248, 48, 80, 144, 5, 5, 5, 6, 0, 0,
107
+  64, 248, 72, 80, 64, 5, 4, 4, 6, 0, 0, 112, 16, 16, 248, 4,
108
+  5, 5, 6, 0, 0, 240, 16, 240, 16, 240, 5, 4, 4, 6, 0, 0,
109
+  168, 168, 8, 48, 5, 1, 1, 6, 0, 4, 248, 5, 7, 7, 6, 0,
110
+  0, 248, 8, 40, 48, 32, 32, 64, 5, 7, 7, 6, 0, 0, 8, 16,
111
+  32, 96, 160, 32, 32, 5, 7, 7, 6, 0, 0, 32, 248, 136, 136, 8,
112
+  16, 32, 5, 6, 6, 6, 0, 0, 248, 32, 32, 32, 32, 248, 5, 7,
113
+  7, 6, 0, 0, 16, 248, 16, 48, 80, 144, 16, 5, 7, 7, 6, 0,
114
+  0, 64, 248, 72, 72, 72, 72, 144, 5, 7, 7, 6, 0, 0, 32, 248,
115
+  32, 248, 32, 32, 32, 5, 6, 6, 6, 0, 0, 120, 72, 136, 8, 16,
116
+  96, 5, 7, 7, 6, 0, 0, 64, 120, 144, 16, 16, 16, 32, 5, 6,
117
+  6, 6, 0, 0, 248, 8, 8, 8, 8, 248, 5, 7, 7, 6, 0, 0,
118
+  80, 248, 80, 80, 16, 32, 64, 5, 6, 6, 6, 0, 0, 192, 8, 200,
119
+  8, 16, 224, 5, 6, 6, 6, 0, 0, 248, 8, 16, 32, 80, 136, 5,
120
+  7, 7, 6, 0, 0, 64, 248, 72, 80, 64, 64, 56, 5, 6, 6, 6,
121
+  0, 0, 136, 136, 72, 8, 16, 96, 5, 6, 6, 6, 0, 0, 120, 72,
122
+  168, 24, 16, 96, 5, 7, 7, 6, 0, 0, 16, 224, 32, 248, 32, 32,
123
+  64, 5, 6, 6, 6, 0, 0, 168, 168, 168, 8, 16, 32, 5, 7, 7,
124
+  6, 0, 0, 112, 0, 248, 32, 32, 32, 64, 3, 7, 7, 6, 1, 0,
125
+  128, 128, 128, 192, 160, 128, 128, 5, 7, 7, 6, 0, 0, 32, 32, 248,
126
+  32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 112, 0, 0, 0, 0, 248,
127
+  5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5, 6, 6, 6,
128
+  0, 1, 32, 248, 16, 32, 112, 168, 3, 7, 7, 6, 1, 0, 32, 32,
129
+  32, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 32, 16, 136, 136, 136,
130
+  136, 5, 7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5, 6,
131
+  6, 6, 0, 0, 248, 8, 8, 8, 16, 96, 5, 5, 5, 6, 0, 1,
132
+  64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 0, 32, 248, 32, 32, 168,
133
+  168, 32, 5, 6, 6, 6, 0, 0, 248, 8, 8, 80, 32, 16, 4, 6,
134
+  6, 6, 1, 0, 224, 0, 224, 0, 224, 16, 5, 6, 6, 6, 0, 0,
135
+  32, 64, 128, 136, 248, 8, 5, 6, 6, 6, 0, 0, 8, 8, 80, 32,
136
+  80, 128, 5, 6, 6, 6, 0, 0, 248, 64, 248, 64, 64, 56, 5, 7,
137
+  7, 6, 0, 0, 64, 64, 248, 72, 80, 64, 64, 5, 7, 7, 6, 0,
138
+  0, 112, 16, 16, 16, 16, 16, 248, 5, 6, 6, 6, 0, 0, 248, 8,
139
+  248, 8, 8, 248, 5, 7, 7, 6, 0, 0, 112, 0, 248, 8, 8, 16,
140
+  32, 4, 7, 7, 6, 0, 0, 144, 144, 144, 144, 16, 32, 64, 5, 6,
141
+  6, 6, 0, 0, 32, 160, 160, 168, 168, 176, 5, 7, 7, 6, 0, 0,
142
+  128, 128, 128, 136, 144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136, 136,
143
+  136, 136, 248, 5, 6, 6, 6, 0, 0, 248, 136, 136, 8, 16, 32, 5,
144
+  6, 6, 6, 0, 0, 192, 0, 8, 8, 16, 224, 4, 3, 3, 6, 0,
145
+  4, 32, 144, 64, 3, 3, 3, 6, 0, 4, 224, 160, 224, 5, 5, 5,
146
+  6, 0, 1, 72, 168, 144, 144, 104, 5, 7, 7, 6, 0, 0, 80, 0,
147
+  112, 8, 120, 136, 120, 4, 8, 8, 6, 1, 255, 96, 144, 144, 224, 144,
148
+  144, 224, 128, 5, 5, 5, 6, 0, 0, 112, 128, 96, 136, 112, 5, 6,
149
+  6, 6, 0, 255, 136, 136, 152, 232, 136, 128, 5, 5, 5, 6, 0, 0,
150
+  120, 160, 144, 136, 112, 5, 7, 7, 6, 0, 254, 48, 72, 136, 136, 240,
151
+  128, 128, 5, 8, 8, 6, 0, 254, 120, 136, 136, 136, 120, 8, 8, 112,
152
+  5, 5, 5, 6, 0, 1, 56, 32, 32, 160, 64, 4, 3, 3, 6, 0,
153
+  3, 16, 208, 16, 4, 8, 8, 6, 0, 255, 16, 0, 48, 16, 16, 16,
154
+  144, 96, 3, 3, 3, 6, 0, 4, 160, 64, 160, 5, 7, 7, 6, 0,
155
+  0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7, 6, 0, 0, 64, 64,
156
+  224, 64, 224, 64, 120, 5, 7, 7, 6, 0, 0, 112, 0, 176, 200, 136,
157
+  136, 136, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136, 112, 5,
158
+  7, 7, 6, 0, 255, 176, 200, 136, 136, 240, 128, 128, 5, 7, 7, 6,
159
+  0, 255, 104, 152, 136, 136, 120, 8, 8, 5, 6, 6, 6, 0, 0, 112,
160
+  136, 248, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88, 168, 208, 5, 5,
161
+  5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6, 0, 0, 80,
162
+  0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 248, 128, 64, 32,
163
+  64, 128, 248, 5, 5, 5, 6, 0, 0, 248, 80, 80, 80, 152, 5, 7,
164
+  7, 6, 0, 0, 248, 0, 136, 80, 32, 80, 136, 5, 7, 7, 6, 0,
165
+  255, 136, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 1, 8, 240,
166
+  32, 248, 32, 32, 5, 5, 5, 6, 0, 0, 248, 64, 120, 72, 136, 5,
167
+  5, 5, 6, 0, 0, 248, 168, 248, 136, 136, 5, 5, 5, 6, 0, 1,
168
+  32, 0, 248, 0, 32, 0, 0, 0, 6, 0, 8, 6, 10, 10, 6, 0,
169
+  254, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252
170
+};

+ 191
- 190
Marlin/dogm_font_data_HD44780_W.h View File

@@ -11,193 +11,194 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t HD44780_W_5x7[3034] U8G_SECTION(".progmem.HD44780_W_5x7") = {
14
-  0,6,9,0,254,7,2,79,3,222,16,255,255,8,255,7,
15
-  255,4,7,7,6,0,0,16,48,112,240,112,48,16,4,7,
16
-  7,6,1,0,128,192,224,240,224,192,128,5,3,3,6,0,
17
-  4,216,72,144,5,3,3,6,0,4,216,144,72,5,7,7,
18
-  6,0,0,32,112,248,0,32,112,248,5,7,7,6,0,0,
19
-  248,112,32,0,248,112,32,5,5,5,6,0,1,112,248,248,
20
-  248,112,5,7,7,6,0,0,8,8,40,72,248,64,32,5,
21
-  7,7,6,0,0,32,112,168,32,32,32,32,5,7,7,6,
22
-  0,0,32,32,32,32,168,112,32,5,5,5,6,0,1,32,
23
-  64,248,64,32,5,5,5,6,0,1,32,16,248,16,32,5,
24
-  7,7,6,0,0,16,32,64,32,16,0,248,5,7,7,6,
25
-  0,0,64,32,16,32,64,0,248,5,5,5,6,0,1,32,
26
-  32,112,112,248,5,5,5,6,0,0,248,112,112,32,32,0,
27
-  0,0,6,0,0,1,7,7,6,2,0,128,128,128,128,128,
28
-  0,128,3,2,2,6,1,5,160,160,5,7,7,6,0,0,
29
-  80,80,248,80,248,80,80,5,7,7,6,0,0,32,120,160,
30
-  112,40,240,32,5,7,7,6,0,0,192,200,16,32,64,152,
31
-  24,5,7,7,6,0,0,96,144,160,64,168,144,104,2,3,
32
-  3,6,1,4,192,64,128,3,7,7,6,1,0,32,64,128,
33
-  128,128,64,32,3,7,7,6,1,0,128,64,32,32,32,64,
34
-  128,5,5,5,6,0,1,32,168,112,168,32,5,5,5,6,
35
-  0,1,32,32,248,32,32,2,3,3,6,2,255,192,64,128,
36
-  5,1,1,6,0,3,248,2,2,2,6,2,0,192,192,5,
37
-  5,5,6,0,1,8,16,32,64,128,5,7,7,6,0,0,
38
-  112,136,152,168,200,136,112,3,7,7,6,1,0,64,192,64,
39
-  64,64,64,224,5,7,7,6,0,0,112,136,8,112,128,128,
40
-  248,5,7,7,6,0,0,248,16,32,16,8,8,240,5,7,
41
-  7,6,0,0,16,48,80,144,248,16,16,5,7,7,6,0,
42
-  0,248,128,240,8,8,136,112,5,7,7,6,0,0,48,64,
43
-  128,240,136,136,112,5,7,7,6,0,0,248,8,16,32,32,
44
-  32,32,5,7,7,6,0,0,112,136,136,112,136,136,112,5,
45
-  7,7,6,0,0,112,136,136,120,8,16,96,2,5,5,6,
46
-  2,0,192,192,0,192,192,2,6,6,6,2,255,192,192,0,
47
-  192,64,128,4,7,7,6,0,0,16,32,64,128,64,32,16,
48
-  5,3,3,6,0,2,248,0,248,4,7,7,6,1,0,128,
49
-  64,32,16,32,64,128,5,7,7,6,0,0,112,136,8,16,
50
-  32,0,32,5,6,6,6,0,0,112,136,8,104,168,112,5,
51
-  7,7,6,0,0,112,136,136,248,136,136,136,5,7,7,6,
52
-  0,0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,
53
-  136,128,128,128,136,112,5,7,7,6,0,0,224,144,136,136,
54
-  136,144,224,5,7,7,6,0,0,248,128,128,240,128,128,248,
55
-  5,7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,
56
-  6,0,0,112,136,128,184,136,136,112,5,7,7,6,0,0,
57
-  136,136,136,248,136,136,136,1,7,7,6,2,0,128,128,128,
58
-  128,128,128,128,5,7,7,6,0,0,56,16,16,16,16,144,
59
-  96,5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,
60
-  7,6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,
61
-  0,136,216,168,136,136,136,136,5,7,7,6,0,0,136,136,
62
-  200,168,152,136,136,5,7,7,6,0,0,112,136,136,136,136,
63
-  136,112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,
64
-  7,7,6,0,0,112,136,136,136,168,144,104,5,7,7,6,
65
-  0,0,240,136,136,240,160,144,136,5,7,7,6,0,0,120,
66
-  128,128,112,8,8,240,5,7,7,6,0,0,248,32,32,32,
67
-  32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112,
68
-  5,7,7,6,0,0,136,136,136,136,136,80,32,5,7,7,
69
-  6,0,0,136,136,136,136,136,168,80,5,7,7,6,0,0,
70
-  136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136,
71
-  80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128,
72
-  248,3,7,7,6,1,0,224,128,128,128,128,128,224,5,5,
73
-  5,6,0,1,128,64,32,16,8,3,7,7,6,1,0,224,
74
-  32,32,32,32,32,224,5,3,3,6,0,4,32,80,136,5,
75
-  1,1,6,0,0,248,2,2,2,6,2,5,128,64,5,5,
76
-  5,6,0,0,112,8,120,136,120,5,7,7,6,0,0,128,
77
-  128,176,200,136,136,240,5,5,5,6,0,0,112,128,128,136,
78
-  112,5,7,7,6,0,0,8,8,104,152,136,136,120,5,5,
79
-  5,6,0,0,112,136,248,128,112,5,7,7,6,0,0,48,
80
-  72,224,64,64,64,64,5,6,6,6,0,255,112,136,136,120,
81
-  8,112,5,7,7,6,0,0,128,128,176,200,136,136,136,1,
82
-  7,7,6,2,0,128,0,128,128,128,128,128,3,8,8,6,
83
-  1,255,32,0,32,32,32,32,160,64,4,7,7,6,0,0,
84
-  128,128,144,160,192,160,144,3,7,7,6,1,0,192,64,64,
85
-  64,64,64,224,5,5,5,6,0,0,208,168,168,168,168,5,
86
-  5,5,6,0,0,176,200,136,136,136,5,5,5,6,0,0,
87
-  112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128,
88
-  128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5,
89
-  6,0,0,176,200,128,128,128,5,5,5,6,0,0,112,128,
90
-  112,8,240,5,7,7,6,0,0,64,64,224,64,64,72,48,
91
-  5,5,5,6,0,0,136,136,136,152,104,5,5,5,6,0,
92
-  0,136,136,136,80,32,5,5,5,6,0,0,136,136,168,168,
93
-  80,5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,
94
-  0,255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,
95
-  32,64,248,3,7,7,6,1,0,32,64,64,128,64,64,32,
96
-  1,7,7,6,2,0,128,128,128,128,128,128,128,3,7,7,
97
-  6,1,0,128,64,64,32,64,64,128,5,6,6,6,0,1,
98
-  8,40,72,248,64,32,5,7,7,6,0,0,32,80,136,136,
99
-  136,136,248,5,7,7,6,0,0,248,136,128,240,136,136,240,
100
-  5,8,8,6,0,255,120,40,40,40,72,136,248,136,5,7,
101
-  7,6,0,0,168,168,168,112,168,168,168,5,7,7,6,0,
102
-  0,240,8,8,112,8,8,240,5,7,7,6,0,0,136,136,
103
-  152,168,200,136,136,5,8,8,6,0,0,80,32,136,152,168,
104
-  168,200,136,5,7,7,6,0,0,120,40,40,40,40,168,72,
105
-  5,7,7,6,0,0,248,136,136,136,136,136,136,5,7,7,
106
-  6,0,0,136,136,136,80,32,64,128,5,8,8,6,0,255,
107
-  136,136,136,136,136,136,248,8,5,7,7,6,0,0,136,136,
108
-  136,120,8,8,8,5,7,7,6,0,0,168,168,168,168,168,
109
-  168,248,5,8,8,6,0,255,168,168,168,168,168,168,248,8,
110
-  5,7,7,6,0,0,192,64,64,112,72,72,112,5,7,7,
111
-  6,0,0,136,136,136,200,168,168,200,5,7,7,6,0,0,
112
-  112,136,40,80,8,136,112,5,5,5,6,0,0,64,160,144,
113
-  144,104,5,7,7,6,0,0,32,48,40,40,32,224,224,5,
114
-  7,7,6,0,0,248,136,128,128,128,128,128,5,5,5,6,
115
-  0,0,248,80,80,80,152,5,7,7,6,0,0,248,128,64,
116
-  32,64,128,248,5,5,5,6,0,0,120,144,144,144,96,5,
117
-  7,7,6,0,0,48,40,56,40,200,216,24,5,6,6,6,
118
-  0,0,8,112,160,32,32,16,5,6,6,6,0,1,32,112,
119
-  112,112,248,32,5,7,7,6,0,0,112,136,136,248,136,136,
120
-  112,5,5,5,6,0,0,112,136,136,80,216,5,7,7,6,
121
-  0,0,48,72,32,80,136,136,112,5,3,3,6,0,2,88,
122
-  168,208,5,6,6,6,0,0,80,248,248,248,112,32,5,5,
123
-  5,6,0,0,112,128,96,136,112,5,7,7,6,0,0,112,
124
-  136,136,136,136,136,136,5,7,7,6,0,0,216,216,216,216,
125
-  216,216,216,1,7,7,6,2,0,128,0,128,128,128,128,128,
126
-  5,7,7,6,0,0,32,112,160,160,168,112,32,5,7,7,
127
-  6,0,0,48,64,64,224,64,80,168,5,5,5,6,0,0,
128
-  136,112,80,112,136,5,7,7,6,0,0,136,80,248,32,248,
129
-  32,32,1,7,7,6,2,0,128,128,128,0,128,128,128,5,
130
-  8,8,6,0,0,48,72,32,80,80,32,144,96,5,7,7,
131
-  6,0,0,24,32,32,112,32,32,192,5,7,7,6,0,0,
132
-  248,136,184,184,184,136,248,5,7,7,6,0,0,112,8,120,
133
-  136,120,0,248,5,5,5,6,0,1,40,80,160,80,40,5,
134
-  7,7,6,0,0,144,168,168,232,168,168,144,5,7,7,6,
135
-  0,0,120,136,136,120,40,72,136,5,7,7,6,0,0,248,
136
-  136,168,136,152,168,248,2,3,3,6,2,4,64,128,192,4,
137
-  5,5,6,0,3,96,144,144,144,96,5,7,7,6,0,0,
138
-  32,32,248,32,32,0,248,4,5,5,6,0,3,96,144,32,
139
-  64,240,3,5,5,6,0,3,224,32,224,32,224,5,8,8,
140
-  6,0,0,224,144,224,128,144,184,144,24,5,8,8,6,0,
141
-  255,136,136,136,136,152,232,128,128,5,7,7,6,0,0,120,
142
-  152,152,120,24,24,24,2,2,2,6,2,2,192,192,5,5,
143
-  5,6,0,0,80,136,168,168,80,3,5,5,6,0,3,64,
144
-  192,64,64,224,5,7,7,6,0,0,112,136,136,136,112,0,
145
-  248,5,5,5,6,0,1,160,80,40,80,160,5,7,7,6,
146
-  0,0,136,144,168,88,184,8,8,5,7,7,6,0,0,136,
147
-  144,184,72,152,32,56,5,8,8,6,0,0,192,64,192,72,
148
-  216,56,8,8,5,7,7,6,0,0,32,0,32,64,128,136,
149
-  112,5,8,8,6,0,0,64,32,32,80,136,248,136,136,5,
150
-  8,8,6,0,0,16,32,32,80,136,248,136,136,5,8,8,
151
-  6,0,0,32,80,0,112,136,248,136,136,5,8,8,6,0,
152
-  0,104,144,0,112,136,248,136,136,5,8,8,6,0,0,80,
153
-  0,32,80,136,248,136,136,5,8,8,6,0,0,32,80,32,
154
-  112,136,248,136,136,5,7,7,6,0,0,56,96,160,184,224,
155
-  160,184,5,8,8,6,0,255,112,136,128,128,136,112,32,96,
156
-  5,8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,
157
-  8,6,0,0,8,16,0,248,128,240,128,248,5,8,8,6,
158
-  0,0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,
159
-  80,0,248,128,240,128,248,3,8,8,6,1,0,128,64,0,
160
-  224,64,64,64,224,3,8,8,6,1,0,32,64,0,224,64,
161
-  64,64,224,3,8,8,6,1,0,64,160,0,224,64,64,64,
162
-  224,3,7,7,6,1,0,160,0,224,64,64,64,224,5,7,
163
-  7,6,0,0,112,72,72,232,72,72,112,5,8,8,6,0,
164
-  0,104,144,0,136,200,168,152,136,5,8,8,6,0,0,64,
165
-  32,112,136,136,136,136,112,5,8,8,6,0,0,16,32,112,
166
-  136,136,136,136,112,5,8,8,6,0,0,32,80,0,112,136,
167
-  136,136,112,5,8,8,6,0,0,104,144,0,112,136,136,136,
168
-  112,5,8,8,6,0,0,80,0,112,136,136,136,136,112,5,
169
-  5,5,6,0,1,136,80,32,80,136,5,7,7,6,0,0,
170
-  112,32,112,168,112,32,112,5,8,8,6,0,0,64,32,136,
171
-  136,136,136,136,112,5,8,8,6,0,0,16,32,136,136,136,
172
-  136,136,112,5,8,8,6,0,0,32,80,0,136,136,136,136,
173
-  112,5,8,8,6,0,0,80,0,136,136,136,136,136,112,5,
174
-  8,8,6,0,0,16,32,136,80,32,32,32,32,5,8,8,
175
-  6,0,0,192,64,112,72,72,112,64,224,5,7,7,6,0,
176
-  0,48,72,72,112,72,72,176,5,8,8,6,0,0,64,32,
177
-  0,112,8,120,136,120,5,8,8,6,0,0,16,32,0,112,
178
-  8,120,136,120,5,8,8,6,0,0,32,80,0,112,8,120,
179
-  136,120,5,8,8,6,0,0,104,144,0,112,8,120,136,120,
180
-  5,7,7,6,0,0,80,0,112,8,120,136,120,5,8,8,
181
-  6,0,0,32,80,32,112,8,120,136,120,5,6,6,6,0,
182
-  0,208,40,120,160,168,80,5,6,6,6,0,255,112,128,136,
183
-  112,32,96,5,8,8,6,0,0,64,32,0,112,136,248,128,
184
-  112,5,8,8,6,0,0,16,32,0,112,136,248,128,112,5,
185
-  8,8,6,0,0,32,80,0,112,136,248,128,112,5,7,7,
186
-  6,0,0,80,0,112,136,248,128,112,3,8,8,6,1,0,
187
-  128,64,0,64,192,64,64,224,3,8,8,6,1,0,32,64,
188
-  0,64,192,64,64,224,3,8,8,6,1,0,64,160,0,64,
189
-  192,64,64,224,3,7,7,6,1,0,160,0,64,192,64,64,
190
-  224,5,7,7,6,0,0,160,64,160,16,120,136,112,5,8,
191
-  8,6,0,0,104,144,0,176,200,136,136,136,5,8,8,6,
192
-  0,0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,
193
-  16,32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,
194
-  0,112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,
195
-  136,136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,
196
-  112,5,5,5,6,0,1,32,0,248,0,32,5,7,7,6,
197
-  0,0,16,32,112,168,112,32,64,5,8,8,6,0,0,64,
198
-  32,0,136,136,136,152,104,5,8,8,6,0,0,16,32,0,
199
-  136,136,136,152,104,5,8,8,6,0,0,32,80,0,136,136,
200
-  136,152,104,5,7,7,6,0,0,80,0,136,136,136,152,104,
201
-  5,9,9,6,0,255,16,32,0,136,136,136,248,8,112,4,
202
-  7,7,6,1,0,192,64,96,80,96,64,224,5,8,8,6,
203
-  0,255,80,0,136,136,136,248,8,112};
14
+  0, 6, 9, 0, 254, 7, 2, 79, 3, 222, 16, 255, 255, 8, 255, 7,
15
+  255, 4, 7, 7, 6, 0, 0, 16, 48, 112, 240, 112, 48, 16, 4, 7,
16
+  7, 6, 1, 0, 128, 192, 224, 240, 224, 192, 128, 5, 3, 3, 6, 0,
17
+  4, 216, 72, 144, 5, 3, 3, 6, 0, 4, 216, 144, 72, 5, 7, 7,
18
+  6, 0, 0, 32, 112, 248, 0, 32, 112, 248, 5, 7, 7, 6, 0, 0,
19
+  248, 112, 32, 0, 248, 112, 32, 5, 5, 5, 6, 0, 1, 112, 248, 248,
20
+  248, 112, 5, 7, 7, 6, 0, 0, 8, 8, 40, 72, 248, 64, 32, 5,
21
+  7, 7, 6, 0, 0, 32, 112, 168, 32, 32, 32, 32, 5, 7, 7, 6,
22
+  0, 0, 32, 32, 32, 32, 168, 112, 32, 5, 5, 5, 6, 0, 1, 32,
23
+  64, 248, 64, 32, 5, 5, 5, 6, 0, 1, 32, 16, 248, 16, 32, 5,
24
+  7, 7, 6, 0, 0, 16, 32, 64, 32, 16, 0, 248, 5, 7, 7, 6,
25
+  0, 0, 64, 32, 16, 32, 64, 0, 248, 5, 5, 5, 6, 0, 1, 32,
26
+  32, 112, 112, 248, 5, 5, 5, 6, 0, 0, 248, 112, 112, 32, 32, 0,
27
+  0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128,
28
+  0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6, 0, 0,
29
+  80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32, 120, 160,
30
+  112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32, 64, 152,
31
+  24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104, 2, 3,
32
+  3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32, 64, 128,
33
+  128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32, 32, 64,
34
+  128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5, 5, 6,
35
+  0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192, 64, 128,
36
+  5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192, 192, 5,
37
+  5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0,
38
+  112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64, 192, 64,
39
+  64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112, 128, 128,
40
+  248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240, 5, 7,
41
+  7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7, 6, 0,
42
+  0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0, 48, 64,
43
+  128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32, 32,
44
+  32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136, 112, 5,
45
+  7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5, 5, 6,
46
+  2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192, 192, 0,
47
+  192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64, 32, 16,
48
+  5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1, 0, 128,
49
+  64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136, 8, 16,
50
+  32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168, 112, 5,
51
+  7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7, 7, 6,
52
+  0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0, 0, 112,
53
+  136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144, 136, 136,
54
+  136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 248,
55
+  5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5, 7, 7,
56
+  6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6, 0, 0,
57
+  136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128, 128, 128,
58
+  128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16, 16, 144,
59
+  96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136, 5, 7,
60
+  7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7, 6, 0,
61
+  0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136,
62
+  200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 136,
63
+  136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128, 128, 5,
64
+  7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7, 7, 6,
65
+  0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0, 0, 120,
66
+  128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32, 32, 32,
67
+  32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 136, 112,
68
+  5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5, 7, 7,
69
+  6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6, 0, 0,
70
+  136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136, 136, 136,
71
+  80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32, 64, 128,
72
+  248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224, 5, 5,
73
+  5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1, 0, 224,
74
+  32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80, 136, 5,
75
+  1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64, 5, 5,
76
+  5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0, 0, 128,
77
+  128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128, 128, 136,
78
+  112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120, 5, 5,
79
+  5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0, 0, 48,
80
+  72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136, 136, 120,
81
+  8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136, 136, 1,
82
+  7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8, 8, 6,
83
+  1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6, 0, 0,
84
+  128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192, 64, 64,
85
+  64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168, 168, 5,
86
+  5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6, 0, 0,
87
+  112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136, 240, 128,
88
+  128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5, 5, 5,
89
+  6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0, 112, 128,
90
+  112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64, 72, 48,
91
+  5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5, 6, 0,
92
+  0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136, 168, 168,
93
+  80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6, 6, 6,
94
+  0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0, 248, 16,
95
+  32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64, 64, 32,
96
+  1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3, 7, 7,
97
+  6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 6, 6, 6, 0, 1,
98
+  8, 40, 72, 248, 64, 32, 5, 7, 7, 6, 0, 0, 32, 80, 136, 136,
99
+  136, 136, 248, 5, 7, 7, 6, 0, 0, 248, 136, 128, 240, 136, 136, 240,
100
+  5, 8, 8, 6, 0, 255, 120, 40, 40, 40, 72, 136, 248, 136, 5, 7,
101
+  7, 6, 0, 0, 168, 168, 168, 112, 168, 168, 168, 5, 7, 7, 6, 0,
102
+  0, 240, 8, 8, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 136, 136,
103
+  152, 168, 200, 136, 136, 5, 8, 8, 6, 0, 0, 80, 32, 136, 152, 168,
104
+  168, 200, 136, 5, 7, 7, 6, 0, 0, 120, 40, 40, 40, 40, 168, 72,
105
+  5, 7, 7, 6, 0, 0, 248, 136, 136, 136, 136, 136, 136, 5, 7, 7,
106
+  6, 0, 0, 136, 136, 136, 80, 32, 64, 128, 5, 8, 8, 6, 0, 255,
107
+  136, 136, 136, 136, 136, 136, 248, 8, 5, 7, 7, 6, 0, 0, 136, 136,
108
+  136, 120, 8, 8, 8, 5, 7, 7, 6, 0, 0, 168, 168, 168, 168, 168,
109
+  168, 248, 5, 8, 8, 6, 0, 255, 168, 168, 168, 168, 168, 168, 248, 8,
110
+  5, 7, 7, 6, 0, 0, 192, 64, 64, 112, 72, 72, 112, 5, 7, 7,
111
+  6, 0, 0, 136, 136, 136, 200, 168, 168, 200, 5, 7, 7, 6, 0, 0,
112
+  112, 136, 40, 80, 8, 136, 112, 5, 5, 5, 6, 0, 0, 64, 160, 144,
113
+  144, 104, 5, 7, 7, 6, 0, 0, 32, 48, 40, 40, 32, 224, 224, 5,
114
+  7, 7, 6, 0, 0, 248, 136, 128, 128, 128, 128, 128, 5, 5, 5, 6,
115
+  0, 0, 248, 80, 80, 80, 152, 5, 7, 7, 6, 0, 0, 248, 128, 64,
116
+  32, 64, 128, 248, 5, 5, 5, 6, 0, 0, 120, 144, 144, 144, 96, 5,
117
+  7, 7, 6, 0, 0, 48, 40, 56, 40, 200, 216, 24, 5, 6, 6, 6,
118
+  0, 0, 8, 112, 160, 32, 32, 16, 5, 6, 6, 6, 0, 1, 32, 112,
119
+  112, 112, 248, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136,
120
+  112, 5, 5, 5, 6, 0, 0, 112, 136, 136, 80, 216, 5, 7, 7, 6,
121
+  0, 0, 48, 72, 32, 80, 136, 136, 112, 5, 3, 3, 6, 0, 2, 88,
122
+  168, 208, 5, 6, 6, 6, 0, 0, 80, 248, 248, 248, 112, 32, 5, 5,
123
+  5, 6, 0, 0, 112, 128, 96, 136, 112, 5, 7, 7, 6, 0, 0, 112,
124
+  136, 136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 216, 216, 216, 216,
125
+  216, 216, 216, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128,
126
+  5, 7, 7, 6, 0, 0, 32, 112, 160, 160, 168, 112, 32, 5, 7, 7,
127
+  6, 0, 0, 48, 64, 64, 224, 64, 80, 168, 5, 5, 5, 6, 0, 0,
128
+  136, 112, 80, 112, 136, 5, 7, 7, 6, 0, 0, 136, 80, 248, 32, 248,
129
+  32, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 0, 128, 128, 128, 5,
130
+  8, 8, 6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 5, 7, 7,
131
+  6, 0, 0, 24, 32, 32, 112, 32, 32, 192, 5, 7, 7, 6, 0, 0,
132
+  248, 136, 184, 184, 184, 136, 248, 5, 7, 7, 6, 0, 0, 112, 8, 120,
133
+  136, 120, 0, 248, 5, 5, 5, 6, 0, 1, 40, 80, 160, 80, 40, 5,
134
+  7, 7, 6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7, 6,
135
+  0, 0, 120, 136, 136, 120, 40, 72, 136, 5, 7, 7, 6, 0, 0, 248,
136
+  136, 168, 136, 152, 168, 248, 2, 3, 3, 6, 2, 4, 64, 128, 192, 4,
137
+  5, 5, 6, 0, 3, 96, 144, 144, 144, 96, 5, 7, 7, 6, 0, 0,
138
+  32, 32, 248, 32, 32, 0, 248, 4, 5, 5, 6, 0, 3, 96, 144, 32,
139
+  64, 240, 3, 5, 5, 6, 0, 3, 224, 32, 224, 32, 224, 5, 8, 8,
140
+  6, 0, 0, 224, 144, 224, 128, 144, 184, 144, 24, 5, 8, 8, 6, 0,
141
+  255, 136, 136, 136, 136, 152, 232, 128, 128, 5, 7, 7, 6, 0, 0, 120,
142
+  152, 152, 120, 24, 24, 24, 2, 2, 2, 6, 2, 2, 192, 192, 5, 5,
143
+  5, 6, 0, 0, 80, 136, 168, 168, 80, 3, 5, 5, 6, 0, 3, 64,
144
+  192, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 112, 0,
145
+  248, 5, 5, 5, 6, 0, 1, 160, 80, 40, 80, 160, 5, 7, 7, 6,
146
+  0, 0, 136, 144, 168, 88, 184, 8, 8, 5, 7, 7, 6, 0, 0, 136,
147
+  144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0, 0, 192, 64, 192, 72,
148
+  216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 32, 0, 32, 64, 128, 136,
149
+  112, 5, 8, 8, 6, 0, 0, 64, 32, 32, 80, 136, 248, 136, 136, 5,
150
+  8, 8, 6, 0, 0, 16, 32, 32, 80, 136, 248, 136, 136, 5, 8, 8,
151
+  6, 0, 0, 32, 80, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6, 0,
152
+  0, 104, 144, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0, 80,
153
+  0, 32, 80, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0, 32, 80, 32,
154
+  112, 136, 248, 136, 136, 5, 7, 7, 6, 0, 0, 56, 96, 160, 184, 224,
155
+  160, 184, 5, 8, 8, 6, 0, 255, 112, 136, 128, 128, 136, 112, 32, 96,
156
+  5, 8, 8, 6, 0, 0, 64, 32, 0, 248, 128, 240, 128, 248, 5, 8,
157
+  8, 6, 0, 0, 8, 16, 0, 248, 128, 240, 128, 248, 5, 8, 8, 6,
158
+  0, 0, 32, 80, 0, 248, 128, 240, 128, 248, 5, 7, 7, 6, 0, 0,
159
+  80, 0, 248, 128, 240, 128, 248, 3, 8, 8, 6, 1, 0, 128, 64, 0,
160
+  224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64, 0, 224, 64,
161
+  64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 224, 64, 64, 64,
162
+  224, 3, 7, 7, 6, 1, 0, 160, 0, 224, 64, 64, 64, 224, 5, 7,
163
+  7, 6, 0, 0, 112, 72, 72, 232, 72, 72, 112, 5, 8, 8, 6, 0,
164
+  0, 104, 144, 0, 136, 200, 168, 152, 136, 5, 8, 8, 6, 0, 0, 64,
165
+  32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 112,
166
+  136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136,
167
+  136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112, 136, 136, 136,
168
+  112, 5, 8, 8, 6, 0, 0, 80, 0, 112, 136, 136, 136, 136, 112, 5,
169
+  5, 5, 6, 0, 1, 136, 80, 32, 80, 136, 5, 7, 7, 6, 0, 0,
170
+  112, 32, 112, 168, 112, 32, 112, 5, 8, 8, 6, 0, 0, 64, 32, 136,
171
+  136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 136, 136, 136,
172
+  136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 136, 136, 136, 136,
173
+  112, 5, 8, 8, 6, 0, 0, 80, 0, 136, 136, 136, 136, 136, 112, 5,
174
+  8, 8, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32, 32, 5, 8, 8,
175
+  6, 0, 0, 192, 64, 112, 72, 72, 112, 64, 224, 5, 7, 7, 6, 0,
176
+  0, 48, 72, 72, 112, 72, 72, 176, 5, 8, 8, 6, 0, 0, 64, 32,
177
+  0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112,
178
+  8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 8, 120,
179
+  136, 120, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112, 8, 120, 136, 120,
180
+  5, 7, 7, 6, 0, 0, 80, 0, 112, 8, 120, 136, 120, 5, 8, 8,
181
+  6, 0, 0, 32, 80, 32, 112, 8, 120, 136, 120, 5, 6, 6, 6, 0,
182
+  0, 208, 40, 120, 160, 168, 80, 5, 6, 6, 6, 0, 255, 112, 128, 136,
183
+  112, 32, 96, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248, 128,
184
+  112, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 248, 128, 112, 5,
185
+  8, 8, 6, 0, 0, 32, 80, 0, 112, 136, 248, 128, 112, 5, 7, 7,
186
+  6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 3, 8, 8, 6, 1, 0,
187
+  128, 64, 0, 64, 192, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64,
188
+  0, 64, 192, 64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 64,
189
+  192, 64, 64, 224, 3, 7, 7, 6, 1, 0, 160, 0, 64, 192, 64, 64,
190
+  224, 5, 7, 7, 6, 0, 0, 160, 64, 160, 16, 120, 136, 112, 5, 8,
191
+  8, 6, 0, 0, 104, 144, 0, 176, 200, 136, 136, 136, 5, 8, 8, 6,
192
+  0, 0, 64, 32, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0,
193
+  16, 32, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80,
194
+  0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112,
195
+  136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 136, 136,
196
+  112, 5, 5, 5, 6, 0, 1, 32, 0, 248, 0, 32, 5, 7, 7, 6,
197
+  0, 0, 16, 32, 112, 168, 112, 32, 64, 5, 8, 8, 6, 0, 0, 64,
198
+  32, 0, 136, 136, 136, 152, 104, 5, 8, 8, 6, 0, 0, 16, 32, 0,
199
+  136, 136, 136, 152, 104, 5, 8, 8, 6, 0, 0, 32, 80, 0, 136, 136,
200
+  136, 152, 104, 5, 7, 7, 6, 0, 0, 80, 0, 136, 136, 136, 152, 104,
201
+  5, 9, 9, 6, 0, 255, 16, 32, 0, 136, 136, 136, 248, 8, 112, 4,
202
+  7, 7, 6, 1, 0, 192, 64, 96, 80, 96, 64, 224, 5, 8, 8, 6,
203
+  0, 255, 80, 0, 136, 136, 136, 248, 8, 112
204
+};

+ 163
- 163
Marlin/dogm_font_data_ISO10646_1.h View File

@@ -11,166 +11,166 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t ISO10646_1_5x7[2592] U8G_SECTION(".progmem.ISO10646_1_5x7") = {
14
-  0,6,9,0,254,7,1,146,3,33,32,255,255,8,255,7,
15
-  255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
16
-  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
-  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
-  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
-  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
-  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
-  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
-  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
-  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
-  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
-  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
-  0,0,112,136,136,136,136,136,112,3,7,7,6,1,0,64,
27
-  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
-  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
-  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
-  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
-  112,128,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
-  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
-  112,5,7,7,6,0,0,112,136,136,120,8,8,112,2,5,
34
-  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
-  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
-  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
37
-  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
-  8,16,32,0,32,5,7,7,6,0,0,112,136,8,104,168,
39
-  168,112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,
40
-  7,7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,
41
-  0,0,112,136,128,128,128,136,112,5,7,7,6,0,0,240,
42
-  136,136,136,136,136,240,5,7,7,6,0,0,248,128,128,240,
43
-  128,128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,
44
-  5,7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,
45
-  6,0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,
46
-  128,128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,
47
-  16,16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,
48
-  136,5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,
49
-  7,6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,
50
-  0,136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,
51
-  136,136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,
52
-  128,128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,
53
-  7,7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,
54
-  0,0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,
55
-  32,32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,
56
-  136,136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,
57
-  5,7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,
58
-  6,0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,
59
-  136,136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,
60
-  32,64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,
61
-  224,5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,
62
-  1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,
63
-  80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,
64
-  64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,
65
-  0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,
66
-  128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,
67
-  120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,
68
-  0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,
69
-  136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,
70
-  136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,
71
-  8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,
72
-  6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,
73
-  192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,
74
-  168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,
75
-  6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,
76
-  136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,
77
-  5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,
78
-  0,112,128,112,8,240,4,7,7,6,0,0,64,64,224,64,
79
-  64,64,48,5,5,5,6,0,0,136,136,136,152,104,5,5,
80
-  5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,
81
-  136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,
82
-  6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,
83
-  0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,
84
-  64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,
85
-  3,7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,
86
-  6,0,2,104,144,0,0,0,6,0,0,0,0,0,6,0,
87
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
88
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
89
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
90
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
91
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
92
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
93
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
94
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
95
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
96
-  0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,
97
-  6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,
98
-  0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,
99
-  0,1,7,7,6,2,0,128,0,128,128,128,128,128,5,7,
100
-  7,6,0,0,32,112,168,160,168,112,32,5,7,7,6,0,
101
-  0,48,64,64,224,64,80,168,5,5,5,6,0,0,136,112,
102
-  80,112,136,5,7,7,6,0,0,136,80,32,248,32,248,32,
103
-  1,7,7,6,2,0,128,128,128,0,128,128,128,5,8,8,
104
-  6,0,0,48,72,32,80,80,32,144,96,3,1,1,6,1,
105
-  7,160,5,7,7,6,0,0,248,136,184,184,184,136,248,5,
106
-  7,7,6,0,1,112,8,120,136,120,0,248,5,5,5,6,
107
-  0,1,40,80,160,80,40,5,3,3,6,0,1,248,8,8,
108
-  2,2,2,6,2,6,64,128,5,7,7,6,0,0,248,136,
109
-  168,136,152,168,248,5,1,1,6,0,6,248,4,4,4,6,
110
-  0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,32,
111
-  32,0,248,4,5,5,6,0,3,96,144,32,64,240,3,5,
112
-  5,6,0,3,224,32,224,32,224,2,2,2,6,2,6,64,
113
-  128,5,8,8,6,0,255,136,136,136,136,152,232,128,128,5,
114
-  7,7,6,0,0,120,152,152,120,24,24,24,2,2,2,6,
115
-  2,2,192,192,2,2,2,6,2,255,64,128,3,5,5,6,
116
-  0,3,64,192,64,64,224,5,7,7,6,0,1,112,136,136,
117
-  136,112,0,248,5,5,5,6,0,1,160,80,40,80,160,5,
118
-  7,7,6,0,0,136,144,168,88,184,8,8,5,7,7,6,
119
-  0,0,136,144,184,72,152,32,56,5,8,8,6,0,0,192,
120
-  64,192,72,216,56,8,8,5,7,7,6,0,0,32,0,32,
121
-  64,128,136,112,5,8,8,6,0,0,64,32,0,112,136,248,
122
-  136,136,5,8,8,6,0,0,16,32,0,112,136,248,136,136,
123
-  5,8,8,6,0,0,32,80,0,112,136,248,136,136,5,8,
124
-  8,6,0,0,104,144,0,112,136,248,136,136,5,8,8,6,
125
-  0,0,80,0,112,136,136,248,136,136,5,8,8,6,0,0,
126
-  32,80,32,112,136,248,136,136,5,7,7,6,0,0,56,96,
127
-  160,184,224,160,184,5,8,8,6,0,255,112,136,128,128,136,
128
-  112,32,96,5,8,8,6,0,0,64,32,0,248,128,240,128,
129
-  248,5,8,8,6,0,0,8,16,0,248,128,240,128,248,5,
130
-  8,8,6,0,0,32,80,0,248,128,240,128,248,5,7,7,
131
-  6,0,0,80,0,248,128,240,128,248,3,8,8,6,1,0,
132
-  128,64,0,224,64,64,64,224,3,8,8,6,1,0,32,64,
133
-  0,224,64,64,64,224,3,8,8,6,1,0,64,160,0,224,
134
-  64,64,64,224,3,7,7,6,1,0,160,0,224,64,64,64,
135
-  224,5,7,7,6,0,0,112,72,72,232,72,72,112,5,8,
136
-  8,6,0,0,104,144,0,136,200,168,152,136,5,8,8,6,
137
-  0,0,64,32,112,136,136,136,136,112,5,8,8,6,0,0,
138
-  16,32,112,136,136,136,136,112,5,8,8,6,0,0,32,80,
139
-  0,112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,
140
-  136,136,136,112,5,8,8,6,0,0,80,0,112,136,136,136,
141
-  136,112,5,5,5,6,0,1,136,80,32,80,136,5,8,8,
142
-  6,0,255,16,112,168,168,168,168,112,64,5,8,8,6,0,
143
-  0,64,32,136,136,136,136,136,112,5,8,8,6,0,0,16,
144
-  32,136,136,136,136,136,112,5,8,8,6,0,0,32,80,0,
145
-  136,136,136,136,112,5,8,8,6,0,0,80,0,136,136,136,
146
-  136,136,112,5,8,8,6,0,0,16,32,136,80,32,32,32,
147
-  32,5,9,9,6,0,255,192,64,112,72,72,112,64,64,224,
148
-  4,8,8,6,1,255,96,144,144,160,144,144,224,128,5,8,
149
-  8,6,0,0,64,32,0,112,8,120,136,120,5,8,8,6,
150
-  0,0,16,32,0,112,8,120,136,120,5,8,8,6,0,0,
151
-  32,80,0,112,8,120,136,120,5,8,8,6,0,0,104,144,
152
-  0,112,8,120,136,120,5,7,7,6,0,0,80,0,112,8,
153
-  120,136,120,5,8,8,6,0,0,32,80,32,112,8,120,136,
154
-  120,5,6,6,6,0,0,208,40,120,160,168,80,5,6,6,
155
-  6,0,255,112,128,136,112,32,96,5,8,8,6,0,0,64,
156
-  32,0,112,136,248,128,112,5,8,8,6,0,0,16,32,0,
157
-  112,136,248,128,112,5,8,8,6,0,0,32,80,0,112,136,
158
-  248,128,112,5,7,7,6,0,0,80,0,112,136,248,128,112,
159
-  3,8,8,6,1,0,128,64,0,64,192,64,64,224,3,8,
160
-  8,6,1,0,32,64,0,64,192,64,64,224,3,8,8,6,
161
-  1,0,64,160,0,64,192,64,64,224,3,7,7,6,1,0,
162
-  160,0,64,192,64,64,224,5,7,7,6,0,0,160,64,160,
163
-  16,120,136,112,5,8,8,6,0,0,104,144,0,176,200,136,
164
-  136,136,5,8,8,6,0,0,64,32,0,112,136,136,136,112,
165
-  5,8,8,6,0,0,16,32,0,112,136,136,136,112,5,8,
166
-  8,6,0,0,32,80,0,112,136,136,136,112,5,8,8,6,
167
-  0,0,104,144,0,112,136,136,136,112,5,7,7,6,0,0,
168
-  80,0,112,136,136,136,112,5,5,5,6,0,1,32,0,248,
169
-  0,32,5,7,7,6,0,255,16,112,168,168,168,112,64,5,
170
-  8,8,6,0,0,64,32,0,136,136,136,152,104,5,8,8,
171
-  6,0,0,16,32,0,136,136,136,152,104,5,8,8,6,0,
172
-  0,32,80,0,136,136,136,152,104,5,7,7,6,0,0,80,
173
-  0,136,136,136,152,104,5,9,9,6,0,255,16,32,0,136,
174
-  136,136,248,8,112,4,7,7,6,1,255,192,64,96,80,96,
175
-  64,224,5,8,8,6,0,255,80,0,136,136,136,120,8,112
176
-  };
14
+  0, 6, 9, 0, 254, 7, 1, 146, 3, 33, 32, 255, 255, 8, 255, 7,
15
+  255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
16
+  128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
17
+  0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
18
+  120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
19
+  64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
20
+  2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
21
+  64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
22
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
23
+  5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
24
+  64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
25
+  192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
26
+  0, 0, 112, 136, 136, 136, 136, 136, 112, 3, 7, 7, 6, 1, 0, 64,
27
+  192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
28
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
29
+  5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
30
+  6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
31
+  112, 128, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32
+  32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
33
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 8, 112, 2, 5,
34
+  5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
35
+  192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
36
+  32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
37
+  0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
38
+  8, 16, 32, 0, 32, 5, 7, 7, 6, 0, 0, 112, 136, 8, 104, 168,
39
+  168, 112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5,
40
+  7, 7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6,
41
+  0, 0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 240,
42
+  136, 136, 136, 136, 136, 240, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240,
43
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128,
44
+  5, 7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7,
45
+  6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0,
46
+  128, 128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16,
47
+  16, 16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144,
48
+  136, 5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7,
49
+  7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0,
50
+  0, 136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136,
51
+  136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
52
+  128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5,
53
+  7, 7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6,
54
+  0, 0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248,
55
+  32, 32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136,
56
+  136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32,
57
+  5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7,
58
+  6, 0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0,
59
+  136, 136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16,
60
+  32, 64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128,
61
+  224, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6,
62
+  1, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32,
63
+  80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128,
64
+  64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6,
65
+  0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112,
66
+  128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136,
67
+  120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6,
68
+  0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112,
69
+  136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136,
70
+  136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3,
71
+  8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7,
72
+  6, 0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0,
73
+  192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168,
74
+  168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5,
75
+  6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136,
76
+  136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8,
77
+  5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0,
78
+  0, 112, 128, 112, 8, 240, 4, 7, 7, 6, 0, 0, 64, 64, 224, 64,
79
+  64, 64, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5,
80
+  5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136,
81
+  136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5,
82
+  6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0,
83
+  0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128,
84
+  64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128,
85
+  3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2,
86
+  6, 0, 2, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
87
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
88
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
89
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
90
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
91
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
92
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
93
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
94
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
95
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
96
+  0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0,
97
+  6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0,
98
+  0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0,
99
+  0, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 5, 7,
100
+  7, 6, 0, 0, 32, 112, 168, 160, 168, 112, 32, 5, 7, 7, 6, 0,
101
+  0, 48, 64, 64, 224, 64, 80, 168, 5, 5, 5, 6, 0, 0, 136, 112,
102
+  80, 112, 136, 5, 7, 7, 6, 0, 0, 136, 80, 32, 248, 32, 248, 32,
103
+  1, 7, 7, 6, 2, 0, 128, 128, 128, 0, 128, 128, 128, 5, 8, 8,
104
+  6, 0, 0, 48, 72, 32, 80, 80, 32, 144, 96, 3, 1, 1, 6, 1,
105
+  7, 160, 5, 7, 7, 6, 0, 0, 248, 136, 184, 184, 184, 136, 248, 5,
106
+  7, 7, 6, 0, 1, 112, 8, 120, 136, 120, 0, 248, 5, 5, 5, 6,
107
+  0, 1, 40, 80, 160, 80, 40, 5, 3, 3, 6, 0, 1, 248, 8, 8,
108
+  2, 2, 2, 6, 2, 6, 64, 128, 5, 7, 7, 6, 0, 0, 248, 136,
109
+  168, 136, 152, 168, 248, 5, 1, 1, 6, 0, 6, 248, 4, 4, 4, 6,
110
+  0, 3, 96, 144, 144, 96, 5, 7, 7, 6, 0, 0, 32, 32, 248, 32,
111
+  32, 0, 248, 4, 5, 5, 6, 0, 3, 96, 144, 32, 64, 240, 3, 5,
112
+  5, 6, 0, 3, 224, 32, 224, 32, 224, 2, 2, 2, 6, 2, 6, 64,
113
+  128, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 152, 232, 128, 128, 5,
114
+  7, 7, 6, 0, 0, 120, 152, 152, 120, 24, 24, 24, 2, 2, 2, 6,
115
+  2, 2, 192, 192, 2, 2, 2, 6, 2, 255, 64, 128, 3, 5, 5, 6,
116
+  0, 3, 64, 192, 64, 64, 224, 5, 7, 7, 6, 0, 1, 112, 136, 136,
117
+  136, 112, 0, 248, 5, 5, 5, 6, 0, 1, 160, 80, 40, 80, 160, 5,
118
+  7, 7, 6, 0, 0, 136, 144, 168, 88, 184, 8, 8, 5, 7, 7, 6,
119
+  0, 0, 136, 144, 184, 72, 152, 32, 56, 5, 8, 8, 6, 0, 0, 192,
120
+  64, 192, 72, 216, 56, 8, 8, 5, 7, 7, 6, 0, 0, 32, 0, 32,
121
+  64, 128, 136, 112, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248,
122
+  136, 136, 5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 248, 136, 136,
123
+  5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136, 248, 136, 136, 5, 8,
124
+  8, 6, 0, 0, 104, 144, 0, 112, 136, 248, 136, 136, 5, 8, 8, 6,
125
+  0, 0, 80, 0, 112, 136, 136, 248, 136, 136, 5, 8, 8, 6, 0, 0,
126
+  32, 80, 32, 112, 136, 248, 136, 136, 5, 7, 7, 6, 0, 0, 56, 96,
127
+  160, 184, 224, 160, 184, 5, 8, 8, 6, 0, 255, 112, 136, 128, 128, 136,
128
+  112, 32, 96, 5, 8, 8, 6, 0, 0, 64, 32, 0, 248, 128, 240, 128,
129
+  248, 5, 8, 8, 6, 0, 0, 8, 16, 0, 248, 128, 240, 128, 248, 5,
130
+  8, 8, 6, 0, 0, 32, 80, 0, 248, 128, 240, 128, 248, 5, 7, 7,
131
+  6, 0, 0, 80, 0, 248, 128, 240, 128, 248, 3, 8, 8, 6, 1, 0,
132
+  128, 64, 0, 224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 32, 64,
133
+  0, 224, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 64, 160, 0, 224,
134
+  64, 64, 64, 224, 3, 7, 7, 6, 1, 0, 160, 0, 224, 64, 64, 64,
135
+  224, 5, 7, 7, 6, 0, 0, 112, 72, 72, 232, 72, 72, 112, 5, 8,
136
+  8, 6, 0, 0, 104, 144, 0, 136, 200, 168, 152, 136, 5, 8, 8, 6,
137
+  0, 0, 64, 32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0,
138
+  16, 32, 112, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80,
139
+  0, 112, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 112,
140
+  136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 80, 0, 112, 136, 136, 136,
141
+  136, 112, 5, 5, 5, 6, 0, 1, 136, 80, 32, 80, 136, 5, 8, 8,
142
+  6, 0, 255, 16, 112, 168, 168, 168, 168, 112, 64, 5, 8, 8, 6, 0,
143
+  0, 64, 32, 136, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 16,
144
+  32, 136, 136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0,
145
+  136, 136, 136, 136, 112, 5, 8, 8, 6, 0, 0, 80, 0, 136, 136, 136,
146
+  136, 136, 112, 5, 8, 8, 6, 0, 0, 16, 32, 136, 80, 32, 32, 32,
147
+  32, 5, 9, 9, 6, 0, 255, 192, 64, 112, 72, 72, 112, 64, 64, 224,
148
+  4, 8, 8, 6, 1, 255, 96, 144, 144, 160, 144, 144, 224, 128, 5, 8,
149
+  8, 6, 0, 0, 64, 32, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6,
150
+  0, 0, 16, 32, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0,
151
+  32, 80, 0, 112, 8, 120, 136, 120, 5, 8, 8, 6, 0, 0, 104, 144,
152
+  0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0, 0, 80, 0, 112, 8,
153
+  120, 136, 120, 5, 8, 8, 6, 0, 0, 32, 80, 32, 112, 8, 120, 136,
154
+  120, 5, 6, 6, 6, 0, 0, 208, 40, 120, 160, 168, 80, 5, 6, 6,
155
+  6, 0, 255, 112, 128, 136, 112, 32, 96, 5, 8, 8, 6, 0, 0, 64,
156
+  32, 0, 112, 136, 248, 128, 112, 5, 8, 8, 6, 0, 0, 16, 32, 0,
157
+  112, 136, 248, 128, 112, 5, 8, 8, 6, 0, 0, 32, 80, 0, 112, 136,
158
+  248, 128, 112, 5, 7, 7, 6, 0, 0, 80, 0, 112, 136, 248, 128, 112,
159
+  3, 8, 8, 6, 1, 0, 128, 64, 0, 64, 192, 64, 64, 224, 3, 8,
160
+  8, 6, 1, 0, 32, 64, 0, 64, 192, 64, 64, 224, 3, 8, 8, 6,
161
+  1, 0, 64, 160, 0, 64, 192, 64, 64, 224, 3, 7, 7, 6, 1, 0,
162
+  160, 0, 64, 192, 64, 64, 224, 5, 7, 7, 6, 0, 0, 160, 64, 160,
163
+  16, 120, 136, 112, 5, 8, 8, 6, 0, 0, 104, 144, 0, 176, 200, 136,
164
+  136, 136, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 136, 136, 112,
165
+  5, 8, 8, 6, 0, 0, 16, 32, 0, 112, 136, 136, 136, 112, 5, 8,
166
+  8, 6, 0, 0, 32, 80, 0, 112, 136, 136, 136, 112, 5, 8, 8, 6,
167
+  0, 0, 104, 144, 0, 112, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0,
168
+  80, 0, 112, 136, 136, 136, 112, 5, 5, 5, 6, 0, 1, 32, 0, 248,
169
+  0, 32, 5, 7, 7, 6, 0, 255, 16, 112, 168, 168, 168, 112, 64, 5,
170
+  8, 8, 6, 0, 0, 64, 32, 0, 136, 136, 136, 152, 104, 5, 8, 8,
171
+  6, 0, 0, 16, 32, 0, 136, 136, 136, 152, 104, 5, 8, 8, 6, 0,
172
+  0, 32, 80, 0, 136, 136, 136, 152, 104, 5, 7, 7, 6, 0, 0, 80,
173
+  0, 136, 136, 136, 152, 104, 5, 9, 9, 6, 0, 255, 16, 32, 0, 136,
174
+  136, 136, 248, 8, 112, 4, 7, 7, 6, 1, 255, 192, 64, 96, 80, 96,
175
+  64, 224, 5, 8, 8, 6, 0, 255, 80, 0, 136, 136, 136, 120, 8, 112
176
+};

+ 161
- 161
Marlin/dogm_font_data_ISO10646_5_Cyrillic.h View File

@@ -11,164 +11,164 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t ISO10646_5_Cyrillic_5x7[2560] U8G_SECTION(".progmem.ISO10646_5_Cyrillic_5x7") = {
14
-  0,6,9,0,254,7,1,145,3,32,32,255,255,8,255,7,
15
-  255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
16
-  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
-  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
-  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
-  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
-  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
-  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
-  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
-  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
-  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
-  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
-  0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
27
-  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
-  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
-  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
-  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
-  48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
-  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
-  112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
34
-  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
-  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
-  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
37
-  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
-  8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
39
-  112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
40
-  7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
41
-  0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
42
-  136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
43
-  128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
44
-  7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
45
-  0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
46
-  128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
47
-  16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
48
-  5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
49
-  6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
50
-  136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
51
-  136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
52
-  128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
53
-  7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
54
-  0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
55
-  32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
56
-  136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
57
-  7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
58
-  0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
59
-  136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
60
-  64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
61
-  5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,1,
62
-  0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,80,
63
-  136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,64,
64
-  5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,0,
65
-  0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,128,
66
-  128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,120,
67
-  5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,0,
68
-  0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,136,
69
-  136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,136,
70
-  136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,8,
71
-  8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,6,
72
-  0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,192,
73
-  64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,168,
74
-  168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,6,
75
-  0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,136,
76
-  240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,5,
77
-  5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,0,
78
-  112,128,112,8,240,5,7,7,6,0,0,64,64,224,64,64,
79
-  72,48,5,5,5,6,0,0,136,136,136,152,104,5,5,5,
80
-  6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,136,
81
-  168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,6,
82
-  6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,0,
83
-  248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,64,
84
-  64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,3,
85
-  7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,6,
86
-  0,3,104,144,0,0,0,6,0,0,0,0,0,6,0,0,
87
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
88
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
89
-  0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
90
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
91
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
92
-  0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
93
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
94
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
95
-  0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
96
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
97
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
98
-  0,6,0,0,0,0,0,6,0,0,5,8,8,6,0,0,
99
-  64,248,128,128,240,128,128,248,5,8,8,6,0,0,80,248,
100
-  128,128,240,128,128,248,5,7,7,6,0,0,224,64,64,112,
101
-  72,72,112,5,8,8,6,0,0,16,32,248,136,128,128,128,
102
-  128,5,7,7,6,0,0,48,72,128,224,128,72,48,5,7,
103
-  7,6,0,0,112,136,128,112,8,136,112,3,7,7,6,1,
104
-  0,224,64,64,64,64,64,224,3,8,8,6,1,0,160,0,
105
-  224,64,64,64,64,224,5,7,7,6,0,0,56,16,16,16,
106
-  16,144,96,5,7,7,6,0,0,160,160,160,184,168,168,184,
107
-  5,7,7,6,0,0,160,160,160,248,168,168,184,4,7,7,
108
-  6,0,0,224,64,112,80,80,80,80,5,8,8,6,0,0,
109
-  16,32,136,144,160,224,144,136,5,8,8,6,0,0,64,32,
110
-  136,152,168,200,136,136,5,9,9,6,0,255,80,32,136,136,
111
-  136,80,32,32,32,5,8,8,6,0,255,136,136,136,136,136,
112
-  136,248,32,5,7,7,6,0,0,112,136,136,248,136,136,136,
113
-  5,7,7,6,0,0,248,128,128,240,136,136,240,5,7,7,
114
-  6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,0,
115
-  248,136,128,128,128,128,128,5,8,8,6,0,255,120,40,40,
116
-  40,72,136,248,136,5,7,7,6,0,0,248,128,128,240,128,
117
-  128,248,5,7,7,6,0,0,168,168,168,112,168,168,168,5,
118
-  7,7,6,0,0,240,8,8,112,8,8,240,5,7,7,6,
119
-  0,0,136,136,152,168,200,136,136,5,8,8,6,0,0,80,
120
-  32,136,152,168,168,200,136,5,7,7,6,0,0,136,144,160,
121
-  192,160,144,136,5,7,7,6,0,0,120,40,40,40,40,168,
122
-  72,5,7,7,6,0,0,136,216,168,136,136,136,136,5,7,
123
-  7,6,0,0,136,136,136,248,136,136,136,5,7,7,6,0,
124
-  0,112,136,136,136,136,136,112,5,7,7,6,0,0,248,136,
125
-  136,136,136,136,136,5,7,7,6,0,0,240,136,136,240,128,
126
-  128,128,5,7,7,6,0,0,112,136,128,128,128,136,112,5,
127
-  7,7,6,0,0,248,32,32,32,32,32,32,5,7,7,6,
128
-  0,0,136,136,136,80,32,64,128,5,7,7,6,0,0,32,
129
-  112,168,168,168,112,32,5,7,7,6,0,0,136,136,80,32,
130
-  80,136,136,5,8,8,6,0,255,136,136,136,136,136,136,248,
131
-  8,5,7,7,6,0,0,136,136,136,152,104,8,8,5,7,
132
-  7,6,0,0,168,168,168,168,168,168,248,5,8,8,6,0,
133
-  255,168,168,168,168,168,168,248,8,5,7,7,6,0,0,192,
134
-  64,64,112,72,72,112,5,7,7,6,0,0,136,136,136,200,
135
-  168,168,200,5,7,7,6,0,0,128,128,128,240,136,136,240,
136
-  5,7,7,6,0,0,112,136,8,56,8,136,112,5,7,7,
137
-  6,0,0,144,168,168,232,168,168,144,5,7,7,6,0,0,
138
-  120,136,136,120,40,72,136,5,5,5,6,0,0,112,8,120,
139
-  136,120,5,7,7,6,0,0,24,96,128,240,136,136,112,4,
140
-  5,5,6,0,0,224,144,224,144,224,5,5,5,6,0,0,
141
-  248,136,128,128,128,5,6,6,6,0,255,120,40,72,136,248,
142
-  136,5,5,5,6,0,0,112,136,248,128,112,5,5,5,6,
143
-  0,0,168,168,112,168,168,5,5,5,6,0,0,240,8,48,
144
-  8,240,5,5,5,6,0,0,136,152,168,200,136,5,7,7,
145
-  6,0,0,80,32,136,152,168,200,136,4,5,5,6,0,0,
146
-  144,160,192,160,144,5,5,5,6,0,0,248,40,40,168,72,
147
-  5,5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,
148
-  0,136,136,248,136,136,5,5,5,6,0,0,112,136,136,136,
149
-  112,5,5,5,6,0,0,248,136,136,136,136,5,6,6,6,
150
-  0,255,240,136,136,240,128,128,5,5,5,6,0,0,112,128,
151
-  128,136,112,5,5,5,6,0,0,248,32,32,32,32,5,6,
152
-  6,6,0,255,136,136,136,120,8,112,5,6,6,6,0,0,
153
-  32,112,168,168,112,32,5,5,5,6,0,0,136,80,32,80,
154
-  136,5,6,6,6,0,255,136,136,136,136,248,8,5,5,5,
155
-  6,0,0,136,136,248,8,8,5,5,5,6,0,0,168,168,
156
-  168,168,248,5,6,6,6,0,255,168,168,168,168,248,8,5,
157
-  5,5,6,0,0,192,64,112,72,112,5,5,5,6,0,0,
158
-  136,136,200,168,200,3,5,5,6,1,0,128,128,192,160,192,
159
-  5,5,5,6,0,0,112,136,56,136,112,5,5,5,6,0,
160
-  0,144,168,232,168,144,5,5,5,6,0,0,120,136,120,40,
161
-  72,5,8,8,6,0,0,64,32,0,112,136,248,128,112,5,
162
-  7,7,6,0,0,80,0,112,136,248,128,112,5,9,9,6,
163
-  0,255,64,224,64,64,120,72,72,72,16,5,8,8,6,0,
164
-  0,16,32,0,248,136,128,128,128,5,5,5,6,0,0,112,
165
-  136,96,136,112,5,5,5,6,0,0,112,128,112,8,240,1,
166
-  7,7,6,2,0,128,0,128,128,128,128,128,3,7,7,6,
167
-  1,0,160,0,64,64,64,64,64,3,8,8,6,1,255,32,
168
-  0,32,32,32,32,160,64,5,5,5,6,0,0,160,160,184,
169
-  168,184,5,5,5,6,0,0,160,160,248,168,184,5,6,6,
170
-  6,0,0,64,224,64,120,72,72,4,8,8,6,0,0,16,
171
-  32,0,144,160,192,160,144,5,8,8,6,0,0,64,32,0,
172
-  136,152,168,200,136,5,9,9,6,0,255,80,32,0,136,136,
173
-  136,120,8,112,5,6,6,6,0,255,136,136,136,136,248,32
174
-  };
14
+  0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
15
+  255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
16
+  128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
17
+  0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
18
+  120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
19
+  64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
20
+  2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
21
+  64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
22
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
23
+  5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
24
+  64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
25
+  192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
26
+  0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
27
+  192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
28
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
29
+  5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
30
+  6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
31
+  48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32
+  32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
33
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
34
+  5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
35
+  192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
36
+  32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
37
+  0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
38
+  8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
39
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
40
+  7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
41
+  0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
42
+  136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
43
+  128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
44
+  7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
45
+  0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
46
+  128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
47
+  16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
48
+  5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
49
+  6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
50
+  136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
51
+  136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
52
+  128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
53
+  7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
54
+  0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
55
+  32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
56
+  136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
57
+  7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
58
+  0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
59
+  136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
60
+  64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
61
+  5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1,
62
+  0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80,
63
+  136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64,
64
+  5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0,
65
+  0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128,
66
+  128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120,
67
+  5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0,
68
+  0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136,
69
+  136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136,
70
+  136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8,
71
+  8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6,
72
+  0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192,
73
+  64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168,
74
+  168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6,
75
+  0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136,
76
+  240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5,
77
+  5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0,
78
+  112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64,
79
+  72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5,
80
+  6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136,
81
+  168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6,
82
+  6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0,
83
+  248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64,
84
+  64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3,
85
+  7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2, 6,
86
+  0, 3, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
87
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
88
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
89
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
90
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
91
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
92
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
93
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
94
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
95
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
96
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
97
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
98
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 8, 8, 6, 0, 0,
99
+  64, 248, 128, 128, 240, 128, 128, 248, 5, 8, 8, 6, 0, 0, 80, 248,
100
+  128, 128, 240, 128, 128, 248, 5, 7, 7, 6, 0, 0, 224, 64, 64, 112,
101
+  72, 72, 112, 5, 8, 8, 6, 0, 0, 16, 32, 248, 136, 128, 128, 128,
102
+  128, 5, 7, 7, 6, 0, 0, 48, 72, 128, 224, 128, 72, 48, 5, 7,
103
+  7, 6, 0, 0, 112, 136, 128, 112, 8, 136, 112, 3, 7, 7, 6, 1,
104
+  0, 224, 64, 64, 64, 64, 64, 224, 3, 8, 8, 6, 1, 0, 160, 0,
105
+  224, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
106
+  16, 144, 96, 5, 7, 7, 6, 0, 0, 160, 160, 160, 184, 168, 168, 184,
107
+  5, 7, 7, 6, 0, 0, 160, 160, 160, 248, 168, 168, 184, 4, 7, 7,
108
+  6, 0, 0, 224, 64, 112, 80, 80, 80, 80, 5, 8, 8, 6, 0, 0,
109
+  16, 32, 136, 144, 160, 224, 144, 136, 5, 8, 8, 6, 0, 0, 64, 32,
110
+  136, 152, 168, 200, 136, 136, 5, 9, 9, 6, 0, 255, 80, 32, 136, 136,
111
+  136, 80, 32, 32, 32, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 136,
112
+  136, 248, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136,
113
+  5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 136, 136, 240, 5, 7, 7,
114
+  6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0, 0,
115
+  248, 136, 128, 128, 128, 128, 128, 5, 8, 8, 6, 0, 255, 120, 40, 40,
116
+  40, 72, 136, 248, 136, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
117
+  128, 248, 5, 7, 7, 6, 0, 0, 168, 168, 168, 112, 168, 168, 168, 5,
118
+  7, 7, 6, 0, 0, 240, 8, 8, 112, 8, 8, 240, 5, 7, 7, 6,
119
+  0, 0, 136, 136, 152, 168, 200, 136, 136, 5, 8, 8, 6, 0, 0, 80,
120
+  32, 136, 152, 168, 168, 200, 136, 5, 7, 7, 6, 0, 0, 136, 144, 160,
121
+  192, 160, 144, 136, 5, 7, 7, 6, 0, 0, 120, 40, 40, 40, 40, 168,
122
+  72, 5, 7, 7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7,
123
+  7, 6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 5, 7, 7, 6, 0,
124
+  0, 112, 136, 136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 136,
125
+  136, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
126
+  128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 128, 128, 128, 136, 112, 5,
127
+  7, 7, 6, 0, 0, 248, 32, 32, 32, 32, 32, 32, 5, 7, 7, 6,
128
+  0, 0, 136, 136, 136, 80, 32, 64, 128, 5, 7, 7, 6, 0, 0, 32,
129
+  112, 168, 168, 168, 112, 32, 5, 7, 7, 6, 0, 0, 136, 136, 80, 32,
130
+  80, 136, 136, 5, 8, 8, 6, 0, 255, 136, 136, 136, 136, 136, 136, 248,
131
+  8, 5, 7, 7, 6, 0, 0, 136, 136, 136, 152, 104, 8, 8, 5, 7,
132
+  7, 6, 0, 0, 168, 168, 168, 168, 168, 168, 248, 5, 8, 8, 6, 0,
133
+  255, 168, 168, 168, 168, 168, 168, 248, 8, 5, 7, 7, 6, 0, 0, 192,
134
+  64, 64, 112, 72, 72, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 200,
135
+  168, 168, 200, 5, 7, 7, 6, 0, 0, 128, 128, 128, 240, 136, 136, 240,
136
+  5, 7, 7, 6, 0, 0, 112, 136, 8, 56, 8, 136, 112, 5, 7, 7,
137
+  6, 0, 0, 144, 168, 168, 232, 168, 168, 144, 5, 7, 7, 6, 0, 0,
138
+  120, 136, 136, 120, 40, 72, 136, 5, 5, 5, 6, 0, 0, 112, 8, 120,
139
+  136, 120, 5, 7, 7, 6, 0, 0, 24, 96, 128, 240, 136, 136, 112, 4,
140
+  5, 5, 6, 0, 0, 224, 144, 224, 144, 224, 5, 5, 5, 6, 0, 0,
141
+  248, 136, 128, 128, 128, 5, 6, 6, 6, 0, 255, 120, 40, 72, 136, 248,
142
+  136, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 5, 5, 6,
143
+  0, 0, 168, 168, 112, 168, 168, 5, 5, 5, 6, 0, 0, 240, 8, 48,
144
+  8, 240, 5, 5, 5, 6, 0, 0, 136, 152, 168, 200, 136, 5, 7, 7,
145
+  6, 0, 0, 80, 32, 136, 152, 168, 200, 136, 4, 5, 5, 6, 0, 0,
146
+  144, 160, 192, 160, 144, 5, 5, 5, 6, 0, 0, 248, 40, 40, 168, 72,
147
+  5, 5, 5, 6, 0, 0, 136, 216, 168, 136, 136, 5, 5, 5, 6, 0,
148
+  0, 136, 136, 248, 136, 136, 5, 5, 5, 6, 0, 0, 112, 136, 136, 136,
149
+  112, 5, 5, 5, 6, 0, 0, 248, 136, 136, 136, 136, 5, 6, 6, 6,
150
+  0, 255, 240, 136, 136, 240, 128, 128, 5, 5, 5, 6, 0, 0, 112, 128,
151
+  128, 136, 112, 5, 5, 5, 6, 0, 0, 248, 32, 32, 32, 32, 5, 6,
152
+  6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 6, 6, 6, 0, 0,
153
+  32, 112, 168, 168, 112, 32, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80,
154
+  136, 5, 6, 6, 6, 0, 255, 136, 136, 136, 136, 248, 8, 5, 5, 5,
155
+  6, 0, 0, 136, 136, 248, 8, 8, 5, 5, 5, 6, 0, 0, 168, 168,
156
+  168, 168, 248, 5, 6, 6, 6, 0, 255, 168, 168, 168, 168, 248, 8, 5,
157
+  5, 5, 6, 0, 0, 192, 64, 112, 72, 112, 5, 5, 5, 6, 0, 0,
158
+  136, 136, 200, 168, 200, 3, 5, 5, 6, 1, 0, 128, 128, 192, 160, 192,
159
+  5, 5, 5, 6, 0, 0, 112, 136, 56, 136, 112, 5, 5, 5, 6, 0,
160
+  0, 144, 168, 232, 168, 144, 5, 5, 5, 6, 0, 0, 120, 136, 120, 40,
161
+  72, 5, 8, 8, 6, 0, 0, 64, 32, 0, 112, 136, 248, 128, 112, 5,
162
+  7, 7, 6, 0, 0, 80, 0, 112, 136, 248, 128, 112, 5, 9, 9, 6,
163
+  0, 255, 64, 224, 64, 64, 120, 72, 72, 72, 16, 5, 8, 8, 6, 0,
164
+  0, 16, 32, 0, 248, 136, 128, 128, 128, 5, 5, 5, 6, 0, 0, 112,
165
+  136, 96, 136, 112, 5, 5, 5, 6, 0, 0, 112, 128, 112, 8, 240, 1,
166
+  7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 7, 7, 6,
167
+  1, 0, 160, 0, 64, 64, 64, 64, 64, 3, 8, 8, 6, 1, 255, 32,
168
+  0, 32, 32, 32, 32, 160, 64, 5, 5, 5, 6, 0, 0, 160, 160, 184,
169
+  168, 184, 5, 5, 5, 6, 0, 0, 160, 160, 248, 168, 184, 5, 6, 6,
170
+  6, 0, 0, 64, 224, 64, 120, 72, 72, 4, 8, 8, 6, 0, 0, 16,
171
+  32, 0, 144, 160, 192, 160, 144, 5, 8, 8, 6, 0, 0, 64, 32, 0,
172
+  136, 152, 168, 200, 136, 5, 9, 9, 6, 0, 255, 80, 32, 0, 136, 136,
173
+  136, 120, 8, 112, 5, 6, 6, 6, 0, 255, 136, 136, 136, 136, 248, 32
174
+};

+ 258
- 257
Marlin/dogm_font_data_ISO10646_CN.h View File

@@ -11,260 +11,261 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t ISO10646_CN[4105] U8G_SECTION(".progmem.ISO10646_CN") = {
14
-  0,12,11,0,254,7,1,146,3,33,32,255,255,10,255,7,
15
-  255,0,0,0,6,0,10,1,7,7,6,2,0,128,128,128,
16
-  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
-  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
-  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
-  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
-  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
-  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
-  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
-  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
-  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
-  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
-  0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
27
-  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
-  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
-  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
-  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
-  112,128,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
-  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
-  112,5,7,7,6,0,0,112,136,136,120,8,8,112,2,5,
34
-  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
-  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
-  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,0,
37
-  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
-  8,16,32,0,32,5,7,7,6,0,0,112,136,8,104,168,
39
-  168,112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,
40
-  7,7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,
41
-  0,0,112,136,128,128,128,136,112,5,7,7,6,0,0,240,
42
-  136,136,136,136,136,240,5,7,7,6,0,0,248,128,128,240,
43
-  128,128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,
44
-  5,7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,
45
-  6,0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,
46
-  128,128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,
47
-  16,16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,
48
-  136,5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,
49
-  7,6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,
50
-  0,136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,
51
-  136,136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,
52
-  128,128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,
53
-  7,7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,
54
-  0,0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,
55
-  32,32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,
56
-  136,136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,
57
-  5,7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,
58
-  6,0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,
59
-  136,136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,
60
-  32,64,128,248,3,7,7,6,0,0,224,128,128,128,128,128,
61
-  224,5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,
62
-  0,0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,
63
-  80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,
64
-  64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,
65
-  0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,
66
-  128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,
67
-  120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,
68
-  0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,
69
-  136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,
70
-  136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,
71
-  8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,
72
-  6,1,0,128,128,144,160,192,160,144,3,7,7,6,1,0,
73
-  192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,
74
-  168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,
75
-  6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,
76
-  136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,
77
-  5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,
78
-  0,112,128,112,8,240,4,7,7,6,0,0,64,64,224,64,
79
-  64,64,48,5,5,5,6,0,0,136,136,136,152,104,5,5,
80
-  5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,
81
-  136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,
82
-  6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,
83
-  0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,
84
-  64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,
85
-  3,7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,
86
-  6,0,3,104,144,0,0,0,6,0,10,0,0,0,12,0,
87
-  10,0,0,0,12,0,10,0,0,0,12,0,10,0,0,0,
88
-  12,0,10,0,0,0,12,0,10,0,0,0,12,0,10,0,
89
-  0,0,12,0,10,0,0,0,12,0,10,0,0,0,12,0,
90
-  10,0,0,0,12,0,10,0,0,0,12,0,10,0,0,0,
91
-  12,0,10,0,0,0,12,0,10,0,0,0,12,0,10,0,
92
-  0,0,12,0,10,0,0,0,12,0,10,0,0,0,12,0,
93
-  10,0,0,0,12,0,10,0,0,0,12,0,10,0,0,0,
94
-  12,0,10,0,0,0,12,0,10,0,0,0,12,0,10,0,
95
-  0,0,12,0,10,0,0,0,12,0,10,0,0,0,12,0,
96
-  10,0,0,0,12,0,10,0,0,0,12,0,10,0,0,0,
97
-  12,0,10,0,0,0,12,0,10,11,11,22,12,0,255,255,
98
-  224,2,0,2,0,4,0,13,0,20,128,36,64,196,32,4,
99
-  0,4,0,4,0,11,11,22,12,0,255,249,0,138,0,171,
100
-  224,172,64,170,64,170,64,170,64,170,128,33,0,82,128,140,
101
-  96,11,11,22,12,0,255,36,0,36,0,63,128,68,0,132,
102
-  0,4,0,255,224,10,0,17,0,32,128,192,96,11,11,22,
103
-  12,0,255,36,0,36,0,63,192,68,0,4,0,255,224,9,
104
-  0,9,0,17,32,33,32,64,224,11,11,22,12,0,255,32,
105
-  0,61,224,81,32,145,32,17,32,255,32,17,32,41,32,37,
106
-  224,69,32,128,0,11,11,22,12,0,255,32,128,127,192,8,
107
-  64,255,224,17,0,32,128,95,64,128,32,63,128,0,0,127,
108
-  192,11,11,22,12,0,255,34,64,71,224,148,128,228,128,47,
109
-  224,68,128,244,128,7,224,52,128,196,128,7,224,11,11,22,
110
-  12,0,255,4,128,143,224,73,0,25,0,47,192,9,0,9,
111
-  0,47,192,73,0,137,0,15,224,11,11,22,12,0,255,16,
112
-  0,63,128,81,0,14,0,49,128,192,96,63,128,36,128,63,
113
-  128,36,128,63,128,11,11,22,12,0,255,34,128,250,64,7,
114
-  224,250,128,138,128,138,128,250,128,34,128,178,128,170,160,100,
115
-  224,11,11,22,12,0,255,34,32,71,64,146,128,239,224,34,
116
-  0,71,192,236,64,7,192,52,64,199,192,4,64,11,11,22,
117
-  12,0,255,8,0,15,192,8,0,8,0,255,224,8,0,14,
118
-  0,9,128,8,64,8,0,8,0,10,11,22,12,0,255,255,
119
-  128,0,128,0,128,128,128,128,128,255,128,128,0,128,0,128,
120
-  64,128,64,127,192,11,11,22,12,0,255,71,192,65,0,239,
121
-  224,65,0,69,0,105,96,201,32,77,96,73,32,79,224,200,
122
-  32,11,11,22,12,0,255,8,0,4,0,4,0,10,0,10,
123
-  0,10,0,17,0,17,0,32,128,64,64,128,32,11,11,22,
124
-  12,0,255,34,64,34,0,247,224,34,0,35,224,53,32,229,
125
-  32,37,64,40,128,41,64,114,32,11,10,20,12,0,0,68,
126
-  64,68,64,68,64,127,192,4,0,4,0,132,32,132,32,132,
127
-  32,255,224,11,11,22,12,0,255,4,0,0,0,127,192,4,
128
-  0,4,0,4,0,127,192,4,0,4,0,4,0,255,224,11,
129
-  11,22,12,0,255,255,224,17,0,1,192,254,0,72,128,37,
130
-  0,4,0,255,224,21,0,36,128,196,96,11,11,22,12,0,
131
-  255,17,0,127,192,68,64,127,192,68,64,127,192,4,0,255,
132
-  224,4,0,4,0,4,0,9,11,22,12,0,255,16,0,255,
133
-  128,128,128,128,128,255,128,128,128,128,128,255,128,128,128,128,
134
-  128,255,128,11,11,22,12,0,255,113,0,1,0,3,224,249,
135
-  32,33,32,65,32,81,32,137,32,250,32,2,32,4,192,11,
136
-  11,22,12,0,255,127,192,17,0,17,0,17,0,17,0,255,
137
-  224,17,0,17,0,33,0,33,0,65,0,11,11,22,12,0,
138
-  255,33,0,34,0,244,64,87,224,80,32,87,192,148,64,84,
139
-  64,36,64,87,192,148,64,11,11,22,12,0,255,17,0,10,
140
-  0,127,192,4,0,4,0,255,224,4,0,10,0,17,0,32,
141
-  128,192,96,10,11,22,12,0,255,95,192,0,64,132,64,132,
142
-  64,191,64,132,64,140,64,148,64,164,64,140,64,129,192,11,
143
-  11,22,12,0,255,36,0,39,192,36,0,36,0,255,224,0,
144
-  0,20,64,36,128,71,0,12,0,112,0,11,11,22,12,0,
145
-  255,36,128,4,128,15,192,228,128,36,128,63,224,36,128,36,
146
-  128,40,128,80,0,143,224,11,11,22,12,0,255,8,0,8,
147
-  0,255,128,136,128,136,128,255,128,136,128,136,128,255,160,136,
148
-  32,7,224,11,11,22,12,0,255,39,128,36,128,244,128,36,
149
-  128,116,128,108,128,164,128,36,128,36,160,40,160,48,96,10,
150
-  11,22,12,0,255,255,192,128,64,128,64,158,64,146,64,146,
151
-  64,158,64,128,64,128,64,255,192,128,64,11,11,22,12,0,
152
-  255,127,192,68,0,95,192,80,64,95,192,80,64,95,192,66,
153
-  0,74,128,82,64,166,32,11,11,22,12,0,255,4,0,7,
154
-  224,4,0,127,192,64,64,64,64,64,64,127,192,0,0,82,
155
-  64,137,32,11,11,22,12,0,255,71,128,36,128,4,128,4,
156
-  128,232,96,32,0,47,192,36,64,34,128,49,0,38,192,11,
157
-  11,22,12,0,255,127,192,74,64,127,192,4,0,255,224,4,
158
-  0,63,128,32,128,36,128,36,128,255,224,11,11,22,12,0,
159
-  255,34,0,79,224,72,32,79,224,200,0,79,224,74,160,90,
160
-  160,111,224,74,160,72,96,11,11,22,12,0,255,243,192,36,
161
-  64,42,128,241,0,34,128,101,224,114,32,165,64,32,128,35,
162
-  0,44,0,11,11,22,12,0,255,4,0,255,224,128,32,0,
163
-  0,255,224,4,0,36,0,39,192,36,0,84,0,143,224,11,
164
-  11,22,12,0,255,115,224,16,128,81,0,35,224,250,32,42,
165
-  160,34,160,34,160,32,128,33,64,98,32,11,11,22,12,0,
166
-  255,34,0,247,128,34,128,54,128,226,160,37,160,36,96,104,
167
-  32,0,0,82,64,137,32,11,11,22,12,0,255,115,192,66,
168
-  0,66,0,123,224,74,64,74,64,122,64,74,64,66,64,68,
169
-  64,136,64,11,11,22,12,0,255,8,0,255,224,8,0,31,
170
-  192,48,64,95,192,144,64,31,192,16,64,16,64,16,192,11,
171
-  11,22,12,0,255,2,0,127,224,66,0,66,0,95,192,66,
172
-  0,71,0,74,128,82,64,98,32,130,0,11,11,22,12,0,
173
-  255,243,192,150,64,145,128,166,96,161,0,151,192,145,0,149,
174
-  0,231,224,129,0,129,0,11,11,22,12,0,255,15,128,136,
175
-  128,79,128,8,128,143,128,64,0,31,192,53,64,85,64,149,
176
-  64,63,224,11,11,22,12,0,255,39,224,32,128,248,128,32,
177
-  128,32,128,56,128,224,128,32,128,32,128,32,128,97,128,11,
178
-  11,22,12,0,255,31,224,145,0,87,192,20,64,23,192,148,
179
-  64,87,192,17,0,85,64,153,32,35,0,11,11,22,12,0,
180
-  255,32,128,39,224,242,64,33,128,34,64,52,32,226,64,34,
181
-  64,34,64,34,64,100,64,11,11,22,12,0,255,65,0,65,
182
-  0,79,224,233,32,73,32,73,32,111,224,201,32,73,32,73,
183
-  32,207,224,11,11,22,12,0,255,33,0,241,0,79,224,169,
184
-  32,249,32,47,224,57,32,233,32,41,32,47,224,40,32,11,
185
-  11,22,12,0,255,143,224,73,32,9,32,203,160,73,32,79,
186
-  224,72,32,75,160,74,160,107,160,80,224,11,11,22,12,0,
187
-  255,127,192,4,0,68,64,36,64,36,128,4,0,255,224,4,
188
-  0,4,0,4,0,4,0,11,11,22,12,0,255,130,0,66,
189
-  0,31,224,194,0,95,192,82,64,95,192,71,0,74,128,82,
190
-  64,191,224,11,11,22,12,0,255,4,0,127,224,72,128,127,
191
-  224,72,128,79,128,64,0,95,192,72,64,71,128,152,96,11,
192
-  11,22,12,0,255,1,0,239,224,161,0,164,64,175,224,164,
193
-  64,175,224,169,32,233,32,2,128,12,96,11,11,22,12,0,
194
-  255,20,192,246,160,188,96,167,128,168,128,191,224,169,32,239,
195
-  224,9,32,15,224,9,32,11,11,22,12,0,255,127,128,64,
196
-  128,66,128,98,128,84,128,72,128,72,128,84,160,98,160,64,
197
-  96,128,32,11,11,22,12,0,255,4,0,127,224,64,32,127,
198
-  224,64,0,125,224,84,32,76,160,84,96,100,160,141,96,11,
199
-  11,22,12,0,255,130,0,95,224,4,0,8,64,159,224,64,
200
-  32,10,128,10,128,74,160,146,160,34,96,11,11,22,12,0,
201
-  255,65,0,79,224,232,32,66,128,68,64,104,32,199,192,65,
202
-  0,65,0,65,0,207,224,11,11,22,12,0,255,80,32,125,
203
-  32,145,32,255,32,17,32,125,32,85,32,85,32,84,32,92,
204
-  32,16,224,11,11,22,12,0,255,63,128,32,128,63,128,32,
205
-  128,255,224,72,0,123,192,73,64,121,64,72,128,251,96,11,
206
-  11,22,12,0,255,4,0,4,0,4,0,36,128,36,64,68,
207
-  64,68,32,132,32,4,0,4,0,28,0,11,11,22,12,0,
208
-  255,4,0,4,0,4,0,255,224,4,0,10,0,10,0,17,
209
-  0,17,0,32,128,192,96,9,10,20,10,0,0,136,128,73,
210
-  0,8,0,255,128,0,128,0,128,127,128,0,128,0,128,255,
211
-  128,11,11,22,12,0,255,33,0,18,0,255,224,0,0,120,
212
-  128,74,128,122,128,74,128,122,128,72,128,89,128,11,11,22,
213
-  12,0,255,39,192,0,0,0,0,239,224,33,0,34,0,36,
214
-  64,47,224,32,32,80,0,143,224,11,11,22,12,0,255,32,
215
-  128,39,0,249,0,33,192,119,0,33,0,249,224,39,0,113,
216
-  32,169,32,32,224,11,11,22,12,0,255,16,64,16,64,253,
217
-  224,16,64,56,192,53,64,82,64,148,64,16,64,16,64,16,
218
-  192,11,11,22,12,0,255,0,64,248,64,11,224,8,64,136,
219
-  64,82,64,81,64,33,64,80,64,72,64,137,192,10,11,22,
220
-  12,0,255,132,0,132,64,132,128,245,0,134,0,132,0,132,
221
-  0,148,0,164,64,196,64,131,192,11,11,22,12,0,255,17,
222
-  32,125,0,17,0,255,224,41,0,253,64,73,64,124,128,8,
223
-  160,253,96,10,32,11,11,22,12,0,255,23,192,36,64,36,
224
-  64,103,192,161,0,47,224,33,0,35,128,37,64,41,32,33,
225
-  0,11,11,22,12,0,255,8,0,255,224,16,0,39,192,32,
226
-  128,97,0,175,224,33,0,33,0,33,0,35,0,11,11,22,
227
-  12,0,255,36,0,47,224,180,0,164,128,164,160,170,192,42,
228
-  128,40,128,41,64,50,64,36,32,11,11,22,12,0,255,127,
229
-  224,128,0,63,192,32,64,63,192,16,0,31,192,16,64,40,
230
-  128,71,0,56,224,11,11,22,12,0,255,127,224,64,0,64,
231
-  0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,
232
-  0,11,11,22,12,0,255,255,224,4,0,127,192,68,64,127,
233
-  192,68,64,127,192,68,0,36,0,24,0,231,224,11,11,22,
234
-  12,0,255,17,224,253,0,69,0,41,224,253,64,17,64,125,
235
-  64,17,64,85,64,146,64,52,64,11,11,22,12,0,255,33,
236
-  0,95,224,64,0,207,192,64,0,79,192,64,0,79,192,72,
237
-  64,79,192,72,64,11,11,22,12,0,255,4,0,127,192,64,
238
-  64,127,192,64,64,127,192,64,64,127,192,4,64,82,32,191,
239
-  160,11,11,22,12,0,255,127,192,68,64,127,192,68,64,127,
240
-  192,4,0,27,0,224,224,17,0,17,0,97,0,11,11,22,
241
-  12,0,255,255,224,4,0,8,0,127,224,73,32,79,32,73,
242
-  32,79,32,73,32,73,32,127,224,11,11,22,12,0,255,253,
243
-  224,86,64,121,64,56,128,85,64,146,32,255,224,4,0,39,
244
-  192,36,0,255,224,11,11,22,12,0,255,251,128,82,0,123,
245
-  224,18,64,250,64,20,64,63,128,32,128,63,128,32,128,63,
246
-  128,11,11,22,12,0,255,31,224,32,0,39,192,100,64,167,
247
-  192,32,0,47,224,40,32,39,192,33,0,35,0,11,11,22,
248
-  12,0,255,243,224,130,32,130,32,250,32,130,32,130,32,138,
249
-  32,178,32,194,224,2,0,2,0,11,11,22,12,0,255,36,
250
-  128,70,160,149,192,228,128,39,224,68,128,245,192,6,160,52,
251
-  128,196,128,7,224,11,11,22,12,0,255,39,192,65,0,135,
252
-  224,224,32,34,128,69,128,242,128,15,224,48,128,193,64,2,
253
-  32,11,11,22,12,0,255,2,0,2,0,34,0,35,192,34,
254
-  0,34,0,34,0,34,0,34,0,34,0,255,224,9,11,22,
255
-  12,0,255,8,0,8,0,255,128,136,128,136,128,136,128,255,
256
-  128,136,128,136,128,136,128,255,128,11,11,22,12,0,255,33,
257
-  0,83,160,65,0,247,224,81,0,83,192,86,64,83,192,90,
258
-  64,83,192,66,64,11,11,22,12,0,255,127,192,4,0,4,
259
-  0,4,0,255,224,10,0,10,0,18,0,34,32,66,32,129,
260
-  224,11,11,22,12,0,255,17,0,33,0,47,224,97,0,163,
261
-  128,35,128,37,64,37,64,41,32,33,0,33,0,11,11,22,
262
-  12,0,255,247,224,148,32,244,32,151,224,148,128,244,128,151,
263
-  224,148,128,244,160,150,96,4,32,11,11,22,12,0,255,123,
264
-  224,148,128,4,0,127,192,4,0,255,224,1,0,255,224,33,
265
-  0,17,0,7,0,11,11,22,12,0,255,33,0,71,192,145,
266
-  0,47,224,96,128,175,224,32,128,36,128,34,128,32,128,35,
267
-  128,11,11,22,12,0,255,39,192,36,64,247,192,46,224,42,
268
-  160,62,224,225,0,47,224,35,128,37,64,105,32,11,11,22,
269
-  12,0,255,20,0,39,224,42,0,98,0,163,192,34,0,34,
270
-  0,35,224,34,0,34,0,34,0};
14
+  0, 12, 11, 0, 254, 7, 1, 146, 3, 33, 32, 255, 255, 10, 255, 7,
15
+  255, 0, 0, 0, 6, 0, 10, 1, 7, 7, 6, 2, 0, 128, 128, 128,
16
+  128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
17
+  0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
18
+  120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
19
+  64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
20
+  2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
21
+  64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
22
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
23
+  5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
24
+  64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
25
+  192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
26
+  0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
27
+  192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
28
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
29
+  5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
30
+  6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
31
+  112, 128, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32
+  32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
33
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 8, 112, 2, 5,
34
+  5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
35
+  192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
36
+  32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 0,
37
+  0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
38
+  8, 16, 32, 0, 32, 5, 7, 7, 6, 0, 0, 112, 136, 8, 104, 168,
39
+  168, 112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5,
40
+  7, 7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6,
41
+  0, 0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 240,
42
+  136, 136, 136, 136, 136, 240, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240,
43
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128,
44
+  5, 7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7,
45
+  6, 0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0,
46
+  128, 128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16,
47
+  16, 16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144,
48
+  136, 5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7,
49
+  7, 6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0,
50
+  0, 136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136,
51
+  136, 136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128,
52
+  128, 128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5,
53
+  7, 7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6,
54
+  0, 0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248,
55
+  32, 32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136,
56
+  136, 136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32,
57
+  5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7,
58
+  6, 0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0,
59
+  136, 136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16,
60
+  32, 64, 128, 248, 3, 7, 7, 6, 0, 0, 224, 128, 128, 128, 128, 128,
61
+  224, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6,
62
+  0, 0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32,
63
+  80, 136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128,
64
+  64, 5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6,
65
+  0, 0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112,
66
+  128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136,
67
+  120, 5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6,
68
+  0, 0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112,
69
+  136, 136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136,
70
+  136, 136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3,
71
+  8, 8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7,
72
+  6, 1, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0,
73
+  192, 64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168,
74
+  168, 168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5,
75
+  6, 0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136,
76
+  136, 240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8,
77
+  5, 5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0,
78
+  0, 112, 128, 112, 8, 240, 4, 7, 7, 6, 0, 0, 64, 64, 224, 64,
79
+  64, 64, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5,
80
+  5, 6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136,
81
+  136, 168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5,
82
+  6, 6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0,
83
+  0, 248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128,
84
+  64, 64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128,
85
+  3, 7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2,
86
+  6, 0, 3, 104, 144, 0, 0, 0, 6, 0, 10, 0, 0, 0, 12, 0,
87
+  10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
88
+  12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
89
+  0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
90
+  10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
91
+  12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
92
+  0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
93
+  10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
94
+  12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0,
95
+  0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0,
96
+  10, 0, 0, 0, 12, 0, 10, 0, 0, 0, 12, 0, 10, 0, 0, 0,
97
+  12, 0, 10, 0, 0, 0, 12, 0, 10, 11, 11, 22, 12, 0, 255, 255,
98
+  224, 2, 0, 2, 0, 4, 0, 13, 0, 20, 128, 36, 64, 196, 32, 4,
99
+  0, 4, 0, 4, 0, 11, 11, 22, 12, 0, 255, 249, 0, 138, 0, 171,
100
+  224, 172, 64, 170, 64, 170, 64, 170, 64, 170, 128, 33, 0, 82, 128, 140,
101
+  96, 11, 11, 22, 12, 0, 255, 36, 0, 36, 0, 63, 128, 68, 0, 132,
102
+  0, 4, 0, 255, 224, 10, 0, 17, 0, 32, 128, 192, 96, 11, 11, 22,
103
+  12, 0, 255, 36, 0, 36, 0, 63, 192, 68, 0, 4, 0, 255, 224, 9,
104
+  0, 9, 0, 17, 32, 33, 32, 64, 224, 11, 11, 22, 12, 0, 255, 32,
105
+  0, 61, 224, 81, 32, 145, 32, 17, 32, 255, 32, 17, 32, 41, 32, 37,
106
+  224, 69, 32, 128, 0, 11, 11, 22, 12, 0, 255, 32, 128, 127, 192, 8,
107
+  64, 255, 224, 17, 0, 32, 128, 95, 64, 128, 32, 63, 128, 0, 0, 127,
108
+  192, 11, 11, 22, 12, 0, 255, 34, 64, 71, 224, 148, 128, 228, 128, 47,
109
+  224, 68, 128, 244, 128, 7, 224, 52, 128, 196, 128, 7, 224, 11, 11, 22,
110
+  12, 0, 255, 4, 128, 143, 224, 73, 0, 25, 0, 47, 192, 9, 0, 9,
111
+  0, 47, 192, 73, 0, 137, 0, 15, 224, 11, 11, 22, 12, 0, 255, 16,
112
+  0, 63, 128, 81, 0, 14, 0, 49, 128, 192, 96, 63, 128, 36, 128, 63,
113
+  128, 36, 128, 63, 128, 11, 11, 22, 12, 0, 255, 34, 128, 250, 64, 7,
114
+  224, 250, 128, 138, 128, 138, 128, 250, 128, 34, 128, 178, 128, 170, 160, 100,
115
+  224, 11, 11, 22, 12, 0, 255, 34, 32, 71, 64, 146, 128, 239, 224, 34,
116
+  0, 71, 192, 236, 64, 7, 192, 52, 64, 199, 192, 4, 64, 11, 11, 22,
117
+  12, 0, 255, 8, 0, 15, 192, 8, 0, 8, 0, 255, 224, 8, 0, 14,
118
+  0, 9, 128, 8, 64, 8, 0, 8, 0, 10, 11, 22, 12, 0, 255, 255,
119
+  128, 0, 128, 0, 128, 128, 128, 128, 128, 255, 128, 128, 0, 128, 0, 128,
120
+  64, 128, 64, 127, 192, 11, 11, 22, 12, 0, 255, 71, 192, 65, 0, 239,
121
+  224, 65, 0, 69, 0, 105, 96, 201, 32, 77, 96, 73, 32, 79, 224, 200,
122
+  32, 11, 11, 22, 12, 0, 255, 8, 0, 4, 0, 4, 0, 10, 0, 10,
123
+  0, 10, 0, 17, 0, 17, 0, 32, 128, 64, 64, 128, 32, 11, 11, 22,
124
+  12, 0, 255, 34, 64, 34, 0, 247, 224, 34, 0, 35, 224, 53, 32, 229,
125
+  32, 37, 64, 40, 128, 41, 64, 114, 32, 11, 10, 20, 12, 0, 0, 68,
126
+  64, 68, 64, 68, 64, 127, 192, 4, 0, 4, 0, 132, 32, 132, 32, 132,
127
+  32, 255, 224, 11, 11, 22, 12, 0, 255, 4, 0, 0, 0, 127, 192, 4,
128
+  0, 4, 0, 4, 0, 127, 192, 4, 0, 4, 0, 4, 0, 255, 224, 11,
129
+  11, 22, 12, 0, 255, 255, 224, 17, 0, 1, 192, 254, 0, 72, 128, 37,
130
+  0, 4, 0, 255, 224, 21, 0, 36, 128, 196, 96, 11, 11, 22, 12, 0,
131
+  255, 17, 0, 127, 192, 68, 64, 127, 192, 68, 64, 127, 192, 4, 0, 255,
132
+  224, 4, 0, 4, 0, 4, 0, 9, 11, 22, 12, 0, 255, 16, 0, 255,
133
+  128, 128, 128, 128, 128, 255, 128, 128, 128, 128, 128, 255, 128, 128, 128, 128,
134
+  128, 255, 128, 11, 11, 22, 12, 0, 255, 113, 0, 1, 0, 3, 224, 249,
135
+  32, 33, 32, 65, 32, 81, 32, 137, 32, 250, 32, 2, 32, 4, 192, 11,
136
+  11, 22, 12, 0, 255, 127, 192, 17, 0, 17, 0, 17, 0, 17, 0, 255,
137
+  224, 17, 0, 17, 0, 33, 0, 33, 0, 65, 0, 11, 11, 22, 12, 0,
138
+  255, 33, 0, 34, 0, 244, 64, 87, 224, 80, 32, 87, 192, 148, 64, 84,
139
+  64, 36, 64, 87, 192, 148, 64, 11, 11, 22, 12, 0, 255, 17, 0, 10,
140
+  0, 127, 192, 4, 0, 4, 0, 255, 224, 4, 0, 10, 0, 17, 0, 32,
141
+  128, 192, 96, 10, 11, 22, 12, 0, 255, 95, 192, 0, 64, 132, 64, 132,
142
+  64, 191, 64, 132, 64, 140, 64, 148, 64, 164, 64, 140, 64, 129, 192, 11,
143
+  11, 22, 12, 0, 255, 36, 0, 39, 192, 36, 0, 36, 0, 255, 224, 0,
144
+  0, 20, 64, 36, 128, 71, 0, 12, 0, 112, 0, 11, 11, 22, 12, 0,
145
+  255, 36, 128, 4, 128, 15, 192, 228, 128, 36, 128, 63, 224, 36, 128, 36,
146
+  128, 40, 128, 80, 0, 143, 224, 11, 11, 22, 12, 0, 255, 8, 0, 8,
147
+  0, 255, 128, 136, 128, 136, 128, 255, 128, 136, 128, 136, 128, 255, 160, 136,
148
+  32, 7, 224, 11, 11, 22, 12, 0, 255, 39, 128, 36, 128, 244, 128, 36,
149
+  128, 116, 128, 108, 128, 164, 128, 36, 128, 36, 160, 40, 160, 48, 96, 10,
150
+  11, 22, 12, 0, 255, 255, 192, 128, 64, 128, 64, 158, 64, 146, 64, 146,
151
+  64, 158, 64, 128, 64, 128, 64, 255, 192, 128, 64, 11, 11, 22, 12, 0,
152
+  255, 127, 192, 68, 0, 95, 192, 80, 64, 95, 192, 80, 64, 95, 192, 66,
153
+  0, 74, 128, 82, 64, 166, 32, 11, 11, 22, 12, 0, 255, 4, 0, 7,
154
+  224, 4, 0, 127, 192, 64, 64, 64, 64, 64, 64, 127, 192, 0, 0, 82,
155
+  64, 137, 32, 11, 11, 22, 12, 0, 255, 71, 128, 36, 128, 4, 128, 4,
156
+  128, 232, 96, 32, 0, 47, 192, 36, 64, 34, 128, 49, 0, 38, 192, 11,
157
+  11, 22, 12, 0, 255, 127, 192, 74, 64, 127, 192, 4, 0, 255, 224, 4,
158
+  0, 63, 128, 32, 128, 36, 128, 36, 128, 255, 224, 11, 11, 22, 12, 0,
159
+  255, 34, 0, 79, 224, 72, 32, 79, 224, 200, 0, 79, 224, 74, 160, 90,
160
+  160, 111, 224, 74, 160, 72, 96, 11, 11, 22, 12, 0, 255, 243, 192, 36,
161
+  64, 42, 128, 241, 0, 34, 128, 101, 224, 114, 32, 165, 64, 32, 128, 35,
162
+  0, 44, 0, 11, 11, 22, 12, 0, 255, 4, 0, 255, 224, 128, 32, 0,
163
+  0, 255, 224, 4, 0, 36, 0, 39, 192, 36, 0, 84, 0, 143, 224, 11,
164
+  11, 22, 12, 0, 255, 115, 224, 16, 128, 81, 0, 35, 224, 250, 32, 42,
165
+  160, 34, 160, 34, 160, 32, 128, 33, 64, 98, 32, 11, 11, 22, 12, 0,
166
+  255, 34, 0, 247, 128, 34, 128, 54, 128, 226, 160, 37, 160, 36, 96, 104,
167
+  32, 0, 0, 82, 64, 137, 32, 11, 11, 22, 12, 0, 255, 115, 192, 66,
168
+  0, 66, 0, 123, 224, 74, 64, 74, 64, 122, 64, 74, 64, 66, 64, 68,
169
+  64, 136, 64, 11, 11, 22, 12, 0, 255, 8, 0, 255, 224, 8, 0, 31,
170
+  192, 48, 64, 95, 192, 144, 64, 31, 192, 16, 64, 16, 64, 16, 192, 11,
171
+  11, 22, 12, 0, 255, 2, 0, 127, 224, 66, 0, 66, 0, 95, 192, 66,
172
+  0, 71, 0, 74, 128, 82, 64, 98, 32, 130, 0, 11, 11, 22, 12, 0,
173
+  255, 243, 192, 150, 64, 145, 128, 166, 96, 161, 0, 151, 192, 145, 0, 149,
174
+  0, 231, 224, 129, 0, 129, 0, 11, 11, 22, 12, 0, 255, 15, 128, 136,
175
+  128, 79, 128, 8, 128, 143, 128, 64, 0, 31, 192, 53, 64, 85, 64, 149,
176
+  64, 63, 224, 11, 11, 22, 12, 0, 255, 39, 224, 32, 128, 248, 128, 32,
177
+  128, 32, 128, 56, 128, 224, 128, 32, 128, 32, 128, 32, 128, 97, 128, 11,
178
+  11, 22, 12, 0, 255, 31, 224, 145, 0, 87, 192, 20, 64, 23, 192, 148,
179
+  64, 87, 192, 17, 0, 85, 64, 153, 32, 35, 0, 11, 11, 22, 12, 0,
180
+  255, 32, 128, 39, 224, 242, 64, 33, 128, 34, 64, 52, 32, 226, 64, 34,
181
+  64, 34, 64, 34, 64, 100, 64, 11, 11, 22, 12, 0, 255, 65, 0, 65,
182
+  0, 79, 224, 233, 32, 73, 32, 73, 32, 111, 224, 201, 32, 73, 32, 73,
183
+  32, 207, 224, 11, 11, 22, 12, 0, 255, 33, 0, 241, 0, 79, 224, 169,
184
+  32, 249, 32, 47, 224, 57, 32, 233, 32, 41, 32, 47, 224, 40, 32, 11,
185
+  11, 22, 12, 0, 255, 143, 224, 73, 32, 9, 32, 203, 160, 73, 32, 79,
186
+  224, 72, 32, 75, 160, 74, 160, 107, 160, 80, 224, 11, 11, 22, 12, 0,
187
+  255, 127, 192, 4, 0, 68, 64, 36, 64, 36, 128, 4, 0, 255, 224, 4,
188
+  0, 4, 0, 4, 0, 4, 0, 11, 11, 22, 12, 0, 255, 130, 0, 66,
189
+  0, 31, 224, 194, 0, 95, 192, 82, 64, 95, 192, 71, 0, 74, 128, 82,
190
+  64, 191, 224, 11, 11, 22, 12, 0, 255, 4, 0, 127, 224, 72, 128, 127,
191
+  224, 72, 128, 79, 128, 64, 0, 95, 192, 72, 64, 71, 128, 152, 96, 11,
192
+  11, 22, 12, 0, 255, 1, 0, 239, 224, 161, 0, 164, 64, 175, 224, 164,
193
+  64, 175, 224, 169, 32, 233, 32, 2, 128, 12, 96, 11, 11, 22, 12, 0,
194
+  255, 20, 192, 246, 160, 188, 96, 167, 128, 168, 128, 191, 224, 169, 32, 239,
195
+  224, 9, 32, 15, 224, 9, 32, 11, 11, 22, 12, 0, 255, 127, 128, 64,
196
+  128, 66, 128, 98, 128, 84, 128, 72, 128, 72, 128, 84, 160, 98, 160, 64,
197
+  96, 128, 32, 11, 11, 22, 12, 0, 255, 4, 0, 127, 224, 64, 32, 127,
198
+  224, 64, 0, 125, 224, 84, 32, 76, 160, 84, 96, 100, 160, 141, 96, 11,
199
+  11, 22, 12, 0, 255, 130, 0, 95, 224, 4, 0, 8, 64, 159, 224, 64,
200
+  32, 10, 128, 10, 128, 74, 160, 146, 160, 34, 96, 11, 11, 22, 12, 0,
201
+  255, 65, 0, 79, 224, 232, 32, 66, 128, 68, 64, 104, 32, 199, 192, 65,
202
+  0, 65, 0, 65, 0, 207, 224, 11, 11, 22, 12, 0, 255, 80, 32, 125,
203
+  32, 145, 32, 255, 32, 17, 32, 125, 32, 85, 32, 85, 32, 84, 32, 92,
204
+  32, 16, 224, 11, 11, 22, 12, 0, 255, 63, 128, 32, 128, 63, 128, 32,
205
+  128, 255, 224, 72, 0, 123, 192, 73, 64, 121, 64, 72, 128, 251, 96, 11,
206
+  11, 22, 12, 0, 255, 4, 0, 4, 0, 4, 0, 36, 128, 36, 64, 68,
207
+  64, 68, 32, 132, 32, 4, 0, 4, 0, 28, 0, 11, 11, 22, 12, 0,
208
+  255, 4, 0, 4, 0, 4, 0, 255, 224, 4, 0, 10, 0, 10, 0, 17,
209
+  0, 17, 0, 32, 128, 192, 96, 9, 10, 20, 10, 0, 0, 136, 128, 73,
210
+  0, 8, 0, 255, 128, 0, 128, 0, 128, 127, 128, 0, 128, 0, 128, 255,
211
+  128, 11, 11, 22, 12, 0, 255, 33, 0, 18, 0, 255, 224, 0, 0, 120,
212
+  128, 74, 128, 122, 128, 74, 128, 122, 128, 72, 128, 89, 128, 11, 11, 22,
213
+  12, 0, 255, 39, 192, 0, 0, 0, 0, 239, 224, 33, 0, 34, 0, 36,
214
+  64, 47, 224, 32, 32, 80, 0, 143, 224, 11, 11, 22, 12, 0, 255, 32,
215
+  128, 39, 0, 249, 0, 33, 192, 119, 0, 33, 0, 249, 224, 39, 0, 113,
216
+  32, 169, 32, 32, 224, 11, 11, 22, 12, 0, 255, 16, 64, 16, 64, 253,
217
+  224, 16, 64, 56, 192, 53, 64, 82, 64, 148, 64, 16, 64, 16, 64, 16,
218
+  192, 11, 11, 22, 12, 0, 255, 0, 64, 248, 64, 11, 224, 8, 64, 136,
219
+  64, 82, 64, 81, 64, 33, 64, 80, 64, 72, 64, 137, 192, 10, 11, 22,
220
+  12, 0, 255, 132, 0, 132, 64, 132, 128, 245, 0, 134, 0, 132, 0, 132,
221
+  0, 148, 0, 164, 64, 196, 64, 131, 192, 11, 11, 22, 12, 0, 255, 17,
222
+  32, 125, 0, 17, 0, 255, 224, 41, 0, 253, 64, 73, 64, 124, 128, 8,
223
+  160, 253, 96, 10, 32, 11, 11, 22, 12, 0, 255, 23, 192, 36, 64, 36,
224
+  64, 103, 192, 161, 0, 47, 224, 33, 0, 35, 128, 37, 64, 41, 32, 33,
225
+  0, 11, 11, 22, 12, 0, 255, 8, 0, 255, 224, 16, 0, 39, 192, 32,
226
+  128, 97, 0, 175, 224, 33, 0, 33, 0, 33, 0, 35, 0, 11, 11, 22,
227
+  12, 0, 255, 36, 0, 47, 224, 180, 0, 164, 128, 164, 160, 170, 192, 42,
228
+  128, 40, 128, 41, 64, 50, 64, 36, 32, 11, 11, 22, 12, 0, 255, 127,
229
+  224, 128, 0, 63, 192, 32, 64, 63, 192, 16, 0, 31, 192, 16, 64, 40,
230
+  128, 71, 0, 56, 224, 11, 11, 22, 12, 0, 255, 127, 224, 64, 0, 64,
231
+  0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 64, 0, 128,
232
+  0, 11, 11, 22, 12, 0, 255, 255, 224, 4, 0, 127, 192, 68, 64, 127,
233
+  192, 68, 64, 127, 192, 68, 0, 36, 0, 24, 0, 231, 224, 11, 11, 22,
234
+  12, 0, 255, 17, 224, 253, 0, 69, 0, 41, 224, 253, 64, 17, 64, 125,
235
+  64, 17, 64, 85, 64, 146, 64, 52, 64, 11, 11, 22, 12, 0, 255, 33,
236
+  0, 95, 224, 64, 0, 207, 192, 64, 0, 79, 192, 64, 0, 79, 192, 72,
237
+  64, 79, 192, 72, 64, 11, 11, 22, 12, 0, 255, 4, 0, 127, 192, 64,
238
+  64, 127, 192, 64, 64, 127, 192, 64, 64, 127, 192, 4, 64, 82, 32, 191,
239
+  160, 11, 11, 22, 12, 0, 255, 127, 192, 68, 64, 127, 192, 68, 64, 127,
240
+  192, 4, 0, 27, 0, 224, 224, 17, 0, 17, 0, 97, 0, 11, 11, 22,
241
+  12, 0, 255, 255, 224, 4, 0, 8, 0, 127, 224, 73, 32, 79, 32, 73,
242
+  32, 79, 32, 73, 32, 73, 32, 127, 224, 11, 11, 22, 12, 0, 255, 253,
243
+  224, 86, 64, 121, 64, 56, 128, 85, 64, 146, 32, 255, 224, 4, 0, 39,
244
+  192, 36, 0, 255, 224, 11, 11, 22, 12, 0, 255, 251, 128, 82, 0, 123,
245
+  224, 18, 64, 250, 64, 20, 64, 63, 128, 32, 128, 63, 128, 32, 128, 63,
246
+  128, 11, 11, 22, 12, 0, 255, 31, 224, 32, 0, 39, 192, 100, 64, 167,
247
+  192, 32, 0, 47, 224, 40, 32, 39, 192, 33, 0, 35, 0, 11, 11, 22,
248
+  12, 0, 255, 243, 224, 130, 32, 130, 32, 250, 32, 130, 32, 130, 32, 138,
249
+  32, 178, 32, 194, 224, 2, 0, 2, 0, 11, 11, 22, 12, 0, 255, 36,
250
+  128, 70, 160, 149, 192, 228, 128, 39, 224, 68, 128, 245, 192, 6, 160, 52,
251
+  128, 196, 128, 7, 224, 11, 11, 22, 12, 0, 255, 39, 192, 65, 0, 135,
252
+  224, 224, 32, 34, 128, 69, 128, 242, 128, 15, 224, 48, 128, 193, 64, 2,
253
+  32, 11, 11, 22, 12, 0, 255, 2, 0, 2, 0, 34, 0, 35, 192, 34,
254
+  0, 34, 0, 34, 0, 34, 0, 34, 0, 34, 0, 255, 224, 9, 11, 22,
255
+  12, 0, 255, 8, 0, 8, 0, 255, 128, 136, 128, 136, 128, 136, 128, 255,
256
+  128, 136, 128, 136, 128, 136, 128, 255, 128, 11, 11, 22, 12, 0, 255, 33,
257
+  0, 83, 160, 65, 0, 247, 224, 81, 0, 83, 192, 86, 64, 83, 192, 90,
258
+  64, 83, 192, 66, 64, 11, 11, 22, 12, 0, 255, 127, 192, 4, 0, 4,
259
+  0, 4, 0, 255, 224, 10, 0, 10, 0, 18, 0, 34, 32, 66, 32, 129,
260
+  224, 11, 11, 22, 12, 0, 255, 17, 0, 33, 0, 47, 224, 97, 0, 163,
261
+  128, 35, 128, 37, 64, 37, 64, 41, 32, 33, 0, 33, 0, 11, 11, 22,
262
+  12, 0, 255, 247, 224, 148, 32, 244, 32, 151, 224, 148, 128, 244, 128, 151,
263
+  224, 148, 128, 244, 160, 150, 96, 4, 32, 11, 11, 22, 12, 0, 255, 123,
264
+  224, 148, 128, 4, 0, 127, 192, 4, 0, 255, 224, 1, 0, 255, 224, 33,
265
+  0, 17, 0, 7, 0, 11, 11, 22, 12, 0, 255, 33, 0, 71, 192, 145,
266
+  0, 47, 224, 96, 128, 175, 224, 32, 128, 36, 128, 34, 128, 32, 128, 35,
267
+  128, 11, 11, 22, 12, 0, 255, 39, 192, 36, 64, 247, 192, 46, 224, 42,
268
+  160, 62, 224, 225, 0, 47, 224, 35, 128, 37, 64, 105, 32, 11, 11, 22,
269
+  12, 0, 255, 20, 0, 39, 224, 42, 0, 98, 0, 163, 192, 34, 0, 34,
270
+  0, 35, 224, 34, 0, 34, 0, 34, 0
271
+};

+ 161
- 160
Marlin/dogm_font_data_ISO10646_Kana.h View File

@@ -11,163 +11,164 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t ISO10646_Kana_5x7[2549] U8G_SECTION(".progmem.ISO10646_Kana_5x7") = {
14
-  0,6,9,0,254,7,1,145,3,32,32,255,255,8,255,7,
15
-  255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
16
-  128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
17
-  0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
18
-  120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
19
-  64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
20
-  2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
21
-  64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
22
-  32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
23
-  5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
24
-  64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
25
-  192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
26
-  0,0,112,136,152,168,200,136,112,3,7,7,6,1,0,64,
27
-  192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
28
-  128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
29
-  5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
30
-  6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
31
-  48,64,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
32
-  32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
33
-  112,5,7,7,6,0,0,112,136,136,120,8,16,96,2,5,
34
-  5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
35
-  192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
36
-  32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
37
-  0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
38
-  8,16,32,0,32,5,6,6,6,0,0,112,136,8,104,168,
39
-  112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,7,
40
-  7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,0,
41
-  0,112,136,128,128,128,136,112,5,7,7,6,0,0,224,144,
42
-  136,136,136,144,224,5,7,7,6,0,0,248,128,128,240,128,
43
-  128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,5,
44
-  7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,6,
45
-  0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,128,
46
-  128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,16,
47
-  16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,136,
48
-  5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,7,
49
-  6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,0,
50
-  136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,136,
51
-  136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,128,
52
-  128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,7,
53
-  7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,0,
54
-  0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,32,
55
-  32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,136,
56
-  136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,5,
57
-  7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,6,
58
-  0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,136,
59
-  136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,32,
60
-  64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,224,
61
-  5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,1,
62
-  0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,80,
63
-  136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,64,
64
-  5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,0,
65
-  0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,128,
66
-  128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,120,
67
-  5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,0,
68
-  0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,136,
69
-  136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,136,
70
-  136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,8,
71
-  8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,6,
72
-  0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,192,
73
-  64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,168,
74
-  168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,6,
75
-  0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,136,
76
-  240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,5,
77
-  5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,0,
78
-  112,128,112,8,240,5,7,7,6,0,0,64,64,224,64,64,
79
-  72,48,5,5,5,6,0,0,136,136,136,152,104,5,5,5,
80
-  6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,136,
81
-  168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,6,
82
-  6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,0,
83
-  248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,64,
84
-  64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,3,
85
-  7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,6,
86
-  0,3,104,144,0,0,0,6,0,0,0,0,0,6,0,0,
87
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
88
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
89
-  0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
90
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
91
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
92
-  0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
93
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
94
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
95
-  0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0,
96
-  0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
97
-  0,0,0,0,0,6,0,0,0,0,0,6,0,0,0,0,
98
-  0,6,0,0,0,0,0,6,0,0,5,3,3,6,0,2,
99
-  248,0,248,5,6,6,6,0,0,248,8,40,48,32,64,5,
100
-  7,7,6,0,0,248,8,40,48,32,32,64,4,5,5,6,
101
-  0,0,16,32,96,160,32,5,7,7,6,0,0,8,16,32,
102
-  96,160,32,32,5,5,5,6,0,0,32,248,136,8,48,5,
103
-  7,7,6,0,0,32,248,136,136,8,16,32,5,4,4,6,
104
-  0,0,248,32,32,248,5,6,6,6,0,0,248,32,32,32,
105
-  32,248,5,5,5,6,0,0,16,248,48,80,144,5,7,7,
106
-  6,0,0,16,248,16,48,80,144,16,5,5,5,6,0,0,
107
-  64,248,72,80,64,5,7,7,6,0,0,40,0,64,248,72,
108
-  80,64,5,7,7,6,0,0,32,248,32,248,32,32,32,5,
109
-  8,8,6,0,0,40,0,32,248,32,248,32,32,4,6,6,
110
-  6,0,0,64,112,144,16,16,32,5,8,8,6,0,0,40,
111
-  0,64,112,144,16,16,32,5,6,6,6,0,0,64,120,144,
112
-  16,16,32,5,8,8,6,0,0,40,0,64,120,144,16,16,
113
-  32,5,5,5,6,0,0,248,8,8,8,248,5,7,7,6,
114
-  0,0,40,0,248,8,8,8,248,5,7,7,6,0,255,80,
115
-  248,80,80,16,32,64,5,9,9,6,0,255,40,0,80,248,
116
-  80,80,16,32,64,5,6,6,6,0,0,192,8,200,8,16,
117
-  224,5,8,8,6,0,0,40,0,192,8,200,8,16,224,5,
118
-  6,6,6,0,0,248,8,16,32,80,136,5,8,8,6,0,
119
-  0,40,0,248,8,16,32,80,136,5,6,6,6,0,0,64,
120
-  248,72,80,64,120,5,8,8,6,0,0,40,0,64,248,72,
121
-  80,64,120,4,4,4,6,0,1,16,208,16,224,5,7,7,
122
-  6,0,0,40,0,8,200,8,16,224,5,7,7,6,0,255,
123
-  32,120,136,40,16,40,64,5,9,9,6,0,255,40,0,32,
124
-  120,136,40,16,40,64,5,6,6,6,0,0,240,32,248,32,
125
-  64,128,5,8,8,6,0,0,40,0,240,32,248,32,64,128,
126
-  4,5,5,6,0,1,192,16,208,16,224,5,6,6,6,0,
127
-  0,192,8,200,8,16,224,5,8,8,6,0,0,40,0,192,
128
-  8,200,8,16,224,5,6,6,6,0,0,112,0,248,32,32,
129
-  64,5,8,8,6,0,0,40,0,112,0,248,32,32,64,3,
130
-  7,7,6,1,0,128,128,128,192,160,128,128,4,8,8,6,
131
-  1,0,80,0,128,128,192,160,128,128,5,7,7,6,0,0,
132
-  32,32,248,32,32,64,128,5,6,6,6,0,0,112,0,0,
133
-  0,0,248,5,6,6,6,0,0,248,8,80,32,80,128,5,
134
-  7,7,6,0,255,32,248,8,16,32,112,168,3,7,7,6,
135
-  1,0,32,32,32,32,32,64,128,5,5,5,6,0,0,16,
136
-  136,136,136,136,5,7,7,6,0,0,40,0,16,136,136,136,
137
-  136,5,8,8,6,0,0,24,24,0,16,136,136,136,136,5,
138
-  7,7,6,0,0,128,128,248,128,128,128,120,5,8,8,6,
139
-  0,0,40,128,128,248,128,128,128,120,5,8,8,6,0,0,
140
-  24,152,128,248,128,128,128,120,5,6,6,6,0,0,248,8,
141
-  8,8,16,96,5,8,8,6,0,0,40,0,248,8,8,8,
142
-  16,96,5,8,8,6,0,0,24,24,248,8,8,8,16,96,
143
-  5,5,5,6,0,1,64,160,16,8,8,5,7,7,6,0,
144
-  1,40,0,64,160,16,8,8,5,7,7,6,0,1,24,24,
145
-  64,160,16,8,8,5,6,6,6,0,0,32,248,32,32,168,
146
-  168,5,8,8,6,0,0,40,0,32,248,32,32,168,168,5,
147
-  8,8,6,0,0,24,24,32,248,32,32,168,168,5,6,6,
148
-  6,0,0,248,8,8,80,32,16,4,6,6,6,1,0,224,
149
-  0,224,0,224,16,5,6,6,6,0,0,32,64,128,144,248,
150
-  8,5,6,6,6,0,0,8,8,80,32,80,128,5,6,6,
151
-  6,0,0,120,32,248,32,32,56,5,7,7,6,0,0,64,
152
-  64,248,72,80,64,64,5,7,7,6,0,0,64,248,72,80,
153
-  64,64,64,5,5,5,6,0,0,112,16,16,16,248,5,7,
154
-  7,6,0,0,112,16,16,16,16,16,248,4,5,5,6,1,
155
-  0,240,16,240,16,240,5,7,7,6,0,0,248,8,8,248,
156
-  8,8,248,5,6,6,6,0,0,112,0,248,8,16,32,3,
157
-  6,6,6,1,0,160,160,160,160,32,64,5,6,6,6,0,
158
-  0,80,80,80,80,88,144,4,6,6,6,1,0,128,128,128,
159
-  144,160,192,5,6,6,6,0,0,248,136,136,136,248,136,5,
160
-  5,5,6,0,0,248,136,8,16,96,5,6,6,6,0,0,
161
-  248,136,8,8,16,96,5,6,6,6,0,0,16,248,80,80,
162
-  248,16,5,6,6,6,0,0,248,8,80,96,64,248,5,6,
163
-  6,6,0,0,248,8,248,8,16,32,5,6,6,6,0,0,
164
-  128,64,8,8,16,224,5,8,8,6,0,0,40,0,32,248,
165
-  136,8,24,32,5,6,6,6,0,0,64,248,72,72,136,144,
166
-  4,5,5,6,1,0,128,240,160,32,32,5,8,8,6,0,
167
-  0,40,0,248,136,8,8,16,96,5,8,8,6,0,0,40,
168
-  0,16,248,80,80,248,16,5,7,7,6,0,0,40,0,248,
169
-  16,32,32,248,5,8,8,6,0,0,40,0,248,8,248,8,
170
-  16,32,2,2,2,6,2,2,192,192,5,1,1,6,0,3,
171
-  248,5,5,5,6,0,1,128,64,32,16,8,5,6,6,6,
172
-  0,1,40,128,64,32,16,8,5,7,7,6,0,0,248,8,
173
-  8,8,8,8,8};
14
+  0, 6, 9, 0, 254, 7, 1, 145, 3, 32, 32, 255, 255, 8, 255, 7,
15
+  255, 0, 0, 0, 6, 0, 0, 1, 7, 7, 6, 2, 0, 128, 128, 128,
16
+  128, 128, 0, 128, 3, 2, 2, 6, 1, 5, 160, 160, 5, 7, 7, 6,
17
+  0, 0, 80, 80, 248, 80, 248, 80, 80, 5, 7, 7, 6, 0, 0, 32,
18
+  120, 160, 112, 40, 240, 32, 5, 7, 7, 6, 0, 0, 192, 200, 16, 32,
19
+  64, 152, 24, 5, 7, 7, 6, 0, 0, 96, 144, 160, 64, 168, 144, 104,
20
+  2, 3, 3, 6, 1, 4, 192, 64, 128, 3, 7, 7, 6, 1, 0, 32,
21
+  64, 128, 128, 128, 64, 32, 3, 7, 7, 6, 1, 0, 128, 64, 32, 32,
22
+  32, 64, 128, 5, 5, 5, 6, 0, 1, 32, 168, 112, 168, 32, 5, 5,
23
+  5, 6, 0, 1, 32, 32, 248, 32, 32, 2, 3, 3, 6, 2, 255, 192,
24
+  64, 128, 5, 1, 1, 6, 0, 3, 248, 2, 2, 2, 6, 2, 0, 192,
25
+  192, 5, 5, 5, 6, 0, 1, 8, 16, 32, 64, 128, 5, 7, 7, 6,
26
+  0, 0, 112, 136, 152, 168, 200, 136, 112, 3, 7, 7, 6, 1, 0, 64,
27
+  192, 64, 64, 64, 64, 224, 5, 7, 7, 6, 0, 0, 112, 136, 8, 112,
28
+  128, 128, 248, 5, 7, 7, 6, 0, 0, 248, 16, 32, 16, 8, 8, 240,
29
+  5, 7, 7, 6, 0, 0, 16, 48, 80, 144, 248, 16, 16, 5, 7, 7,
30
+  6, 0, 0, 248, 128, 240, 8, 8, 136, 112, 5, 7, 7, 6, 0, 0,
31
+  48, 64, 128, 240, 136, 136, 112, 5, 7, 7, 6, 0, 0, 248, 8, 16,
32
+  32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 112, 136, 136, 112, 136, 136,
33
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 120, 8, 16, 96, 2, 5,
34
+  5, 6, 2, 0, 192, 192, 0, 192, 192, 2, 6, 6, 6, 2, 255, 192,
35
+  192, 0, 192, 64, 128, 4, 7, 7, 6, 0, 0, 16, 32, 64, 128, 64,
36
+  32, 16, 5, 3, 3, 6, 0, 2, 248, 0, 248, 4, 7, 7, 6, 1,
37
+  0, 128, 64, 32, 16, 32, 64, 128, 5, 7, 7, 6, 0, 0, 112, 136,
38
+  8, 16, 32, 0, 32, 5, 6, 6, 6, 0, 0, 112, 136, 8, 104, 168,
39
+  112, 5, 7, 7, 6, 0, 0, 112, 136, 136, 248, 136, 136, 136, 5, 7,
40
+  7, 6, 0, 0, 240, 136, 136, 240, 136, 136, 240, 5, 7, 7, 6, 0,
41
+  0, 112, 136, 128, 128, 128, 136, 112, 5, 7, 7, 6, 0, 0, 224, 144,
42
+  136, 136, 136, 144, 224, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128,
43
+  128, 248, 5, 7, 7, 6, 0, 0, 248, 128, 128, 240, 128, 128, 128, 5,
44
+  7, 7, 6, 0, 0, 112, 136, 128, 184, 136, 136, 112, 5, 7, 7, 6,
45
+  0, 0, 136, 136, 136, 248, 136, 136, 136, 1, 7, 7, 6, 2, 0, 128,
46
+  128, 128, 128, 128, 128, 128, 5, 7, 7, 6, 0, 0, 56, 16, 16, 16,
47
+  16, 144, 96, 5, 7, 7, 6, 0, 0, 136, 144, 160, 192, 160, 144, 136,
48
+  5, 7, 7, 6, 0, 0, 128, 128, 128, 128, 128, 128, 248, 5, 7, 7,
49
+  6, 0, 0, 136, 216, 168, 136, 136, 136, 136, 5, 7, 7, 6, 0, 0,
50
+  136, 136, 200, 168, 152, 136, 136, 5, 7, 7, 6, 0, 0, 112, 136, 136,
51
+  136, 136, 136, 112, 5, 7, 7, 6, 0, 0, 240, 136, 136, 240, 128, 128,
52
+  128, 5, 7, 7, 6, 0, 0, 112, 136, 136, 136, 168, 144, 104, 5, 7,
53
+  7, 6, 0, 0, 240, 136, 136, 240, 160, 144, 136, 5, 7, 7, 6, 0,
54
+  0, 120, 128, 128, 112, 8, 8, 240, 5, 7, 7, 6, 0, 0, 248, 32,
55
+  32, 32, 32, 32, 32, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136,
56
+  136, 112, 5, 7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 80, 32, 5,
57
+  7, 7, 6, 0, 0, 136, 136, 136, 136, 136, 168, 80, 5, 7, 7, 6,
58
+  0, 0, 136, 136, 80, 32, 80, 136, 136, 5, 7, 7, 6, 0, 0, 136,
59
+  136, 136, 80, 32, 32, 32, 5, 7, 7, 6, 0, 0, 248, 8, 16, 32,
60
+  64, 128, 248, 3, 7, 7, 6, 1, 0, 224, 128, 128, 128, 128, 128, 224,
61
+  5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 3, 7, 7, 6, 1,
62
+  0, 224, 32, 32, 32, 32, 32, 224, 5, 3, 3, 6, 0, 4, 32, 80,
63
+  136, 5, 1, 1, 6, 0, 0, 248, 2, 2, 2, 6, 2, 5, 128, 64,
64
+  5, 5, 5, 6, 0, 0, 112, 8, 120, 136, 120, 5, 7, 7, 6, 0,
65
+  0, 128, 128, 176, 200, 136, 136, 240, 5, 5, 5, 6, 0, 0, 112, 128,
66
+  128, 136, 112, 5, 7, 7, 6, 0, 0, 8, 8, 104, 152, 136, 136, 120,
67
+  5, 5, 5, 6, 0, 0, 112, 136, 248, 128, 112, 5, 7, 7, 6, 0,
68
+  0, 48, 72, 224, 64, 64, 64, 64, 5, 6, 6, 6, 0, 255, 112, 136,
69
+  136, 120, 8, 112, 5, 7, 7, 6, 0, 0, 128, 128, 176, 200, 136, 136,
70
+  136, 1, 7, 7, 6, 2, 0, 128, 0, 128, 128, 128, 128, 128, 3, 8,
71
+  8, 6, 1, 255, 32, 0, 32, 32, 32, 32, 160, 64, 4, 7, 7, 6,
72
+  0, 0, 128, 128, 144, 160, 192, 160, 144, 3, 7, 7, 6, 1, 0, 192,
73
+  64, 64, 64, 64, 64, 224, 5, 5, 5, 6, 0, 0, 208, 168, 168, 168,
74
+  168, 5, 5, 5, 6, 0, 0, 176, 200, 136, 136, 136, 5, 5, 5, 6,
75
+  0, 0, 112, 136, 136, 136, 112, 5, 6, 6, 6, 0, 255, 240, 136, 136,
76
+  240, 128, 128, 5, 6, 6, 6, 0, 255, 120, 136, 136, 120, 8, 8, 5,
77
+  5, 5, 6, 0, 0, 176, 200, 128, 128, 128, 5, 5, 5, 6, 0, 0,
78
+  112, 128, 112, 8, 240, 5, 7, 7, 6, 0, 0, 64, 64, 224, 64, 64,
79
+  72, 48, 5, 5, 5, 6, 0, 0, 136, 136, 136, 152, 104, 5, 5, 5,
80
+  6, 0, 0, 136, 136, 136, 80, 32, 5, 5, 5, 6, 0, 0, 136, 136,
81
+  168, 168, 80, 5, 5, 5, 6, 0, 0, 136, 80, 32, 80, 136, 5, 6,
82
+  6, 6, 0, 255, 136, 136, 136, 120, 8, 112, 5, 5, 5, 6, 0, 0,
83
+  248, 16, 32, 64, 248, 3, 7, 7, 6, 1, 0, 32, 64, 64, 128, 64,
84
+  64, 32, 1, 7, 7, 6, 2, 0, 128, 128, 128, 128, 128, 128, 128, 3,
85
+  7, 7, 6, 1, 0, 128, 64, 64, 32, 64, 64, 128, 5, 2, 2, 6,
86
+  0, 3, 104, 144, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
87
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
88
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
89
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
90
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
91
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
92
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
93
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
94
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
95
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0,
96
+  0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
97
+  0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
98
+  0, 6, 0, 0, 0, 0, 0, 6, 0, 0, 5, 3, 3, 6, 0, 2,
99
+  248, 0, 248, 5, 6, 6, 6, 0, 0, 248, 8, 40, 48, 32, 64, 5,
100
+  7, 7, 6, 0, 0, 248, 8, 40, 48, 32, 32, 64, 4, 5, 5, 6,
101
+  0, 0, 16, 32, 96, 160, 32, 5, 7, 7, 6, 0, 0, 8, 16, 32,
102
+  96, 160, 32, 32, 5, 5, 5, 6, 0, 0, 32, 248, 136, 8, 48, 5,
103
+  7, 7, 6, 0, 0, 32, 248, 136, 136, 8, 16, 32, 5, 4, 4, 6,
104
+  0, 0, 248, 32, 32, 248, 5, 6, 6, 6, 0, 0, 248, 32, 32, 32,
105
+  32, 248, 5, 5, 5, 6, 0, 0, 16, 248, 48, 80, 144, 5, 7, 7,
106
+  6, 0, 0, 16, 248, 16, 48, 80, 144, 16, 5, 5, 5, 6, 0, 0,
107
+  64, 248, 72, 80, 64, 5, 7, 7, 6, 0, 0, 40, 0, 64, 248, 72,
108
+  80, 64, 5, 7, 7, 6, 0, 0, 32, 248, 32, 248, 32, 32, 32, 5,
109
+  8, 8, 6, 0, 0, 40, 0, 32, 248, 32, 248, 32, 32, 4, 6, 6,
110
+  6, 0, 0, 64, 112, 144, 16, 16, 32, 5, 8, 8, 6, 0, 0, 40,
111
+  0, 64, 112, 144, 16, 16, 32, 5, 6, 6, 6, 0, 0, 64, 120, 144,
112
+  16, 16, 32, 5, 8, 8, 6, 0, 0, 40, 0, 64, 120, 144, 16, 16,
113
+  32, 5, 5, 5, 6, 0, 0, 248, 8, 8, 8, 248, 5, 7, 7, 6,
114
+  0, 0, 40, 0, 248, 8, 8, 8, 248, 5, 7, 7, 6, 0, 255, 80,
115
+  248, 80, 80, 16, 32, 64, 5, 9, 9, 6, 0, 255, 40, 0, 80, 248,
116
+  80, 80, 16, 32, 64, 5, 6, 6, 6, 0, 0, 192, 8, 200, 8, 16,
117
+  224, 5, 8, 8, 6, 0, 0, 40, 0, 192, 8, 200, 8, 16, 224, 5,
118
+  6, 6, 6, 0, 0, 248, 8, 16, 32, 80, 136, 5, 8, 8, 6, 0,
119
+  0, 40, 0, 248, 8, 16, 32, 80, 136, 5, 6, 6, 6, 0, 0, 64,
120
+  248, 72, 80, 64, 120, 5, 8, 8, 6, 0, 0, 40, 0, 64, 248, 72,
121
+  80, 64, 120, 4, 4, 4, 6, 0, 1, 16, 208, 16, 224, 5, 7, 7,
122
+  6, 0, 0, 40, 0, 8, 200, 8, 16, 224, 5, 7, 7, 6, 0, 255,
123
+  32, 120, 136, 40, 16, 40, 64, 5, 9, 9, 6, 0, 255, 40, 0, 32,
124
+  120, 136, 40, 16, 40, 64, 5, 6, 6, 6, 0, 0, 240, 32, 248, 32,
125
+  64, 128, 5, 8, 8, 6, 0, 0, 40, 0, 240, 32, 248, 32, 64, 128,
126
+  4, 5, 5, 6, 0, 1, 192, 16, 208, 16, 224, 5, 6, 6, 6, 0,
127
+  0, 192, 8, 200, 8, 16, 224, 5, 8, 8, 6, 0, 0, 40, 0, 192,
128
+  8, 200, 8, 16, 224, 5, 6, 6, 6, 0, 0, 112, 0, 248, 32, 32,
129
+  64, 5, 8, 8, 6, 0, 0, 40, 0, 112, 0, 248, 32, 32, 64, 3,
130
+  7, 7, 6, 1, 0, 128, 128, 128, 192, 160, 128, 128, 4, 8, 8, 6,
131
+  1, 0, 80, 0, 128, 128, 192, 160, 128, 128, 5, 7, 7, 6, 0, 0,
132
+  32, 32, 248, 32, 32, 64, 128, 5, 6, 6, 6, 0, 0, 112, 0, 0,
133
+  0, 0, 248, 5, 6, 6, 6, 0, 0, 248, 8, 80, 32, 80, 128, 5,
134
+  7, 7, 6, 0, 255, 32, 248, 8, 16, 32, 112, 168, 3, 7, 7, 6,
135
+  1, 0, 32, 32, 32, 32, 32, 64, 128, 5, 5, 5, 6, 0, 0, 16,
136
+  136, 136, 136, 136, 5, 7, 7, 6, 0, 0, 40, 0, 16, 136, 136, 136,
137
+  136, 5, 8, 8, 6, 0, 0, 24, 24, 0, 16, 136, 136, 136, 136, 5,
138
+  7, 7, 6, 0, 0, 128, 128, 248, 128, 128, 128, 120, 5, 8, 8, 6,
139
+  0, 0, 40, 128, 128, 248, 128, 128, 128, 120, 5, 8, 8, 6, 0, 0,
140
+  24, 152, 128, 248, 128, 128, 128, 120, 5, 6, 6, 6, 0, 0, 248, 8,
141
+  8, 8, 16, 96, 5, 8, 8, 6, 0, 0, 40, 0, 248, 8, 8, 8,
142
+  16, 96, 5, 8, 8, 6, 0, 0, 24, 24, 248, 8, 8, 8, 16, 96,
143
+  5, 5, 5, 6, 0, 1, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0,
144
+  1, 40, 0, 64, 160, 16, 8, 8, 5, 7, 7, 6, 0, 1, 24, 24,
145
+  64, 160, 16, 8, 8, 5, 6, 6, 6, 0, 0, 32, 248, 32, 32, 168,
146
+  168, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248, 32, 32, 168, 168, 5,
147
+  8, 8, 6, 0, 0, 24, 24, 32, 248, 32, 32, 168, 168, 5, 6, 6,
148
+  6, 0, 0, 248, 8, 8, 80, 32, 16, 4, 6, 6, 6, 1, 0, 224,
149
+  0, 224, 0, 224, 16, 5, 6, 6, 6, 0, 0, 32, 64, 128, 144, 248,
150
+  8, 5, 6, 6, 6, 0, 0, 8, 8, 80, 32, 80, 128, 5, 6, 6,
151
+  6, 0, 0, 120, 32, 248, 32, 32, 56, 5, 7, 7, 6, 0, 0, 64,
152
+  64, 248, 72, 80, 64, 64, 5, 7, 7, 6, 0, 0, 64, 248, 72, 80,
153
+  64, 64, 64, 5, 5, 5, 6, 0, 0, 112, 16, 16, 16, 248, 5, 7,
154
+  7, 6, 0, 0, 112, 16, 16, 16, 16, 16, 248, 4, 5, 5, 6, 1,
155
+  0, 240, 16, 240, 16, 240, 5, 7, 7, 6, 0, 0, 248, 8, 8, 248,
156
+  8, 8, 248, 5, 6, 6, 6, 0, 0, 112, 0, 248, 8, 16, 32, 3,
157
+  6, 6, 6, 1, 0, 160, 160, 160, 160, 32, 64, 5, 6, 6, 6, 0,
158
+  0, 80, 80, 80, 80, 88, 144, 4, 6, 6, 6, 1, 0, 128, 128, 128,
159
+  144, 160, 192, 5, 6, 6, 6, 0, 0, 248, 136, 136, 136, 248, 136, 5,
160
+  5, 5, 6, 0, 0, 248, 136, 8, 16, 96, 5, 6, 6, 6, 0, 0,
161
+  248, 136, 8, 8, 16, 96, 5, 6, 6, 6, 0, 0, 16, 248, 80, 80,
162
+  248, 16, 5, 6, 6, 6, 0, 0, 248, 8, 80, 96, 64, 248, 5, 6,
163
+  6, 6, 0, 0, 248, 8, 248, 8, 16, 32, 5, 6, 6, 6, 0, 0,
164
+  128, 64, 8, 8, 16, 224, 5, 8, 8, 6, 0, 0, 40, 0, 32, 248,
165
+  136, 8, 24, 32, 5, 6, 6, 6, 0, 0, 64, 248, 72, 72, 136, 144,
166
+  4, 5, 5, 6, 1, 0, 128, 240, 160, 32, 32, 5, 8, 8, 6, 0,
167
+  0, 40, 0, 248, 136, 8, 8, 16, 96, 5, 8, 8, 6, 0, 0, 40,
168
+  0, 16, 248, 80, 80, 248, 16, 5, 7, 7, 6, 0, 0, 40, 0, 248,
169
+  16, 32, 32, 248, 5, 8, 8, 6, 0, 0, 40, 0, 248, 8, 248, 8,
170
+  16, 32, 2, 2, 2, 6, 2, 2, 192, 192, 5, 1, 1, 6, 0, 3,
171
+  248, 5, 5, 5, 6, 0, 1, 128, 64, 32, 16, 8, 5, 6, 6, 6,
172
+  0, 1, 40, 128, 64, 32, 16, 8, 5, 7, 7, 6, 0, 0, 248, 8,
173
+  8, 8, 8, 8, 8
174
+};

+ 10
- 9
Marlin/dogm_font_data_Marlin_symbols.h View File

@@ -11,12 +11,13 @@
11 11
 */
12 12
 #include <U8glib.h>
13 13
 const u8g_fntpgm_uint8_t Marlin_symbols[140] U8G_SECTION(".progmem.Marlin_symbols") = {
14
-  0,6,9,0,254,0,0,0,0,0,1,9,0,8,254,0,
15
-  0,5,8,8,6,0,0,64,240,200,136,136,152,120,16,5,
16
-  8,8,6,0,0,192,248,136,136,136,136,136,248,5,5,5,
17
-  6,0,1,32,48,248,48,32,5,8,8,6,0,0,32,112,
18
-  248,32,32,32,32,224,5,9,9,6,0,255,32,112,168,168,
19
-  184,136,136,112,32,5,9,9,6,0,255,224,128,192,176,168,
20
-  40,48,40,40,5,9,9,6,0,255,248,168,136,136,136,136,
21
-  136,168,248,5,10,10,6,0,254,32,80,80,80,80,136,168,
22
-  168,136,112,3,3,3,6,0,3,64,160,64};
14
+  0, 6, 9, 0, 254, 0, 0, 0, 0, 0, 1, 9, 0, 8, 254, 0,
15
+  0, 5, 8, 8, 6, 0, 0, 64, 240, 200, 136, 136, 152, 120, 16, 5,
16
+  8, 8, 6, 0, 0, 192, 248, 136, 136, 136, 136, 136, 248, 5, 5, 5,
17
+  6, 0, 1, 32, 48, 248, 48, 32, 5, 8, 8, 6, 0, 0, 32, 112,
18
+  248, 32, 32, 32, 32, 224, 5, 9, 9, 6, 0, 255, 32, 112, 168, 168,
19
+  184, 136, 136, 112, 32, 5, 9, 9, 6, 0, 255, 224, 128, 192, 176, 168,
20
+  40, 48, 40, 40, 5, 9, 9, 6, 0, 255, 248, 168, 136, 136, 136, 136,
21
+  136, 168, 248, 5, 10, 10, 6, 0, 254, 32, 80, 80, 80, 80, 136, 168,
22
+  168, 136, 112, 3, 3, 3, 6, 0, 3, 64, 160, 64
23
+};

+ 36
- 36
Marlin/dogm_lcd_implementation.h View File

@@ -36,7 +36,7 @@
36 36
 #include "Configuration.h"
37 37
 
38 38
 #if DISABLED(MAPPER_C2C3) && DISABLED(MAPPER_NON) && ENABLED(USE_BIG_EDIT_FONT)
39
-   #undef USE_BIG_EDIT_FONT
39
+  #undef USE_BIG_EDIT_FONT
40 40
 #endif
41 41
 
42 42
 
@@ -203,11 +203,11 @@ static void lcd_implementation_init() {
203 203
   #endif
204 204
 
205 205
   #if ENABLED(LCD_PIN_RESET)
206
-    pinMode(LCD_PIN_RESET, OUTPUT);           
206
+    pinMode(LCD_PIN_RESET, OUTPUT);
207 207
     digitalWrite(LCD_PIN_RESET, HIGH);
208 208
   #endif
209 209
   #if DISABLED(MINIPANEL) // setContrast not working for Mini Panel
210
-    u8g.setContrast(lcd_contrast);	
210
+    u8g.setContrast(lcd_contrast);
211 211
   #endif
212 212
   // FIXME: remove this workaround
213 213
   // Uncomment this if you have the first generation (V1.10) of STBs board
@@ -230,7 +230,7 @@ static void lcd_implementation_init() {
230 230
       int offy = DOG_CHAR_HEIGHT;
231 231
     #endif
232 232
 
233
-    int txt1X = (u8g.getWidth() - (sizeof(STRING_SPLASH_LINE1) - 1)*DOG_CHAR_WIDTH) / 2;
233
+    int txt1X = (u8g.getWidth() - (sizeof(STRING_SPLASH_LINE1) - 1) * DOG_CHAR_WIDTH) / 2;
234 234
 
235 235
     u8g.firstPage();
236 236
     do {
@@ -240,9 +240,9 @@ static void lcd_implementation_init() {
240 240
         #ifndef STRING_SPLASH_LINE2
241 241
           u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT, STRING_SPLASH_LINE1);
242 242
         #else
243
-          int txt2X = (u8g.getWidth() - (sizeof(STRING_SPLASH_LINE2) - 1)*DOG_CHAR_WIDTH) / 2;
244
-          u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT*3/2, STRING_SPLASH_LINE1);
245
-          u8g.drawStr(txt2X, u8g.getHeight() - DOG_CHAR_HEIGHT*1/2, STRING_SPLASH_LINE2);
243
+          int txt2X = (u8g.getWidth() - (sizeof(STRING_SPLASH_LINE2) - 1) * DOG_CHAR_WIDTH) / 2;
244
+          u8g.drawStr(txt1X, u8g.getHeight() - DOG_CHAR_HEIGHT * 3 / 2, STRING_SPLASH_LINE1);
245
+          u8g.drawStr(txt2X, u8g.getHeight() - DOG_CHAR_HEIGHT * 1 / 2, STRING_SPLASH_LINE2);
246 246
         #endif
247 247
       }
248 248
     } while (u8g.nextPage());
@@ -261,10 +261,10 @@ static void _draw_heater_status(int x, int heater) {
261 261
   int y = 17 + (isBed ? 1 : 0);
262 262
 
263 263
   lcd_setFont(FONT_STATUSMENU);
264
-  u8g.setPrintPos(x,7);
264
+  u8g.setPrintPos(x, 7);
265 265
   lcd_print(itostr3(int((heater >= 0 ? degTargetHotend(heater) : degTargetBed()) + 0.5)));
266 266
   lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
267
-  u8g.setPrintPos(x,28);
267
+  u8g.setPrintPos(x, 28);
268 268
   lcd_print(itostr3(int(heater >= 0 ? degHotend(heater) : degBed()) + 0.5));
269 269
 
270 270
   lcd_printPGM(PSTR(LCD_STR_DEGREE " "));
@@ -273,7 +273,7 @@ static void _draw_heater_status(int x, int heater) {
273 273
   }
274 274
   else {
275 275
     u8g.setColorIndex(0); // white on black
276
-    u8g.drawBox(x+7,y,2,2);
276
+    u8g.drawBox(x + 7, y, 2, 2);
277 277
     u8g.setColorIndex(1); // black on white
278 278
   }
279 279
 }
@@ -283,7 +283,7 @@ static void lcd_implementation_status_screen() {
283 283
 
284 284
   // Symbols menu graphics, animated fan
285 285
   u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp);
286
- 
286
+
287 287
   #if ENABLED(SDSUPPORT)
288 288
     // SD Card Symbol
289 289
     u8g.drawBox(42, 42 - TALL_FONT_CORRECTION, 8, 7);
@@ -296,7 +296,7 @@ static void lcd_implementation_status_screen() {
296 296
 
297 297
     // SD Card Progress bar and clock
298 298
     lcd_setFont(FONT_STATUSMENU);
299
- 
299
+
300 300
     if (IS_SD_PRINTING) {
301 301
       // Progress bar solid part
302 302
       u8g.drawBox(55, 50, (unsigned int)(71.f * card.percentDone() / 100.f), 2 - TALL_FONT_CORRECTION);
@@ -315,14 +315,14 @@ static void lcd_implementation_status_screen() {
315 315
   #endif
316 316
 
317 317
   // Extruders
318
-  for (int i=0; i<EXTRUDERS; i++) _draw_heater_status(6 + i * 25, i);
318
+  for (int i = 0; i < EXTRUDERS; i++) _draw_heater_status(6 + i * 25, i);
319 319
 
320 320
   // Heatbed
321 321
   if (EXTRUDERS < 4) _draw_heater_status(81, -1);
322 322
 
323 323
   // Fan
324 324
   lcd_setFont(FONT_STATUSMENU);
325
-  u8g.setPrintPos(104,27);
325
+  u8g.setPrintPos(104, 27);
326 326
   #if HAS_FAN
327 327
     int per = ((fanSpeed + 1) * 100) / 256;
328 328
     if (per) {
@@ -340,55 +340,55 @@ static void lcd_implementation_status_screen() {
340 340
   lcd_setFont(FONT_STATUSMENU);
341 341
 
342 342
   #if ENABLED(USE_SMALL_INFOFONT)
343
-    u8g.drawBox(0,30,LCD_PIXEL_WIDTH,10);
343
+    u8g.drawBox(0, 30, LCD_PIXEL_WIDTH, 10);
344 344
   #else
345
-    u8g.drawBox(0,30,LCD_PIXEL_WIDTH,9);
345
+    u8g.drawBox(0, 30, LCD_PIXEL_WIDTH, 9);
346 346
   #endif
347 347
   u8g.setColorIndex(0); // white on black
348
-  u8g.setPrintPos(2,XYZ_BASELINE);
348
+  u8g.setPrintPos(2, XYZ_BASELINE);
349 349
   lcd_print('X');
350
-  u8g.drawPixel(8,XYZ_BASELINE - 5);
351
-  u8g.drawPixel(8,XYZ_BASELINE - 3);
352
-  u8g.setPrintPos(10,XYZ_BASELINE);
350
+  u8g.drawPixel(8, XYZ_BASELINE - 5);
351
+  u8g.drawPixel(8, XYZ_BASELINE - 3);
352
+  u8g.setPrintPos(10, XYZ_BASELINE);
353 353
   if (axis_known_position[X_AXIS])
354 354
     lcd_print(ftostr31ns(current_position[X_AXIS]));
355 355
   else
356 356
     lcd_printPGM(PSTR("---"));
357
-  u8g.setPrintPos(43,XYZ_BASELINE);
357
+  u8g.setPrintPos(43, XYZ_BASELINE);
358 358
   lcd_print('Y');
359
-  u8g.drawPixel(49,XYZ_BASELINE - 5);
360
-  u8g.drawPixel(49,XYZ_BASELINE - 3);
361
-  u8g.setPrintPos(51,XYZ_BASELINE);
359
+  u8g.drawPixel(49, XYZ_BASELINE - 5);
360
+  u8g.drawPixel(49, XYZ_BASELINE - 3);
361
+  u8g.setPrintPos(51, XYZ_BASELINE);
362 362
   if (axis_known_position[Y_AXIS])
363 363
     lcd_print(ftostr31ns(current_position[Y_AXIS]));
364 364
   else
365 365
     lcd_printPGM(PSTR("---"));
366
-  u8g.setPrintPos(83,XYZ_BASELINE);
366
+  u8g.setPrintPos(83, XYZ_BASELINE);
367 367
   lcd_print('Z');
368
-  u8g.drawPixel(89,XYZ_BASELINE - 5);
369
-  u8g.drawPixel(89,XYZ_BASELINE - 3);
370
-  u8g.setPrintPos(91,XYZ_BASELINE);
368
+  u8g.drawPixel(89, XYZ_BASELINE - 5);
369
+  u8g.drawPixel(89, XYZ_BASELINE - 3);
370
+  u8g.setPrintPos(91, XYZ_BASELINE);
371 371
   if (axis_known_position[Z_AXIS])
372 372
     lcd_print(ftostr32sp(current_position[Z_AXIS]));
373 373
   else
374 374
     lcd_printPGM(PSTR("---.--"));
375 375
   u8g.setColorIndex(1); // black on white
376
- 
376
+
377 377
   // Feedrate
378 378
   lcd_setFont(FONT_MENU);
379
-  u8g.setPrintPos(3,49);
379
+  u8g.setPrintPos(3, 49);
380 380
   lcd_print(LCD_STR_FEEDRATE[0]);
381 381
   lcd_setFont(FONT_STATUSMENU);
382
-  u8g.setPrintPos(12,49);
382
+  u8g.setPrintPos(12, 49);
383 383
   lcd_print(itostr3(feedrate_multiplier));
384 384
   lcd_print('%');
385 385
 
386 386
   // Status line
387 387
   lcd_setFont(FONT_STATUSMENU);
388 388
   #if ENABLED(USE_SMALL_INFOFONT)
389
-    u8g.setPrintPos(0,62);
389
+    u8g.setPrintPos(0, 62);
390 390
   #else
391
-    u8g.setPrintPos(0,63);
391
+    u8g.setPrintPos(0, 63);
392 392
   #endif
393 393
   #if DISABLED(FILAMENT_LCD_DISPLAY)
394 394
     lcd_print(lcd_status_message);
@@ -429,7 +429,7 @@ static void lcd_implementation_drawmenu_generic(bool isSelected, uint8_t row, co
429 429
     pstr++;
430 430
   }
431 431
   while (n--) lcd_print(' ');
432
-    u8g.setPrintPos(LCD_PIXEL_WIDTH - DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
432
+  u8g.setPrintPos(LCD_PIXEL_WIDTH - DOG_CHAR_WIDTH, (row + 1) * DOG_CHAR_HEIGHT);
433 433
   lcd_print(post_char);
434 434
   lcd_print(' ');
435 435
 }
@@ -448,7 +448,7 @@ static void _drawmenu_setting_edit_generic(bool isSelected, uint8_t row, const c
448 448
   lcd_print(':');
449 449
   while (n--) lcd_print(' ');
450 450
   u8g.setPrintPos(LCD_PIXEL_WIDTH - DOG_CHAR_WIDTH * vallen, (row + 1) * DOG_CHAR_HEIGHT);
451
-  if (pgm) { lcd_printPGM(data); } else { lcd_print((char *)data); }
451
+  if (pgm)  lcd_printPGM(data);  else  lcd_print((char*)data);
452 452
 }
453 453
 
454 454
 #define lcd_implementation_drawmenu_setting_edit_generic(sel, row, pstr, data) _drawmenu_setting_edit_generic(sel, row, pstr, data, false)
@@ -506,7 +506,7 @@ void lcd_implementation_drawedit(const char* pstr, char* value) {
506 506
 
507 507
 #if ENABLED(SDSUPPORT)
508 508
 
509
-  static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char * const longFilename, bool isDir) {
509
+  static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char* const longFilename, bool isDir) {
510 510
     char c;
511 511
     uint8_t n = LCD_WIDTH - 1;
512 512
 

+ 3918
- 3918
Marlin/fastio.h
File diff suppressed because it is too large
View File


+ 2
- 2
Marlin/fonts/README.fonts View File

@@ -1,4 +1,4 @@
1
-The fonts are created with Fony.exe (http://hukka.ncn.fi/?fony) because Fontforge didn't do what I want (probably lack off experience). 
1
+The fonts are created with Fony.exe (http://hukka.ncn.fi/?fony) because Fontforge didn't do what I want (probably lack of experience).
2 2
 In Fony export the fonts to bdf-format. Maybe another one can edit them with Fontforge.
3 3
 Then run make_fonts.bat what calls bdf2u8g.exe with the needed parameters to produce the .h files.
4 4
 The .h files must be edited to replace '#include "u8g.h"' with '#include <utility/u8g.h>', replace 'U8G_FONT_SECTION' with 'U8G_SECTION', insert '.progmem.' right behind the first '"' and moved to the main directory.
@@ -6,7 +6,7 @@ The .h files must be edited to replace '#include "u8g.h"' with '#include <utilit
6 6
 How to integrate a new font:
7 7
 Currently we are limited to 256 symbols per font. We use a menu system with 5 lines, on a display with 64 pixel height. That means we have 12 pixel for a line. To have some space in between the lines we can't use more then 10 pixel height for the symbols. For up to 11 pixel set TALL_FONT_CORRECTION 1 when loading the font.
8 8
 To fit 22 Symbols on the 128 pixel wide screen, the symbols can't be wider than 5 pixel, for the first 128 symbols.
9
-For the second half of the font we now support up to 11x11 pixel. 
9
+For the second half of the font we now support up to 11x11 pixel.
10 10
 
11 11
  * Get 'Fony.exe'
12 12
  * Copy one of the existing *.fon files and work with this.

+ 3
- 3
Marlin/language.h View File

@@ -81,8 +81,8 @@
81 81
   #error BUILD_VERSION Information must be specified
82 82
 #endif
83 83
 
84
-#ifndef MACHINE_UUID
85
-   #define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
84
+#ifndef UUID
85
+  #define UUID "00000000-0000-0000-0000-000000000000"
86 86
 #endif
87 87
 
88 88
 
@@ -122,7 +122,7 @@
122 122
 #define MSG_INVALID_EXTRUDER                "Invalid extruder"
123 123
 #define MSG_INVALID_SOLENOID                "Invalid solenoid"
124 124
 #define MSG_ERR_NO_THERMISTORS              "No thermistors - no temperature"
125
-#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID "\n"
125
+#define MSG_M115_REPORT                     "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" UUID "\n"
126 126
 #define MSG_COUNT_X                         " Count X: "
127 127
 #define MSG_ERR_KILLED                      "Printer halted. kill() called!"
128 128
 #define MSG_ERR_STOPPED                     "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"

+ 5
- 5
Marlin/language_an.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutes"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
129
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
128
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
129
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_AN_H

+ 5
- 5
Marlin/language_bg.h View File

@@ -126,11 +126,11 @@
126 126
 #define MSG_END_MINUTE                      "минути"
127 127
 
128 128
 #if ENABLED(DELTA_CALIBRATION_MENU)
129
-    #define MSG_DELTA_CALIBRATE             "Делта Калибровка"
130
-    #define MSG_DELTA_CALIBRATE_X           "Калибровка X"
131
-    #define MSG_DELTA_CALIBRATE_Y           "Калибровка Y"
132
-    #define MSG_DELTA_CALIBRATE_Z           "Калибровка Z"
133
-    #define MSG_DELTA_CALIBRATE_CENTER      "Калибровка Център"
129
+  #define MSG_DELTA_CALIBRATE               "Делта Калибровка"
130
+  #define MSG_DELTA_CALIBRATE_X             "Калибровка X"
131
+  #define MSG_DELTA_CALIBRATE_Y             "Калибровка Y"
132
+  #define MSG_DELTA_CALIBRATE_Z             "Калибровка Z"
133
+  #define MSG_DELTA_CALIBRATE_CENTER        "Калибровка Център"
134 134
 #endif // DELTA_CALIBRATION_MENU
135 135
 
136 136
 #endif // LANGUAGE_BG_H

+ 5
- 5
Marlin/language_ca.h View File

@@ -126,11 +126,11 @@
126 126
 #define MSG_END_MINUTE                      "minutes"
127 127
 
128 128
 #if ENABLED(DELTA_CALIBRATION_MENU)
129
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
130
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
131
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
132
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
133
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
129
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
130
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
131
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
132
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
133
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
134 134
 #endif // DELTA_CALIBRATION_MENU
135 135
 
136 136
 #endif // LANGUAGE_CA_H

+ 127
- 127
Marlin/language_cn.h View File

@@ -8,135 +8,135 @@
8 8
 #ifndef LANGUAGE_CN_H
9 9
 #define LANGUAGE_CN_H
10 10
 
11
-  #define MAPPER_NON         // For direct asci codes
12
-  #define DISPLAY_CHARSET_ISO10646_CN
11
+#define MAPPER_NON         // For direct asci codes
12
+#define DISPLAY_CHARSET_ISO10646_CN
13 13
 
14
-  #define WELCOME_MSG                         "\xa4\xa5\xa6\xa7"
15
-  #define MSG_SD_INSERTED                     "\xa8\xa9\xaa\xab"
16
-  #define MSG_SD_REMOVED                      "\xa8\xa9\xac\xad"
17
-  #define MSG_MAIN                            "\xae\xaf\xb0"
18
-  #define MSG_AUTOSTART                       "\xb1\xb2\xb3\xb4"
19
-  #define MSG_DISABLE_STEPPERS                "\xb5\xb6\xb7\xb8\xb9\xba"
20
-  #define MSG_AUTO_HOME                       "\xbb\xbc\xbd"
21
-  #define MSG_SET_HOME_OFFSETS                "\xbe\xbf\xbb\xbc\xbd\xc0\xc1"
22
-  #define MSG_SET_ORIGIN                      "\xbe\xbf\xbc\xbd"
23
-  #define MSG_PREHEAT_PLA                     "\xc3\xc4 PLA"
24
-  #define MSG_PREHEAT_PLA_N                   MSG_PREHEAT_PLA " "
25
-  #define MSG_PREHEAT_PLA_ALL                 MSG_PREHEAT_PLA " \xc5\xc6"
26
-  #define MSG_PREHEAT_PLA_BEDONLY             MSG_PREHEAT_PLA " \xc4\xc7"
27
-  #define MSG_PREHEAT_PLA_SETTINGS            MSG_PREHEAT_PLA " \xbe\xbf"
28
-  #define MSG_PREHEAT_ABS                     "\xc3\xc4 ABS"
29
-  #define MSG_PREHEAT_ABS_N                   MSG_PREHEAT_ABS " "
30
-  #define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " \xc5\xc6"
31
-  #define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " \xbe\xc6"
32
-  #define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " \xbe\xbf"
33
-  #define MSG_COOLDOWN                        "\xc8\xc9"
34
-  #define MSG_SWITCH_PS_ON                    "\xb9\xcb\xca\xb3"
35
-  #define MSG_SWITCH_PS_OFF                   "\xb9\xcb\xb5\xb6"
36
-  #define MSG_EXTRUDE                         "\xcc\xad"
37
-  #define MSG_RETRACT                         "\xbb\xcd"
38
-  #define MSG_MOVE_AXIS                       "\xc1\xb2\xce"
39
-  #define MSG_LEVEL_BED                       "\xcf\xe0\xc4\xc7"
40
-  #define MSG_MOVE_X                          "\xc1\xb2 X"
41
-  #define MSG_MOVE_Y                          "\xc1\xb2 Y"
42
-  #define MSG_MOVE_Z                          "\xc1\xb2 Z"
43
-  #define MSG_MOVE_E                          "\xcc\xad\xba"
44
-  #define MSG_MOVE_01MM                       "\xc1\xb2 0.1mm"
45
-  #define MSG_MOVE_1MM                        "\xc1\xb2 1mm"
46
-  #define MSG_MOVE_10MM                       "\xc1\xb2 10mm"
47
-  #define MSG_SPEED                           "\xd1\xd2"
48
-  #define MSG_NOZZLE                          "\xd3\xd4"
49
-  #define MSG_BED                             "\xc4\xc7"
50
-  #define MSG_FAN_SPEED                       "\xd5\xd6\xd1\xd2"
51
-  #define MSG_FLOW                            "\xcc\xad\xd1\xd2"
52
-  #define MSG_CONTROL                         "\xd8\xd9"
53
-  #define MSG_MIN                             LCD_STR_THERMOMETER " \xda\xdb"
54
-  #define MSG_MAX                             LCD_STR_THERMOMETER " \xda\xdc"
55
-  #define MSG_FACTOR                          LCD_STR_THERMOMETER " \xdd\xde"
56
-  #define MSG_AUTOTEMP                        "\xb1\xb2\xd8\xc9"
57
-  #define MSG_ON                              "\xb3 "  // intentional space to shift wide symbol to the left
58
-  #define MSG_OFF                             "\xb5 "  // intentional space to shift wide symbol to the left
59
-  #define MSG_PID_P                           "PID-P"
60
-  #define MSG_PID_I                           "PID-I"
61
-  #define MSG_PID_D                           "PID-D"
62
-  #define MSG_PID_C                           "PID-C"
63
-  #define MSG_ACC                             "Accel"
64
-  #define MSG_VXY_JERK                        "Vxy-jerk"
65
-  #define MSG_VZ_JERK                         "Vz-jerk"
66
-  #define MSG_VE_JERK                         "Ve-jerk"
67
-  #define MSG_VMAX                            "Vmax "
68
-  #define MSG_X                               "x"
69
-  #define MSG_Y                               "y"
70
-  #define MSG_Z                               "z"
71
-  #define MSG_E                               "e"
72
-  #define MSG_VMIN                            "Vmin"
73
-  #define MSG_VTRAV_MIN                       "VTrav min"
74
-  #define MSG_AMAX                            "Amax "
75
-  #define MSG_A_RETRACT                       "A-retract"
76
-  #define MSG_A_TRAVEL                        "A-travel"
77
-  #define MSG_XSTEPS                          "Xsteps/mm"
78
-  #define MSG_YSTEPS                          "Ysteps/mm"
79
-  #define MSG_ZSTEPS                          "Zsteps/mm"
80
-  #define MSG_ESTEPS                          "Esteps/mm"
81
-  #define MSG_TEMPERATURE                     "\xc9\xd2"
82
-  #define MSG_MOTION                          "\xdf\xb2"
83
-  #define MSG_VOLUMETRIC                      "Filament"
84
-  #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
85
-  #define MSG_FILAMENT_DIAM                   "Fil. Dia."
86
-  #define MSG_CONTRAST                        "LCD contrast"
87
-  #define MSG_STORE_EPROM                     "Store memory"
88
-  #define MSG_LOAD_EPROM                      "Load memory"
89
-  #define MSG_RESTORE_FAILSAFE                "Restore failsafe"
90
-  #define MSG_REFRESH                         "Refresh"
91
-  #define MSG_WATCH                           "\xec\xed\xee\xef"
92
-  #define MSG_PREPARE                         "\xa4\xa5"
93
-  #define MSG_TUNE                            "\xcf\xf0"
94
-  #define MSG_PAUSE_PRINT                     "\xf1\xf2\xca\xf3"
95
-  #define MSG_RESUME_PRINT                    "\xf4\xf5\xca\xf3"
96
-  #define MSG_STOP_PRINT                      "\xf2\xf6\xca\xf3"
97
-  #define MSG_CARD_MENU                       "\xaf\xb0"
98
-  #define MSG_NO_CARD                         "\xf9\xa8"
99
-  #define MSG_DWELL                           "Sleep..."
100
-  #define MSG_USERWAIT                        "Wait for user..."
101
-  #define MSG_RESUMING                        "Resuming print"
102
-  #define MSG_PRINT_ABORTED                   "Print aborted"
103
-  #define MSG_NO_MOVE                         "No move."
104
-  #define MSG_KILLED                          "KILLED. "
105
-  #define MSG_STOPPED                         "STOPPED. "
106
-  #define MSG_CONTROL_RETRACT                 "Retract mm"
107
-  #define MSG_CONTROL_RETRACT_SWAP            "Swap Re.mm"
108
-  #define MSG_CONTROL_RETRACTF                "Retract  V"
109
-  #define MSG_CONTROL_RETRACT_ZLIFT           "Hop mm"
110
-  #define MSG_CONTROL_RETRACT_RECOVER         "UnRet +mm"
111
-  #define MSG_CONTROL_RETRACT_RECOVER_SWAP    "S UnRet+mm"
112
-  #define MSG_CONTROL_RETRACT_RECOVERF        "UnRet  V"
113
-  #define MSG_AUTORETRACT                     "AutoRetr."
114
-  #define MSG_FILAMENTCHANGE                  "Change filament"
115
-  #define MSG_INIT_SDCARD                     "Init. SD card"
116
-  #define MSG_CNG_SDCARD                      "Change SD card"
117
-  #define MSG_ZPROBE_OUT                      "Z probe out. bed"
118
-  #define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
119
-  #define MSG_ZPROBE_ZOFFSET                  "Z Offset"
120
-  #define MSG_BABYSTEP_X                      "Babystep X"
121
-  #define MSG_BABYSTEP_Y                      "Babystep Y"
122
-  #define MSG_BABYSTEP_Z                      "Babystep Z"
123
-  #define MSG_ENDSTOP_ABORT                   "Endstop abort"
124
-  #define MSG_HEATING_FAILED_LCD              "Heating failed"
125
-  #define MSG_ERR_REDUNDANT_TEMP              "Err: REDUNDANT TEMP ERROR"
126
-  #define MSG_THERMAL_RUNAWAY                 "THERMAL RUNAWAY"
127
-  #define MSG_ERR_MAXTEMP                     "Err: MAXTEMP"
128
-  #define MSG_ERR_MINTEMP                     "Err: MINTEMP"
129
-  #define MSG_ERR_MAXTEMP_BED                 "Err: MAXTEMP BED"
130
-  #define MSG_END_HOUR                        "hours"
131
-  #define MSG_END_MINUTE                      "minutes"
14
+#define WELCOME_MSG                         "\xa4\xa5\xa6\xa7"
15
+#define MSG_SD_INSERTED                     "\xa8\xa9\xaa\xab"
16
+#define MSG_SD_REMOVED                      "\xa8\xa9\xac\xad"
17
+#define MSG_MAIN                            "\xae\xaf\xb0"
18
+#define MSG_AUTOSTART                       "\xb1\xb2\xb3\xb4"
19
+#define MSG_DISABLE_STEPPERS                "\xb5\xb6\xb7\xb8\xb9\xba"
20
+#define MSG_AUTO_HOME                       "\xbb\xbc\xbd"
21
+#define MSG_SET_HOME_OFFSETS                "\xbe\xbf\xbb\xbc\xbd\xc0\xc1"
22
+#define MSG_SET_ORIGIN                      "\xbe\xbf\xbc\xbd"
23
+#define MSG_PREHEAT_PLA                     "\xc3\xc4 PLA"
24
+#define MSG_PREHEAT_PLA_N                   MSG_PREHEAT_PLA " "
25
+#define MSG_PREHEAT_PLA_ALL                 MSG_PREHEAT_PLA " \xc5\xc6"
26
+#define MSG_PREHEAT_PLA_BEDONLY             MSG_PREHEAT_PLA " \xc4\xc7"
27
+#define MSG_PREHEAT_PLA_SETTINGS            MSG_PREHEAT_PLA " \xbe\xbf"
28
+#define MSG_PREHEAT_ABS                     "\xc3\xc4 ABS"
29
+#define MSG_PREHEAT_ABS_N                   MSG_PREHEAT_ABS " "
30
+#define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " \xc5\xc6"
31
+#define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " \xbe\xc6"
32
+#define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " \xbe\xbf"
33
+#define MSG_COOLDOWN                        "\xc8\xc9"
34
+#define MSG_SWITCH_PS_ON                    "\xb9\xcb\xca\xb3"
35
+#define MSG_SWITCH_PS_OFF                   "\xb9\xcb\xb5\xb6"
36
+#define MSG_EXTRUDE                         "\xcc\xad"
37
+#define MSG_RETRACT                         "\xbb\xcd"
38
+#define MSG_MOVE_AXIS                       "\xc1\xb2\xce"
39
+#define MSG_LEVEL_BED                       "\xcf\xe0\xc4\xc7"
40
+#define MSG_MOVE_X                          "\xc1\xb2 X"
41
+#define MSG_MOVE_Y                          "\xc1\xb2 Y"
42
+#define MSG_MOVE_Z                          "\xc1\xb2 Z"
43
+#define MSG_MOVE_E                          "\xcc\xad\xba"
44
+#define MSG_MOVE_01MM                       "\xc1\xb2 0.1mm"
45
+#define MSG_MOVE_1MM                        "\xc1\xb2 1mm"
46
+#define MSG_MOVE_10MM                       "\xc1\xb2 10mm"
47
+#define MSG_SPEED                           "\xd1\xd2"
48
+#define MSG_NOZZLE                          "\xd3\xd4"
49
+#define MSG_BED                             "\xc4\xc7"
50
+#define MSG_FAN_SPEED                       "\xd5\xd6\xd1\xd2"
51
+#define MSG_FLOW                            "\xcc\xad\xd1\xd2"
52
+#define MSG_CONTROL                         "\xd8\xd9"
53
+#define MSG_MIN                             LCD_STR_THERMOMETER " \xda\xdb"
54
+#define MSG_MAX                             LCD_STR_THERMOMETER " \xda\xdc"
55
+#define MSG_FACTOR                          LCD_STR_THERMOMETER " \xdd\xde"
56
+#define MSG_AUTOTEMP                        "\xb1\xb2\xd8\xc9"
57
+#define MSG_ON                              "\xb3 "  // intentional space to shift wide symbol to the left
58
+#define MSG_OFF                             "\xb5 "  // intentional space to shift wide symbol to the left
59
+#define MSG_PID_P                           "PID-P"
60
+#define MSG_PID_I                           "PID-I"
61
+#define MSG_PID_D                           "PID-D"
62
+#define MSG_PID_C                           "PID-C"
63
+#define MSG_ACC                             "Accel"
64
+#define MSG_VXY_JERK                        "Vxy-jerk"
65
+#define MSG_VZ_JERK                         "Vz-jerk"
66
+#define MSG_VE_JERK                         "Ve-jerk"
67
+#define MSG_VMAX                            "Vmax "
68
+#define MSG_X                               "x"
69
+#define MSG_Y                               "y"
70
+#define MSG_Z                               "z"
71
+#define MSG_E                               "e"
72
+#define MSG_VMIN                            "Vmin"
73
+#define MSG_VTRAV_MIN                       "VTrav min"
74
+#define MSG_AMAX                            "Amax "
75
+#define MSG_A_RETRACT                       "A-retract"
76
+#define MSG_A_TRAVEL                        "A-travel"
77
+#define MSG_XSTEPS                          "Xsteps/mm"
78
+#define MSG_YSTEPS                          "Ysteps/mm"
79
+#define MSG_ZSTEPS                          "Zsteps/mm"
80
+#define MSG_ESTEPS                          "Esteps/mm"
81
+#define MSG_TEMPERATURE                     "\xc9\xd2"
82
+#define MSG_MOTION                          "\xdf\xb2"
83
+#define MSG_VOLUMETRIC                      "Filament"
84
+#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
85
+#define MSG_FILAMENT_DIAM                   "Fil. Dia."
86
+#define MSG_CONTRAST                        "LCD contrast"
87
+#define MSG_STORE_EPROM                     "Store memory"
88
+#define MSG_LOAD_EPROM                      "Load memory"
89
+#define MSG_RESTORE_FAILSAFE                "Restore failsafe"
90
+#define MSG_REFRESH                         "Refresh"
91
+#define MSG_WATCH                           "\xec\xed\xee\xef"
92
+#define MSG_PREPARE                         "\xa4\xa5"
93
+#define MSG_TUNE                            "\xcf\xf0"
94
+#define MSG_PAUSE_PRINT                     "\xf1\xf2\xca\xf3"
95
+#define MSG_RESUME_PRINT                    "\xf4\xf5\xca\xf3"
96
+#define MSG_STOP_PRINT                      "\xf2\xf6\xca\xf3"
97
+#define MSG_CARD_MENU                       "\xaf\xb0"
98
+#define MSG_NO_CARD                         "\xf9\xa8"
99
+#define MSG_DWELL                           "Sleep..."
100
+#define MSG_USERWAIT                        "Wait for user..."
101
+#define MSG_RESUMING                        "Resuming print"
102
+#define MSG_PRINT_ABORTED                   "Print aborted"
103
+#define MSG_NO_MOVE                         "No move."
104
+#define MSG_KILLED                          "KILLED. "
105
+#define MSG_STOPPED                         "STOPPED. "
106
+#define MSG_CONTROL_RETRACT                 "Retract mm"
107
+#define MSG_CONTROL_RETRACT_SWAP            "Swap Re.mm"
108
+#define MSG_CONTROL_RETRACTF                "Retract  V"
109
+#define MSG_CONTROL_RETRACT_ZLIFT           "Hop mm"
110
+#define MSG_CONTROL_RETRACT_RECOVER         "UnRet +mm"
111
+#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "S UnRet+mm"
112
+#define MSG_CONTROL_RETRACT_RECOVERF        "UnRet  V"
113
+#define MSG_AUTORETRACT                     "AutoRetr."
114
+#define MSG_FILAMENTCHANGE                  "Change filament"
115
+#define MSG_INIT_SDCARD                     "Init. SD card"
116
+#define MSG_CNG_SDCARD                      "Change SD card"
117
+#define MSG_ZPROBE_OUT                      "Z probe out. bed"
118
+#define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
119
+#define MSG_ZPROBE_ZOFFSET                  "Z Offset"
120
+#define MSG_BABYSTEP_X                      "Babystep X"
121
+#define MSG_BABYSTEP_Y                      "Babystep Y"
122
+#define MSG_BABYSTEP_Z                      "Babystep Z"
123
+#define MSG_ENDSTOP_ABORT                   "Endstop abort"
124
+#define MSG_HEATING_FAILED_LCD              "Heating failed"
125
+#define MSG_ERR_REDUNDANT_TEMP              "Err: REDUNDANT TEMP ERROR"
126
+#define MSG_THERMAL_RUNAWAY                 "THERMAL RUNAWAY"
127
+#define MSG_ERR_MAXTEMP                     "Err: MAXTEMP"
128
+#define MSG_ERR_MINTEMP                     "Err: MINTEMP"
129
+#define MSG_ERR_MAXTEMP_BED                 "Err: MAXTEMP BED"
130
+#define MSG_END_HOUR                        "hours"
131
+#define MSG_END_MINUTE                      "minutes"
132 132
 
133
-  #if ENABLED(DELTA_CALIBRATION_MENU)
134
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
135
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
136
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
137
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
138
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
139
-  #endif // DELTA_CALIBRATION_MENU
133
+#if ENABLED(DELTA_CALIBRATION_MENU)
134
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
135
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
136
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
137
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
138
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
139
+#endif // DELTA_CALIBRATION_MENU
140 140
 
141 141
 #endif // LANGUAGE_CN_H
142 142
 

+ 5
- 5
Marlin/language_da.h View File

@@ -131,11 +131,11 @@
131 131
 #define MSG_ENDSTOP_ABORT                   "Endstop abort"
132 132
 
133 133
 #ifdef DELTA_CALIBRATION_MENU
134
-    #define MSG_DELTA_CALIBRATE             "Delta Kalibrering"
135
-    #define MSG_DELTA_CALIBRATE_X           "Kalibrer X"
136
-    #define MSG_DELTA_CALIBRATE_Y           "Kalibrer Y"
137
-    #define MSG_DELTA_CALIBRATE_Z           "Kalibrer Z"
138
-    #define MSG_DELTA_CALIBRATE_CENTER      "Kalibrerings Center"
134
+  #define MSG_DELTA_CALIBRATE               "Delta Kalibrering"
135
+  #define MSG_DELTA_CALIBRATE_X             "Kalibrer X"
136
+  #define MSG_DELTA_CALIBRATE_Y             "Kalibrer Y"
137
+  #define MSG_DELTA_CALIBRATE_Z             "Kalibrer Z"
138
+  #define MSG_DELTA_CALIBRATE_CENTER        "Kalibrerings Center"
139 139
 #endif // DELTA_CALIBRATION_MENU
140 140
 
141 141
 #endif // LANGUAGE_DA_H

+ 5
- 5
Marlin/language_de.h View File

@@ -128,11 +128,11 @@
128 128
 #define MSG_BED_DONE                        "Bett aufgeheizt"
129 129
 
130 130
 #if ENABLED(DELTA_CALIBRATION_MENU)
131
-    #define MSG_DELTA_CALIBRATE             "Delta kalibrieren"
132
-    #define MSG_DELTA_CALIBRATE_X           "Kalibriere X"
133
-    #define MSG_DELTA_CALIBRATE_Y           "Kalibriere Y"
134
-    #define MSG_DELTA_CALIBRATE_Z           "Kalibriere Z"
135
-    #define MSG_DELTA_CALIBRATE_CENTER      "Kalibriere Mitte"
131
+  #define MSG_DELTA_CALIBRATE               "Delta kalibrieren"
132
+  #define MSG_DELTA_CALIBRATE_X             "Kalibriere X"
133
+  #define MSG_DELTA_CALIBRATE_Y             "Kalibriere Y"
134
+  #define MSG_DELTA_CALIBRATE_Z             "Kalibriere Z"
135
+  #define MSG_DELTA_CALIBRATE_CENTER        "Kalibriere Mitte"
136 136
 #endif // DELTA_CALIBRATION_MENU
137 137
 
138 138
 #endif // LANGUAGE_DE_H

+ 158
- 161
Marlin/language_en.h View File

@@ -19,451 +19,448 @@
19 19
 
20 20
 
21 21
 #ifndef WELCOME_MSG
22
-#define WELCOME_MSG                         MACHINE_NAME " ready."
22
+  #define WELCOME_MSG                         MACHINE_NAME " ready."
23 23
 #endif
24 24
 #ifndef MSG_SD_INSERTED
25
-#define MSG_SD_INSERTED                     "Card inserted"
25
+  #define MSG_SD_INSERTED                     "Card inserted"
26 26
 #endif
27 27
 #ifndef MSG_SD_REMOVED
28
-#define MSG_SD_REMOVED                      "Card removed"
28
+  #define MSG_SD_REMOVED                      "Card removed"
29 29
 #endif
30 30
 #ifndef MSG_MAIN
31
-#define MSG_MAIN                            "Main"
31
+  #define MSG_MAIN                            "Main"
32 32
 #endif
33 33
 #ifndef MSG_AUTOSTART
34
-#define MSG_AUTOSTART                       "Autostart"
34
+  #define MSG_AUTOSTART                       "Autostart"
35 35
 #endif
36 36
 #ifndef MSG_DISABLE_STEPPERS
37
-#define MSG_DISABLE_STEPPERS                "Disable steppers"
37
+  #define MSG_DISABLE_STEPPERS                "Disable steppers"
38 38
 #endif
39 39
 #ifndef MSG_AUTO_HOME
40
-#define MSG_AUTO_HOME                       "Auto home"
40
+  #define MSG_AUTO_HOME                       "Auto home"
41 41
 #endif
42 42
 #ifndef MSG_SET_HOME_OFFSETS
43
-#define MSG_SET_HOME_OFFSETS                "Set home offsets"
43
+  #define MSG_SET_HOME_OFFSETS                "Set home offsets"
44 44
 #endif
45 45
 #ifndef MSG_SET_ORIGIN
46
-#define MSG_SET_ORIGIN                      "Set origin"
46
+  #define MSG_SET_ORIGIN                      "Set origin"
47 47
 #endif
48 48
 #ifndef MSG_PREHEAT_PLA
49
-#define MSG_PREHEAT_PLA                     "Preheat PLA"
49
+  #define MSG_PREHEAT_PLA                     "Preheat PLA"
50 50
 #endif
51 51
 #ifndef MSG_PREHEAT_PLA_N
52
-#define MSG_PREHEAT_PLA_N                   MSG_PREHEAT_PLA " "
52
+  #define MSG_PREHEAT_PLA_N                   MSG_PREHEAT_PLA " "
53 53
 #endif
54 54
 #ifndef MSG_PREHEAT_PLA_ALL
55
-#define MSG_PREHEAT_PLA_ALL                 MSG_PREHEAT_PLA " All"
55
+  #define MSG_PREHEAT_PLA_ALL                 MSG_PREHEAT_PLA " All"
56 56
 #endif
57 57
 #ifndef MSG_PREHEAT_PLA_BEDONLY
58
-#define MSG_PREHEAT_PLA_BEDONLY             MSG_PREHEAT_PLA " Bed"
58
+  #define MSG_PREHEAT_PLA_BEDONLY             MSG_PREHEAT_PLA " Bed"
59 59
 #endif
60 60
 #ifndef MSG_PREHEAT_PLA_SETTINGS
61
-#define MSG_PREHEAT_PLA_SETTINGS            MSG_PREHEAT_PLA " conf"
61
+  #define MSG_PREHEAT_PLA_SETTINGS            MSG_PREHEAT_PLA " conf"
62 62
 #endif
63 63
 #ifndef MSG_PREHEAT_ABS
64
-#define MSG_PREHEAT_ABS                     "Preheat ABS"
64
+  #define MSG_PREHEAT_ABS                     "Preheat ABS"
65 65
 #endif
66 66
 #ifndef MSG_PREHEAT_ABS_N
67
-#define MSG_PREHEAT_ABS_N                   MSG_PREHEAT_ABS " "
67
+  #define MSG_PREHEAT_ABS_N                   MSG_PREHEAT_ABS " "
68 68
 #endif
69 69
 #ifndef MSG_PREHEAT_ABS_ALL
70
-#define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " All"
70
+  #define MSG_PREHEAT_ABS_ALL                 MSG_PREHEAT_ABS " All"
71 71
 #endif
72 72
 #ifndef MSG_PREHEAT_ABS_BEDONLY
73
-#define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " Bed"
73
+  #define MSG_PREHEAT_ABS_BEDONLY             MSG_PREHEAT_ABS " Bed"
74 74
 #endif
75 75
 #ifndef MSG_PREHEAT_ABS_SETTINGS
76
-#define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " conf"
76
+  #define MSG_PREHEAT_ABS_SETTINGS            MSG_PREHEAT_ABS " conf"
77 77
 #endif
78 78
 #ifndef MSG_H1
79
-#define MSG_H1                              "1"
79
+  #define MSG_H1                              "1"
80 80
 #endif
81 81
 #ifndef MSG_H2
82
-#define MSG_H2                              "2"
82
+  #define MSG_H2                              "2"
83 83
 #endif
84 84
 #ifndef MSG_H3
85
-#define MSG_H3                              "3"
85
+  #define MSG_H3                              "3"
86 86
 #endif
87 87
 #ifndef MSG_H4
88
-#define MSG_H4                              "4"
88
+  #define MSG_H4                              "4"
89 89
 #endif
90 90
 #ifndef MSG_COOLDOWN
91
-#define MSG_COOLDOWN                        "Cooldown"
91
+  #define MSG_COOLDOWN                        "Cooldown"
92 92
 #endif
93 93
 #ifndef MSG_SWITCH_PS_ON
94
-#define MSG_SWITCH_PS_ON                    "Switch power on"
94
+  #define MSG_SWITCH_PS_ON                    "Switch power on"
95 95
 #endif
96 96
 #ifndef MSG_SWITCH_PS_OFF
97
-#define MSG_SWITCH_PS_OFF                   "Switch power off"
97
+  #define MSG_SWITCH_PS_OFF                   "Switch power off"
98 98
 #endif
99 99
 #ifndef MSG_EXTRUDE
100
-#define MSG_EXTRUDE                         "Extrude"
100
+  #define MSG_EXTRUDE                         "Extrude"
101 101
 #endif
102 102
 #ifndef MSG_RETRACT
103
-#define MSG_RETRACT                         "Retract"
103
+  #define MSG_RETRACT                         "Retract"
104 104
 #endif
105 105
 #ifndef MSG_MOVE_AXIS
106
-#define MSG_MOVE_AXIS                       "Move axis"
106
+  #define MSG_MOVE_AXIS                       "Move axis"
107 107
 #endif
108 108
 #ifndef MSG_LEVEL_BED
109
-#define MSG_LEVEL_BED                       "Level bed"
109
+  #define MSG_LEVEL_BED                       "Level bed"
110 110
 #endif
111 111
 #ifndef MSG_MOVE_X
112
-#define MSG_MOVE_X                          "Move X"
112
+  #define MSG_MOVE_X                          "Move X"
113 113
 #endif
114 114
 #ifndef MSG_MOVE_Y
115
-#define MSG_MOVE_Y                          "Move Y"
115
+  #define MSG_MOVE_Y                          "Move Y"
116 116
 #endif
117 117
 #ifndef MSG_MOVE_Z
118
-#define MSG_MOVE_Z                          "Move Z"
118
+  #define MSG_MOVE_Z                          "Move Z"
119 119
 #endif
120 120
 #ifndef MSG_MOVE_E
121
-#define MSG_MOVE_E                          "Extruder"
121
+  #define MSG_MOVE_E                          "Extruder"
122 122
 #endif
123 123
 #ifndef MSG_MOVE_E1
124
-#define MSG_MOVE_E1                         "1"
124
+  #define MSG_MOVE_E1                         "1"
125 125
 #endif
126 126
 #ifndef MSG_MOVE_E2
127
-#define MSG_MOVE_E2                         "2"
127
+  #define MSG_MOVE_E2                         "2"
128 128
 #endif
129 129
 #ifndef MSG_MOVE_E3
130
-#define MSG_MOVE_E3                         "3"
130
+  #define MSG_MOVE_E3                         "3"
131 131
 #endif
132 132
 #ifndef MSG_MOVE_E4
133
-#define MSG_MOVE_E4                         "4"
133
+  #define MSG_MOVE_E4                         "4"
134 134
 #endif
135 135
 #ifndef MSG_MOVE_01MM
136
-#define MSG_MOVE_01MM                       "Move 0.1mm"
136
+  #define MSG_MOVE_01MM                       "Move 0.1mm"
137 137
 #endif
138 138
 #ifndef MSG_MOVE_1MM
139
-#define MSG_MOVE_1MM                        "Move 1mm"
139
+  #define MSG_MOVE_1MM                        "Move 1mm"
140 140
 #endif
141 141
 #ifndef MSG_MOVE_10MM
142
-#define MSG_MOVE_10MM                       "Move 10mm"
142
+  #define MSG_MOVE_10MM                       "Move 10mm"
143 143
 #endif
144 144
 #ifndef MSG_SPEED
145
-#define MSG_SPEED                           "Speed"
145
+  #define MSG_SPEED                           "Speed"
146 146
 #endif
147 147
 #ifndef MSG_NOZZLE
148
-#define MSG_NOZZLE                          "Nozzle"
148
+  #define MSG_NOZZLE                          "Nozzle"
149 149
 #endif
150 150
 #ifndef MSG_N1
151
-#define MSG_N1                              " 1"
151
+  #define MSG_N1                              " 1"
152 152
 #endif
153 153
 #ifndef MSG_N2
154
-#define MSG_N2                              " 2"
154
+  #define MSG_N2                              " 2"
155 155
 #endif
156 156
 #ifndef MSG_N3
157
-#define MSG_N3                              " 3"
157
+  #define MSG_N3                              " 3"
158 158
 #endif
159 159
 #ifndef MSG_N4
160
-#define MSG_N4                              " 4"
160
+  #define MSG_N4                              " 4"
161 161
 #endif
162 162
 #ifndef MSG_BED
163
-#define MSG_BED                             "Bed"
163
+  #define MSG_BED                             "Bed"
164 164
 #endif
165 165
 #ifndef MSG_FAN_SPEED
166
-#define MSG_FAN_SPEED                       "Fan speed"
166
+  #define MSG_FAN_SPEED                       "Fan speed"
167 167
 #endif
168 168
 #ifndef MSG_FLOW
169
-#define MSG_FLOW                            "Flow"
169
+  #define MSG_FLOW                            "Flow"
170 170
 #endif
171 171
 #ifndef MSG_CONTROL
172
-#define MSG_CONTROL                         "Control"
172
+  #define MSG_CONTROL                         "Control"
173 173
 #endif
174 174
 #ifndef MSG_MIN
175
-#define MSG_MIN                             " " LCD_STR_THERMOMETER " Min"
175
+  #define MSG_MIN                             " " LCD_STR_THERMOMETER " Min"
176 176
 #endif
177 177
 #ifndef MSG_MAX
178
-#define MSG_MAX                             " " LCD_STR_THERMOMETER " Max"
178
+  #define MSG_MAX                             " " LCD_STR_THERMOMETER " Max"
179 179
 #endif
180 180
 #ifndef MSG_FACTOR
181
-#define MSG_FACTOR                          " " LCD_STR_THERMOMETER " Fact"
181
+  #define MSG_FACTOR                          " " LCD_STR_THERMOMETER " Fact"
182 182
 #endif
183 183
 #ifndef MSG_AUTOTEMP
184
-#define MSG_AUTOTEMP                        "Autotemp"
184
+  #define MSG_AUTOTEMP                        "Autotemp"
185 185
 #endif
186 186
 #ifndef MSG_ON
187
-#define MSG_ON                              "On "
187
+  #define MSG_ON                              "On "
188 188
 #endif
189 189
 #ifndef MSG_OFF
190
-#define MSG_OFF                             "Off"
190
+  #define MSG_OFF                             "Off"
191 191
 #endif
192 192
 #ifndef MSG_PID_P
193
-#define MSG_PID_P                           "PID-P"
193
+  #define MSG_PID_P                           "PID-P"
194 194
 #endif
195 195
 #ifndef MSG_PID_I
196
-#define MSG_PID_I                           "PID-I"
196
+  #define MSG_PID_I                           "PID-I"
197 197
 #endif
198 198
 #ifndef MSG_PID_D
199
-#define MSG_PID_D                           "PID-D"
199
+  #define MSG_PID_D                           "PID-D"
200 200
 #endif
201 201
 #ifndef MSG_PID_C
202
-#define MSG_PID_C                           "PID-C"
202
+  #define MSG_PID_C                           "PID-C"
203 203
 #endif
204 204
 #ifndef MSG_E1
205
-#define MSG_E1                              " E1"
205
+  #define MSG_E1                              " E1"
206 206
 #endif
207 207
 #ifndef MSG_E2
208
-#define MSG_E2                              " E2"
208
+  #define MSG_E2                              " E2"
209 209
 #endif
210 210
 #ifndef MSG_E3
211
-#define MSG_E3                              " E3"
211
+  #define MSG_E3                              " E3"
212 212
 #endif
213 213
 #ifndef MSG_E4
214
-#define MSG_E4                              " E4"
214
+  #define MSG_E4                              " E4"
215 215
 #endif
216 216
 #ifndef MSG_ACC
217
-#define MSG_ACC                             "Accel"
217
+  #define MSG_ACC                             "Accel"
218 218
 #endif
219 219
 #ifndef MSG_VXY_JERK
220
-#define MSG_VXY_JERK                        "Vxy-jerk"
220
+  #define MSG_VXY_JERK                        "Vxy-jerk"
221 221
 #endif
222 222
 #ifndef MSG_VZ_JERK
223
-#define MSG_VZ_JERK                         "Vz-jerk"
223
+  #define MSG_VZ_JERK                         "Vz-jerk"
224 224
 #endif
225 225
 #ifndef MSG_VE_JERK
226
-#define MSG_VE_JERK                         "Ve-jerk"
226
+  #define MSG_VE_JERK                         "Ve-jerk"
227 227
 #endif
228 228
 #ifndef MSG_VMAX
229
-#define MSG_VMAX                            "Vmax "
229
+  #define MSG_VMAX                            "Vmax "
230 230
 #endif
231 231
 #ifndef MSG_X
232
-#define MSG_X                               "x"
232
+  #define MSG_X                               "x"
233 233
 #endif
234 234
 #ifndef MSG_Y
235
-#define MSG_Y                               "y"
235
+  #define MSG_Y                               "y"
236 236
 #endif
237 237
 #ifndef MSG_Z
238
-#define MSG_Z                               "z"
238
+  #define MSG_Z                               "z"
239 239
 #endif
240 240
 #ifndef MSG_E
241
-#define MSG_E                               "e"
241
+  #define MSG_E                               "e"
242 242
 #endif
243 243
 #ifndef MSG_VMIN
244
-#define MSG_VMIN                            "Vmin"
244
+  #define MSG_VMIN                            "Vmin"
245 245
 #endif
246 246
 #ifndef MSG_VTRAV_MIN
247
-#define MSG_VTRAV_MIN                       "VTrav min"
247
+  #define MSG_VTRAV_MIN                       "VTrav min"
248 248
 #endif
249 249
 #ifndef MSG_AMAX
250
-#define MSG_AMAX                            "Amax "
250
+  #define MSG_AMAX                            "Amax "
251 251
 #endif
252 252
 #ifndef MSG_A_RETRACT
253
-#define MSG_A_RETRACT                       "A-retract"
253
+  #define MSG_A_RETRACT                       "A-retract"
254 254
 #endif
255 255
 #ifndef MSG_A_TRAVEL
256
-#define MSG_A_TRAVEL                        "A-travel"
256
+  #define MSG_A_TRAVEL                        "A-travel"
257 257
 #endif
258 258
 #ifndef MSG_XSTEPS
259
-#define MSG_XSTEPS                          "Xsteps/mm"
259
+  #define MSG_XSTEPS                          "Xsteps/mm"
260 260
 #endif
261 261
 #ifndef MSG_YSTEPS
262
-#define MSG_YSTEPS                          "Ysteps/mm"
262
+  #define MSG_YSTEPS                          "Ysteps/mm"
263 263
 #endif
264 264
 #ifndef MSG_ZSTEPS
265
-#define MSG_ZSTEPS                          "Zsteps/mm"
265
+  #define MSG_ZSTEPS                          "Zsteps/mm"
266 266
 #endif
267 267
 #ifndef MSG_ESTEPS
268
-#define MSG_ESTEPS                          "Esteps/mm"
268
+  #define MSG_ESTEPS                          "Esteps/mm"
269 269
 #endif
270 270
 #ifndef MSG_TEMPERATURE
271
-#define MSG_TEMPERATURE                     "Temperature"
271
+  #define MSG_TEMPERATURE                     "Temperature"
272 272
 #endif
273 273
 #ifndef MSG_MOTION
274
-#define MSG_MOTION                          "Motion"
274
+  #define MSG_MOTION                          "Motion"
275 275
 #endif
276 276
 #ifndef MSG_VOLUMETRIC
277
-#define MSG_VOLUMETRIC                      "Filament"
277
+  #define MSG_VOLUMETRIC                      "Filament"
278 278
 #endif
279 279
 #ifndef MSG_VOLUMETRIC_ENABLED
280
-#define MSG_VOLUMETRIC_ENABLED              "E in mm3"
280
+  #define MSG_VOLUMETRIC_ENABLED              "E in mm3"
281 281
 #endif
282 282
 #ifndef MSG_FILAMENT_DIAM
283
-#define MSG_FILAMENT_DIAM                   "Fil. Dia."
283
+  #define MSG_FILAMENT_DIAM                   "Fil. Dia."
284 284
 #endif
285 285
 #ifndef MSG_DIAM_E1
286
-#define MSG_DIAM_E1                         " 1"
286
+  #define MSG_DIAM_E1                         " 1"
287 287
 #endif
288 288
 #ifndef MSG_DIAM_E2
289
-#define MSG_DIAM_E2                         " 2"
289
+  #define MSG_DIAM_E2                         " 2"
290 290
 #endif
291 291
 #ifndef MSG_DIAM_E3
292
-#define MSG_DIAM_E3                         " 3"
292
+  #define MSG_DIAM_E3                         " 3"
293 293
 #endif
294 294
 #ifndef MSG_DIAM_E4
295
-#define MSG_DIAM_E4                         " 4"
295
+  #define MSG_DIAM_E4                         " 4"
296 296
 #endif
297 297
 #ifndef MSG_CONTRAST
298
-#define MSG_CONTRAST                        "LCD contrast"
298
+  #define MSG_CONTRAST                        "LCD contrast"
299 299
 #endif
300 300
 #ifndef MSG_STORE_EPROM
301
-#define MSG_STORE_EPROM                     "Store memory"
301
+  #define MSG_STORE_EPROM                     "Store memory"
302 302
 #endif
303 303
 #ifndef MSG_LOAD_EPROM
304
-#define MSG_LOAD_EPROM                      "Load memory"
304
+  #define MSG_LOAD_EPROM                      "Load memory"
305 305
 #endif
306 306
 #ifndef MSG_RESTORE_FAILSAFE
307
-#define MSG_RESTORE_FAILSAFE                "Restore failsafe"
307
+  #define MSG_RESTORE_FAILSAFE                "Restore failsafe"
308 308
 #endif
309 309
 #ifndef MSG_REFRESH
310
-#define MSG_REFRESH                         "Refresh"
310
+  #define MSG_REFRESH                         "Refresh"
311 311
 #endif
312 312
 #ifndef MSG_WATCH
313
-#define MSG_WATCH                           "Info screen"
313
+  #define MSG_WATCH                           "Info screen"
314 314
 #endif
315 315
 #ifndef MSG_PREPARE
316
-#define MSG_PREPARE                         "Prepare"
316
+  #define MSG_PREPARE                         "Prepare"
317 317
 #endif
318 318
 #ifndef MSG_TUNE
319
-#define MSG_TUNE                            "Tune"
319
+  #define MSG_TUNE                            "Tune"
320 320
 #endif
321 321
 #ifndef MSG_PAUSE_PRINT
322
-#define MSG_PAUSE_PRINT                     "Pause print"
322
+  #define MSG_PAUSE_PRINT                     "Pause print"
323 323
 #endif
324 324
 #ifndef MSG_RESUME_PRINT
325
-#define MSG_RESUME_PRINT                    "Resume print"
325
+  #define MSG_RESUME_PRINT                    "Resume print"
326 326
 #endif
327 327
 #ifndef MSG_STOP_PRINT
328
-#define MSG_STOP_PRINT                      "Stop print"
328
+  #define MSG_STOP_PRINT                      "Stop print"
329 329
 #endif
330 330
 #ifndef MSG_CARD_MENU
331
-#define MSG_CARD_MENU                       "Print from SD"
331
+  #define MSG_CARD_MENU                       "Print from SD"
332 332
 #endif
333 333
 #ifndef MSG_NO_CARD
334
-#define MSG_NO_CARD                         "No SD card"
334
+  #define MSG_NO_CARD                         "No SD card"
335 335
 #endif
336 336
 #ifndef MSG_DWELL
337
-#define MSG_DWELL                           "Sleep..."
337
+  #define MSG_DWELL                           "Sleep..."
338 338
 #endif
339 339
 #ifndef MSG_USERWAIT
340
-#define MSG_USERWAIT                        "Wait for user..."
340
+  #define MSG_USERWAIT                        "Wait for user..."
341 341
 #endif
342 342
 #ifndef MSG_RESUMING
343
-#define MSG_RESUMING                        "Resuming print"
343
+  #define MSG_RESUMING                        "Resuming print"
344 344
 #endif
345 345
 #ifndef MSG_PRINT_ABORTED
346
-#define MSG_PRINT_ABORTED                   "Print aborted"
346
+  #define MSG_PRINT_ABORTED                   "Print aborted"
347 347
 #endif
348 348
 #ifndef MSG_NO_MOVE
349
-#define MSG_NO_MOVE                         "No move."
349
+  #define MSG_NO_MOVE                         "No move."
350 350
 #endif
351 351
 #ifndef MSG_KILLED
352
-#define MSG_KILLED                          "KILLED. "
352
+  #define MSG_KILLED                          "KILLED. "
353 353
 #endif
354 354
 #ifndef MSG_STOPPED
355
-#define MSG_STOPPED                         "STOPPED. "
355
+  #define MSG_STOPPED                         "STOPPED. "
356 356
 #endif
357 357
 #ifndef MSG_CONTROL_RETRACT
358
-#define MSG_CONTROL_RETRACT                 "Retract mm"
358
+  #define MSG_CONTROL_RETRACT                 "Retract mm"
359 359
 #endif
360 360
 #ifndef MSG_CONTROL_RETRACT_SWAP
361
-#define MSG_CONTROL_RETRACT_SWAP            "Swap Re.mm"
361
+  #define MSG_CONTROL_RETRACT_SWAP            "Swap Re.mm"
362 362
 #endif
363 363
 #ifndef MSG_CONTROL_RETRACTF
364
-#define MSG_CONTROL_RETRACTF                "Retract  V"
364
+  #define MSG_CONTROL_RETRACTF                "Retract  V"
365 365
 #endif
366 366
 #ifndef MSG_CONTROL_RETRACT_ZLIFT
367
-#define MSG_CONTROL_RETRACT_ZLIFT           "Hop mm"
367
+  #define MSG_CONTROL_RETRACT_ZLIFT           "Hop mm"
368 368
 #endif
369 369
 #ifndef MSG_CONTROL_RETRACT_RECOVER
370
-#define MSG_CONTROL_RETRACT_RECOVER         "UnRet +mm"
370
+  #define MSG_CONTROL_RETRACT_RECOVER         "UnRet +mm"
371 371
 #endif
372 372
 #ifndef MSG_CONTROL_RETRACT_RECOVER_SWAP
373
-#define MSG_CONTROL_RETRACT_RECOVER_SWAP    "S UnRet+mm"
373
+  #define MSG_CONTROL_RETRACT_RECOVER_SWAP    "S UnRet+mm"
374 374
 #endif
375 375
 #ifndef MSG_CONTROL_RETRACT_RECOVERF
376
-#define MSG_CONTROL_RETRACT_RECOVERF        "UnRet  V"
376
+  #define MSG_CONTROL_RETRACT_RECOVERF        "UnRet  V"
377 377
 #endif
378 378
 #ifndef MSG_AUTORETRACT
379
-#define MSG_AUTORETRACT                     "AutoRetr."
379
+  #define MSG_AUTORETRACT                     "AutoRetr."
380 380
 #endif
381 381
 #ifndef MSG_FILAMENTCHANGE
382
-#define MSG_FILAMENTCHANGE                  "Change filament"
382
+  #define MSG_FILAMENTCHANGE                  "Change filament"
383 383
 #endif
384 384
 #ifndef MSG_INIT_SDCARD
385
-#define MSG_INIT_SDCARD                     "Init. SD card"
385
+  #define MSG_INIT_SDCARD                     "Init. SD card"
386 386
 #endif
387 387
 #ifndef MSG_CNG_SDCARD
388
-#define MSG_CNG_SDCARD                      "Change SD card"
388
+  #define MSG_CNG_SDCARD                      "Change SD card"
389 389
 #endif
390 390
 #ifndef MSG_ZPROBE_OUT
391
-#define MSG_ZPROBE_OUT                      "Z probe out. bed"
391
+  #define MSG_ZPROBE_OUT                      "Z probe out. bed"
392 392
 #endif
393 393
 #ifndef MSG_POSITION_UNKNOWN
394
-#define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
394
+  #define MSG_POSITION_UNKNOWN                "Home X/Y before Z"
395 395
 #endif
396 396
 #ifndef MSG_ZPROBE_ZOFFSET
397
-#define MSG_ZPROBE_ZOFFSET                  "Z Offset"
397
+  #define MSG_ZPROBE_ZOFFSET                  "Z Offset"
398 398
 #endif
399 399
 #ifndef MSG_BABYSTEP_X
400
-#define MSG_BABYSTEP_X                      "Babystep X"
400
+  #define MSG_BABYSTEP_X                      "Babystep X"
401 401
 #endif
402 402
 #ifndef MSG_BABYSTEP_Y
403
-#define MSG_BABYSTEP_Y                      "Babystep Y"
403
+  #define MSG_BABYSTEP_Y                      "Babystep Y"
404 404
 #endif
405 405
 #ifndef MSG_BABYSTEP_Z
406
-#define MSG_BABYSTEP_Z                      "Babystep Z"
406
+  #define MSG_BABYSTEP_Z                      "Babystep Z"
407 407
 #endif
408 408
 #ifndef MSG_ENDSTOP_ABORT
409
-#define MSG_ENDSTOP_ABORT                   "Endstop abort"
409
+  #define MSG_ENDSTOP_ABORT                   "Endstop abort"
410 410
 #endif
411 411
 #ifndef MSG_HEATING_FAILED_LCD
412
-#define MSG_HEATING_FAILED_LCD              "Heating failed"
412
+  #define MSG_HEATING_FAILED_LCD              "Heating failed"
413 413
 #endif
414 414
 #ifndef MSG_ERR_REDUNDANT_TEMP
415
-#define MSG_ERR_REDUNDANT_TEMP              "Err: REDUNDANT TEMP ERROR"
415
+  #define MSG_ERR_REDUNDANT_TEMP              "Err: REDUNDANT TEMP ERROR"
416 416
 #endif
417 417
 #ifndef MSG_THERMAL_RUNAWAY
418
-#define MSG_THERMAL_RUNAWAY                 "THERMAL RUNAWAY"
418
+  #define MSG_THERMAL_RUNAWAY                 "THERMAL RUNAWAY"
419 419
 #endif
420 420
 #ifndef MSG_ERR_MAXTEMP
421
-#define MSG_ERR_MAXTEMP                     "Err: MAXTEMP"
421
+  #define MSG_ERR_MAXTEMP                     "Err: MAXTEMP"
422 422
 #endif
423 423
 #ifndef MSG_ERR_MINTEMP
424
-#define MSG_ERR_MINTEMP                     "Err: MINTEMP"
424
+  #define MSG_ERR_MINTEMP                     "Err: MINTEMP"
425 425
 #endif
426 426
 #ifndef MSG_ERR_MAXTEMP_BED
427
-#define MSG_ERR_MAXTEMP_BED                 "Err: MAXTEMP BED"
427
+  #define MSG_ERR_MAXTEMP_BED                 "Err: MAXTEMP BED"
428 428
 #endif
429 429
 #ifndef MSG_ERR_MINTEMP_BED
430
-#define MSG_ERR_MINTEMP_BED                 "Err: MINTEMP BED"
430
+  #define MSG_ERR_MINTEMP_BED                 "Err: MINTEMP BED"
431 431
 #endif
432 432
 #ifndef MSG_END_HOUR
433
-#define MSG_END_HOUR                        "hours"
433
+  #define MSG_END_HOUR                        "hours"
434 434
 #endif
435 435
 #ifndef MSG_END_MINUTE
436
-#define MSG_END_MINUTE                      "minutes"
436
+  #define MSG_END_MINUTE                      "minutes"
437 437
 #endif
438 438
 #ifndef MSG_HEATING
439
-#define MSG_HEATING                         "Heating..."
439
+  #define MSG_HEATING                         "Heating..."
440 440
 #endif
441 441
 #ifndef MSG_HEATING_COMPLETE
442
-#define MSG_HEATING_COMPLETE                "Heating done."
442
+  #define MSG_HEATING_COMPLETE                "Heating done."
443 443
 #endif
444 444
 #ifndef MSG_BED_HEATING
445
-#define MSG_BED_HEATING                     "Bed Heating."
445
+  #define MSG_BED_HEATING                     "Bed Heating."
446 446
 #endif
447 447
 #ifndef MSG_BED_DONE
448
-#define MSG_BED_DONE                        "Bed done."
448
+  #define MSG_BED_DONE                        "Bed done."
449
+#endif
450
+#ifndef MSG_DELTA_CALIBRATE
451
+  #define MSG_DELTA_CALIBRATE                 "Delta Calibration"
452
+#endif
453
+#ifndef MSG_DELTA_CALIBRATE_X
454
+  #define MSG_DELTA_CALIBRATE_X               "Calibrate X"
455
+#endif
456
+#ifndef MSG_DELTA_CALIBRATE_Y
457
+  #define MSG_DELTA_CALIBRATE_Y               "Calibrate Y"
458
+#endif
459
+#ifndef MSG_DELTA_CALIBRATE_Z
460
+  #define MSG_DELTA_CALIBRATE_Z               "Calibrate Z"
461
+#endif
462
+#ifndef MSG_DELTA_CALIBRATE_CENTER
463
+  #define MSG_DELTA_CALIBRATE_CENTER          "Calibrate Center"
449 464
 #endif
450
-
451
-#if ENABLED(DELTA_CALIBRATION_MENU)
452
-  #ifndef MSG_DELTA_CALIBRATE
453
-  #define MSG_DELTA_CALIBRATE             "Delta Calibration"
454
-  #endif
455
-  #ifndef MSG_DELTA_CALIBRATE_X
456
-  #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
457
-  #endif
458
-  #ifndef MSG_DELTA_CALIBRATE_Y
459
-  #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
460
-  #endif
461
-  #ifndef MSG_DELTA_CALIBRATE_Z
462
-  #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
463
-  #endif
464
-  #ifndef MSG_DELTA_CALIBRATE_CENTER
465
-  #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
466
-  #endif
467
-#endif // DELTA_CALIBRATION_MENU
468 465
 
469 466
 #endif // LANGUAGE_EN_H

+ 5
- 5
Marlin/language_es.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutos"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Calibracion Delta"
129
-    #define MSG_DELTA_CALIBRATE_X           "Calibrar X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrar Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrar Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrar Centro"
128
+  #define MSG_DELTA_CALIBRATE               "Calibracion Delta"
129
+  #define MSG_DELTA_CALIBRATE_X             "Calibrar X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrar Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrar Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrar Centro"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_ES_H

+ 5
- 5
Marlin/language_eu.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutes"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
129
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
128
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
129
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_EU_H

+ 5
- 5
Marlin/language_fi.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutes"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Delta Kalibrointi"
129
-    #define MSG_DELTA_CALIBRATE_X           "Kalibroi X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Kalibroi Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Kalibroi Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Kalibroi Center"
128
+  #define MSG_DELTA_CALIBRATE               "Delta Kalibrointi"
129
+  #define MSG_DELTA_CALIBRATE_X             "Kalibroi X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Kalibroi Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Kalibroi Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Kalibroi Center"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_FI_H

+ 5
- 5
Marlin/language_fr.h View File

@@ -127,11 +127,11 @@
127 127
 #define MSG_END_MINUTE                      "minutes"
128 128
 
129 129
 #if ENABLED(DELTA_CALIBRATION_MENU)
130
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
131
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
132
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
133
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
134
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
130
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
131
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
132
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
133
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
134
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
135 135
 #endif // DELTA_CALIBRATION_MENU
136 136
 
137 137
 #endif // LANGUAGE_FR_H

+ 5
- 5
Marlin/language_it.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minuti"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Calibraz. Delta"
129
-    #define MSG_DELTA_CALIBRATE_X           "Calibra X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Calibra Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Calibra Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibra Center"
128
+  #define MSG_DELTA_CALIBRATE               "Calibraz. Delta"
129
+  #define MSG_DELTA_CALIBRATE_X             "Calibra X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Calibra Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Calibra Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibra Center"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_IT_H

+ 5
- 5
Marlin/language_kana.h View File

@@ -136,11 +136,11 @@
136 136
 */
137 137
 
138 138
 #if ENABLED(DELTA_CALIBRATION_MENU)
139
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
140
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
141
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
142
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
143
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
139
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
140
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
141
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
142
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
143
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
144 144
 #endif // DELTA_CALIBRATION_MENU
145 145
 
146 146
 #endif // LANGUAGE_KANA_H

+ 5
- 5
Marlin/language_kana_utf8.h View File

@@ -131,11 +131,11 @@
131 131
 #define MSG_END_MINUTE                      "minutes"
132 132
 
133 133
 #if ENABLED(DELTA_CALIBRATION_MENU)
134
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
135
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
136
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
137
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
138
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
134
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
135
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
136
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
137
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
138
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
139 139
 #endif // DELTA_CALIBRATION_MENU
140 140
 
141 141
 #endif // LANGUAGE_KANA_UTF_H

+ 5
- 5
Marlin/language_nl.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutes"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Delta Calibratie"
129
-    #define MSG_DELTA_CALIBRATE_X           "Kalibreer X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Kalibreer Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Kalibreer Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Kalibreer Midden"
128
+  #define MSG_DELTA_CALIBRATE               "Delta Calibratie"
129
+  #define MSG_DELTA_CALIBRATE_X             "Kalibreer X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Kalibreer Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Kalibreer Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Kalibreer Midden"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_NL_H

+ 5
- 5
Marlin/language_pl.h View File

@@ -126,11 +126,11 @@
126 126
 
127 127
 
128 128
 #if ENABLED(DELTA_CALIBRATION_MENU)
129
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
130
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
131
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
132
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
133
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
129
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
130
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
131
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
132
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
133
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
134 134
 #endif // DELTA_CALIBRATION_MENU
135 135
 
136 136
 #endif // LANGUAGE_PL_H

+ 6
- 6
Marlin/language_pt-br.h View File

@@ -13,7 +13,7 @@
13 13
 //#define SIMULATE_ROMFONT
14 14
 #define DISPLAY_CHARSET_ISO10646_1
15 15
 
16
-#define WELCOME_MSG							MACHINE_NAME " pronto."
16
+#define WELCOME_MSG                         MACHINE_NAME " pronto."
17 17
 #define MSG_SD_INSERTED                     "Cartao inserido"
18 18
 #define MSG_SD_REMOVED                      "Cartao removido"
19 19
 #define MSG_MAIN                            " Menu principal"
@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutos"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Delta Calibration"
129
-    #define MSG_DELTA_CALIBRATE_X           "Calibrate X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrate Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrate Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrate Center"
128
+  #define MSG_DELTA_CALIBRATE               "Delta Calibration"
129
+  #define MSG_DELTA_CALIBRATE_X             "Calibrate X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrate Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrate Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrate Center"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_PT_BR_H

+ 5
- 5
Marlin/language_pt.h View File

@@ -125,11 +125,11 @@
125 125
 #define MSG_END_MINUTE                      "minutos"
126 126
 
127 127
 #if ENABLED(DELTA_CALIBRATION_MENU)
128
-    #define MSG_DELTA_CALIBRATE             "Delta Calibracao"
129
-    #define MSG_DELTA_CALIBRATE_X           "Calibrar X"
130
-    #define MSG_DELTA_CALIBRATE_Y           "Calibrar Y"
131
-    #define MSG_DELTA_CALIBRATE_Z           "Calibrar Z"
132
-    #define MSG_DELTA_CALIBRATE_CENTER      "Calibrar Centro"
128
+  #define MSG_DELTA_CALIBRATE               "Delta Calibracao"
129
+  #define MSG_DELTA_CALIBRATE_X             "Calibrar X"
130
+  #define MSG_DELTA_CALIBRATE_Y             "Calibrar Y"
131
+  #define MSG_DELTA_CALIBRATE_Z             "Calibrar Z"
132
+  #define MSG_DELTA_CALIBRATE_CENTER        "Calibrar Centro"
133 133
 #endif // DELTA_CALIBRATION_MENU
134 134
 
135 135
 #endif // LANGUAGE_PT_H

+ 5
- 5
Marlin/language_ru.h View File

@@ -126,11 +126,11 @@
126 126
 #define MSG_END_MINUTE                      "минут"
127 127
 
128 128
 #if ENABLED(DELTA_CALIBRATION_MENU)
129
-    #define MSG_DELTA_CALIBRATE             "Калибровка Delta"
130
-    #define MSG_DELTA_CALIBRATE_X           "Калибровать X"
131
-    #define MSG_DELTA_CALIBRATE_Y           "Калибровать Y"
132
-    #define MSG_DELTA_CALIBRATE_Z           "Калибровать Z"
133
-    #define MSG_DELTA_CALIBRATE_CENTER      "Калибровать Center"
129
+  #define MSG_DELTA_CALIBRATE               "Калибровка Delta"
130
+  #define MSG_DELTA_CALIBRATE_X             "Калибровать X"
131
+  #define MSG_DELTA_CALIBRATE_Y             "Калибровать Y"
132
+  #define MSG_DELTA_CALIBRATE_Z             "Калибровать Z"
133
+  #define MSG_DELTA_CALIBRATE_CENTER        "Калибровать Center"
134 134
 #endif // DELTA_CALIBRATION_MENU
135 135
 
136 136
 #endif // LANGUAGE_RU_H

+ 1
- 1
Marlin/mesh_bed_leveling.cpp View File

@@ -5,7 +5,7 @@
5 5
   mesh_bed_leveling mbl;
6 6
 
7 7
   mesh_bed_leveling::mesh_bed_leveling() { reset(); }
8
-      
8
+
9 9
   void mesh_bed_leveling::reset() {
10 10
     active = 0;
11 11
     for (int y = 0; y < MESH_NUM_Y_POINTS; y++)

+ 13
- 13
Marlin/mesh_bed_leveling.h View File

@@ -9,45 +9,45 @@
9 9
   public:
10 10
     uint8_t active;
11 11
     float z_values[MESH_NUM_Y_POINTS][MESH_NUM_X_POINTS];
12
-    
12
+
13 13
     mesh_bed_leveling();
14
-    
14
+
15 15
     void reset();
16
-    
16
+
17 17
     float get_x(int i) { return MESH_MIN_X + MESH_X_DIST * i; }
18 18
     float get_y(int i) { return MESH_MIN_Y + MESH_Y_DIST * i; }
19 19
     void set_z(int ix, int iy, float z) { z_values[iy][ix] = z; }
20
-    
20
+
21 21
     int select_x_index(float x) {
22 22
       int i = 1;
23
-      while (x > get_x(i) && i < MESH_NUM_X_POINTS-1) i++;
23
+      while (x > get_x(i) && i < MESH_NUM_X_POINTS - 1) i++;
24 24
       return i - 1;
25 25
     }
26
-    
26
+
27 27
     int select_y_index(float y) {
28 28
       int i = 1;
29 29
       while (y > get_y(i) && i < MESH_NUM_Y_POINTS - 1) i++;
30 30
       return i - 1;
31 31
     }
32
-    
32
+
33 33
     float calc_z0(float a0, float a1, float z1, float a2, float z2) {
34
-      float delta_z = (z2 - z1)/(a2 - a1);
34
+      float delta_z = (z2 - z1) / (a2 - a1);
35 35
       float delta_a = a0 - a1;
36 36
       return z1 + delta_a * delta_z;
37 37
     }
38
-    
38
+
39 39
     float get_z(float x0, float y0) {
40 40
       int x_index = select_x_index(x0);
41 41
       int y_index = select_y_index(y0);
42 42
       float z1 = calc_z0(x0,
43 43
                          get_x(x_index), z_values[y_index][x_index],
44
-                         get_x(x_index+1), z_values[y_index][x_index+1]);
44
+                         get_x(x_index + 1), z_values[y_index][x_index + 1]);
45 45
       float z2 = calc_z0(x0,
46
-                         get_x(x_index), z_values[y_index+1][x_index],
47
-                         get_x(x_index+1), z_values[y_index+1][x_index+1]);
46
+                         get_x(x_index), z_values[y_index + 1][x_index],
47
+                         get_x(x_index + 1), z_values[y_index + 1][x_index + 1]);
48 48
       float z0 = calc_z0(y0,
49 49
                          get_y(y_index), z1,
50
-                         get_y(y_index+1), z2);
50
+                         get_y(y_index + 1), z2);
51 51
       return z0;
52 52
     }
53 53
   };

+ 9
- 9
Marlin/pins.h View File

@@ -207,7 +207,7 @@
207 207
 #endif
208 208
 
209 209
 #if ENABLED(DISABLE_XMIN_ENDSTOP)
210
-  #undef X_MIN_PIN 
210
+  #undef X_MIN_PIN
211 211
   #define X_MIN_PIN          -1
212 212
 #endif
213 213
 
@@ -226,7 +226,7 @@
226 226
 #endif
227 227
 
228 228
 #if ENABLED(DISABLE_ZMIN_ENDSTOP)
229
-  #undef Z_MIN_PIN 
229
+  #undef Z_MIN_PIN
230 230
   #define Z_MIN_PIN          -1
231 231
 #endif
232 232
 
@@ -243,13 +243,13 @@
243 243
 #endif
244 244
 
245 245
 #define SENSITIVE_PINS { 0, 1, \
246
-                        X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \
247
-                        Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \
248
-                        Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \
249
-                        PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, \
250
-                        _E0_PINS _E1_PINS _E2_PINS _E3_PINS \
251
-                        analogInputToDigitalPin(TEMP_BED_PIN) \
252
-                       }
246
+    X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, \
247
+    Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, \
248
+    Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, Z_MIN_PROBE_PIN, \
249
+    PS_ON_PIN, HEATER_BED_PIN, FAN_PIN, \
250
+    _E0_PINS _E1_PINS _E2_PINS _E3_PINS \
251
+    analogInputToDigitalPin(TEMP_BED_PIN) \
252
+  }
253 253
 
254 254
 #define HAS_DIGIPOTSS (DIGIPOTSS_PIN >= 0)
255 255
 

+ 1
- 1
Marlin/pins_5DPRINT.h View File

@@ -53,7 +53,7 @@
53 53
 #define SDSS               20
54 54
 
55 55
 #if DISABLED(SDSUPPORT)
56
-// these pins are defined in the SD library if building with SD support
56
+  // these pins are defined in the SD library if building with SD support
57 57
   #define SCK_PIN           9
58 58
   #define MISO_PIN         11
59 59
   #define MOSI_PIN         10

+ 17
- 17
Marlin/pins_AZTEEG_X3_PRO.h View File

@@ -15,10 +15,10 @@
15 15
 #define EXTRUDER_3_AUTO_FAN_PIN   5
16 16
 //
17 17
 //This section is to swap the MIN and MAX pins because the X3 Pro comes with only
18
-//MIN endstops soldered onto the board. Delta code wants the homing endstops to be 
18
+//MIN endstops soldered onto the board. Delta code wants the homing endstops to be
19 19
 //the MAX so I swapped them here.
20 20
 //
21
- #if ENABLED(DELTA)
21
+#if ENABLED(DELTA)
22 22
   #undef X_MIN_PIN
23 23
   #undef X_MAX_PIN
24 24
   #undef Y_MIN_PIN
@@ -32,14 +32,14 @@
32 32
   #define Y_MAX_PIN        14
33 33
   #define Z_MIN_PIN        19
34 34
   #define Z_MAX_PIN        18
35
- #endif
35
+#endif
36 36
 //
37
- #if ENABLED(Z_MIN_PROBE_ENDSTOP)
38
-//#undef Z_MIN_PIN
39
-//#define Z_MIN_PIN        15
37
+#if ENABLED(Z_MIN_PROBE_ENDSTOP)
38
+  //#undef Z_MIN_PIN
39
+  //#define Z_MIN_PIN        15
40 40
   // Define a pin to use as the signal pin on Arduino for the Z probe endstop.
41 41
   #define Z_MIN_PROBE_PIN  19
42
- #endif
42
+#endif
43 43
 //
44 44
 #define E2_STEP_PIN        23
45 45
 #define E2_DIR_PIN         25
@@ -74,32 +74,32 @@
74 74
 
75 75
 //
76 76
 //These Servo pins are for when they are defined. Tested for usage with bed leveling
77
-//on a Delta with 1 servo. Running through the Z servo endstop in code. 
77
+//on a Delta with 1 servo. Running through the Z servo endstop in code.
78 78
 //Physical wire attachment was done on EXT1 on the GND, 5V, and D47 pins.
79 79
 //
80 80
 #define SERVO0_PIN         47
81 81
 
82 82
 //LCD Pins//
83 83
 
84
- #if ENABLED(VIKI2) || ENABLED(miniVIKI)
84
+#if ENABLED(VIKI2) || ENABLED(miniVIKI)
85 85
   #define BEEPER_PIN       33
86
- // Pins for DOGM SPI LCD Support
86
+  // Pins for DOGM SPI LCD Support
87 87
   #define DOGLCD_A0        44
88 88
   #define DOGLCD_CS        45
89 89
   #define LCD_SCREEN_ROT_180
90
-  
91
- //The encoder and click button
90
+
91
+  //The encoder and click button
92 92
   #define BTN_EN1          22
93 93
   #define BTN_EN2           7
94 94
   #define BTN_ENC          39  //the click switch
95
- 
95
+
96 96
   #define SDSS             53
97 97
   #define SD_DETECT_PIN 49
98
-  
98
+
99 99
   #define KILL_PIN         31
100
- #endif
100
+#endif
101 101
 
102
- #if ENABLED(TEMP_STAT_LEDS)
102
+#if ENABLED(TEMP_STAT_LEDS)
103 103
   #define STAT_LED_RED     32
104 104
   #define STAT_LED_BLUE    35
105
- #endif
105
+#endif

+ 1
- 1
Marlin/pins_BRAINWAVE_PRO.h View File

@@ -57,7 +57,7 @@
57 57
 #define SD_DETECT_PIN      12
58 58
 
59 59
 #if DISABLED(SDSUPPORT)
60
-// these pins are defined in the SD library if building with SD support
60
+  // these pins are defined in the SD library if building with SD support
61 61
   #define SCK_PIN          21
62 62
   #define MISO_PIN         23
63 63
   #define MOSI_PIN         22

+ 2
- 2
Marlin/pins_GEN3_PLUS.h View File

@@ -37,9 +37,9 @@
37 37
 #define E0_ENABLE_PIN      13
38 38
 
39 39
 #define TEMP_0_PIN          0   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder)
40
-#define TEMP_1_PIN         -1   
40
+#define TEMP_1_PIN         -1
41 41
 #define TEMP_2_PIN         -1
42
-#define TEMP_BED_PIN        5   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)  
42
+#define TEMP_BED_PIN        5   // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed)
43 43
 #define SDPOWER            -1
44 44
 #define SDSS               4
45 45
 #define HEATER_2_PIN       -1

+ 1
- 1
Marlin/pins_GEN7_CUSTOM.h View File

@@ -3,7 +3,7 @@
3 3
  *
4 4
  * These Pins are assigned for the modified GEN7 Board from Alfons3.
5 5
  * Please review the pins and adjust them for your needs.
6
- */ 
6
+ */
7 7
 
8 8
 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
9 9
   #error Oops!  Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu.

+ 20
- 20
Marlin/pins_MEGACONTROLLER.h View File

@@ -25,7 +25,7 @@
25 25
 #define Y_DIR_PIN 66 // A12
26 26
 #define Y_ENABLE_PIN 64//A10
27 27
 #define Y_MIN_PIN 38
28
-#define Y_MAX_PIN 41 
28
+#define Y_MAX_PIN 41
29 29
 
30 30
 #define Z_STEP_PIN 68 // A14
31 31
 #define Z_DIR_PIN 69 // A15
@@ -81,24 +81,24 @@
81 81
 #endif
82 82
 
83 83
 #if ENABLED(MINIPANEL)
84
-    #define BEEPER_PIN 46
85
-    // Pins for DOGM SPI LCD Support
86
-    #define DOGLCD_A0  47
87
-    #define DOGLCD_CS  45
88
-    #define LCD_PIN_BL 44  // backlight LED on PA3
89
-    
90
-    #define KILL_PIN 12
91
-    // GLCD features
92
-    //#define LCD_CONTRAST 190
93
-    // Uncomment screen orientation
94
-      //#define LCD_SCREEN_ROT_90
95
-      //#define LCD_SCREEN_ROT_180
96
-      //#define LCD_SCREEN_ROT_270
97
-    //The encoder and click button
98
-    #define BTN_EN1 48
99
-    #define BTN_EN2 11
100
-    #define BTN_ENC 10  //the click switch
101
-    //not connected to a pin
102
-    #define SD_DETECT_PIN 49
84
+  #define BEEPER_PIN 46
85
+  // Pins for DOGM SPI LCD Support
86
+  #define DOGLCD_A0  47
87
+  #define DOGLCD_CS  45
88
+  #define LCD_PIN_BL 44  // backlight LED on PA3
89
+
90
+  #define KILL_PIN 12
91
+  // GLCD features
92
+  //#define LCD_CONTRAST 190
93
+  // Uncomment screen orientation
94
+  //#define LCD_SCREEN_ROT_90
95
+  //#define LCD_SCREEN_ROT_180
96
+  //#define LCD_SCREEN_ROT_270
97
+  //The encoder and click button
98
+  #define BTN_EN1 48
99
+  #define BTN_EN2 11
100
+  #define BTN_ENC 10  //the click switch
101
+  //not connected to a pin
102
+  #define SD_DETECT_PIN 49
103 103
 #endif //Minipanel
104 104
 

+ 6
- 6
Marlin/pins_MEGATRONICS_3.h View File

@@ -23,17 +23,17 @@
23 23
 #define X_DIR_PIN          57
24 24
 #define X_ENABLE_PIN       59
25 25
 #define X_MIN_PIN          37
26
-#define X_MAX_PIN          40 // put to -1 to disable  
26
+#define X_MAX_PIN          40 // put to -1 to disable
27 27
 
28
-#define Y_STEP_PIN         5 
29
-#define Y_DIR_PIN          17 
28
+#define Y_STEP_PIN         5
29
+#define Y_DIR_PIN          17
30 30
 #define Y_ENABLE_PIN       4
31 31
 #define Y_MIN_PIN          41
32 32
 #define Y_MAX_PIN          38 // put to -1 to disable
33 33
 
34
-#define Z_STEP_PIN         16 
34
+#define Z_STEP_PIN         16
35 35
 #define Z_DIR_PIN          11
36
-#define Z_ENABLE_PIN       3 
36
+#define Z_ENABLE_PIN       3
37 37
 #define Z_MIN_PIN          18
38 38
 #define Z_MAX_PIN          19 // put to -1 to disable
39 39
 
@@ -91,4 +91,4 @@
91 91
 #define BLEN_B 1
92 92
 #define BLEN_A 0
93 93
 
94
-#define SD_DETECT_PIN -1	// Megatronics doesn't use this
94
+#define SD_DETECT_PIN -1 // Megatronics doesn't use this

+ 1
- 1
Marlin/pins_MINIRAMBO.h View File

@@ -19,7 +19,7 @@
19 19
 #undef E0_MS2_PIN
20 20
 #undef E1_MS1_PIN
21 21
 #undef E1_MS2_PIN
22
- 
22
+
23 23
 #define X_STEP_PIN          37
24 24
 #define X_DIR_PIN           48
25 25
 #define X_MIN_PIN           12

+ 19
- 19
Marlin/pins_PRINTRBOARD.h View File

@@ -88,26 +88,26 @@
88 88
     #define SDSS   40 //use SD card on Panelolu2 (Teensyduino pin mapping)
89 89
   #endif // LCD_I2C_PANELOLU2
90 90
   //not connected to a pin
91
-  #define SD_DETECT_PIN -1    
91
+  #define SD_DETECT_PIN -1
92 92
 #endif // ULTRA_LCD && NEWPANEL
93 93
 
94 94
 #if ENABLED(VIKI2) || ENABLED(miniVIKI)
95
- #define BEEPER_PIN 32 //FastIO
96
- // Pins for DOGM SPI LCD Support
97
- #define DOGLCD_A0  42 //Non-FastIO
98
- #define DOGLCD_CS  43 //Non-FastIO
99
- #define LCD_SCREEN_ROT_180
100
- 
101
- //The encoder and click button (FastIO Pins)
102
- #define BTN_EN1 26 
103
- #define BTN_EN2 27
104
- #define BTN_ENC 47  //the click switch
105
-
106
- #define SDSS 45
107
- #define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test) 
108
-
109
- #if ENABLED(TEMP_STAT_LEDS)
110
-  #define STAT_LED_RED      12 //Non-FastIO
111
-  #define STAT_LED_BLUE     10 //Non-FastIO
112
- #endif  
95
+  #define BEEPER_PIN 32 //FastIO
96
+  // Pins for DOGM SPI LCD Support
97
+  #define DOGLCD_A0  42 //Non-FastIO
98
+  #define DOGLCD_CS  43 //Non-FastIO
99
+  #define LCD_SCREEN_ROT_180
100
+
101
+  //The encoder and click button (FastIO Pins)
102
+  #define BTN_EN1 26
103
+  #define BTN_EN2 27
104
+  #define BTN_ENC 47  //the click switch
105
+
106
+  #define SDSS 45
107
+  #define SD_DETECT_PIN -1 // FastIO (Manual says 72 I'm not certain cause I can't test)
108
+
109
+  #if ENABLED(TEMP_STAT_LEDS)
110
+    #define STAT_LED_RED      12 //Non-FastIO
111
+    #define STAT_LED_BLUE     10 //Non-FastIO
112
+  #endif
113 113
 #endif

+ 17
- 17
Marlin/pins_RAMBO.h View File

@@ -28,7 +28,7 @@
28 28
 #undef E0_MS2_PIN
29 29
 #undef E1_MS1_PIN
30 30
 #undef E1_MS2_PIN
31
- 
31
+
32 32
 #define X_STEP_PIN 37
33 33
 #define X_DIR_PIN 48
34 34
 #define X_MIN_PIN 12
@@ -89,7 +89,7 @@
89 89
 #define SDPOWER            -1
90 90
 #define SDSS               53
91 91
 #define LED_PIN            13
92
-#define FAN_PIN            8  
92
+#define FAN_PIN            8
93 93
 
94 94
 /**********************************************************
95 95
   Fan Pins
@@ -161,26 +161,26 @@
161 161
 #endif // ULTRA_LCD
162 162
 
163 163
 #if ENABLED(VIKI2) || ENABLED(miniVIKI)
164
- #define BEEPER_PIN 44
165
- // Pins for DOGM SPI LCD Support
166
- #define DOGLCD_A0  70 
167
- #define DOGLCD_CS  71 
168
- #define LCD_SCREEN_ROT_180
169
-  
170
- //The encoder and click button 
171
- #define BTN_EN1 85 
172
- #define BTN_EN2 84
173
- #define BTN_ENC 83  //the click switch
174
-
175
- #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board   
164
+  #define BEEPER_PIN 44
165
+  // Pins for DOGM SPI LCD Support
166
+  #define DOGLCD_A0  70
167
+  #define DOGLCD_CS  71
168
+  #define LCD_SCREEN_ROT_180
169
+
170
+  //The encoder and click button
171
+  #define BTN_EN1 85
172
+  #define BTN_EN2 84
173
+  #define BTN_ENC 83  //the click switch
174
+
175
+  #define SD_DETECT_PIN -1 // Pin 72 if using easy adapter board
176 176
 
177 177
   #if ENABLED(TEMP_STAT_LEDS)
178
-   #define STAT_LED_RED      22
179
-   #define STAT_LED_BLUE     32 
178
+    #define STAT_LED_RED      22
179
+    #define STAT_LED_BLUE     32
180 180
   #endif
181 181
 #endif // VIKI2/miniVIKI
182 182
 
183 183
 #if ENABLED(FILAMENT_SENSOR)
184
-  //Filip added pin for Filament sensor analog input 
184
+  //Filip added pin for Filament sensor analog input
185 185
   #define FILWIDTH_PIN        3
186 186
 #endif

+ 20
- 20
Marlin/pins_RAMPS_13.h View File

@@ -170,26 +170,26 @@
170 170
       #define DOGLCD_A0 27
171 171
       #define LCD_PIN_BL 33
172 172
     #elif ENABLED(MINIPANEL)
173
-       #define BEEPER_PIN 42
174
-       // Pins for DOGM SPI LCD Support
175
-       #define DOGLCD_A0  44
176
-       #define DOGLCD_CS  66
177
-       #define LCD_PIN_BL	65	// backlight LED on A11/D65
178
-       #define SDSS   53
179
-       
180
-       #define KILL_PIN 64
181
-       // GLCD features
182
-       //#define LCD_CONTRAST 190
183
-       // Uncomment screen orientation
184
-         //#define LCD_SCREEN_ROT_90
185
-         //#define LCD_SCREEN_ROT_180
186
-         //#define LCD_SCREEN_ROT_270
187
-       //The encoder and click button
188
-       #define BTN_EN1 40
189
-       #define BTN_EN2 63
190
-       #define BTN_ENC 59  //the click switch
191
-       //not connected to a pin
192
-       #define SD_DETECT_PIN 49
173
+      #define BEEPER_PIN 42
174
+      // Pins for DOGM SPI LCD Support
175
+      #define DOGLCD_A0  44
176
+      #define DOGLCD_CS  66
177
+      #define LCD_PIN_BL 65 // backlight LED on A11/D65
178
+      #define SDSS   53
179
+
180
+      #define KILL_PIN 64
181
+      // GLCD features
182
+      //#define LCD_CONTRAST 190
183
+      // Uncomment screen orientation
184
+      //#define LCD_SCREEN_ROT_90
185
+      //#define LCD_SCREEN_ROT_180
186
+      //#define LCD_SCREEN_ROT_270
187
+      //The encoder and click button
188
+      #define BTN_EN1 40
189
+      #define BTN_EN2 63
190
+      #define BTN_ENC 59  //the click switch
191
+      //not connected to a pin
192
+      #define SD_DETECT_PIN 49
193 193
 
194 194
     #else
195 195
 

+ 4
- 4
Marlin/pins_SANGUINOLOLU_11.h View File

@@ -95,9 +95,9 @@
95 95
         #define LCD_PINS_D4     17 //SCK (CLK) clock
96 96
         #define BEEPER_PIN      27 // Pin 27 is taken by LED_PIN, but Melzi LED does nothing with Marlin so this can be used for BEEPER_PIN. You can use this pin with M42 instead of BEEPER_PIN.
97 97
       #else         // Sanguinololu 1.3
98
-        #define LCD_PINS_RS      4 
99
-        #define LCD_PINS_ENABLE 17 
100
-        #define LCD_PINS_D4     30 
98
+        #define LCD_PINS_RS      4
99
+        #define LCD_PINS_ENABLE 17
100
+        #define LCD_PINS_D4     30
101 101
         #define LCD_PINS_D5     29
102 102
         #define LCD_PINS_D6     28
103 103
         #define LCD_PINS_D7     27
@@ -110,7 +110,7 @@
110 110
       #define LCD_CONTRAST       1
111 111
 
112 112
     #endif
113
-  
113
+
114 114
     // Uncomment screen orientation
115 115
     #define LCD_SCREEN_ROT_0
116 116
     //#define LCD_SCREEN_ROT_90

+ 1
- 1
Marlin/pins_SAV_MKI.h View File

@@ -46,7 +46,7 @@
46 46
 #define TEMP_2_PIN         -1
47 47
 
48 48
 #if DISABLED(SDSUPPORT)
49
-   // these pins are defined in the SD library if building with SD support
49
+  // these pins are defined in the SD library if building with SD support
50 50
   #define SCK_PIN          9
51 51
   #define MISO_PIN         11
52 52
   #define MOSI_PIN         10

+ 19
- 19
Marlin/pins_TEENSY2.h View File

@@ -11,32 +11,32 @@
11 11
  *
12 12
  *                               USB
13 13
  *           GND       GND |-----#####-----| +5V              ATX +5SB
14
- *     ATX PS_ON    PWM 27 |b7   #####   b6| 26    PWM*       Stepper Enable 
15
- *                  PWM  0 |d0           b5| 25    PWM*        
16
- *                  PWM  1 |d1           b4| 24    PWM        
14
+ *     ATX PS_ON    PWM 27 |b7   #####   b6| 26    PWM*       Stepper Enable
15
+ *                  PWM  0 |d0           b5| 25    PWM*
16
+ *                  PWM  1 |d1           b4| 24    PWM
17 17
  *         X_MIN         2 |d2           b3| 23               MISO_PIN
18 18
  *         Y_MIN         3 |d3           b2| 22               MOSI_PIN
19
- *         Z_MIN         4 |d4  * *      b1| 21               SCK_PIN       
20
- *                       5 |d5  e e      b0| 20               SDSS              
21
- *                LED    6 |d6  5 4      e7| 19               
22
- *                       7 |d7           e6| 18               
23
- *       LCD  RS         8 |e0             | GND              
24
- *       LCD  EN         9 |e1   a4 a0    R| AREF             
25
- *       LCD  D4        10 |c0   a5 a1   f0| 38 A0            ENC_1           
19
+ *         Z_MIN         4 |d4  * *      b1| 21               SCK_PIN
20
+ *                       5 |d5  e e      b0| 20               SDSS
21
+ *                LED    6 |d6  5 4      e7| 19
22
+ *                       7 |d7           e6| 18
23
+ *       LCD  RS         8 |e0             | GND
24
+ *       LCD  EN         9 |e1   a4 a0    R| AREF
25
+ *       LCD  D4        10 |c0   a5 a1   f0| 38 A0            ENC_1
26 26
  *       LCD  D5        11 |c1   a6 a2   f1| 39 A1            ENC_2
27 27
  *       LCD  D6        12 |c2   a7 a3   f2| 40 A2            ENC_CLK
28
- *       LCD  D6        13 |c3           f3| 41 A3            
29
- *      Bed Heat    PWM 14 |c4   V G R   f4| 42 A4            
30
- * Extruder Heat    PWM 15 |c5   c n S   f5| 43 A5            
28
+ *       LCD  D6        13 |c3           f3| 41 A3
29
+ *      Bed Heat    PWM 14 |c4   V G R   f4| 42 A4
30
+ * Extruder Heat    PWM 15 |c5   c n S   f5| 43 A5
31 31
  *           Fan    PWM 16 |c6   c d T   f6| 44 A6            Bed TC
32
- *                      17 |c7   * * *   f7| 45 A7            Extruder TC * 4.7k * +5        
33
- *                         -----------------                  
32
+ *                      17 |c7   * * *   f7| 45 A7            Extruder TC * 4.7k * +5
33
+ *                         -----------------
34 34
  *
35 35
  *      Interior E4: 36, INT4
36 36
  *      Interior E5: 37, INT5
37 37
  *      Interior PA0-7: 28-35  -- Printrboard and Teensylu use these pins for step & direction:
38 38
  *             T++ PA Signal  Marlin
39
- *    
39
+ *
40 40
  *       Z STEP  32 a4  a0 28 X STEP
41 41
  *       Z DIR   33 a5  a1 29 X DIR
42 42
  *       E STEP  34 a6  a2 30 Y STEP
@@ -56,7 +56,7 @@
56 56
 
57 57
 #define X_STEP_PIN         28 //  0 Marlin
58 58
 #define X_DIR_PIN          29 //  1 Marlin
59
-#define X_ENABLE_PIN       26 
59
+#define X_ENABLE_PIN       26
60 60
 
61 61
 #define Y_STEP_PIN         30 //  2 Marlin
62 62
 #define Y_DIR_PIN          31 //  3
@@ -86,7 +86,7 @@
86 86
 #define TEMP_2_PIN         -1
87 87
 
88 88
 #define SDPOWER            -1
89
-#define SD_DETECT_PIN      -1   
89
+#define SD_DETECT_PIN      -1
90 90
 #define SDSS               20 // 8
91 91
 #define LED_PIN             6
92 92
 #define PS_ON_PIN          27
@@ -94,7 +94,7 @@
94 94
 #define ALARM_PIN          -1
95 95
 
96 96
 #if DISABLED(SDSUPPORT)
97
-// these pins are defined in the SD library if building with SD support
97
+  // these pins are defined in the SD library if building with SD support
98 98
   #define SCK_PIN         21 // 9
99 99
   #define MISO_PIN        23 // 11
100 100
   #define MOSI_PIN        22 // 10

+ 2
- 2
Marlin/pins_TEENSYLU.h View File

@@ -61,7 +61,7 @@
61 61
 #define ALARM_PIN          -1
62 62
 
63 63
 #if DISABLED(SDSUPPORT)
64
-// these pins are defined in the SD library if building with SD support
64
+  // these pins are defined in the SD library if building with SD support
65 65
   #define SCK_PIN           9
66 66
   #define MISO_PIN         11
67 67
   #define MOSI_PIN         10
@@ -78,7 +78,7 @@
78 78
     #define SDSS           40  //use SD card on Panelolu2 (Teensyduino pin mapping)
79 79
   #endif // LCD_I2C_PANELOLU2
80 80
 
81
-  #define SD_DETECT_PIN    -1    
81
+  #define SD_DETECT_PIN    -1
82 82
 
83 83
 #endif // ULTRA_LCD && NEWPANEL
84 84
 

+ 41
- 43
Marlin/planner.cpp View File

@@ -118,7 +118,7 @@ uint8_t g_uc_extruder_last_move[EXTRUDERS] = { 0 };
118 118
   // Old direction bits. Used for speed calculations
119 119
   static unsigned char old_direction_bits = 0;
120 120
   // Segment times (in µs). Used for speed calculations
121
-  static long axis_segment_time[2][3] = { {MAX_FREQ_TIME+1,0,0}, {MAX_FREQ_TIME+1,0,0} };
121
+  static long axis_segment_time[2][3] = { {MAX_FREQ_TIME + 1, 0, 0}, {MAX_FREQ_TIME + 1, 0, 0} };
122 122
 #endif
123 123
 
124 124
 #if ENABLED(FILAMENT_SENSOR)
@@ -157,7 +157,7 @@ FORCE_INLINE float intersection_distance(float initial_rate, float final_rate, f
157 157
 
158 158
 // Calculates trapezoid parameters so that the entry- and exit-speed is compensated by the provided factors.
159 159
 
160
-void calculate_trapezoid_for_block(block_t *block, float entry_factor, float exit_factor) {
160
+void calculate_trapezoid_for_block(block_t* block, float entry_factor, float exit_factor) {
161 161
   unsigned long initial_rate = ceil(block->nominal_rate * entry_factor); // (step/min)
162 162
   unsigned long final_rate = ceil(block->nominal_rate * exit_factor); // (step/min)
163 163
 
@@ -182,17 +182,17 @@ void calculate_trapezoid_for_block(block_t *block, float entry_factor, float exi
182 182
     plateau_steps = 0;
183 183
   }
184 184
 
185
-#if ENABLED(ADVANCE)
186
-  volatile long initial_advance = block->advance * entry_factor * entry_factor;
187
-  volatile long final_advance = block->advance * exit_factor * exit_factor;
188
-#endif // ADVANCE
185
+  #if ENABLED(ADVANCE)
186
+    volatile long initial_advance = block->advance * entry_factor * entry_factor;
187
+    volatile long final_advance = block->advance * exit_factor * exit_factor;
188
+  #endif // ADVANCE
189 189
 
190 190
   // block->accelerate_until = accelerate_steps;
191 191
   // block->decelerate_after = accelerate_steps+plateau_steps;
192 192
   CRITICAL_SECTION_START;  // Fill variables used by the stepper in a critical section
193 193
   if (!block->busy) { // Don't update variables if block is busy.
194 194
     block->accelerate_until = accelerate_steps;
195
-    block->decelerate_after = accelerate_steps+plateau_steps;
195
+    block->decelerate_after = accelerate_steps + plateau_steps;
196 196
     block->initial_rate = initial_rate;
197 197
     block->final_rate = final_rate;
198 198
     #if ENABLED(ADVANCE)
@@ -219,7 +219,7 @@ FORCE_INLINE float max_allowable_speed(float acceleration, float target_velocity
219 219
 
220 220
 
221 221
 // The kernel called by planner_recalculate() when scanning the plan from last to first entry.
222
-void planner_reverse_pass_kernel(block_t *previous, block_t *current, block_t *next) {
222
+void planner_reverse_pass_kernel(block_t* previous, block_t* current, block_t* next) {
223 223
   if (!current) return;
224 224
   UNUSED(previous);
225 225
 
@@ -233,7 +233,7 @@ void planner_reverse_pass_kernel(block_t *previous, block_t *current, block_t *n
233 233
       // for max allowable speed if block is decelerating and nominal length is false.
234 234
       if (!current->nominal_length_flag && current->max_entry_speed > next->entry_speed) {
235 235
         current->entry_speed = min(current->max_entry_speed,
236
-          max_allowable_speed(-current->acceleration, next->entry_speed, current->millimeters));
236
+                                   max_allowable_speed(-current->acceleration, next->entry_speed, current->millimeters));
237 237
       }
238 238
       else {
239 239
         current->entry_speed = current->max_entry_speed;
@@ -256,11 +256,11 @@ void planner_reverse_pass() {
256 256
 
257 257
   if (BLOCK_MOD(block_buffer_head - tail + BLOCK_BUFFER_SIZE) > 3) { // moves queued
258 258
     block_index = BLOCK_MOD(block_buffer_head - 3);
259
-    block_t *block[3] = { NULL, NULL, NULL };
259
+    block_t* block[3] = { NULL, NULL, NULL };
260 260
     while (block_index != tail) {
261 261
       block_index = prev_block_index(block_index);
262
-      block[2]= block[1];
263
-      block[1]= block[0];
262
+      block[2] = block[1];
263
+      block[1] = block[0];
264 264
       block[0] = &block_buffer[block_index];
265 265
       planner_reverse_pass_kernel(block[0], block[1], block[2]);
266 266
     }
@@ -268,7 +268,7 @@ void planner_reverse_pass() {
268 268
 }
269 269
 
270 270
 // The kernel called by planner_recalculate() when scanning the plan from first to last entry.
271
-void planner_forward_pass_kernel(block_t *previous, block_t *current, block_t *next) {
271
+void planner_forward_pass_kernel(block_t* previous, block_t* current, block_t* next) {
272 272
   if (!previous) return;
273 273
   UNUSED(next);
274 274
 
@@ -279,8 +279,7 @@ void planner_forward_pass_kernel(block_t *previous, block_t *current, block_t *n
279 279
   if (!previous->nominal_length_flag) {
280 280
     if (previous->entry_speed < current->entry_speed) {
281 281
       double entry_speed = min(current->entry_speed,
282
-        max_allowable_speed(-previous->acceleration, previous->entry_speed, previous->millimeters));
283
-
282
+                               max_allowable_speed(-previous->acceleration, previous->entry_speed, previous->millimeters));
284 283
       // Check for junction speed change
285 284
       if (current->entry_speed != entry_speed) {
286 285
         current->entry_speed = entry_speed;
@@ -294,7 +293,7 @@ void planner_forward_pass_kernel(block_t *previous, block_t *current, block_t *n
294 293
 // implements the forward pass.
295 294
 void planner_forward_pass() {
296 295
   uint8_t block_index = block_buffer_tail;
297
-  block_t *block[3] = { NULL, NULL, NULL };
296
+  block_t* block[3] = { NULL, NULL, NULL };
298 297
 
299 298
   while (block_index != block_buffer_head) {
300 299
     block[0] = block[1];
@@ -311,8 +310,8 @@ void planner_forward_pass() {
311 310
 // updating the blocks.
312 311
 void planner_recalculate_trapezoids() {
313 312
   int8_t block_index = block_buffer_tail;
314
-  block_t *current;
315
-  block_t *next = NULL;
313
+  block_t* current;
314
+  block_t* next = NULL;
316 315
 
317 316
   while (block_index != block_buffer_head) {
318 317
     current = next;
@@ -326,7 +325,7 @@ void planner_recalculate_trapezoids() {
326 325
         current->recalculate_flag = false; // Reset current only to ensure next trapezoid is computed
327 326
       }
328 327
     }
329
-    block_index = next_block_index( block_index );
328
+    block_index = next_block_index(block_index);
330 329
   }
331 330
   // Last/newest block in buffer. Exit speed is set with MINIMUM_PLANNER_SPEED. Always recalculated.
332 331
   if (next) {
@@ -362,7 +361,7 @@ void planner_recalculate() {
362 361
 void plan_init() {
363 362
   block_buffer_head = block_buffer_tail = 0;
364 363
   memset(position, 0, sizeof(position)); // clear position
365
-  for (int i=0; i<NUM_AXIS; i++) previous_speed[i] = 0.0;
364
+  for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0;
366 365
   previous_nominal_speed = 0.0;
367 366
 }
368 367
 
@@ -378,7 +377,7 @@ void plan_init() {
378 377
     uint8_t block_index = block_buffer_tail;
379 378
 
380 379
     while (block_index != block_buffer_head) {
381
-      block_t *block = &block_buffer[block_index];
380
+      block_t* block = &block_buffer[block_index];
382 381
       if (block->steps[X_AXIS] || block->steps[Y_AXIS] || block->steps[Z_AXIS]) {
383 382
         float se = (float)block->steps[E_AXIS] / block->step_event_count * block->nominal_speed; // mm/sec;
384 383
         if (se > high) high = se;
@@ -395,7 +394,7 @@ void plan_init() {
395 394
     oldt = t;
396 395
     setTargetHotend0(t);
397 396
   }
398
-#endif
397
+#endif //AUTOTEMP
399 398
 
400 399
 void check_axes_activity() {
401 400
   unsigned char axis_active[NUM_AXIS] = { 0 },
@@ -405,7 +404,7 @@ void check_axes_activity() {
405 404
                   tail_e_to_p_pressure = EtoPPressure;
406 405
   #endif
407 406
 
408
-  block_t *block;
407
+  block_t* block;
409 408
 
410 409
   if (blocks_queued()) {
411 410
     uint8_t block_index = block_buffer_tail;
@@ -417,7 +416,7 @@ void check_axes_activity() {
417 416
     #endif
418 417
     while (block_index != block_buffer_head) {
419 418
       block = &block_buffer[block_index];
420
-      for (int i=0; i<NUM_AXIS; i++) if (block->steps[i]) axis_active[i]++;
419
+      for (int i = 0; i < NUM_AXIS; i++) if (block->steps[i]) axis_active[i]++;
421 420
       block_index = next_block_index(block_index);
422 421
     }
423 422
   }
@@ -465,10 +464,10 @@ void check_axes_activity() {
465 464
 
466 465
   #if ENABLED(BARICUDA)
467 466
     #if HAS_HEATER_1
468
-      analogWrite(HEATER_1_PIN,tail_valve_pressure);
467
+      analogWrite(HEATER_1_PIN, tail_valve_pressure);
469 468
     #endif
470 469
     #if HAS_HEATER_2
471
-      analogWrite(HEATER_2_PIN,tail_e_to_p_pressure);
470
+      analogWrite(HEATER_2_PIN, tail_e_to_p_pressure);
472 471
     #endif
473 472
   #endif
474 473
 }
@@ -479,9 +478,9 @@ float junction_deviation = 0.1;
479 478
 // mm. Microseconds specify how many microseconds the move should take to perform. To aid acceleration
480 479
 // calculation the caller must also provide the physical length of the line in millimeters.
481 480
 #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING)
482
-  void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, const uint8_t extruder)
481
+  void plan_buffer_line(float x, float y, float z, const float& e, float feed_rate, const uint8_t extruder)
483 482
 #else
484
-  void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t extruder)
483
+  void plan_buffer_line(const float& x, const float& y, const float& z, const float& e, float feed_rate, const uint8_t extruder)
485 484
 #endif  // AUTO_BED_LEVELING_FEATURE
486 485
 {
487 486
   // Calculate the buffer head after we push this byte
@@ -536,7 +535,7 @@ float junction_deviation = 0.1;
536 535
   #endif
537 536
 
538 537
   // Prepare to set up new block
539
-  block_t *block = &block_buffer[block_buffer_head];
538
+  block_t* block = &block_buffer[block_buffer_head];
540 539
 
541 540
   // Mark block as not busy (Not executed by the stepper interrupt)
542 541
   block->busy = false;
@@ -626,7 +625,7 @@ float junction_deviation = 0.1;
626 625
   if (block->steps[E_AXIS]) {
627 626
     if (DISABLE_INACTIVE_EXTRUDER) { //enable only selected extruder
628 627
 
629
-      for (int i=0; i<EXTRUDERS; i++)
628
+      for (int i = 0; i < EXTRUDERS; i++)
630 629
         if (g_uc_extruder_last_move[i] > 0) g_uc_extruder_last_move[i]--;
631 630
 
632 631
       switch(extruder) {
@@ -883,9 +882,9 @@ float junction_deviation = 0.1;
883 882
     // Compute path unit vector
884 883
     double unit_vec[3];
885 884
 
886
-    unit_vec[X_AXIS] = delta_mm[X_AXIS]*inverse_millimeters;
887
-    unit_vec[Y_AXIS] = delta_mm[Y_AXIS]*inverse_millimeters;
888
-    unit_vec[Z_AXIS] = delta_mm[Z_AXIS]*inverse_millimeters;
885
+    unit_vec[X_AXIS] = delta_mm[X_AXIS] * inverse_millimeters;
886
+    unit_vec[Y_AXIS] = delta_mm[Y_AXIS] * inverse_millimeters;
887
+    unit_vec[Z_AXIS] = delta_mm[Z_AXIS] * inverse_millimeters;
889 888
 
890 889
     // Compute maximum allowable entry speed at junction by centripetal acceleration approximation.
891 890
     // Let a circle be tangent to both previous and current path line segments, where the junction
@@ -903,18 +902,17 @@ float junction_deviation = 0.1;
903 902
       // Compute cosine of angle between previous and current path. (prev_unit_vec is negative)
904 903
       // NOTE: Max junction velocity is computed without sin() or acos() by trig half angle identity.
905 904
       double cos_theta = - previous_unit_vec[X_AXIS] * unit_vec[X_AXIS]
906
-        - previous_unit_vec[Y_AXIS] * unit_vec[Y_AXIS]
907
-        - previous_unit_vec[Z_AXIS] * unit_vec[Z_AXIS] ;
908
-
905
+                         - previous_unit_vec[Y_AXIS] * unit_vec[Y_AXIS]
906
+                         - previous_unit_vec[Z_AXIS] * unit_vec[Z_AXIS] ;
909 907
       // Skip and use default max junction speed for 0 degree acute junction.
910 908
       if (cos_theta < 0.95) {
911
-        vmax_junction = min(previous_nominal_speed,block->nominal_speed);
909
+        vmax_junction = min(previous_nominal_speed, block->nominal_speed);
912 910
         // Skip and avoid divide by zero for straight junctions at 180 degrees. Limit to min() of nominal speeds.
913 911
         if (cos_theta > -0.95) {
914 912
           // Compute maximum junction velocity based on maximum acceleration and junction deviation
915
-          double sin_theta_d2 = sqrt(0.5*(1.0-cos_theta)); // Trig half angle identity. Always positive.
913
+          double sin_theta_d2 = sqrt(0.5 * (1.0 - cos_theta)); // Trig half angle identity. Always positive.
916 914
           vmax_junction = min(vmax_junction,
917
-          sqrt(block->acceleration * junction_deviation * sin_theta_d2/(1.0-sin_theta_d2)) );
915
+                              sqrt(block->acceleration * junction_deviation * sin_theta_d2 / (1.0 - sin_theta_d2)));
918 916
         }
919 917
       }
920 918
     }
@@ -1018,9 +1016,9 @@ float junction_deviation = 0.1;
1018 1016
 #endif // AUTO_BED_LEVELING_FEATURE && !DELTA
1019 1017
 
1020 1018
 #if ENABLED(AUTO_BED_LEVELING_FEATURE) || ENABLED(MESH_BED_LEVELING)
1021
-  void plan_set_position(float x, float y, float z, const float &e)
1019
+  void plan_set_position(float x, float y, float z, const float& e)
1022 1020
 #else
1023
-  void plan_set_position(const float &x, const float &y, const float &z, const float &e)
1021
+  void plan_set_position(const float& x, const float& y, const float& z, const float& e)
1024 1022
 #endif // AUTO_BED_LEVELING_FEATURE || MESH_BED_LEVELING
1025 1023
   {
1026 1024
     #if ENABLED(MESH_BED_LEVELING)
@@ -1036,10 +1034,10 @@ float junction_deviation = 0.1;
1036 1034
     st_set_position(nx, ny, nz, ne);
1037 1035
     previous_nominal_speed = 0.0; // Resets planner junction speeds. Assumes start from rest.
1038 1036
 
1039
-    for (int i=0; i<NUM_AXIS; i++) previous_speed[i] = 0.0;
1037
+    for (int i = 0; i < NUM_AXIS; i++) previous_speed[i] = 0.0;
1040 1038
   }
1041 1039
 
1042
-void plan_set_e_position(const float &e) {
1040
+void plan_set_e_position(const float& e) {
1043 1041
   position[E_AXIS] = lround(e * axis_steps_per_unit[E_AXIS]);
1044 1042
   st_set_e_position(position[E_AXIS]);
1045 1043
 }

+ 14
- 14
Marlin/planner.h View File

@@ -18,7 +18,7 @@
18 18
   along with Grbl.  If not, see <http://www.gnu.org/licenses/>.
19 19
 */
20 20
 
21
-// This module is to be considered a sub-module of stepper.c. Please don't include 
21
+// This module is to be considered a sub-module of stepper.c. Please don't include
22 22
 // this file from any other module.
23 23
 
24 24
 #ifndef PLANNER_H
@@ -26,7 +26,7 @@
26 26
 
27 27
 #include "Marlin.h"
28 28
 
29
-// This struct is used when buffering the setup for each linear movement "nominal" values are as specified in 
29
+// This struct is used when buffering the setup for each linear movement "nominal" values are as specified in
30 30
 // the source g-code and may never actually be reached if acceleration management is active.
31 31
 typedef struct {
32 32
   // Fields used by the bresenham algorithm for tracing the line
@@ -46,7 +46,7 @@ typedef struct {
46 46
 
47 47
   // Fields used by the motion planner to manage acceleration
48 48
   // float speed_x, speed_y, speed_z, speed_e;          // Nominal mm/sec for each axis
49
-  float nominal_speed;                               // The nominal speed for this block in mm/sec 
49
+  float nominal_speed;                               // The nominal speed for this block in mm/sec
50 50
   float entry_speed;                                 // Entry speed at previous-current junction in mm/sec
51 51
   float max_entry_speed;                             // Maximum allowable junction entry speed in mm/sec
52 52
   float millimeters;                                 // The total travel of this block in mm
@@ -55,8 +55,8 @@ typedef struct {
55 55
   unsigned char nominal_length_flag;                 // Planner flag for nominal speed always reached
56 56
 
57 57
   // Settings for the trapezoid generator
58
-  unsigned long nominal_rate;                        // The nominal step rate for this block in step_events/sec 
59
-  unsigned long initial_rate;                        // The jerk-adjusted step rate at start of block  
58
+  unsigned long nominal_rate;                        // The nominal step rate for this block in step_events/sec
59
+  unsigned long initial_rate;                        // The jerk-adjusted step rate at start of block
60 60
   unsigned long final_rate;                          // The minimal rate at exit
61 61
   unsigned long acceleration_st;                     // acceleration steps/sec^2
62 62
   unsigned long fan_speed;
@@ -69,7 +69,7 @@ typedef struct {
69 69
 
70 70
 #define BLOCK_MOD(n) ((n)&(BLOCK_BUFFER_SIZE-1))
71 71
 
72
-// Initialize the motion plan subsystem      
72
+// Initialize the motion plan subsystem
73 73
 void plan_init();
74 74
 
75 75
 void check_axes_activity();
@@ -97,23 +97,23 @@ FORCE_INLINE uint8_t movesplanned() { return BLOCK_MOD(block_buffer_head - block
97 97
    * Add a new linear movement to the buffer. x, y, z are the signed, absolute target position in
98 98
    * millimeters. Feed rate specifies the (target) speed of the motion.
99 99
    */
100
-  void plan_buffer_line(float x, float y, float z, const float &e, float feed_rate, const uint8_t extruder);
100
+  void plan_buffer_line(float x, float y, float z, const float& e, float feed_rate, const uint8_t extruder);
101 101
 
102 102
   /**
103 103
    * Set the planner positions. Used for G92 instructions.
104 104
    * Multiplies by axis_steps_per_unit[] to set stepper positions.
105 105
    * Clears previous speed values.
106 106
    */
107
-  void plan_set_position(float x, float y, float z, const float &e);
107
+  void plan_set_position(float x, float y, float z, const float& e);
108 108
 
109 109
 #else
110 110
 
111
-  void plan_buffer_line(const float &x, const float &y, const float &z, const float &e, float feed_rate, const uint8_t extruder);
112
-  void plan_set_position(const float &x, const float &y, const float &z, const float &e);
111
+  void plan_buffer_line(const float& x, const float& y, const float& z, const float& e, float feed_rate, const uint8_t extruder);
112
+  void plan_set_position(const float& x, const float& y, const float& z, const float& e);
113 113
 
114 114
 #endif // AUTO_BED_LEVELING_FEATURE || MESH_BED_LEVELING
115 115
 
116
-void plan_set_e_position(const float &e);
116
+void plan_set_e_position(const float& e);
117 117
 
118 118
 //===========================================================================
119 119
 //============================= public variables ============================
@@ -142,7 +142,7 @@ extern unsigned long axis_steps_per_sqr_second[NUM_AXIS];
142 142
 
143 143
 extern block_t block_buffer[BLOCK_BUFFER_SIZE];            // A ring buffer for motion instructions
144 144
 extern volatile unsigned char block_buffer_head;           // Index of the next block to be pushed
145
-extern volatile unsigned char block_buffer_tail; 
145
+extern volatile unsigned char block_buffer_tail;
146 146
 
147 147
 // Returns true if the buffer has a queued block, false otherwise
148 148
 FORCE_INLINE bool blocks_queued() { return (block_buffer_head != block_buffer_tail); }
@@ -155,9 +155,9 @@ FORCE_INLINE void plan_discard_current_block() {
155 155
 }
156 156
 
157 157
 // Gets the current block. Returns NULL if buffer empty
158
-FORCE_INLINE block_t *plan_get_current_block() {
158
+FORCE_INLINE block_t* plan_get_current_block() {
159 159
   if (blocks_queued()) {
160
-    block_t *block = &block_buffer[block_buffer_tail];
160
+    block_t* block = &block_buffer[block_buffer_tail];
161 161
     block->busy = true;
162 162
     return block;
163 163
   }

+ 366
- 702
Marlin/qr_solve.cpp
File diff suppressed because it is too large
View File


+ 16
- 16
Marlin/qr_solve.h View File

@@ -2,21 +2,21 @@
2 2
 
3 3
 #if ENABLED(AUTO_BED_LEVELING_GRID)
4 4
 
5
-void daxpy ( int n, double da, double dx[], int incx, double dy[], int incy );
6
-double ddot ( int n, double dx[], int incx, double dy[], int incy );
7
-double dnrm2 ( int n, double x[], int incx );
8
-void dqrank ( double a[], int lda, int m, int n, double tol, int *kr, 
9
-  int jpvt[], double qraux[] );
10
-void dqrdc ( double a[], int lda, int n, int p, double qraux[], int jpvt[], 
11
-  double work[], int job );
12
-int dqrls ( double a[], int lda, int m, int n, double tol, int *kr, double b[], 
13
-  double x[], double rsd[], int jpvt[], double qraux[], int itask );
14
-void dqrlss ( double a[], int lda, int m, int n, int kr, double b[], double x[], 
15
-  double rsd[], int jpvt[], double qraux[] );
16
-int dqrsl ( double a[], int lda, int n, int k, double qraux[], double y[], 
17
-  double qy[], double qty[], double b[], double rsd[], double ab[], int job );
18
-void dscal ( int n, double sa, double x[], int incx );
19
-void dswap ( int n, double x[], int incx, double y[], int incy );
20
-void qr_solve ( double x[], int m, int n, double a[], double b[] );
5
+void daxpy(int n, double da, double dx[], int incx, double dy[], int incy);
6
+double ddot(int n, double dx[], int incx, double dy[], int incy);
7
+double dnrm2(int n, double x[], int incx);
8
+void dqrank(double a[], int lda, int m, int n, double tol, int* kr,
9
+            int jpvt[], double qraux[]);
10
+void dqrdc(double a[], int lda, int n, int p, double qraux[], int jpvt[],
11
+           double work[], int job);
12
+int dqrls(double a[], int lda, int m, int n, double tol, int* kr, double b[],
13
+          double x[], double rsd[], int jpvt[], double qraux[], int itask);
14
+void dqrlss(double a[], int lda, int m, int n, int kr, double b[], double x[],
15
+            double rsd[], int jpvt[], double qraux[]);
16
+int dqrsl(double a[], int lda, int n, int k, double qraux[], double y[],
17
+          double qy[], double qty[], double b[], double rsd[], double ab[], int job);
18
+void dscal(int n, double sa, double x[], int incx);
19
+void dswap(int n, double x[], int incx, double y[], int incy);
20
+void qr_solve(double x[], int m, int n, double a[], double b[]);
21 21
 
22 22
 #endif

+ 15
- 15
Marlin/servo.cpp View File

@@ -43,7 +43,7 @@
43 43
  detach()    - Stops an attached servos from pulsing its i/o pin.
44 44
 
45 45
 */
46
-#include "Configuration.h" 
46
+#include "Configuration.h"
47 47
 
48 48
 #if HAS_SERVOS
49 49
 
@@ -76,23 +76,23 @@ uint8_t ServoCount = 0;                                     // the total number
76 76
 
77 77
 /************ static functions common to all instances ***********************/
78 78
 
79
-static inline void handle_interrupts(timer16_Sequence_t timer, volatile uint16_t *TCNTn, volatile uint16_t* OCRnA) {
79
+static inline void handle_interrupts(timer16_Sequence_t timer, volatile uint16_t* TCNTn, volatile uint16_t* OCRnA) {
80 80
   if (Channel[timer] < 0)
81 81
     *TCNTn = 0; // channel set to -1 indicated that refresh interval completed so reset the timer
82 82
   else {
83
-    if (SERVO_INDEX(timer,Channel[timer]) < ServoCount && SERVO(timer,Channel[timer]).Pin.isActive)
84
-      digitalWrite( SERVO(timer,Channel[timer]).Pin.nbr,LOW); // pulse this channel low if activated
83
+    if (SERVO_INDEX(timer, Channel[timer]) < ServoCount && SERVO(timer, Channel[timer]).Pin.isActive)
84
+      digitalWrite(SERVO(timer, Channel[timer]).Pin.nbr, LOW); // pulse this channel low if activated
85 85
   }
86 86
 
87 87
   Channel[timer]++;    // increment to the next channel
88
-  if (SERVO_INDEX(timer,Channel[timer]) < ServoCount && Channel[timer] < SERVOS_PER_TIMER) {
89
-    *OCRnA = *TCNTn + SERVO(timer,Channel[timer]).ticks;
90
-    if (SERVO(timer,Channel[timer]).Pin.isActive)     // check if activated
91
-      digitalWrite( SERVO(timer,Channel[timer]).Pin.nbr,HIGH); // its an active channel so pulse it high
88
+  if (SERVO_INDEX(timer, Channel[timer]) < ServoCount && Channel[timer] < SERVOS_PER_TIMER) {
89
+    *OCRnA = *TCNTn + SERVO(timer, Channel[timer]).ticks;
90
+    if (SERVO(timer, Channel[timer]).Pin.isActive)    // check if activated
91
+      digitalWrite(SERVO(timer, Channel[timer]).Pin.nbr, HIGH); // its an active channel so pulse it high
92 92
   }
93 93
   else {
94 94
     // finished all channels so wait for the refresh period to expire before starting over
95
-    if ( ((unsigned)*TCNTn) + 4 < usToTicks(REFRESH_INTERVAL) )  // allow a few ticks to ensure the next OCR1A not missed
95
+    if (((unsigned)*TCNTn) + 4 < usToTicks(REFRESH_INTERVAL))    // allow a few ticks to ensure the next OCR1A not missed
96 96
       *OCRnA = (unsigned int)usToTicks(REFRESH_INTERVAL);
97 97
     else
98 98
       *OCRnA = *TCNTn + 4;  // at least REFRESH_INTERVAL has elapsed
@@ -159,7 +159,7 @@ static void initISR(timer16_Sequence_t timer) {
159 159
       TCNT3 = 0;              // clear the timer count
160 160
       #ifdef __AVR_ATmega128__
161 161
         TIFR |= _BV(OCF3A);     // clear any pending interrupts;
162
-      	ETIMSK |= _BV(OCIE3A);  // enable the output compare interrupt
162
+        ETIMSK |= _BV(OCIE3A);  // enable the output compare interrupt
163 163
       #else
164 164
         TIFR3 = _BV(OCF3A);     // clear any pending interrupts;
165 165
         TIMSK3 =  _BV(OCIE3A) ; // enable the output compare interrupt
@@ -219,8 +219,8 @@ static void finISR(timer16_Sequence_t timer) {
219 219
 
220 220
 static boolean isTimerActive(timer16_Sequence_t timer) {
221 221
   // returns true if any servo is active on this timer
222
-  for(uint8_t channel=0; channel < SERVOS_PER_TIMER; channel++) {
223
-    if (SERVO(timer,channel).Pin.isActive)
222
+  for (uint8_t channel = 0; channel < SERVOS_PER_TIMER; channel++) {
223
+    if (SERVO(timer, channel).Pin.isActive)
224 224
       return true;
225 225
   }
226 226
   return false;
@@ -230,7 +230,7 @@ static boolean isTimerActive(timer16_Sequence_t timer) {
230 230
 /****************** end of static functions ******************************/
231 231
 
232 232
 Servo::Servo() {
233
-  if ( ServoCount < MAX_SERVOS) {
233
+  if (ServoCount < MAX_SERVOS) {
234 234
     this->servoIndex = ServoCount++;                    // assign a servo index to this instance
235 235
     servo_info[this->servoIndex].ticks = usToTicks(DEFAULT_PULSE_WIDTH);   // store default values  - 12 Aug 2009
236 236
   }
@@ -285,7 +285,7 @@ void Servo::writeMicroseconds(int value) {
285 285
     else if (value > SERVO_MAX())
286 286
       value = SERVO_MAX();
287 287
 
288
-  	value = value - TRIM_DURATION;
288
+    value = value - TRIM_DURATION;
289 289
     value = usToTicks(value);  // convert to ticks after compensating for interrupt overhead - 12 Aug 2009
290 290
 
291 291
     uint8_t oldSREG = SREG;
@@ -296,7 +296,7 @@ void Servo::writeMicroseconds(int value) {
296 296
 }
297 297
 
298 298
 // return the value as degrees
299
-int Servo::read() { return map( this->readMicroseconds()+1, SERVO_MIN(), SERVO_MAX(), 0, 180); }
299
+int Servo::read() { return map(this->readMicroseconds() + 1, SERVO_MIN(), SERVO_MAX(), 0, 180); }
300 300
 
301 301
 int Servo::readMicroseconds() {
302 302
   return (this->servoIndex == INVALID_SERVO) ? 0 : ticksToUs(servo_info[this->servoIndex].ticks) + TRIM_DURATION;

+ 2
- 2
Marlin/servo.h View File

@@ -105,8 +105,8 @@
105 105
 #define INVALID_SERVO         255     // flag indicating an invalid servo index
106 106
 
107 107
 typedef struct {
108
-  uint8_t nbr        :6 ;             // a pin number from 0 to 63
109
-  uint8_t isActive   :1 ;             // true if this channel is enabled, pin not pulsed if false
108
+  uint8_t nbr        : 6 ;            // a pin number from 0 to 63
109
+  uint8_t isActive   : 1 ;            // true if this channel is enabled, pin not pulsed if false
110 110
 } ServoPin_t;
111 111
 
112 112
 typedef struct {

+ 128
- 128
Marlin/speed_lookuptable.h View File

@@ -6,145 +6,145 @@
6 6
 #if F_CPU == 16000000
7 7
 
8 8
 const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {\
9
-{ 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135}, 
10
-{ 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32}, 
11
-{ 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14}, 
12
-{ 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8}, 
13
-{ 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5}, 
14
-{ 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3}, 
15
-{ 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2}, 
16
-{ 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2}, 
17
-{ 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1}, 
18
-{ 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1}, 
19
-{ 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1}, 
20
-{ 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1}, 
21
-{ 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0}, 
22
-{ 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1}, 
23
-{ 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0}, 
24
-{ 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1}, 
25
-{ 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0}, 
26
-{ 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0}, 
27
-{ 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0}, 
28
-{ 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1}, 
29
-{ 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0}, 
30
-{ 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0}, 
31
-{ 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0}, 
32
-{ 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0}, 
33
-{ 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0}, 
34
-{ 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0}, 
35
-{ 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0}, 
36
-{ 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1}, 
37
-{ 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0}, 
38
-{ 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0}, 
39
-{ 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0}, 
40
-{ 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0}
9
+  { 62500, 55556}, { 6944, 3268}, { 3676, 1176}, { 2500, 607}, { 1893, 369}, { 1524, 249}, { 1275, 179}, { 1096, 135},
10
+  { 961, 105}, { 856, 85}, { 771, 69}, { 702, 58}, { 644, 49}, { 595, 42}, { 553, 37}, { 516, 32},
11
+  { 484, 28}, { 456, 25}, { 431, 23}, { 408, 20}, { 388, 19}, { 369, 16}, { 353, 16}, { 337, 14},
12
+  { 323, 13}, { 310, 11}, { 299, 11}, { 288, 11}, { 277, 9}, { 268, 9}, { 259, 8}, { 251, 8},
13
+  { 243, 8}, { 235, 7}, { 228, 6}, { 222, 6}, { 216, 6}, { 210, 6}, { 204, 5}, { 199, 5},
14
+  { 194, 5}, { 189, 4}, { 185, 4}, { 181, 4}, { 177, 4}, { 173, 4}, { 169, 4}, { 165, 3},
15
+  { 162, 3}, { 159, 4}, { 155, 3}, { 152, 3}, { 149, 2}, { 147, 3}, { 144, 3}, { 141, 2},
16
+  { 139, 3}, { 136, 2}, { 134, 2}, { 132, 3}, { 129, 2}, { 127, 2}, { 125, 2}, { 123, 2},
17
+  { 121, 2}, { 119, 1}, { 118, 2}, { 116, 2}, { 114, 1}, { 113, 2}, { 111, 2}, { 109, 1},
18
+  { 108, 2}, { 106, 1}, { 105, 2}, { 103, 1}, { 102, 1}, { 101, 1}, { 100, 2}, { 98, 1},
19
+  { 97, 1}, { 96, 1}, { 95, 2}, { 93, 1}, { 92, 1}, { 91, 1}, { 90, 1}, { 89, 1},
20
+  { 88, 1}, { 87, 1}, { 86, 1}, { 85, 1}, { 84, 1}, { 83, 0}, { 83, 1}, { 82, 1},
21
+  { 81, 1}, { 80, 1}, { 79, 1}, { 78, 0}, { 78, 1}, { 77, 1}, { 76, 1}, { 75, 0},
22
+  { 75, 1}, { 74, 1}, { 73, 1}, { 72, 0}, { 72, 1}, { 71, 1}, { 70, 0}, { 70, 1},
23
+  { 69, 0}, { 69, 1}, { 68, 1}, { 67, 0}, { 67, 1}, { 66, 0}, { 66, 1}, { 65, 0},
24
+  { 65, 1}, { 64, 1}, { 63, 0}, { 63, 1}, { 62, 0}, { 62, 1}, { 61, 0}, { 61, 1},
25
+  { 60, 0}, { 60, 0}, { 60, 1}, { 59, 0}, { 59, 1}, { 58, 0}, { 58, 1}, { 57, 0},
26
+  { 57, 1}, { 56, 0}, { 56, 0}, { 56, 1}, { 55, 0}, { 55, 1}, { 54, 0}, { 54, 0},
27
+  { 54, 1}, { 53, 0}, { 53, 0}, { 53, 1}, { 52, 0}, { 52, 0}, { 52, 1}, { 51, 0},
28
+  { 51, 0}, { 51, 1}, { 50, 0}, { 50, 0}, { 50, 1}, { 49, 0}, { 49, 0}, { 49, 1},
29
+  { 48, 0}, { 48, 0}, { 48, 1}, { 47, 0}, { 47, 0}, { 47, 0}, { 47, 1}, { 46, 0},
30
+  { 46, 0}, { 46, 1}, { 45, 0}, { 45, 0}, { 45, 0}, { 45, 1}, { 44, 0}, { 44, 0},
31
+  { 44, 0}, { 44, 1}, { 43, 0}, { 43, 0}, { 43, 0}, { 43, 1}, { 42, 0}, { 42, 0},
32
+  { 42, 0}, { 42, 1}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 0}, { 41, 1}, { 40, 0},
33
+  { 40, 0}, { 40, 0}, { 40, 0}, { 40, 1}, { 39, 0}, { 39, 0}, { 39, 0}, { 39, 0},
34
+  { 39, 1}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 0}, { 38, 1}, { 37, 0}, { 37, 0},
35
+  { 37, 0}, { 37, 0}, { 37, 0}, { 37, 1}, { 36, 0}, { 36, 0}, { 36, 0}, { 36, 0},
36
+  { 36, 1}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 0}, { 35, 1},
37
+  { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 0}, { 34, 1}, { 33, 0}, { 33, 0},
38
+  { 33, 0}, { 33, 0}, { 33, 0}, { 33, 0}, { 33, 1}, { 32, 0}, { 32, 0}, { 32, 0},
39
+  { 32, 0}, { 32, 0}, { 32, 0}, { 32, 0}, { 32, 1}, { 31, 0}, { 31, 0}, { 31, 0},
40
+  { 31, 0}, { 31, 0}, { 31, 0}, { 31, 1}, { 30, 0}, { 30, 0}, { 30, 0}, { 30, 0}
41 41
 };
42 42
 
43 43
 const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {\
44
-{ 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894}, 
45
-{ 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657}, 
46
-{ 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331}, 
47
-{ 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198}, 
48
-{ 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132}, 
49
-{ 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94}, 
50
-{ 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71}, 
51
-{ 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55}, 
52
-{ 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44}, 
53
-{ 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36}, 
54
-{ 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30}, 
55
-{ 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25}, 
56
-{ 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22}, 
57
-{ 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18}, 
58
-{ 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16}, 
59
-{ 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15}, 
60
-{ 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13}, 
61
-{ 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11}, 
62
-{ 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10}, 
63
-{ 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9}, 
64
-{ 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8}, 
65
-{ 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8}, 
66
-{ 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7}, 
67
-{ 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7}, 
68
-{ 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6}, 
69
-{ 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5}, 
70
-{ 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5}, 
71
-{ 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5}, 
72
-{ 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4}, 
73
-{ 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4}, 
74
-{ 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4}, 
75
-{ 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3}
44
+  { 62500, 12500}, { 50000, 8334}, { 41666, 5952}, { 35714, 4464}, { 31250, 3473}, { 27777, 2777}, { 25000, 2273}, { 22727, 1894},
45
+  { 20833, 1603}, { 19230, 1373}, { 17857, 1191}, { 16666, 1041}, { 15625, 920}, { 14705, 817}, { 13888, 731}, { 13157, 657},
46
+  { 12500, 596}, { 11904, 541}, { 11363, 494}, { 10869, 453}, { 10416, 416}, { 10000, 385}, { 9615, 356}, { 9259, 331},
47
+  { 8928, 308}, { 8620, 287}, { 8333, 269}, { 8064, 252}, { 7812, 237}, { 7575, 223}, { 7352, 210}, { 7142, 198},
48
+  { 6944, 188}, { 6756, 178}, { 6578, 168}, { 6410, 160}, { 6250, 153}, { 6097, 145}, { 5952, 139}, { 5813, 132},
49
+  { 5681, 126}, { 5555, 121}, { 5434, 115}, { 5319, 111}, { 5208, 106}, { 5102, 102}, { 5000, 99}, { 4901, 94},
50
+  { 4807, 91}, { 4716, 87}, { 4629, 84}, { 4545, 81}, { 4464, 79}, { 4385, 75}, { 4310, 73}, { 4237, 71},
51
+  { 4166, 68}, { 4098, 66}, { 4032, 64}, { 3968, 62}, { 3906, 60}, { 3846, 59}, { 3787, 56}, { 3731, 55},
52
+  { 3676, 53}, { 3623, 52}, { 3571, 50}, { 3521, 49}, { 3472, 48}, { 3424, 46}, { 3378, 45}, { 3333, 44},
53
+  { 3289, 43}, { 3246, 41}, { 3205, 41}, { 3164, 39}, { 3125, 39}, { 3086, 38}, { 3048, 36}, { 3012, 36},
54
+  { 2976, 35}, { 2941, 35}, { 2906, 33}, { 2873, 33}, { 2840, 32}, { 2808, 31}, { 2777, 30}, { 2747, 30},
55
+  { 2717, 29}, { 2688, 29}, { 2659, 28}, { 2631, 27}, { 2604, 27}, { 2577, 26}, { 2551, 26}, { 2525, 25},
56
+  { 2500, 25}, { 2475, 25}, { 2450, 23}, { 2427, 24}, { 2403, 23}, { 2380, 22}, { 2358, 22}, { 2336, 22},
57
+  { 2314, 21}, { 2293, 21}, { 2272, 20}, { 2252, 20}, { 2232, 20}, { 2212, 20}, { 2192, 19}, { 2173, 18},
58
+  { 2155, 19}, { 2136, 18}, { 2118, 18}, { 2100, 17}, { 2083, 17}, { 2066, 17}, { 2049, 17}, { 2032, 16},
59
+  { 2016, 16}, { 2000, 16}, { 1984, 16}, { 1968, 15}, { 1953, 16}, { 1937, 14}, { 1923, 15}, { 1908, 15},
60
+  { 1893, 14}, { 1879, 14}, { 1865, 14}, { 1851, 13}, { 1838, 14}, { 1824, 13}, { 1811, 13}, { 1798, 13},
61
+  { 1785, 12}, { 1773, 13}, { 1760, 12}, { 1748, 12}, { 1736, 12}, { 1724, 12}, { 1712, 12}, { 1700, 11},
62
+  { 1689, 12}, { 1677, 11}, { 1666, 11}, { 1655, 11}, { 1644, 11}, { 1633, 10}, { 1623, 11}, { 1612, 10},
63
+  { 1602, 10}, { 1592, 10}, { 1582, 10}, { 1572, 10}, { 1562, 10}, { 1552, 9}, { 1543, 10}, { 1533, 9},
64
+  { 1524, 9}, { 1515, 9}, { 1506, 9}, { 1497, 9}, { 1488, 9}, { 1479, 9}, { 1470, 9}, { 1461, 8},
65
+  { 1453, 8}, { 1445, 9}, { 1436, 8}, { 1428, 8}, { 1420, 8}, { 1412, 8}, { 1404, 8}, { 1396, 8},
66
+  { 1388, 7}, { 1381, 8}, { 1373, 7}, { 1366, 8}, { 1358, 7}, { 1351, 7}, { 1344, 8}, { 1336, 7},
67
+  { 1329, 7}, { 1322, 7}, { 1315, 7}, { 1308, 6}, { 1302, 7}, { 1295, 7}, { 1288, 6}, { 1282, 7},
68
+  { 1275, 6}, { 1269, 7}, { 1262, 6}, { 1256, 6}, { 1250, 7}, { 1243, 6}, { 1237, 6}, { 1231, 6},
69
+  { 1225, 6}, { 1219, 6}, { 1213, 6}, { 1207, 6}, { 1201, 5}, { 1196, 6}, { 1190, 6}, { 1184, 5},
70
+  { 1179, 6}, { 1173, 5}, { 1168, 6}, { 1162, 5}, { 1157, 5}, { 1152, 6}, { 1146, 5}, { 1141, 5},
71
+  { 1136, 5}, { 1131, 5}, { 1126, 5}, { 1121, 5}, { 1116, 5}, { 1111, 5}, { 1106, 5}, { 1101, 5},
72
+  { 1096, 5}, { 1091, 5}, { 1086, 4}, { 1082, 5}, { 1077, 5}, { 1072, 4}, { 1068, 5}, { 1063, 4},
73
+  { 1059, 5}, { 1054, 4}, { 1050, 4}, { 1046, 5}, { 1041, 4}, { 1037, 4}, { 1033, 5}, { 1028, 4},
74
+  { 1024, 4}, { 1020, 4}, { 1016, 4}, { 1012, 4}, { 1008, 4}, { 1004, 4}, { 1000, 4}, { 996, 4},
75
+  { 992, 4}, { 988, 4}, { 984, 4}, { 980, 4}, { 976, 4}, { 972, 4}, { 968, 3}, { 965, 3}
76 76
 };
77 77
 
78 78
 #elif F_CPU == 20000000
79 79
 
80 80
 const uint16_t speed_lookuptable_fast[256][2] PROGMEM = {
81
-   {62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167},
82
-   {1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40},
83
-   {604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17},
84
-   {404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10},
85
-   {303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6},
86
-   {243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5},
87
-   {202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4},
88
-   {173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2},
89
-   {152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2},
90
-   {135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2},
91
-   {121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2},
92
-   {110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1},
93
-   {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1},
94
-   {93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0},
95
-   {87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0},
96
-   {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0},
97
-   {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1},
98
-   {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1},
99
-   {67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0},
100
-   {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1},
101
-   {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0},
102
-   {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0},
103
-   {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0},
104
-   {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1},
105
-   {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1},
106
-   {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1},
107
-   {46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0},
108
-   {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0},
109
-   {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0},
110
-   {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0},
111
-   {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0},
112
-   {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0},
81
+  {62500, 54055}, {8445, 3917}, {4528, 1434}, {3094, 745}, {2349, 456}, {1893, 307}, {1586, 222}, {1364, 167},
82
+  {1197, 131}, {1066, 105}, {961, 86}, {875, 72}, {803, 61}, {742, 53}, {689, 45}, {644, 40},
83
+  {604, 35}, {569, 32}, {537, 28}, {509, 25}, {484, 23}, {461, 21}, {440, 19}, {421, 17},
84
+  {404, 16}, {388, 15}, {373, 14}, {359, 13}, {346, 12}, {334, 11}, {323, 10}, {313, 10},
85
+  {303, 9}, {294, 9}, {285, 8}, {277, 7}, {270, 8}, {262, 7}, {255, 6}, {249, 6},
86
+  {243, 6}, {237, 6}, {231, 5}, {226, 5}, {221, 5}, {216, 5}, {211, 4}, {207, 5},
87
+  {202, 4}, {198, 4}, {194, 4}, {190, 3}, {187, 4}, {183, 3}, {180, 3}, {177, 4},
88
+  {173, 3}, {170, 3}, {167, 2}, {165, 3}, {162, 3}, {159, 2}, {157, 3}, {154, 2},
89
+  {152, 3}, {149, 2}, {147, 2}, {145, 2}, {143, 2}, {141, 2}, {139, 2}, {137, 2},
90
+  {135, 2}, {133, 2}, {131, 2}, {129, 1}, {128, 2}, {126, 2}, {124, 1}, {123, 2},
91
+  {121, 1}, {120, 2}, {118, 1}, {117, 1}, {116, 2}, {114, 1}, {113, 1}, {112, 2},
92
+  {110, 1}, {109, 1}, {108, 1}, {107, 2}, {105, 1}, {104, 1}, {103, 1}, {102, 1},
93
+  {101, 1}, {100, 1}, {99, 1}, {98, 1}, {97, 1}, {96, 1}, {95, 1}, {94, 1},
94
+  {93, 1}, {92, 1}, {91, 0}, {91, 1}, {90, 1}, {89, 1}, {88, 1}, {87, 0},
95
+  {87, 1}, {86, 1}, {85, 1}, {84, 0}, {84, 1}, {83, 1}, {82, 1}, {81, 0},
96
+  {81, 1}, {80, 1}, {79, 0}, {79, 1}, {78, 0}, {78, 1}, {77, 1}, {76, 0},
97
+  {76, 1}, {75, 0}, {75, 1}, {74, 1}, {73, 0}, {73, 1}, {72, 0}, {72, 1},
98
+  {71, 0}, {71, 1}, {70, 0}, {70, 1}, {69, 0}, {69, 1}, {68, 0}, {68, 1},
99
+  {67, 0}, {67, 1}, {66, 0}, {66, 1}, {65, 0}, {65, 0}, {65, 1}, {64, 0},
100
+  {64, 1}, {63, 0}, {63, 1}, {62, 0}, {62, 0}, {62, 1}, {61, 0}, {61, 1},
101
+  {60, 0}, {60, 0}, {60, 1}, {59, 0}, {59, 0}, {59, 1}, {58, 0}, {58, 0},
102
+  {58, 1}, {57, 0}, {57, 0}, {57, 1}, {56, 0}, {56, 0}, {56, 1}, {55, 0},
103
+  {55, 0}, {55, 1}, {54, 0}, {54, 0}, {54, 1}, {53, 0}, {53, 0}, {53, 0},
104
+  {53, 1}, {52, 0}, {52, 0}, {52, 1}, {51, 0}, {51, 0}, {51, 0}, {51, 1},
105
+  {50, 0}, {50, 0}, {50, 0}, {50, 1}, {49, 0}, {49, 0}, {49, 0}, {49, 1},
106
+  {48, 0}, {48, 0}, {48, 0}, {48, 1}, {47, 0}, {47, 0}, {47, 0}, {47, 1},
107
+  {46, 0}, {46, 0}, {46, 0}, {46, 0}, {46, 1}, {45, 0}, {45, 0}, {45, 0},
108
+  {45, 1}, {44, 0}, {44, 0}, {44, 0}, {44, 0}, {44, 1}, {43, 0}, {43, 0},
109
+  {43, 0}, {43, 0}, {43, 1}, {42, 0}, {42, 0}, {42, 0}, {42, 0}, {42, 0},
110
+  {42, 1}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 0}, {41, 1}, {40, 0},
111
+  {40, 0}, {40, 0}, {40, 0}, {40, 1}, {39, 0}, {39, 0}, {39, 0}, {39, 0},
112
+  {39, 0}, {39, 0}, {39, 1}, {38, 0}, {38, 0}, {38, 0}, {38, 0}, {38, 0},
113 113
 };
114 114
 
115 115
 const uint16_t speed_lookuptable_slow[256][2] PROGMEM = {
116
-   {62500, 10417}, {52083, 7441}, {44642, 5580}, {39062, 4340}, {34722, 3472}, {31250, 2841}, {28409, 2368}, {26041, 2003},
117
-   {24038, 1717}, {22321, 1488}, {20833, 1302}, {19531, 1149}, {18382, 1021}, {17361, 914}, {16447, 822}, {15625, 745},
118
-   {14880, 676}, {14204, 618}, {13586, 566}, {13020, 520}, {12500, 481}, {12019, 445}, {11574, 414}, {11160, 385},
119
-   {10775, 359}, {10416, 336}, {10080, 315}, {9765, 296}, {9469, 278}, {9191, 263}, {8928, 248}, {8680, 235},
120
-   {8445, 222}, {8223, 211}, {8012, 200}, {7812, 191}, {7621, 181}, {7440, 173}, {7267, 165}, {7102, 158},
121
-   {6944, 151}, {6793, 145}, {6648, 138}, {6510, 133}, {6377, 127}, {6250, 123}, {6127, 118}, {6009, 113},
122
-   {5896, 109}, {5787, 106}, {5681, 101}, {5580, 98}, {5482, 95}, {5387, 91}, {5296, 88}, {5208, 86},
123
-   {5122, 82}, {5040, 80}, {4960, 78}, {4882, 75}, {4807, 73}, {4734, 70}, {4664, 69}, {4595, 67},
124
-   {4528, 64}, {4464, 63}, {4401, 61}, {4340, 60}, {4280, 58}, {4222, 56}, {4166, 55}, {4111, 53},
125
-   {4058, 52}, {4006, 51}, {3955, 49}, {3906, 48}, {3858, 48}, {3810, 45}, {3765, 45}, {3720, 44},
126
-   {3676, 43}, {3633, 42}, {3591, 40}, {3551, 40}, {3511, 39}, {3472, 38}, {3434, 38}, {3396, 36},
127
-   {3360, 36}, {3324, 35}, {3289, 34}, {3255, 34}, {3221, 33}, {3188, 32}, {3156, 31}, {3125, 31},
128
-   {3094, 31}, {3063, 30}, {3033, 29}, {3004, 28}, {2976, 28}, {2948, 28}, {2920, 27}, {2893, 27},
129
-   {2866, 26}, {2840, 25}, {2815, 25}, {2790, 25}, {2765, 24}, {2741, 24}, {2717, 24}, {2693, 23},
130
-   {2670, 22}, {2648, 22}, {2626, 22}, {2604, 22}, {2582, 21}, {2561, 21}, {2540, 20}, {2520, 20},
131
-   {2500, 20}, {2480, 20}, {2460, 19}, {2441, 19}, {2422, 19}, {2403, 18}, {2385, 18}, {2367, 18},
132
-   {2349, 17}, {2332, 18}, {2314, 17}, {2297, 16}, {2281, 17}, {2264, 16}, {2248, 16}, {2232, 16},
133
-   {2216, 16}, {2200, 15}, {2185, 15}, {2170, 15}, {2155, 15}, {2140, 15}, {2125, 14}, {2111, 14},
134
-   {2097, 14}, {2083, 14}, {2069, 14}, {2055, 13}, {2042, 13}, {2029, 13}, {2016, 13}, {2003, 13},
135
-   {1990, 13}, {1977, 12}, {1965, 12}, {1953, 13}, {1940, 11}, {1929, 12}, {1917, 12}, {1905, 12},
136
-   {1893, 11}, {1882, 11}, {1871, 11}, {1860, 11}, {1849, 11}, {1838, 11}, {1827, 11}, {1816, 10},
137
-   {1806, 11}, {1795, 10}, {1785, 10}, {1775, 10}, {1765, 10}, {1755, 10}, {1745, 9}, {1736, 10},
138
-   {1726, 9}, {1717, 10}, {1707, 9}, {1698, 9}, {1689, 9}, {1680, 9}, {1671, 9}, {1662, 9},
139
-   {1653, 9}, {1644, 8}, {1636, 9}, {1627, 8}, {1619, 9}, {1610, 8}, {1602, 8}, {1594, 8},
140
-   {1586, 8}, {1578, 8}, {1570, 8}, {1562, 8}, {1554, 7}, {1547, 8}, {1539, 8}, {1531, 7},
141
-   {1524, 8}, {1516, 7}, {1509, 7}, {1502, 7}, {1495, 7}, {1488, 7}, {1481, 7}, {1474, 7},
142
-   {1467, 7}, {1460, 7}, {1453, 7}, {1446, 6}, {1440, 7}, {1433, 7}, {1426, 6}, {1420, 6},
143
-   {1414, 7}, {1407, 6}, {1401, 6}, {1395, 7}, {1388, 6}, {1382, 6}, {1376, 6}, {1370, 6},
144
-   {1364, 6}, {1358, 6}, {1352, 6}, {1346, 5}, {1341, 6}, {1335, 6}, {1329, 5}, {1324, 6},
145
-   {1318, 5}, {1313, 6}, {1307, 5}, {1302, 6}, {1296, 5}, {1291, 5}, {1286, 6}, {1280, 5},
146
-   {1275, 5}, {1270, 5}, {1265, 5}, {1260, 5}, {1255, 5}, {1250, 5}, {1245, 5}, {1240, 5},
147
-   {1235, 5}, {1230, 5}, {1225, 5}, {1220, 5}, {1215, 4}, {1211, 5}, {1206, 5}, {1201, 5},
116
+  {62500, 10417}, {52083, 7441}, {44642, 5580}, {39062, 4340}, {34722, 3472}, {31250, 2841}, {28409, 2368}, {26041, 2003},
117
+  {24038, 1717}, {22321, 1488}, {20833, 1302}, {19531, 1149}, {18382, 1021}, {17361, 914}, {16447, 822}, {15625, 745},
118
+  {14880, 676}, {14204, 618}, {13586, 566}, {13020, 520}, {12500, 481}, {12019, 445}, {11574, 414}, {11160, 385},
119
+  {10775, 359}, {10416, 336}, {10080, 315}, {9765, 296}, {9469, 278}, {9191, 263}, {8928, 248}, {8680, 235},
120
+  {8445, 222}, {8223, 211}, {8012, 200}, {7812, 191}, {7621, 181}, {7440, 173}, {7267, 165}, {7102, 158},
121
+  {6944, 151}, {6793, 145}, {6648, 138}, {6510, 133}, {6377, 127}, {6250, 123}, {6127, 118}, {6009, 113},
122
+  {5896, 109}, {5787, 106}, {5681, 101}, {5580, 98}, {5482, 95}, {5387, 91}, {5296, 88}, {5208, 86},
123
+  {5122, 82}, {5040, 80}, {4960, 78}, {4882, 75}, {4807, 73}, {4734, 70}, {4664, 69}, {4595, 67},
124
+  {4528, 64}, {4464, 63}, {4401, 61}, {4340, 60}, {4280, 58}, {4222, 56}, {4166, 55}, {4111, 53},
125
+  {4058, 52}, {4006, 51}, {3955, 49}, {3906, 48}, {3858, 48}, {3810, 45}, {3765, 45}, {3720, 44},
126
+  {3676, 43}, {3633, 42}, {3591, 40}, {3551, 40}, {3511, 39}, {3472, 38}, {3434, 38}, {3396, 36},
127
+  {3360, 36}, {3324, 35}, {3289, 34}, {3255, 34}, {3221, 33}, {3188, 32}, {3156, 31}, {3125, 31},
128
+  {3094, 31}, {3063, 30}, {3033, 29}, {3004, 28}, {2976, 28}, {2948, 28}, {2920, 27}, {2893, 27},
129
+  {2866, 26}, {2840, 25}, {2815, 25}, {2790, 25}, {2765, 24}, {2741, 24}, {2717, 24}, {2693, 23},
130
+  {2670, 22}, {2648, 22}, {2626, 22}, {2604, 22}, {2582, 21}, {2561, 21}, {2540, 20}, {2520, 20},
131
+  {2500, 20}, {2480, 20}, {2460, 19}, {2441, 19}, {2422, 19}, {2403, 18}, {2385, 18}, {2367, 18},
132
+  {2349, 17}, {2332, 18}, {2314, 17}, {2297, 16}, {2281, 17}, {2264, 16}, {2248, 16}, {2232, 16},
133
+  {2216, 16}, {2200, 15}, {2185, 15}, {2170, 15}, {2155, 15}, {2140, 15}, {2125, 14}, {2111, 14},
134
+  {2097, 14}, {2083, 14}, {2069, 14}, {2055, 13}, {2042, 13}, {2029, 13}, {2016, 13}, {2003, 13},
135
+  {1990, 13}, {1977, 12}, {1965, 12}, {1953, 13}, {1940, 11}, {1929, 12}, {1917, 12}, {1905, 12},
136
+  {1893, 11}, {1882, 11}, {1871, 11}, {1860, 11}, {1849, 11}, {1838, 11}, {1827, 11}, {1816, 10},
137
+  {1806, 11}, {1795, 10}, {1785, 10}, {1775, 10}, {1765, 10}, {1755, 10}, {1745, 9}, {1736, 10},
138
+  {1726, 9}, {1717, 10}, {1707, 9}, {1698, 9}, {1689, 9}, {1680, 9}, {1671, 9}, {1662, 9},
139
+  {1653, 9}, {1644, 8}, {1636, 9}, {1627, 8}, {1619, 9}, {1610, 8}, {1602, 8}, {1594, 8},
140
+  {1586, 8}, {1578, 8}, {1570, 8}, {1562, 8}, {1554, 7}, {1547, 8}, {1539, 8}, {1531, 7},
141
+  {1524, 8}, {1516, 7}, {1509, 7}, {1502, 7}, {1495, 7}, {1488, 7}, {1481, 7}, {1474, 7},
142
+  {1467, 7}, {1460, 7}, {1453, 7}, {1446, 6}, {1440, 7}, {1433, 7}, {1426, 6}, {1420, 6},
143
+  {1414, 7}, {1407, 6}, {1401, 6}, {1395, 7}, {1388, 6}, {1382, 6}, {1376, 6}, {1370, 6},
144
+  {1364, 6}, {1358, 6}, {1352, 6}, {1346, 5}, {1341, 6}, {1335, 6}, {1329, 5}, {1324, 6},
145
+  {1318, 5}, {1313, 6}, {1307, 5}, {1302, 6}, {1296, 5}, {1291, 5}, {1286, 6}, {1280, 5},
146
+  {1275, 5}, {1270, 5}, {1265, 5}, {1260, 5}, {1255, 5}, {1250, 5}, {1245, 5}, {1240, 5},
147
+  {1235, 5}, {1230, 5}, {1225, 5}, {1220, 5}, {1215, 4}, {1211, 5}, {1206, 5}, {1201, 5},
148 148
 };
149 149
 
150 150
 #endif

+ 179
- 180
Marlin/stepper.cpp View File

@@ -37,7 +37,7 @@
37 37
 //===========================================================================
38 38
 //============================= public variables ============================
39 39
 //===========================================================================
40
-block_t *current_block;  // A pointer to the block currently being traced
40
+block_t* current_block;  // A pointer to the block currently being traced
41 41
 
42 42
 
43 43
 //===========================================================================
@@ -50,8 +50,8 @@ static unsigned char out_bits = 0;        // The next stepping-bits to be output
50 50
 static unsigned int cleaning_buffer_counter;
51 51
 
52 52
 #if ENABLED(Z_DUAL_ENDSTOPS)
53
-  static bool performing_homing = false, 
54
-              locked_z_motor = false, 
53
+  static bool performing_homing = false,
54
+              locked_z_motor = false,
55 55
               locked_z2_motor = false;
56 56
 #endif
57 57
 
@@ -81,7 +81,7 @@ static volatile char endstop_hit_bits = 0; // use X_MIN, Y_MIN, Z_MIN and Z_MIN_
81 81
 #else
82 82
   static uint16_t
83 83
 #endif
84
-  old_endstop_bits = 0; // use X_MIN, X_MAX... Z_MAX, Z_MIN_PROBE, Z2_MIN, Z2_MAX
84
+    old_endstop_bits = 0; // use X_MIN, X_MAX... Z_MAX, Z_MIN_PROBE, Z2_MIN, Z2_MAX
85 85
 
86 86
 #if ENABLED(ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
87 87
   bool abort_on_endstop_hit = false;
@@ -163,24 +163,24 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1 };
163 163
 // r27 to store the byte 1 of the 24 bit result
164 164
 #define MultiU16X8toH16(intRes, charIn1, intIn2) \
165 165
   asm volatile ( \
166
-    "clr r26 \n\t" \
167
-    "mul %A1, %B2 \n\t" \
168
-    "movw %A0, r0 \n\t" \
169
-    "mul %A1, %A2 \n\t" \
170
-    "add %A0, r1 \n\t" \
171
-    "adc %B0, r26 \n\t" \
172
-    "lsr r0 \n\t" \
173
-    "adc %A0, r26 \n\t" \
174
-    "adc %B0, r26 \n\t" \
175
-    "clr r1 \n\t" \
176
-    : \
177
-    "=&r" (intRes) \
178
-    : \
179
-    "d" (charIn1), \
180
-    "d" (intIn2) \
181
-    : \
182
-    "r26" \
183
-  )
166
+                 "clr r26 \n\t" \
167
+                 "mul %A1, %B2 \n\t" \
168
+                 "movw %A0, r0 \n\t" \
169
+                 "mul %A1, %A2 \n\t" \
170
+                 "add %A0, r1 \n\t" \
171
+                 "adc %B0, r26 \n\t" \
172
+                 "lsr r0 \n\t" \
173
+                 "adc %A0, r26 \n\t" \
174
+                 "adc %B0, r26 \n\t" \
175
+                 "clr r1 \n\t" \
176
+                 : \
177
+                 "=&r" (intRes) \
178
+                 : \
179
+                 "d" (charIn1), \
180
+                 "d" (intIn2) \
181
+                 : \
182
+                 "r26" \
183
+               )
184 184
 
185 185
 // intRes = longIn1 * longIn2 >> 24
186 186
 // uses:
@@ -194,49 +194,49 @@ volatile signed char count_direction[NUM_AXIS] = { 1, 1, 1, 1 };
194 194
 //
195 195
 #define MultiU24X32toH16(intRes, longIn1, longIn2) \
196 196
   asm volatile ( \
197
-    "clr r26 \n\t" \
198
-    "mul %A1, %B2 \n\t" \
199
-    "mov r27, r1 \n\t" \
200
-    "mul %B1, %C2 \n\t" \
201
-    "movw %A0, r0 \n\t" \
202
-    "mul %C1, %C2 \n\t" \
203
-    "add %B0, r0 \n\t" \
204
-    "mul %C1, %B2 \n\t" \
205
-    "add %A0, r0 \n\t" \
206
-    "adc %B0, r1 \n\t" \
207
-    "mul %A1, %C2 \n\t" \
208
-    "add r27, r0 \n\t" \
209
-    "adc %A0, r1 \n\t" \
210
-    "adc %B0, r26 \n\t" \
211
-    "mul %B1, %B2 \n\t" \
212
-    "add r27, r0 \n\t" \
213
-    "adc %A0, r1 \n\t" \
214
-    "adc %B0, r26 \n\t" \
215
-    "mul %C1, %A2 \n\t" \
216
-    "add r27, r0 \n\t" \
217
-    "adc %A0, r1 \n\t" \
218
-    "adc %B0, r26 \n\t" \
219
-    "mul %B1, %A2 \n\t" \
220
-    "add r27, r1 \n\t" \
221
-    "adc %A0, r26 \n\t" \
222
-    "adc %B0, r26 \n\t" \
223
-    "lsr r27 \n\t" \
224
-    "adc %A0, r26 \n\t" \
225
-    "adc %B0, r26 \n\t" \
226
-    "mul %D2, %A1 \n\t" \
227
-    "add %A0, r0 \n\t" \
228
-    "adc %B0, r1 \n\t" \
229
-    "mul %D2, %B1 \n\t" \
230
-    "add %B0, r0 \n\t" \
231
-    "clr r1 \n\t" \
232
-    : \
233
-    "=&r" (intRes) \
234
-    : \
235
-    "d" (longIn1), \
236
-    "d" (longIn2) \
237
-    : \
238
-    "r26" , "r27" \
239
-  )
197
+                 "clr r26 \n\t" \
198
+                 "mul %A1, %B2 \n\t" \
199
+                 "mov r27, r1 \n\t" \
200
+                 "mul %B1, %C2 \n\t" \
201
+                 "movw %A0, r0 \n\t" \
202
+                 "mul %C1, %C2 \n\t" \
203
+                 "add %B0, r0 \n\t" \
204
+                 "mul %C1, %B2 \n\t" \
205
+                 "add %A0, r0 \n\t" \
206
+                 "adc %B0, r1 \n\t" \
207
+                 "mul %A1, %C2 \n\t" \
208
+                 "add r27, r0 \n\t" \
209
+                 "adc %A0, r1 \n\t" \
210
+                 "adc %B0, r26 \n\t" \
211
+                 "mul %B1, %B2 \n\t" \
212
+                 "add r27, r0 \n\t" \
213
+                 "adc %A0, r1 \n\t" \
214
+                 "adc %B0, r26 \n\t" \
215
+                 "mul %C1, %A2 \n\t" \
216
+                 "add r27, r0 \n\t" \
217
+                 "adc %A0, r1 \n\t" \
218
+                 "adc %B0, r26 \n\t" \
219
+                 "mul %B1, %A2 \n\t" \
220
+                 "add r27, r1 \n\t" \
221
+                 "adc %A0, r26 \n\t" \
222
+                 "adc %B0, r26 \n\t" \
223
+                 "lsr r27 \n\t" \
224
+                 "adc %A0, r26 \n\t" \
225
+                 "adc %B0, r26 \n\t" \
226
+                 "mul %D2, %A1 \n\t" \
227
+                 "add %A0, r0 \n\t" \
228
+                 "adc %B0, r1 \n\t" \
229
+                 "mul %D2, %B1 \n\t" \
230
+                 "add %B0, r0 \n\t" \
231
+                 "clr r1 \n\t" \
232
+                 : \
233
+                 "=&r" (intRes) \
234
+                 : \
235
+                 "d" (longIn1), \
236
+                 "d" (longIn2) \
237
+                 : \
238
+                 "r26" , "r27" \
239
+               )
240 240
 
241 241
 // Some useful constants
242 242
 
@@ -288,7 +288,7 @@ void enable_endstops(bool check) { check_endstops = check; }
288 288
 
289 289
 // Check endstops
290 290
 inline void update_endstops() {
291
-  
291
+
292 292
   #if ENABLED(Z_DUAL_ENDSTOPS)
293 293
     uint16_t
294 294
   #else
@@ -316,7 +316,7 @@ inline void update_endstops() {
316 316
       _ENDSTOP_HIT(AXIS); \
317 317
       step_events_completed = current_block->step_event_count; \
318 318
     }
319
-  
319
+
320 320
   #if ENABLED(COREXY)
321 321
     // Head direction in -X axis for CoreXY bots.
322 322
     // If DeltaX == -DeltaY, the movement is only in Y axis
@@ -328,7 +328,7 @@ inline void update_endstops() {
328 328
     if ((current_block->steps[A_AXIS] != current_block->steps[C_AXIS]) || (TEST(out_bits, A_AXIS) == TEST(out_bits, C_AXIS))) {
329 329
       if (TEST(out_bits, X_HEAD))
330 330
   #else
331
-      if (TEST(out_bits, X_AXIS))   // stepping along -X axis (regular Cartesian bot)
331
+    if (TEST(out_bits, X_AXIS))   // stepping along -X axis (regular Cartesian bot)
332 332
   #endif
333 333
       { // -direction
334 334
         #if ENABLED(DUAL_X_CARRIAGE)
@@ -391,11 +391,11 @@ inline void update_endstops() {
391 391
 
392 392
           #if ENABLED(Z_DUAL_ENDSTOPS)
393 393
             SET_ENDSTOP_BIT(Z, MIN);
394
-              #if HAS_Z2_MIN
395
-                SET_ENDSTOP_BIT(Z2, MIN);
396
-              #else
397
-                COPY_BIT(current_endstop_bits, Z_MIN, Z2_MIN);
398
-              #endif
394
+            #if HAS_Z2_MIN
395
+              SET_ENDSTOP_BIT(Z2, MIN);
396
+            #else
397
+              COPY_BIT(current_endstop_bits, Z_MIN, Z2_MIN);
398
+            #endif
399 399
 
400 400
             byte z_test = TEST_ENDSTOP(Z_MIN) << 0 + TEST_ENDSTOP(Z2_MIN) << 1; // bit 0 for Z, bit 1 for Z2
401 401
 
@@ -408,14 +408,14 @@ inline void update_endstops() {
408 408
           #else // !Z_DUAL_ENDSTOPS
409 409
 
410 410
             UPDATE_ENDSTOP(Z, MIN);
411
+
411 412
           #endif // !Z_DUAL_ENDSTOPS
412 413
         #endif // Z_MIN_PIN
413 414
 
414 415
         #if ENABLED(Z_MIN_PROBE_ENDSTOP)
415 416
           UPDATE_ENDSTOP(Z, MIN_PROBE);
416 417
 
417
-          if (TEST_ENDSTOP(Z_MIN_PROBE))
418
-          {
418
+          if (TEST_ENDSTOP(Z_MIN_PROBE)) {
419 419
             endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
420 420
             endstop_hit_bits |= BIT(Z_MIN_PROBE);
421 421
           }
@@ -427,11 +427,11 @@ inline void update_endstops() {
427 427
           #if ENABLED(Z_DUAL_ENDSTOPS)
428 428
 
429 429
             SET_ENDSTOP_BIT(Z, MAX);
430
-              #if HAS_Z2_MAX
431
-                SET_ENDSTOP_BIT(Z2, MAX);
432
-              #else
433
-                COPY_BIT(current_endstop_bits, Z_MAX, Z2_MAX);
434
-              #endif
430
+            #if HAS_Z2_MAX
431
+              SET_ENDSTOP_BIT(Z2, MAX);
432
+            #else
433
+              COPY_BIT(current_endstop_bits, Z_MAX, Z2_MAX);
434
+            #endif
435 435
 
436 436
             byte z_test = TEST_ENDSTOP(Z_MAX) << 0 + TEST_ENDSTOP(Z2_MAX) << 1; // bit 0 for Z, bit 1 for Z2
437 437
 
@@ -451,7 +451,7 @@ inline void update_endstops() {
451 451
       }
452 452
   #if ENABLED(COREXZ)
453 453
     }
454
-  #endif  
454
+  #endif
455 455
   old_endstop_bits = current_endstop_bits;
456 456
 }
457 457
 
@@ -495,17 +495,17 @@ FORCE_INLINE unsigned short calc_timer(unsigned short step_rate) {
495 495
   if (step_rate < (F_CPU / 500000)) step_rate = (F_CPU / 500000);
496 496
   step_rate -= (F_CPU / 500000); // Correct for minimal speed
497 497
   if (step_rate >= (8 * 256)) { // higher step rate
498
-    unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate>>8)][0];
498
+    unsigned short table_address = (unsigned short)&speed_lookuptable_fast[(unsigned char)(step_rate >> 8)][0];
499 499
     unsigned char tmp_step_rate = (step_rate & 0x00ff);
500
-    unsigned short gain = (unsigned short)pgm_read_word_near(table_address+2);
500
+    unsigned short gain = (unsigned short)pgm_read_word_near(table_address + 2);
501 501
     MultiU16X8toH16(timer, tmp_step_rate, gain);
502 502
     timer = (unsigned short)pgm_read_word_near(table_address) - timer;
503 503
   }
504 504
   else { // lower step rates
505 505
     unsigned short table_address = (unsigned short)&speed_lookuptable_slow[0][0];
506
-    table_address += ((step_rate)>>1) & 0xfffc;
506
+    table_address += ((step_rate) >> 1) & 0xfffc;
507 507
     timer = (unsigned short)pgm_read_word_near(table_address);
508
-    timer -= (((unsigned short)pgm_read_word_near(table_address+2) * (unsigned char)(step_rate & 0x0007))>>3);
508
+    timer -= (((unsigned short)pgm_read_word_near(table_address + 2) * (unsigned char)(step_rate & 0x0007)) >> 3);
509 509
   }
510 510
   if (timer < 100) { timer = 100; MYSERIAL.print(MSG_STEPPER_TOO_HIGH); MYSERIAL.println(step_rate); }//(20kHz this should never happen)
511 511
   return timer;
@@ -536,7 +536,7 @@ void set_stepper_direction() {
536 536
     Y_APPLY_DIR(!INVERT_Y_DIR, 0);
537 537
     count_direction[Y_AXIS] = 1;
538 538
   }
539
-  
539
+
540 540
   if (TEST(out_bits, Z_AXIS)) { // C_AXIS
541 541
     Z_APPLY_DIR(INVERT_Z_DIR, 0);
542 542
     count_direction[Z_AXIS] = -1;
@@ -545,7 +545,7 @@ void set_stepper_direction() {
545 545
     Z_APPLY_DIR(!INVERT_Z_DIR, 0);
546 546
     count_direction[Z_AXIS] = 1;
547 547
   }
548
-  
548
+
549 549
   #if DISABLED(ADVANCE)
550 550
     if (TEST(out_bits, E_AXIS)) {
551 551
       REV_E_DIR();
@@ -566,7 +566,7 @@ FORCE_INLINE void trapezoid_generator_reset() {
566 566
     out_bits = current_block->direction_bits;
567 567
     set_stepper_direction();
568 568
   }
569
-  
569
+
570 570
   #if ENABLED(ADVANCE)
571 571
     advance = current_block->initial_advance;
572 572
     final_advance = current_block->final_advance;
@@ -704,16 +704,18 @@ ISR(TIMER1_COMPA_vect) {
704 704
       timer = calc_timer(acc_step_rate);
705 705
       OCR1A = timer;
706 706
       acceleration_time += timer;
707
+
707 708
       #if ENABLED(ADVANCE)
708
-        for(int8_t i=0; i < step_loops; i++) {
709
+
710
+        for (int8_t i = 0; i < step_loops; i++) {
709 711
           advance += advance_rate;
710 712
         }
711 713
         //if (advance > current_block->advance) advance = current_block->advance;
712 714
         // Do E steps + advance steps
713
-        e_steps[current_block->active_extruder] += ((advance >>8) - old_advance);
714
-        old_advance = advance >>8;
715
+        e_steps[current_block->active_extruder] += ((advance >> 8) - old_advance);
716
+        old_advance = advance >> 8;
715 717
 
716
-      #endif
718
+      #endif //ADVANCE
717 719
     }
718 720
     else if (step_events_completed > (unsigned long)current_block->decelerate_after) {
719 721
       MultiU24X32toH16(step_rate, deceleration_time, current_block->acceleration_rate);
@@ -734,13 +736,13 @@ ISR(TIMER1_COMPA_vect) {
734 736
       OCR1A = timer;
735 737
       deceleration_time += timer;
736 738
       #if ENABLED(ADVANCE)
737
-        for(int8_t i=0; i < step_loops; i++) {
739
+        for (int8_t i = 0; i < step_loops; i++) {
738 740
           advance -= advance_rate;
739 741
         }
740 742
         if (advance < final_advance) advance = final_advance;
741 743
         // Do E steps + advance steps
742
-        e_steps[current_block->active_extruder] += ((advance >>8) - old_advance);
743
-        old_advance = advance >>8;
744
+        e_steps[current_block->active_extruder] += ((advance >> 8) - old_advance);
745
+        old_advance = advance >> 8;
744 746
       #endif //ADVANCE
745 747
     }
746 748
     else {
@@ -749,7 +751,7 @@ ISR(TIMER1_COMPA_vect) {
749 751
       step_loops = step_loops_nominal;
750 752
     }
751 753
 
752
-    OCR1A = (OCR1A < (TCNT1 +16)) ? (TCNT1 + 16) : OCR1A;
754
+    OCR1A = (OCR1A < (TCNT1 + 16)) ? (TCNT1 + 16) : OCR1A;
753 755
 
754 756
     // If current block is finished, reset pointer
755 757
     if (step_events_completed >= current_block->step_event_count) {
@@ -763,12 +765,11 @@ ISR(TIMER1_COMPA_vect) {
763 765
   unsigned char old_OCR0A;
764 766
   // Timer interrupt for E. e_steps is set in the main routine;
765 767
   // Timer 0 is shared with millies
766
-  ISR(TIMER0_COMPA_vect)
767
-  {
768
+  ISR(TIMER0_COMPA_vect) {
768 769
     old_OCR0A += 52; // ~10kHz interrupt (250000 / 26 = 9615kHz)
769 770
     OCR0A = old_OCR0A;
770 771
     // Set E direction (Depends on E direction + advance)
771
-    for(unsigned char i=0; i<4;i++) {
772
+    for (unsigned char i = 0; i < 4; i++) {
772 773
       if (e_steps[0] != 0) {
773 774
         E0_STEP_WRITE(INVERT_E_STEP_PIN);
774 775
         if (e_steps[0] < 0) {
@@ -782,52 +783,51 @@ ISR(TIMER1_COMPA_vect) {
782 783
           E0_STEP_WRITE(!INVERT_E_STEP_PIN);
783 784
         }
784 785
       }
785
- #if EXTRUDERS > 1
786
-      if (e_steps[1] != 0) {
787
-        E1_STEP_WRITE(INVERT_E_STEP_PIN);
788
-        if (e_steps[1] < 0) {
789
-          E1_DIR_WRITE(INVERT_E1_DIR);
790
-          e_steps[1]++;
791
-          E1_STEP_WRITE(!INVERT_E_STEP_PIN);
792
-        }
793
-        else if (e_steps[1] > 0) {
794
-          E1_DIR_WRITE(!INVERT_E1_DIR);
795
-          e_steps[1]--;
796
-          E1_STEP_WRITE(!INVERT_E_STEP_PIN);
797
-        }
798
-      }
799
- #endif
800
- #if EXTRUDERS > 2
801
-      if (e_steps[2] != 0) {
802
-        E2_STEP_WRITE(INVERT_E_STEP_PIN);
803
-        if (e_steps[2] < 0) {
804
-          E2_DIR_WRITE(INVERT_E2_DIR);
805
-          e_steps[2]++;
806
-          E2_STEP_WRITE(!INVERT_E_STEP_PIN);
807
-        }
808
-        else if (e_steps[2] > 0) {
809
-          E2_DIR_WRITE(!INVERT_E2_DIR);
810
-          e_steps[2]--;
811
-          E2_STEP_WRITE(!INVERT_E_STEP_PIN);
786
+      #if EXTRUDERS > 1
787
+        if (e_steps[1] != 0) {
788
+          E1_STEP_WRITE(INVERT_E_STEP_PIN);
789
+          if (e_steps[1] < 0) {
790
+            E1_DIR_WRITE(INVERT_E1_DIR);
791
+            e_steps[1]++;
792
+            E1_STEP_WRITE(!INVERT_E_STEP_PIN);
793
+          }
794
+          else if (e_steps[1] > 0) {
795
+            E1_DIR_WRITE(!INVERT_E1_DIR);
796
+            e_steps[1]--;
797
+            E1_STEP_WRITE(!INVERT_E_STEP_PIN);
798
+          }
812 799
         }
813
-      }
814
- #endif
815
- #if EXTRUDERS > 3
816
-      if (e_steps[3] != 0) {
817
-        E3_STEP_WRITE(INVERT_E_STEP_PIN);
818
-        if (e_steps[3] < 0) {
819
-          E3_DIR_WRITE(INVERT_E3_DIR);
820
-          e_steps[3]++;
821
-          E3_STEP_WRITE(!INVERT_E_STEP_PIN);
800
+      #endif
801
+      #if EXTRUDERS > 2
802
+        if (e_steps[2] != 0) {
803
+          E2_STEP_WRITE(INVERT_E_STEP_PIN);
804
+          if (e_steps[2] < 0) {
805
+            E2_DIR_WRITE(INVERT_E2_DIR);
806
+            e_steps[2]++;
807
+            E2_STEP_WRITE(!INVERT_E_STEP_PIN);
808
+          }
809
+          else if (e_steps[2] > 0) {
810
+            E2_DIR_WRITE(!INVERT_E2_DIR);
811
+            e_steps[2]--;
812
+            E2_STEP_WRITE(!INVERT_E_STEP_PIN);
813
+          }
822 814
         }
823
-        else if (e_steps[3] > 0) {
824
-          E3_DIR_WRITE(!INVERT_E3_DIR);
825
-          e_steps[3]--;
826
-          E3_STEP_WRITE(!INVERT_E_STEP_PIN);
815
+      #endif
816
+      #if EXTRUDERS > 3
817
+        if (e_steps[3] != 0) {
818
+          E3_STEP_WRITE(INVERT_E_STEP_PIN);
819
+          if (e_steps[3] < 0) {
820
+            E3_DIR_WRITE(INVERT_E3_DIR);
821
+            e_steps[3]++;
822
+            E3_STEP_WRITE(!INVERT_E_STEP_PIN);
823
+          }
824
+          else if (e_steps[3] > 0) {
825
+            E3_DIR_WRITE(!INVERT_E3_DIR);
826
+            e_steps[3]--;
827
+            E3_STEP_WRITE(!INVERT_E_STEP_PIN);
828
+          }
827 829
         }
828
-      }
829
- #endif
830
-
830
+      #endif
831 831
     }
832 832
   }
833 833
 #endif // ADVANCE
@@ -1032,15 +1032,14 @@ void st_init() {
1032 1032
   TCCR1A &= ~BIT(WGM10);
1033 1033
 
1034 1034
   // output mode = 00 (disconnected)
1035
-  TCCR1A &= ~(3<<COM1A0);
1036
-  TCCR1A &= ~(3<<COM1B0);
1037
-
1035
+  TCCR1A &= ~(3 << COM1A0);
1036
+  TCCR1A &= ~(3 << COM1B0);
1038 1037
   // Set the timer pre-scaler
1039 1038
   // Generally we use a divider of 8, resulting in a 2MHz timer
1040 1039
   // frequency on a 16MHz MCU. If you are going to change this, be
1041 1040
   // sure to regenerate speed_lookuptable.h with
1042 1041
   // create_speed_lookuptable.py
1043
-  TCCR1B = (TCCR1B & ~(0x07<<CS10)) | (2<<CS10);
1042
+  TCCR1B = (TCCR1B & ~(0x07 << CS10)) | (2 << CS10);
1044 1043
 
1045 1044
   OCR1A = 0x4000;
1046 1045
   TCNT1 = 0;
@@ -1057,7 +1056,7 @@ void st_init() {
1057 1056
 
1058 1057
   enable_endstops(true); // Start with endstops active. After homing they can be disabled
1059 1058
   sei();
1060
-  
1059
+
1061 1060
   set_stepper_direction(); // Init directions to out_bits = 0
1062 1061
 }
1063 1062
 
@@ -1067,7 +1066,7 @@ void st_init() {
1067 1066
  */
1068 1067
 void st_synchronize() { while (blocks_queued()) idle(); }
1069 1068
 
1070
-void st_set_position(const long &x, const long &y, const long &z, const long &e) {
1069
+void st_set_position(const long& x, const long& y, const long& z, const long& e) {
1071 1070
   CRITICAL_SECTION_START;
1072 1071
   count_position[X_AXIS] = x;
1073 1072
   count_position[Y_AXIS] = y;
@@ -1076,7 +1075,7 @@ void st_set_position(const long &x, const long &y, const long &z, const long &e)
1076 1075
   CRITICAL_SECTION_END;
1077 1076
 }
1078 1077
 
1079
-void st_set_e_position(const long &e) {
1078
+void st_set_e_position(const long& e) {
1080 1079
   CRITICAL_SECTION_START;
1081 1080
   count_position[E_AXIS] = e;
1082 1081
   CRITICAL_SECTION_END;
@@ -1126,7 +1125,7 @@ void quickStop() {
1126 1125
         _APPLY_DIR(AXIS, old_pin); \
1127 1126
       }
1128 1127
 
1129
-    switch(axis) {
1128
+    switch (axis) {
1130 1129
 
1131 1130
       case X_AXIS:
1132 1131
         BABYSTEP_AXIS(x, X, false);
@@ -1135,7 +1134,7 @@ void quickStop() {
1135 1134
       case Y_AXIS:
1136 1135
         BABYSTEP_AXIS(y, Y, false);
1137 1136
         break;
1138
- 
1137
+
1139 1138
       case Z_AXIS: {
1140 1139
 
1141 1140
         #if DISABLED(DELTA)
@@ -1153,16 +1152,16 @@ void quickStop() {
1153 1152
                   old_y_dir_pin = Y_DIR_READ,
1154 1153
                   old_z_dir_pin = Z_DIR_READ;
1155 1154
           //setup new step
1156
-          X_DIR_WRITE(INVERT_X_DIR^z_direction);
1157
-          Y_DIR_WRITE(INVERT_Y_DIR^z_direction);
1158
-          Z_DIR_WRITE(INVERT_Z_DIR^z_direction);
1159
-          //perform step 
1155
+          X_DIR_WRITE(INVERT_X_DIR ^ z_direction);
1156
+          Y_DIR_WRITE(INVERT_Y_DIR ^ z_direction);
1157
+          Z_DIR_WRITE(INVERT_Z_DIR ^ z_direction);
1158
+          //perform step
1160 1159
           X_STEP_WRITE(!INVERT_X_STEP_PIN);
1161 1160
           Y_STEP_WRITE(!INVERT_Y_STEP_PIN);
1162 1161
           Z_STEP_WRITE(!INVERT_Z_STEP_PIN);
1163 1162
           delayMicroseconds(2);
1164
-          X_STEP_WRITE(INVERT_X_STEP_PIN); 
1165
-          Y_STEP_WRITE(INVERT_Y_STEP_PIN); 
1163
+          X_STEP_WRITE(INVERT_X_STEP_PIN);
1164
+          Y_STEP_WRITE(INVERT_Y_STEP_PIN);
1166 1165
           Z_STEP_WRITE(INVERT_Z_STEP_PIN);
1167 1166
           //get old pin state back.
1168 1167
           X_DIR_WRITE(old_x_dir_pin);
@@ -1172,7 +1171,7 @@ void quickStop() {
1172 1171
         #endif
1173 1172
 
1174 1173
       } break;
1175
- 
1174
+
1176 1175
       default: break;
1177 1176
     }
1178 1177
   }
@@ -1182,10 +1181,10 @@ void quickStop() {
1182 1181
 // From Arduino DigitalPotControl example
1183 1182
 void digitalPotWrite(int address, int value) {
1184 1183
   #if HAS_DIGIPOTSS
1185
-    digitalWrite(DIGIPOTSS_PIN,LOW); // take the SS pin low to select the chip
1184
+    digitalWrite(DIGIPOTSS_PIN, LOW); // take the SS pin low to select the chip
1186 1185
     SPI.transfer(address); //  send in the address and value via SPI:
1187 1186
     SPI.transfer(value);
1188
-    digitalWrite(DIGIPOTSS_PIN,HIGH); // take the SS pin high to de-select the chip:
1187
+    digitalWrite(DIGIPOTSS_PIN, HIGH); // take the SS pin high to de-select the chip:
1189 1188
     //delay(10);
1190 1189
   #else
1191 1190
     UNUSED(address);
@@ -1202,7 +1201,7 @@ void digipot_init() {
1202 1201
     pinMode(DIGIPOTSS_PIN, OUTPUT);
1203 1202
     for (int i = 0; i <= 4; i++) {
1204 1203
       //digitalPotWrite(digipot_ch[i], digipot_motor_current[i]);
1205
-      digipot_current(i,digipot_motor_current[i]);
1204
+      digipot_current(i, digipot_motor_current[i]);
1206 1205
     }
1207 1206
   #endif
1208 1207
   #ifdef MOTOR_CURRENT_PWM_XY_PIN
@@ -1222,7 +1221,7 @@ void digipot_current(uint8_t driver, int current) {
1222 1221
     const uint8_t digipot_ch[] = DIGIPOT_CHANNELS;
1223 1222
     digitalPotWrite(digipot_ch[driver], current);
1224 1223
   #elif defined(MOTOR_CURRENT_PWM_XY_PIN)
1225
-    switch(driver) {
1224
+    switch (driver) {
1226 1225
       case 0: analogWrite(MOTOR_CURRENT_PWM_XY_PIN, 255L * current / MOTOR_CURRENT_PWM_RANGE); break;
1227 1226
       case 1: analogWrite(MOTOR_CURRENT_PWM_Z_PIN, 255L * current / MOTOR_CURRENT_PWM_RANGE); break;
1228 1227
       case 2: analogWrite(MOTOR_CURRENT_PWM_E_PIN, 255L * current / MOTOR_CURRENT_PWM_RANGE); break;
@@ -1235,19 +1234,19 @@ void digipot_current(uint8_t driver, int current) {
1235 1234
 
1236 1235
 void microstep_init() {
1237 1236
   #if HAS_MICROSTEPS_E1
1238
-    pinMode(E1_MS1_PIN,OUTPUT);
1239
-    pinMode(E1_MS2_PIN,OUTPUT);
1237
+    pinMode(E1_MS1_PIN, OUTPUT);
1238
+    pinMode(E1_MS2_PIN, OUTPUT);
1240 1239
   #endif
1241 1240
 
1242 1241
   #if HAS_MICROSTEPS
1243
-    pinMode(X_MS1_PIN,OUTPUT);
1244
-    pinMode(X_MS2_PIN,OUTPUT);
1245
-    pinMode(Y_MS1_PIN,OUTPUT);
1246
-    pinMode(Y_MS2_PIN,OUTPUT);
1247
-    pinMode(Z_MS1_PIN,OUTPUT);
1248
-    pinMode(Z_MS2_PIN,OUTPUT);
1249
-    pinMode(E0_MS1_PIN,OUTPUT);
1250
-    pinMode(E0_MS2_PIN,OUTPUT);
1242
+    pinMode(X_MS1_PIN, OUTPUT);
1243
+    pinMode(X_MS2_PIN, OUTPUT);
1244
+    pinMode(Y_MS1_PIN, OUTPUT);
1245
+    pinMode(Y_MS2_PIN, OUTPUT);
1246
+    pinMode(Z_MS1_PIN, OUTPUT);
1247
+    pinMode(Z_MS2_PIN, OUTPUT);
1248
+    pinMode(E0_MS1_PIN, OUTPUT);
1249
+    pinMode(E0_MS2_PIN, OUTPUT);
1251 1250
     const uint8_t microstep_modes[] = MICROSTEP_MODES;
1252 1251
     for (uint16_t i = 0; i < COUNT(microstep_modes); i++)
1253 1252
       microstep_mode(i, microstep_modes[i]);
@@ -1255,7 +1254,7 @@ void microstep_init() {
1255 1254
 }
1256 1255
 
1257 1256
 void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) {
1258
-  if (ms1 >= 0) switch(driver) {
1257
+  if (ms1 >= 0) switch (driver) {
1259 1258
     case 0: digitalWrite(X_MS1_PIN, ms1); break;
1260 1259
     case 1: digitalWrite(Y_MS1_PIN, ms1); break;
1261 1260
     case 2: digitalWrite(Z_MS1_PIN, ms1); break;
@@ -1264,7 +1263,7 @@ void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) {
1264 1263
       case 4: digitalWrite(E1_MS1_PIN, ms1); break;
1265 1264
     #endif
1266 1265
   }
1267
-  if (ms2 >= 0) switch(driver) {
1266
+  if (ms2 >= 0) switch (driver) {
1268 1267
     case 0: digitalWrite(X_MS2_PIN, ms2); break;
1269 1268
     case 1: digitalWrite(Y_MS2_PIN, ms2); break;
1270 1269
     case 2: digitalWrite(Z_MS2_PIN, ms2); break;
@@ -1276,12 +1275,12 @@ void microstep_ms(uint8_t driver, int8_t ms1, int8_t ms2) {
1276 1275
 }
1277 1276
 
1278 1277
 void microstep_mode(uint8_t driver, uint8_t stepping_mode) {
1279
-  switch(stepping_mode) {
1280
-    case 1: microstep_ms(driver,MICROSTEP1); break;
1281
-    case 2: microstep_ms(driver,MICROSTEP2); break;
1282
-    case 4: microstep_ms(driver,MICROSTEP4); break;
1283
-    case 8: microstep_ms(driver,MICROSTEP8); break;
1284
-    case 16: microstep_ms(driver,MICROSTEP16); break;
1278
+  switch (stepping_mode) {
1279
+    case 1: microstep_ms(driver, MICROSTEP1); break;
1280
+    case 2: microstep_ms(driver, MICROSTEP2); break;
1281
+    case 4: microstep_ms(driver, MICROSTEP4); break;
1282
+    case 8: microstep_ms(driver, MICROSTEP8); break;
1283
+    case 16: microstep_ms(driver, MICROSTEP16); break;
1285 1284
   }
1286 1285
 }
1287 1286
 

+ 8
- 8
Marlin/stepper.h View File

@@ -19,7 +19,7 @@
19 19
 */
20 20
 
21 21
 #ifndef stepper_h
22
-#define stepper_h 
22
+#define stepper_h
23 23
 
24 24
 #include "planner.h"
25 25
 #include "stepper_indirection.h"
@@ -42,7 +42,7 @@
42 42
     #define E_STEP_WRITE(v) { if(extruder_duplication_enabled) { E0_STEP_WRITE(v); E1_STEP_WRITE(v); } else if(current_block->active_extruder == 1) { E1_STEP_WRITE(v); } else { E0_STEP_WRITE(v); }}
43 43
     #define NORM_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE(!INVERT_E0_DIR); E1_DIR_WRITE(!INVERT_E1_DIR); } else if(current_block->active_extruder == 1) { E1_DIR_WRITE(!INVERT_E1_DIR); } else { E0_DIR_WRITE(!INVERT_E0_DIR); }}
44 44
     #define REV_E_DIR() { if(extruder_duplication_enabled) { E0_DIR_WRITE(INVERT_E0_DIR); E1_DIR_WRITE(INVERT_E1_DIR); } else if(current_block->active_extruder == 1) { E1_DIR_WRITE(INVERT_E1_DIR); } else { E0_DIR_WRITE(INVERT_E0_DIR); }}
45
-  #endif  
45
+  #endif
46 46
 #else
47 47
   #define E_STEP_WRITE(v) E0_STEP_WRITE(v)
48 48
   #define NORM_E_DIR() E0_DIR_WRITE(!INVERT_E0_DIR)
@@ -60,8 +60,8 @@ void st_init();
60 60
 void st_synchronize();
61 61
 
62 62
 // Set current position in steps
63
-void st_set_position(const long &x, const long &y, const long &z, const long &e);
64
-void st_set_e_position(const long &e);
63
+void st_set_position(const long& x, const long& y, const long& z, const long& e);
64
+void st_set_e_position(const long& e);
65 65
 
66 66
 // Get current position in steps
67 67
 long st_get_position(uint8_t axis);
@@ -73,7 +73,7 @@ float st_get_position_mm(AxisEnum axis);
73 73
 // to notify the subsystem that it is time to go to work.
74 74
 void st_wake_up();
75 75
 
76
-  
76
+
77 77
 void checkHitEndstops(); //call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered
78 78
 void endstops_hit_on_purpose(); //avoid creation of the message, i.e. after homing and before a routine call of checkHitEndstops();
79 79
 
@@ -83,7 +83,7 @@ void checkStepperErrors(); //Print errors detected by the stepper
83 83
 
84 84
 void finishAndDisableSteppers();
85 85
 
86
-extern block_t *current_block;  // A pointer to the block currently being traced
86
+extern block_t* current_block;  // A pointer to the block currently being traced
87 87
 
88 88
 void quickStop();
89 89
 
@@ -102,7 +102,7 @@ void microstep_readings();
102 102
 #endif
103 103
 
104 104
 #if ENABLED(BABYSTEPPING)
105
-  void babystep(const uint8_t axis,const bool direction); // perform a short step with a single stepper motor, outside of any convention
105
+  void babystep(const uint8_t axis, const bool direction); // perform a short step with a single stepper motor, outside of any convention
106 106
 #endif
107
-     
107
+
108 108
 #endif

+ 97
- 99
Marlin/stepper_indirection.cpp View File

@@ -1,5 +1,5 @@
1 1
 /*
2
-  stepper_indirection.c - stepper motor driver indirection 
2
+  stepper_indirection.c - stepper motor driver indirection
3 3
   to allow some stepper functions to be done via SPI/I2c instead of direct pin manipulation
4 4
   Part of Marlin
5 5
 
@@ -29,78 +29,77 @@
29 29
 
30 30
 // Stepper objects of TMC steppers used
31 31
 #if ENABLED(X_IS_TMC)
32
-	TMC26XStepper stepperX(200,X_ENABLE_PIN,X_STEP_PIN,X_DIR_PIN,X_MAX_CURRENT,X_SENSE_RESISTOR);
32
+  TMC26XStepper stepperX(200, X_ENABLE_PIN, X_STEP_PIN, X_DIR_PIN, X_MAX_CURRENT, X_SENSE_RESISTOR);
33 33
 #endif
34 34
 #if ENABLED(X2_IS_TMC)
35
-	TMC26XStepper stepperX2(200,X2_ENABLE_PIN,X2_STEP_PIN,X2_DIR_PIN,X2_MAX_CURRENT,X2_SENSE_RESISTOR);
35
+  TMC26XStepper stepperX2(200, X2_ENABLE_PIN, X2_STEP_PIN, X2_DIR_PIN, X2_MAX_CURRENT, X2_SENSE_RESISTOR);
36 36
 #endif
37 37
 #if ENABLED(Y_IS_TMC)
38
-	TMC26XStepper stepperY(200,Y_ENABLE_PIN,Y_STEP_PIN,Y_DIR_PIN,Y_MAX_CURRENT,Y_SENSE_RESISTOR);
38
+  TMC26XStepper stepperY(200, Y_ENABLE_PIN, Y_STEP_PIN, Y_DIR_PIN, Y_MAX_CURRENT, Y_SENSE_RESISTOR);
39 39
 #endif
40 40
 #if ENABLED(Y2_IS_TMC)
41
-	TMC26XStepper stepperY2(200,Y2_ENABLE_PIN,Y2_STEP_PIN,Y2_DIR_PIN,Y2_MAX_CURRENT,Y2_SENSE_RESISTOR);
41
+  TMC26XStepper stepperY2(200, Y2_ENABLE_PIN, Y2_STEP_PIN, Y2_DIR_PIN, Y2_MAX_CURRENT, Y2_SENSE_RESISTOR);
42 42
 #endif
43 43
 #if ENABLED(Z_IS_TMC)
44
-	TMC26XStepper stepperZ(200,Z_ENABLE_PIN,Z_STEP_PIN,Z_DIR_PIN,Z_MAX_CURRENT,Z_SENSE_RESISTOR);
44
+  TMC26XStepper stepperZ(200, Z_ENABLE_PIN, Z_STEP_PIN, Z_DIR_PIN, Z_MAX_CURRENT, Z_SENSE_RESISTOR);
45 45
 #endif
46 46
 #if ENABLED(Z2_IS_TMC)
47
-	TMC26XStepper stepperZ2(200,Z2_ENABLE_PIN,Z2_STEP_PIN,Z2_DIR_PIN,Z2_MAX_CURRENT,Z2_SENSE_RESISTOR);
47
+  TMC26XStepper stepperZ2(200, Z2_ENABLE_PIN, Z2_STEP_PIN, Z2_DIR_PIN, Z2_MAX_CURRENT, Z2_SENSE_RESISTOR);
48 48
 #endif
49 49
 #if ENABLED(E0_IS_TMC)
50
-	TMC26XStepper stepperE0(200,E0_ENABLE_PIN,E0_STEP_PIN,E0_DIR_PIN,E0_MAX_CURRENT,E0_SENSE_RESISTOR);
50
+  TMC26XStepper stepperE0(200, E0_ENABLE_PIN, E0_STEP_PIN, E0_DIR_PIN, E0_MAX_CURRENT, E0_SENSE_RESISTOR);
51 51
 #endif
52 52
 #if ENABLED(E1_IS_TMC)
53
-	TMC26XStepper stepperE1(200,E1_ENABLE_PIN,E1_STEP_PIN,E1_DIR_PIN,E1_MAX_CURRENT,E1_SENSE_RESISTOR);
53
+  TMC26XStepper stepperE1(200, E1_ENABLE_PIN, E1_STEP_PIN, E1_DIR_PIN, E1_MAX_CURRENT, E1_SENSE_RESISTOR);
54 54
 #endif
55 55
 #if ENABLED(E2_IS_TMC)
56
-	TMC26XStepper stepperE2(200,E2_ENABLE_PIN,E2_STEP_PIN,E2_DIR_PIN,E2_MAX_CURRENT,E2_SENSE_RESISTOR);
56
+  TMC26XStepper stepperE2(200, E2_ENABLE_PIN, E2_STEP_PIN, E2_DIR_PIN, E2_MAX_CURRENT, E2_SENSE_RESISTOR);
57 57
 #endif
58 58
 #if ENABLED(E3_IS_TMC)
59
-	TMC26XStepper stepperE3(200,E3_ENABLE_PIN,E3_STEP_PIN,E3_DIR_PIN,E3_MAX_CURRENT,E3_SENSE_RESISTOR);
60
-#endif	
59
+  TMC26XStepper stepperE3(200, E3_ENABLE_PIN, E3_STEP_PIN, E3_DIR_PIN, E3_MAX_CURRENT, E3_SENSE_RESISTOR);
60
+#endif
61 61
 
62 62
 #if ENABLED(HAVE_TMCDRIVER)
63
-void tmc_init()
64
-{
63
+void tmc_init() {
65 64
   #if ENABLED(X_IS_TMC)
66
-	stepperX.setMicrosteps(X_MICROSTEPS);
67
-	stepperX.start();
65
+    stepperX.setMicrosteps(X_MICROSTEPS);
66
+    stepperX.start();
68 67
   #endif
69 68
   #if ENABLED(X2_IS_TMC)
70
-	stepperX2.setMicrosteps(X2_MICROSTEPS);
71
-	stepperX2.start();
69
+    stepperX2.setMicrosteps(X2_MICROSTEPS);
70
+    stepperX2.start();
72 71
   #endif
73 72
   #if ENABLED(Y_IS_TMC)
74
-	stepperY.setMicrosteps(Y_MICROSTEPS);
75
-	stepperY.start();
73
+    stepperY.setMicrosteps(Y_MICROSTEPS);
74
+    stepperY.start();
76 75
   #endif
77 76
   #if ENABLED(Y2_IS_TMC)
78
-	stepperY2.setMicrosteps(Y2_MICROSTEPS);
79
-	stepperY2.start();
77
+    stepperY2.setMicrosteps(Y2_MICROSTEPS);
78
+    stepperY2.start();
80 79
   #endif
81 80
   #if ENABLED(Z_IS_TMC)
82
-	stepperZ.setMicrosteps(Z_MICROSTEPS);
83
-	stepperZ.start();
81
+    stepperZ.setMicrosteps(Z_MICROSTEPS);
82
+    stepperZ.start();
84 83
   #endif
85 84
   #if ENABLED(Z2_IS_TMC)
86
-	stepperZ2.setMicrosteps(Z2_MICROSTEPS);
87
-	stepperZ2.start();
85
+    stepperZ2.setMicrosteps(Z2_MICROSTEPS);
86
+    stepperZ2.start();
88 87
   #endif
89 88
   #if ENABLED(E0_IS_TMC)
90
-	stepperE0.setMicrosteps(E0_MICROSTEPS);
91
-	stepperE0.start();
89
+    stepperE0.setMicrosteps(E0_MICROSTEPS);
90
+    stepperE0.start();
92 91
   #endif
93 92
   #if ENABLED(E1_IS_TMC)
94
-	stepperE1.setMicrosteps(E1_MICROSTEPS);
95
-	stepperE1.start();
93
+    stepperE1.setMicrosteps(E1_MICROSTEPS);
94
+    stepperE1.start();
96 95
   #endif
97 96
   #if ENABLED(E2_IS_TMC)
98
-	stepperE2.setMicrosteps(E2_MICROSTEPS);
99
-	stepperE2.start();
97
+    stepperE2.setMicrosteps(E2_MICROSTEPS);
98
+    stepperE2.start();
100 99
   #endif
101 100
   #if ENABLED(E3_IS_TMC)
102
-	stepperE3.setMicrosteps(E3_MICROSTEPS);
103
-	stepperE3.start();
101
+    stepperE3.setMicrosteps(E3_MICROSTEPS);
102
+    stepperE3.start();
104 103
   #endif
105 104
 }
106 105
 #endif
@@ -108,117 +107,116 @@ void tmc_init()
108 107
 // L6470 Driver objects and inits
109 108
 
110 109
 #if ENABLED(HAVE_L6470DRIVER)
111
-#include <SPI.h>
112
-#include <L6470.h>
110
+  #include <SPI.h>
111
+  #include <L6470.h>
113 112
 #endif
114 113
 
115 114
 // L6470 Stepper objects
116
-  #if ENABLED(X_IS_L6470)
117
-	L6470 stepperX(X_ENABLE_PIN);
118
-  #endif
119
-  #if ENABLED(X2_IS_L6470)
120
-	L6470 stepperX2(X2_ENABLE_PIN);
121
-  #endif
122
-  #if ENABLED(Y_IS_L6470)
123
-	L6470 stepperY(Y_ENABLE_PIN);
124
-  #endif
125
-  #if ENABLED(Y2_IS_L6470)
126
-	L6470 stepperY2(Y2_ENABLE_PIN);
127
-  #endif
128
-  #if ENABLED(Z_IS_L6470)
129
-	L6470 stepperZ(Z_ENABLE_PIN);
130
-  #endif
131
-  #if ENABLED(Z2_IS_L6470)
132
-	L6470 stepperZ2(Z2_ENABLE_PIN);
133
-  #endif
134
-  #if ENABLED(E0_IS_L6470)
135
-	L6470 stepperE0(E0_ENABLE_PIN);
136
-  #endif
137
-  #if ENABLED(E1_IS_L6470)
138
-	L6470 stepperE1(E1_ENABLE_PIN);
139
-  #endif
140
-  #if ENABLED(E2_IS_L6470)
141
-	L6470 stepperE2(E2_ENABLE_PIN);
142
-  #endif
143
-  #if ENABLED(E3_IS_L6470)
144
-	L6470 stepperE3(E3_ENABLE_PIN);
145
-  #endif	
115
+#if ENABLED(X_IS_L6470)
116
+  L6470 stepperX(X_ENABLE_PIN);
117
+#endif
118
+#if ENABLED(X2_IS_L6470)
119
+  L6470 stepperX2(X2_ENABLE_PIN);
120
+#endif
121
+#if ENABLED(Y_IS_L6470)
122
+  L6470 stepperY(Y_ENABLE_PIN);
123
+#endif
124
+#if ENABLED(Y2_IS_L6470)
125
+  L6470 stepperY2(Y2_ENABLE_PIN);
126
+#endif
127
+#if ENABLED(Z_IS_L6470)
128
+  L6470 stepperZ(Z_ENABLE_PIN);
129
+#endif
130
+#if ENABLED(Z2_IS_L6470)
131
+  L6470 stepperZ2(Z2_ENABLE_PIN);
132
+#endif
133
+#if ENABLED(E0_IS_L6470)
134
+  L6470 stepperE0(E0_ENABLE_PIN);
135
+#endif
136
+#if ENABLED(E1_IS_L6470)
137
+  L6470 stepperE1(E1_ENABLE_PIN);
138
+#endif
139
+#if ENABLED(E2_IS_L6470)
140
+  L6470 stepperE2(E2_ENABLE_PIN);
141
+#endif
142
+#if ENABLED(E3_IS_L6470)
143
+  L6470 stepperE3(E3_ENABLE_PIN);
144
+#endif
146 145
 
147 146
 
148 147
 // init routine
149 148
 #if ENABLED(HAVE_L6470DRIVER)
150
-void L6470_init()
151
-{
149
+void L6470_init() {
152 150
   #if ENABLED(X_IS_L6470)
153
-	stepperX.init(X_K_VAL);
154
-	stepperX.softFree();
155
-	stepperX.setMicroSteps(X_MICROSTEPS);
151
+    stepperX.init(X_K_VAL);
152
+    stepperX.softFree();
153
+    stepperX.setMicroSteps(X_MICROSTEPS);
156 154
     stepperX.setOverCurrent(X_OVERCURRENT); //set overcurrent protection
157 155
     stepperX.setStallCurrent(X_STALLCURRENT);
158 156
   #endif
159 157
   #if ENABLED(X2_IS_L6470)
160
-	stepperX2.init(X2_K_VAL);
161
-	stepperX2.softFree();
162
-	stepperX2.setMicroSteps(X2_MICROSTEPS);
158
+    stepperX2.init(X2_K_VAL);
159
+    stepperX2.softFree();
160
+    stepperX2.setMicroSteps(X2_MICROSTEPS);
163 161
     stepperX2.setOverCurrent(X2_OVERCURRENT); //set overcurrent protection
164 162
     stepperX2.setStallCurrent(X2_STALLCURRENT);
165 163
   #endif
166 164
   #if ENABLED(Y_IS_L6470)
167
-	stepperY.init(Y_K_VAL);
168
-	stepperY.softFree();
169
-	stepperY.setMicroSteps(Y_MICROSTEPS);
165
+    stepperY.init(Y_K_VAL);
166
+    stepperY.softFree();
167
+    stepperY.setMicroSteps(Y_MICROSTEPS);
170 168
     stepperY.setOverCurrent(Y_OVERCURRENT); //set overcurrent protection
171 169
     stepperY.setStallCurrent(Y_STALLCURRENT);
172 170
   #endif
173 171
   #if ENABLED(Y2_IS_L6470)
174
-	stepperY2.init(Y2_K_VAL);
175
-	stepperY2.softFree();
176
-	stepperY2.setMicroSteps(Y2_MICROSTEPS);
172
+    stepperY2.init(Y2_K_VAL);
173
+    stepperY2.softFree();
174
+    stepperY2.setMicroSteps(Y2_MICROSTEPS);
177 175
     stepperY2.setOverCurrent(Y2_OVERCURRENT); //set overcurrent protection
178 176
     stepperY2.setStallCurrent(Y2_STALLCURRENT);
179 177
   #endif
180 178
   #if ENABLED(Z_IS_L6470)
181
-	stepperZ.init(Z_K_VAL);
182
-	stepperZ.softFree();
183
-	stepperZ.setMicroSteps(Z_MICROSTEPS);
179
+    stepperZ.init(Z_K_VAL);
180
+    stepperZ.softFree();
181
+    stepperZ.setMicroSteps(Z_MICROSTEPS);
184 182
     stepperZ.setOverCurrent(Z_OVERCURRENT); //set overcurrent protection
185 183
     stepperZ.setStallCurrent(Z_STALLCURRENT);
186 184
   #endif
187 185
   #if ENABLED(Z2_IS_L6470)
188
-	stepperZ2.init(Z2_K_VAL);
189
-	stepperZ2.softFree();
190
-	stepperZ2.setMicroSteps(Z2_MICROSTEPS);
186
+    stepperZ2.init(Z2_K_VAL);
187
+    stepperZ2.softFree();
188
+    stepperZ2.setMicroSteps(Z2_MICROSTEPS);
191 189
     stepperZ2.setOverCurrent(Z2_OVERCURRENT); //set overcurrent protection
192 190
     stepperZ2.setStallCurrent(Z2_STALLCURRENT);
193 191
   #endif
194 192
   #if ENABLED(E0_IS_L6470)
195
-	stepperE0.init(E0_K_VAL);
196
-	stepperE0.softFree();
197
-	stepperE0.setMicroSteps(E0_MICROSTEPS);
193
+    stepperE0.init(E0_K_VAL);
194
+    stepperE0.softFree();
195
+    stepperE0.setMicroSteps(E0_MICROSTEPS);
198 196
     stepperE0.setOverCurrent(E0_OVERCURRENT); //set overcurrent protection
199 197
     stepperE0.setStallCurrent(E0_STALLCURRENT);
200 198
   #endif
201 199
   #if ENABLED(E1_IS_L6470)
202
-	stepperE1.init(E1_K_VAL);
203
-	stepperE1.softFree();
204
-	stepperE1.setMicroSteps(E1_MICROSTEPS);
200
+    stepperE1.init(E1_K_VAL);
201
+    stepperE1.softFree();
202
+    stepperE1.setMicroSteps(E1_MICROSTEPS);
205 203
     stepperE1.setOverCurrent(E1_OVERCURRENT); //set overcurrent protection
206 204
     stepperE1.setStallCurrent(E1_STALLCURRENT);
207 205
   #endif
208 206
   #if ENABLED(E2_IS_L6470)
209
-	stepperE2.init(E2_K_VAL);
210
-	stepperE2.softFree();
211
-	stepperE2.setMicroSteps(E2_MICROSTEPS);
207
+    stepperE2.init(E2_K_VAL);
208
+    stepperE2.softFree();
209
+    stepperE2.setMicroSteps(E2_MICROSTEPS);
212 210
     stepperE2.setOverCurrent(E2_OVERCURRENT); //set overcurrent protection
213 211
     stepperE2.setStallCurrent(E2_STALLCURRENT);
214 212
   #endif
215 213
   #if ENABLED(E3_IS_L6470)
216
-	stepperE3.init(E3_K_VAL);
217
-	stepperE3.softFree();
218
-	stepperE3.setMicroSteps(E3_MICROSTEPS);
214
+    stepperE3.init(E3_K_VAL);
215
+    stepperE3.softFree();
216
+    stepperE3.setMicroSteps(E3_MICROSTEPS);
219 217
     stepperE3.setOverCurrent(E3_OVERCURRENT); //set overcurrent protection
220 218
     stepperE3.setStallCurrent(E3_STALLCURRENT);
221
-  #endif	
219
+  #endif
222 220
 }
223 221
 #endif
224 222
 

+ 318
- 318
Marlin/stepper_indirection.h View File

@@ -155,339 +155,339 @@
155 155
 #define E3_ENABLE_READ READ(E3_ENABLE_PIN)
156 156
 
157 157
 //////////////////////////////////
158
-// Pin redefines for TMC drivers. 
158
+// Pin redefines for TMC drivers.
159 159
 // TMC26X drivers have step and dir on normal pins, but everything else via SPI
160 160
 //////////////////////////////////
161 161
 #if ENABLED(HAVE_TMCDRIVER)
162
-#include <SPI.h>
163
-#include <TMC26XStepper.h>
162
+  #include <SPI.h>
163
+  #include <TMC26XStepper.h>
164 164
 
165 165
   void tmc_init();
166
-#if ENABLED(X_IS_TMC)
167
-   extern TMC26XStepper stepperX;
168
-   #undef X_ENABLE_INIT 
169
-   #define X_ENABLE_INIT ((void)0)
170
-   
171
-   #undef X_ENABLE_WRITE
172
-   #define X_ENABLE_WRITE(STATE) stepperX.setEnabled(STATE)
173
-   
174
-   #undef X_ENABLE_READ
175
-   #define X_ENABLE_READ stepperX.isEnabled()
176
-   
177
-#endif
178
-#if ENABLED(X2_IS_TMC)
179
-   extern TMC26XStepper stepperX2;
180
-   #undef X2_ENABLE_INIT
181
-   #define X2_ENABLE_INIT ((void)0)
182
-   
183
-   #undef X2_ENABLE_WRITE
184
-   #define X2_ENABLE_WRITE(STATE) stepperX2.setEnabled(STATE)
185
-   
186
-   #undef X2_ENABLE_READ
187
-   #define X2_ENABLE_READ stepperX2.isEnabled()   
188
-#endif
189
-#if ENABLED(Y_IS_TMC)
190
-   extern TMC26XStepper stepperY;
191
-   #undef Y_ENABLE_INIT
192
-   #define Y_ENABLE_INIT ((void)0)
193
-   
194
-   #undef Y_ENABLE_WRITE
195
-   #define Y_ENABLE_WRITE(STATE) stepperY.setEnabled(STATE)
196
-   
197
-   #undef Y_ENABLE_READ
198
-   #define Y_ENABLE_READ stepperY.isEnabled()   
199
-#endif
200
-#if ENABLED(Y2_IS_TMC)
201
-   extern TMC26XStepper stepperY2;
202
-   #undef Y2_ENABLE_INIT
203
-   #define Y2_ENABLE_INIT ((void)0)
204
-   
205
-   #undef Y2_ENABLE_WRITE
206
-   #define Y2_ENABLE_WRITE(STATE) stepperY2.setEnabled(STATE)
207
-   
208
-   #undef Y2_ENABLE_READ
209
-   #define Y2_ENABLE_READ stepperY2.isEnabled()     
210
-#endif
211
-#if ENABLED(Z_IS_TMC)
212
-   extern TMC26XStepper stepperZ;
213
-   #undef Z_ENABLE_INIT
214
-   #define Z_ENABLE_INIT ((void)0)
215
-   
216
-   #undef Z_ENABLE_WRITE
217
-   #define Z_ENABLE_WRITE(STATE) stepperZ.setEnabled(STATE)
218
-   
219
-   #undef Z_ENABLE_READ
220
-   #define Z_ENABLE_READ stepperZ.isEnabled()       
221
-#endif
222
-#if ENABLED(Z2_IS_TMC)
223
-   extern TMC26XStepper stepperZ2;
224
-   #undef Z2_ENABLE_INIT
225
-   #define Z2_ENABLE_INIT ((void)0)
226
-   
227
-   #undef Z2_ENABLE_WRITE
228
-   #define Z2_ENABLE_WRITE(STATE) stepperZ2.setEnabled(STATE)
229
-   
230
-   #undef Z2_ENABLE_READ
231
-   #define Z2_ENABLE_READ stepperZ2.isEnabled()   
232
-#endif
233
-#if ENABLED(E0_IS_TMC)
234
-   extern TMC26XStepper stepperE0;
235
-   #undef E0_ENABLE_INIT
236
-   #define E0_ENABLE_INIT ((void)0)
237
-   
238
-   #undef E0_ENABLE_WRITE
239
-   #define E0_ENABLE_WRITE(STATE) stepperE0.setEnabled(STATE)
240
-   
241
-   #undef E0_ENABLE_READ
242
-   #define E0_ENABLE_READ stepperE0.isEnabled()   
243
-#endif
244
-#if ENABLED(E1_IS_TMC)
245
-   extern TMC26XStepper stepperE1;
246
-   #undef E1_ENABLE_INIT
247
-   #define E1_ENABLE_INIT ((void)0)
248
-   
249
-   #undef E1_ENABLE_WRITE
250
-   #define E1_ENABLE_WRITE(STATE) stepperE1.setEnabled(STATE)
251
-   
252
-   #undef E1_ENABLE_READ
253
-   #define E1_ENABLE_READ stepperE1.isEnabled()   
254
-#endif
255
-#if ENABLED(E2_IS_TMC)
256
-   extern TMC26XStepper stepperE2;
257
-   #undef E2_ENABLE_INIT
258
-   #define E2_ENABLE_INIT ((void)0)
259
-   
260
-   #undef E2_ENABLE_WRITE
261
-   #define E2_ENABLE_WRITE(STATE) stepperE2.setEnabled(STATE)
262
-   
263
-   #undef E2_ENABLE_READ
264
-   #define E2_ENABLE_READ stepperE2.isEnabled()   
265
-#endif
266
-#if ENABLED(E3_IS_TMC)
267
-   extern TMC26XStepper stepperE3;
268
-   #undef E3_ENABLE_INIT
269
-   #define E3_ENABLE_INIT ((void)0)
270
-   
271
-   #undef E3_ENABLE_WRITE
272
-   #define E3_ENABLE_WRITE(STATE) stepperE3.setEnabled(STATE)
273
-   
274
-   #undef E3_ENABLE_READ
275
-   #define E3_ENABLE_READ stepperE3.isEnabled()   
276
-#endif
166
+  #if ENABLED(X_IS_TMC)
167
+    extern TMC26XStepper stepperX;
168
+    #undef X_ENABLE_INIT
169
+    #define X_ENABLE_INIT ((void)0)
170
+
171
+    #undef X_ENABLE_WRITE
172
+    #define X_ENABLE_WRITE(STATE) stepperX.setEnabled(STATE)
173
+
174
+    #undef X_ENABLE_READ
175
+    #define X_ENABLE_READ stepperX.isEnabled()
176
+
177
+  #endif
178
+  #if ENABLED(X2_IS_TMC)
179
+    extern TMC26XStepper stepperX2;
180
+    #undef X2_ENABLE_INIT
181
+    #define X2_ENABLE_INIT ((void)0)
182
+
183
+    #undef X2_ENABLE_WRITE
184
+    #define X2_ENABLE_WRITE(STATE) stepperX2.setEnabled(STATE)
185
+
186
+    #undef X2_ENABLE_READ
187
+    #define X2_ENABLE_READ stepperX2.isEnabled()
188
+  #endif
189
+  #if ENABLED(Y_IS_TMC)
190
+    extern TMC26XStepper stepperY;
191
+    #undef Y_ENABLE_INIT
192
+    #define Y_ENABLE_INIT ((void)0)
193
+
194
+    #undef Y_ENABLE_WRITE
195
+    #define Y_ENABLE_WRITE(STATE) stepperY.setEnabled(STATE)
196
+
197
+    #undef Y_ENABLE_READ
198
+    #define Y_ENABLE_READ stepperY.isEnabled()
199
+  #endif
200
+  #if ENABLED(Y2_IS_TMC)
201
+    extern TMC26XStepper stepperY2;
202
+    #undef Y2_ENABLE_INIT
203
+    #define Y2_ENABLE_INIT ((void)0)
204
+
205
+    #undef Y2_ENABLE_WRITE
206
+    #define Y2_ENABLE_WRITE(STATE) stepperY2.setEnabled(STATE)
207
+
208
+    #undef Y2_ENABLE_READ
209
+    #define Y2_ENABLE_READ stepperY2.isEnabled()
210
+  #endif
211
+  #if ENABLED(Z_IS_TMC)
212
+    extern TMC26XStepper stepperZ;
213
+    #undef Z_ENABLE_INIT
214
+    #define Z_ENABLE_INIT ((void)0)
215
+
216
+    #undef Z_ENABLE_WRITE
217
+    #define Z_ENABLE_WRITE(STATE) stepperZ.setEnabled(STATE)
218
+
219
+    #undef Z_ENABLE_READ
220
+    #define Z_ENABLE_READ stepperZ.isEnabled()
221
+  #endif
222
+  #if ENABLED(Z2_IS_TMC)
223
+    extern TMC26XStepper stepperZ2;
224
+    #undef Z2_ENABLE_INIT
225
+    #define Z2_ENABLE_INIT ((void)0)
226
+
227
+    #undef Z2_ENABLE_WRITE
228
+    #define Z2_ENABLE_WRITE(STATE) stepperZ2.setEnabled(STATE)
229
+
230
+    #undef Z2_ENABLE_READ
231
+    #define Z2_ENABLE_READ stepperZ2.isEnabled()
232
+  #endif
233
+  #if ENABLED(E0_IS_TMC)
234
+    extern TMC26XStepper stepperE0;
235
+    #undef E0_ENABLE_INIT
236
+    #define E0_ENABLE_INIT ((void)0)
237
+
238
+    #undef E0_ENABLE_WRITE
239
+    #define E0_ENABLE_WRITE(STATE) stepperE0.setEnabled(STATE)
240
+
241
+    #undef E0_ENABLE_READ
242
+    #define E0_ENABLE_READ stepperE0.isEnabled()
243
+  #endif
244
+  #if ENABLED(E1_IS_TMC)
245
+    extern TMC26XStepper stepperE1;
246
+    #undef E1_ENABLE_INIT
247
+    #define E1_ENABLE_INIT ((void)0)
248
+
249
+    #undef E1_ENABLE_WRITE
250
+    #define E1_ENABLE_WRITE(STATE) stepperE1.setEnabled(STATE)
251
+
252
+    #undef E1_ENABLE_READ
253
+    #define E1_ENABLE_READ stepperE1.isEnabled()
254
+  #endif
255
+  #if ENABLED(E2_IS_TMC)
256
+    extern TMC26XStepper stepperE2;
257
+    #undef E2_ENABLE_INIT
258
+    #define E2_ENABLE_INIT ((void)0)
259
+
260
+    #undef E2_ENABLE_WRITE
261
+    #define E2_ENABLE_WRITE(STATE) stepperE2.setEnabled(STATE)
262
+
263
+    #undef E2_ENABLE_READ
264
+    #define E2_ENABLE_READ stepperE2.isEnabled()
265
+  #endif
266
+  #if ENABLED(E3_IS_TMC)
267
+    extern TMC26XStepper stepperE3;
268
+    #undef E3_ENABLE_INIT
269
+    #define E3_ENABLE_INIT ((void)0)
270
+
271
+    #undef E3_ENABLE_WRITE
272
+    #define E3_ENABLE_WRITE(STATE) stepperE3.setEnabled(STATE)
273
+
274
+    #undef E3_ENABLE_READ
275
+    #define E3_ENABLE_READ stepperE3.isEnabled()
276
+  #endif
277 277
 
278 278
 #endif  // HAVE_TMCDRIVER
279 279
 
280 280
 //////////////////////////////////
281
-// Pin redefines for L6470 drivers. 
281
+// Pin redefines for L6470 drivers.
282 282
 // L640 drivers have step on normal pins, but dir and everything else via SPI
283 283
 //////////////////////////////////
284 284
 #if ENABLED(HAVE_L6470DRIVER)
285 285
 
286
-#include <SPI.h>
287
-#include <L6470.h>
286
+  #include <SPI.h>
287
+  #include <L6470.h>
288 288
 
289 289
   void L6470_init();
290
-#if ENABLED(X_IS_L6470)
291
-   extern L6470 stepperX;
292
-   #undef X_ENABLE_INIT 
293
-   #define X_ENABLE_INIT ((void)0)
294
-   
295
-   #undef X_ENABLE_WRITE
296
-   #define X_ENABLE_WRITE(STATE) {if(STATE) stepperX.Step_Clock(stepperX.getStatus() & STATUS_HIZ); else stepperX.softFree();}
297
-   
298
-   #undef X_ENABLE_READ
299
-   #define X_ENABLE_READ (stepperX.getStatus() & STATUS_HIZ)
300
-   
301
-   #undef X_DIR_INIT 
302
-   #define X_DIR_INIT ((void)0)
303
-   
304
-   #undef X_DIR_WRITE
305
-   #define X_DIR_WRITE(STATE) stepperX.Step_Clock(STATE)
306
-   
307
-   #undef X_DIR_READ
308
-   #define X_DIR_READ (stepperX.getStatus() & STATUS_DIR)
309
-   
310
-#endif
311
-#if ENABLED(X2_IS_L6470)
312
-   extern L6470 stepperX2;
313
-   #undef X2_ENABLE_INIT
314
-   #define X2_ENABLE_INIT ((void)0)
315
-   
316
-   #undef X2_ENABLE_WRITE
317
-   #define X2_ENABLE_WRITE(STATE) (if(STATE) stepperX2.Step_Clock(stepperX2.getStatus() & STATUS_HIZ); else stepperX2.softFree();)
318
-   
319
-   #undef X2_ENABLE_READ
320
-   #define X2_ENABLE_READ (stepperX2.getStatus() & STATUS_HIZ)
321
-   
322
-   #undef X2_DIR_INIT 
323
-   #define X2_DIR_INIT ((void)0)
324
-   
325
-   #undef X2_DIR_WRITE
326
-   #define X2_DIR_WRITE(STATE) stepperX2.Step_Clock(STATE)
327
-   
328
-   #undef X2_DIR_READ
329
-   #define X2_DIR_READ (stepperX2.getStatus() & STATUS_DIR)
330
-#endif
331
-#if ENABLED(Y_IS_L6470)
332
-   extern L6470 stepperY;
333
-   #undef Y_ENABLE_INIT
334
-   #define Y_ENABLE_INIT ((void)0)
335
-   
336
-   #undef Y_ENABLE_WRITE
337
-   #define Y_ENABLE_WRITE(STATE) (if(STATE) stepperY.Step_Clock(stepperY.getStatus() & STATUS_HIZ); else stepperY.softFree();)
338
-   
339
-   #undef Y_ENABLE_READ
340
-   #define Y_ENABLE_READ (stepperY.getStatus() & STATUS_HIZ)
341
-   
342
-   #undef Y_DIR_INIT 
343
-   #define Y_DIR_INIT ((void)0)
344
-   
345
-   #undef Y_DIR_WRITE
346
-   #define Y_DIR_WRITE(STATE) stepperY.Step_Clock(STATE)
347
-   
348
-   #undef Y_DIR_READ
349
-   #define Y_DIR_READ (stepperY.getStatus() & STATUS_DIR)  
350
-#endif
351
-#if ENABLED(Y2_IS_L6470)
352
-   extern L6470 stepperY2;
353
-   #undef Y2_ENABLE_INIT
354
-   #define Y2_ENABLE_INIT ((void)0)
355
-   
356
-   #undef Y2_ENABLE_WRITE
357
-   #define Y2_ENABLE_WRITE(STATE) (if(STATE) stepperY2.Step_Clock(stepperY2.getStatus() & STATUS_HIZ); else stepperY2.softFree();)
358
-   
359
-   #undef Y2_ENABLE_READ
360
-   #define Y2_ENABLE_READ (stepperY2.getStatus() & STATUS_HIZ)
361
-   
362
-   #undef Y2_DIR_INIT 
363
-   #define Y2_DIR_INIT ((void)0)
364
-   
365
-   #undef Y2_DIR_WRITE
366
-   #define Y2_DIR_WRITE(STATE) stepperY2.Step_Clock(STATE)
367
-   
368
-   #undef Y2_DIR_READ
369
-   #define Y2_DIR_READ (stepperY2.getStatus() & STATUS_DIR)   
370
-#endif
371
-#if ENABLED(Z_IS_L6470)
372
-   extern L6470 stepperZ;
373
-   #undef Z_ENABLE_INIT
374
-   #define Z_ENABLE_INIT ((void)0)
375
-   
376
-   #undef Z_ENABLE_WRITE
377
-   #define Z_ENABLE_WRITE(STATE) (if(STATE) stepperZ.Step_Clock(stepperZ.getStatus() & STATUS_HIZ); else stepperZ.softFree();)
378
-   
379
-   #undef Z_ENABLE_READ
380
-   #define Z_ENABLE_READ (stepperZ.getStatus() & STATUS_HIZ)
381
-   
382
-   #undef Z_DIR_INIT 
383
-   #define Z_DIR_INIT ((void)0)
384
-   
385
-   #undef Z_DIR_WRITE
386
-   #define Z_DIR_WRITE(STATE) stepperZ.Step_Clock(STATE)
387
-   
388
-   #undef Y_DIR_READ
389
-   #define Y_DIR_READ (stepperZ.getStatus() & STATUS_DIR)      
390
-#endif
391
-#if ENABLED(Z2_IS_L6470)
392
-   extern L6470 stepperZ2;
393
-   #undef Z2_ENABLE_INIT
394
-   #define Z2_ENABLE_INIT ((void)0)
395
-   
396
-   #undef Z2_ENABLE_WRITE
397
-   #define Z2_ENABLE_WRITE(STATE) (if(STATE) stepperZ2.Step_Clock(stepperZ2.getStatus() & STATUS_HIZ); else stepperZ2.softFree();)
398
-   
399
-   #undef Z2_ENABLE_READ
400
-   #define Z2_ENABLE_READ (stepperZ2.getStatus() & STATUS_HIZ)
401
-   
402
-   #undef Z2_DIR_INIT 
403
-   #define Z2_DIR_INIT ((void)0)
404
-   
405
-   #undef Z2_DIR_WRITE
406
-   #define Z2_DIR_WRITE(STATE) stepperZ2.Step_Clock(STATE)
407
-   
408
-   #undef Y2_DIR_READ
409
-   #define Y2_DIR_READ (stepperZ2.getStatus() & STATUS_DIR)       
410
-#endif
411
-#if ENABLED(E0_IS_L6470)
412
-   extern L6470 stepperE0;
413
-   #undef E0_ENABLE_INIT
414
-   #define E0_ENABLE_INIT ((void)0)
415
-   
416
-   #undef E0_ENABLE_WRITE
417
-   #define E0_ENABLE_WRITE(STATE) (if(STATE) stepperE0.Step_Clock(stepperE0.getStatus() & STATUS_HIZ); else stepperE0.softFree();)
418
-   
419
-   #undef E0_ENABLE_READ
420
-   #define E0_ENABLE_READ (stepperE0.getStatus() & STATUS_HIZ)
421
-   
422
-   #undef E0_DIR_INIT 
423
-   #define E0_DIR_INIT ((void)0)
424
-   
425
-   #undef E0_DIR_WRITE
426
-   #define E0_DIR_WRITE(STATE) stepperE0.Step_Clock(STATE)
427
-   
428
-   #undef E0_DIR_READ
429
-   #define E0_DIR_READ (stepperE0.getStatus() & STATUS_DIR)    
430
-#endif
431
-#if ENABLED(E1_IS_L6470)
432
-   extern L6470 stepperE1;
433
-   #undef E1_ENABLE_INIT
434
-   #define E1_ENABLE_INIT ((void)0)
435
-   
436
-   #undef E1_ENABLE_WRITE
437
-   #define E1_ENABLE_WRITE(STATE) (if(STATE) stepperE1.Step_Clock(stepperE1.getStatus() & STATUS_HIZ); else stepperE1.softFree();)
438
-   
439
-   #undef E1_ENABLE_READ
440
-   #define E1_ENABLE_READ (stepperE1.getStatus() & STATUS_HIZ)
441
-   
442
-   #undef E1_DIR_INIT 
443
-   #define E1_DIR_INIT ((void)0)
444
-   
445
-   #undef E1_DIR_WRITE
446
-   #define E1_DIR_WRITE(STATE) stepperE1.Step_Clock(STATE)
447
-   
448
-   #undef E1_DIR_READ
449
-   #define E1_DIR_READ (stepperE1.getStatus() & STATUS_DIR)  
450
-#endif
451
-#if ENABLED(E2_IS_L6470)
452
-   extern L6470 stepperE2;
453
-   #undef E2_ENABLE_INIT
454
-   #define E2_ENABLE_INIT ((void)0)
455
-   
456
-   #undef E2_ENABLE_WRITE
457
-   #define E2_ENABLE_WRITE(STATE) (if(STATE) stepperE2.Step_Clock(stepperE2.getStatus() & STATUS_HIZ); else stepperE2.softFree();)
458
-   
459
-   #undef E2_ENABLE_READ
460
-   #define E2_ENABLE_READ (stepperE2.getStatus() & STATUS_HIZ)
461
-   
462
-   #undef E2_DIR_INIT 
463
-   #define E2_DIR_INIT ((void)0)
464
-   
465
-   #undef E2_DIR_WRITE
466
-   #define E2_DIR_WRITE(STATE) stepperE2.Step_Clock(STATE)
467
-   
468
-   #undef E2_DIR_READ
469
-   #define E2_DIR_READ (stepperE2.getStatus() & STATUS_DIR)  
470
-#endif
471
-#if ENABLED(E3_IS_L6470)
472
-   extern L6470 stepperE3;
473
-   #undef E3_ENABLE_INIT
474
-   #define E3_ENABLE_INIT ((void)0)
475
-   
476
-   #undef E3_ENABLE_WRITE
477
-   #define E3_ENABLE_WRITE(STATE) (if(STATE) stepperE3.Step_Clock(stepperE3.getStatus() & STATUS_HIZ); else stepperE3.softFree();)
478
-   
479
-   #undef E3_ENABLE_READ
480
-   #define E3_ENABLE_READ (stepperE3.getStatus() & STATUS_HIZ)
481
-   
482
-   #undef E3_DIR_INIT 
483
-   #define E3_DIR_INIT ((void)0)
484
-   
485
-   #undef E3_DIR_WRITE
486
-   #define E3_DIR_WRITE(STATE) stepperE3.Step_Clock(STATE)
487
-   
488
-   #undef E3_DIR_READ
489
-   #define E3_DIR_READ (stepperE3.getStatus() & STATUS_DIR)  
490
-#endif
290
+  #if ENABLED(X_IS_L6470)
291
+    extern L6470 stepperX;
292
+    #undef X_ENABLE_INIT
293
+    #define X_ENABLE_INIT ((void)0)
294
+
295
+    #undef X_ENABLE_WRITE
296
+    #define X_ENABLE_WRITE(STATE) {if(STATE) stepperX.Step_Clock(stepperX.getStatus() & STATUS_HIZ); else stepperX.softFree();}
297
+
298
+    #undef X_ENABLE_READ
299
+    #define X_ENABLE_READ (stepperX.getStatus() & STATUS_HIZ)
300
+
301
+    #undef X_DIR_INIT
302
+    #define X_DIR_INIT ((void)0)
303
+
304
+    #undef X_DIR_WRITE
305
+    #define X_DIR_WRITE(STATE) stepperX.Step_Clock(STATE)
306
+
307
+    #undef X_DIR_READ
308
+    #define X_DIR_READ (stepperX.getStatus() & STATUS_DIR)
309
+
310
+  #endif
311
+  #if ENABLED(X2_IS_L6470)
312
+    extern L6470 stepperX2;
313
+    #undef X2_ENABLE_INIT
314
+    #define X2_ENABLE_INIT ((void)0)
315
+
316
+    #undef X2_ENABLE_WRITE
317
+    #define X2_ENABLE_WRITE(STATE) (if(STATE) stepperX2.Step_Clock(stepperX2.getStatus() & STATUS_HIZ); else stepperX2.softFree();)
318
+
319
+    #undef X2_ENABLE_READ
320
+    #define X2_ENABLE_READ (stepperX2.getStatus() & STATUS_HIZ)
321
+
322
+    #undef X2_DIR_INIT
323
+    #define X2_DIR_INIT ((void)0)
324
+
325
+    #undef X2_DIR_WRITE
326
+    #define X2_DIR_WRITE(STATE) stepperX2.Step_Clock(STATE)
327
+
328
+    #undef X2_DIR_READ
329
+    #define X2_DIR_READ (stepperX2.getStatus() & STATUS_DIR)
330
+  #endif
331
+  #if ENABLED(Y_IS_L6470)
332
+    extern L6470 stepperY;
333
+    #undef Y_ENABLE_INIT
334
+    #define Y_ENABLE_INIT ((void)0)
335
+
336
+    #undef Y_ENABLE_WRITE
337
+    #define Y_ENABLE_WRITE(STATE) (if(STATE) stepperY.Step_Clock(stepperY.getStatus() & STATUS_HIZ); else stepperY.softFree();)
338
+
339
+    #undef Y_ENABLE_READ
340
+    #define Y_ENABLE_READ (stepperY.getStatus() & STATUS_HIZ)
341
+
342
+    #undef Y_DIR_INIT
343
+    #define Y_DIR_INIT ((void)0)
344
+
345
+    #undef Y_DIR_WRITE
346
+    #define Y_DIR_WRITE(STATE) stepperY.Step_Clock(STATE)
347
+
348
+    #undef Y_DIR_READ
349
+    #define Y_DIR_READ (stepperY.getStatus() & STATUS_DIR)
350
+  #endif
351
+  #if ENABLED(Y2_IS_L6470)
352
+    extern L6470 stepperY2;
353
+    #undef Y2_ENABLE_INIT
354
+    #define Y2_ENABLE_INIT ((void)0)
355
+
356
+    #undef Y2_ENABLE_WRITE
357
+    #define Y2_ENABLE_WRITE(STATE) (if(STATE) stepperY2.Step_Clock(stepperY2.getStatus() & STATUS_HIZ); else stepperY2.softFree();)
358
+
359
+    #undef Y2_ENABLE_READ
360
+    #define Y2_ENABLE_READ (stepperY2.getStatus() & STATUS_HIZ)
361
+
362
+    #undef Y2_DIR_INIT
363
+    #define Y2_DIR_INIT ((void)0)
364
+
365
+    #undef Y2_DIR_WRITE
366
+    #define Y2_DIR_WRITE(STATE) stepperY2.Step_Clock(STATE)
367
+
368
+    #undef Y2_DIR_READ
369
+    #define Y2_DIR_READ (stepperY2.getStatus() & STATUS_DIR)
370
+  #endif
371
+  #if ENABLED(Z_IS_L6470)
372
+    extern L6470 stepperZ;
373
+    #undef Z_ENABLE_INIT
374
+    #define Z_ENABLE_INIT ((void)0)
375
+
376
+    #undef Z_ENABLE_WRITE
377
+    #define Z_ENABLE_WRITE(STATE) (if(STATE) stepperZ.Step_Clock(stepperZ.getStatus() & STATUS_HIZ); else stepperZ.softFree();)
378
+
379
+    #undef Z_ENABLE_READ
380
+    #define Z_ENABLE_READ (stepperZ.getStatus() & STATUS_HIZ)
381
+
382
+    #undef Z_DIR_INIT
383
+    #define Z_DIR_INIT ((void)0)
384
+
385
+    #undef Z_DIR_WRITE
386
+    #define Z_DIR_WRITE(STATE) stepperZ.Step_Clock(STATE)
387
+
388
+    #undef Y_DIR_READ
389
+    #define Y_DIR_READ (stepperZ.getStatus() & STATUS_DIR)
390
+  #endif
391
+  #if ENABLED(Z2_IS_L6470)
392
+    extern L6470 stepperZ2;
393
+    #undef Z2_ENABLE_INIT
394
+    #define Z2_ENABLE_INIT ((void)0)
395
+
396
+    #undef Z2_ENABLE_WRITE
397
+    #define Z2_ENABLE_WRITE(STATE) (if(STATE) stepperZ2.Step_Clock(stepperZ2.getStatus() & STATUS_HIZ); else stepperZ2.softFree();)
398
+
399
+    #undef Z2_ENABLE_READ
400
+    #define Z2_ENABLE_READ (stepperZ2.getStatus() & STATUS_HIZ)
401
+
402
+    #undef Z2_DIR_INIT
403
+    #define Z2_DIR_INIT ((void)0)
404
+
405
+    #undef Z2_DIR_WRITE
406
+    #define Z2_DIR_WRITE(STATE) stepperZ2.Step_Clock(STATE)
407
+
408
+    #undef Y2_DIR_READ
409
+    #define Y2_DIR_READ (stepperZ2.getStatus() & STATUS_DIR)
410
+  #endif
411
+  #if ENABLED(E0_IS_L6470)
412
+    extern L6470 stepperE0;
413
+    #undef E0_ENABLE_INIT
414
+    #define E0_ENABLE_INIT ((void)0)
415
+
416
+    #undef E0_ENABLE_WRITE
417
+    #define E0_ENABLE_WRITE(STATE) (if(STATE) stepperE0.Step_Clock(stepperE0.getStatus() & STATUS_HIZ); else stepperE0.softFree();)
418
+
419
+    #undef E0_ENABLE_READ
420
+    #define E0_ENABLE_READ (stepperE0.getStatus() & STATUS_HIZ)
421
+
422
+    #undef E0_DIR_INIT
423
+    #define E0_DIR_INIT ((void)0)
424
+
425
+    #undef E0_DIR_WRITE
426
+    #define E0_DIR_WRITE(STATE) stepperE0.Step_Clock(STATE)
427
+
428
+    #undef E0_DIR_READ
429
+    #define E0_DIR_READ (stepperE0.getStatus() & STATUS_DIR)
430
+  #endif
431
+  #if ENABLED(E1_IS_L6470)
432
+    extern L6470 stepperE1;
433
+    #undef E1_ENABLE_INIT
434
+    #define E1_ENABLE_INIT ((void)0)
435
+
436
+    #undef E1_ENABLE_WRITE
437
+    #define E1_ENABLE_WRITE(STATE) (if(STATE) stepperE1.Step_Clock(stepperE1.getStatus() & STATUS_HIZ); else stepperE1.softFree();)
438
+
439
+    #undef E1_ENABLE_READ
440
+    #define E1_ENABLE_READ (stepperE1.getStatus() & STATUS_HIZ)
441
+
442
+    #undef E1_DIR_INIT
443
+    #define E1_DIR_INIT ((void)0)
444
+
445
+    #undef E1_DIR_WRITE
446
+    #define E1_DIR_WRITE(STATE) stepperE1.Step_Clock(STATE)
447
+
448
+    #undef E1_DIR_READ
449
+    #define E1_DIR_READ (stepperE1.getStatus() & STATUS_DIR)
450
+  #endif
451
+  #if ENABLED(E2_IS_L6470)
452
+    extern L6470 stepperE2;
453
+    #undef E2_ENABLE_INIT
454
+    #define E2_ENABLE_INIT ((void)0)
455
+
456
+    #undef E2_ENABLE_WRITE
457
+    #define E2_ENABLE_WRITE(STATE) (if(STATE) stepperE2.Step_Clock(stepperE2.getStatus() & STATUS_HIZ); else stepperE2.softFree();)
458
+
459
+    #undef E2_ENABLE_READ
460
+    #define E2_ENABLE_READ (stepperE2.getStatus() & STATUS_HIZ)
461
+
462
+    #undef E2_DIR_INIT
463
+    #define E2_DIR_INIT ((void)0)
464
+
465
+    #undef E2_DIR_WRITE
466
+    #define E2_DIR_WRITE(STATE) stepperE2.Step_Clock(STATE)
467
+
468
+    #undef E2_DIR_READ
469
+    #define E2_DIR_READ (stepperE2.getStatus() & STATUS_DIR)
470
+  #endif
471
+  #if ENABLED(E3_IS_L6470)
472
+    extern L6470 stepperE3;
473
+    #undef E3_ENABLE_INIT
474
+    #define E3_ENABLE_INIT ((void)0)
475
+
476
+    #undef E3_ENABLE_WRITE
477
+    #define E3_ENABLE_WRITE(STATE) (if(STATE) stepperE3.Step_Clock(stepperE3.getStatus() & STATUS_HIZ); else stepperE3.softFree();)
478
+
479
+    #undef E3_ENABLE_READ
480
+    #define E3_ENABLE_READ (stepperE3.getStatus() & STATUS_HIZ)
481
+
482
+    #undef E3_DIR_INIT
483
+    #define E3_DIR_INIT ((void)0)
484
+
485
+    #undef E3_DIR_WRITE
486
+    #define E3_DIR_WRITE(STATE) stepperE3.Step_Clock(STATE)
487
+
488
+    #undef E3_DIR_READ
489
+    #define E3_DIR_READ (stepperE3.getStatus() & STATUS_DIR)
490
+  #endif
491 491
 
492 492
 #endif  //HAVE_L6470DRIVER
493 493
 

+ 94
- 91
Marlin/temperature.cpp View File

@@ -1,19 +1,19 @@
1 1
 /*
2 2
   temperature.cpp - temperature control
3 3
   Part of Marlin
4
-  
4
+
5 5
  Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
6
- 
6
+
7 7
  This program is free software: you can redistribute it and/or modify
8 8
  it under the terms of the GNU General Public License as published by
9 9
  the Free Software Foundation, either version 3 of the License, or
10 10
  (at your option) any later version.
11
- 
11
+
12 12
  This program is distributed in the hope that it will be useful,
13 13
  but WITHOUT ANY WARRANTY; without even the implied warranty of
14 14
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 15
  GNU General Public License for more details.
16
- 
16
+
17 17
  You should have received a copy of the GNU General Public License
18 18
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
19 19
 */
@@ -54,28 +54,28 @@ float current_temperature_bed = 0.0;
54 54
 #endif
55 55
 
56 56
 #if ENABLED(PIDTEMPBED)
57
-  float bedKp=DEFAULT_bedKp;
58
-  float bedKi=(DEFAULT_bedKi*PID_dT);
59
-  float bedKd=(DEFAULT_bedKd/PID_dT);
57
+  float bedKp = DEFAULT_bedKp;
58
+  float bedKi = (DEFAULT_bedKi* PID_dT);
59
+  float bedKd = (DEFAULT_bedKd / PID_dT);
60 60
 #endif //PIDTEMPBED
61
-  
61
+
62 62
 #if ENABLED(FAN_SOFT_PWM)
63 63
   unsigned char fanSpeedSoftPwm;
64 64
 #endif
65 65
 
66 66
 unsigned char soft_pwm_bed;
67
-  
67
+
68 68
 #if ENABLED(BABYSTEPPING)
69 69
   volatile int babystepsTodo[3] = { 0 };
70 70
 #endif
71 71
 
72 72
 #if ENABLED(FILAMENT_SENSOR)
73 73
   int current_raw_filwidth = 0;  //Holds measured filament diameter - one extruder only
74
-#endif  
74
+#endif
75 75
 
76 76
 #if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED)
77 77
   enum TRState { TRReset, TRInactive, TRFirstHeating, TRStable, TRRunaway };
78
-  void thermal_runaway_protection(TRState *state, millis_t *timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc);
78
+  void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc);
79 79
   #if ENABLED(THERMAL_PROTECTION_HOTENDS)
80 80
     static TRState thermal_runaway_state_machine[4] = { TRReset, TRReset, TRReset, TRReset };
81 81
     static millis_t thermal_runaway_timer[4]; // = {0,0,0,0};
@@ -125,19 +125,19 @@ static volatile bool temp_meas_ready = false;
125 125
 #else //PIDTEMPBED
126 126
   static millis_t  next_bed_check_ms;
127 127
 #endif //PIDTEMPBED
128
-  static unsigned char soft_pwm[EXTRUDERS];
128
+static unsigned char soft_pwm[EXTRUDERS];
129 129
 
130 130
 #if ENABLED(FAN_SOFT_PWM)
131 131
   static unsigned char soft_pwm_fan;
132 132
 #endif
133 133
 #if HAS_AUTO_FAN
134 134
   static millis_t next_auto_fan_check_ms;
135
-#endif  
135
+#endif
136 136
 
137 137
 #if ENABLED(PIDTEMP)
138 138
   #if ENABLED(PID_PARAMS_PER_EXTRUDER)
139 139
     float Kp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kp);
140
-    float Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Ki*PID_dT);
140
+    float Ki[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Ki* PID_dT);
141 141
     float Kd[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kd / PID_dT);
142 142
     #if ENABLED(PID_ADD_EXTRUSION_RATE)
143 143
       float Kc[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(DEFAULT_Kc);
@@ -153,23 +153,23 @@ static volatile bool temp_meas_ready = false;
153 153
 #endif //PIDTEMP
154 154
 
155 155
 // Init min and max temp with extreme values to prevent false errors during startup
156
-static int minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP, HEATER_3_RAW_LO_TEMP);
157
-static int maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP);
156
+static int minttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_LO_TEMP , HEATER_1_RAW_LO_TEMP , HEATER_2_RAW_LO_TEMP, HEATER_3_RAW_LO_TEMP);
157
+static int maxttemp_raw[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_RAW_HI_TEMP , HEATER_1_RAW_HI_TEMP , HEATER_2_RAW_HI_TEMP, HEATER_3_RAW_HI_TEMP);
158 158
 static int minttemp[EXTRUDERS] = { 0 };
159 159
 static int maxttemp[EXTRUDERS] = ARRAY_BY_EXTRUDERS1(16383);
160 160
 #ifdef BED_MINTEMP
161
-static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP;
161
+  static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP;
162 162
 #endif
163 163
 #ifdef BED_MAXTEMP
164 164
   static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP;
165 165
 #endif
166 166
 
167 167
 #if ENABLED(TEMP_SENSOR_1_AS_REDUNDANT)
168
-  static void *heater_ttbl_map[2] = {(void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE };
168
+  static void* heater_ttbl_map[2] = {(void*)HEATER_0_TEMPTABLE, (void*)HEATER_1_TEMPTABLE };
169 169
   static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN };
170 170
 #else
171
-  static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE, (void *)HEATER_3_TEMPTABLE );
172
-  static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN, HEATER_3_TEMPTABLE_LEN );
171
+  static void* heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS((void*)HEATER_0_TEMPTABLE, (void*)HEATER_1_TEMPTABLE, (void*)HEATER_2_TEMPTABLE, (void*)HEATER_3_TEMPTABLE);
172
+  static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS(HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN, HEATER_3_TEMPTABLE_LEN);
173 173
 #endif
174 174
 
175 175
 static float analog2temp(int raw, uint8_t e);
@@ -222,7 +222,7 @@ void PID_autotune(float temp, int extruder, int ncycles) {
222 222
     SERIAL_ECHOLN(MSG_PID_BAD_EXTRUDER_NUM);
223 223
     return;
224 224
   }
225
-  
225
+
226 226
   SERIAL_ECHOLN(MSG_PID_AUTOTUNE_START);
227 227
 
228 228
   disable_all_heaters(); // switch off all heaters.
@@ -240,7 +240,7 @@ void PID_autotune(float temp, int extruder, int ncycles) {
240 240
     if (temp_meas_ready) { // temp sample ready
241 241
       updateTemperaturesFromRawValues();
242 242
 
243
-      input = (extruder<0)?current_temperature_bed:current_temperature[extruder];
243
+      input = (extruder < 0) ? current_temperature_bed : current_temperature[extruder];
244 244
 
245 245
       max = max(max, input);
246 246
       min = min(min, input);
@@ -272,7 +272,7 @@ void PID_autotune(float temp, int extruder, int ncycles) {
272 272
           t_low = t2 - t1;
273 273
           if (cycles > 0) {
274 274
             long max_pow = extruder < 0 ? MAX_BED_POWER : PID_MAX;
275
-            bias += (d*(t_high - t_low))/(t_low + t_high);
275
+            bias += (d * (t_high - t_low)) / (t_low + t_high);
276 276
             bias = constrain(bias, 20, max_pow - 20);
277 277
             d = (bias > max_pow / 2) ? max_pow - 1 - bias : bias;
278 278
 
@@ -317,7 +317,7 @@ void PID_autotune(float temp, int extruder, int ncycles) {
317 317
           cycles++;
318 318
           min = temp;
319 319
         }
320
-      } 
320
+      }
321 321
     }
322 322
     #define MAX_OVERSHOOT_PID_AUTOTUNE 20
323 323
     if (input > temp + MAX_OVERSHOOT_PID_AUTOTUNE) {
@@ -343,13 +343,13 @@ void PID_autotune(float temp, int extruder, int ncycles) {
343 343
       temp_ms = ms;
344 344
     } // every 2 seconds
345 345
     // Over 2 minutes?
346
-    if (((ms - t1) + (ms - t2)) > (10L*60L*1000L*2L)) {
346
+    if (((ms - t1) + (ms - t2)) > (10L * 60L * 1000L * 2L)) {
347 347
       SERIAL_PROTOCOLLNPGM(MSG_PID_TIMEOUT);
348 348
       return;
349 349
     }
350 350
     if (cycles > ncycles) {
351 351
       SERIAL_PROTOCOLLNPGM(MSG_PID_AUTOTUNE_FINISHED);
352
-      const char *estring = extruder < 0 ? "bed" : "";
352
+      const char* estring = extruder < 0 ? "bed" : "";
353 353
       SERIAL_PROTOCOLPGM("#define  DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kp "); SERIAL_PROTOCOLLN(Kp);
354 354
       SERIAL_PROTOCOLPGM("#define  DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Ki "); SERIAL_PROTOCOLLN(Ki);
355 355
       SERIAL_PROTOCOLPGM("#define  DEFAULT_"); SERIAL_PROTOCOL(estring); SERIAL_PROTOCOLPGM("Kd "); SERIAL_PROTOCOLLN(Kd);
@@ -389,14 +389,13 @@ void setExtruderAutoFanState(int pin, bool state) {
389 389
 void checkExtruderAutoFans() {
390 390
   uint8_t fanState = 0;
391 391
 
392
-  // which fan pins need to be turned on?      
392
+  // which fan pins need to be turned on?
393 393
   #if HAS_AUTO_FAN_0
394
-    if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
394
+    if (current_temperature[0] > EXTRUDER_AUTO_FAN_TEMPERATURE)
395 395
       fanState |= 1;
396 396
   #endif
397 397
   #if HAS_AUTO_FAN_1
398
-    if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
399
-    {
398
+    if (current_temperature[1] > EXTRUDER_AUTO_FAN_TEMPERATURE) {
400 399
       if (EXTRUDER_1_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN)
401 400
         fanState |= 1;
402 401
       else
@@ -404,30 +403,28 @@ void checkExtruderAutoFans() {
404 403
     }
405 404
   #endif
406 405
   #if HAS_AUTO_FAN_2
407
-    if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
408
-    {
409
-      if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
406
+    if (current_temperature[2] > EXTRUDER_AUTO_FAN_TEMPERATURE) {
407
+      if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN)
410 408
         fanState |= 1;
411
-      else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) 
409
+      else if (EXTRUDER_2_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN)
412 410
         fanState |= 2;
413 411
       else
414 412
         fanState |= 4;
415 413
     }
416 414
   #endif
417 415
   #if HAS_AUTO_FAN_3
418
-    if (current_temperature[3] > EXTRUDER_AUTO_FAN_TEMPERATURE) 
419
-    {
420
-      if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN) 
416
+    if (current_temperature[3] > EXTRUDER_AUTO_FAN_TEMPERATURE) {
417
+      if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_0_AUTO_FAN_PIN)
421 418
         fanState |= 1;
422
-      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN) 
419
+      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_1_AUTO_FAN_PIN)
423 420
         fanState |= 2;
424
-      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN) 
421
+      else if (EXTRUDER_3_AUTO_FAN_PIN == EXTRUDER_2_AUTO_FAN_PIN)
425 422
         fanState |= 4;
426 423
       else
427 424
         fanState |= 8;
428 425
     }
429 426
   #endif
430
-  
427
+
431 428
   // update extruder auto fan states
432 429
   #if HAS_AUTO_FAN_0
433 430
     setExtruderAutoFanState(EXTRUDER_0_AUTO_FAN_PIN, (fanState & 1) != 0);
@@ -454,7 +451,7 @@ void checkExtruderAutoFans() {
454 451
 //
455 452
 // Temperature Error Handlers
456 453
 //
457
-inline void _temp_error(int e, const char *serial_msg, const char *lcd_msg) {
454
+inline void _temp_error(int e, const char* serial_msg, const char* lcd_msg) {
458 455
   static bool killed = false;
459 456
   if (IsRunning()) {
460 457
     SERIAL_ERROR_START;
@@ -485,7 +482,7 @@ float get_pid_output(int e) {
485 482
   #if ENABLED(PIDTEMP)
486 483
     #if DISABLED(PID_OPENLOOP)
487 484
       pid_error[e] = target_temperature[e] - current_temperature[e];
488
-      dTerm[e] = K2 * PID_PARAM(Kd,e) * (current_temperature[e] - temp_dState[e]) + K1 * dTerm[e];
485
+      dTerm[e] = K2 * PID_PARAM(Kd, e) * (current_temperature[e] - temp_dState[e]) + K1 * dTerm[e];
489 486
       temp_dState[e] = current_temperature[e];
490 487
       if (pid_error[e] > PID_FUNCTIONAL_RANGE) {
491 488
         pid_output = BANG_MAX;
@@ -500,10 +497,10 @@ float get_pid_output(int e) {
500 497
           temp_iState[e] = 0.0;
501 498
           pid_reset[e] = false;
502 499
         }
503
-        pTerm[e] = PID_PARAM(Kp,e) * pid_error[e];
500
+        pTerm[e] = PID_PARAM(Kp, e) * pid_error[e];
504 501
         temp_iState[e] += pid_error[e];
505 502
         temp_iState[e] = constrain(temp_iState[e], temp_iState_min[e], temp_iState_max[e]);
506
-        iTerm[e] = PID_PARAM(Ki,e) * temp_iState[e];
503
+        iTerm[e] = PID_PARAM(Ki, e) * temp_iState[e];
507 504
 
508 505
         pid_output = pTerm[e] + iTerm[e] - dTerm[e];
509 506
 
@@ -669,14 +666,14 @@ void manage_heater() {
669 666
       checkExtruderAutoFans();
670 667
       next_auto_fan_check_ms = ms + 2500;
671 668
     }
672
-  #endif       
669
+  #endif
673 670
 
674 671
   // Control the extruder rate based on the width sensor
675 672
   #if ENABLED(FILAMENT_SENSOR)
676 673
     if (filament_sensor) {
677 674
       meas_shift_index = delay_index1 - meas_delay_cm;
678 675
       if (meas_shift_index < 0) meas_shift_index += MAX_MEASUREMENT_DELAY + 1;  //loop around buffer if needed
679
-      
676
+
680 677
       // Get the delayed info and add 100 to reconstitute to a percent of
681 678
       // the nominal filament diameter then square it to get an area
682 679
       meas_shift_index = constrain(meas_shift_index, 0, MAX_MEASUREMENT_DELAY);
@@ -692,7 +689,7 @@ void manage_heater() {
692 689
   #endif
693 690
 
694 691
   #if TEMP_SENSOR_BED != 0
695
-  
692
+
696 693
     #if ENABLED(THERMAL_PROTECTION_BED)
697 694
       thermal_runaway_protection(&thermal_runaway_bed_state_machine, &thermal_runaway_bed_timer, current_temperature_bed, target_temperature_bed, -1, THERMAL_PROTECTION_BED_PERIOD, THERMAL_PROTECTION_BED_HYSTERESIS);
698 695
     #endif
@@ -742,7 +739,7 @@ static float analog2temp(int raw, uint8_t e) {
742 739
       SERIAL_ERRORLNPGM(MSG_INVALID_EXTRUDER_NUM);
743 740
       kill(PSTR(MSG_KILLED));
744 741
       return 0.0;
745
-    } 
742
+    }
746 743
 
747 744
   #if ENABLED(HEATER_0_USES_MAX6675)
748 745
     if (e == 0) return 0.25 * raw;
@@ -751,20 +748,20 @@ static float analog2temp(int raw, uint8_t e) {
751 748
   if (heater_ttbl_map[e] != NULL) {
752 749
     float celsius = 0;
753 750
     uint8_t i;
754
-    short (*tt)[][2] = (short (*)[][2])(heater_ttbl_map[e]);
751
+    short(*tt)[][2] = (short(*)[][2])(heater_ttbl_map[e]);
755 752
 
756 753
     for (i = 1; i < heater_ttbllen_map[e]; i++) {
757 754
       if (PGM_RD_W((*tt)[i][0]) > raw) {
758
-        celsius = PGM_RD_W((*tt)[i-1][1]) + 
759
-          (raw - PGM_RD_W((*tt)[i-1][0])) * 
760
-          (float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i-1][1])) /
761
-          (float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i-1][0]));
755
+        celsius = PGM_RD_W((*tt)[i - 1][1]) +
756
+                  (raw - PGM_RD_W((*tt)[i - 1][0])) *
757
+                  (float)(PGM_RD_W((*tt)[i][1]) - PGM_RD_W((*tt)[i - 1][1])) /
758
+                  (float)(PGM_RD_W((*tt)[i][0]) - PGM_RD_W((*tt)[i - 1][0]));
762 759
         break;
763 760
       }
764 761
     }
765 762
 
766 763
     // Overflow: Set to last value in the table
767
-    if (i == heater_ttbllen_map[e]) celsius = PGM_RD_W((*tt)[i-1][1]);
764
+    if (i == heater_ttbllen_map[e]) celsius = PGM_RD_W((*tt)[i - 1][1]);
768 765
 
769 766
     return celsius;
770 767
   }
@@ -780,22 +777,27 @@ static float analog2tempBed(int raw) {
780 777
 
781 778
     for (i = 1; i < BEDTEMPTABLE_LEN; i++) {
782 779
       if (PGM_RD_W(BEDTEMPTABLE[i][0]) > raw) {
783
-        celsius  = PGM_RD_W(BEDTEMPTABLE[i-1][1]) + 
784
-          (raw - PGM_RD_W(BEDTEMPTABLE[i-1][0])) * 
785
-          (float)(PGM_RD_W(BEDTEMPTABLE[i][1]) - PGM_RD_W(BEDTEMPTABLE[i-1][1])) /
786
-          (float)(PGM_RD_W(BEDTEMPTABLE[i][0]) - PGM_RD_W(BEDTEMPTABLE[i-1][0]));
780
+        celsius  = PGM_RD_W(BEDTEMPTABLE[i - 1][1]) +
781
+                   (raw - PGM_RD_W(BEDTEMPTABLE[i - 1][0])) *
782
+                   (float)(PGM_RD_W(BEDTEMPTABLE[i][1]) - PGM_RD_W(BEDTEMPTABLE[i - 1][1])) /
783
+                   (float)(PGM_RD_W(BEDTEMPTABLE[i][0]) - PGM_RD_W(BEDTEMPTABLE[i - 1][0]));
787 784
         break;
788 785
       }
789 786
     }
790 787
 
791 788
     // Overflow: Set to last value in the table
792
-    if (i == BEDTEMPTABLE_LEN) celsius = PGM_RD_W(BEDTEMPTABLE[i-1][1]);
789
+    if (i == BEDTEMPTABLE_LEN) celsius = PGM_RD_W(BEDTEMPTABLE[i - 1][1]);
793 790
 
794 791
     return celsius;
795
-  #elif defined BED_USES_AD595
792
+
793
+  #elif defined(BED_USES_AD595)
794
+
796 795
     return ((raw * ((5.0 * 100.0) / 1024.0) / OVERSAMPLENR) * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET;
796
+
797 797
   #else
798
+
798 799
     return 0;
800
+
799 801
   #endif
800 802
 }
801 803
 
@@ -838,7 +840,7 @@ static void updateTemperaturesFromRawValues() {
838 840
     if (temp < MEASURED_LOWER_LIMIT) temp = filament_width_nominal;  //assume sensor cut out
839 841
     else if (temp > MEASURED_UPPER_LIMIT) temp = MEASURED_UPPER_LIMIT;
840 842
     return filament_width_nominal / temp * 100;
841
-  } 
843
+  }
842 844
 
843 845
 #endif
844 846
 
@@ -850,17 +852,17 @@ static void updateTemperaturesFromRawValues() {
850 852
 void tp_init() {
851 853
   #if MB(RUMBA) && ((TEMP_SENSOR_0==-1)||(TEMP_SENSOR_1==-1)||(TEMP_SENSOR_2==-1)||(TEMP_SENSOR_BED==-1))
852 854
     //disable RUMBA JTAG in case the thermocouple extension is plugged on top of JTAG connector
853
-    MCUCR=BIT(JTD);
854
-    MCUCR=BIT(JTD);
855
+    MCUCR = BIT(JTD);
856
+    MCUCR = BIT(JTD);
855 857
   #endif
856
-  
857
-  // Finish init of mult extruder arrays 
858
+
859
+  // Finish init of mult extruder arrays
858 860
   for (int e = 0; e < EXTRUDERS; e++) {
859
-    // populate with the first value 
861
+    // populate with the first value
860 862
     maxttemp[e] = maxttemp[0];
861 863
     #if ENABLED(PIDTEMP)
862 864
       temp_iState_min[e] = 0.0;
863
-      temp_iState_max[e] = PID_INTEGRAL_DRIVE_MAX / PID_PARAM(Ki,e);
865
+      temp_iState_max[e] = PID_INTEGRAL_DRIVE_MAX / PID_PARAM(Ki, e);
864 866
       #if ENABLED(PID_ADD_EXTRUSION_RATE)
865 867
         last_position[e] = 0;
866 868
       #endif
@@ -885,7 +887,7 @@ void tp_init() {
885 887
   #endif
886 888
   #if HAS_HEATER_BED
887 889
     SET_OUTPUT(HEATER_BED_PIN);
888
-  #endif  
890
+  #endif
889 891
   #if HAS_FAN
890 892
     SET_OUTPUT(FAN_PIN);
891 893
     #if ENABLED(FAST_PWM_FAN)
@@ -906,8 +908,8 @@ void tp_init() {
906 908
       pinMode(SS_PIN, OUTPUT);
907 909
       digitalWrite(SS_PIN, HIGH);
908 910
     #endif
909
-    
910
-    OUT_WRITE(MAX6675_SS,HIGH);
911
+
912
+    OUT_WRITE(MAX6675_SS, HIGH);
911 913
 
912 914
   #endif //HEATER_0_USES_MAX6675
913 915
 
@@ -958,8 +960,8 @@ void tp_init() {
958 960
   // Use timer0 for temperature measurement
959 961
   // Interleave temperature interrupt with millies interrupt
960 962
   OCR0B = 128;
961
-  TIMSK0 |= BIT(OCIE0B);  
962
-  
963
+  TIMSK0 |= BIT(OCIE0B);
964
+
963 965
   // Wait for temperature measurement to settle
964 966
   delay(250);
965 967
 
@@ -1021,7 +1023,7 @@ void tp_init() {
1021 1023
     }
1022 1024
   #endif //BED_MINTEMP
1023 1025
   #ifdef BED_MAXTEMP
1024
-    while(analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) {
1026
+    while (analog2tempBed(bed_maxttemp_raw) > BED_MAXTEMP) {
1025 1027
       #if HEATER_BED_RAW_LO_TEMP < HEATER_BED_RAW_HI_TEMP
1026 1028
         bed_maxttemp_raw -= OVERSAMPLENR;
1027 1029
       #else
@@ -1049,9 +1051,9 @@ void tp_init() {
1049 1051
 
1050 1052
 #if ENABLED(THERMAL_PROTECTION_HOTENDS) || ENABLED(THERMAL_PROTECTION_BED)
1051 1053
 
1052
-  void thermal_runaway_protection(TRState *state, millis_t *timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) {
1054
+  void thermal_runaway_protection(TRState* state, millis_t* timer, float temperature, float target_temperature, int heater_id, int period_seconds, int hysteresis_degc) {
1053 1055
 
1054
-    static float tr_target_temperature[EXTRUDERS+1] = { 0.0 };
1056
+    static float tr_target_temperature[EXTRUDERS + 1] = { 0.0 };
1055 1057
 
1056 1058
     /*
1057 1059
         SERIAL_ECHO_START;
@@ -1094,7 +1096,7 @@ void tp_init() {
1094 1096
         // If the temperature is over the target (-hysteresis) restart the timer
1095 1097
         if (temperature >= tr_target_temperature[heater_index] - hysteresis_degc)
1096 1098
           *timer = millis();
1097
-          // If the timer goes too long without a reset, trigger shutdown
1099
+        // If the timer goes too long without a reset, trigger shutdown
1098 1100
         else if (millis() > *timer + period_seconds * 1000UL)
1099 1101
           *state = TRRunaway;
1100 1102
         break;
@@ -1106,7 +1108,7 @@ void tp_init() {
1106 1108
 #endif // THERMAL_PROTECTION_HOTENDS || THERMAL_PROTECTION_BED
1107 1109
 
1108 1110
 void disable_all_heaters() {
1109
-  for (int i=0; i<EXTRUDERS; i++) setTargetHotend(0, i);
1111
+  for (int i = 0; i < EXTRUDERS; i++) setTargetHotend(0, i);
1110 1112
   setTargetBed(0);
1111 1113
 
1112 1114
   #define DISABLE_HEATER(NR) { \
@@ -1153,7 +1155,7 @@ void disable_all_heaters() {
1153 1155
 
1154 1156
     if (ms < next_max6675_ms)
1155 1157
       return max6675_temp;
1156
-    
1158
+
1157 1159
     next_max6675_ms = ms + MAX6675_HEAT_INTERVAL;
1158 1160
 
1159 1161
     max6675_temp = 0;
@@ -1175,13 +1177,13 @@ void disable_all_heaters() {
1175 1177
 
1176 1178
     // read MSB
1177 1179
     SPDR = 0;
1178
-    for (;(SPSR & BIT(SPIF)) == 0;);
1180
+    for (; (SPSR & BIT(SPIF)) == 0;);
1179 1181
     max6675_temp = SPDR;
1180 1182
     max6675_temp <<= 8;
1181 1183
 
1182 1184
     // read LSB
1183 1185
     SPDR = 0;
1184
-    for (;(SPSR & BIT(SPIF)) == 0;);
1186
+    for (; (SPSR & BIT(SPIF)) == 0;);
1185 1187
     max6675_temp |= SPDR;
1186 1188
 
1187 1189
     // disable TT_MAX6675
@@ -1285,7 +1287,7 @@ ISR(TIMER0_COMPB_vect) {
1285 1287
   #if HAS_FILAMENT_SENSOR
1286 1288
     static unsigned long raw_filwidth_value = 0;
1287 1289
   #endif
1288
-  
1290
+
1289 1291
   #if DISABLED(SLOW_PWM_HEATERS)
1290 1292
     /**
1291 1293
      * standard PWM modulation
@@ -1320,7 +1322,7 @@ ISR(TIMER0_COMPB_vect) {
1320 1322
       #endif
1321 1323
     }
1322 1324
 
1323
-    if (soft_pwm_0 < pwm_count) { WRITE_HEATER_0(0); }
1325
+    if (soft_pwm_0 < pwm_count) WRITE_HEATER_0(0);
1324 1326
     #if EXTRUDERS > 1
1325 1327
       if (soft_pwm_1 < pwm_count) WRITE_HEATER_1(0);
1326 1328
       #if EXTRUDERS > 2
@@ -1338,11 +1340,12 @@ ISR(TIMER0_COMPB_vect) {
1338 1340
     #if ENABLED(FAN_SOFT_PWM)
1339 1341
       if (soft_pwm_fan < pwm_count) WRITE_FAN(0);
1340 1342
     #endif
1341
-    
1343
+
1342 1344
     pwm_count += BIT(SOFT_PWM_SCALE);
1343 1345
     pwm_count &= 0x7f;
1344
-  
1346
+
1345 1347
   #else // SLOW_PWM_HEATERS
1348
+
1346 1349
     /*
1347 1350
      * SLOW PWM HEATERS
1348 1351
      *
@@ -1427,9 +1430,9 @@ ISR(TIMER0_COMPB_vect) {
1427 1430
     if ((pwm_count % 64) == 0) {
1428 1431
       slow_pwm_count++;
1429 1432
       slow_pwm_count &= 0x7f;
1430
-    
1433
+
1431 1434
       // EXTRUDER 0
1432
-      if (state_timer_heater_0 > 0) state_timer_heater_0--; 
1435
+      if (state_timer_heater_0 > 0) state_timer_heater_0--;
1433 1436
       #if EXTRUDERS > 1    // EXTRUDER 1
1434 1437
         if (state_timer_heater_1 > 0) state_timer_heater_1--;
1435 1438
         #if EXTRUDERS > 2    // EXTRUDER 2
@@ -1443,7 +1446,7 @@ ISR(TIMER0_COMPB_vect) {
1443 1446
         if (state_timer_heater_BED > 0) state_timer_heater_BED--;
1444 1447
       #endif
1445 1448
     } // (pwm_count % 64) == 0
1446
-  
1449
+
1447 1450
   #endif // SLOW_PWM_HEATERS
1448 1451
 
1449 1452
   #define SET_ADMUX_ADCSRA(pin) ADMUX = BIT(REFS0) | (pin & 0x07); ADCSRA |= BIT(ADSC)
@@ -1454,7 +1457,7 @@ ISR(TIMER0_COMPB_vect) {
1454 1457
   #endif
1455 1458
 
1456 1459
   // Prepare or measure a sensor, each one every 12th frame
1457
-  switch(temp_state) {
1460
+  switch (temp_state) {
1458 1461
     case PrepareTemp_0:
1459 1462
       #if HAS_TEMP_0
1460 1463
         START_ADC(TEMP_0_PIN);
@@ -1536,8 +1539,8 @@ ISR(TIMER0_COMPB_vect) {
1536 1539
       #if HAS_FILAMENT_SENSOR
1537 1540
         // raw_filwidth_value += ADC;  //remove to use an IIR filter approach
1538 1541
         if (ADC > 102) { //check that ADC is reading a voltage > 0.5 volts, otherwise don't take in the data.
1539
-          raw_filwidth_value -= (raw_filwidth_value>>7);  //multiply raw_filwidth_value by 127/128
1540
-          raw_filwidth_value += ((unsigned long)ADC<<7);  //add new ADC reading
1542
+          raw_filwidth_value -= (raw_filwidth_value >> 7); //multiply raw_filwidth_value by 127/128
1543
+          raw_filwidth_value += ((unsigned long)ADC << 7); //add new ADC reading
1541 1544
         }
1542 1545
       #endif
1543 1546
       temp_state = PrepareTemp_0;
@@ -1622,7 +1625,7 @@ ISR(TIMER0_COMPB_vect) {
1622 1625
   #if ENABLED(BABYSTEPPING)
1623 1626
     for (uint8_t axis = X_AXIS; axis <= Z_AXIS; axis++) {
1624 1627
       int curTodo = babystepsTodo[axis]; //get rid of volatile for performance
1625
-     
1628
+
1626 1629
       if (curTodo > 0) {
1627 1630
         babystep(axis,/*fwd*/true);
1628 1631
         babystepsTodo[axis]--; //fewer to do next time

+ 16
- 16
Marlin/temperature.h View File

@@ -19,7 +19,7 @@
19 19
 */
20 20
 
21 21
 #ifndef TEMPERATURE_H
22
-#define TEMPERATURE_H 
22
+#define TEMPERATURE_H
23 23
 
24 24
 #include "Marlin.h"
25 25
 #include "planner.h"
@@ -32,16 +32,16 @@ void tp_init();  //initialize the heating
32 32
 void manage_heater(); //it is critical that this is called periodically.
33 33
 
34 34
 #if ENABLED(FILAMENT_SENSOR)
35
-// For converting raw Filament Width to milimeters 
36
- float analog2widthFil(); 
37
- 
38
-// For converting raw Filament Width to an extrusion ratio 
39
- int widthFil_to_size_ratio();
35
+  // For converting raw Filament Width to milimeters
36
+  float analog2widthFil();
37
+
38
+  // For converting raw Filament Width to an extrusion ratio
39
+  int widthFil_to_size_ratio();
40 40
 #endif
41 41
 
42 42
 // low level conversion routines
43 43
 // do not use these routines and variables outside of temperature.cpp
44
-extern int target_temperature[4];  
44
+extern int target_temperature[4];
45 45
 extern float current_temperature[4];
46 46
 #if ENABLED(SHOW_TEMP_ADC_VALUES)
47 47
   extern int current_temperature_raw[4];
@@ -65,7 +65,7 @@ extern float current_temperature_bed;
65 65
   #else
66 66
     extern float Kp, Ki, Kd, Kc; // one param per extruder - saves 20 or 36 bytes of ram (inc array pointer)
67 67
     #define PID_PARAM(param, e) param // use macro to point directly to value
68
-  #endif // PID_PARAMS_PER_EXTRUDER	
68
+  #endif // PID_PARAMS_PER_EXTRUDER
69 69
   float scalePID_i(float i);
70 70
   float scalePID_d(float d);
71 71
   float unscalePID_i(float i);
@@ -74,13 +74,13 @@ extern float current_temperature_bed;
74 74
 #endif
75 75
 
76 76
 #if ENABLED(PIDTEMPBED)
77
-  extern float bedKp,bedKi,bedKd;
77
+  extern float bedKp, bedKi, bedKd;
78 78
 #endif
79
-  
79
+
80 80
 #if ENABLED(BABYSTEPPING)
81 81
   extern volatile int babystepsTodo[3];
82 82
 #endif
83
-  
83
+
84 84
 //high level conversion routines, for use outside of temperature.cpp
85 85
 //inline so that there is no performance decrease.
86 86
 //deg=degreeCelsius
@@ -89,24 +89,24 @@ FORCE_INLINE float degHotend(uint8_t extruder) { return current_temperature[extr
89 89
 FORCE_INLINE float degBed() { return current_temperature_bed; }
90 90
 
91 91
 #if ENABLED(SHOW_TEMP_ADC_VALUES)
92
-  FORCE_INLINE float rawHotendTemp(uint8_t extruder) { return current_temperature_raw[extruder]; }
93
-  FORCE_INLINE float rawBedTemp() { return current_temperature_bed_raw; }
92
+FORCE_INLINE float rawHotendTemp(uint8_t extruder) { return current_temperature_raw[extruder]; }
93
+FORCE_INLINE float rawBedTemp() { return current_temperature_bed_raw; }
94 94
 #endif
95 95
 
96 96
 FORCE_INLINE float degTargetHotend(uint8_t extruder) { return target_temperature[extruder]; }
97 97
 FORCE_INLINE float degTargetBed() { return target_temperature_bed; }
98 98
 
99 99
 #if ENABLED(THERMAL_PROTECTION_HOTENDS)
100
-  void start_watching_heater(int e=0);
100
+  void start_watching_heater(int e = 0);
101 101
 #endif
102 102
 
103
-FORCE_INLINE void setTargetHotend(const float &celsius, uint8_t extruder) {
103
+FORCE_INLINE void setTargetHotend(const float& celsius, uint8_t extruder) {
104 104
   target_temperature[extruder] = celsius;
105 105
   #if ENABLED(THERMAL_PROTECTION_HOTENDS)
106 106
     start_watching_heater(extruder);
107 107
   #endif
108 108
 }
109
-FORCE_INLINE void setTargetBed(const float &celsius) { target_temperature_bed = celsius; }
109
+FORCE_INLINE void setTargetBed(const float& celsius) { target_temperature_bed = celsius; }
110 110
 
111 111
 FORCE_INLINE bool isHeatingHotend(uint8_t extruder) { return target_temperature[extruder] > current_temperature[extruder]; }
112 112
 FORCE_INLINE bool isHeatingBed() { return target_temperature_bed > current_temperature_bed; }

+ 969
- 969
Marlin/thermistortables.h
File diff suppressed because it is too large
View File


+ 119
- 115
Marlin/ultralcd.cpp View File

@@ -28,7 +28,7 @@ int absPreheatFanSpeed;
28 28
 typedef void (*menuFunc_t)();
29 29
 
30 30
 uint8_t lcd_status_message_level;
31
-char lcd_status_message[3*LCD_WIDTH+1] = WELCOME_MSG; // worst case is kana with up to 3*LCD_WIDTH+1
31
+char lcd_status_message[3 * LCD_WIDTH + 1] = WELCOME_MSG; // worst case is kana with up to 3*LCD_WIDTH+1
32 32
 
33 33
 #if ENABLED(DOGLCD)
34 34
   #include "dogm_lcd_implementation.h"
@@ -218,7 +218,7 @@ static void lcd_status_screen();
218 218
   #if ENABLED(REPRAPWORLD_KEYPAD)
219 219
     volatile uint8_t buttons_reprapworld_keypad; // to store the keypad shift register values
220 220
   #endif
221
-    
221
+
222 222
   #if ENABLED(LCD_HAS_SLOW_BUTTONS)
223 223
     volatile uint8_t slow_buttons; // Bits of the pressed buttons.
224 224
   #endif
@@ -254,7 +254,7 @@ float raw_Ki, raw_Kd;
254 254
 /**
255 255
  * General function to go directly to a menu
256 256
  */
257
-static void lcd_goto_menu(menuFunc_t menu, const bool feedback=false, const uint32_t encoder=0) {
257
+static void lcd_goto_menu(menuFunc_t menu, const bool feedback = false, const uint32_t encoder = 0) {
258 258
   if (currentMenu != menu) {
259 259
     currentMenu = menu;
260 260
     #if ENABLED(NEWPANEL)
@@ -276,7 +276,7 @@ static void lcd_goto_menu(menuFunc_t menu, const bool feedback=false, const uint
276 276
  */
277 277
 
278 278
 static void lcd_status_screen() {
279
-	encoderRateMultiplierEnabled = false;
279
+  encoderRateMultiplierEnabled = false;
280 280
 
281 281
   #if ENABLED(LCD_PROGRESS_BAR)
282 282
     millis_t ms = millis();
@@ -346,7 +346,7 @@ static void lcd_status_screen() {
346 346
     #if ENABLED(ULTIPANEL_FEEDMULTIPLY)
347 347
       // Dead zone at 100% feedrate
348 348
       if ((feedrate_multiplier < 100 && (feedrate_multiplier + int(encoderPosition)) > 100) ||
349
-              (feedrate_multiplier > 100 && (feedrate_multiplier + int(encoderPosition)) < 100)) {
349
+          (feedrate_multiplier > 100 && (feedrate_multiplier + int(encoderPosition)) < 100)) {
350 350
         encoderPosition = 0;
351 351
         feedrate_multiplier = 100;
352 352
       }
@@ -459,7 +459,7 @@ void lcd_set_home_offsets() {
459 459
 
460 460
 #if ENABLED(BABYSTEPPING)
461 461
 
462
-  static void _lcd_babystep(int axis, const char *msg) {
462
+  static void _lcd_babystep(int axis, const char* msg) {
463 463
     if (encoderPosition != 0) {
464 464
       babystepsTodo[axis] += (int)encoderPosition;
465 465
       encoderPosition = 0;
@@ -800,7 +800,7 @@ inline void line_to_current(AxisEnum axis) {
800 800
 float move_menu_scale;
801 801
 static void lcd_move_menu_axis();
802 802
 
803
-static void _lcd_move(const char *name, AxisEnum axis, int min, int max) {
803
+static void _lcd_move(const char* name, AxisEnum axis, int min, int max) {
804 804
   if (encoderPosition != 0) {
805 805
     refresh_cmd_timeout();
806 806
     current_position[axis] += float((int)encoderPosition) * move_menu_scale;
@@ -1179,8 +1179,8 @@ static void lcd_control_motion_menu() {
1179 1179
     MENU_ITEM_EDIT(bool, MSG_ENDSTOP_ABORT, &abort_on_endstop_hit);
1180 1180
   #endif
1181 1181
   #if ENABLED(SCARA)
1182
-    MENU_ITEM_EDIT(float74, MSG_XSCALE, &axis_scaling[X_AXIS],0.5,2);
1183
-    MENU_ITEM_EDIT(float74, MSG_YSCALE, &axis_scaling[Y_AXIS],0.5,2);
1182
+    MENU_ITEM_EDIT(float74, MSG_XSCALE, &axis_scaling[X_AXIS], 0.5, 2);
1183
+    MENU_ITEM_EDIT(float74, MSG_YSCALE, &axis_scaling[Y_AXIS], 0.5, 2);
1184 1184
   #endif
1185 1185
   END_MENU();
1186 1186
 }
@@ -1289,7 +1289,7 @@ static void lcd_control_volumetric_menu() {
1289 1289
    *
1290 1290
    */
1291 1291
   void lcd_sdcard_menu() {
1292
-    if (lcdDrawUpdate == 0 && LCD_CLICKED == 0) return;	// nothing to do (so don't thrash the SD card)
1292
+    if (lcdDrawUpdate == 0 && LCD_CLICKED == 0) return; // nothing to do (so don't thrash the SD card)
1293 1293
     uint16_t fileCnt = card.getnrfilenames();
1294 1294
     START_MENU();
1295 1295
     MENU_ITEM(back, MSG_MAIN, lcd_main_menu);
@@ -1323,7 +1323,7 @@ static void lcd_control_volumetric_menu() {
1323 1323
     END_MENU();
1324 1324
   }
1325 1325
 
1326
- #endif //SDSUPPORT
1326
+#endif //SDSUPPORT
1327 1327
 
1328 1328
 /**
1329 1329
  *
@@ -1336,7 +1336,7 @@ static void lcd_control_volumetric_menu() {
1336 1336
     if ((int32_t)encoderPosition < 0) encoderPosition = 0; \
1337 1337
     if ((int32_t)encoderPosition > maxEditValue) encoderPosition = maxEditValue; \
1338 1338
     if (lcdDrawUpdate) \
1339
-        lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
1339
+      lcd_implementation_drawedit(editLabel, _strFunc(((_type)((int32_t)encoderPosition + minEditValue)) / scale)); \
1340 1340
     if (isClicked) { \
1341 1341
       *((_type*)editValue) = ((_type)((int32_t)encoderPosition + minEditValue)) / scale; \
1342 1342
       lcd_goto_menu(prevMenu, prevEncoderPosition); \
@@ -1348,10 +1348,10 @@ static void lcd_control_volumetric_menu() {
1348 1348
   static void _menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) { \
1349 1349
     prevMenu = currentMenu; \
1350 1350
     prevEncoderPosition = encoderPosition; \
1351
-     \
1351
+    \
1352 1352
     lcdDrawUpdate = 2; \
1353 1353
     currentMenu = menu_edit_ ## _name; \
1354
-     \
1354
+    \
1355 1355
     editLabel = pstr; \
1356 1356
     editValue = ptr; \
1357 1357
     minEditValue = minValue * scale; \
@@ -1433,14 +1433,14 @@ menu_edit_type(unsigned long, long5, ftostr5, 0.01)
1433 1433
 void lcd_quick_feedback() {
1434 1434
   lcdDrawUpdate = 2;
1435 1435
   next_button_update_ms = millis() + 500;
1436
-    
1436
+
1437 1437
   #if ENABLED(LCD_USE_I2C_BUZZER)
1438 1438
     #ifndef LCD_FEEDBACK_FREQUENCY_HZ
1439 1439
       #define LCD_FEEDBACK_FREQUENCY_HZ 100
1440 1440
     #endif
1441 1441
     #ifndef LCD_FEEDBACK_FREQUENCY_DURATION_MS
1442 1442
       #define LCD_FEEDBACK_FREQUENCY_DURATION_MS (1000/6)
1443
-    #endif    
1443
+    #endif
1444 1444
     lcd.buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
1445 1445
   #elif PIN_EXISTS(BEEPER)
1446 1446
     #ifndef LCD_FEEDBACK_FREQUENCY_HZ
@@ -1474,7 +1474,7 @@ static void menu_action_function(menuFunc_t func) { (*func)(); }
1474 1474
     char cmd[30];
1475 1475
     char* c;
1476 1476
     sprintf_P(cmd, PSTR("M23 %s"), filename);
1477
-    for(c = &cmd[4]; *c; c++) *c = tolower(*c);
1477
+    for (c = &cmd[4]; *c; c++) *c = tolower(*c);
1478 1478
     enqueuecommand(cmd);
1479 1479
     enqueuecommands_P(PSTR("M24"));
1480 1480
     lcd_return_to_status();
@@ -1497,39 +1497,45 @@ static void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr,
1497 1497
 
1498 1498
 /** LCD API **/
1499 1499
 void lcd_init() {
1500
+
1500 1501
   lcd_implementation_init();
1501 1502
 
1502 1503
   #if ENABLED(NEWPANEL)
1503 1504
 
1504 1505
     SET_INPUT(BTN_EN1);
1505 1506
     SET_INPUT(BTN_EN2);
1506
-    WRITE(BTN_EN1,HIGH);
1507
-    WRITE(BTN_EN2,HIGH);
1508
-  #if BTN_ENC > 0
1509
-    SET_INPUT(BTN_ENC);
1510
-    WRITE(BTN_ENC,HIGH);
1511
-  #endif
1512
-  #if ENABLED(REPRAPWORLD_KEYPAD)
1513
-    pinMode(SHIFT_CLK,OUTPUT);
1514
-    pinMode(SHIFT_LD,OUTPUT);
1515
-    pinMode(SHIFT_OUT,INPUT);
1516
-    WRITE(SHIFT_OUT,HIGH);
1517
-    WRITE(SHIFT_LD,HIGH);
1518
-  #endif
1519
-#else  // Not NEWPANEL
1520
-  #if ENABLED(SR_LCD_2W_NL) // Non latching 2 wire shift register
1521
-     pinMode (SR_DATA_PIN, OUTPUT);
1522
-     pinMode (SR_CLK_PIN, OUTPUT);
1523
-  #elif defined(SHIFT_CLK)
1524
-     pinMode(SHIFT_CLK,OUTPUT);
1525
-     pinMode(SHIFT_LD,OUTPUT);
1526
-     pinMode(SHIFT_EN,OUTPUT);
1527
-     pinMode(SHIFT_OUT,INPUT);
1528
-     WRITE(SHIFT_OUT,HIGH);
1529
-     WRITE(SHIFT_LD,HIGH);
1530
-     WRITE(SHIFT_EN,LOW);
1531
-  #endif // SR_LCD_2W_NL
1532
-#endif//!NEWPANEL
1507
+    WRITE(BTN_EN1, HIGH);
1508
+    WRITE(BTN_EN2, HIGH);
1509
+
1510
+    #if BTN_ENC > 0
1511
+      SET_INPUT(BTN_ENC);
1512
+      WRITE(BTN_ENC, HIGH);
1513
+    #endif
1514
+
1515
+    #if ENABLED(REPRAPWORLD_KEYPAD)
1516
+      pinMode(SHIFT_CLK, OUTPUT);
1517
+      pinMode(SHIFT_LD, OUTPUT);
1518
+      pinMode(SHIFT_OUT, INPUT);
1519
+      WRITE(SHIFT_OUT, HIGH);
1520
+      WRITE(SHIFT_LD, HIGH);
1521
+    #endif
1522
+
1523
+  #else  // Not NEWPANEL
1524
+
1525
+    #if ENABLED(SR_LCD_2W_NL) // Non latching 2 wire shift register
1526
+      pinMode(SR_DATA_PIN, OUTPUT);
1527
+      pinMode(SR_CLK_PIN, OUTPUT);
1528
+    #elif defined(SHIFT_CLK)
1529
+      pinMode(SHIFT_CLK, OUTPUT);
1530
+      pinMode(SHIFT_LD, OUTPUT);
1531
+      pinMode(SHIFT_EN, OUTPUT);
1532
+      pinMode(SHIFT_OUT, INPUT);
1533
+      WRITE(SHIFT_OUT, HIGH);
1534
+      WRITE(SHIFT_LD, HIGH);
1535
+      WRITE(SHIFT_EN, LOW);
1536
+    #endif // SR_LCD_2W_NL
1537
+
1538
+  #endif//!NEWPANEL
1533 1539
 
1534 1540
   #if ENABLED(SDSUPPORT) && PIN_EXISTS(SD_DETECT)
1535 1541
     pinMode(SD_DETECT_PIN, INPUT);
@@ -1548,7 +1554,7 @@ void lcd_init() {
1548 1554
   #endif
1549 1555
 }
1550 1556
 
1551
-int lcd_strlen(char *s) {
1557
+int lcd_strlen(char* s) {
1552 1558
   int i = 0, j = 0;
1553 1559
   while (s[i]) {
1554 1560
     if ((s[i] & 0xc0) != 0x80) j++;
@@ -1557,7 +1563,7 @@ int lcd_strlen(char *s) {
1557 1563
   return j;
1558 1564
 }
1559 1565
 
1560
-int lcd_strlen_P(const char *s) {
1566
+int lcd_strlen_P(const char* s) {
1561 1567
   int j = 0;
1562 1568
   while (pgm_read_byte(s)) {
1563 1569
     if ((pgm_read_byte(s) & 0xc0) != 0x80) j++;
@@ -1614,7 +1620,7 @@ void lcd_update() {
1614 1620
     }
1615 1621
 
1616 1622
   #endif //SDSUPPORT && SD_DETECT_PIN
1617
-  
1623
+
1618 1624
   millis_t ms = millis();
1619 1625
   if (ms > next_lcd_update_ms) {
1620 1626
 
@@ -1683,18 +1689,18 @@ void lcd_update() {
1683 1689
       }
1684 1690
     }
1685 1691
     #if ENABLED(DOGLCD)  // Changes due to different driver architecture of the DOGM display
1686
-      if (lcdDrawUpdate) {
1687
-        blink++;     // Variable for fan animation and alive dot
1688
-        u8g.firstPage();
1689
-        do {
1690
-          lcd_setFont(FONT_MENU);
1691
-          u8g.setPrintPos(125, 0);
1692
-          if (blink % 2) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
1693
-          u8g.drawPixel(127, 63); // draw alive dot
1694
-          u8g.setColorIndex(1); // black on white
1695
-          (*currentMenu)();
1696
-        } while( u8g.nextPage() );
1697
-      }
1692
+        if (lcdDrawUpdate) {
1693
+          blink++;     // Variable for fan animation and alive dot
1694
+          u8g.firstPage();
1695
+          do {
1696
+            lcd_setFont(FONT_MENU);
1697
+            u8g.setPrintPos(125, 0);
1698
+            if (blink % 2) u8g.setColorIndex(1); else u8g.setColorIndex(0); // Set color for the alive dot
1699
+            u8g.drawPixel(127, 63); // draw alive dot
1700
+            u8g.setColorIndex(1); // black on white
1701
+            (*currentMenu)();
1702
+          } while (u8g.nextPage());
1703
+        }
1698 1704
     #else
1699 1705
       if (lcdDrawUpdate)
1700 1706
         (*currentMenu)();
@@ -1749,7 +1755,7 @@ void lcd_finishstatus(bool persist=false) {
1749 1755
   void dontExpireStatus() { expire_status_ms = 0; }
1750 1756
 #endif
1751 1757
 
1752
-void set_utf_strlen(char *s, uint8_t n) {
1758
+void set_utf_strlen(char* s, uint8_t n) {
1753 1759
   uint8_t i = 0, j = 0;
1754 1760
   while (s[i] && (j < n)) {
1755 1761
     if ((s[i] & 0xc0u) != 0x80u) j++;
@@ -1763,14 +1769,14 @@ bool lcd_hasstatus() { return (lcd_status_message[0] != '\0'); }
1763 1769
 
1764 1770
 void lcd_setstatus(const char* message, bool persist) {
1765 1771
   if (lcd_status_message_level > 0) return;
1766
-  strncpy(lcd_status_message, message, 3*LCD_WIDTH);
1772
+  strncpy(lcd_status_message, message, 3 * LCD_WIDTH);
1767 1773
   set_utf_strlen(lcd_status_message, LCD_WIDTH);
1768 1774
   lcd_finishstatus(persist);
1769 1775
 }
1770 1776
 
1771 1777
 void lcd_setstatuspgm(const char* message, uint8_t level) {
1772 1778
   if (level >= lcd_status_message_level) {
1773
-    strncpy_P(lcd_status_message, message, 3*LCD_WIDTH);
1779
+    strncpy_P(lcd_status_message, message, 3 * LCD_WIDTH);
1774 1780
     set_utf_strlen(lcd_status_message, LCD_WIDTH);
1775 1781
     lcd_status_message_level = level;
1776 1782
     lcd_finishstatus(level > 0);
@@ -1825,23 +1831,23 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
1825 1831
       #endif
1826 1832
       #if ENABLED(REPRAPWORLD_KEYPAD)
1827 1833
         // for the reprapworld_keypad
1828
-        uint8_t newbutton_reprapworld_keypad=0;
1834
+        uint8_t newbutton_reprapworld_keypad = 0;
1829 1835
         WRITE(SHIFT_LD, LOW);
1830 1836
         WRITE(SHIFT_LD, HIGH);
1831
-        for(int8_t i = 0; i < 8; i++) {
1837
+        for (int8_t i = 0; i < 8; i++) {
1832 1838
           newbutton_reprapworld_keypad >>= 1;
1833 1839
           if (READ(SHIFT_OUT)) newbutton_reprapworld_keypad |= BIT(7);
1834 1840
           WRITE(SHIFT_CLK, HIGH);
1835 1841
           WRITE(SHIFT_CLK, LOW);
1836 1842
         }
1837
-        buttons_reprapworld_keypad=~newbutton_reprapworld_keypad; //invert it, because a pressed switch produces a logical 0
1843
+        buttons_reprapworld_keypad = ~newbutton_reprapworld_keypad; //invert it, because a pressed switch produces a logical 0
1838 1844
       #endif
1839 1845
     #else   //read it from the shift register
1840 1846
       uint8_t newbutton = 0;
1841 1847
       WRITE(SHIFT_LD, LOW);
1842 1848
       WRITE(SHIFT_LD, HIGH);
1843 1849
       unsigned char tmp_buttons = 0;
1844
-      for(int8_t i=0; i<8; i++) {
1850
+      for (int8_t i = 0; i < 8; i++) {
1845 1851
         newbutton >>= 1;
1846 1852
         if (READ(SHIFT_OUT)) newbutton |= BIT(7);
1847 1853
         WRITE(SHIFT_CLK, HIGH);
@@ -1851,26 +1857,26 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
1851 1857
     #endif //!NEWPANEL
1852 1858
 
1853 1859
     //manage encoder rotation
1854
-    uint8_t enc=0;
1860
+    uint8_t enc = 0;
1855 1861
     if (buttons & EN_A) enc |= B01;
1856 1862
     if (buttons & EN_B) enc |= B10;
1857 1863
     if (enc != lastEncoderBits) {
1858
-      switch(enc) {
1864
+      switch (enc) {
1859 1865
         case encrot0:
1860
-          if (lastEncoderBits==encrot3) encoderDiff++;
1861
-          else if (lastEncoderBits==encrot1) encoderDiff--;
1866
+          if (lastEncoderBits == encrot3) encoderDiff++;
1867
+          else if (lastEncoderBits == encrot1) encoderDiff--;
1862 1868
           break;
1863 1869
         case encrot1:
1864
-          if (lastEncoderBits==encrot0) encoderDiff++;
1865
-          else if (lastEncoderBits==encrot2) encoderDiff--;
1870
+          if (lastEncoderBits == encrot0) encoderDiff++;
1871
+          else if (lastEncoderBits == encrot2) encoderDiff--;
1866 1872
           break;
1867 1873
         case encrot2:
1868
-          if (lastEncoderBits==encrot1) encoderDiff++;
1869
-          else if (lastEncoderBits==encrot3) encoderDiff--;
1874
+          if (lastEncoderBits == encrot1) encoderDiff++;
1875
+          else if (lastEncoderBits == encrot3) encoderDiff--;
1870 1876
           break;
1871 1877
         case encrot3:
1872
-          if (lastEncoderBits==encrot2) encoderDiff++;
1873
-          else if (lastEncoderBits==encrot0) encoderDiff--;
1878
+          if (lastEncoderBits == encrot2) encoderDiff++;
1879
+          else if (lastEncoderBits == encrot0) encoderDiff--;
1874 1880
           break;
1875 1881
       }
1876 1882
     }
@@ -1896,12 +1902,12 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
1896 1902
 char conv[8];
1897 1903
 
1898 1904
 // Convert float to string with +123.4 format
1899
-char *ftostr3(const float &x) {
1905
+char* ftostr3(const float& x) {
1900 1906
   return itostr3((int)x);
1901 1907
 }
1902 1908
 
1903 1909
 // Convert int to string with 12 format
1904
-char *itostr2(const uint8_t &x) {
1910
+char* itostr2(const uint8_t& x) {
1905 1911
   //sprintf(conv,"%5.1f",x);
1906 1912
   int xx = x;
1907 1913
   conv[0] = (xx / 10) % 10 + '0';
@@ -1911,7 +1917,7 @@ char *itostr2(const uint8_t &x) {
1911 1917
 }
1912 1918
 
1913 1919
 // Convert float to string with +123.4 format
1914
-char *ftostr31(const float &x) {
1920
+char* ftostr31(const float& x) {
1915 1921
   int xx = abs(x * 10);
1916 1922
   conv[0] = (x >= 0) ? '+' : '-';
1917 1923
   conv[1] = (xx / 1000) % 10 + '0';
@@ -1924,7 +1930,7 @@ char *ftostr31(const float &x) {
1924 1930
 }
1925 1931
 
1926 1932
 // Convert float to string with 123.4 format, dropping sign
1927
-char *ftostr31ns(const float &x) {
1933
+char* ftostr31ns(const float& x) {
1928 1934
   int xx = abs(x * 10);
1929 1935
   conv[0] = (xx / 1000) % 10 + '0';
1930 1936
   conv[1] = (xx / 100) % 10 + '0';
@@ -1936,7 +1942,7 @@ char *ftostr31ns(const float &x) {
1936 1942
 }
1937 1943
 
1938 1944
 // Convert float to string with 123.4 format
1939
-char *ftostr32(const float &x) {
1945
+char* ftostr32(const float& x) {
1940 1946
   long xx = abs(x * 100);
1941 1947
   conv[0] = x >= 0 ? (xx / 10000) % 10 + '0' : '-';
1942 1948
   conv[1] = (xx / 1000) % 10 + '0';
@@ -1949,39 +1955,37 @@ char *ftostr32(const float &x) {
1949 1955
 }
1950 1956
 
1951 1957
 // Convert float to string with 1.234 format
1952
-char *ftostr43(const float &x) {
1953
-	long xx = x * 1000;
1954
-    if (xx >= 0)
1955
-		conv[0] = (xx / 1000) % 10 + '0';
1956
-	else
1957
-		conv[0] = '-';
1958
-	xx = abs(xx);
1959
-	conv[1] = '.';
1960
-	conv[2] = (xx / 100) % 10 + '0';
1961
-	conv[3] = (xx / 10) % 10 + '0';
1962
-	conv[4] = (xx) % 10 + '0';
1963
-	conv[5] = 0;
1964
-	return conv;
1958
+char* ftostr43(const float& x) {
1959
+  long xx = x * 1000;
1960
+  if (xx >= 0)
1961
+    conv[0] = (xx / 1000) % 10 + '0';
1962
+  else
1963
+    conv[0] = '-';
1964
+  xx = abs(xx);
1965
+  conv[1] = '.';
1966
+  conv[2] = (xx / 100) % 10 + '0';
1967
+  conv[3] = (xx / 10) % 10 + '0';
1968
+  conv[4] = (xx) % 10 + '0';
1969
+  conv[5] = 0;
1970
+  return conv;
1965 1971
 }
1966 1972
 
1967 1973
 // Convert float to string with 1.23 format
1968
-char *ftostr12ns(const float &x) {
1969
-  long xx=x*100;
1970
-  
1971
-  xx=abs(xx);
1972
-  conv[0]=(xx/100)%10+'0';
1973
-  conv[1]='.';
1974
-  conv[2]=(xx/10)%10+'0';
1975
-  conv[3]=(xx)%10+'0';
1976
-  conv[4]=0;
1974
+char* ftostr12ns(const float& x) {
1975
+  long xx = x * 100;
1976
+  xx = abs(xx);
1977
+  conv[0] = (xx / 100) % 10 + '0';
1978
+  conv[1] = '.';
1979
+  conv[2] = (xx / 10) % 10 + '0';
1980
+  conv[3] = (xx) % 10 + '0';
1981
+  conv[4] = 0;
1977 1982
   return conv;
1978 1983
 }
1979 1984
 
1980 1985
 // Convert float to space-padded string with -_23.4_ format
1981
-char *ftostr32sp(const float &x) {
1986
+char* ftostr32sp(const float& x) {
1982 1987
   long xx = abs(x * 100);
1983 1988
   uint8_t dig;
1984
-
1985 1989
   if (x < 0) { // negative val = -_0
1986 1990
     conv[0] = '-';
1987 1991
     dig = (xx / 1000) % 10;
@@ -2024,7 +2028,7 @@ char *ftostr32sp(const float &x) {
2024 2028
 }
2025 2029
 
2026 2030
 // Convert int to lj string with +123.0 format
2027
-char *itostr31(const int &x) {
2031
+char* itostr31(const int& x) {
2028 2032
   conv[0] = x >= 0 ? '+' : '-';
2029 2033
   int xx = abs(x);
2030 2034
   conv[1] = (xx / 100) % 10 + '0';
@@ -2037,11 +2041,11 @@ char *itostr31(const int &x) {
2037 2041
 }
2038 2042
 
2039 2043
 // Convert int to rj string with 123 or -12 format
2040
-char *itostr3(const int &x) {
2044
+char* itostr3(const int& x) {
2041 2045
   int xx = x;
2042 2046
   if (xx < 0) {
2043
-     conv[0] = '-';
2044
-     xx = -xx;
2047
+    conv[0] = '-';
2048
+    xx = -xx;
2045 2049
   }
2046 2050
   else
2047 2051
     conv[0] = xx >= 100 ? (xx / 100) % 10 + '0' : ' ';
@@ -2053,7 +2057,7 @@ char *itostr3(const int &x) {
2053 2057
 }
2054 2058
 
2055 2059
 // Convert int to lj string with 123 format
2056
-char *itostr3left(const int &xx) {
2060
+char* itostr3left(const int& xx) {
2057 2061
   if (xx >= 100) {
2058 2062
     conv[0] = (xx / 100) % 10 + '0';
2059 2063
     conv[1] = (xx / 10) % 10 + '0';
@@ -2073,7 +2077,7 @@ char *itostr3left(const int &xx) {
2073 2077
 }
2074 2078
 
2075 2079
 // Convert int to rj string with 1234 format
2076
-char *itostr4(const int &xx) {
2080
+char* itostr4(const int& xx) {
2077 2081
   conv[0] = xx >= 1000 ? (xx / 1000) % 10 + '0' : ' ';
2078 2082
   conv[1] = xx >= 100 ? (xx / 100) % 10 + '0' : ' ';
2079 2083
   conv[2] = xx >= 10 ? (xx / 10) % 10 + '0' : ' ';
@@ -2083,7 +2087,7 @@ char *itostr4(const int &xx) {
2083 2087
 }
2084 2088
 
2085 2089
 // Convert float to rj string with 12345 format
2086
-char *ftostr5(const float &x) {
2090
+char* ftostr5(const float& x) {
2087 2091
   long xx = abs(x);
2088 2092
   conv[0] = xx >= 10000 ? (xx / 10000) % 10 + '0' : ' ';
2089 2093
   conv[1] = xx >= 1000 ? (xx / 1000) % 10 + '0' : ' ';
@@ -2095,7 +2099,7 @@ char *ftostr5(const float &x) {
2095 2099
 }
2096 2100
 
2097 2101
 // Convert float to string with +1234.5 format
2098
-char *ftostr51(const float &x) {
2102
+char* ftostr51(const float& x) {
2099 2103
   long xx = abs(x * 10);
2100 2104
   conv[0] = (x >= 0) ? '+' : '-';
2101 2105
   conv[1] = (xx / 10000) % 10 + '0';
@@ -2109,7 +2113,7 @@ char *ftostr51(const float &x) {
2109 2113
 }
2110 2114
 
2111 2115
 // Convert float to string with +123.45 format
2112
-char *ftostr52(const float &x) {
2116
+char* ftostr52(const float& x) {
2113 2117
   conv[0] = (x >= 0) ? '+' : '-';
2114 2118
   long xx = abs(x * 100);
2115 2119
   conv[1] = (xx / 10000) % 10 + '0';
@@ -2151,7 +2155,7 @@ char *ftostr52(const float &x) {
2151 2155
         if (iy & 1) ix = (MESH_NUM_X_POINTS - 1) - ix; // Zig zag
2152 2156
         mbl.set_z(ix, iy, current_position[Z_AXIS]);
2153 2157
         _lcd_level_bed_position++;
2154
-        if (_lcd_level_bed_position == MESH_NUM_X_POINTS*MESH_NUM_Y_POINTS) {
2158
+        if (_lcd_level_bed_position == MESH_NUM_X_POINTS * MESH_NUM_Y_POINTS) {
2155 2159
           current_position[Z_AXIS] = MESH_HOME_SEARCH_Z;
2156 2160
           line_to_current(Z_AXIS);
2157 2161
           mbl.active = 1;

+ 37
- 37
Marlin/ultralcd.h View File

@@ -5,8 +5,8 @@
5 5
 #if ENABLED(ULTRA_LCD)
6 6
   #include "buzzer.h"
7 7
 
8
-  int lcd_strlen(char *s);
9
-  int lcd_strlen_P(const char *s);
8
+  int lcd_strlen(char* s);
9
+  int lcd_strlen_P(const char* s);
10 10
   void lcd_update();
11 11
   void lcd_init();
12 12
   bool lcd_hasstatus();
@@ -53,7 +53,7 @@
53 53
   extern int absPreheatFanSpeed;
54 54
 
55 55
   extern bool cancel_heatup;
56
-  
56
+
57 57
   #if ENABLED(FILAMENT_LCD_DISPLAY)
58 58
     extern millis_t previous_lcd_status_ms;
59 59
   #endif
@@ -69,23 +69,23 @@
69 69
 
70 70
     #define LCD_CLICKED (buttons&EN_C)
71 71
     #if ENABLED(REPRAPWORLD_KEYPAD)
72
-  	  #define EN_REPRAPWORLD_KEYPAD_F3 (BIT(BLEN_REPRAPWORLD_KEYPAD_F3))
73
-  	  #define EN_REPRAPWORLD_KEYPAD_F2 (BIT(BLEN_REPRAPWORLD_KEYPAD_F2))
74
-  	  #define EN_REPRAPWORLD_KEYPAD_F1 (BIT(BLEN_REPRAPWORLD_KEYPAD_F1))
75
-  	  #define EN_REPRAPWORLD_KEYPAD_UP (BIT(BLEN_REPRAPWORLD_KEYPAD_UP))
76
-  	  #define EN_REPRAPWORLD_KEYPAD_RIGHT (BIT(BLEN_REPRAPWORLD_KEYPAD_RIGHT))
77
-  	  #define EN_REPRAPWORLD_KEYPAD_MIDDLE (BIT(BLEN_REPRAPWORLD_KEYPAD_MIDDLE))
78
-  	  #define EN_REPRAPWORLD_KEYPAD_DOWN (BIT(BLEN_REPRAPWORLD_KEYPAD_DOWN))
79
-  	  #define EN_REPRAPWORLD_KEYPAD_LEFT (BIT(BLEN_REPRAPWORLD_KEYPAD_LEFT))
80
-
81
-  	  #define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1))
82
-  	  #define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F2)
83
-  	  #define REPRAPWORLD_KEYPAD_MOVE_Z_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F3)
84
-  	  #define REPRAPWORLD_KEYPAD_MOVE_X_LEFT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_LEFT)
85
-  	  #define REPRAPWORLD_KEYPAD_MOVE_X_RIGHT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_RIGHT)
86
-  	  #define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_DOWN)
87
-  	  #define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_UP)
88
-  	  #define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_MIDDLE)
72
+      #define EN_REPRAPWORLD_KEYPAD_F3 (BIT(BLEN_REPRAPWORLD_KEYPAD_F3))
73
+      #define EN_REPRAPWORLD_KEYPAD_F2 (BIT(BLEN_REPRAPWORLD_KEYPAD_F2))
74
+      #define EN_REPRAPWORLD_KEYPAD_F1 (BIT(BLEN_REPRAPWORLD_KEYPAD_F1))
75
+      #define EN_REPRAPWORLD_KEYPAD_UP (BIT(BLEN_REPRAPWORLD_KEYPAD_UP))
76
+      #define EN_REPRAPWORLD_KEYPAD_RIGHT (BIT(BLEN_REPRAPWORLD_KEYPAD_RIGHT))
77
+      #define EN_REPRAPWORLD_KEYPAD_MIDDLE (BIT(BLEN_REPRAPWORLD_KEYPAD_MIDDLE))
78
+      #define EN_REPRAPWORLD_KEYPAD_DOWN (BIT(BLEN_REPRAPWORLD_KEYPAD_DOWN))
79
+      #define EN_REPRAPWORLD_KEYPAD_LEFT (BIT(BLEN_REPRAPWORLD_KEYPAD_LEFT))
80
+
81
+      #define LCD_CLICKED ((buttons&EN_C) || (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F1))
82
+      #define REPRAPWORLD_KEYPAD_MOVE_Z_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F2)
83
+      #define REPRAPWORLD_KEYPAD_MOVE_Z_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_F3)
84
+      #define REPRAPWORLD_KEYPAD_MOVE_X_LEFT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_LEFT)
85
+      #define REPRAPWORLD_KEYPAD_MOVE_X_RIGHT (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_RIGHT)
86
+      #define REPRAPWORLD_KEYPAD_MOVE_Y_DOWN (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_DOWN)
87
+      #define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_UP)
88
+      #define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons_reprapworld_keypad&EN_REPRAPWORLD_KEYPAD_MIDDLE)
89 89
     #endif //REPRAPWORLD_KEYPAD
90 90
   #else
91 91
     //atomic, do not change
@@ -97,7 +97,7 @@
97 97
     #define B_ST BIT(BL_ST)
98 98
     #define EN_B BIT(BLEN_B)
99 99
     #define EN_A BIT(BLEN_A)
100
-    
100
+
101 101
     #define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST))
102 102
   #endif//NEWPANEL
103 103
 
@@ -116,21 +116,21 @@
116 116
 
117 117
 #endif //ULTRA_LCD
118 118
 
119
-char *itostr2(const uint8_t &x);
120
-char *itostr31(const int &xx);
121
-char *itostr3(const int &xx);
122
-char *itostr3left(const int &xx);
123
-char *itostr4(const int &xx);
124
-
125
-char *ftostr3(const float &x);
126
-char *ftostr31ns(const float &x); // float to string without sign character
127
-char *ftostr31(const float &x);
128
-char *ftostr32(const float &x);
129
-char *ftostr43(const float &x);
130
-char *ftostr12ns(const float &x); 
131
-char *ftostr32sp(const float &x); // remove zero-padding from ftostr32
132
-char *ftostr5(const float &x);
133
-char *ftostr51(const float &x);
134
-char *ftostr52(const float &x);
119
+char* itostr2(const uint8_t& x);
120
+char* itostr31(const int& xx);
121
+char* itostr3(const int& xx);
122
+char* itostr3left(const int& xx);
123
+char* itostr4(const int& xx);
124
+
125
+char* ftostr3(const float& x);
126
+char* ftostr31ns(const float& x); // float to string without sign character
127
+char* ftostr31(const float& x);
128
+char* ftostr32(const float& x);
129
+char* ftostr43(const float& x);
130
+char* ftostr12ns(const float& x);
131
+char* ftostr32sp(const float& x); // remove zero-padding from ftostr32
132
+char* ftostr5(const float& x);
133
+char* ftostr51(const float& x);
134
+char* ftostr52(const float& x);
135 135
 
136 136
 #endif //ULTRALCD_H

+ 90
- 90
Marlin/ultralcd_implementation_hitachi_HD44780.h View File

@@ -20,59 +20,59 @@
20 20
 // via a shift/i2c register.
21 21
 
22 22
 #if ENABLED(ULTIPANEL)
23
-// All UltiPanels might have an encoder - so this is always be mapped onto first two bits
24
-#define BLEN_B 1
25
-#define BLEN_A 0
23
+  // All UltiPanels might have an encoder - so this is always be mapped onto first two bits
24
+  #define BLEN_B 1
25
+  #define BLEN_A 0
26 26
 
27
-#define EN_B BIT(BLEN_B) // The two encoder pins are connected through BTN_EN1 and BTN_EN2
28
-#define EN_A BIT(BLEN_A)
29
-
30
-#if defined(BTN_ENC) && BTN_ENC > -1
31
-  // encoder click is directly connected
32
-  #define BLEN_C 2 
33
-  #define EN_C BIT(BLEN_C) 
34
-#endif
35
-  
36
-//
37
-// Setup other button mappings of each panel
38
-//
39
-#if ENABLED(LCD_I2C_VIKI)
40
-  #define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C)
41
-
42
-  // button and encoder bit positions within 'buttons'
43
-  #define B_LE (BUTTON_LEFT<<B_I2C_BTN_OFFSET)    // The remaining normalized buttons are all read via I2C
44
-  #define B_UP (BUTTON_UP<<B_I2C_BTN_OFFSET)
45
-  #define B_MI (BUTTON_SELECT<<B_I2C_BTN_OFFSET)
46
-  #define B_DW (BUTTON_DOWN<<B_I2C_BTN_OFFSET)
47
-  #define B_RI (BUTTON_RIGHT<<B_I2C_BTN_OFFSET)
27
+  #define EN_B BIT(BLEN_B) // The two encoder pins are connected through BTN_EN1 and BTN_EN2
28
+  #define EN_A BIT(BLEN_A)
48 29
 
49 30
   #if defined(BTN_ENC) && BTN_ENC > -1
50
-    // the pause/stop/restart button is connected to BTN_ENC when used
51
-    #define B_ST (EN_C)                            // Map the pause/stop/resume button into its normalized functional name
52
-    #define LCD_CLICKED (buttons&(B_MI|B_RI|B_ST)) // pause/stop button also acts as click until we implement proper pause/stop.
53
-  #else
54
-    #define LCD_CLICKED (buttons&(B_MI|B_RI))
31
+    // encoder click is directly connected
32
+    #define BLEN_C 2
33
+    #define EN_C BIT(BLEN_C)
55 34
   #endif
56 35
 
57
-  // I2C buttons take too long to read inside an interrupt context and so we read them during lcd_update
58
-  #define LCD_HAS_SLOW_BUTTONS
59
-
60
-#elif ENABLED(LCD_I2C_PANELOLU2)
61
-  // encoder click can be read through I2C if not directly connected
62
-  #if BTN_ENC <= 0
36
+  //
37
+  // Setup other button mappings of each panel
38
+  //
39
+  #if ENABLED(LCD_I2C_VIKI)
63 40
     #define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C)
64 41
 
65
-    #define B_MI (PANELOLU2_ENCODER_C<<B_I2C_BTN_OFFSET) // requires LiquidTWI2 library v1.2.3 or later
66
-
67
-    #define LCD_CLICKED (buttons&B_MI)
42
+    // button and encoder bit positions within 'buttons'
43
+    #define B_LE (BUTTON_LEFT<<B_I2C_BTN_OFFSET)    // The remaining normalized buttons are all read via I2C
44
+    #define B_UP (BUTTON_UP<<B_I2C_BTN_OFFSET)
45
+    #define B_MI (BUTTON_SELECT<<B_I2C_BTN_OFFSET)
46
+    #define B_DW (BUTTON_DOWN<<B_I2C_BTN_OFFSET)
47
+    #define B_RI (BUTTON_RIGHT<<B_I2C_BTN_OFFSET)
48
+
49
+    #if defined(BTN_ENC) && BTN_ENC > -1
50
+      // the pause/stop/restart button is connected to BTN_ENC when used
51
+      #define B_ST (EN_C)                            // Map the pause/stop/resume button into its normalized functional name
52
+      #define LCD_CLICKED (buttons&(B_MI|B_RI|B_ST)) // pause/stop button also acts as click until we implement proper pause/stop.
53
+    #else
54
+      #define LCD_CLICKED (buttons&(B_MI|B_RI))
55
+    #endif
68 56
 
69 57
     // I2C buttons take too long to read inside an interrupt context and so we read them during lcd_update
70 58
     #define LCD_HAS_SLOW_BUTTONS
71
-  #else
72
-    #define LCD_CLICKED (buttons&EN_C)
73
-  #endif
74 59
 
75
-#elif ENABLED(REPRAPWORLD_KEYPAD)
60
+  #elif ENABLED(LCD_I2C_PANELOLU2)
61
+    // encoder click can be read through I2C if not directly connected
62
+    #if BTN_ENC <= 0
63
+      #define B_I2C_BTN_OFFSET 3 // (the first three bit positions reserved for EN_A, EN_B, EN_C)
64
+
65
+      #define B_MI (PANELOLU2_ENCODER_C<<B_I2C_BTN_OFFSET) // requires LiquidTWI2 library v1.2.3 or later
66
+
67
+      #define LCD_CLICKED (buttons&B_MI)
68
+
69
+      // I2C buttons take too long to read inside an interrupt context and so we read them during lcd_update
70
+      #define LCD_HAS_SLOW_BUTTONS
71
+    #else
72
+      #define LCD_CLICKED (buttons&EN_C)
73
+    #endif
74
+
75
+  #elif ENABLED(REPRAPWORLD_KEYPAD)
76 76
     // define register bit values, don't change it
77 77
     #define BLEN_REPRAPWORLD_KEYPAD_F3 0
78 78
     #define BLEN_REPRAPWORLD_KEYPAD_F2 1
@@ -82,7 +82,7 @@
82 82
     #define BLEN_REPRAPWORLD_KEYPAD_MIDDLE 5
83 83
     #define BLEN_REPRAPWORLD_KEYPAD_DOWN 3
84 84
     #define BLEN_REPRAPWORLD_KEYPAD_LEFT 7
85
-    
85
+
86 86
     #define REPRAPWORLD_BTN_OFFSET 0 // bit offset into buttons for shift register values
87 87
 
88 88
     #define EN_REPRAPWORLD_KEYPAD_F3 BIT((BLEN_REPRAPWORLD_KEYPAD_F3+REPRAPWORLD_BTN_OFFSET))
@@ -99,29 +99,29 @@
99 99
     //#define REPRAPWORLD_KEYPAD_MOVE_Y_UP (buttons&EN_REPRAPWORLD_KEYPAD_UP)
100 100
     //#define REPRAPWORLD_KEYPAD_MOVE_HOME (buttons&EN_REPRAPWORLD_KEYPAD_MIDDLE)
101 101
 
102
-#elif ENABLED(NEWPANEL)
103
-  #define LCD_CLICKED (buttons&EN_C)
104
-
105
-#else // old style ULTIPANEL
106
-  //bits in the shift register that carry the buttons for:
107
-  // left up center down right red(stop)
108
-  #define BL_LE 7
109
-  #define BL_UP 6
110
-  #define BL_MI 5
111
-  #define BL_DW 4
112
-  #define BL_RI 3
113
-  #define BL_ST 2
114
-
115
-  //automatic, do not change
116
-  #define B_LE BIT(BL_LE)
117
-  #define B_UP BIT(BL_UP)
118
-  #define B_MI BIT(BL_MI)
119
-  #define B_DW BIT(BL_DW)
120
-  #define B_RI BIT(BL_RI)
121
-  #define B_ST BIT(BL_ST)
122
-  
123
-  #define LCD_CLICKED (buttons&(B_MI|B_ST))
124
-#endif
102
+  #elif ENABLED(NEWPANEL)
103
+    #define LCD_CLICKED (buttons&EN_C)
104
+
105
+  #else // old style ULTIPANEL
106
+    //bits in the shift register that carry the buttons for:
107
+    // left up center down right red(stop)
108
+    #define BL_LE 7
109
+    #define BL_UP 6
110
+    #define BL_MI 5
111
+    #define BL_DW 4
112
+    #define BL_RI 3
113
+    #define BL_ST 2
114
+
115
+    //automatic, do not change
116
+    #define B_LE BIT(BL_LE)
117
+    #define B_UP BIT(BL_UP)
118
+    #define B_MI BIT(BL_MI)
119
+    #define B_DW BIT(BL_DW)
120
+    #define B_RI BIT(BL_RI)
121
+    #define B_ST BIT(BL_ST)
122
+
123
+    #define LCD_CLICKED (buttons&(B_MI|B_ST))
124
+  #endif
125 125
 
126 126
 #endif //ULTIPANEL
127 127
 
@@ -137,12 +137,12 @@
137 137
   #define LCD_I2C_PIN_D5  5
138 138
   #define LCD_I2C_PIN_D6  6
139 139
   #define LCD_I2C_PIN_D7  7
140
-
140
+  
141 141
   #include <Wire.h>
142 142
   #include <LCD.h>
143 143
   #include <LiquidCrystal_I2C.h>
144 144
   #define LCD_CLASS LiquidCrystal_I2C
145
-  LCD_CLASS lcd(LCD_I2C_ADDRESS,LCD_I2C_PIN_EN,LCD_I2C_PIN_RW,LCD_I2C_PIN_RS,LCD_I2C_PIN_D4,LCD_I2C_PIN_D5,LCD_I2C_PIN_D6,LCD_I2C_PIN_D7);
145
+  LCD_CLASS lcd(LCD_I2C_ADDRESS, LCD_I2C_PIN_EN, LCD_I2C_PIN_RW, LCD_I2C_PIN_RS, LCD_I2C_PIN_D4, LCD_I2C_PIN_D5, LCD_I2C_PIN_D6, LCD_I2C_PIN_D7);
146 146
 
147 147
 #elif ENABLED(LCD_I2C_TYPE_MCP23017)
148 148
   //for the LED indicators (which maybe mapped to different things in lcd_implementation_update_indicators())
@@ -172,9 +172,9 @@
172 172
   #endif
173 173
 
174 174
 #elif ENABLED(LCD_I2C_TYPE_PCA8574)
175
-    #include <LiquidCrystal_I2C.h>
176
-    #define LCD_CLASS LiquidCrystal_I2C
177
-    LCD_CLASS lcd(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT);
175
+  #include <LiquidCrystal_I2C.h>
176
+  #define LCD_CLASS LiquidCrystal_I2C
177
+  LCD_CLASS lcd(LCD_I2C_ADDRESS, LCD_WIDTH, LCD_HEIGHT);
178 178
 
179 179
 // 2 wire Non-latching LCD SR from:
180 180
 // https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection
@@ -188,7 +188,7 @@
188 188
   // Standard directly connected LCD implementations
189 189
   #include <LiquidCrystal.h>
190 190
   #define LCD_CLASS LiquidCrystal
191
-  LCD_CLASS lcd(LCD_PINS_RS, LCD_PINS_ENABLE, LCD_PINS_D4, LCD_PINS_D5,LCD_PINS_D6,LCD_PINS_D7);  //RS,Enable,D4,D5,D6,D7
191
+  LCD_CLASS lcd(LCD_PINS_RS, LCD_PINS_ENABLE, LCD_PINS_D4, LCD_PINS_D5, LCD_PINS_D6, LCD_PINS_D7); //RS,Enable,D4,D5,D6,D7
192 192
 #endif
193 193
 
194 194
 #include "utf_mapper.h"
@@ -208,7 +208,7 @@
208 208
 
209 209
 static void lcd_set_custom_characters(
210 210
   #if ENABLED(LCD_PROGRESS_BAR)
211
-    bool progress_bar_set=true
211
+    bool progress_bar_set = true
212 212
   #endif
213 213
 ) {
214 214
   byte bedTemp[8] = {
@@ -331,7 +331,7 @@ static void lcd_set_custom_characters(
331 331
       lcd.createChar(LCD_STR_CLOCK[0], clock);
332 332
       if (progress_bar_set) {
333 333
         // Progress bar characters for info screen
334
-        for (int i=3; i--;) lcd.createChar(LCD_STR_PROGRESS[i], progress[i]);
334
+        for (int i = 3; i--;) lcd.createChar(LCD_STR_PROGRESS[i], progress[i]);
335 335
       }
336 336
       else {
337 337
         // Custom characters for submenus
@@ -354,7 +354,7 @@ static void lcd_set_custom_characters(
354 354
 
355 355
 static void lcd_implementation_init(
356 356
   #if ENABLED(LCD_PROGRESS_BAR)
357
-    bool progress_bar_set=true
357
+    bool progress_bar_set = true
358 358
   #endif
359 359
 ) {
360 360
 
@@ -416,16 +416,16 @@ unsigned lcd_print(char c) { return charset_mapper(c); }
416 416
 #if ENABLED(SHOW_BOOTSCREEN)
417 417
   void lcd_erase_line(int line) {
418 418
     lcd.setCursor(0, 3);
419
-    for (int i=0; i < LCD_WIDTH; i++)
419
+    for (int i = 0; i < LCD_WIDTH; i++)
420 420
       lcd_print(' ');
421 421
   }
422 422
 
423
-  // scrol the PSTR'text' in a 'len' wide field for 'time' milliseconds at position col,line
424
-  void lcd_scroll(int col, int line, const char * text, int len, int time) {
425
-    char tmp[LCD_WIDTH+1] = {0};
423
+  // Scroll the PSTR 'text' in a 'len' wide field for 'time' milliseconds at position col,line
424
+  void lcd_scroll(int col, int line, const char* text, int len, int time) {
425
+    char tmp[LCD_WIDTH + 1] = {0};
426 426
     int n = max(lcd_strlen_P(text) - len, 0);
427 427
     for (int i = 0; i <= n; i++) {
428
-      strncpy_P(tmp, text+i, min(len, LCD_WIDTH));
428
+      strncpy_P(tmp, text + i, min(len, LCD_WIDTH));
429 429
       lcd.setCursor(col, line);
430 430
       lcd_print(tmp);
431 431
       delay(time / max(n, 1));
@@ -667,10 +667,10 @@ static void lcd_implementation_status_screen() {
667 667
     lcd.setCursor(LCD_WIDTH - 6, 2);
668 668
     lcd.print(LCD_STR_CLOCK[0]);
669 669
     if (print_job_start_ms != 0) {
670
-      uint16_t time = millis()/60000 - print_job_start_ms/60000;
671
-      lcd.print(itostr2(time/60));
670
+      uint16_t time = millis() / 60000 - print_job_start_ms / 60000;
671
+      lcd.print(itostr2(time / 60));
672 672
       lcd.print(':');
673
-      lcd.print(itostr2(time%60));
673
+      lcd.print(itostr2(time % 60));
674 674
     }
675 675
     else {
676 676
       lcd_printPGM(PSTR("--:--"));
@@ -693,13 +693,13 @@ static void lcd_implementation_status_screen() {
693 693
       if (millis() >= progress_bar_ms + PROGRESS_BAR_MSG_TIME || !lcd_status_message[0]) {
694 694
         int tix = (int)(card.percentDone() * LCD_WIDTH * 3) / 100,
695 695
           cel = tix / 3, rem = tix % 3, i = LCD_WIDTH;
696
-        char msg[LCD_WIDTH+1], b = ' ';
696
+        char msg[LCD_WIDTH + 1], b = ' ';
697 697
         msg[i] = '\0';
698 698
         while (i--) {
699 699
           if (i == cel - 1)
700 700
             b = LCD_STR_PROGRESS[2];
701 701
           else if (i == cel && rem != 0)
702
-            b = LCD_STR_PROGRESS[rem-1];
702
+            b = LCD_STR_PROGRESS[rem - 1];
703 703
           msg[i] = b;
704 704
         }
705 705
         lcd.print(msg);
@@ -715,7 +715,7 @@ static void lcd_implementation_status_screen() {
715 715
       lcd_printPGM(PSTR("Dia "));
716 716
       lcd.print(ftostr12ns(filament_width_meas));
717 717
       lcd_printPGM(PSTR(" V"));
718
-      lcd.print(itostr3(100.0*volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]));
718
+      lcd.print(itostr3(100.0 * volumetric_multiplier[FILAMENT_SENSOR_EXTRUDER_NUM]));
719 719
   	  lcd.print('%');
720 720
   	  return;
721 721
     }
@@ -734,7 +734,7 @@ static void lcd_implementation_drawmenu_generic(bool sel, uint8_t row, const cha
734 734
     n -= lcd_print(c);
735 735
     pstr++;
736 736
   }
737
-  while(n--) lcd.print(' ');
737
+  while (n--) lcd.print(' ');
738 738
   lcd.print(post_char);
739 739
 }
740 740
 
@@ -859,10 +859,10 @@ void lcd_implementation_drawedit(const char* pstr, char* value) {
859 859
       uint8_t slow_buttons;
860 860
       // Reading these buttons this is likely to be too slow to call inside interrupt context
861 861
       // so they are called during normal lcd_update
862
-      slow_buttons = lcd.readButtons() << B_I2C_BTN_OFFSET; 
862
+      slow_buttons = lcd.readButtons() << B_I2C_BTN_OFFSET;
863 863
       #if ENABLED(LCD_I2C_VIKI)
864
-        if ((slow_buttons & (B_MI|B_RI)) && millis() < next_button_update_ms) // LCD clicked
865
-          slow_buttons &= ~(B_MI|B_RI); // Disable LCD clicked buttons if screen is updated
864
+        if ((slow_buttons & (B_MI | B_RI)) && millis() < next_button_update_ms) // LCD clicked
865
+          slow_buttons &= ~(B_MI | B_RI); // Disable LCD clicked buttons if screen is updated
866 866
       #endif
867 867
       return slow_buttons;
868 868
     #endif

+ 58
- 71
Marlin/ultralcd_st7920_u8glib_rrd.h View File

@@ -21,20 +21,18 @@
21 21
 
22 22
 #include <U8glib.h>
23 23
 
24
-static void ST7920_SWSPI_SND_8BIT(uint8_t val)
25
-{
24
+static void ST7920_SWSPI_SND_8BIT(uint8_t val) {
26 25
   uint8_t i;
27
-  for( i=0; i<8; i++ )
28
-  {
26
+  for (i = 0; i < 8; i++) {
29 27
     WRITE(ST7920_CLK_PIN,0);
30 28
     #if F_CPU == 20000000
31
-      __asm__("nop\n\t"); 
29
+      __asm__("nop\n\t");
32 30
     #endif
33
-    WRITE(ST7920_DAT_PIN,val&0x80); 
31
+    WRITE(ST7920_DAT_PIN,val&0x80);
34 32
     val<<=1;
35 33
     WRITE(ST7920_CLK_PIN,1);
36 34
     #if F_CPU == 20000000
37
-      __asm__("nop\n\t""nop\n\t"); 
35
+      __asm__("nop\n\t""nop\n\t");
38 36
     #endif
39 37
   }
40 38
 }
@@ -46,69 +44,59 @@ static void ST7920_SWSPI_SND_8BIT(uint8_t val)
46 44
 #define ST7920_WRITE_BYTE(a)     {ST7920_SWSPI_SND_8BIT((uint8_t)((a)&0xf0u));ST7920_SWSPI_SND_8BIT((uint8_t)((a)<<4u));u8g_10MicroDelay();}
47 45
 #define ST7920_WRITE_BYTES(p,l)  {uint8_t i;for(i=0;i<l;i++){ST7920_SWSPI_SND_8BIT(*p&0xf0);ST7920_SWSPI_SND_8BIT(*p<<4);p++;}u8g_10MicroDelay();}
48 46
 
49
-uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg)
50
-{
51
-  uint8_t i,y;
52
-  switch(msg)
53
-  {
54
-    case U8G_DEV_MSG_INIT:
55
-      {
56
-        OUT_WRITE(ST7920_CS_PIN,LOW);
57
-        OUT_WRITE(ST7920_DAT_PIN,LOW);
58
-        OUT_WRITE(ST7920_CLK_PIN,HIGH);
59
-
60
-        ST7920_CS();
61
-        u8g_Delay(120);                 //initial delay for boot up
47
+uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) {
48
+  uint8_t i, y;
49
+  switch (msg) {
50
+    case U8G_DEV_MSG_INIT: {
51
+      OUT_WRITE(ST7920_CS_PIN, LOW);
52
+      OUT_WRITE(ST7920_DAT_PIN, LOW);
53
+      OUT_WRITE(ST7920_CLK_PIN, HIGH);
54
+
55
+      ST7920_CS();
56
+      u8g_Delay(120);                 //initial delay for boot up
57
+      ST7920_SET_CMD();
58
+      ST7920_WRITE_BYTE(0x08);       //display off, cursor+blink off
59
+      ST7920_WRITE_BYTE(0x01);       //clear CGRAM ram
60
+      u8g_Delay(15);                 //delay for CGRAM clear
61
+      ST7920_WRITE_BYTE(0x3E);       //extended mode + GDRAM active
62
+      for (y = 0; y < LCD_PIXEL_HEIGHT / 2; y++) { //clear GDRAM
63
+        ST7920_WRITE_BYTE(0x80 | y); //set y
64
+        ST7920_WRITE_BYTE(0x80);     //set x = 0
65
+        ST7920_SET_DAT();
66
+        for (i = 0; i < 2 * LCD_PIXEL_WIDTH / 8; i++) //2x width clears both segments
67
+          ST7920_WRITE_BYTE(0);
62 68
         ST7920_SET_CMD();
63
-        ST7920_WRITE_BYTE(0x08);       //display off, cursor+blink off
64
-        ST7920_WRITE_BYTE(0x01);       //clear CGRAM ram
65
-        u8g_Delay(15);                 //delay for CGRAM clear
66
-        ST7920_WRITE_BYTE(0x3E);       //extended mode + GDRAM active
67
-        for(y=0;y<LCD_PIXEL_HEIGHT/2;y++)        //clear GDRAM
68
-        {
69
-          ST7920_WRITE_BYTE(0x80|y);   //set y
70
-          ST7920_WRITE_BYTE(0x80);     //set x = 0
71
-          ST7920_SET_DAT();
72
-          for(i=0;i<2*LCD_PIXEL_WIDTH/8;i++)     //2x width clears both segments
73
-            ST7920_WRITE_BYTE(0);
74
-          ST7920_SET_CMD();
75
-        }
76
-        ST7920_WRITE_BYTE(0x0C); //display on, cursor+blink off
77
-        ST7920_NCS();
78 69
       }
79
-      break;
80
-
70
+      ST7920_WRITE_BYTE(0x0C); //display on, cursor+blink off
71
+      ST7920_NCS();
72
+    }
73
+    break;
81 74
     case U8G_DEV_MSG_STOP:
82 75
       break;
83
-    case U8G_DEV_MSG_PAGE_NEXT:
84
-      {
85
-        uint8_t *ptr;
86
-        u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem);
87
-        y = pb->p.page_y0;
88
-        ptr = (uint8_t*)pb->buf;
89
-
90
-        ST7920_CS();
91
-        for( i = 0; i < PAGE_HEIGHT; i ++ )
92
-        {
93
-          ST7920_SET_CMD();
94
-          if ( y < 32 )
95
-          {
96
-            ST7920_WRITE_BYTE(0x80 | y);       //y
97
-            ST7920_WRITE_BYTE(0x80);           //x=0
98
-          }
99
-          else
100
-          {
101
-            ST7920_WRITE_BYTE(0x80 | (y-32));  //y
102
-            ST7920_WRITE_BYTE(0x80 | 8);       //x=64
103
-          }
104
-
105
-          ST7920_SET_DAT();
106
-          ST7920_WRITE_BYTES(ptr,LCD_PIXEL_WIDTH/8); //ptr is incremented inside of macro
107
-          y++;
76
+    case U8G_DEV_MSG_PAGE_NEXT: {
77
+      uint8_t* ptr;
78
+      u8g_pb_t* pb = (u8g_pb_t*)(dev->dev_mem);
79
+      y = pb->p.page_y0;
80
+      ptr = (uint8_t*)pb->buf;
81
+
82
+      ST7920_CS();
83
+      for (i = 0; i < PAGE_HEIGHT; i ++) {
84
+        ST7920_SET_CMD();
85
+        if (y < 32) {
86
+          ST7920_WRITE_BYTE(0x80 | y);       //y
87
+          ST7920_WRITE_BYTE(0x80);           //x=0
88
+        }
89
+        else {
90
+          ST7920_WRITE_BYTE(0x80 | (y - 32)); //y
91
+          ST7920_WRITE_BYTE(0x80 | 8);       //x=64
108 92
         }
109
-        ST7920_NCS();
93
+        ST7920_SET_DAT();
94
+        ST7920_WRITE_BYTES(ptr, LCD_PIXEL_WIDTH / 8); //ptr is incremented inside of macro
95
+        y++;
110 96
       }
111
-      break;
97
+      ST7920_NCS();
98
+    }
99
+    break;
112 100
   }
113 101
 #if PAGE_HEIGHT == 8
114 102
   return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg);
@@ -119,14 +107,13 @@ uint8_t u8g_dev_rrd_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, vo
119 107
 #endif
120 108
 }
121 109
 
122
-uint8_t   u8g_dev_st7920_128x64_rrd_buf[LCD_PIXEL_WIDTH*(PAGE_HEIGHT/8)] U8G_NOCOMMON;
123
-u8g_pb_t  u8g_dev_st7920_128x64_rrd_pb = {{PAGE_HEIGHT,LCD_PIXEL_HEIGHT,0,0,0},LCD_PIXEL_WIDTH,u8g_dev_st7920_128x64_rrd_buf};
124
-u8g_dev_t u8g_dev_st7920_128x64_rrd_sw_spi = {u8g_dev_rrd_st7920_128x64_fn,&u8g_dev_st7920_128x64_rrd_pb,&u8g_com_null_fn};
110
+uint8_t   u8g_dev_st7920_128x64_rrd_buf[LCD_PIXEL_WIDTH * (PAGE_HEIGHT / 8)] U8G_NOCOMMON;
111
+u8g_pb_t  u8g_dev_st7920_128x64_rrd_pb = {{PAGE_HEIGHT, LCD_PIXEL_HEIGHT, 0, 0, 0}, LCD_PIXEL_WIDTH, u8g_dev_st7920_128x64_rrd_buf};
112
+u8g_dev_t u8g_dev_st7920_128x64_rrd_sw_spi = {u8g_dev_rrd_st7920_128x64_fn, &u8g_dev_st7920_128x64_rrd_pb, &u8g_com_null_fn};
125 113
 
126
-class U8GLIB_ST7920_128X64_RRD : public U8GLIB
127
-{
128
-  public:
129
-    U8GLIB_ST7920_128X64_RRD(uint8_t dummy) : U8GLIB(&u8g_dev_st7920_128x64_rrd_sw_spi) {}
114
+class U8GLIB_ST7920_128X64_RRD : public U8GLIB {
115
+ public:
116
+  U8GLIB_ST7920_128X64_RRD(uint8_t dummy) : U8GLIB(&u8g_dev_st7920_128x64_rrd_sw_spi) {}
130 117
 };
131 118
 
132 119
 

+ 3
- 3
Marlin/utf_mapper.h View File

@@ -67,7 +67,7 @@
67 67
   //          À    Á    Â    Ã    Ä    Å    Æ    Ç    È    É    Ê    Ë    Ì    Í    Î    Ï
68 68
              0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,  // c39 ÐÑÓÔÕÖ×ØÙÚÛÜÝÞß
69 69
   //          Ð    Ñ    Ò    Ó    Ô    Õ    Ö    ×    Ø    Ù    Ú    Û    Ü    Ý    Þ    ß
70
-             0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,  // c3a àáãäåæçèéêëìíîï 
70
+             0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,  // c3a àáãäåæçèéêëìíîï
71 71
   //          à    á    â    ã    ä    å    æ    ç    è    é    ê    ë    ì    í    î    ï
72 72
              0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff   // c3b ðñóôõö÷øùúûüýþÿ
73 73
   //          ð    ñ    ò    ó    ô    õ    ö    ÷    ø    ù    ú    û    ü    ý    þ    ÿ
@@ -190,7 +190,7 @@
190 190
 #elif ENABLED(MAPPER_D0D1)
191 191
   uint8_t utf_hi_char; // UTF-8 high part
192 192
   bool seen_d5 = false;
193
-  char charset_mapper(char c){
193
+  char charset_mapper(char c) {
194 194
     uint8_t d = c;
195 195
     if ( d >= 0x80u ) { // UTF-8 handling
196 196
       if ((d >= 0xd0u) && (!seen_d5)) {
@@ -218,7 +218,7 @@
218 218
   bool seen_e3 = false;
219 219
   bool seen_82_83 = false;
220 220
   char charset_mapper(char c){
221
-  uint8_t d = c;
221
+    uint8_t d = c;
222 222
     if ( d >= 0x80 ) { // UTF-8 handling
223 223
       if ( (d == 0xe3) && (seen_e3 == false)) {
224 224
         seen_e3 = true;

+ 43
- 43
Marlin/vector_3.cpp View File

@@ -27,78 +27,78 @@ vector_3::vector_3() : x(0), y(0), z(0) { }
27 27
 vector_3::vector_3(float x_, float y_, float z_) : x(x_), y(y_), z(z_) { }
28 28
 
29 29
 vector_3 vector_3::cross(vector_3 left, vector_3 right) {
30
-	return vector_3(left.y * right.z - left.z * right.y,
31
-		left.z * right.x - left.x * right.z,
32
-		left.x * right.y - left.y * right.x);
30
+  return vector_3(left.y * right.z - left.z * right.y,
31
+                  left.z * right.x - left.x * right.z,
32
+                  left.x * right.y - left.y * right.x);
33 33
 }
34 34
 
35 35
 vector_3 vector_3::operator+(vector_3 v) { return vector_3((x + v.x), (y + v.y), (z + v.z)); }
36 36
 vector_3 vector_3::operator-(vector_3 v) { return vector_3((x - v.x), (y - v.y), (z - v.z)); }
37 37
 
38 38
 vector_3 vector_3::get_normal() {
39
-	vector_3 normalized = vector_3(x, y, z);
40
-	normalized.normalize();
41
-	return normalized;
39
+  vector_3 normalized = vector_3(x, y, z);
40
+  normalized.normalize();
41
+  return normalized;
42 42
 }
43 43
 
44 44
 float vector_3::get_length() { return sqrt((x * x) + (y * y) + (z * z)); }
45 45
 
46 46
 void vector_3::normalize() {
47
-	float length = get_length();
48
-	x /= length;
49
-	y /= length;
50
-	z /= length;
47
+  float length = get_length();
48
+  x /= length;
49
+  y /= length;
50
+  z /= length;
51 51
 }
52 52
 
53 53
 void vector_3::apply_rotation(matrix_3x3 matrix) {
54
-	float resultX = x * matrix.matrix[3*0+0] + y * matrix.matrix[3*1+0] + z * matrix.matrix[3*2+0];
55
-	float resultY = x * matrix.matrix[3*0+1] + y * matrix.matrix[3*1+1] + z * matrix.matrix[3*2+1];
56
-	float resultZ = x * matrix.matrix[3*0+2] + y * matrix.matrix[3*1+2] + z * matrix.matrix[3*2+2];
57
-	x = resultX;
58
-	y = resultY;
59
-	z = resultZ;
54
+  float resultX = x * matrix.matrix[3 * 0 + 0] + y * matrix.matrix[3 * 1 + 0] + z * matrix.matrix[3 * 2 + 0];
55
+  float resultY = x * matrix.matrix[3 * 0 + 1] + y * matrix.matrix[3 * 1 + 1] + z * matrix.matrix[3 * 2 + 1];
56
+  float resultZ = x * matrix.matrix[3 * 0 + 2] + y * matrix.matrix[3 * 1 + 2] + z * matrix.matrix[3 * 2 + 2];
57
+  x = resultX;
58
+  y = resultY;
59
+  z = resultZ;
60 60
 }
61 61
 
62 62
 void vector_3::debug(const char title[]) {
63
-	SERIAL_PROTOCOL(title);
64
-	SERIAL_PROTOCOLPGM(" x: ");
65
-	SERIAL_PROTOCOL_F(x, 6);
66
-	SERIAL_PROTOCOLPGM(" y: ");
67
-	SERIAL_PROTOCOL_F(y, 6);
68
-	SERIAL_PROTOCOLPGM(" z: ");
69
-	SERIAL_PROTOCOL_F(z, 6);
70
-	SERIAL_EOL;
63
+  SERIAL_PROTOCOL(title);
64
+  SERIAL_PROTOCOLPGM(" x: ");
65
+  SERIAL_PROTOCOL_F(x, 6);
66
+  SERIAL_PROTOCOLPGM(" y: ");
67
+  SERIAL_PROTOCOL_F(y, 6);
68
+  SERIAL_PROTOCOLPGM(" z: ");
69
+  SERIAL_PROTOCOL_F(z, 6);
70
+  SERIAL_EOL;
71 71
 }
72 72
 
73
-void apply_rotation_xyz(matrix_3x3 matrix, float &x, float& y, float& z) {
74
-	vector_3 vector = vector_3(x, y, z);
75
-	vector.apply_rotation(matrix);
76
-	x = vector.x;
77
-	y = vector.y;
78
-	z = vector.z;
73
+void apply_rotation_xyz(matrix_3x3 matrix, float& x, float& y, float& z) {
74
+  vector_3 vector = vector_3(x, y, z);
75
+  vector.apply_rotation(matrix);
76
+  x = vector.x;
77
+  y = vector.y;
78
+  z = vector.z;
79 79
 }
80 80
 
81 81
 matrix_3x3 matrix_3x3::create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2) {
82 82
   //row_0.debug("row_0");
83 83
   //row_1.debug("row_1");
84 84
   //row_2.debug("row_2");
85
-	matrix_3x3 new_matrix;
86
-	new_matrix.matrix[0] = row_0.x; new_matrix.matrix[1] = row_0.y; new_matrix.matrix[2] = row_0.z; 
87
-	new_matrix.matrix[3] = row_1.x; new_matrix.matrix[4] = row_1.y; new_matrix.matrix[5] = row_1.z; 
88
-	new_matrix.matrix[6] = row_2.x; new_matrix.matrix[7] = row_2.y; new_matrix.matrix[8] = row_2.z; 
85
+  matrix_3x3 new_matrix;
86
+  new_matrix.matrix[0] = row_0.x; new_matrix.matrix[1] = row_0.y; new_matrix.matrix[2] = row_0.z;
87
+  new_matrix.matrix[3] = row_1.x; new_matrix.matrix[4] = row_1.y; new_matrix.matrix[5] = row_1.z;
88
+  new_matrix.matrix[6] = row_2.x; new_matrix.matrix[7] = row_2.y; new_matrix.matrix[8] = row_2.z;
89 89
   //new_matrix.debug("new_matrix");
90
-	return new_matrix;
90
+  return new_matrix;
91 91
 }
92 92
 
93 93
 void matrix_3x3::set_to_identity() {
94
-	matrix[0] = 1; matrix[1] = 0; matrix[2] = 0;
95
-	matrix[3] = 0; matrix[4] = 1; matrix[5] = 0;
96
-	matrix[6] = 0; matrix[7] = 0; matrix[8] = 1;
94
+  matrix[0] = 1; matrix[1] = 0; matrix[2] = 0;
95
+  matrix[3] = 0; matrix[4] = 1; matrix[5] = 0;
96
+  matrix[6] = 0; matrix[7] = 0; matrix[8] = 1;
97 97
 }
98 98
 
99 99
 matrix_3x3 matrix_3x3::create_look_at(vector_3 target) {
100 100
   vector_3 z_row = target.get_normal();
101
-  vector_3 x_row = vector_3(1, 0, -target.x/target.z).get_normal();
101
+  vector_3 x_row = vector_3(1, 0, -target.x / target.z).get_normal();
102 102
   vector_3 y_row = vector_3::cross(z_row, x_row).get_normal();
103 103
 
104 104
   // x_row.debug("x_row");
@@ -114,8 +114,8 @@ matrix_3x3 matrix_3x3::create_look_at(vector_3 target) {
114 114
 
115 115
 matrix_3x3 matrix_3x3::transpose(matrix_3x3 original) {
116 116
   matrix_3x3 new_matrix;
117
-  new_matrix.matrix[0] = original.matrix[0]; new_matrix.matrix[1] = original.matrix[3]; new_matrix.matrix[2] = original.matrix[6]; 
118
-  new_matrix.matrix[3] = original.matrix[1]; new_matrix.matrix[4] = original.matrix[4]; new_matrix.matrix[5] = original.matrix[7]; 
117
+  new_matrix.matrix[0] = original.matrix[0]; new_matrix.matrix[1] = original.matrix[3]; new_matrix.matrix[2] = original.matrix[6];
118
+  new_matrix.matrix[3] = original.matrix[1]; new_matrix.matrix[4] = original.matrix[4]; new_matrix.matrix[5] = original.matrix[7];
119 119
   new_matrix.matrix[6] = original.matrix[2]; new_matrix.matrix[7] = original.matrix[5]; new_matrix.matrix[8] = original.matrix[8];
120 120
   return new_matrix;
121 121
 }
@@ -123,8 +123,8 @@ matrix_3x3 matrix_3x3::transpose(matrix_3x3 original) {
123 123
 void matrix_3x3::debug(const char title[]) {
124 124
   SERIAL_PROTOCOLLN(title);
125 125
   int count = 0;
126
-  for(int i=0; i<3; i++) {
127
-    for(int j=0; j<3; j++) {
126
+  for (int i = 0; i < 3; i++) {
127
+    for (int j = 0; j < 3; j++) {
128 128
       if (matrix[count] >= 0.0) SERIAL_PROTOCOLCHAR('+');
129 129
       SERIAL_PROTOCOL_F(matrix[count], 6);
130 130
       SERIAL_PROTOCOLCHAR(' ');

+ 21
- 23
Marlin/vector_3.h View File

@@ -22,41 +22,39 @@
22 22
 #if ENABLED(AUTO_BED_LEVELING_FEATURE)
23 23
 class matrix_3x3;
24 24
 
25
-struct vector_3
26
-{
27
-	float x, y, z;
25
+struct vector_3 {
26
+  float x, y, z;
28 27
 
29
-        vector_3();
30
-	vector_3(float x, float y, float z);
28
+  vector_3();
29
+  vector_3(float x, float y, float z);
31 30
 
32
-	static vector_3 cross(vector_3 a, vector_3 b);
31
+  static vector_3 cross(vector_3 a, vector_3 b);
33 32
 
34
-	vector_3 operator+(vector_3 v);
35
-	vector_3 operator-(vector_3 v);
36
-	void normalize();
37
-	float get_length();
38
-	vector_3 get_normal();
33
+  vector_3 operator+(vector_3 v);
34
+  vector_3 operator-(vector_3 v);
35
+  void normalize();
36
+  float get_length();
37
+  vector_3 get_normal();
39 38
 
40
-	void debug(const char title[]);
41
-	
42
-	void apply_rotation(matrix_3x3 matrix);
39
+  void debug(const char title[]);
40
+
41
+  void apply_rotation(matrix_3x3 matrix);
43 42
 };
44 43
 
45
-struct matrix_3x3
46
-{
47
-	float matrix[9];
44
+struct matrix_3x3 {
45
+  float matrix[9];
48 46
 
49
-	static matrix_3x3 create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2);
50
-	static matrix_3x3 create_look_at(vector_3 target);
51
-	static matrix_3x3 transpose(matrix_3x3 original);
47
+  static matrix_3x3 create_from_rows(vector_3 row_0, vector_3 row_1, vector_3 row_2);
48
+  static matrix_3x3 create_look_at(vector_3 target);
49
+  static matrix_3x3 transpose(matrix_3x3 original);
52 50
 
53
-	void set_to_identity();
51
+  void set_to_identity();
54 52
 
55
-	void debug(const char title[]);
53
+  void debug(const char title[]);
56 54
 };
57 55
 
58 56
 
59
-void apply_rotation_xyz(matrix_3x3 rotationMatrix, float &x, float& y, float& z);
57
+void apply_rotation_xyz(matrix_3x3 rotationMatrix, float& x, float& y, float& z);
60 58
 #endif // AUTO_BED_LEVELING_FEATURE
61 59
 
62 60
 #endif // VECTOR_3_H

+ 0
- 0
Marlin/watchdog.cpp View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save