diff --git a/MAC/APL/PAC/BeamServer/src/BeamServer.cc b/MAC/APL/PAC/BeamServer/src/BeamServer.cc
index aad6982a45bf66f0669429294e4bd082fbc961e0..aa0b6159f4ea01e2c956cb0f1f67584635851050 100644
--- a/MAC/APL/PAC/BeamServer/src/BeamServer.cc
+++ b/MAC/APL/PAC/BeamServer/src/BeamServer.cc
@@ -930,7 +930,7 @@ void BeamServer::send_HBAdelays(Timestamp	time)
 	// We must loop over all beams, unfortunately we don't have such a list
 	// because only the beam-factory has access to all beams. So we must
 	// implement the sending of the HBA delays in the beamfactory!
-	LOG_INFO_STR("sending hba delays for interval " << time << " : " << time + (long)(itsComputeInterval-1));
+//	LOG_INFO_STR("sending hba delays for interval " << time << " : " << time + (long)(itsComputeInterval-1));
 	m_beams.sendHBAdelays(time, m_rspdriver);
 }
 
@@ -956,7 +956,6 @@ void BeamServer::compute_weights(Timestamp time)
 //
 void BeamServer::send_weights(Timestamp time)
 {
-	//	LOG_DEBUG_STR("weights_uint16=" << m_weights16);
 	if (!itsSetWeightsEnabled) {
 		return;
 	}
@@ -975,6 +974,14 @@ void BeamServer::send_weights(Timestamp time)
 	sw.weights() = m_weights16;
   
 	LOG_INFO_STR("sending weights for interval " << time << " : " << time + (long)(itsComputeInterval-1));
+
+//  for debugging purposes print 40 subbans of 10 antennas for 1 timestamp.
+//	blitz::Array<std::complex<int16>, 2>	sample;
+//	sample.resize (10, 40);		// first 10 antennas and first 40 subbands
+//	sample = complex<int16_t>(0,0);
+//	sample = m_weights16(0, Range(64,74), Range(0,40));
+//	LOG_DEBUG_STR("weights sample=" << sample);
+
 	m_rspdriver.send(sw);
 }
 
diff --git a/MAC/APL/PAC/BeamServer/src/Beams.cc b/MAC/APL/PAC/BeamServer/src/Beams.cc
index ba10d8373d22b0ce39f46c035aab131c02ee6e79..233982508337c82db8eb4f2fbbdae98205cc5d71 100644
--- a/MAC/APL/PAC/BeamServer/src/Beams.cc
+++ b/MAC/APL/PAC/BeamServer/src/Beams.cc
@@ -245,7 +245,7 @@ void Beams::sendHBAdelays(RTC::Timestamp				time,
 		request.settings().resize(request.rcumask.count(), MEPHeader::N_HBA_DELAYS);
 		request.settings() = bi->first->getHBAdelays();
 
-		LOG_INFO_STR("sending delays for beam " << bi->first->getName());
+		LOG_INFO_STR("sending HBAdelays for beam " << bi->first->getName());
 		port.send(request);
 	}
 }
diff --git a/MAC/APL/PIC/RSPDriver/src/BWWrite.cc b/MAC/APL/PIC/RSPDriver/src/BWWrite.cc
index 57d3b8e3a6fb8b32e435f8e3a69e827c74dcbb98..f2a673a94abf548a4d69e17d6d46fd3023282ed0 100644
--- a/MAC/APL/PIC/RSPDriver/src/BWWrite.cc
+++ b/MAC/APL/PIC/RSPDriver/src/BWWrite.cc
@@ -22,6 +22,7 @@
 
 #include <lofar_config.h>
 #include <Common/LofarLogger.h>
+#include <Common/hexdump.h>
 
 #include <APL/RSP_Protocol/EPA_Protocol.ph>
 #include <APL/RSP_Protocol/RSP_Protocol.ph>
