   scheduled.set(sked.enabled());                    //Autorun scheduler enabled?
   delay(5L);                                        //Ensure the LEDs flash for a few ms
 
-  //Press *both* b1 and b2 for diagnostic information
+  //Press *both* buttons b1 and b2 for diagnostic information
   if (b1.isPressed()&&b2.isPressed()) {
     if (nTimesLoopInvoked>0) {DPRINT(String("Avg loop time = "+String(totalLoopTime/nTimesLoopInvoked)+" ms"));}
+    DPRINT(String("State="+state));
   }
   
   //Composter state determines what to do with incoming events



/******************************************************************************************************************
 * ComposterSketch Arduino sketch, the main program, for the Composter Controller
 * 
 * Control Panel Functionality
 *  Button1 press:    Rotate drum clockwise (CW) until released

static long  totalLoopTime;                          //milliseconds in loop()
static long  nTimesLoopInvoked;                      //Counts invocations of loop()

//------------------------------------------------------------------------------------------------------
//  The arduino kernel invokes setup() to initialize the composter controller
//------------------------------------------------------------------------------------------------------
void setup() {

  //Initialize some variables that are used during development to determine the average time spent
  //in each pass through the controller's loop() code
  totalLoopTime=0L;
  nTimesLoopInvoked=0L;

  //Initial machine state following arduino reset
  state=IDL;                              //Initial state is IDL

  //Try upto 3 times to detect a USB-connected host to our arduino 32U4 CPU.  After
  //each failing attempt to detect SerialUSB ready, we beep and blink all the LEDs
  Serial.begin(57600);
  for(int i=1;(i<=3)&&(!SerialUSB);i++) {
    audio.doBeep(FREQG);
