{"action":"created","issue":{"url":"https://api.github.com/repos/AnHardt/Marlin/issues/13","repository_url":"https://api.github.com/repos/AnHardt/Marlin","labels_url":"https://api.github.com/repos/AnHardt/Marlin/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/AnHardt/Marlin/issues/13/comments","events_url":"https://api.github.com/repos/AnHardt/Marlin/issues/13/events","html_url":"https://github.com/AnHardt/Marlin/pull/13","id":126298038,"number":13,"title":"Lcd speedup","user":{"login":"AnHardt","id":211931,"avatar_url":"https://avatars.githubusercontent.com/u/211931?v=3","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2016-01-12T22:56:09Z","updated_at":"2016-04-26T22:31:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/AnHardt/Marlin/pulls/13","html_url":"https://github.com/AnHardt/Marlin/pull/13","diff_url":"https://github.com/AnHardt/Marlin/pull/13.diff","patch_url":"https://github.com/AnHardt/Marlin/pull/13.patch"},"body":"LCD-Speedup\r\nA collection of little speed improvements, mainly for the graphical displays.\r\nFor a RAMPS, REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER, 1 etruder, bed, fan, SD-support the improvements sum up to ~ -33%. Expect more win with the other graphical displays.\r\nFor the character displays speed is about the same. Memory use has not changed significantly. See details below.\r\n\r\nhttps://code.google.com/p/u8glib/wiki/tpictureloop helps to understand what is going on, when i write about stripes here.\r\n\r\n![picture 165](https://cloud.githubusercontent.com/assets/211931/12279248/6df8604e-b986-11e5-88d1-8c3bfe813ae0.jpg)\r\n![picture 167](https://cloud.githubusercontent.com/assets/211931/12279260/7b32b142-b986-11e5-976e-0b5a7c1def2b.jpg)\r\n![picture 170](https://cloud.githubusercontent.com/assets/211931/12279265/81d7fae8-b986-11e5-8af5-15f924e13ebe.jpg)\r\nReduded perision if otherwise to wide:\r\n![picture 171](https://cloud.githubusercontent.com/assets/211931/12279268/8547a494-b986-11e5-8e33-6e72e3a159ab.jpg)\r\n![picture 182](https://cloud.githubusercontent.com/assets/211931/12279500/c74468e0-b987-11e5-9be8-43eee1db72eb.jpg)\r\n![picture 172](https://cloud.githubusercontent.com/assets/211931/12279269/8c6caf6c-b986-11e5-8ee6-680b4b8dd03a.jpg)\r\n![picture 173](https://cloud.githubusercontent.com/assets/211931/12279278/9668807c-b986-11e5-8721-fcaebe8ea9e5.jpg)\r\n![picture 175](https://cloud.githubusercontent.com/assets/211931/12279308/b978cfb8-b986-11e5-9bc6-f9d260548340.jpg)\r\n![picture 177](https://cloud.githubusercontent.com/assets/211931/12279322/c1cb3746-b986-11e5-9657-abdb926ec947.jpg)\r\n![picture 178](https://cloud.githubusercontent.com/assets/211931/12279323/c427353a-b986-11e5-8e7f-369ac0ffe2ca.jpg)\r\n![picture 180](https://cloud.githubusercontent.com/assets/211931/12279326/c854249c-b986-11e5-8e07-c8c462692b1b.jpg)\r\nUpdate:\r\n![picture 183](https://cloud.githubusercontent.com/assets/211931/12294105/102da4ac-b9f8-11e5-84e7-6ee973e37788.jpg)\r\n\r\n-----------------------------------------\r\nAdded a little benchmark.\r\n\r\nSome tests to get the current state:\r\n\r\nTests with different display content CLCD\r\n\r\n#define REPRAP_DISCOUNT_SMART_CONTROLLER\r\nDer Sketch verwendet 75.344 Bytes (29%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 3.151 Bytes (38%) des dynamischen Speichers, 5.041 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 20-21ms\r\nHomed 20-21ms\r\nExtruder on 22ms\r\n\r\n#define REPRAP_DISCOUNT_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\nDer Sketch verwendet 78.632 Bytes (30%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 3.165 Bytes (38%) des dynamischen Speichers, 5.027 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 23-24ms\r\nHomed 23-24ms\r\nExtruder on 24-25ms\r\nExtruder + bed on 25ms\r\n\r\n#define REPRAP_DISCOUNT_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 97.138 Bytes (38%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.392 Bytes (53%) des dynamischen Speichers, 3.800 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 25-26ms\r\nHomed 26-27ms\r\nExtruder on 26-27ms\r\nExtruder + bed on 26-27ms\r\n\r\n#define REPRAP_DISCOUNT_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\ncommented lcd_implementation_status_screen()\r\nDer Sketch verwendet 95.138 Bytes (37%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.392 Bytes (53%) des dynamischen Speichers, 3.800 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 0ms\r\nHomed 0ms\r\nExtruder on 0ms\r\nExtruder + bed on 0ms\r\n\r\n\r\n\r\n\r\nTests with different display content GLCD\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\nDer Sketch verwendet 84.372 Bytes (33%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 3.648 Bytes (44%) des dynamischen Speichers, 4.544 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 72ms\r\nHomed 75-76ms\r\nFan100% 77-78ms\r\nExtruder on 78-79ms\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\nDer Sketch verwendet 88.244 Bytes (34%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 3.662 Bytes (44%) des dynamischen Speichers, 4.530 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 72-73ms\r\nHomed 76-77ms\r\nFan100% 78ms\r\nExtruder on 79ms\r\nExtruder + bed on 79ms\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.810 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 76-77ms\r\nHomed 81ms\r\nFan100% 82ms\r\nExtruder on 83ms\r\nExtruder + bed on 84ms\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\ncommented lcd_implementation_status_screen()\r\nDer Sketch verwendet 104.820 Bytes (41%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 29-30ms\r\nHomed 29-30ms\r\nFan100% 29-30ms\r\nExtruder on 29-30ms\r\nExtruder + bed on 29-30ms\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n  //U8GLIB_ST7920_128X64_RRD u8g(0);\r\n  U8GLIB_ST7920_128X64_4X u8g(LCD_PINS_D4, LCD_PINS_ENABLE, LCD_PINS_RS); // original u8glib device\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\ncommented lcd_implementation_status_screen()\r\nDer Sketch verwendet 105.460 Bytes (41%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.898 Bytes (59%) des dynamischen Speichers, 3.294 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 59-60ms\r\nHomed 59-60ms\r\nFan100% 59-60ms\r\nExtruder on 59-60ms\r\nExtruder + bed on 59-60ms\r\n// Marlins implementation of the device for the ST7920 is about 50% faster then the original u8glib device and 640bytes smaller!!!\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\n#define PAGE_HEIGHT 8   //128 byte framebuffer\r\n//#define PAGE_HEIGHT 32  //512 byte framebuffer\r\ncommented lcd_implementation_status_screen()\r\nDer Sketch verwendet 104.804 Bytes (41%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.505 Bytes (54%) des dynamischen Speichers, 3.687 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 29-30ms\r\nHomed 29-30ms\r\nFan100% 29-30ms\r\nExtruder on 29-30ms\r\nExtruder + bed on 29-30ms\r\n// With 8 instead of 2 stripes the empty update loop is not slower. Transfer graphic buffer to display. Saves 392bytes RAM (512-128=384).\r\n\r\n#define U8G_10DELAY 3\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\n#define PAGE_HEIGHT 8   //128 byte framebuffer\r\n//#define PAGE_HEIGHT 32  //512 byte framebuffer\r\ncommented lcd_implementation_status_screen()\r\nDer Sketch verwendet 104.892 Bytes (41%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.505 Bytes (54%) des dynamischen Speichers, 3.687 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 27-28ms\r\nHomed 27-28ms\r\nFan100% 27-28ms\r\nExtruder on 27-28ms\r\nExtruder + bed on 27-28ms\r\n\r\n#define U8G_10DELAY 3\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\ncommented lcd_implementation_status_screen()\r\nDer Sketch verwendet 104.908 Bytes (41%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 26-27ms\r\nHomed 26-27ms\r\nFan100% 27-28ms\r\nExtruder on 26-27ms\r\nExtruder + bed on 26-27ms\r\n\r\n#define U8G_10DELAY 3\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.898 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 73-74ms\r\nHomed 78-79ms\r\nFan100% 79-80ms\r\nExtruder on 81ms\r\nExtruder + bed on 81ms\r\n// With a reduced from 10 to 3 µs pause we can save about 2-3ms per display update. 2µs messed up my display - was to short. This may be different for other displays.\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\n#define PAGE_HEIGHT 8  //128 byte framebuffer\r\n//#define PAGE_HEIGHT 32  //512 byte framebuffer\r\nDer Sketch verwendet 107.882 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.505 Bytes (54%) des dynamischen Speichers, 3.687 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 111-112ms\r\nHomed 120-121ms\r\nFan100% 123ms\r\nExtruder on 124-125ms\r\nExtruder + bed on 125-126ms\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\n#define PAGE_HEIGHT 16   //256 byte framebuffer\r\n//#define PAGE_HEIGHT 32  //512 byte framebuffer\r\nDer Sketch verwendet 107.896 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.633 Bytes (56%) des dynamischen Speichers, 3.559 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 89ms\r\nHomed 95-96ms\r\nFan100% 96-97ms\r\nExtruder on 97ms\r\nExtruder + bed on 98-99ms\r\n// Increasing the number of stripes is disastrous. 7*stripes + 70 ~ time in ms\r\n\r\n#define VIKI2\r\nsome changes to pins_RAMPS_13.h where needed to compile\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 103.650 Bytes (40%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.508 Bytes (55%) des dynamischen Speichers, 3.684 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 156-157ms\r\nHomed 168-169ms\r\nFan100% 172-173ms\r\nExtruder on 174-175ms\r\nExtruder + bed on 175-176ms\r\n// VIKI2 is known as extra slow. Here we see how slow. Thats more than 200% compared to ST7920VIKI2 and the other standard u8glib devises all use 8 stripes.\r\n\r\n#define VIKI2\r\nsome changes to pins_RAMPS_13.h where needed to compile\r\n  // U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 stripes\r\n  U8GLIB_NHD_C12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4 stripes\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 103.710 Bytes (40%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.636 Bytes (56%) des dynamischen Speichers, 3.556 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 125ms\r\nHomed 133-134ms\r\nFan100% 135-136ms\r\nExtruder on 136-137ms\r\nExtruder + bed on 137ms\r\n// Not good, but much better!!! 9.75*stripes + 98 ~ time in ms\r\n\r\n\r\nTest again\r\n\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.898 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 76-77ms\r\nHomed 81ms\r\nFan100% 82ms\r\nExtruder on 83ms\r\nExtruder + bed on 84ms\r\n// unchanged\r\n\r\nRemove the big heater graphic\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\n//u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp);\r\nDer Sketch verwendet 107.272 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 67-68ms\r\nHomed 71-72ms\r\nFan100% 73-74ms\r\nExtruder on 73-74ms\r\nExtruder + bed on 74-75ms\r\n\r\nRemove the big heater graphic\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define SDSUPPORT\r\n//u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp);\r\nDer Sketch verwendet 103.410 Bytes (40%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.875 Bytes (59%) des dynamischen Speichers, 3.317 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 67-68ms\r\nHomed 71-72ms\r\nFan100% 73-74ms\r\nExtruder on 73-74ms\r\n// unchanged\r\n\r\nRemove the big heater graphic\r\n#define MOTHERBOARD BOARD_RAMPS_13_EEB\r\n#define EXTRUDERS 1\r\n#define TEMP_SENSOR_1 999\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\n//u8g.drawBitmapP(9,1,STATUS_SCREENBYTEWIDTH,STATUS_SCREENHEIGHT, (blink % 2) && fanSpeed ? status_screen0_bmp : status_screen1_bmp);\r\nDer Sketch verwendet 107.370 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 67-68ms\r\nHomed 71-72ms\r\nFan100% 73-74ms\r\nExtruder on 74-75ms\r\nExtruder + bed on 74-75ms\r\nAll heaters on 74-75ms\r\n\r\n#define MOTHERBOARD BOARD_RAMPS_13_EEB\r\n#define EXTRUDERS 1\r\n#define TEMP_SENSOR_1 999\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.996 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 76-77ms\r\nHomed 80-81ms\r\nFan100% 81-82ms\r\nExtruder on 83ms\r\nExtruder + bed on 83-84ms\r\nAll heaters on 83-84ms\r\n// drawing the big heater graphic needs about 10ms and is close to independent from the amount of drawn devices.\r\n\r\n\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define MOTHERBOARD BOARD_RAMPS_13_EEB\r\n#define EXTRUDERS 2\r\n#define TEMP_SENSOR_1 999\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 112.280 Bytes (44%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.995 Bytes (60%) des dynamischen Speichers, 3.197 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 76-77ms\r\nHomed 81-82ms\r\nFan100% 82-83ms\r\nExtruder on 82-83ms\r\nExtruder + bed on 83-84ms\r\nAll heaters on 83-84ms\r\n// About the same speed\r\n\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.650 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.891 Bytes (59%) des dynamischen Speichers, 3.301 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 72-73ms\r\nHomed 77-78ms\r\nFan100% 78-79ms\r\nExtruder on 79-80ms\r\nExtruder + bed on 79-80ms\r\n\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define SDSUPPORT\r\nDer Sketch verwendet 103.418 Bytes (40%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.877 Bytes (59%) des dynamischen Speichers, 3.315 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 69-70ms\r\nHomed 73-74ms\r\nFan100% 74-75ms\r\nExtruder on 75-76ms\r\n\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define SDSUPPORT\r\n#define FAN_PIN           -1 // (Sprinter config)\r\nDer Sketch verwendet 103.022 Bytes (40%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.875 Bytes (59%) des dynamischen Speichers, 3.317 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 65-66ms\r\nHomed 70-71ms\r\nExtruder on 70-71ms\r\n\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.712 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.891 Bytes (59%) des dynamischen Speichers, 3.301 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 60-61ms\r\nHomed 64-65ms\r\nFan100% 65-66ms\r\nExtruder on 66-67ms\r\nExtruder + bed on 66-67ms\r\n// About 5ms win!!!\r\n\r\nDraw progress bar only when printing from SD / Alter SD symbol when SD-card is inserted.\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.748 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.891 Bytes (59%) des dynamischen Speichers, 3.301 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nSD-card out\r\nFresh reset 55-56ms\r\nHomed 59-60ms\r\nFan100% 60-61ms\r\nExtruder on 61-62ms\r\nExtruder + bed on 62-63ms\r\n// About 5ms win!!!\r\nSD-card in\r\nFresh reset 57-58ms\r\nHomed 61-62ms\r\nFan100% 62-63ms\r\nExtruder on 63-64ms\r\nExtruder + bed on 63-64ms\r\n// About 3ms win!!!\r\nPrinting from SD-card \r\nExtruder on 65-66ms\r\nExtruder + bed on 65-66ms\r\n// About 1ms win!!!\r\n\r\nPre-calculate strings. Update upper and lower half separate.\r\nDraw progress bar only when printing from SD / Alter SD symbol when SD-card is inserted.\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 108.058 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.944 Bytes (60%) des dynamischen Speichers, 3.248 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nSD-card out\r\nFresh reset 53-54ms\r\nHomed 57-58ms\r\nFan100% 58-59ms\r\nExtruder on 58-59ms\r\nExtruder + bed on 59-60ms\r\n// About 2ms win!!!\r\n\r\n#define PAGE_HEIGHT 16  //256 byte framebuffer\r\n//#define PAGE_HEIGHT 32  //512 byte framebuffer\r\nPre-calculate strings. Update upper and lower half separate.\r\nDraw progress bar only when printing from SD / Alter SD symbol when SD-card is inserted.\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 108.056 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.688 Bytes (57%) des dynamischen Speichers, 3.504 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nSD-card out\r\nFresh reset 60-61ms\r\nHomed 64-65ms\r\nFan100% 64-65ms\r\nExtruder on 64-65ms\r\nExtruder + bed on 65-66ms\r\n//was before\r\nFresh reset 89ms\r\nHomed 95-96ms\r\nFan100% 96-97ms\r\nExtruder on 97ms\r\nExtruder + bed on 98-99ms\r\n// 4 stripes. 3*stripes + 54 ~ time in ms\r\n\r\n#define PAGE_HEIGHT 8   //128 byte framebuffer\r\n//#define PAGE_HEIGHT 32  //512 byte framebuffer\r\nPre-calculate strings. Update upper and lower half separate.\r\nDraw progress bar only when printing from SD / Alter SD symbol when SD-card is inserted.\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 108.042 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.560 Bytes (55%) des dynamischen Speichers, 3.632 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nSD-card out\r\nFresh reset 71-72ms\r\nHomed 76ms\r\nFan100% 78ms\r\nExtruder on 78ms\r\nExtruder + bed on 78-79ms\r\n//was before\r\nFresh reset 111-112ms\r\nHomed 120-121ms\r\nFan100% 123ms\r\nExtruder on 124-125ms\r\nExtruder + bed on 125-126ms\r\n// thats about 50% faster for 8 stripes. 3.25*stripes + 53 ~ time in ms\r\n\r\nReplaced our itostr ftostr with derivates of itoa and dtostrf\r\nPre-calculate strings. Update upper and lower half separate.\r\nDraw progress bar only when printing from SD / Alter SD symbol when SD-card is inserted.\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 107.806 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.996 Bytes (60%) des dynamischen Speichers, 3.196 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nSD-card out\r\nFresh reset 53-54ms\r\nHomed 54-55ms\r\nFan100% 55-56ms\r\nExtruder on 55-56ms\r\nExtruder + bed on 56-57ms\r\n// About 3ms win!!!\r\n//Was:\r\nDer Sketch verwendet 107.810 Bytes (42%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.889 Bytes (59%) des dynamischen Speichers, 3.303 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 76-77ms\r\nHomed 81ms\r\nFan100% 82ms\r\nExtruder on 83ms\r\nExtruder + bed on 84ms\r\n// About 27ms win - ~33% win. About 4bytes progmem win. About 107byte RAM lost.\r\n\r\nReplaced our itostr ftostr with derivates of itoa and dtostrf\r\nPre-calculate strings. Update upper and lower half separate.\r\nDraw progress bar only when printing from SD / Alter SD symbol when SD-card is inserted.\r\nReplace the inverse bar in the middle with boundary lines\r\nReplaced the big heater graphic with small graphics for the single devices and draw only what is needed.\r\n#define REPRAP_DISCOUNT_SMART_CONTROLLER\r\n#define TEMP_SENSOR_BED 1\r\n#define SDSUPPORT\r\nDer Sketch verwendet 96.868 Bytes (38%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.444 Bytes (54%) des dynamischen Speichers, 3.748 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nSD-card out\r\nFresh reset 25-26ms\r\nHomed 27-28ms\r\nFan100% 27-28ms\r\nExtruder on 27-28ms\r\nExtruder + bed on 27-28ms\r\n// Was:\r\nDer Sketch verwendet 97.138 Bytes (38%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes.\r\nGlobale Variablen verwenden 4.392 Bytes (53%) des dynamischen Speichers, 3.800 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes.\r\nFresh reset 25-26ms\r\nHomed 26-27ms\r\nExtruder on 26-27ms\r\nExtruder + bed on 26-27ms\r\n\r\n// About <1ms loss. About 270bytes progmem saved. About 52byte RAM lost.\r\n"},"comment":{"url":"https://api.github.com/repos/AnHardt/Marlin/issues/comments/214907553","html_url":"https://github.com/AnHardt/Marlin/pull/13#issuecomment-214907553","issue_url":"https://api.github.com/repos/AnHardt/Marlin/issues/13","id":214907553,"user":{"login":"AnHardt","id":211931,"avatar_url":"https://avatars.githubusercontent.com/u/211931?v=3","gravatar_id":"","url":"https://api.github.com/users/AnHardt","html_url":"https://github.com/AnHardt","followers_url":"https://api.github.com/users/AnHardt/followers","following_url":"https://api.github.com/users/AnHardt/following{/other_user}","gists_url":"https://api.github.com/users/AnHardt/gists{/gist_id}","starred_url":"https://api.github.com/users/AnHardt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AnHardt/subscriptions","organizations_url":"https://api.github.com/users/AnHardt/orgs","repos_url":"https://api.github.com/users/AnHardt/repos","events_url":"https://api.github.com/users/AnHardt/events{/privacy}","received_events_url":"https://api.github.com/users/AnHardt/received_events","type":"User","site_admin":false},"created_at":"2016-04-26T22:31:54Z","updated_at":"2016-04-26T22:31:54Z","body":"@tkurbad \r\nSorry at the moment i have low to now time to look at this.\r\nOne day i'll understand what thinkyhead did and than will rework this PR.\r\nWhen, one day, 1.1 is ready this will have a higher priority to me, since the is no chance for merging this into the main branch today, or the very near future."}}