         0.09354893,  0.09836316,  0.1       ,  0.09836316,  0.09354893,
         0.08583937,  0.07568267,  0.06366198,  0.05045512,  0.0367883 };
   filt_2nd_stage.setFilterCoeffs(fir_coeffs);
+  tprofile.reset(); // Start the temperature profile
 }
 
 void loop() {

#include <Thread.h>
#include <ThreadController.h>
#include <FIR.h>

Plotter plotter; // for plotting over serial


 */
FIR<double, 15> filt_2nd_stage;

/* The following values define the temperature profile. It consits of
 * timestamps and temperatures at those timestamps. Between the
 * timestamps, the temperature is interpolated linearly.
 */
const unsigned int tprofile_n = 5;
const unsigned long tprofile_times[] = {30, 180, 220, 260, 300};
const float tprofile_temps[] =         {80, 200, 235, 235,   0};
reflow_profile tprofile(tprofile_n, tprofile_times, tprofile_temps);


void plot_callback(void) {
  // plotting thread
  plotter.Plot();