@@ -56,176 +57,173 @@ BWWrite::~BWWrite()
 
 void BWWrite::sendrequest()
 {
-  uint8 global_blp = (getBoardId() * StationSettings::instance()->nrBlpsPerBoard()) + m_blp;
-
-  // no conditional, update every second
-
-  // reset m_offset and m_remaining for each register
-  if (0 == getCurrentIndex()) {
-    m_offset = MEPHeader::N_LOCAL_XLETS * MEPHeader::WEIGHT_SIZE;
-    m_remaining = MEPHeader::BF_XROUT_SIZE - m_offset; // representative for XR, XI, YR, YI size
-  }
-
-  if (m_regid < MEPHeader::BF_XROUT || m_regid > MEPHeader::BF_YIOUT)
-  {
-    LOG_FATAL("invalid regid");
-    exit(EXIT_FAILURE);
-  }
-
-  LOG_DEBUG(formatString(">>>> BWWrite(%s) global_blp=%d, blp=%d, regid=%d, m_offset=%d, m_remaining=%d",
-			 getBoardPort().getName().c_str(),
-			 global_blp, m_blp, m_regid, m_offset, m_remaining));
-  
-  // send next BF configure message
-  EPABfCoefsWriteEvent bfcoefs;
-
-  size_t size = (MEPHeader::N_BEAMLETS * MEPHeader::WEIGHT_SIZE) / MEPHeader::BF_N_FRAGMENTS;
-  LOG_DEBUG_STR("size=" << size);
-
-  // this code is only guaranteed to work under the following conditions
-  ASSERT(size < MEPHeader::FRAGMENT_SIZE);
-
-  switch (m_regid)
-  {
-    case MEPHeader::BF_XROUT:
-      bfcoefs.hdr.set(MEPHeader::BF_XROUT_HDR, 1 << m_blp,
-		      MEPHeader::WRITE, size, m_offset);
-      break;
-    case MEPHeader::BF_XIOUT:
-      bfcoefs.hdr.set(MEPHeader::BF_XIOUT_HDR, 1 << m_blp,
-		      MEPHeader::WRITE, size, m_offset);
-      break;
-    case MEPHeader::BF_YROUT:
-      bfcoefs.hdr.set(MEPHeader::BF_YROUT_HDR, 1 << m_blp,
-		      MEPHeader::WRITE, size, m_offset);
-      break;
-    case MEPHeader::BF_YIOUT:
-      bfcoefs.hdr.set(MEPHeader::BF_YIOUT_HDR, 1 << m_blp,
-		      MEPHeader::WRITE, size, m_offset);
-      break;
-  }
-
-  // create blitz view om the weights in the bfcoefs message to be sent to the RSP hardware
-  int nbeamlets_per_fragment = MEPHeader::N_BEAMLETS / MEPHeader::BF_N_FRAGMENTS;
-  Array<complex<int16>, 2> weights(nbeamlets_per_fragment, MEPHeader::N_POL);
-  bfcoefs.coef.setBuffer(weights.data(), weights.size() * sizeof(complex<uint16>));
+	uint8 global_blp = (getBoardId() * StationSettings::instance()->nrBlpsPerBoard()) + m_blp;
+
+	// no conditional, update every second
+
+	// reset m_offset and m_remaining for each register
+	if (0 == getCurrentIndex()) {
+		m_offset = MEPHeader::N_LOCAL_XLETS * MEPHeader::WEIGHT_SIZE;
+		m_remaining = MEPHeader::BF_XROUT_SIZE - m_offset; // representative for XR, XI, YR, YI size
+	}
+
+	if (m_regid < MEPHeader::BF_XROUT || m_regid > MEPHeader::BF_YIOUT) {
+		LOG_FATAL("invalid regid");
+		exit(EXIT_FAILURE);
+	}
+
+	LOG_DEBUG(formatString(">>>> BWWrite(%s) global_blp=%d, blp=%d, regid=%d, m_offset=%d, m_remaining=%d",
+					getBoardPort().getName().c_str(), global_blp, m_blp, m_regid, m_offset, m_remaining));
+
+	// send next BF configure message
+	EPABfCoefsWriteEvent bfcoefs;
+
+	size_t size = (MEPHeader::N_BEAMLETS * MEPHeader::WEIGHT_SIZE) / MEPHeader::BF_N_FRAGMENTS;
+	LOG_DEBUG_STR("size=" << size);
+
+	// this code is only guaranteed to work under the following conditions
+	ASSERT(size < MEPHeader::FRAGMENT_SIZE);
+
+	switch (m_regid) {
+	case MEPHeader::BF_XROUT:
+		bfcoefs.hdr.set(MEPHeader::BF_XROUT_HDR, 1 << m_blp, MEPHeader::WRITE, size, m_offset);
+		break;
+	case MEPHeader::BF_XIOUT:
+		bfcoefs.hdr.set(MEPHeader::BF_XIOUT_HDR, 1 << m_blp, MEPHeader::WRITE, size, m_offset);
+		break;
+	case MEPHeader::BF_YROUT:
+		bfcoefs.hdr.set(MEPHeader::BF_YROUT_HDR, 1 << m_blp, MEPHeader::WRITE, size, m_offset);
+		break;
+	case MEPHeader::BF_YIOUT:
+		bfcoefs.hdr.set(MEPHeader::BF_YIOUT_HDR, 1 << m_blp, MEPHeader::WRITE, size, m_offset);
+		break;
+	}
+
+	// create blitz view om the weights in the bfcoefs message to be sent to the RSP hardware
+	int nbeamlets_per_fragment = MEPHeader::N_BEAMLETS / MEPHeader::BF_N_FRAGMENTS;
+	Array<complex<int16>, 2> weights(nbeamlets_per_fragment, MEPHeader::N_POL);
+	bfcoefs.coef.setBuffer(weights.data(), weights.size() * sizeof(complex<uint16>));
 
 #if 0
-  Array<int, 2> index(MEPHeader::N_BEAMLETS, MEPHeader::N_POL);
-  Array<int, 2> mapped_index(nbeamlets_per_fragment, MEPHeader::N_POL);
-
-  for (int beamlet = 0; beamlet < MEPHeader::N_BEAMLETS; beamlet++) {
-    for (int pol = 0; pol < MEPHeader::N_POL; pol++) {
-      index(beamlet, pol) = beamlet * MEPHeader::N_POL + pol;
-    }
-  }
-  mapped_index = 0;
+	Array<int, 2> index(MEPHeader::N_BEAMLETS, MEPHeader::N_POL);
+	Array<int, 2> mapped_index(nbeamlets_per_fragment, MEPHeader::N_POL);
+
+	for (int beamlet = 0; beamlet < MEPHeader::N_BEAMLETS; beamlet++) {
+		for (int pol = 0; pol < MEPHeader::N_POL; pol++) {
+			index(beamlet, pol) = beamlet * MEPHeader::N_POL + pol;
+		}
+	}
+	mapped_index = 0;
 #endif
 
-  LOG_DEBUG_STR("weights shape=" << weights.shape());
+	LOG_DEBUG_STR("weights shape=" << weights.shape());
+
+	ASSERT(MEPHeader::N_BEAMLETS % MEPHeader::BF_N_FRAGMENTS == 0);
+	for (int lane = 0; lane < MEPHeader::N_SERDES_LANES; lane++) {
 
-  ASSERT(MEPHeader::N_BEAMLETS % MEPHeader::BF_N_FRAGMENTS == 0);
-  for (int lane = 0; lane < MEPHeader::N_SERDES_LANES; lane++) {
+		int hw_offset = lane;
+		int cache_offset = lane * (MEPHeader::N_BEAMLETS / MEPHeader::N_SERDES_LANES) + (getCurrentIndex() * nbeamlets_per_fragment / MEPHeader::N_SERDES_LANES);
 
-    int hw_offset = lane;
-    int cache_offset = lane * (MEPHeader::N_BEAMLETS / MEPHeader::N_SERDES_LANES) + (getCurrentIndex() * nbeamlets_per_fragment / MEPHeader::N_SERDES_LANES);
+		Range hw_range(hw_offset, hw_offset + nbeamlets_per_fragment - MEPHeader::N_BLPS, MEPHeader::N_BLPS);
+		Range cache_range(cache_offset, cache_offset + (nbeamlets_per_fragment / MEPHeader::N_SERDES_LANES) - 1, 1);
 
-    Range hw_range(hw_offset, hw_offset + nbeamlets_per_fragment - MEPHeader::N_BLPS, MEPHeader::N_BLPS);
-    Range cache_range(cache_offset, cache_offset + (nbeamlets_per_fragment / MEPHeader::N_SERDES_LANES) - 1, 1);
-    
-    LOG_DEBUG_STR("lane=" << lane);
-    LOG_DEBUG_STR("hw_range=" << hw_range);
-    LOG_DEBUG_STR("cache_range=" << cache_range);
+		LOG_DEBUG_STR("lane=" << lane);
+		LOG_DEBUG_STR("hw_range=" << hw_range);
+		LOG_DEBUG_STR("cache_range=" << cache_range);
 
-    // X
-    weights(hw_range, 0) = Cache::getInstance().getBack().getBeamletWeights()()(0, global_blp * 2, cache_range);
+		// X
+		weights(hw_range, 0) = Cache::getInstance().getBack().getBeamletWeights()()(0, global_blp * 2, cache_range);
 
-    // Y
-    weights(hw_range, 1) = Cache::getInstance().getBack().getBeamletWeights()()(0, global_blp * 2 + 1, cache_range);
+		// Y
+		weights(hw_range, 1) = Cache::getInstance().getBack().getBeamletWeights()()(0, global_blp * 2 + 1, cache_range);
 
 #if 0
-    mapped_index(hw_range, 0) = index(cache_range, 0);
-    mapped_index(hw_range, 1) = index(cache_range, 1);
+			mapped_index(hw_range, 0) = index(cache_range, 0);
+			mapped_index(hw_range, 1) = index(cache_range, 1);
 #endif
-  }
+	}
 
 #if 0
-  LOG_DEBUG_STR("mapped_index=" << mapped_index);
+		LOG_DEBUG_STR("mapped_index=" << mapped_index);
 #endif
 
-  // update m_remaining and m_offset for next write
-  m_remaining -= size;
-  m_offset    += size;
-
-  //
-  // conjugate weights to get the correct matrix
-
-  // weight a_r + i . a_i
-  //
-  // (a_r + i . a_i) . (x_r + i . x_i) = ( a_r . x_r - a_i . x_i ) + i ( a_i . x_r + a_r . x_i )
-  //
-  // This is equal to:
-  //
-  // ( x_out_r )   ( a_r  -a_i )   ( x_in_r )
-  // (         ) = (           ) * (        )
-  // ( x_out_i )   ( a_i   a_r )   ( x_in_i )
-  // 
-  // and the same for y
-  //
-  // To send to correct weights to the beamformer we must therefore
-  // take the conjugate of the weight (a_r, a_i) to produce (a_r, -a_i)
-  // for the x_our_r component and take the conjugate AND multiply by i
-  // the weight (a_r, a_i) to produce (a_i, a_r).
-  //
-  weights = conj(weights);
-
-  switch (m_regid)
-  {
-    case MEPHeader::BF_XROUT:
-    {
-      // weights for x-real part
-      // no added conversions needed
-
-      // y weights should be 0
-      weights(Range::all(), 1) = 0;
-    }
-    break;
-
-    case MEPHeader::BF_XIOUT:
-    {
-      // multiply by i to get correct weights
-      // weights for x-imaginary part
-      weights *= complex<int16>(0,1);
+	// update m_remaining and m_offset for next write
+	m_remaining -= size;
+	m_offset    += size;
+
+	//
+	// conjugate weights to get the correct matrix
+
+	// weight a_r + i . a_i
+	//
+	// (a_r + i . a_i) . (x_r + i . x_i) = ( a_r . x_r - a_i . x_i ) + i ( a_i . x_r + a_r . x_i )
+	//
+	// This is equal to:
+	//
+	// ( x_out_r )   ( a_r  -a_i )   ( x_in_r )
+	// (         ) = (           ) * (        )
+	// ( x_out_i )   ( a_i   a_r )   ( x_in_i )
+	// 
+	// and the same for y
+	//
+	// To send to correct weights to the beamformer we must therefore
+	// take the conjugate of the weight (a_r, a_i) to produce (a_r, -a_i)
+	// for the x_our_r component and take the conjugate AND multiply by i
+	// the weight (a_r, a_i) to produce (a_i, a_r).
+	//
+	weights = conj(weights);
+
+	switch (m_regid) {
+		case MEPHeader::BF_XROUT: {
+			// weights for x-real part
+			// no added conversions needed
+
+			// y weights should be 0
+			weights(Range::all(), 1) = 0;
+		}
+		break;
+
+		case MEPHeader::BF_XIOUT: {
+			// multiply by i to get correct weights
+			// weights for x-imaginary part
+			weights *= complex<int16>(0,1);
+
+			// y weights should be 0
+			weights(Range::all(), 1) = 0;
+		}
+		break;
+
+		case MEPHeader::BF_YROUT: {
+			// weights for y-real part
+			// no added conversions needed
+
+			// x weights should be 0
+			weights(Range::all(), 0) = 0;
+		}
+		break;
+
+		case MEPHeader::BF_YIOUT: {
+			// multiply by i to get correct weights
+			// weights for y-imaginary part
+			weights *= complex<int16>(0,1);
+
+			// x weights should be 0
+			weights(Range::all(), 0) = 0;
+		}
+		break;
+	}// switch
 
-      // y weights should be 0
-      weights(Range::all(), 1) = 0;
-    }
-    break;
-    
-    case MEPHeader::BF_YROUT:
-    {
-      // weights for y-real part
-      // no added conversions needed
-
-      // x weights should be 0
-      weights(Range::all(), 0) = 0;
-    }
-    break;
-    
-    case MEPHeader::BF_YIOUT:
-    {
-      // multiply by i to get correct weights
-      // weights for y-imaginary part
-      weights *= complex<int16>(0,1);
-
-      // x weights should be 0
-      weights(Range::all(), 0) = 0;
-    }
-    break;
-  }
+#if 0
+	// Debugging the waits send to one BLP by hexdumping the data before setting it on ethernet.
+	if (global_blp == 32 && m_offset < 1000) {
+		string	hd;
+		hexdump (hd, weights.data(), weights.size() * sizeof(complex<uint16>));
+		LOG_INFO_STR("global_blp=32, regid="<< m_regid << ",data=" << hd << endl);
+	}
+#endif
 
-  m_hdr = bfcoefs.hdr;
-  getBoardPort().send(bfcoefs);
+	m_hdr = bfcoefs.hdr;
+	getBoardPort().send(bfcoefs);
 }
 
 void BWWrite::sendrequest_status()
