   lcd.print(Version);
   lcd.setCursor(0, 1);
   lcd.print(Callsign);
-  delay(1000);    // wait a bit
+  delay(900);    // wait a bit
 
   // do a fade out
   for (int i = LcdBrightness; i; --i)

  {
    put_slot(i, zero_freq, zero_offset);
  }
}
#endif

//----------------------------------------
// The standard Arduino setup() function.
//----------------------------------------

void setup(void)
{
  // initialize the serial console
  Serial.begin(115200);

  // initialize the display
  lcd.begin(NUM_COLS, NUM_ROWS);      // define display size
  lcd.clear();
  lcd.noCursor();

  // set brightness/contrast pin state
  pinMode(mc_Brightness, OUTPUT);
  pinMode(mc_Contrast, OUTPUT);

  // get state back from EEPROM, set display brightness/contrast
  restore_from_eeprom();
  analogWrite(mc_Brightness, LcdBrightness);
  analogWrite(mc_Contrast, LcdContrast);

  // create underlined space for frequency display
  lcd.createChar(SPACE_CHAR, sel_digits[SPACE_INDEX]);

  // set up the DDS device
  dds_setup();

  // set up the rotary encoder, reset a few things if RE button down
  if (re_setup())
  {
    LcdBrightness = DefaultLcdBrightness;
    analogWrite(mc_Brightness, LcdBrightness);
    LcdContrast = DefaultLcdContrast;
    analogWrite(mc_Contrast, LcdContrast);
    ReHoldClickTime = DefaultHoldClickTime;    

    Serial.printf(F("Resetting brightness to %d, contrast to %d and hold time to %d\n"),
                  LcdBrightness, LcdContrast, ReHoldClickTime);
  }
  
  // we sometimes see random events on powerup, flush them here
  event_flush();

  // show program name and version number
  banner();

  // we sometimes see random events on powerup, flush them here
  event_flush();
  
#ifdef VFO_DEBUG
  // dump EEPROM values
  dump_eeprom();
#endif

  // get going
  show_main_screen();
}

//----------------------------------------
//----------------------------------------

void show_main_screen(void)
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Freq:");
  display_sel_value(VfoFrequency, VfoSelectDigit, MAX_FREQ_CHARS, NUM_COLS - MAX_FREQ_CHARS - 2, 0);
  lcd.print("Hz");
}

//----------------------------------------
// Define the menu handler routines.
//----------------------------------------

void show_slot_frequency(int slot_num)
{
  Frequency freq;         // put data from slot X here
  SelOffset offset;       // put data from slot X here

  get_slot(slot_num, freq, offset);
  lcd.setCursor(0, 1);
  lcd.print(BlankRow);
  if (VfoFrequency == freq)
  {
    lcd.setCursor(0, 1);
    lcd.write(IN_USE_CHAR);
  }
  lcd.setCursor(4, 1);
  lcd.write(slot_num + '0');
  lcd.print(":");
  display_sel_value(freq, -1, MAX_FREQ_CHARS, NUM_COLS - MAX_FREQ_CHARS - 2, 1);
  lcd.print("Hz");
}

//----------------------------------------
// save the current frequency to a slot.
//   menu      address of 'calling' menu
//   item_num  index of MenuItem we were actioned from
//----------------------------------------

void saveslot_action(struct Menu *menu, int item_num)
{
  int slot_num = 0;       // the slot we are viewing/saving

  // get rid of any stray events to this point
  event_flush();

  // draw row 0 of menu
  lcd.clear();
  lcd.print(menu->items[item_num]->title);
  
  // show row slot info on row 1
  show_slot_frequency(slot_num);

  // handle events in our own little event loop
  while (true)


  Serial.printf(F("=================================================\n"));
}

////////////////////////////////////////////////////////////////////////////////
// Code to handle the DDS-60
