{"action":"closed","issue":{"url":"https://api.github.com/repos/arduino/Arduino/issues/3063","labels_url":"https://api.github.com/repos/arduino/Arduino/issues/3063/labels{/name}","comments_url":"https://api.github.com/repos/arduino/Arduino/issues/3063/comments","events_url":"https://api.github.com/repos/arduino/Arduino/issues/3063/events","html_url":"https://github.com/arduino/Arduino/issues/3063","id":72213309,"number":3063,"title":"LCD library display code does not position text properly when compiled with latest IDE, but works with 1.0.6","user":{"login":"PietBuilder","id":12188528,"avatar_url":"https://avatars.githubusercontent.com/u/12188528?v=3","gravatar_id":"","url":"https://api.github.com/users/PietBuilder","html_url":"https://github.com/PietBuilder","followers_url":"https://api.github.com/users/PietBuilder/followers","following_url":"https://api.github.com/users/PietBuilder/following{/other_user}","gists_url":"https://api.github.com/users/PietBuilder/gists{/gist_id}","starred_url":"https://api.github.com/users/PietBuilder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PietBuilder/subscriptions","organizations_url":"https://api.github.com/users/PietBuilder/orgs","repos_url":"https://api.github.com/users/PietBuilder/repos","events_url":"https://api.github.com/users/PietBuilder/events{/privacy}","received_events_url":"https://api.github.com/users/PietBuilder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/arduino/Arduino/labels/Library:%20LiquidCrystal","name":"Library: LiquidCrystal","color":"000000"},{"url":"https://api.github.com/repos/arduino/Arduino/labels/Type:%20Bug","name":"Type: Bug","color":"0052cc"},{"url":"https://api.github.com/repos/arduino/Arduino/labels/Waiting%20for%20feedback","name":"Waiting for feedback","color":"fef2c0"}],"state":"closed","locked":false,"assignee":{"login":"cmaglie","id":423515,"avatar_url":"https://avatars.githubusercontent.com/u/423515?v=3","gravatar_id":"","url":"https://api.github.com/users/cmaglie","html_url":"https://github.com/cmaglie","followers_url":"https://api.github.com/users/cmaglie/followers","following_url":"https://api.github.com/users/cmaglie/following{/other_user}","gists_url":"https://api.github.com/users/cmaglie/gists{/gist_id}","starred_url":"https://api.github.com/users/cmaglie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cmaglie/subscriptions","organizations_url":"https://api.github.com/users/cmaglie/orgs","repos_url":"https://api.github.com/users/cmaglie/repos","events_url":"https://api.github.com/users/cmaglie/events{/privacy}","received_events_url":"https://api.github.com/users/cmaglie/received_events","type":"User","site_admin":false},"milestone":null,"comments":4,"created_at":"2015-04-30T16:28:51Z","updated_at":"2015-05-10T12:01:38Z","closed_at":"2015-05-10T12:01:38Z","body":"```C++\r\n  // engine condition monitoring routines\r\n  // cylinder head temperatures, No 1 to 4\r\n\r\n// Define the number of samples to keep track of.  The higher the number,\r\n// the more the readings will be smoothed, but the slower the output will\r\n// respond to the input.  Using a constant rather than a normal variable lets\r\n// use this value to determine the size of the readings array.\r\nconst int numReadings = 20;\r\nconst int number_of_Analogues_in_use = 4;\r\n\r\n// start of LCD pin definitions\r\n#include <LiquidCrystal.h> // load the LCD library\r\n  int LCD_RS_pin     = 7;    // was 12\r\n  int LCD_Enable_pin = 8;    // was 11\r\n  int LCD_D4_pin     = 9;    // was 5\r\n  int LCD_D5_pin     = 10;   // was 4\r\n  int LCD_D6_pin     = 11;   // was 3\r\n  int LCD_D7_pin     = 12;   // was 2\r\nLiquidCrystal lcd(LCD_RS_pin, LCD_Enable_pin, LCD_D4_pin, LCD_D5_pin, LCD_D6_pin, LCD_D7_pin);\r\n  // ---------------------------------------------------------\r\n  // start of alarm variable and startup variable definitions\r\n  // ---------------------------------------------------------\r\nint power_up_has_occurred            =  true;\r\nint No1_cht_temperature_is_high      =  false;\r\nint No2_cht_temperature_is_high      =  false;\r\nint No3_cht_temperature_is_high      =  false;\r\nint No4_cht_temperature_is_high      =  false;\r\nint first_run_flag                   =  false;\r\nint alarm_led_output                 =  13;    // engine monitoring module alarm LED is connected to this output\r\n  // ---------------------------------------------------------\r\n  // end of alarm variable and startup variable definitions\r\n  // ---------------------------------------------------------\r\nint start_of_blanking_column_number = 14;\r\nint single_digit_column_number = 17;\r\nint double_digit_column_number = 16;\r\nint triple_digit_column_number = 15;\r\n\r\nint readings_No1_cht[numReadings];\r\nint readings_No2_cht[numReadings];\r\nint readings_No3_cht[numReadings];\r\nint readings_No4_cht[numReadings];\r\n\r\nint No1_cht_index = 0;                  // the index of the current reading\r\nint No2_cht_index = 0;                  // the index of the current reading\r\nint No3_cht_index = 0;                  // the index of the current reading\r\nint No4_cht_index = 0;                  // the index of the current reading\r\n\r\nint total_No1_cht = 0;                  // the running total\r\nint total_No2_cht = 0;                  // the running total\r\nint total_No3_cht = 0;                  // the running total\r\nint total_No4_cht = 0;                  // the running total\r\n\r\nint average_No1_cht_temperature = 0;    // the average\r\nint average_No2_cht_temperature = 0;    // the average\r\nint average_No3_cht_temperature = 0;    // the average\r\nint average_No4_cht_temperature = 0;    // the average\r\n\r\nint No1_cht_temperature_sample = A0;\r\nint No2_cht_temperature_sample = A1;\r\nint No3_cht_temperature_sample = A2;\r\nint No4_cht_temperature_sample = A3;\r\n\r\nint No1_cht_temperature_to_display = 0;\r\nint No2_cht_temperature_to_display = 0;\r\nint No3_cht_temperature_to_display = 0;\r\nint No4_cht_temperature_to_display = 0;\r\n\r\nint cylinder_head_alarm_temperature = 270; // max permitted temp = 273c or 525f\r\n  // end of variable definitions\r\n  // ----------------------------------------------------\r\n  // start of variable assignments and once only events\r\nvoid setup()\r\n{\r\n  // initialize serial communication with computer:\r\n//  Serial.begin(9600);                   \r\n  \r\n                                 // start of the fixed text on the display\r\n  pinMode(alarm_led_output, OUTPUT);\r\n  lcd.begin(16,4);               // columns, rows.  use 16,4 for a 16x4 LCD, etc.\r\n  lcd.clear();                   // start with a blank screen\r\n  // write all the fixed text to the LCD\r\n  lcd.setCursor(0,0);            // set cursor to column 0, row 0 (the first row)\r\n  lcd.print(\"NO 1 HEAD TEMP\");     //\r\n  lcd.setCursor(19,0);           // set cursor to column 19, row 0 (the first row)\r\n  lcd.print(\"C\");                // \r\n\r\n  lcd.setCursor(0,1);            // set cursor to column 0, row 1  \r\n  lcd.print(\"NO 2 HEAD TEMP\");\r\n  lcd.setCursor(19,1);           // set cursor to column 19, row 1  \r\n  lcd.print(\"C\");\r\n\r\n  lcd.setCursor(0,2);            // set cursor to column 0, row 2\r\n  lcd.print(\"NO 3 HEAD TEMP\");\r\n  lcd.setCursor(19,2);           // set cursor to column 19, row 2 \r\n  lcd.print(\"C\");\r\n\r\n\r\n  lcd.setCursor(0,3);            // set cursor to column 0, row 3\r\n  lcd.print(\"NO 4 HEAD TEMP\");\r\n  lcd.setCursor(19,3);           // set cursor to column 19, row 4\r\n  lcd.print(\"C\");\r\n                                 // end of the fixed text on the display\r\n  \r\n   // initialize all the No1 EGT averages to zero: \r\n  for (int thisReadingA0 = 0; thisReadingA0 < numReadings; thisReadingA0++)\r\n    readings_No1_cht[thisReadingA0] = 0;\r\n\r\n   // initialize all the No2 EGT averages to zero:\r\n    for (int thisReadingA1 = 0; thisReadingA1 < numReadings; thisReadingA1++)\r\n    readings_No3_cht[thisReadingA1] = 0;\r\n  \r\n  // initialize all the No3 EGT averages to zero:\r\n    for (int thisReadingA2 = 0; thisReadingA2 < numReadings; thisReadingA2++)\r\n    readings_No3_cht[thisReadingA2] = 0;\r\n   // initialize all the No4 EGT averages to zero:\r\n    for (int thisReadingA3 = 0; thisReadingA3 < numReadings; thisReadingA3++)\r\n    readings_No4_cht[thisReadingA3] = 0;\r\n  // end of the initialization of all the analogue everages to zero: \r\n}\r\n  // end of variable assignments and once only events\r\n  // -------------------------------------------------\r\n  // \r\nvoid loop()\r\n{\r\n  // start of the continious update code\r\n  // start of number one cylinder head temperature averaging\r\n  // subtract the last reading taken at the end of the loop\r\n  total_No1_cht= total_No1_cht - readings_No1_cht[No1_cht_index];         \r\n  // read from the sensor:  \r\n  readings_No1_cht[No1_cht_index] = analogRead(No1_cht_temperature_sample);\r\n  // add the reading to the total:\r\n  total_No1_cht= total_No1_cht + readings_No1_cht[No1_cht_index];       \r\n  // advance to the next position in the array:  \r\n  No1_cht_index = No1_cht_index + 1;                    \r\n  // if we're at the end of the array...\r\n  if (No1_cht_index >= numReadings)              \r\n    // ...wrap around to the beginning: \r\n    No1_cht_index = 0; \r\n  // calculate the average:\r\n  average_No1_cht_temperature = total_No1_cht / numReadings;         \r\n  delay(5);        // delay in between reads for stability            \r\n  // end of the number one cylinder head temperature averaging\r\n  // --------------------------------------------\r\n  // start of number two cylinder head temperature averaging\r\n  // subtract the last reading:\r\n  total_No2_cht= total_No2_cht - readings_No2_cht[No2_cht_index];         \r\n  // read from the sensor:  \r\n  readings_No2_cht[No2_cht_index] = analogRead(No2_cht_temperature_sample); \r\n  // add the reading to the total:\r\n  total_No2_cht = total_No2_cht + readings_No2_cht[No2_cht_index];       \r\n // advance to the next position in the array:  \r\n  No2_cht_index = No2_cht_index + 1;                    \r\n  // if we're at the end of the array...\r\n  if (No2_cht_index >= numReadings)              \r\n    // ...wrap around to the beginning: \r\n    No2_cht_index = 0;                           \r\n  // calculate the average:\r\n  average_No2_cht_temperature = total_No2_cht / numReadings;\r\n  delay(5); // delay in between reads for stability     \r\n   // end of the number two cylinder head temperature averaging\r\n  // -----------------------------------------------------------\r\n  // start of number three cylinder head temperature averaging\r\n  // subtract the last reading:\r\n  total_No3_cht= total_No3_cht - readings_No3_cht[No3_cht_index];         \r\n  // read from the sensor:  \r\n  readings_No3_cht[No3_cht_index] = analogRead(No3_cht_temperature_sample);\r\n  // add the reading to the total:\r\n  total_No3_cht= total_No3_cht + readings_No3_cht[No3_cht_index];       \r\n  // advance to the next position in the array:  \r\n  No3_cht_index = No3_cht_index + 1;                    \r\n  // if we're at the end of the array...\r\n  if (No3_cht_index >= numReadings)              \r\n    // ...wrap around to the beginning: \r\n  No3_cht_index = 0;                           \r\n   // calculate the average:\r\n  average_No3_cht_temperature = total_No3_cht / numReadings;         \r\n  delay(5);        // delay in between reads for stability     \r\n   // end of the number three cylinder head temperature averaging\r\n   // ------------------------------------------------------------\r\n   // start of the number four cylinder head temperature averaging\r\n  // subtract the last reading:\r\n  total_No4_cht= total_No4_cht - readings_No4_cht[No4_cht_index];         \r\n  // read from the sensor:  \r\n  readings_No4_cht[No4_cht_index] = analogRead(No4_cht_temperature_sample); \r\n  // add the reading to the total:\r\n  total_No4_cht= total_No4_cht + readings_No4_cht[No4_cht_index];       \r\n  // advance to the next position in the array:  \r\n  No4_cht_index = No4_cht_index + 1;                    \r\n  // if we're at the end of the array...\r\n  if (No4_cht_index >= numReadings)              \r\n    // ...wrap around to the beginning: \r\n    No4_cht_index = 0;                           \r\n  // calculate the average carb inlet air temperature:\r\n  average_No4_cht_temperature = total_No4_cht / numReadings;         \r\n  delay(5);        // delay in between reads for stability     \r\n  // end of the number three cylinder head temperature averaging\r\n  // end of the four averaging routines\r\n  // --------------------------------------------------------\r\n  // start of the four analogue display routines\r\n  // --------------------------------------------------------\r\n  // start of the engine No 1 CHT display loop\r\n  // input is from a Type K thermocouple though a convertor which gives 4 to 20mA output\r\n  // input resistor on the analogue input is 250 ohms to ground\r\n  // this produces 1 to 5 volts at the analogue input representing 0 to 800 degrees centigrade\r\n  // zero and range analogue in next two lines\r\n  No1_cht_temperature_to_display = average_No1_cht_temperature;\r\n  No1_cht_temperature_to_display = map(No1_cht_temperature_to_display, 200, 1012, 0, 800);\r\n  //                   , raw zero, raw range, final zero, final range\r\n  delay(5);\r\n  if  (No1_cht_temperature_to_display < 0)\r\n  {\r\n    No1_cht_temperature_to_display = 0;\r\n  }\r\n  if (No1_cht_temperature_to_display > 800)\r\n {\r\n    No1_cht_temperature_to_display = 800;\r\n }\r\n  // --------------------------------------------------------\r\n  // start of the No1 CHT High alarm routine\r\n  // -------------------------------------------------------- \r\n  if (No1_cht_temperature_to_display > cylinder_head_alarm_temperature)\r\n  {\r\n    No1_cht_temperature_is_high = true;\r\n  }\r\n else\r\n  {\r\n     No1_cht_temperature_is_high = false;\r\n  }\r\n  //  -------------------------------------\r\n  //  End of the No1 CHT High alarm routine\r\n  //  -------------------------------------\r\n  if (No1_cht_temperature_to_display < 10)\r\n  {\r\n  // do the following if integer average_No1_cht_temperature is less than 10\r\n    lcd.setCursor(start_of_blanking_column_number,0); // set cursor to column 16, row 0 (the first row)\r\n    lcd.print(\"     \");                               // and overprint the leading zero\r\n    lcd.setCursor(single_digit_column_number,0);                                  // set cursor to column 15, row 0 (the first row)\r\n    lcd.print(No1_cht_temperature_to_display);                   // and print single digit value at tab(15).\r\n  }\r\n   // End of if routine for No 1 CHT in range 0 to 9 Celcius\r\n  if (No1_cht_temperature_to_display > 9 && No1_cht_temperature_to_display < 100)\r\n  {\r\n    lcd.setCursor(start_of_blanking_column_number,0);\r\n    lcd.print(\"     \");\r\n    lcd.setCursor(double_digit_column_number,0);          // set cursor to column 15, row 0 (the first row)\r\n    lcd.print(No1_cht_temperature_to_display);            // and print double digit text at tab(15+16).\r\n  }\r\n  // End of if routine for No 1 CHT in range 10 to 99 Celcius\r\n  // if test for No 1 CHT > 99\r\n   if (No1_cht_temperature_to_display > 99)\r\n  {\r\n    // do the following if integer average_No1_cht_temperature is greater than 99 i.e. a 3 digit number\r\n    lcd.setCursor(start_of_blanking_column_number,0);     // set cursor to column 16, row 0 (the first row)\r\n    lcd.print(\"     \");                                   // and overprint the leading zero\r\n    lcd.setCursor(triple_digit_column_number,0);          // set cursor to column 15, row 0 (the first row)\r\n    lcd.print(No1_cht_temperature_to_display);            // and print single digit value at tab(15).\r\n  }\r\n  // End of if routine for CHT in range greater than 800 C, it should not get above if calibration OK\r\n  // end of the engine No 1 CHT display loop\r\n  // -------------------------------------------\r\n  // start of the engine No 2 CHT display loop\r\n  // input is from a Type K thermocouple though a convertor which gives 4 to 20mA output\r\n  // input resistor on the analogue input is 250 ohms to ground\r\n  // this produces 1 to 5 volts at the analogue input representing 0 to 800 degrees centigrade\r\n  No2_cht_temperature_to_display = average_No2_cht_temperature;\r\n  No2_cht_temperature_to_display = map(No2_cht_temperature_to_display, 200, 1013, 0, 800);\r\n  //                                        , raw zero, raw range, final zero, final range  \r\n    if  (No2_cht_temperature_to_display < 0)\r\n  {\r\n    No2_cht_temperature_to_display = 0;\r\n  }\r\n  if (No2_cht_temperature_to_display > 800)\r\n  {\r\n      No2_cht_temperature_to_display = 800;\r\n  }\r\n  // end of No 2 CHT condioning loop. No 2 CHT will now be in the range 0 to 800c\r\n  // --------------------------------------------------------\r\n  // start of the No2 CHT temperature is high alarm routine\r\n  // -------------------------------------------------------- \r\n  if (No2_cht_temperature_to_display > cylinder_head_alarm_temperature)\r\n  {\r\n    No2_cht_temperature_is_high = true;\r\n  }\r\n else\r\n  {\r\n     No2_cht_temperature_is_high = false;\r\n  }\r\n  // --------------------------------------------------------\r\n  // end of the No2 CHT temperature is high alarm routine\r\n  // --------------------------------------------------------   \r\n  if (No2_cht_temperature_to_display < 10)\r\n  {\r\n // do the following if integer No1_cht_temperature is less than 10\r\n  lcd.setCursor(start_of_blanking_column_number,1);\r\n  lcd.print(\"     \");\r\n  lcd.setCursor(single_digit_column_number,1);\r\n  lcd.print(No2_cht_temperature_to_display);\r\n  }\r\n  if  (No2_cht_temperature_to_display > 9 && No2_cht_temperature_to_display < 100)\r\n  {\r\n  lcd.setCursor(start_of_blanking_column_number,1);\r\n  lcd.print(\"     \");\r\n  lcd.setCursor(double_digit_column_number,1);\r\n  lcd.print(No2_cht_temperature_to_display);\r\n  }\r\n  if (No2_cht_temperature_to_display > 99)\r\n  {\r\n  // do the following if integer average_No2_cht_temperature is 100 or higher\r\n  lcd.setCursor(start_of_blanking_column_number,1);\r\n  lcd.print(\"     \");\r\n  lcd.setCursor(triple_digit_column_number,1);\r\n  lcd.print(No2_cht_temperature_to_display);\r\n  }\r\n  // End of No2 CHT\r\n  //----------------------------------------------------------\r\n  // start of No3 CHT display code\r\n  // zero and range are set to 0 to 800 from 1 volt to 5 volts\r\n  // in the map function below\r\n  No3_cht_temperature_to_display = average_No3_cht_temperature;\r\n  No3_cht_temperature_to_display = map(No3_cht_temperature_to_display, 199, 1012, 0, 800);\r\n//                                          , raw zero, raw range, final zero, final range\r\n  if  (No3_cht_temperature_to_display < 0)\r\n  {\r\n       No3_cht_temperature_to_display = 0; // as range is 0 to 800 cut off values below 4mA i.e. loop open circuit\r\n  }\r\n  if (No3_cht_temperature_to_display > 800)\r\n  {\r\n      No3_cht_temperature_to_display = 800;\r\n  }\r\n  // --------------------------------------------------------------\r\n  // start of the No3 CHT temperature is high alarm routine\r\n  // -------------------------------------------------------------- \r\n  if (No3_cht_temperature_to_display > cylinder_head_alarm_temperature)\r\n  {\r\n    No3_cht_temperature_is_high = true;\r\n  }\r\n else\r\n  {\r\n     No3_cht_temperature_is_high = false;\r\n  }\r\n  // -------------------------------------------------------------\r\n  // end of the No3 CHT temperature is high alarm routine\r\n  // -------------------------------------------------------------\r\n  // start of the display routines\r\n  if (No3_cht_temperature_to_display < 10)\r\n  // temperature in the range 0c to 9c\r\n  {\r\n  lcd.setCursor(start_of_blanking_column_number,2);\r\n  lcd.print(\"     \");\r\n  lcd.setCursor(single_digit_column_number,2);\r\n  lcd.print(No3_cht_temperature_to_display);\r\n  }\r\n  //----------------------------------------------  \r\n   if (No3_cht_temperature_to_display > 9 && No3_cht_temperature_to_display < 100)\r\n   // temperature in the range 10c to 99c\r\n  {\r\n    lcd.setCursor(start_of_blanking_column_number,2);\r\n    lcd.print(\"     \");\r\n    lcd.setCursor(double_digit_column_number,2);\r\n    lcd.print(No3_cht_temperature_to_display);\r\n  }\r\n  //----------------------------------------------\r\n   if (No3_cht_temperature_to_display >99)\r\n   // temperature in the range 100c to 800c\r\n  {\r\n    lcd.setCursor(start_of_blanking_column_number,2);\r\n    lcd.print(\"     \");\r\n    lcd.setCursor(triple_digit_column_number,2);\r\n    lcd.print(No3_cht_temperature_to_display);\r\n  }\r\n  //----------------------------------------------\r\n  // end of No3 CHT display code\r\n  // ------------------------------------------------------\r\n  // start of of No4 CHT display code\r\n  // zero and range are set to 0 to +800 from 1 volt to 5 volts\r\n  // in the map function below\r\n  No4_cht_temperature_to_display = average_No4_cht_temperature;\r\n  No4_cht_temperature_to_display = map(No4_cht_temperature_to_display, 199, 1013, 0, 800);\r\n  //                                        , raw aero, raw range, final zero, final range \r\n   if  (No4_cht_temperature_to_display < 0)\r\n  {\r\n           No4_cht_temperature_to_display = 0;\r\n  }\r\n   if  (No4_cht_temperature_to_display > 800)\r\n  {\r\n           No4_cht_temperature_to_display = 800;\r\n  }\r\n    // --------------------------------------------------------------\r\n  // start of the No4 CHT temperature is high alarm routine\r\n  // -------------------------------------------------------------- \r\n  if (No4_cht_temperature_to_display > cylinder_head_alarm_temperature)\r\n  {\r\n    No4_cht_temperature_is_high = true;\r\n  }\r\n else\r\n  {\r\n     No4_cht_temperature_is_high = false;\r\n  }\r\n  // -------------------------------------------------------------\r\n  // end of the No4 CHT temperature is high alarm routine\r\n  // -------------------------------------------------------------\r\n//  start of the display routines\r\n  if (No4_cht_temperature_to_display < 10)\r\n  // temperature in the range 0c to 9c\r\n  {\r\n  lcd.setCursor(start_of_blanking_column_number,3);\r\n  lcd.print(\"     \");\r\n  lcd.setCursor(single_digit_column_number,3);       // set cursor to column 14, row 0 (the first row)\r\n  lcd.print(No4_cht_temperature_to_display);         // change this text to whatever you like. keep it clean.\r\n  }\r\n  //----------------------------------------------  \r\n   if (No4_cht_temperature_to_display > 9 && No3_cht_temperature_to_display < 100)\r\n   // temperature in the range 10c to 99c\r\n  {\r\n    lcd.setCursor(start_of_blanking_column_number,3);\r\n    lcd.print(\"     \");\r\n    lcd.setCursor(double_digit_column_number,3);      // set cursor to column 14, row 0 (the first row)\r\n    lcd.print(No4_cht_temperature_to_display);        // change this text to whatever you like. keep it clean.\r\n  }\r\n  //----------------------------------------------\r\n   if (No4_cht_temperature_to_display >99)\r\n   // temperature in the range 100c to 800c\r\n  {\r\n    lcd.setCursor(start_of_blanking_column_number,3);\r\n    lcd.print(\"     \");\r\n    lcd.setCursor(triple_digit_column_number,3);      // set cursor to column 14, row 0 (the first row)\r\n    lcd.print(No4_cht_temperature_to_display);        // change this text to whatever you like. keep it clean.\r\n  }\r\n  //------------------------------------------------\r\n  // end of No4 CHT display code\r\n  // -----------------------------------------------\r\n  // --------------------------------------------------------------\r\n  // start of alarm combining routine\r\n  // -------------------------------------------------------------- \r\nif (No1_cht_temperature_is_high || No2_cht_temperature_is_high || No3_cht_temperature_is_high || No4_cht_temperature_is_high)\r\n{\r\n    digitalWrite(alarm_led_output, HIGH);\r\n    delay(100);\r\n    digitalWrite(alarm_led_output, LOW);\r\n    delay(100);\r\n}\r\nelse\r\n{\r\n    digitalWrite(alarm_led_output, LOW);\r\n}\r\n  // -------------------------------------------------------------\r\n  // end of alarm combining routine\r\n  // -------------------------------------------------------------  \r\n  \r\n  }\r\n// curlywig on line above is the closing bracket for\r\n// the end of main loop which scannes and writes out the data\r\n//----------------------------------------------------------\r\n```"}}