   }
 }
 
+void additional_loop() {
+#ifdef ENABLE_PUSH_BUTTON
+  //Use a push button to override a particular output
+  static byte prev_value = HIGH;
+  if (get_button_value() != prev_value) {
+    prev_value = get_button_value();
+    DEBUG1_VALUELN("Push button to ", prev_value);
+    if (prev_value == LOW) {
+      uint32_t value = (prev_value == LOW ? pixel_color(255,255,255) : 0);
+      hmtl_program_timed_change_fmt(rs485.send_buffer,  rs485.send_data_size,
+                             config.address, (byte)3,
+                             500, value,
+                             0);
+      handler.process_msg((msg_hdr_t *)rs485.send_buffer, &rs485, NULL, &config);
+
+    }
+  }
+#endif
+}
 
 /*******************************************************************************
  * Program handler for processing incoming sensor data

   */
  boolean update = handler.check(&config);

  /* Execute any active programs */
  if (manager.run()) {
    update = true;

                                     outputs, objects, HMTL_MAX_OUTPUTS,
                                     &rs485, 
                                     &xbee,
                                     &pixels,
                                     NULL, // MPR121
                                     NULL, // RGB
                                     NULL, // Value
