     v_end = atof(arg);
     if (v_end < V_MIN || v_end > V_MAX)
     {
-      Serial.print("### Error: VSWEEP_END must have (");
+      Serial.print(F("### Error: VSWEEP_END must have ("));
       Serial.print(V_MIN,3);
-      Serial.print(" <= v_end <= ");
+      Serial.print(F(" <= v_end <= "));
       Serial.print(V_MAX,3);
-      Serial.print(") ###\n");
+      Serial.print(F(") ###\n"));
       return;
     }
     _sweep_v_end = v_end;
   }
   else
   {
-    Serial.println("### Error: VSWEEP_END - requires 1 argument (float v_end) ###");
+    Serial.println(F("### Error: VSWEEP_END - requires 1 argument (float v_end) ###"));
   }
 }
 

  if (arg != NULL)
  {
    samp_rate = atof(arg);
    if (samp_rate < V_MIN || samp_rate > V_MAX)
    {
      Serial.print("### Error: VSWEEP_SAMPLE must have (");
      Serial.print(SAMPRATE_MIN,3);
      Serial.print(" <= samp_rate <= ");
      Serial.print(SAMPRATE_MAX,3);
      Serial.print(") ###\n");
      return;
    }
    _sweep_samp_rate = samp_rate;
  }
  else
  {
    Serial.println("### Error: VSWEEP_SAMPLE - requires 1 argument (float samp_rate) ###");
  }
}


  //configure the offset to the centerline
  offset_DIGPOT.begin();
  offset_DIGPOT.writeVolatileWiper0(DIGPOT_N_INIT);
  //start the current range MUX
  currsense_MUX.begin();
  //start controlling the voltage supply
  control_DAC.begin(V_INIT);
  //start controlling the sampling
  sense_ADC.begin();
  Serial.print(F("# OLM Potentiostat v0.1\n"));
  Serial.print(F("# memory_free = "));
  Serial.print(memoryFree());
  Serial.print(F("\n"));
  Serial.print(F("#</INIT>\n"));
}

void loop(){
