     args = args->next;
   }
 
-  output_numeric = scpi_parse_numeric(args->value, args->length, 0, 0, 25e6);
+  output_numeric = scpi_parse_numeric(args->value, args->length, 1e3, 0, 25e6);
   if(output_numeric.length == 0 ||
     (output_numeric.length == 2 && output_numeric.unit[0] == 'H' && output_numeric.unit[1] == 'Z'))
   {
     dds.setFrequencyHz(0, (unsigned long)constrain(output_numeric.value, 0, 25e6));
+    frequency = (unsigned long)constrain(output_numeric.value, 0, 25e6);
   }
   else
   {

  source = scpi_register_command(ctx.command_tree, SCPI_CL_CHILD, "SOURCE", 6, "SOUR", 4, NULL);
  scpi_register_command(source, SCPI_CL_CHILD, "FREQUENCY", 9, "FREQ", 4, set_frequency);
  scpi_register_command(source, SCPI_CL_CHILD, "FREQUENCY?", 10, "FREQ?", 5, get_frequency);

  Serial.begin(9600);
  dds.begin();

  char line_buffer[256];
  unsigned char read_length;
  
  dds.setFrequencyHz(0, 1000);
  
  dds.selectFrequencyRegister(0);
  
  dds.enable();