@@ -235,8 +233,7 @@ void BWWrite::sendrequest_status()
 
 GCFEvent::TResult BWWrite::handleack(GCFEvent& event, GCFPortInterface& /*port*/)
 {
-  if (EPA_WRITEACK != event.signal)
-  {
+  if (EPA_WRITEACK != event.signal) {
     LOG_WARN("BWWrite::handleack: unexpected ack");
     return GCFEvent::NOT_HANDLED;
   }
@@ -245,8 +242,7 @@ GCFEvent::TResult BWWrite::handleack(GCFEvent& event, GCFPortInterface& /*port*/
 
   uint8 global_blp = (getBoardId() * StationSettings::instance()->nrBlpsPerBoard()) + m_blp;
 
-  if (!ack.hdr.isValidAck(m_hdr))
-  {
+  if (!ack.hdr.isValidAck(m_hdr)) {
     Cache::getInstance().getState().bf().write_error(global_blp * MEPHeader::N_PHASEPOL + m_regid);
 
     LOG_ERROR("BWWrite::handleack: invalid ack");
diff --git a/MAC/APL/PIC/TBBDriver/src/tbbctl.cc b/MAC/APL/PIC/TBBDriver/src/tbbctl.cc
index 5d1395ff4d51496f45ec37d67b6de63cb92dc2ae..6506b5dde3d383e1c47504e9324f09b7ffe38bf8 100644
--- a/MAC/APL/PIC/TBBDriver/src/tbbctl.cc
+++ b/MAC/APL/PIC/TBBDriver/src/tbbctl.cc
@@ -3292,7 +3292,7 @@ void TBBCtl::mainloop()
 //-----------------------------------------------------------------------------
 int main(int argc, char** argv)
 {
-  GCFTask::init(argc, argv);
+  GCFTask::init(argc, argv, "tbbctl");
   
   LOG_DEBUG(formatString("Program %s has started", argv[0]));