 
 // Create an initializer that can initialize all the GPIO pins in one shot
 typedef GpioInitializer<
+#if defined(FACTORY_RESET_GPIO_PIN)
+    FACTORY_RESET_Pin,                      // factory reset
+#endif // FACTORY_RESET_GPIO_PIN
     IO0_Pin,  IO1_Pin,  IO2_Pin,  IO3_Pin,  // outputs 0-3
     IO4_Pin,  IO5_Pin,  IO6_Pin,  IO7_Pin,  // outputs 4-7
     IO8_Pin,  IO9_Pin,  IO10_Pin, IO11_Pin, // inputs 0-3

// uncomment the line below to have all packets printed to the Serial
// output. This is not recommended for production deployment.
//#define PRINT_PACKETS

#include "config.h"


GPIO_PIN(IO13, GpioInputPU, 39);
GPIO_PIN(IO14, GpioInputPU, 25);
GPIO_PIN(IO15, GpioInputPU, 26);

#if defined(FACTORY_RESET_GPIO_PIN)
GPIO_PIN(FACTORY_RESET, GpioInputPU, FACTORY_RESET_GPIO_PIN);
#endif // FACTORY_RESET_GPIO_PIN

openlcb::ConfiguredProducer IO8_producer(
    openmrn.stack()->node(), cfg.seg().producers().entry<0>(), IO8_Pin());
