Index: trunk/MultiChannelUSB/Paella.v
===================================================================
--- trunk/MultiChannelUSB/Paella.v	(revision 49)
+++ trunk/MultiChannelUSB/Paella.v	(revision 50)
@@ -197,4 +197,5 @@
 				.uwt_flag(uwt_flag[i]),
 				.uwt_data(uwt_data[i]),
+				.threshold(12'd5),
 				.peak_ready(ana_peak_ready[i]),
 				.peak(ana_peak[i]));
Index: trunk/MultiChannelUSB/analyser.v
===================================================================
--- trunk/MultiChannelUSB/analyser.v	(revision 49)
+++ trunk/MultiChannelUSB/analyser.v	(revision 50)
@@ -5,4 +5,5 @@
 		input	wire	[1:0]	uwt_flag,
 		input	wire	[11:0]	uwt_data,
+		input	wire	[11:0]	threshold,
 		output	wire			peak_ready,
 		output	wire	[11:0]	peak
@@ -58,9 +59,11 @@
 		state_next = state_reg;
 		counter_next = counter_reg;
-		peak_ready_next = 1'b0;
-		peak_next = 12'd0;
+		peak_ready_next = peak_ready_reg;
+		peak_next = peak_reg;
 		case (state_reg)
 			0: // skip first 16 samples
 			begin
+				peak_next = 12'd0;
+				peak_ready_next = 1'b0;
 				if (data_ready)
 				begin
@@ -89,11 +92,17 @@
 				if (data_ready & uwt_flag[0])
 				begin
-					peak_next = uwt_data - baseline;
-					peak_ready_next = 1'b1;
+					peak_next = (uwt_data > baseline) ? (uwt_data - baseline) : 12'd0;
+					peak_ready_next = (peak_next > threshold);
                 end
+                else
+                begin
+					peak_ready_next = 1'b0;
+				end
 			end
 
 			default:
 			begin
+				peak_next = 12'd0;
+				peak_ready_next = 1'b0;
 				state_next = 2'd0;
 			end
