diff --git a/.gitattributes b/.gitattributes
index d4ca84673b7baf00beaf448c4ec4ed2ac07bc425..6e57dfc79ee2e78ed6d46df1d0fb92b0363813a3 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2493,12 +2493,15 @@ LCU/StationTest/xc_200_setup.sh eol=lf
 LCU/StationTest/xc_200_verify.sh eol=lf
 LCU/checkhardware/checkHardware.conf -text
 LCU/checkhardware/checkHardware.py -text
+LCU/checkhardware/doServiceTest.sh -text svneol=unset#application/x-shellscript
+LCU/checkhardware/doShortStationTest.sh -text svneol=unset#application/x-shellscript
 LCU/checkhardware/doStationTest.sh -text svneol=unset#application/x-shellscript
 LCU/checkhardware/lib/general_lib.py -text
 LCU/checkhardware/lib/lofar_lib.py -text
 LCU/checkhardware/lib/search_lib.py -text
 LCU/checkhardware/lib/test_db.py -text
 LCU/checkhardware/lib/test_lib.py -text
+LCU/checkhardware/makeStationLogFile.py -text
 LCU/checkhardware/showTestResult.py -text
 LCU/checkhardware/updatePVSS.py -text
 MAC/APL/APLCommon/include/APL/APLCommon/AntennaField.h -text
@@ -3807,7 +3810,6 @@ RTCP/Cobalt/GPUProc/share/gpu/kernels/IntToFloat.cuh -text
 RTCP/Cobalt/GPUProc/src/backward/CL/cl.hpp -text
 RTCP/Cobalt/GPUProc/src/cpu_utils.cc -text
 RTCP/Cobalt/GPUProc/src/cpu_utils.h -text
-RTCP/Cobalt/GPUProc/src/scripts/get_casacore_measures_data.sh eol=lf
 RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh -text
 RTCP/Cobalt/GPUProc/src/scripts/startBGL.sh -text
 RTCP/Cobalt/GPUProc/src/scripts/stopBGL.sh -text
diff --git a/CEP/Calibration/BBSKernel/include/BBSKernel/Expr/PiercePoint.h b/CEP/Calibration/BBSKernel/include/BBSKernel/Expr/PiercePoint.h
index 41886dc2988c3ea67a719e43fa5daa8563da3a58..1e239b484dd983ebd00e00450b08ccc5b375ff17 100644
--- a/CEP/Calibration/BBSKernel/include/BBSKernel/Expr/PiercePoint.h
+++ b/CEP/Calibration/BBSKernel/include/BBSKernel/Expr/PiercePoint.h
@@ -45,19 +45,19 @@ namespace BBS
 // \addtogroup Expr
 // @{
 
-class PiercePoint: public BasicBinaryExpr<Vector<3>, Scalar, Vector<4> >
+class PiercePoint: public BasicBinaryExpr<Vector<2>, Scalar, Vector<4> >
 {
 public:
     typedef shared_ptr<PiercePoint>         Ptr;
     typedef shared_ptr<const PiercePoint>   ConstPtr;
 
     PiercePoint(const casa::MPosition &position,
-        const Expr<Vector<3> >::ConstPtr &direction,
+        const Expr<Vector<2> >::ConstPtr &azel,
         const Expr<Scalar>::ConstPtr &height);
 
 protected:
     virtual const Vector<4>::View evaluateImpl(const Grid &grid,
-        const Vector<3>::View &direction, const Scalar::View &height) const;
+        const Vector<2>::View &azel, const Scalar::View &height) const;
 
 private:
     // Station position in ITRF coordinates.
diff --git a/CEP/Calibration/BBSKernel/include/BBSKernel/IonosphereExpr.h b/CEP/Calibration/BBSKernel/include/BBSKernel/IonosphereExpr.h
index 8a6a6090731bdc09eb7c99e2c962168d33293ad5..f891fcea68498e898019715882aa45d5709ecdc2 100644
--- a/CEP/Calibration/BBSKernel/include/BBSKernel/IonosphereExpr.h
+++ b/CEP/Calibration/BBSKernel/include/BBSKernel/IonosphereExpr.h
@@ -62,7 +62,7 @@ public:
     virtual ~IonosphereExpr();
 
     virtual Expr<JonesMatrix>::Ptr construct(const casa::MPosition &refPosition,
-        const casa::MPosition &station, const Expr<Vector<3> >::ConstPtr &direction)
+        const casa::MPosition &station, const Expr<Vector<2> >::ConstPtr &azel)
         const = 0;
 };
 
@@ -75,7 +75,7 @@ public:
     MIMExpr(const IonosphereConfig &config, Scope &scope);
 
     virtual Expr<JonesMatrix>::Ptr construct(const casa::MPosition &refPosition,
-        const casa::MPosition &station, const Expr<Vector<3> >::ConstPtr &direction)
+        const casa::MPosition &station, const Expr<Vector<2> >::ConstPtr &azel)
         const;
 
 private:
@@ -92,7 +92,7 @@ public:
     ExpIonExpr(const IonosphereConfig&, Scope &scope);
 
     virtual Expr<JonesMatrix>::Ptr construct(const casa::MPosition &refPosition,
-        const casa::MPosition &station, const Expr<Vector<3> >::ConstPtr &direction)
+        const casa::MPosition &station, const Expr<Vector<2> >::ConstPtr &azel)
         const;
 
 private:
diff --git a/CEP/Calibration/BBSKernel/include/BBSKernel/MeasurementExprLOFARUtil.h b/CEP/Calibration/BBSKernel/include/BBSKernel/MeasurementExprLOFARUtil.h
index 46bc71833e0d09cb5469e9308f1bbf9dc0c4ec2f..ff52a9201a76f5f534b784d2f502f5a88e9f7c07 100644
--- a/CEP/Calibration/BBSKernel/include/BBSKernel/MeasurementExprLOFARUtil.h
+++ b/CEP/Calibration/BBSKernel/include/BBSKernel/MeasurementExprLOFARUtil.h
@@ -138,7 +138,7 @@ makeScalarPhaseExpr(Scope &scope,
 Expr<JonesMatrix>::Ptr
 makeIonosphereExpr(const Station::ConstPtr &station,
     const casa::MPosition &refPosition,
-    const Expr<Vector<3> >::Ptr &exprDirection,
+    const Expr<Vector<2> >::Ptr &exprAzEl,
     const IonosphereExpr::Ptr &exprIonosphere);
 
 // Right multiply \p lhs by \p rhs. Return \p rhs if \p lhs is uninitialized.
diff --git a/CEP/Calibration/BBSKernel/src/Expr/IonPhaseShift.cc b/CEP/Calibration/BBSKernel/src/Expr/IonPhaseShift.cc
index 5ccee50ae4bae396495e1bb75af7b6377c76b2c6..af0ae825c2bb373fca31f57816bf75c922538d42 100644
--- a/CEP/Calibration/BBSKernel/src/Expr/IonPhaseShift.cc
+++ b/CEP/Calibration/BBSKernel/src/Expr/IonPhaseShift.cc
@@ -160,14 +160,13 @@ const JonesMatrix IonPhaseShift::evaluateExpr(const Request &request,
 
     // Compute (differential) total electron content (TEC) at the piercepoint
     // (see memo by Bas van der Tol).
-    ASSERT(!r0.value().isArray());
     Matrix r0sqr = r0.value() * r0.value();
-    ASSERT(!beta.value().isArray());
     Matrix beta_2 = beta.value() * 0.5;
 //    LOG_DEBUG_STR("r0sqr: " << r0sqr);
 //    LOG_DEBUG_STR("beta: " << beta_2);
 
-    Matrix tec(0.0, nFreq, nTime);
+    Matrix tecX(0.0, 1, nTime);
+    Matrix tecY(0.0, 1, nTime);
     for(size_t i = 0; i < calPiercePoint.size(); ++i)
     {
         Matrix dx = calPiercePoint[i].value(0) - piercePoint.value(0);
@@ -175,34 +174,43 @@ const JonesMatrix IonPhaseShift::evaluateExpr(const Request &request,
         Matrix dz = calPiercePoint[i].value(2) - piercePoint.value(2);
         Matrix weight = pow((dx * dx + dy * dy + dz * dz) / r0sqr, beta_2);
 
-//         LOG_DEBUG_STR("dx: " << dx.getDouble());
-//         LOG_DEBUG_STR("dy: " << dy.getDouble());
-//         LOG_DEBUG_STR("dz: " << dz.getDouble());
+//        LOG_DEBUG_STR("dx: " << dx);
+//        LOG_DEBUG_STR("dy: " << dy);
+//        LOG_DEBUG_STR("dz: " << dz);
 //        LOG_DEBUG_STR("weight: " << weight);
 
-        tec += weight * tecWhite[i].value(0);
+        tecX += weight * tecWhite[i].value(0);
+        tecY += weight * tecWhite[i].value(1);
     }
-    tec *= -0.5;
+    tecX *= -0.5;
+    tecY *= -0.5;
 
     // Correct TEC value for the slant (angle of the line of sight w.r.t. the
     // normal to the ionospheric thin layer at the pierce point position). A
     // large slant implies a longer path through the ionosphere, and thus a
     // higher TEC value.
-    tec *= piercePoint.value(3);
-    
+    tecX /= cos(piercePoint.value(3));
+    tecY /= cos(piercePoint.value(3));
+
     // Convert from slanted TEC to phase shift.
     //
     // TODO: Because MeqMatrix cannot handle the elementwise product of an N x 1
     // times a 1 x M array, we have to write it out ourselves. Maybe this could
     // be made possible in MeqMatrix instead?
-    Matrix shift;
-    shift.setDCMat(nFreq, nTime);
-    double *shift_re, *shift_im;
-    shift.dcomplexStorage(shift_re, shift_im);
-
-    ASSERT(!tec.isComplex() && tec.isArray()
-        && static_cast<size_t>(tec.nelements()) == nFreq*nTime);
-    const double *tecIt = tec.doubleStorage();
+    Matrix shiftX, shiftY;
+    shiftX.setDCMat(nFreq, nTime);
+    shiftY.setDCMat(nFreq, nTime);
+    double *shiftX_re, *shiftX_im;
+    double *shiftY_re, *shiftY_im;
+    shiftX.dcomplexStorage(shiftX_re, shiftX_im);
+    shiftY.dcomplexStorage(shiftY_re, shiftY_im);
+
+    ASSERT(!tecX.isComplex() && tecX.isArray()
+        && static_cast<size_t>(tecX.nelements()) == nTime);
+    const double *tecItX = tecX.doubleStorage();
+    ASSERT(!tecY.isComplex() && tecY.isArray()
+        && static_cast<size_t>(tecY.nelements()) == nTime);
+    const double *tecItY = tecY.doubleStorage();
 
     for(size_t t = 0; t < nTime; ++t)
     {
@@ -222,25 +230,30 @@ const JonesMatrix IonPhaseShift::evaluateExpr(const Request &request,
 
             double k_nu = 8.44797245e9 / reqGrid[FREQ]->center(f);
 
-            double phase = k_nu * (*tecIt);
+            double phaseX = k_nu * (*tecItX);
+            double phaseY = k_nu * (*tecItY);
 
-            *shift_re++ = std::cos(phase);
-            *shift_im++ = std::sin(phase);
-            
-            ++tecIt;
+            *shiftX_re++ = std::cos(phaseX);
+            *shiftX_im++ = std::sin(phaseX);
+            *shiftY_re++ = std::cos(phaseY);
+            *shiftY_im++ = std::sin(phaseY);
         }
 
+        ++tecItX;
+        ++tecItY;
     }
 
-//    LOG_DEBUG_STR("TEC: " << tec);
-//    LOG_DEBUG_STR("SHIFT: " << shift);
+//    LOG_DEBUG_STR("TEC X: " << tecX);
+//    LOG_DEBUG_STR("TEC Y: " << tecY);
+//    LOG_DEBUG_STR("SHIFT X: " << shiftX);
+//    LOG_DEBUG_STR("SHIFT Y: " << shiftY);
 
     JonesMatrix result;
     result.setFlags(mergeFlags(flags.begin(), flags.end()));
-    result.assign(0, 0, shift);
+    result.assign(0, 0, shiftX);
     result.assign(0, 1, Matrix(makedcomplex(0.0, 0.0)));
     result.assign(1, 0, Matrix(makedcomplex(0.0, 0.0)));
-    result.assign(1, 1, shift);
+    result.assign(1, 1, shiftY);
 
     EXPR_TIMER_STOP();
 
diff --git a/CEP/Calibration/BBSKernel/src/Expr/PiercePoint.cc b/CEP/Calibration/BBSKernel/src/Expr/PiercePoint.cc
index 3e884ec3f2eb801b37cd0b8a930e138aefa48b11..47ff1d1b3ce84f12a7f9417e19dbc7a8d6799f29 100644
--- a/CEP/Calibration/BBSKernel/src/Expr/PiercePoint.cc
+++ b/CEP/Calibration/BBSKernel/src/Expr/PiercePoint.cc
@@ -44,41 +44,66 @@ namespace LOFAR
 namespace BBS
 {
 
-const double earth_ellipsoid_a = 6378137.0;
-const double earth_ellipsoid_a2 = earth_ellipsoid_a*earth_ellipsoid_a;
-const double earth_ellipsoid_b = 6356752.3142;
-const double earth_ellipsoid_b2 = earth_ellipsoid_b*earth_ellipsoid_b;
-const double earth_ellipsoid_e2 = (earth_ellipsoid_a2 - earth_ellipsoid_b2) / earth_ellipsoid_a2;
-
-
 PiercePoint::PiercePoint(const casa::MPosition &position,
-    const Expr<Vector<3> >::ConstPtr &direction,
+    const Expr<Vector<2> >::ConstPtr &direction,
     const Expr<Scalar>::ConstPtr &height)
-    :   BasicBinaryExpr<Vector<3>, Scalar, Vector<4> >(direction, height),
+    :   BasicBinaryExpr<Vector<2>, Scalar, Vector<4> >(direction, height),
         itsPosition(casa::MPosition::Convert(position,
             casa::MPosition::ITRF)())
 {
+    // Get geodetic longitude, geodetic lattitude, and height above the
+    // ellipsoid (WGS84).
+    casa::MPosition mPositionWGS84 =
+        casa::MPosition::Convert(itsPosition, casa::MPosition::WGS84)();
+    const casa::MVPosition &mvPositionWGS84 = mPositionWGS84.getValue();
+    itsLon = mvPositionWGS84.getLong();
+    itsLat = mvPositionWGS84.getLat();
+
+    // Compute the distance from the center of gravity of the earth to the
+    // station position.
+    itsPositionRadius = itsPosition.getValue().getLength().getValue();
+
+    // Use height above the ellipsoid to compute the earth radius at the
+    // position of the station.
+    //
+    // TODO: You cannot just subtract the height above the ellipsoid from the
+    // length of the ITRF position vector and expect to get the earth radius at
+    // the station position. Assuming "earth radius" means distance from the
+    // center of mass of the earth to the position on the ellipsoid specified by
+    // itsLat, itsLon, then still this is incorrect because the position vector
+    // is generally not parallel to the ellipsoidal normal vector at the
+    // position on the ellipsoid at itsLat, itsLon (along which the height above
+    // the ellipsoid is measured).
+    //
+    // TODO: This earth radius is specific to the station position, yet it is
+    // also used when computing the length of the pierce point vector (which
+    // intersects the earth's surface at a different position, where the earth
+    // radius may be different!).
+    itsEarthRadius = itsPositionRadius - mvPositionWGS84.getLength().getValue();
+
+//    LOG_DEBUG_STR("Antenna: Longitude: " << (itsLon * 180.0) / casa::C::pi
+//        << " deg, Lattitude: " << (itsLat * 180.0) / casa::C::pi
+//        << " deg, Height: " << itsHeight << " m, Radius: " << radius
+//        << " m, Earth radius: " << itsEarthRadius << " m");
+//    LOG_DEBUG_STR("Antenna: Longitude: " << itsLon
+//        << " rad, Lattitude: " << itsLat
+//        << " rad, Height: " << itsHeight << " m, Radius: " << radius
+//        << " m, Earth radius: " << itsEarthRadius << " m");
 }
 
 const Vector<4>::View PiercePoint::evaluateImpl(const Grid &grid,
-    const Vector<3>::View &direction, const Scalar::View &height) const
+    const Vector<2>::View &azel, const Scalar::View &height) const
 {
     const size_t nTime = grid[TIME]->size();
-    const size_t nFreq = grid[FREQ]->size();
 
     // Allocate space for the result.
     // TODO: This is a hack! The Matrix class does not support 1xN or Nx1
     // "matrices".
-    Matrix out_x, out_y, out_z, out_airmass;
-    double *out_x_ptr = out_x.setDoubleFormat(nFreq, nTime);
-    double *out_y_ptr = out_y.setDoubleFormat(nFreq, nTime);
-    double *out_z_ptr = out_z.setDoubleFormat(nFreq, nTime);
-    double *out_airmass_ptr = out_airmass.setDoubleFormat(nFreq, nTime);
-    double pp_x, pp_y, pp_z, pp_airmass;
-
-
-    ASSERT(!height().isArray());
-    double h = height().getDouble();
+    Matrix out_x, out_y, out_z, out_alpha;
+    double *x = out_x.setDoubleFormat(1, nTime);
+    double *y = out_y.setDoubleFormat(1, nTime);
+    double *z = out_z.setDoubleFormat(1, nTime);
+    double *alpha = out_alpha.setDoubleFormat(1, nTime);
 
     // Get station position in ITRF coordinates.
     const casa::MVPosition &mPosition = itsPosition.getValue();
@@ -86,90 +111,109 @@ const Vector<4>::View PiercePoint::evaluateImpl(const Grid &grid,
     double stationY = mPosition(1);
     double stationZ = mPosition(2);
 
-    const double ion_ellipsoid_a = earth_ellipsoid_a + h;
-    const double ion_ellipsoid_a2_inv = 1.0 / (ion_ellipsoid_a * ion_ellipsoid_a);
-    const double ion_ellipsoid_b = earth_ellipsoid_b + h;
-    const double ion_ellipsoid_b2_inv = 1.0 / (ion_ellipsoid_b * ion_ellipsoid_b);
+//    LOG_DEBUG_STR("Geocentric lattitude: " << std::atan2(stationZ, std::sqrt(stationX * stationX + stationY * stationY)));
+
+    // Precompute rotation matrix to transform from local ENU (East, North, Up)
+    // coordinates to ITRF coordinates (see e.g.
+    // http://en.wikipedia.org/wiki/Geodetic_system).
+    //
+    // TODO: Use measures to compute a direction vector in ITRF directly,
+    // instead of going from (RA, Dec) to (azimuth, elevation), to ENU to ITRF.
+    double sinlon = std::sin(itsLon);
+    double coslon = std::cos(itsLon);
+    double sinlat = std::sin(itsLat);
+    double coslat = std::cos(itsLat);
+    double R[3][3] = {{-sinlon, -sinlat * coslon, coslat * coslon},
+                      { coslon, -sinlat * sinlon, coslat * sinlon},
+                      {    0.0,           coslat,          sinlat}};
+
+//    {
+//        // A first stab at using the measures to compute a direction vector
+//        // in ITRF coordinates directly. Needs more work.
+//        casa::Quantity qEpoch(grid[TIME]->center(0), "s");
+//        casa::MEpoch mEpoch(qEpoch, casa::MEpoch::UTC);
+
+//        // Create and initialize a frame.
+//        casa::MeasFrame frame;
+//        frame.set(itsPosition);
+//        frame.set(mEpoch);
+
+//        // Create conversion engine.
+//        casa::MDirection mDirection(casa::MVDirection(4.33961, 1.09537),
+//            casa::MDirection::Ref(casa::MDirection::J2000));
+
+//        casa::MDirection::Convert converter =
+//            casa::MDirection::Convert(mDirection,
+//                casa::MDirection::Ref(casa::MDirection::ITRF, frame));
+
+//        LOG_DEBUG_STR("Convertor: " << converter);
+
+//        // Compute XYZ direction vector.
+//        casa::MVDirection mvXYZ(converter().getValue());
+//        const casa::Vector<casa::Double> xyz = mvXYZ.getValue();
+//        LOG_DEBUG_STR("XYZ direction (from measures): " << xyz(0) << " "
+//            << xyz(1) << " " << xyz(2));
+//    }
+
+    ASSERT(azel(0).isArray() && azel(0).nx() == 1);
+    ASSERT(azel(1).isArray() && azel(1).nx() == 1);
+    ASSERT(!height().isArray());
 
-    double x = stationX/ion_ellipsoid_a;
-    double y = stationY/ion_ellipsoid_a;
-    double z = stationZ/ion_ellipsoid_b;
-    double c = x*x + y*y + z*z - 1.0;
+    // TODO: itsEarthRadius is valid only for the station position, which is
+    // generally not equal to the position where the pierce point vector
+    // intersects the ellipsoid. The question is how the height of the
+    // ionospheric layer should be defined. A layer with a fixed distance from
+    // the earth center of mass is probably easiest.
+    double ionosphereRadius = itsEarthRadius + height().getDouble();
 
     for(size_t i = 0; i < nTime; ++i)
     {
-      double directionX = direction(0).getDouble(0, i);
-      double directionY = direction(1).getDouble(0, i);
-      double directionZ = direction(2).getDouble(0, i);
-
-      double dx = directionX / ion_ellipsoid_a;
-      double dy = directionY / ion_ellipsoid_a;
-      double dz = directionZ / ion_ellipsoid_b;
-
-      double a = dx*dx + dy*dy + dz*dz;
-      double b = x*dx + y*dy  + z*dz;
-      double alpha = (-b + std::sqrt(b*b - a*c))/a;
-
-      pp_x = stationX + alpha*directionX;
-      pp_y = stationY + alpha*directionY;
-      pp_z = stationZ + alpha*directionZ;
-      double normal_x = pp_x * ion_ellipsoid_a2_inv;
-      double normal_y = pp_y * ion_ellipsoid_a2_inv;
-      double normal_z = pp_z * ion_ellipsoid_b2_inv;
-      double norm_normal2 = normal_x*normal_x + normal_y*normal_y + normal_z*normal_z;
-      double norm_normal = std::sqrt(norm_normal2);
-      double sin_lat2 = normal_z*normal_z / norm_normal2;
-
-      double g = 1.0 - earth_ellipsoid_e2*sin_lat2;
-      double sqrt_g = std::sqrt(g);
-
-      double M = earth_ellipsoid_b2 / ( earth_ellipsoid_a * g * sqrt_g );
-      double N = earth_ellipsoid_a / sqrt_g;
-
-      double local_ion_ellipsoid_e2 = (M-N) / ((M+h)*sin_lat2 - N - h);
-      double local_ion_ellipsoid_a = (N+h) * std::sqrt(1.0 - local_ion_ellipsoid_e2*sin_lat2);
-      double local_ion_ellipsoid_b = local_ion_ellipsoid_a*std::sqrt(1.0 - local_ion_ellipsoid_e2);
-
-      double z_offset = ((1.0-earth_ellipsoid_e2)*N + h - (1.0-local_ion_ellipsoid_e2)*(N+h)) * std::sqrt(sin_lat2);
-
-      double x1 = stationX/local_ion_ellipsoid_a;
-      double y1 = stationY/local_ion_ellipsoid_a;
-      double z1 = (stationZ-z_offset)/local_ion_ellipsoid_b;
-      double c1 = x1*x1 + y1*y1 + z1*z1 - 1.0;
-
-      dx = directionX / local_ion_ellipsoid_a;
-      dy = directionY / local_ion_ellipsoid_a;
-      dz = directionZ / local_ion_ellipsoid_b;
-      a = dx*dx + dy*dy + dz*dz;
-      b = x1*dx + y1*dy  + z1*dz;
-      alpha = (-b + std::sqrt(b*b - a*c1))/a;
-
-      pp_x = stationX + alpha*directionX;
-      pp_y = stationY + alpha*directionY;
-      pp_z = stationZ + alpha*directionZ;
-
-      normal_x = pp_x / (local_ion_ellipsoid_a * local_ion_ellipsoid_a);
-      normal_y = pp_y / (local_ion_ellipsoid_a * local_ion_ellipsoid_a);
-      normal_z = (pp_z-z_offset) / (local_ion_ellipsoid_b * local_ion_ellipsoid_b);
-
-      norm_normal2 = normal_x*normal_x + normal_y*normal_y + normal_z*normal_z;
-      norm_normal = std::sqrt(norm_normal2);
-      
-      pp_airmass = norm_normal / (directionX*normal_x + directionY*normal_y + directionZ*normal_z);
-      
-      for(size_t j = 0; j < nFreq; ++j) {
-        *(out_x_ptr++) = pp_x;
-        *(out_y_ptr++) = pp_y;
-        *(out_z_ptr++) = pp_z;
-        *(out_airmass_ptr++) = pp_airmass;
-      }
+        double az = azel(0).getDouble(0, i);
+        double el = azel(1).getDouble(0, i);
+
+        // Calculate alpha, this is the angle of the line of sight with the
+        // normal of the ionospheric layer at the pierce point location (i.e.
+        // alpha' (alpha prime) in the memo).
+        *alpha =
+            std::asin(std::cos(el) * (itsPositionRadius / ionosphereRadius));
+
+        // Compute direction vector in local ENU (East, North, Up) coordinates.
+        double cosel = std::cos(el);
+        double dx = std::sin(az) * cosel;
+        double dy = std::cos(az) * cosel;
+        double dz = std::sin(el);
+
+        // Transform the direction vector from the local ENU frame to the ITRF
+        // frame.
+        double dxr = R[0][0] * dx + R[0][1] * dy + R[0][2] * dz;
+        double dyr = R[1][0] * dx + R[1][1] * dy + R[1][2] * dz;
+        double dzr = R[2][0] * dx + R[2][1] * dy + R[2][2] * dz;
+
+//        if(i == 0)
+//        {
+//            LOG_DEBUG_STR("XYZ direction (from az, el): " << dxr << " " << dyr
+//                << " " << dzr);
+//        }
+
+        // Compute the distance from the station to the pierce point, i.e.
+        // equation 6 in the memo. The equation below is equivalent to that in
+        // the memo, but it is expressed in elevation instead of zenith angle.
+        double radius = ionosphereRadius * std::cos(el + *alpha) / cosel;
+
+        // Compute the pierce point location in ITRF coordinates.
+        *x = stationX + radius * dxr;
+        *y = stationY + radius * dyr;
+        *z = stationZ + radius * dzr;
+
+        ++x; ++y; ++z; ++alpha;
     }
+
     // Create result.
     Vector<4>::View result;
     result.assign(0, out_x);
     result.assign(1, out_y);
     result.assign(2, out_z);
-    result.assign(3, out_airmass);
+    result.assign(3, out_alpha);
 
     return result;
 }
diff --git a/CEP/Calibration/BBSKernel/src/IonosphereExpr.cc b/CEP/Calibration/BBSKernel/src/IonosphereExpr.cc
index 3e1ed42e6f4cf0a5ae30efa61a42f30ed546fa1e..97d665e136fd4eb53f151092bfb39bb31bfa08c7 100644
--- a/CEP/Calibration/BBSKernel/src/IonosphereExpr.cc
+++ b/CEP/Calibration/BBSKernel/src/IonosphereExpr.cc
@@ -111,10 +111,10 @@ MIMExpr::MIMExpr(const IonosphereConfig &config, Scope &scope)
 }
 
 Expr<JonesMatrix>::Ptr MIMExpr::construct(const casa::MPosition &refPosition,
-    const casa::MPosition &station, const Expr<Vector<3> >::ConstPtr &direction)
+    const casa::MPosition &station, const Expr<Vector<2> >::ConstPtr &azel)
     const
 {
-    PiercePoint::Ptr piercePoint(new PiercePoint(station, direction, itsHeight));
+    PiercePoint::Ptr piercePoint(new PiercePoint(station, azel, itsHeight));
 
     PolynomialLayer::Ptr shift(new PolynomialLayer(refPosition, piercePoint,
         itsCoeff.begin(), itsCoeff.end()));
@@ -166,10 +166,10 @@ ExpIonExpr::ExpIonExpr(const IonosphereConfig&, Scope &scope)
 }
 
 Expr<JonesMatrix>::Ptr ExpIonExpr::construct(const casa::MPosition&,
-    const casa::MPosition &station, const Expr<Vector<3> >::ConstPtr &direction)
+    const casa::MPosition &station, const Expr<Vector<2> >::ConstPtr &azel)
     const
 {
-    PiercePoint::Ptr piercePoint(new PiercePoint(station, direction, itsHeight));
+    PiercePoint::Ptr piercePoint(new PiercePoint(station, azel, itsHeight));
 
     IonPhaseShift::Ptr shift(new IonPhaseShift(piercePoint, itsR0, itsBeta));
     shift->setCalibratorPiercePoints(itsCalPiercePoint.begin(),
diff --git a/CEP/Calibration/BBSKernel/src/MeasurementExprLOFAR.cc b/CEP/Calibration/BBSKernel/src/MeasurementExprLOFAR.cc
index eb2ae9af1baa87be7a16ed94ba8b40d972766c65..02b613bf7eb0e12469fafe30ca78bf19f7fce701 100644
--- a/CEP/Calibration/BBSKernel/src/MeasurementExprLOFAR.cc
+++ b/CEP/Calibration/BBSKernel/src/MeasurementExprLOFAR.cc
@@ -243,13 +243,13 @@ void MeasurementExprLOFAR::makeForwardExpr(SourceDB &sourceDB,
             {
                 // Create an AZ, EL expression for the centroid direction of the
                 // patch.
-//                 Expr<Vector<2> >::Ptr exprAzEl =
-//                     makeAzElExpr(instrument->station(j)->position(),
-//                     exprPatch->position());
+                Expr<Vector<2> >::Ptr exprAzEl =
+                    makeAzElExpr(instrument->station(j)->position(),
+                    exprPatch->position());
 
                 exprDDE[j] = compose(exprDDE[j],
                     makeIonosphereExpr(instrument->station(j),
-                    instrument->position(), exprPatchPositionITRF, exprIonosphere));
+                    instrument->position(), exprAzEl, exprIonosphere));
             }
         }
 
@@ -549,9 +549,15 @@ void MeasurementExprLOFAR::makeInverseExpr(SourceDB &sourceDB,
                 // Ionosphere.
                 if(config.useIonosphere())
                 {
+                    // Create an AZ, EL expression for the phase reference
+                    // direction.
+                    Expr<Vector<2> >::Ptr exprAzEl =
+                        makeAzElExpr(instrument->station(i)->position(),
+                        exprRefPhase);
+
                     stationExpr[i] = compose(stationExpr[i],
                         makeIonosphereExpr(instrument->station(i),
-                        instrument->position(), exprRefPhaseITRF, exprIonosphere));
+                        instrument->position(), exprAzEl, exprIonosphere));
                 }
             }
         }
@@ -577,6 +583,7 @@ void MeasurementExprLOFAR::makeInverseExpr(SourceDB &sourceDB,
                         makeDirectionalGainExpr(itsScope,
                         instrument->station(i), patch, config.usePhasors()));
                 }
+
                 // Beam.
                 if(config.useBeam())
                 {
@@ -622,9 +629,15 @@ void MeasurementExprLOFAR::makeInverseExpr(SourceDB &sourceDB,
                 // Ionosphere.
                 if(config.useIonosphere())
                 {
+                    // Create an AZ, EL expression for the centroid direction of
+                    // the patch.
+                    Expr<Vector<2> >::Ptr exprAzEl =
+                        makeAzElExpr(instrument->station(i)->position(),
+                        exprPatch->position());
+
                     stationExpr[i] = compose(stationExpr[i],
                         makeIonosphereExpr(instrument->station(i),
-                        instrument->position(), exprPatchPositionITRF, exprIonosphere));
+                        instrument->position(), exprAzEl, exprIonosphere));
                 }
             }
         }
diff --git a/CEP/Calibration/BBSKernel/src/MeasurementExprLOFARUtil.cc b/CEP/Calibration/BBSKernel/src/MeasurementExprLOFARUtil.cc
index 4020dd42f3055777705fadbd2cf5256f8d6dad60..bf7ab794df146634a77f78e136b1309d03501eac 100644
--- a/CEP/Calibration/BBSKernel/src/MeasurementExprLOFARUtil.cc
+++ b/CEP/Calibration/BBSKernel/src/MeasurementExprLOFARUtil.cc
@@ -397,11 +397,11 @@ makeScalarPhaseExpr(Scope &scope,
 Expr<JonesMatrix>::Ptr
 makeIonosphereExpr(const Station::ConstPtr &station,
     const casa::MPosition &refPosition,
-    const Expr<Vector<3> >::Ptr &exprDirection,
+    const Expr<Vector<2> >::Ptr &exprAzEl,
     const IonosphereExpr::Ptr &exprIonosphere)
 {
     return exprIonosphere->construct(refPosition, station->position(),
-        exprDirection);
+        exprAzEl);
 }
 
 Expr<JonesMatrix>::Ptr
diff --git a/CEP/Calibration/BBSKernel/src/StationExprLOFAR.cc b/CEP/Calibration/BBSKernel/src/StationExprLOFAR.cc
index 249e2cee4bd0b0182dfd61abd91f20404cdb630a..e12e0b57f78d01771e7b87df93ff96d3e4517c78 100644
--- a/CEP/Calibration/BBSKernel/src/StationExprLOFAR.cc
+++ b/CEP/Calibration/BBSKernel/src/StationExprLOFAR.cc
@@ -134,7 +134,7 @@ void StationExprLOFAR::initialize(SourceDB &sourceDB, const BufferMap &buffers,
                 " correction can only be applied for a single direction on the"
                 " sky.");
         }
-        
+
         // Beam reference position on the sky.
         Expr<Vector<2> >::Ptr exprRefDelay = makeDirectionExpr(refDelay);
         Expr<Vector<3> >::Ptr exprRefDelayITRF =
@@ -187,9 +187,15 @@ void StationExprLOFAR::initialize(SourceDB &sourceDB, const BufferMap &buffers,
                 // Ionosphere.
                 if(config.useIonosphere())
                 {
+                    // Create an AZ, EL expression for the phase reference
+                    // direction.
+                    Expr<Vector<2> >::Ptr exprAzEl =
+                        makeAzElExpr(instrument->station(i)->position(),
+                        exprRefPhase);
+
                     itsExpr[i] = compose(itsExpr[i],
                         makeIonosphereExpr(instrument->station(i),
-                        instrument->position(), exprRefPhaseITRF, exprIonosphere));
+                        instrument->position(), exprAzEl, exprIonosphere));
                 }
             }
         }
@@ -215,6 +221,7 @@ void StationExprLOFAR::initialize(SourceDB &sourceDB, const BufferMap &buffers,
                         makeDirectionalGainExpr(itsScope,
                         instrument->station(i), patch, config.usePhasors()));
                 }
+
                 // Beam.
                 if(config.useBeam())
                 {
@@ -259,9 +266,15 @@ void StationExprLOFAR::initialize(SourceDB &sourceDB, const BufferMap &buffers,
                 // Ionosphere.
                 if(config.useIonosphere())
                 {
+                    // Create an AZ, EL expression for the centroid direction of
+                    // the patch.
+                    Expr<Vector<2> >::Ptr exprAzEl =
+                        makeAzElExpr(instrument->station(i)->position(),
+                        exprPatch->position());
+
                     itsExpr[i] = compose(itsExpr[i],
                         makeIonosphereExpr(instrument->station(i),
-                        instrument->position(), exprPatchPositionITRF, exprIonosphere));
+                        instrument->position(), exprAzEl, exprIonosphere));
                 }
             }
         }
@@ -464,7 +477,7 @@ PatchExprBase::Ptr StationExprLOFAR::makePatchExpr(const string &name,
             it->second));
     }
 
-    return PatchExprBase::Ptr(new PatchExpr(itsScope, sourceDB, name, 
+    return PatchExprBase::Ptr(new PatchExpr(itsScope, sourceDB, name,
         refPhase));
 }
 
diff --git a/CEP/DP3/DPPP/include/DPPP/ApplyCal.h b/CEP/DP3/DPPP/include/DPPP/ApplyCal.h
index 709b48229c083a77ef72b6b4c1448e44b5de3fac..6c072de0d5d1f256bb72e00d17a2621e1dff225b 100644
--- a/CEP/DP3/DPPP/include/DPPP/ApplyCal.h
+++ b/CEP/DP3/DPPP/include/DPPP/ApplyCal.h
@@ -34,7 +34,6 @@
 #include <ParmDB/Parm.h>
 #include <casa/Arrays/Cube.h>
 #include <casa/Arrays/ArrayMath.h>
-#include <DPPP/FlagCounter.h>
 
 namespace LOFAR {
   namespace DPPP {
@@ -68,6 +67,7 @@ namespace LOFAR {
       // Show the timings.
       virtual void showTimings (std::ostream&, double duration) const;
 
+
     private:
       // Apply a diagonal Jones matrix to the 2x2 visibilities matrix: A.V.B^H
       void applyDiag (casa::Complex* vis, float* weight, int antA, int antB,
@@ -103,7 +103,6 @@ namespace LOFAR {
       uint            itsNCorr;
       double          itsTimeInterval;
       double          itsLastTime;
-      FlagCounter     itsFlagCounter;
       bool            itsUseAP;      //# use ampl/phase or real/imag
       NSTimer         itsTimer;
     };
diff --git a/CEP/DP3/DPPP/include/DPPP/DPInfo.h b/CEP/DP3/DPPP/include/DPPP/DPInfo.h
index 94a98e7e9cca182a925eb319030f29f8da8d2ebd..6c20eb982b7ddca02d92f7be52960998ad4019bb 100644
--- a/CEP/DP3/DPPP/include/DPPP/DPInfo.h
+++ b/CEP/DP3/DPPP/include/DPPP/DPInfo.h
@@ -112,10 +112,8 @@ namespace LOFAR {
         { return itsNCorr; }
       uint nchan() const
         { return itsNChan; }
-      uint startchan() const
-        { return itsStartChan; }
         uint origNChan() const
-        { return itsOrigNChan; }
+      { return itsOrigNChan; }
       uint nchanAvg() const
         { return itsChanAvg; }
       uint nbaselines() const
@@ -203,7 +201,6 @@ namespace LOFAR {
       string itsMSName;
       string itsAntennaSet;
       uint   itsNCorr;
-      uint   itsStartChan;
       uint   itsOrigNChan;
       uint   itsNChan;
       uint   itsChanAvg;
diff --git a/CEP/DP3/DPPP/include/DPPP/MSReader.h b/CEP/DP3/DPPP/include/DPPP/MSReader.h
index 0a526c8c4aaa2c1f7741e3894b1c2c98bd1be3a7..dd244fb2b120f578d6df6575db7c2e6b37bfca6e 100644
--- a/CEP/DP3/DPPP/include/DPPP/MSReader.h
+++ b/CEP/DP3/DPPP/include/DPPP/MSReader.h
@@ -240,10 +240,6 @@ namespace LOFAR {
       const DPBuffer& getBuffer() const
         { return itsBuffer; }
 
-      // Flags inf and NaN
-      static void flagInfNaN(const casa::Cube<casa::Complex>& dataCube,
-                       casa::Cube<bool>& flagsCube, FlagCounter& flagCounter);
-
     private:
       // Prepare the access to the MS.
       // Return the first and last time and the interval.
diff --git a/CEP/DP3/DPPP/include/DPPP/MSUpdater.h b/CEP/DP3/DPPP/include/DPPP/MSUpdater.h
index 3aebf006a7d418204f4c473267c69eb79915f2b0..80eae52bb61f255b7587922284bbc2dcd0996565 100644
--- a/CEP/DP3/DPPP/include/DPPP/MSUpdater.h
+++ b/CEP/DP3/DPPP/include/DPPP/MSUpdater.h
@@ -75,11 +75,6 @@ namespace LOFAR {
                                    const ParameterSet& parset,
                                    const string& prefix);
 
-      // Tests if an update is possible. When throwError is true, it will
-      // throw an error with a descriptive string instead of returning false
-      static bool updateAllowed (DPInfo& info, MSReader* reader,
-                                  bool throwError=true);
-
     private:
       // Write the flags at the given row numbers.
       void putFlags (const casa::RefRows& rowNrs,
@@ -106,6 +101,9 @@ namespace LOFAR {
       uint        itsNrTimesFlush; //# flush every N time slots (0=no flush)
       bool        itsWriteData;
       bool        itsWriteWeight;
+      uint        itsNrCorr;
+      uint        itsNrChan;
+      uint        itsNrBl;
       uint        itsNrDone;       //# nr of time slots written
       bool        itsDataColAdded; //# has data column been added?
       bool        itsWeightColAdded; //# has weight column been added?
diff --git a/CEP/DP3/DPPP/src/ApplyCal.cc b/CEP/DP3/DPPP/src/ApplyCal.cc
index bf243ec99f5a9dd176a734bf1b455217993a63e0..cb9b34cf48ce02920c7de689076275a1f9123618 100644
--- a/CEP/DP3/DPPP/src/ApplyCal.cc
+++ b/CEP/DP3/DPPP/src/ApplyCal.cc
@@ -25,7 +25,6 @@
 #include <DPPP/ApplyCal.h>
 #include <DPPP/DPBuffer.h>
 #include <DPPP/DPInfo.h>
-#include <DPPP/MSReader.h>
 #include <Common/ParameterSet.h>
 #include <Common/StringUtil.h>
 #include <Common/LofarLogger.h>
@@ -59,6 +58,8 @@ namespace LOFAR {
         itsUseAP       (false)
     {
       ASSERT (!itsParmDBName.empty());
+      // Possible corrections one (or more?) of:
+      //   Gain (real/imag or ampl/phase), RM, TEC, Clock, Bandpass
     }
 
     ApplyCal::~ApplyCal()
@@ -143,7 +144,6 @@ namespace LOFAR {
       }
 
       initDataArrays();
-      itsFlagCounter.init(getInfo());
     }
 
     void ApplyCal::show (std::ostream& os) const
@@ -205,8 +205,6 @@ namespace LOFAR {
         }
       }
 
-      MSReader::flagInfNaN(buf.getData(),buf.getFlags(),itsFlagCounter);
-
       itsTimer.stop();
       getNextStep()->process(buf);
       return false;
@@ -498,6 +496,5 @@ namespace LOFAR {
       weight[3]=1./weight[3];
 
     }
-
   } //# end namespace
 }
diff --git a/CEP/DP3/DPPP/src/DPInfo.cc b/CEP/DP3/DPPP/src/DPInfo.cc
index 844dd1fc9d59a15a694e8f0942f4d1d5b3fae835..2ef9bd7f8003849d158a5bf785f79a1d9ece06ad 100644
--- a/CEP/DP3/DPPP/src/DPInfo.cc
+++ b/CEP/DP3/DPPP/src/DPInfo.cc
@@ -40,7 +40,6 @@ namespace LOFAR {
       : itsNeedVisData  (false),
         itsNeedWrite    (0),
         itsNCorr        (0),
-        itsStartChan    (0),
         itsNChan        (0),
         itsChanAvg      (1),
         itsNTime        (0),
@@ -188,11 +187,8 @@ namespace LOFAR {
                          const vector<uint>& baselines, bool removeAnt)
     {
       Slice slice(startChan, nchan);
-      itsStartChan=startChan;
       itsChanFreqs.reference  (itsChanFreqs (slice).copy());
       itsChanWidths.reference (itsChanWidths(slice).copy());
-      itsResolutions.reference (itsResolutions(slice).copy());
-      itsEffectiveBW.reference (itsEffectiveBW(slice).copy());
       itsNChan = nchan;
       // Keep only selected baselines.
       if (! baselines.empty()) {
diff --git a/CEP/DP3/DPPP/src/DPRun.cc b/CEP/DP3/DPPP/src/DPRun.cc
index e2b5f71873a7e434df26656acb57461203622933..d1c2333d02ac9c649f9934498e8ec56bcbab10f8 100644
--- a/CEP/DP3/DPPP/src/DPRun.cc
+++ b/CEP/DP3/DPPP/src/DPRun.cc
@@ -292,9 +292,10 @@ namespace LOFAR {
       // If the user specified an output MS name, a writer is always created
       // If there is a writer, the reader needs to read the visibility data.
       if (outName.empty()) {
-        if (!MSUpdater::updateAllowed(lastInfo,reader)) {
-          THROW(Exception, "Updating an existing MS is not possible with the current operations");
-        }
+        ASSERTSTR (lastInfo.nchanAvg() == 1  &&  lastInfo.ntimeAvg() == 1,
+                   "A new MS has to be given in msout if averaging is done");
+        ASSERTSTR (lastInfo.phaseCenterIsOriginal(),
+                   "A new MS has to be given in msout if a phase shift is done");
         if (needWrite  ||  lastInfo.needWrite()) {
           ASSERTSTR (inNames.size() == 1,
                      "No update can be done if multiple input MSs are used");
diff --git a/CEP/DP3/DPPP/src/Filter.cc b/CEP/DP3/DPPP/src/Filter.cc
index 17076a75c9bb89010d44d40a075248a4cb464c5a..3747eabef677bbfc0ea2724204ffe5fe5ed0dff7 100644
--- a/CEP/DP3/DPPP/src/Filter.cc
+++ b/CEP/DP3/DPPP/src/Filter.cc
@@ -185,12 +185,7 @@ namespace LOFAR {
         itsBuf.getWeights() = weights(first, last);
         itsBuf.getFullResFlags() = frFlags(frfFirst, frfLast);
         itsBuf.setUVW (buf.getUVW());
-        itsBuf.setRowNrs   (buf.getRowNrs());
       } else {
-        Vector<uint> rowNrs(0);
-        if (!buf.getRowNrs().empty()) {
-          rowNrs.resize(getInfo().nbaselines());
-        }
         // Copy the data of the selected baselines and channels.
         itsBuf.getUVW().resize (IPosition(2, 3, getInfo().nbaselines()));
         itsBuf.getUVW().unique();
@@ -209,9 +204,6 @@ namespace LOFAR {
         int nffr = frFlags.shape()[0];
         int nfto = itsBuf.getFullResFlags().shape()[0];
         for (uint i=0; i<itsSelBL.size(); ++i) {
-          if (!buf.getRowNrs().empty()) {
-            rowNrs[i] = buf.getRowNrs()[itsSelBL[i]];
-          }
           objcopy (toData  , frData   + itsSelBL[i]*ndfr, ndto);
           toData += ndto;
           objcopy (toFlag  , frFlag   + itsSelBL[i]*ndfr, ndto);
@@ -229,7 +221,6 @@ namespace LOFAR {
             frFrf += nffr;
           }
         }
-        itsBuf.setRowNrs(rowNrs);
       }
       itsBuf.setTime     (buf.getTime());
       itsBuf.setExposure (buf.getExposure());
diff --git a/CEP/DP3/DPPP/src/MSReader.cc b/CEP/DP3/DPPP/src/MSReader.cc
index c56e5f2afb4fb86e61aea3211af12c2a19e0544d..80ee92ea63ffb22a1cb11a6eaeed5edc34b8566b 100644
--- a/CEP/DP3/DPPP/src/MSReader.cc
+++ b/CEP/DP3/DPPP/src/MSReader.cc
@@ -301,8 +301,25 @@ namespace LOFAR {
               itsBuffer.getFlags() = false;
             }
             // Flag invalid data (NaN, infinite).
-            flagInfNaN(itsBuffer.getData(), itsBuffer.getFlags(),
-                       itsFlagCounter);
+            const Complex* dataPtr = itsBuffer.getData().data();
+            bool* flagPtr = itsBuffer.getFlags().data();
+            for (uint i=0; i<itsBuffer.getData().size();) {
+              for (uint j=i; j<i+itsNrCorr; ++j) {
+                bool flag = (!isFinite(dataPtr[j].real())  ||
+                             !isFinite(dataPtr[j].imag()));
+                if (flag) {
+                  itsFlagCounter.incrCorrelation(j-i);
+                }
+                if (flag  ||  flagPtr[j]) {
+                  // Flag all correlations if a single one is flagged.
+                  for (uint k=i; k<i+itsNrCorr; ++k) {
+                    flagPtr[k] = true;
+                  }
+                  break;
+                }
+              }
+              i += itsNrCorr;
+            }
           }
           itsLastMSTime = itsNextTime;
           itsNrRead++;
@@ -319,30 +336,6 @@ namespace LOFAR {
       return true;
     }
 
-    void MSReader::flagInfNaN(const casa::Cube<casa::Complex>& dataCube,
-                          casa::Cube<bool>& flagsCube, FlagCounter& flagCounter) {
-      int ncorr=dataCube.shape()[0];
-      const Complex* dataPtr = dataCube.data();
-      bool* flagPtr = flagsCube.data();
-      for (uint i=0; i<dataCube.size();) {
-        for (uint j=i; j<i+ncorr; ++j) {
-          bool flag = (!isFinite(dataPtr[j].real())  ||
-                       !isFinite(dataPtr[j].imag()));
-          if (flag) {
-            flagCounter.incrCorrelation(j-i);
-          }
-          if (flag  ||  flagPtr[j]) {
-            // Flag all correlations if a single one is flagged.
-            for (uint k=i; k<i+ncorr; ++k) {
-              flagPtr[k] = true;
-            }
-            break;
-          }
-        }
-        i += ncorr;
-      }
-    }
-
     void MSReader::finish()
     {
       getNextStep()->finish();
diff --git a/CEP/DP3/DPPP/src/MSUpdater.cc b/CEP/DP3/DPPP/src/MSUpdater.cc
index 9885afe369a53f3214d5ae2023252cc3b7bdcca5..af8ff8d2179270d4951fe1683624fb037228c6c4 100644
--- a/CEP/DP3/DPPP/src/MSUpdater.cc
+++ b/CEP/DP3/DPPP/src/MSUpdater.cc
@@ -46,6 +46,9 @@ namespace LOFAR {
       : itsReader       (reader),
         itsWriteData    ((needWrite & DPInfo::NeedWriteData) != 0),
         itsWriteWeight  ((needWrite & DPInfo::NeedWriteWeight) != 0),
+        itsNrCorr       (reader->getInfo().ncorr()),
+        itsNrChan       (reader->getInfo().nchan()),
+        itsNrBl         (reader->getInfo().nbaselines()),
         itsNrDone       (0),
         itsDataColAdded (false),
         itsWeightColAdded (false)
@@ -92,30 +95,6 @@ namespace LOFAR {
       return colName != reader->dataColumnName();
     }
 
-    bool MSUpdater::updateAllowed (DPInfo& info, MSReader* reader,
-                                    bool throwError) {
-      if (info.nchanAvg() != 1 || info.ntimeAvg() != 1) {
-        if (throwError) {
-          THROW(Exception, "A new MS has to be given in msout if averaging is done");
-        }
-        return false;
-      }
-      if (!info.phaseCenterIsOriginal()) {
-        if (throwError) {
-          THROW(Exception, "A new MS has to be given in msout if a phase shift is done");
-        }
-        return false;
-      }
-      if (info.antennaNames().size() != reader->getInfo().antennaNames().size() ||
-          ! allEQ(info.antennaNames(), reader->getInfo().antennaNames())) {
-        if (throwError) {
-          THROW(Exception, "A new MS has to be given if antennas are added or removed");
-        }
-        return false;
-      }
-      return true;
-    }
-
     bool MSUpdater::addColumn(const string& colName, const casa::DataType
         dataType, const ColumnDesc& cd) {
       Table& tab = itsReader->table();
@@ -198,8 +177,7 @@ namespace LOFAR {
     {
       // Only put if rownrs are filled, thus if data were not inserted.
       if (! rowNrs.rowVector().empty()) {
-        Slicer colSlicer(IPosition(2, 0, info().startchan()),
-                         IPosition(2, info().ncorr(), info().nchan()) );
+        const Slicer& colSlicer = itsReader->colSlicer();
         ArrayColumn<bool> flagCol(itsReader->table(), "FLAG");
         ScalarColumn<bool> flagRowCol(itsReader->table(), "FLAG_ROW");
         // Loop over all rows of this subset.
@@ -224,11 +202,10 @@ namespace LOFAR {
     {
       // Only put if rownrs are filled, thus if data were not inserted.
       if (! rowNrs.rowVector().empty()) {
-        Slicer colSlicer(IPosition(2, 0, info().startchan()),
-                         IPosition(2, info().ncorr(), info().nchan()) );
+        const Slicer& colSlicer = itsReader->colSlicer();
         ArrayColumn<float> weightCol(itsReader->table(), itsWeightColName);
         // Loop over all rows of this subset.
-        // (it also avoids StandardStMan putCol with RefRows problem).
+  // (it also avoids StandardStMan putCol with RefRows problem).
         Vector<uint> rows = rowNrs.convert();
         ReadOnlyArrayIterator<float> weightIter (weights, 2);
         for (uint i=0; i<rows.size(); ++i) {
@@ -243,10 +220,8 @@ namespace LOFAR {
                              const Cube<Complex>& data)
     {
       // Only put if rownrs are filled, thus if data were not inserted.
-      //cout << "Data shape"<< data.shape()<<endl;
       if (! rowNrs.rowVector().empty()) {
-        Slicer colSlicer(IPosition(2, 0, info().startchan()),
-                         IPosition(2, info().ncorr(), info().nchan()) );
+        const Slicer& colSlicer = itsReader->colSlicer();
         ArrayColumn<Complex> dataCol(itsReader->table(), itsDataColName);
         // Loop over all rows of this subset.
         // (it also avoids StandardStMan putCol with RefRows problem).
diff --git a/CEP/DP3/DPPP/test/tNDPPP.cc b/CEP/DP3/DPPP/test/tNDPPP.cc
index 39dc12f33e2df138c846011f4a19b526066e3174..031ac4f48c8e22d17e25bd9a43b7af9e33d105cb 100644
--- a/CEP/DP3/DPPP/test/tNDPPP.cc
+++ b/CEP/DP3/DPPP/test/tNDPPP.cc
@@ -825,25 +825,6 @@ void testFilter2()
   }
 }
 
-
-void testFilter3()
-{
-  cout << endl << "** testFilter3 **" << endl;
-  // Remove some baselines, update original file with different data column
-  // This test justs tests if it runs without throwing exceptions
-  {
-    ofstream ostr("tNDPPP_tmp.parset");
-    ostr << "msin=tNDPPP_tmp.MS" << endl;
-    ostr << "msout=." << endl;
-    ostr << "msout.datacolumn=DATA_FILTER" << endl;
-    ostr << "steps=[filter]" << endl;
-    ostr << "filter.baseline=!RT[16]&&*" << endl;
-    ostr << "filter.remove=False" << endl;
-  }
-  DPRun::execute ("tNDPPP_tmp.parset");
-}
-
-
 void testClear()
 {
   cout << endl << "** testClear **" << endl;
@@ -909,7 +890,6 @@ int main()
     testStationAdd();
     testFilter1();
     testFilter2();
-    testFilter3();
     testClear();
   } catch (std::exception& err) {
     std::cerr << "Error detected: " << err.what() << std::endl;
diff --git a/CEP/Imager/LofarFT/src/LofarATerm.cc b/CEP/Imager/LofarFT/src/LofarATerm.cc
index 8a7bef36ab4bc47f86982e75064f2c4e5e662e9d..8d3f02ee8377bc14afbf21264a6925cfddeb196f 100644
--- a/CEP/Imager/LofarFT/src/LofarATerm.cc
+++ b/CEP/Imager/LofarFT/src/LofarATerm.cc
@@ -82,7 +82,6 @@ namespace
     if (itsApplyIonosphere) 
     {
       String parmdbname = ms.tableName() + "/instrument";
-      if (itsParameters.fieldNumber("parmdbname") > -1) parmdbname = ms.tableName() + "/" + itsParameters.asString("parmdbname");
       cout << parmdbname << endl;
       initParmDB(parmdbname);
       cout << cal_pp_names << endl;
@@ -119,12 +118,12 @@ namespace
     if (this->itsApplyIonosphere) 
     {
       this->time = epoch.get(casa::Unit("s")).getValue();
-//       cout << "Epoch set to " << this->time << " reading parms..." << flush;
-      double freq = 60447692.87109375; // the ionospheric parameters are not frequency dependent, so just pick an arbitrary frequency
+      cout << "Epoch set to " << this->time << " reading parms..." << flush;
+      double freq = 50e6; // the ionospheric parameters are not frequency dependent, so just pick an arbitrary frequency
                           // this frequency should be within the range specified in the parmdbname
                           // this range is again quite arbitrary
                           
-      Record parms = this->pdb->getValuesGrid ("*", 0, 1e9, this->time, this->time + 0.01);
+      Record parms = this->pdb->getValues ("*", freq, freq+0.5, 1.0, this->time, this->time + 0.5, 1.0 );
       this->r0 = get_parmvalue(parms, "r_0");
       this->beta = get_parmvalue(parms, "beta");
       this->height = get_parmvalue(parms, "height");
@@ -133,9 +132,8 @@ namespace
         this->cal_pp(1, i) = get_parmvalue(parms, "Piercepoint:Y:" + this->cal_pp_names(i));
         this->cal_pp(2, i) = get_parmvalue(parms, "Piercepoint:Z:" + this->cal_pp_names(i));
         this->tec_white(i) = get_parmvalue(parms, "TECfit_white:0:" + this->cal_pp_names(i));
-
       }
-//       cout << "done." << endl;
+      cout << "done." << endl;
     }
   }
   
@@ -379,8 +377,6 @@ namespace
     const uint nX = map.directions.shape()[1];
     const uint nY = map.directions.shape()[2];
     
-//     cout << "LofarATerm::evaluateIonosphere " << nX << " " << nY << endl;
-    
     const uint nFreq = freq.size();
     
     const casa::MVPosition p = this->itsInstrument->station(station)->position().getValue();
@@ -471,7 +467,6 @@ namespace
       {
         for(uint k = 0 ; k < cal_pp_names.size(); ++k) 
         {
-//           cout << piercepoints(0,i,j) << " " << piercepoints(1,i,j) << " " << piercepoints(2,i,j) << " " << tec_white(k) << endl;
           Double dx = cal_pp(0, k) - piercepoints(0,i,j);
           Double dy = cal_pp(1, k) - piercepoints(1,i,j);
           Double dz = cal_pp(2, k) - piercepoints(2,i,j);
@@ -491,10 +486,8 @@ namespace
         for(uint k = 0 ; k < nY; ++k) 
         {
           Double phase = -tec(j,k) * a; 
-//           cout << phase << " ";
           IF(j,k,i) = DComplex(cos(phase), sin(phase));
         }
-//         cout << endl;
       }
     }
     return IF;
diff --git a/CEP/Imager/LofarFT/src/awimager.cc b/CEP/Imager/LofarFT/src/awimager.cc
index f01dd60e9742234b22f508ad604a694df75166f9..cb2d2393374b79cba1b9d254972f2a69c786fbde 100644
--- a/CEP/Imager/LofarFT/src/awimager.cc
+++ b/CEP/Imager/LofarFT/src/awimager.cc
@@ -455,9 +455,6 @@ int main (Int argc, char** argv)
     inputs.create ("applyIonosphere", "false",
                    "apply ionospheric correction",
                    "bool");
-    inputs.create ("parmdbname", "instrument",
-                   "Name of parmdb (default is instrument",
-                   "string");
     inputs.create ("splitbeam", "true",
                    "Evaluate station beam and element beam separately (splitbeam = true is faster)",
                    "bool");
@@ -536,7 +533,6 @@ int main (Int argc, char** argv)
     Bool UseEJones      = inputs.getBool("UseEJones");
     Bool MakeDirtyCorr  = inputs.getBool("MakeDirtyCorr");
     Bool applyIonosphere = inputs.getBool("applyIonosphere");
-    String parmdbname = inputs.getString("parmdbname");
     Bool splitbeam = inputs.getBool("splitbeam");
     Bool constrainFlux  = inputs.getBool("constrainflux");
     Bool preferVelocity = inputs.getBool("prefervelocity");
@@ -737,7 +733,6 @@ int main (Int argc, char** argv)
     params.define ("RowBlock", RowBlock);
     params.define ("doPSF", doPSF);
     params.define ("applyIonosphere", applyIonosphere);
-    params.define ("parmdbname", parmdbname);
     params.define ("splitbeam", splitbeam);
     params.define ("MakeDirtyCorr", MakeDirtyCorr);
     params.define ("UVmin", UVmin);
diff --git a/CEP/PyBDSM/doc/source/conf.py b/CEP/PyBDSM/doc/source/conf.py
index f9264d74e6104119f0fe13eed4d03be4d8d798c5..fdd98c94664b0edfcb07552b7edb9e2d6a1c4e05 100644
--- a/CEP/PyBDSM/doc/source/conf.py
+++ b/CEP/PyBDSM/doc/source/conf.py
@@ -50,7 +50,7 @@ copyright = u'2013, David Rafferty and Niruj Mohan'
 # The short X.Y version.
 version = '1.7'
 # The full version, including alpha/beta/rc tags.
-release = '1.7.6'
+release = '1.7.5'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff --git a/CEP/PyBDSM/doc/source/whats_new.rst b/CEP/PyBDSM/doc/source/whats_new.rst
index df16033aba6e15ec840b0771cdcbc336d28f7e13..9af9cf734fbd040aa28d6f70feb54b4815b2ad22 100644
--- a/CEP/PyBDSM/doc/source/whats_new.rst
+++ b/CEP/PyBDSM/doc/source/whats_new.rst
@@ -4,14 +4,6 @@
 What's New
 **********
 
-Version 1.7.6 (2013/09/27):
-
-    * Changed caching behavior to ensure that temporary files are always deleted after they are no longer needed or on exit.
-
-    * Renamed ``blank_zeros`` to ``blank_limit``. The ``blank_limit`` option now specifies a limit below which pixels are blanked.
-
-    * Enabled SAGECAL sky-model output.
-
 Version 1.7.5 (2013/09/02):
 
     * Fix to bug that caused a crash when images with 2 or 3 axes were used.
diff --git a/CEP/PyBDSM/src/python/_version.py b/CEP/PyBDSM/src/python/_version.py
index 27b29faaffa551ace94eba0ef21d02ced703c9dd..068ff3a5ed862362d8d4bb1c6b49f0b7932c5d38 100644
--- a/CEP/PyBDSM/src/python/_version.py
+++ b/CEP/PyBDSM/src/python/_version.py
@@ -9,7 +9,7 @@ adding to the changelog will naturally do this.
 """
 
 # Version number
-__version__ = '1.7.6'
+__version__ = '1.7.5'
 
 # Store svn Revision number. For this to work, one also needs to do:
 #
@@ -27,11 +27,6 @@ def changelog():
     PyBDSM Changelog.
     -----------------------------------------------------------------------
 
-    2013/09/27 - Version 1.7.6
-
-    2013/09/27 - Changed caching behavior to ensure that temporary files
-        are always deleted after they are no longer needed or on exit.
-
     2013/09/05 - Renamed blank_zeros to blank_limit. The blank_limit
         option now specifies a limit below which pixels are blanked.
 
diff --git a/CEP/PyBDSM/src/python/functions.py b/CEP/PyBDSM/src/python/functions.py
index c9a9ec52874d4f87e739e1f4def5291657414f0e..a5809bbb34ab074209239f7322aec206109a11d8 100755
--- a/CEP/PyBDSM/src/python/functions.py
+++ b/CEP/PyBDSM/src/python/functions.py
@@ -1179,8 +1179,7 @@ def read_image_from_file(filename, img, indir, quiet=False):
     if not quiet:
         mylogger.userinfo(mylog, "Opened '"+image_file+"'")
     if img.use_io == 'rap':
-        tmpdir = img.parentname+'_tmp'
-        hdr = convert_pyrap_header(inputimage, tmpdir)
+        hdr = convert_pyrap_header(inputimage)
     if img.use_io == 'fits':
         hdr = fits[0].header
 
@@ -1334,28 +1333,17 @@ def read_image_from_file(filename, img, indir, quiet=False):
     return data, hdr
 
 
-def convert_pyrap_header(pyrap_image, tmpdir):
+def convert_pyrap_header(pyrap_image):
     """Converts a pyrap header to a PyFITS header."""
     import tempfile
-    import os
-    import atexit
-    import shutil
     try:
         from astropy.io import fits as pyfits
     except ImportError, err:
         import pyfits
 
-    if not os.path.exists(tmpdir):
-        os.makedirs(tmpdir)
-    tfile = tempfile.NamedTemporaryFile(delete=False, dir=tmpdir)
+    tfile = tempfile.NamedTemporaryFile(delete=False)
     pyrap_image.tofits(tfile.name)
     hdr = pyfits.getheader(tfile.name)
-    if os.path.isfile(tfile.name):
-        os.remove(tfile.name)
-
-    # Register deletion of temp directory at exit to be sure it is deleted
-    atexit.register(shutil.rmtree, tmpdir, ignore_errors=True)
-
     return hdr
 
 
diff --git a/CEP/PyBDSM/src/python/readimage.py b/CEP/PyBDSM/src/python/readimage.py
index 6e9c75ff1dd0565770fe4957db9d6999a734f71a..e043bf6008591b7d14886cd3af966d6a2f56a458 100644
--- a/CEP/PyBDSM/src/python/readimage.py
+++ b/CEP/PyBDSM/src/python/readimage.py
@@ -60,8 +60,14 @@ class Op_readimage(Op):
         else:
             img.indir = img.opts.indir
 
-        # Try to trim common extensions from filename and store various
-        # paths
+        image_file = os.path.basename(img.opts.filename)
+        result = read_image_from_file(image_file, img, img.indir)
+        if result == None:
+            raise RuntimeError("Cannot open file " + repr(image_file) + ". " + img._reason)
+        else:
+            data, hdr = result
+
+        # Try to trim common extensions from filename
         root, ext = os.path.splitext(img.opts.filename)
         if ext in ['.fits', '.FITS', '.image']:
             fname = root
@@ -78,14 +84,6 @@ class Op_readimage(Op):
         img.imagename = fname + '.pybdsm'
         img.basedir = './' + fname + '_pybdsm/'
 
-        # Read in data and header
-        image_file = os.path.basename(img.opts.filename)
-        result = read_image_from_file(image_file, img, img.indir)
-        if result == None:
-            raise RuntimeError("Cannot open file " + repr(image_file) + ". " + img._reason)
-        else:
-            data, hdr = result
-
         # Check whether caching is to be used. If it is, set up a
         # temporary directory. The temporary directory will be
         # removed automatically upon exit.
diff --git a/CMake/variants/variants.dop256 b/CMake/variants/variants.dop256
index 4bb0ea4a7e0c786403568517dd941400b5fdd5f3..34c058329e36a298c8e0e6a116632c5b4facafb3 100644
--- a/CMake/variants/variants.dop256
+++ b/CMake/variants/variants.dop256
@@ -8,9 +8,8 @@ set(GNU_COMPILE_DEFINITIONS -DCL_USE_DEPRECATED_OPENCL_1_1_APIS)
 # /opt/lofar/external is searched by default
 
 # CUDA 5.0 headers refuse to try gcc 4.7. Force 4.6 for the moment.
-# This is only needed if configuring/compiling a .cu file with nvcc (not anymore).
-#set(GNU_C         /usr/bin/gcc-4.6 )
-#set(GNU_CXX       /usr/bin/g++-4.6 )
-#set(GNU_Fortran   /usr/bin/gfortran-4.6)
-#set(GNU_ASM       /usr/bin/gcc-4.6 )
+set(GNU_C         /usr/bin/gcc-4.6 )
+set(GNU_CXX       /usr/bin/g++-4.6 )
+set(GNU_Fortran   /usr/bin/gfortran-4.6)
+set(GNU_ASM       /usr/bin/gcc-4.6 )
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9bf5ed2c87a2014adcd71f34addf67d4141c69d9..f372b72aa524187770e3af895f19b9b0c83c373f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,10 +1,43 @@
 # $Id$
 
-# Do not split the following line, otherwise makeversion will fail!
-lofar_package(ExpIon 1.0 DEPENDS pyparameterset pyparmdb)
-
-include(LofarFindPackage)
-lofar_find_package(Pyrap REQUIRED)
-lofar_find_package(Boost REQUIRED COMPONENTS python thread)
-lofar_find_package(Casacore REQUIRED COMPONENTS scimath)
-add_subdirectory(src)
+cmake_minimum_required(VERSION 2.6)
+
+## ---------------------------------------------------------------------------
+## Preamble: set compilers
+## ---------------------------------------------------------------------------
+include(CMake/LofarInit.cmake)
+
+## ---------------------------------------------------------------------------
+## Project characteristics
+## ---------------------------------------------------------------------------
+project(LOFAR)
+include(LofarGeneral)
+
+## ---------------------------------------------------------------------------
+## LOFAR packages: build all, unless BUILD_PACKAGES was specified
+## ---------------------------------------------------------------------------
+include(LofarPackage)
+if(NOT DEFINED BUILD_PACKAGES)
+  lofar_add_package(LCS)
+  lofar_add_package(CEP)
+  lofar_add_package(RTCP)
+  lofar_add_package(SAS)
+  lofar_add_package(MAC)
+  lofar_add_package(LCU)
+  lofar_add_package(SubSystems)
+else(NOT DEFINED BUILD_PACKAGES)
+  separate_arguments(BUILD_PACKAGES)
+  foreach(pkg ${BUILD_PACKAGES})
+    lofar_add_package(${pkg} REQUIRED)
+  endforeach(pkg ${BUILD_PACKAGES})
+endif(NOT DEFINED BUILD_PACKAGES)
+
+## ---------------------------------------------------------------------------
+## Check if Doxygen is present; if so, generate doxygen configuration file.
+## ---------------------------------------------------------------------------
+include(LofarDoxygen)
+
+## ---------------------------------------------------------------------------
+## Generate configuration header file.
+## ---------------------------------------------------------------------------
+include(LofarConfig)
diff --git a/LCU/checkhardware/checkHardware.py b/LCU/checkhardware/checkHardware.py
index 4dd94542c63015f483843a22043fa86cc427984a..c5cbf58d671a5e2178a3ae203e02dc4b2f3717ca 100755
--- a/LCU/checkhardware/checkHardware.py
+++ b/LCU/checkhardware/checkHardware.py
@@ -1,7 +1,6 @@
 #!/usr/bin/python
 
 versiondate = 'September 2013'
-check_version = '0913'
 
 import sys
 import os
@@ -18,7 +17,6 @@ from general_lib import *
 from lofar_lib import *
 from test_lib import *
 from test_db import *
-from search_lib import search_version
 
 os.umask(001)
 
@@ -67,7 +65,7 @@ def printHelp():
 
 rcu_m1_keys  = ('LBL','O1','SP1','N1','S1')
 rcu_m3_keys  = ('LBH','O3','SP3','N3','S3')
-rcu_m5_keys  = ('HBA','M','O5','SN','SP5','N5','S5','S7','EHBA','ES7')
+rcu_m5_keys  = ('HBA','M','O5','SN','SP5','N5','S5','EHBA','ES7')
 rsp_keys     = ('RV',) + rcu_m1_keys + rcu_m3_keys + rcu_m5_keys
 tbb_keys     = ('TV','TM')
 control_keys = ('R','START','STOP')
@@ -94,9 +92,7 @@ testInfo['O5']     = "HBA mode-5 Oscillation test"
 testInfo['SP5']    = "HBA mode-5 Spurious test"
 testInfo['N5']     = "HBA mode-5 Noise test"
 testInfo['S5']     = "HBA mode-5 RF test"
-testInfo['S7']     = "HBA mode-7 RF test"
 testInfo['EHBA']   = "HBA mode-5 Element tests"
-testInfo['ES7']    = "HBA mode-7 Element signal tests"
 testInfo['M']      = "HBA mode-5 Modem test"
 testInfo['SN']     = "HBA mode-5 Summator noise test"
 testInfo['RV']     = "RSP Version test"
@@ -333,11 +329,8 @@ def main():
 
     # setup intern database with station layout
     db = cDB(StID, nRSP, nTBB, nLBL, nLBH, nHBA)
-    
-    db.script_versions = 'CHECK=%s,DB=%s,TEST=%s,SEARCH=%s,LOFAR=%s,GENERAL=%s' %\
-                         (check_version, db_version, test_version, search_version, lofar_version, general_version)
+
     db.check_start_time = time.gmtime()
-    
     writeMessage('!!!  This station will be in use for a test! Please do not use the station!  (script version %s)  !!!' %(versiondate))
     start_level = swlevel()
     sw_level = swlevel(2)
diff --git a/LCU/checkhardware/doServiceTest.sh b/LCU/checkhardware/doServiceTest.sh
new file mode 100755
index 0000000000000000000000000000000000000000..19eff462b67993973ba44d129ff19c90e8d7dcd7
--- /dev/null
+++ b/LCU/checkhardware/doServiceTest.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+# usage
+#
+# doServiceTest.sh
+# doServiceTest.sh start=20130629_13:00:45 stop=20130629_16:00:45 
+# doServiceTest.sh stop=20130629_16:00:45 
+
+host=`hostname -s`
+
+locallogdir="/opt/stationtest/data/"
+globallogdir="/globalhome/log/"
+
+filenameNow=$locallogdir$host"_StationTest.csv"
+filenameHistory=$locallogdir$host"_L2_StationTestHistory.csv"
+
+# Check hardware in CheckLevel 2, do all tests
+start=""
+stop=""
+if [ $# -eq "2" ]
+then
+    start="-$1"
+    stop="-$2"
+fi
+if [ $# -eq "1" ]
+then
+    stop="-$1"
+fi
+checkHardware.py -l=2 $start $stop
+
+# Add to history
+cat $filenameNow >> $filenameHistory
+
+# Copy to L2 file in local dir
+cp $filenameNow $locallogdir$host"_L2_StationTest.csv"
+
+# Copy from local to global dir
+cp $filenameNow $globallogdir$host"_L2_StationTest.csv"
+cp $filenameHistory $globallogdir
+
+# Show results on screen
+showTestResult.py -f=$filenameNow
\ No newline at end of file
diff --git a/LCU/checkhardware/doShortStationTest.sh b/LCU/checkhardware/doShortStationTest.sh
new file mode 100755
index 0000000000000000000000000000000000000000..5c9de8ea05e0cbcfae818f1b0a3776912b34034b
--- /dev/null
+++ b/LCU/checkhardware/doShortStationTest.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+host=`hostname -s`
+
+locallogdir="/opt/stationtest/data/"
+globallogdir="/globalhome/log/"
+
+filenameNow=$locallogdir$host"_StationTest.csv"
+filenameHistory=$locallogdir$host"_StationTestHistory.csv"
+
+# Check hardware in CheckLevel 1, only antennas
+checkHardware.py -l=1
+
+# Add too history
+cat $filenameNow >> $filenameHistory
+
+# Add test results too PVSS and make bad_rcu_file
+#updatePVSS.py -N=5,50,1 -J=5,50,2 -reset -S=20 -E
+
+
+#UNCOMMENT NEXT LINE WHEN PVSS UPDATE MUST BE ENABLED AGAIN
+#updatePVSS.py -N=5,50,3 -J=5,50,3 -E -S=10 # new settings by Wilfred, 9-7-2013
+
+# Make old station log files
+makeStationLogFile.py
+
+# Copy from local to global dir
+cp $filenameNow $globallogdir
+cp $filenameHistory $globallogdir
+
+showTestResult.py -f=$filenameNow
diff --git a/LCU/checkhardware/doStationTest.sh b/LCU/checkhardware/doStationTest.sh
index a8dda52c930621748a08be3d16cb7bb67448a6b9..ca6d881f70abdabe4d28f8e1344507620e9e4de5 100755
--- a/LCU/checkhardware/doStationTest.sh
+++ b/LCU/checkhardware/doStationTest.sh
@@ -1,104 +1,47 @@
 #!/bin/bash
- 
-
- # default values
-START=""
-STOP=""
-LEVEL=2
-UPDATE="no"
-SERVICE="no"
-HELP="no"
-
-# get command line options
-while getopts s:e:tTurh option
-do
-    case "${option}"
-    in
-        s) START=${OPTARG};;
-        e) STOP=${OPTARG};;
-        t) LEVEL=1;;
-        T) LEVEL=2;;
-        u) UPDATE="yes";;
-        r) SERVICE="yes";;
-        h) HELP="yes";;
-    esac
-done
-
-if [ $HELP == "yes" ]
-then
-    echo "Usage:"
-    echo "   doStationTest.sh -s 20130624_04:00:00 -e 20130624_06:00:00 -u"
-    echo "   -s : start time"
-    echo "   -e : end time"
-    echo "   -u : update pvss"
-    echo "   -t : do short test L1"
-    echo "   -T : do long test L2 (default)"
-    echo "   -r : do service test and show results"
-    echo "   -h : show this screen"
-    exit
-fi
-
+# 
+# nohup lcurun -s today -c '/opt/stationtest/doStationTest.sh start=20130624_04:00:00 stop=20130624_06:00:00 &' &
+#
 host=`hostname -s`
 
-# set filenames and dirs
 locallogdir="/opt/stationtest/data/"
 globallogdir="/globalhome/log/"
 
-filenameNow=$host"_StationTest.csv"
-if [ $SERVICE == "yes" ]
-then
-    filenameLocal=$host"_S_StationTest.csv"
-    filenameLocalHistory=$host"_S_StationTestHistory.csv"
-else
-    filenameLocal=$host"_L"$LEVEL"_StationTest.csv"
-    filenameLocalHistory=$host"_L"$LEVEL"_StationTestHistory.csv"
-fi
+filenameNow=$locallogdir$host"_StationTest.csv"
+filenameHistory=$locallogdir$host"_L2_StationTestHistory.csv"
 
-# set test level
-level="-l="$LEVEL
-
-# set start and stop time if given
+# Check hardware in CheckLevel 2, do all tests
 start=""
 stop=""
-if [ -n "$STOP" ]
+if [ $# -eq "2" ]
+then
+    start="-$1"
+    stop="-$2"
+fi
+if [ $# -eq "1" ]
 then
-    echo "STOP not empty"
-    if [ -n "$START" ]
-    then
-        echo "START not empty"
-        start="-start="$START
-    fi
-    stop="-stop="$STOP
+    stop="-$1"
 fi
 
-# Check hardware
-checkHardware.py $level $start $stop
+checkHardware.py -l=2 $start $stop
 
 err=$?
 echo $err
 if [ $err -eq 0 ]
 then
-    # Copy to Lx file in local dir
-    cp $locallogdir$filenameNow $locallogdir$filenameLocal
-    
     # Add to history
-    cat $locallogdir$filenameNow >> $locallogdir$filenameLocalHistory
+    cat $filenameNow >> $filenameHistory
+
+    # Copy to L2 file in local dir
+    cp $filenameNow $locallogdir$host"_L2_StationTest.csv"
 
     # Copy from local to global dir
-    cp $locallogdir$filenameLocal $globallogdir
-    cp $locallogdir$filenameLocalHistory $globallogdir
+    cp $filenameNow $globallogdir$host"_L2_StationTest.csv"
+    cp $filenameHistory $globallogdir
 
     # Add test results too PVSS and make bad_rcu_file
-    #updatePVSS.py -N=5,50,1 -J=5,50,2 -S=20 -E
     #new settings by Wilfred, 9-7-2013
-    if [ $UPDATE == "yes" ]
-    then
-        updatePVSS.py S=10 -N=5,50,3 -J=5,50,3 -E -S=10 -LBLN=5,50,3 -LBLJ=5,50,3 -LBS=10 -LBHN=5,50,3 -LBHJ=5,50,3 -LBHS=10
-    fi
-fi
+    # add lbl and lbh settings aug-2013
+    updatePVSS.py S=10 -N=5,50,3 -J=5,50,3 -E -S=10 -LBLN=5,50,3 -LBLJ=5,50,3 -LBS=10 -LBHN=5,50,3 -LBHJ=5,50,3 -LBHS=10
 
-if [ $SERVICE == "yes" ]
-then
-    # Show last results on screen
-    showTestResult.py -f=$locallogdir$filenameNow
-fi
\ No newline at end of file
+fi
diff --git a/LCU/checkhardware/makeStationLogFile.py b/LCU/checkhardware/makeStationLogFile.py
new file mode 100755
index 0000000000000000000000000000000000000000..6a6e8dd862c16495da12f193c231588040647ee3
--- /dev/null
+++ b/LCU/checkhardware/makeStationLogFile.py
@@ -0,0 +1,181 @@
+#!/usr/bin/python
+# format converter
+# from csv file to log file
+#
+# P.Donker
+
+import sys
+import os
+from time import gmtime
+
+libPath = libPath = '/opt/stationtest/lib'
+sys.path.insert(0, libPath)
+
+from general_lib import *
+
+f = open("/opt/stationtest/checkHardware.conf", 'r')
+data = f.readlines()
+f.close()
+logdir = ''
+for line in data:
+    if line.find('log-dir-global') != -1:
+        key, logdir = line.strip().split('=')
+        if os.path.exists(logdir):
+            break
+    if line.find('log-dir-local') != -1:
+        key, logdir = line.strip().split('=')
+        if not os.path.exists(logdir):
+            print "No log dir found"
+            sys.exit(-1)
+
+
+testfilename = '%s_StationTest.csv' %(getHostName())
+
+fullFilename = os.path.join(logdir, testfilename)
+
+try:        
+    f = open(fullFilename, 'r')
+    testdata = f.readlines()
+    f.close()
+except:
+    print "Can not open/read %s" %(fullFilename)
+    sys.exit(-1)
+
+fileinfo = os.stat(fullFilename)
+log = cStationLogger(logdir, gmtime(fileinfo[-1]))
+
+last_c_summator = -1
+for line in testdata:
+    if line[0] == '#':
+        continue
+    keyinfo = dict()
+    info = line.split(',')
+    #print info
+    date    = info[0]
+    part    = info[1]
+    partNr = '---'
+    if info[2] != '---':
+        partNr  = int(info[2])
+    msgType = info[3].strip()
+    for i in range(4,len(info)):
+            if info[i].find('=') != -1:
+                key, valstr = info[i].split('=')
+                vallist = valstr.split()
+                if len(vallist) == 1:
+                    keyinfo[key] = vallist[0]
+                elif len(vallist) > 1:
+                    keyinfo[key] = vallist
+            else:
+                keyinfo[info[i]] = '-'
+    
+    if part == 'TBB':
+        if msgType == 'VERSION':
+            if partNr == '---':
+                log.addLine('TBBver>: Sv=normal  Pr=normal , Version Error TBBdriver=%s tbbctl=%s' %\
+                           (keyinfo['TBBDRIVER'], keyinfo['TBBCTL']))
+            else:
+                log.addLine('TBBver>: Sv=normal  Pr=normal , Board=%d Version Error TP=%s MP=%s' %\
+                           (partNr, keyinfo['TP'], keyinfo['MP']))
+        elif msgType == 'MEMORY':
+            log.addLine('TBBmem>: Sv=normal  Pr=normal , Board=%d Memory Error' %\
+                           (partNr))
+    
+    if part == 'RSP':
+        if msgType == 'VERSION':
+            log.addLine('TBBver>: Sv=normal  Pr=normal , Board=%d, Version Error BP=%s AP=%s' %\
+                       (partNr, keyinfo['BP'], keyinfo['AP']))
+    
+    if part == 'LBL':
+        rcu = partNr * 2 
+        if msgType == 'LOW_NOISE':
+    		log.addLine('LBAmd1>: Sv=normal  Pr=normal , LBA Outer (LBL) low noise: RCU: (%d,%d)' %\
+                        (partNr*2, partNr*2+1))
+        elif msgType == 'HIGH_NOISE':
+    		log.addLine('LBAmd1>: Sv=normal  Pr=normal , LBA Outer (LBL) high noise: RCU: (%d,%d)' %\
+                        (partNr*2, partNr*2+1))
+        elif msgType == 'OSCILLATION':
+    		log.addLine('LBAosc1>: Sv=normal  Pr=normal , LBA Outer (LBL) large oscillation: RCU: (%d,%d)' %\
+                        (partNr*2, partNr*2+1))                
+        elif msgType == 'FAIL':
+            if keyinfo.has_key('X'):
+                log.addLine('LBAmd1>: Sv=normal  Pr=normal , LBA Outer (LBL) defect: RCU: %d factor: %3.1f' %\
+                           (partNr*2, float(keyinfo['X'])))
+            if keyinfo.has_key('Y'):
+                log.addLine('LBAmd1>: Sv=normal  Pr=normal , LBA Outer (LBL) defect: RCU: %d factor: %3.1f' %\
+                           (partNr*2+1, float(keyinfo['Y'])))               
+        
+        elif msgType == 'DOWN':
+            log.addLine('LBAdn1>: Sv=normal  Pr=normal , LBA Outer (LBL) down: RCU: %d factor: %3.1f offset: %d' %\
+                       (partNr*2, float(keyinfo['X']), int(keyinfo['Xoff'])))
+            log.addLine('LBAdn1>: Sv=normal  Pr=normal , LBA Outer (LBL) down: RCU: %d factor: %3.1f offset: %d' %\
+                       (partNr*2+1, float(keyinfo['Y']), int(keyinfo['Yoff'])))
+        
+        elif msgType == 'TOOLOW':
+                log.addLine('LBAmd1>: Sv=normal  Pr=normal , LBA	levels to low!!!' )               
+            
+    if part == 'LBH':
+        if msgType == 'LOW_NOISE':
+    		log.addLine('LBAmd3>: Sv=normal  Pr=normal , LBA Inner (LBH) low noise: RCU: (%d,%d)' %\
+                        (partNr*2, partNr*2+1))
+        elif msgType == 'HIGH_NOISE':
+    		log.addLine('LBAmd3>: Sv=normal  Pr=normal , LBA Inner (LBH) high noise: RCU: (%d,%d)' %\
+                        (partNr*2, partNr*2+1))
+        elif msgType == 'OSCILLATION':
+    		log.addLine('LBAosc3>: Sv=normal  Pr=normal , LBA Inner (LBH) large oscillation: RCU: (%d,%d)' %\
+                        (partNr*2, partNr*2+1))                
+        elif msgType == 'FAIL':
+            if keyinfo.has_key('X'):
+                log.addLine('LBAmd3>: Sv=normal  Pr=normal , LBA Inner (LBH) defect: RCU: %s factor: %3.1f' %\
+                           (partNr*2, float(keyinfo['X'])))
+            if keyinfo.has_key('Y'):
+                log.addLine('LBAmd3>: Sv=normal  Pr=normal , LBA Inner (LBH) defect: RCU: %s factor: %3.1f' %\
+                           (partNr*2+1, float(keyinfo['Y'])))           
+        
+        elif msgType == 'DOWN':
+            log.addLine('LBAdn3>: Sv=normal  Pr=normal , LBA Inner (LBH) down: RCU: %d factor: %3.1f offset: %d' %\
+                       (partNr*2, float(keyinfo['X']), int(keyinfo['Xoff'])))
+            log.addLine('LBAdn3>: Sv=normal  Pr=normal , LBA Inner (LBH) down: RCU: %d factor: %3.1f offset: %d' %\
+                       (partNr*2+1, float(keyinfo['Y']), int(keyinfo['Yoff'])))
+        
+        elif msgType == 'TOOLOW':
+                log.addLine('LBAmd3>: Sv=normal  Pr=normal , LBA	levels to low!!!' )               
+
+    if part == 'HBA':
+    	if msgType == 'LOW_NOISE':
+    		log.addLine('HBAmd5>: Sv=normal  Pr=normal , Tile %d - RCU (%d,%d); low noise' %\
+                        (partNr, partNr*2, partNr*2+1))
+        
+        elif msgType == 'HIGH_NOISE':
+    		log.addLine('HBAmd5>: Sv=normal  Pr=normal , Tile %d - RCU (%d,%d); high noise' %\
+                        (partNr, partNr*2, partNr*2+1))                
+        
+        elif msgType == 'OSCILLATION':
+    		log.addLine('HBAosc>: Sv=normal  Pr=normal , Tile %d - RCU (%d,%d); Large oscillation' %\
+                        (partNr, partNr*2, partNr*2+1))                
+                
+        elif msgType == 'C_SUMMATOR':
+    		last_c_summator = partNr
+    		log.addLine('HBAmdt>: Sv=normal  Pr=normal , Tile %d - RCU %d; Broken. No modem communication' %\
+                                (partNr, partNr*2+1))
+        elif last_c_summator != partNr and msgType == 'FAIL':
+            for elem_nr in range(1,17,1):
+
+                if keyinfo.has_key('M%d' %(elem_nr)):
+                    val = keyinfo.get('M%d' %(elem_nr))
+                    log.addLine('HBAmdt>: Sv=normal  Pr=normal , Tile %d - RCU %d; Element %s Broken. No modem communication : (%s)' %\
+                                (partNr, partNr*2+1, elem_nr, val))
+
+                if keyinfo.has_key('X%d' %(elem_nr)):
+                    val = keyinfo.get('X%d' %(elem_nr))
+
+                    log.addLine('HBAmd5>: Sv=normal  Pr=normal , Tile %d - RCU %d; Element %d Broken. RF-signal to low : (Factor = %s, CtrlWord = 128)' %\
+                               (partNr, partNr*2, elem_nr, val[0]))
+                    log.addLine('HBAmd5>: Sv=normal  Pr=normal , Tile %d - RCU %d; Element %d Broken. RF-signal to low : (Factor = %s, CtrlWord = 253)' %\
+                               (partNr, partNr*2, elem_nr, val[3]))
+                               
+                if keyinfo.has_key('Y%d' %(elem_nr)):
+                    val = keyinfo.get('Y%d' %(elem_nr))
+                    log.addLine('HBAmd5>: Sv=normal  Pr=normal , Tile %d - RCU %d; Element %d Broken. RF-signal to low : (Factor = %s, CtrlWord = 128))' %\
+                               (partNr, partNr*2+1, elem_nr, val[0]))
+                    log.addLine('HBAmd5>: Sv=normal  Pr=normal , Tile %d - RCU %d; Element %d Broken. RF-signal to low : (Factor = %s, CtrlWord = 253))' %\
+                               (partNr, partNr*2+1, elem_nr, val[3]))
diff --git a/LCU/checkhardware/showTestResult.py b/LCU/checkhardware/showTestResult.py
index 2233b2f02d449c3aee71b0e5ad044e9143b72feb..bfb290b1595fe26811d1c0862592932fba7995e5 100755
--- a/LCU/checkhardware/showTestResult.py
+++ b/LCU/checkhardware/showTestResult.py
@@ -76,11 +76,16 @@ def main():
         
     RCUx = RCUy = 0
     
+    banner = "\n"
+    banner += "------------------------------------------------------------------------------------------------------\n"
+    banner += " #       #     ###  #####       ###  #  #  ####   ###  #  #       ####   ####   ###   #   #  #   #####\n"
+    banner += " #      # #   #       #        #     #  #  #     #     # #        #   #  #     #      #   #  #     #  \n"
+    banner += " #     #   #   ###    #        #     ####  ###   #     ##         ####   ###    ###   #   #  #     #  \n"
+    banner += " #     #####      #   #        #     #  #  #     #     # #        #  #   #         #  #   #  #     #  \n"
+    banner += " ####  #   #   ###    #    o    ###  #  #  ####   ###  #  #   o   #   #  ####   ###    ###   ####  #  \n"
+    banner += "------------------------------------------------------------------------------------------------------\n"
+    print banner
     
-    print "\n"+"-"*103
-    print ">"*36+"   LAST STATION-CHECK RESULT   "+"<"*36
-    print "-"*103
-
     _part = ''
     _part_nr = -1
     _element_nr = -1
@@ -124,10 +129,9 @@ def main():
             continue
         date = d[0]
         
-        if args.has_key('D'):
-            if last_date != date:
-                print '\n'+'#'*103
-            last_date = date
+        if last_date != date:
+            print '\n'+'#'*103
+        last_date = date
         
         if first_date != 0 and int(date) < int(first_date):
             continue
@@ -157,20 +161,17 @@ def main():
             #    print "   NEW TEST  "*8
             #    print '-'*103
             #    
-            if msg == 'VERSIONS':
-                print "Used script versions: checkHardware=%s, test_db=%s, test_lib=%s, search_lib=%s\n" %(kv.get('CHECK'), kv.get('DB'), kv.get('TEST'), kv.get('SEARCH'))
-                
             if msg == 'STATION':
-                print "-- Station name     : %s" %(kv.get('NAME'))
+                print ">> Station name : %s" %(kv.get('NAME'))
             
             if msg == 'RUNTIME':
-                print "-- Check runtime    : %s .. %s" %(kv.get('START').replace('T',' '), kv.get('STOP').replace('T',' '))
+                print ">> Check runtime: %s .. %s" %(kv.get('START').replace('T',' '), kv.get('STOP').replace('T',' '))
             
             if msg == 'CHECKS':
-                print "-- Checks done      : %s" %(string.join(d[4:],', ')) 
+                print ">> Checks done  : %s" %(string.join(d[4:],', ')) 
             
             if msg == 'STATISTICS':
-                print "-- Bad antennas     : LBL=%s, LBH=%s, HBA=%s" %\
+                print ">> Bad antennas : LBL=%s, LBH=%s, HBA=%s" %\
                       (kv.get('BAD_LBL'), kv.get('BAD_LBH'), kv.get('BAD_HBA'))
             
         if part == 'RSP':
@@ -225,8 +226,8 @@ def main():
                 print hdr + "="*(104-len(hdr))    
             
             lbaNumber = partnumber
-            #if part == 'LBL':
-            #    lbaNumber += 48
+            if part == 'LBL':
+                lbaNumber += 48
             
             if msg == 'NOSIGNAL':
                 print "   NO test signal found"
diff --git a/LCU/checkhardware/updatePVSS.py b/LCU/checkhardware/updatePVSS.py
index c4e5bc3ab1ebb5d81574d20ce32e9b4656dbc425..27bb83be02600ec72d6e3ff0727cdfce7c69a87e 100755
--- a/LCU/checkhardware/updatePVSS.py
+++ b/LCU/checkhardware/updatePVSS.py
@@ -37,7 +37,6 @@ def main():
     
     if args.has_key('RESET'):
         resetPVSS(state=0)
-        addManualDataToPVSS()
     
     if args.has_key('NO_UPDATE'):
         print "PVSS Update skipped"
@@ -60,8 +59,8 @@ def main():
         
     testdata = f.readlines()
     f.close()
-    bad_lba, bad_hba = addDataToPVSS(testdata)
-    addDataToBadRcuFile(bad_lba, bad_hba)
+    bad_lbl, bad_lbh, bad_hba = addDataToPVSS(testdata)
+    addDataToBadRcuFile(bad_lbl, bad_lbh, bad_hba)
 
 # print help screen
 def printHelp():
@@ -189,7 +188,6 @@ def resetPVSS(state=0):
     if not args.has_key('TEST'):
         sendCmd("setObjectState", "stationtes:reset %s" %(full_filename))
         sleep(2.0)
-    
 
 
 # add manual filled list with bad antennas to pvss
@@ -222,13 +220,13 @@ def addManualDataToPVSS():
 def addDataToPVSS(data):
     global args
     global State
-    bad_lba = dict()
+    bad_lbl = dict()
+    bad_lbh = dict()
     bad_hba = dict() 
     
     RFrefX = 0.0
     RFrefY = 0.0
     
-         
     for line in data:
         if line[0] == '#':
             continue
@@ -251,62 +249,106 @@ def addDataToPVSS(data):
                         keyinfo[key] = vallist
                 else:
                     keyinfo[info[i]] = '-'
-        
-        
+
         if part == 'LBL':
-            lban_limits = args.get('LBLN','0.0')
-            lbaj_limits = args.get('LBLJ','0.0')
-            lbas_limit  = args.get('LBLS','0.0')
-        elif part == 'LBH':
-            lban_limits = args.get('LBHN','0.0')
-            lbaj_limits = args.get('LBHJ','0.0')
-            lbas_limit  = args.get('LBHS','0.0')
-        
-        if part in ('LBL', 'LBH'):
             if msgType == 'TESTSIGNAL':
                 RFrefX = float(keyinfo.get('SIGNALX','0.0'))
                 RFrefY = float(keyinfo.get('SIGNALY','0.0'))
                 
             if msgType == 'LOW_NOISE':
                 if float(keyinfo.get('Xproc','0.0')) >= 100.0 or float(keyinfo.get('Yproc','0.0')) >= 100.0:
-                    sendToPVSS("low-noise", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
-                    bad_lba[partNr] = 1
+                    sendToPVSS("low-noise", "LOFAR_PIC_LBA%03d" %(partNr+48), State['BROKEN'])
+                    bad_lbl[partNr] = 1
 
             elif msgType == 'HIGH_NOISE':
+                limits = args.get('LBLN','0.0')
                 proc_limit_2 = 0.0
                 diff_limit = 0.0
-                if len(lban_limits) > 1:
-                    proc_limit_1 = float(lban_limits[0])
-                    proc_limit_2 = float(lban_limits[1])
-                    diff_limit = float(lban_limits[2])
+                if len(limits) > 1:
+                    proc_limit_1 = float(limits[0])
+                    proc_limit_2 = float(limits[1])
+                    diff_limit = float(limits[2])
                 else:
-                    proc_limit_1 = float(lban_limits)
+                    proc_limit_1 = float(limits)
                     
                 if float(keyinfo.get('Xproc','0.0')) >= proc_limit_1 or float(keyinfo.get('Yproc','0.0')) >= proc_limit_1:
                     if (float(keyinfo.get('Xproc','0.0')) < proc_limit_2 and float(keyinfo.get('Xdiff','0.0')) < diff_limit) and\
                        (float(keyinfo.get('Yproc','0.0')) < proc_limit_2 and float(keyinfo.get('Ydiff','0.0')) < diff_limit):
                         pass
                     else:
-                        sendToPVSS("noise", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
-                bad_lba[partNr] = 1
+                        sendToPVSS("noise", "LOFAR_PIC_LBA%03d" %(partNr+48), State['BROKEN'])
+                bad_lbl[partNr] = 1
 
             elif msgType == 'JITTER':
+                limits = args.get('LBLJ','0.0')
                 proc_limit_2 = 0.0
                 diff_limit = 0.0
-                if len(lbaj_limits) > 1:
-                    proc_limit_1 = float(lbaj_limits[0])
-                    proc_limit_2 = float(lbaj_limits[1])
-                    diff_limit = float(lbla_limits[2])
+                if len(limits) > 1:
+                    proc_limit_1 = float(limits[0])
+                    proc_limit_2 = float(limits[1])
+                    diff_limit = float(limits[2])
                 else:
-                    proc_limit_1 = float(lbla_limits)
+                    proc_limit_1 = float(limits)
                 
                 if float(keyinfo.get('Xproc','0.0')) >= proc_limit_1 or float(keyinfo.get('Yproc','0.0')) >= proc_limit_1:
                     if (float(keyinfo.get('Xproc','0.0')) < proc_limit_2 and float(keyinfo.get('Xdiff','0.0')) < diff_limit) and\
                        (float(keyinfo.get('Yproc','0.0')) < proc_limit_2 and float(keyinfo.get('Ydiff','0.0')) < diff_limit):
                         pass
                     else:
-                        sendToPVSS("jitter", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
-                bad_lba[partNr] = 1
+                        sendToPVSS("jitter", "LOFAR_PIC_LBA%03d" %(partNr+48), State['BROKEN'])
+                bad_lbl[partNr] = 1
+            
+            elif msgType == 'OSCILLATION':
+                sendToPVSS("oscillating", "LOFAR_PIC_LBA%03d" %(partNr+48), State['BROKEN'])
+                bad_lbl[partNr] = 1
+
+            elif msgType == 'RF_FAIL':
+                comment = "rf-fail-"
+                flag = False
+                limit = float(args.get('LBLS','0.0'))
+                X = float(keyinfo.get('X','0.0'))
+                Y = float(keyinfo.get('Y','0.0'))
+                if X > 0.0:
+                    if abs(X - RFrefX) > limit:
+                        comment += "X"
+                        flag = True
+                if Y > 0.0:
+                    if abs(Y - RFrefY) > limit:
+                        comment += "Y"
+                        flag = True        
+                if flag:
+                    print 'LBL %3.1f (%3.1f) %3.1f (%3.1f)' %(X, RFrefX, Y, RFrefY)
+                    sendToPVSS(comment, "LOFAR_PIC_LBA%03d" %(partNr+48), State['BROKEN'])
+                bad_lbl[partNr] = 1
+            
+            elif msgType == 'DOWN':
+                sendToPVSS("down", "LOFAR_PIC_LBA%03d" %(partNr+48), State['BROKEN'])
+                bad_lbl[partNr] = 1
+                
+        if part == 'LBH':
+            if msgType == 'LOW_NOISE':
+                if float(keyinfo.get('Xproc','0.0')) >= 100.0 or float(keyinfo.get('Yproc','0.0')) >= 100.0:
+                    sendToPVSS("low-noise", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
+                    bad_lbh[partNr] = 1 
+                    
+            elif msgType == 'HIGH_NOISE':
+                limits = args.get('LBHN','0.0')
+                proc_limit_2 = 0.0
+                diff_limit = 0.0
+                if len(limits) > 1:
+                    proc_limit_1 = float(limits[0])
+                    proc_limit_2 = float(limits[1])
+                    diff_limit = float(limits[2])
+                else:
+                    proc_limit_1 = float(limits)
+                    
+                if float(keyinfo.get('Xproc','0.0')) >= proc_limit_1 or float(keyinfo.get('Yproc','0.0')) >= proc_limit_1:
+                    if (float(keyinfo.get('Xproc','0.0')) < proc_limit_2 and float(keyinfo.get('Xdiff','0.0')) < diff_limit) and\
+                       (float(keyinfo.get('Yproc','0.0')) < proc_limit_2 and float(keyinfo.get('Ydiff','0.0')) < diff_limit):
+                        pass
+                    else:
+                        sendToPVSS("noise", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
+                bad_lbh[partNr] = 1
 
             elif msgType == 'JITTER':
                 limits = args.get('LBHJ','0.0')
@@ -329,29 +371,30 @@ def addDataToPVSS(data):
             
             elif msgType == 'OSCILLATION':
                 sendToPVSS("oscillating", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
-                bad_lba[partNr] = 1
-
+                bad_lbh[partNr] = 1
+                    
             elif msgType == 'RF_FAIL':
                 comment = "rf-fail-"
                 flag = False
+                limit = float(args.get('LBHS','0.0'))
                 X = float(keyinfo.get('X','0.0'))
                 Y = float(keyinfo.get('Y','0.0'))
                 if X > 0.0:
-                    if abs(X - RFrefX) > float(lbas_limit):
+                    if abs(X - RFrefX) > limit:
                         comment += "X"
                         flag = True
                 if Y > 0.0:
-                    if abs(Y - RFrefY) > float(lbas_limit):
+                    if abs(Y - RFrefY) > limit:
                         comment += "Y"
                         flag = True        
                 if flag:
-                    p#rint 'LBL %3.1f (%3.1f) %3.1f (%3.1f)' %(X, RFrefX, Y, RFrefY)
+                    #print 'LBH %3.1f (%3.1f) %3.1f (%3.1f)' %(X, RFrefX, Y, RFrefY)
                     sendToPVSS(comment, "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
-                bad_lba[partNr] = 1
-            
+                bad_lbh[partNr] = 1
+                    
             elif msgType == 'DOWN':
                 sendToPVSS("down", "LOFAR_PIC_LBA%03d" %(partNr), State['BROKEN'])
-                bad_lba[partNr] = 1
+                bad_lbh[partNr] = 1
                     
         if part == 'HBA':
             if msgType == 'LOW_NOISE':
@@ -453,7 +496,6 @@ def addDataToPVSS(data):
                         if keyinfo.has_key('Y%d' %(elem_nr)):
                             RFY_errors += 1    
                             
-
                     send_tile_errors = 0        
                     for elem_nr in range(1,17,1):
                         send_elem_errors = 0
@@ -500,10 +542,10 @@ def addDataToPVSS(data):
                         sendToPVSS("", "LOFAR_PIC_HBA%02d" %(partNr), State['BROKEN'])
                         bad_hba[partNr] = 1
                     
-    return (list(bad_lba), list(bad_hba))                    
+    return (list(bad_lbl), list(bad_lbh), list(bad_hba))                    
 
 # write bad rcu's to file in logdir
-def addDataToBadRcuFile(bad_lba, bad_hba):
+def addDataToBadRcuFile(bad_lbl, bad_lbh, bad_hba):
     global nLBL
     
     # add bad rcus to file                               
@@ -511,23 +553,23 @@ def addDataToBadRcuFile(bad_lba, bad_hba):
     full_filename = os.path.join(logdir, filename) 
     f = open(full_filename, 'w')
 
-#    if nLBL:
-#        bad = ""
-#        for ant in sorted(bad_lbl):
-#            bad += "%d," %(ant*2)
-#            bad += "%d," %(ant*2+1)
-#        if len(bad):
-#            bad = bad[:-1]
-#        bad = "LBL=[" + bad + "]\n"
-#        f.write(bad)
+    if nLBL:
+        bad = ""
+        for ant in sorted(bad_lbl):
+            bad += "%d," %(ant*2)
+            bad += "%d," %(ant*2+1)
+        if len(bad):
+            bad = bad[:-1]
+        bad = "LBL=[" + bad + "]\n"
+        f.write(bad)
     
     bad = ""
-    for ant in sorted(bad_lba):
+    for ant in sorted(bad_lbh):
         bad += "%d," %(ant*2)
         bad += "%d," %(ant*2+1)
     if len(bad):
         bad = bad[:-1]
-    bad = "LBA=[" + bad + "]\n"
+    bad = "LBH=[" + bad + "]\n"
     f.write(bad)
     
     bad = ""
diff --git a/MAC/Deployment/data/OTDB/CMakeLists.txt b/MAC/Deployment/data/OTDB/CMakeLists.txt
index 7021041657b8a609268169d9c3e62cb6cfdcbee4..e48c9aa1b8495df3931eb5e78be5decf0ac07188 100644
--- a/MAC/Deployment/data/OTDB/CMakeLists.txt
+++ b/MAC/Deployment/data/OTDB/CMakeLists.txt
@@ -9,8 +9,6 @@ install(PROGRAMS
   loadPICtree
 DESTINATION sbin)
 
-install(PROGRAMS Component_diff.sh DESTINATION sbin RENAME Component_diff)
-
 file(GLOB otdb_comps
   *.comp
   *.list
diff --git a/MAC/Deployment/data/StaticMetaData/createFiles b/MAC/Deployment/data/StaticMetaData/createFiles
index a9bdcc6318097d56235b2a627c8a29190a266a04..515962f3c8e97235da347b558007631f5816be7b 100755
--- a/MAC/Deployment/data/StaticMetaData/createFiles
+++ b/MAC/Deployment/data/StaticMetaData/createFiles
@@ -429,26 +429,12 @@ def createRSPDriverFile_Test(resultDir, stationName, dataDir, alias):
     os.write(outFile, RSPconfig)
     os.close(outFile)
 
+
     # An ugly way to get rid of all lines in the template file that are not
     # filled yet.
     cmd = "grep -v '@' "+dataDir+"/RSPDriver.conf.tmp > "+resultDir+"/RSPDriver.conf";
     os.system(cmd);
 
-    # Adapt RSPConnections.dat on bgfen1 (for routing of data to test IO nodes)
-    # First remove existing entries
-    print "Adapting /opt/lofar/etc/RSPConnections.dat on bgfen1"
-    cmd = "ssh 10.170.200.11 sed -i /^"+stationName.upper()+".*/d /opt/lofar/etc/RSPConnections.dat"
-    os.system(cmd);
-    ip_mac_alias = findIPandMAC_test(alias[0],dataDir)
-    cmd = "ssh 10.170.200.11 'echo "+stationName.upper()+" RSP_0 "+ip_mac_alias[0][2]+" >> /opt/lofar/etc/RSPConnections.dat'"
-    os.system(cmd);
-
-    if (stationName[0:2].upper() == "CS"):
-      ip_mac_alias = findIPandMAC_test(alias[1],dataDir)
-      cmd = "ssh 10.170.200.11 'echo "+stationName.upper()+" RSP_1 "+ip_mac_alias[0][2]+" >> /opt/lofar/etc/RSPConnections.dat'"
-      os.system(cmd);
-        
-
 def createTBBDriverFile(resultDir, stationName, dataDir):
     """
     Fills in the markers in the TBBDriver.conf file to match the values for the given station.
diff --git a/MAC/Navigator2/panels/Processes/BGPAppl.pnl b/MAC/Navigator2/panels/Processes/BGPAppl.pnl
index 9fee42c29405e3990cee3e23f89188b5ee927baa..cc2979f753b30a079657b595630bdef2304eb3c1 100644
--- a/MAC/Navigator2/panels/Processes/BGPAppl.pnl
+++ b/MAC/Navigator2/panels/Processes/BGPAppl.pnl
@@ -1,7 +1,7 @@
 V 11
 1
 LANG:1 0 
-PANEL,-1 -1 1013 764 N "_3DFace" 0
+PANEL,-1 -1 1013 750 N "_3DFace" 0
 "main()
 {
   // Initialise the Panel
@@ -213,22 +213,24 @@ LANG:1 0
 0
 1 52 0 "" 12
 0
-1 53 0 "" 15
+1 53 0 "" 13
 0
-1 54 0 "" 16
+1 54 0 "" 15
 0
-1 55 0 "" 17
+1 55 0 "" 16
 0
-1 56 0 "" 18
+1 56 0 "" 17
 0
-1 57 0 "" 19
+1 57 0 "" 18
 0
-1 58 0 "" 20
+1 58 0 "" 19
+0
+1 59 0 "" 20
 0
 25 42
 "stationTable"
 ""
-1 30 570 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 30 360 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  "main(int row, string column)
 {
   rClick(row);
@@ -247,7 +249,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  28 568 422 732
+0  28 358 422 712
 "main()
 {
   stationTable.tableMode(TABLE_SELECT_BROWSE);
diff --git a/MAC/Navigator2/panels/Processes/BeamControl.pnl b/MAC/Navigator2/panels/Processes/BeamControl.pnl
index 1fed9578631e4ca1c4a025aa576a9ac01a0a98cd..ae86a92d59c747201bad8ca445ea1c9da44ba634 100644
--- a/MAC/Navigator2/panels/Processes/BeamControl.pnl
+++ b/MAC/Navigator2/panels/Processes/BeamControl.pnl
@@ -1,7 +1,7 @@
 V 11
 1
 LANG:1 0 
-PANEL,-1 -1 1013 765 N "_3DFace" 0
+PANEL,-1 -1 1013 750 N "_3DFace" 0
 "main()
 {
   // Initialise the Panel
@@ -173,22 +173,24 @@ LANG:1 0
 0
 1 93 0 "" 12
 0
-1 94 0 "" 15
+1 94 0 "" 13
 0
-1 95 0 "" 16
+1 95 0 "" 15
 0
-1 96 0 "" 17
+1 96 0 "" 16
 0
-1 97 0 "" 18
+1 97 0 "" 17
 0
-1 98 0 "" 19
+1 98 0 "" 18
 0
-1 99 0 "" 20
+1 99 0 "" 19
+0
+1 100 0 "" 20
 0
 2 50
 "PRIMITIVE_TEXT8"
 ""
-1 30 580 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 25 0 0 0 0 0
 E E E
@@ -198,8 +200,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 580 95 593
-0 2 2 "0s" 0 0 0 192 0 0  30 580 1
+E E 0 1 1 2 1 E U  1 E 30 320 95 333
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -217,11 +219,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E 1 0 1 -60 237 1 E 160 340 175 355
+E E 0 1 1 2 1 E 1 0 1 -50 -20 1 E 160 340 175 355
 2 65
 "PRIMITIVE_TEXT9"
 ""
-1 30 600 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 344 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 30 0 0 0 0 0
 E E E
@@ -231,8 +233,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 600 83 613
-0 2 2 "0s" 0 0 0 192 0 0  30 600 1
+E E 0 1 1 2 1 E U  1 E 30 344 83 357
+0 2 2 "0s" 0 0 0 192 0 0  30 344 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -240,7 +242,7 @@ LANG:1 9 subArray:
 14 66
 "subArrayText"
 ""
-1 100 598 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 340 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 31 0 0 0 0 0
 E E E
@@ -251,12 +253,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  98 596 982 617
+0  108 338 992 359
 2 "0s" 0 0 0 0 0 -1  E E E
 25 82
 "beamTable"
 ""
-1 30 640 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 30 390 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 38 0 0 0 0 0
 E E E
@@ -267,7 +269,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  28 638 992 752
+0  28 388 992 577
 EE 1 0 1 6 8 "Name" 8 1 0 "s" 1
 LANG:1 4 Name
 E
@@ -292,13 +294,13 @@ E
 1
 LANG:1 0 
 
-100 "subbands" 25 1 0 "s" 1
+100 "subbands" 51 1 0 "s" 1
 LANG:1 8 subbands
 E
 1
 LANG:1 0 
 
-285 "beamlets" 25 1 0 "s" 1
+285 "beamlets" 6 1 0 "s" 1
 LANG:1 8 beamlets
 E
 1
@@ -329,7 +331,7 @@ LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
 2 83
 "PRIMITIVE_TEXT10"
 ""
-1 30 620 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 370 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 39 0 0 0 0 0
 E E E
@@ -339,8 +341,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 620 71 633
-0 2 2 "0s" 0 0 0 192 0 0  30 620 1
+E E 0 1 1 2 1 E U  1 E 30 370 71 383
+0 2 2 "0s" 0 0 0 192 0 0  30 370 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -375,7 +377,7 @@ LAYER, 7
 LANG:1 0 
 0
 3 0 "PANEL_REF1" -1
-"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1.00494233937397 1.4432899320127e-014 -40.24711696869851
+"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""BeamControl"
 0
diff --git a/MAC/Navigator2/panels/Processes/BeamServer.pnl b/MAC/Navigator2/panels/Processes/BeamServer.pnl
index a9e04f2a76bfaf5bfb35aa05f2a7ec3ebc55a6db..1067edc267176a22da7d5e0542b9279c64f8998c 100644
--- a/MAC/Navigator2/panels/Processes/BeamServer.pnl
+++ b/MAC/Navigator2/panels/Processes/BeamServer.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -97,18 +97,40 @@ LANG:1 0
 0
 1 57 0 "" 12
 0
-1 58 0 "" 15
+1 58 0 "" 13
 0
-1 59 0 "" 16
+1 59 0 "" 15
 0
-1 60 0 "" 17
+1 60 0 "" 16
 0
-1 61 0 "" 18
+1 61 0 "" 17
 0
-1 62 0 "" 19
+1 62 0 "" 18
 0
-1 63 0 "" 20
+1 63 0 "" 19
 0
+1 64 0 "" 20
+0
+2 47
+"PRIMITIVE_TEXT7"
+""
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 320 60 334
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 None
 0
 LAYER, 1 
 1
@@ -138,8 +160,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
+3 0 "PANEL_REF1"
 "objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""BeamServer"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/CEPHardwareMonitor.pnl b/MAC/Navigator2/panels/Processes/CEPHardwareMonitor.pnl
index 70da2e119d327630288263befaa42a204b725c3c..828d0f45eba183e8bb2efba707290646b5fb6055 100644
--- a/MAC/Navigator2/panels/Processes/CEPHardwareMonitor.pnl
+++ b/MAC/Navigator2/panels/Processes/CEPHardwareMonitor.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -155,8 +155,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  29 170 993 564
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 29 170 993 281
 EE 1 0 1 5 1 "time" 12 1 0 "s" 1
 LANG:1 4 time
 E
@@ -192,8 +193,9 @@ LANG:1 0
 LANG:1 2 #1
 10 30
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0 0 1 2 1 7
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 1 2 1 7
 1 0
 1 75 4 "" 1
 0
@@ -210,8 +212,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  137 50 990 71
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 137 50 990 71
 2 "0s" 0 0 0 0 0 -1  E E E
 2 61
 "TopLabel"
@@ -226,11 +229,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 479 12 684 32
+E E 0 1 1 2 1 E U  1 E 479 12 684 33
 0 2 2 "0s" 0 0 0 192 0 0  479 12 1
 1
-LANG:1 33 MS Shell Dlg,-1,16,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-16-*-100-100-*-*-iso8859-1|-16,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 24 Station: HardwareMonitor
 2 62
 "PRIMITIVE_TEXT2"
@@ -245,11 +249,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 86 114 99
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 86 114 100
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 86 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 14 Current Action
 2 63
 "PRIMITIVE_TEXT3"
@@ -264,11 +269,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 53 127 66
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 53 127 67
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 53 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 15 Status Message:
 14 64
 "processAction"
@@ -283,8 +289,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  137 80 431 101
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 137 80 431 101
 2 "0s" 0 0 0 0 0 -1  E E E
 2 65
 "PRIMITIVE_TEXT4"
@@ -299,11 +306,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 116 105 129
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 116 105 130
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 116 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 13 Current Error
 14 66
 "processError"
@@ -318,8 +326,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  137 110 431 131
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 137 110 431 131
 2 "0s" 0 0 0 0 0 -1  E E E
 2 67
 "PRIMITIVE_TEXT5"
@@ -334,12 +343,33 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 152 118 165
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 152 118 166
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 152 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 13 Log Messages:
+2 68
+"PRIMITIVE_TEXT6"
+""
+1 33.00000000000001 292 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+ E E
+60 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 292 133 306
+0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 292 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 18 Controller Values:
 2 69
 "PRIMITIVE_TEXT7"
 ""
@@ -353,11 +383,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 459 86 513 99
+E E 0 1 1 2 1 E U  1 E 459 86 513 100
 0 2 2 "0s" 0 0 0 192 0 0  459 86 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 9 StartTime
 2 70
 "PRIMITIVE_TEXT8"
@@ -372,11 +403,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 459 116 512 129
+E E 0 1 1 2 1 E U  1 E 459 116 512 130
 0 2 2 "0s" 0 0 0 192 0 0  459 116 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 8 StopTime
 14 71
 "processStartTime"
@@ -391,8 +423,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  527 80 821 101
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 527 80 821 101
 2 "0s" 0 0 0 0 0 -1  E E E
 14 72
 "processStopTime"
@@ -407,8 +440,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  527 110 821 131
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 527 110 821 131
 2 "0s" 0 0 0 0 0 -1  E E E
 2 73
 "PRIMITIVE_TEXT9"
@@ -423,11 +457,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 849 86 866 99
+E E 0 1 1 2 1 E U  1 E 849 86 866 100
 0 2 2 "0s" 0 0 0 192 0 0  849 86 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 3 ID:
 14 74
 "processID"
@@ -442,8 +477,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  867 80 991 101
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 867 80 991 101
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
@@ -474,7 +510,7 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 4 "selfState" -1
+3 4 "selfState"
 "objects\\lofar_self_state.pnl" 9.500000000000011 10.5 T 42 1 0 1 -0.4999999999999928 4.5
 0
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/CalServer.pnl b/MAC/Navigator2/panels/Processes/CalServer.pnl
index e92e88244d81c68591774b29315abaf1b06b288e..ed1824be48e77c11bbfaeced57b5133d4b3952cf 100644
--- a/MAC/Navigator2/panels/Processes/CalServer.pnl
+++ b/MAC/Navigator2/panels/Processes/CalServer.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -96,18 +96,40 @@ LANG:1 0
 0
 1 57 0 "" 12
 0
-1 58 0 "" 15
+1 58 0 "" 13
 0
-1 59 0 "" 16
+1 59 0 "" 15
 0
-1 60 0 "" 17
+1 60 0 "" 16
 0
-1 61 0 "" 18
+1 61 0 "" 17
 0
-1 62 0 "" 19
+1 62 0 "" 18
 0
-1 63 0 "" 20
+1 63 0 "" 19
 0
+1 64 0 "" 20
+0
+2 47
+"PRIMITIVE_TEXT7"
+""
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 320 60 334
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 None
 0
 LAYER, 1 
 1
@@ -137,8 +159,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
+3 0 "PANEL_REF1"
 "objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""CalServer"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/CalibrationControl.pnl b/MAC/Navigator2/panels/Processes/CalibrationControl.pnl
index 7b2a7d22b6ee4a22f7516b25ee31b8c88a9ed04a..750fe35f03282ee2f989ffbf92ebc0d97d13d572 100644
--- a/MAC/Navigator2/panels/Processes/CalibrationControl.pnl
+++ b/MAC/Navigator2/panels/Processes/CalibrationControl.pnl
@@ -175,22 +175,24 @@ LANG:1 0
 0
 1 99 0 "" 12
 0
-1 100 0 "" 15
+1 100 0 "" 13
 0
-1 101 0 "" 16
+1 101 0 "" 15
 0
-1 102 0 "" 17
+1 102 0 "" 16
 0
-1 103 0 "" 18
+1 103 0 "" 17
 0
-1 104 0 "" 19
+1 104 0 "" 18
 0
-1 105 0 "" 20
+1 105 0 "" 19
+0
+1 106 0 "" 20
 0
 2 50
 "PRIMITIVE_TEXT8"
 ""
-1 10 610 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 25 0 0 0 0 0
 E E E
@@ -200,8 +202,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 10 610 75 623
-0 2 2 "0s" 0 0 0 192 0 0  10 610 1
+E E 0 1 1 2 1 E U  1 E 30 320 95 333
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -219,11 +221,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E 1 0 1 -70 267 1 E 160 340 175 355
+E E 0 1 1 2 1 E 1 0 1 -45 -20 1 E 160 340 175 355
 2 65
 "PRIMITIVE_TEXT9"
 ""
-1 10 580 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 344 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 30 0 0 0 0 0
 E E E
@@ -233,16 +235,16 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 10 580 90 593
-0 2 2 "0s" 0 0 0 192 0 0  10 580 1
+E E 0 1 1 2 1 E U  1 E 30 344 109 357
+0 2 2 "0s" 0 0 0 192 0 0  30 344 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
-LANG:1 13 AntennaArray:
+LANG:1 13 antennaArray:
 14 66
 "antennaArrayText"
 ""
-1 86.40000000000001 578 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 340 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 31 0 0 0 0 0
 E E E
@@ -253,12 +255,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  88 576 722 597
+0  113 338 992 359
 2 "0s" 0 0 0 0 0 -1  E E E
 25 82
 "beamTable"
 ""
-1 740 536.140350877193 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 115 374 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 38 0 0 0 0 0
 E E E
@@ -269,9 +271,9 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  738 578 992 732
+0  113 422 367 597
 EE 1 0 1 1 8 "Name" 22 1 0 "s" 1
-LANG:1 9 BeamNames
+LANG:1 4 Name
 E
 1
 LANG:1 0 
@@ -298,10 +300,29 @@ LANG:1 2 #1
 LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
 0 0 1 0 1 7
 1 0
+2 83
+"PRIMITIVE_TEXT10"
+""
+1 30 428 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+39 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 428 103 441
+0 2 2 "0s" 0 0 0 192 0 0  30 428 1
+1
+LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
+0 1
+LANG:1 10 BeamNames:
 2 84
 "PRIMITIVE_TEXT11"
 ""
-1 10 640 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 365 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 41 0 0 0 0 0
 E E E
@@ -311,16 +332,16 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 10 640 49 653
-0 2 2 "0s" 0 0 0 192 0 0  10 640 1
+E E 0 1 1 2 1 E U  1 E 30 365 61 378
+0 2 2 "0s" 0 0 0 192 0 0  30 365 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
-LANG:1 6 RCU's:
+LANG:1 6 rcu's:
 14 85
 "rcusText"
 ""
-1 86.40000000000001 633 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 361 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 43 0 0 0 0 0
 E E E
@@ -331,12 +352,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  88 631 722 652
+0  113 359 992 380
 2 "0s" 0 0 0 0 0 -1  E E E
 2 86
 "PRIMITIVE_TEXT12"
 ""
-1 170 610 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 386 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 45 0 0 0 0 0
 E E E
@@ -346,16 +367,16 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 170 610 202 623
-0 2 2 "0s" 0 0 0 192 0 0  170 610 1
+E E 0 1 1 2 1 E U  1 E 30 386 59 399
+0 2 2 "0s" 0 0 0 192 0 0  30 386 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
-LANG:1 7 Filter:
+LANG:1 7 filter:
 14 87
 "filterText"
 ""
-1 208.771428571429 607 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 113.771428571429 382 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 47 0 0 0 0 0
 E E E
@@ -366,12 +387,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  208 605 427 626
+0  113 380 332 401
 2 "0s" 0 0 0 0 0 -1  E E E
 2 88
 "PRIMITIVE_TEXT13"
 ""
-1 460 610 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 407 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 49 0 0 0 0 0
 E E E
@@ -381,16 +402,16 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 460 610 533 623
-0 2 2 "0s" 0 0 0 192 0 0  460 610 1
+E E 0 1 1 2 1 E U  1 E 30 407 101 420
+0 2 2 "0s" 0 0 0 192 0 0  30 407 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
-LANG:1 12 Nyquistzone:
+LANG:1 12 nyquistzone:
 14 89
 "nyquistzoneText"
 ""
-1 539.742857142857 607 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 114.742857142857 403 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 51 0 0 0 0 0
 E E E
@@ -401,7 +422,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  538 605 587 626
+0  113 401 162 422
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
diff --git a/MAC/Navigator2/panels/Processes/ClockControl.pnl b/MAC/Navigator2/panels/Processes/ClockControl.pnl
index 9c9648ad18e60b716e8cff92f6139d2a0ba1b4b3..8c8ea7162c813beff8a6ce0f3adc7e7e22553a28 100644
--- a/MAC/Navigator2/panels/Processes/ClockControl.pnl
+++ b/MAC/Navigator2/panels/Processes/ClockControl.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 754 N "_3DFace" 0
@@ -138,22 +138,24 @@ LANG:1 0
 0
 1 82 0 "" 12
 0
-1 83 0 "" 15
+1 83 0 "" 13
 0
-1 84 0 "" 16
+1 84 0 "" 15
 0
-1 85 0 "" 17
+1 85 0 "" 16
 0
-1 86 0 "" 18
+1 86 0 "" 17
 0
-1 87 0 "" 19
+1 87 0 "" 18
 0
-1 88 0 "" 20
+1 88 0 "" 19
+0
+1 89 0 "" 20
 0
 2 50
 "PRIMITIVE_TEXT8"
 ""
-1 30 590 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 340 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 25 0 0 0 0 0
 E E E
@@ -163,11 +165,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 590 95 603
-0 2 2 "0s" 0 0 0 192 0 0  30 590 1
+E E 0 1 1 2 1 E U  1 E 30 340 95 354
+0 2 2 "0s" 0 0 0 192 0 0  30 340 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 10 Connected:
 6 51
 "connectedText"
@@ -182,11 +185,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E 1 0 1 0 247 1 E 160 340 175 355
+E E 0 1 1 2 1 E 1 0 1 0 -5 1 E 160 340 175 355
 2 52
 "PRIMITIVE_TEXT9"
 ""
-1 30 620 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 374 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 27 0 0 0 0 0
 E E E
@@ -196,16 +199,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 620 106 633
-0 2 2 "0s" 0 0 0 192 0 0  30 620 1
+E E 0 1 1 2 1 E U  1 E 30 374 106 388
+0 2 2 "0s" 0 0 0 192 0 0  30 374 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 13 Actual Clock:
 14 53
 "actualClockText"
 ""
-1 160 617 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 160 370 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 28 0 0 0 0 0
 E E E
@@ -215,13 +219,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  158 615 282 636
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 158 368 282 389
 2 "0s" 0 0 0 0 0 -1  E E E
 2 71
 "PRIMITIVE_TEXT10"
 ""
-1 30 650 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 404 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 30 0 0 0 0 0
 E E E
@@ -231,16 +236,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 650 131 663
-0 2 2 "0s" 0 0 0 192 0 0  30 650 1
+E E 0 1 1 2 1 E U  1 E 30 404 131 418
+0 2 2 "0s" 0 0 0 192 0 0  30 404 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 16 Requested Clock:
 14 72
 "requestedClockText"
 ""
-1 160 647 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 160 400 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 32 0 0 0 0 0
 E E E
@@ -250,8 +256,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  158 645 282 666
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 158 398 282 419
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
@@ -282,8 +289,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
+3 0 "PANEL_REF1"
 "objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""ClockControl"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/HardwareMonitor.pnl b/MAC/Navigator2/panels/Processes/HardwareMonitor.pnl
index b247a2a8ad0e8742a28c9cc5ab7e62931e97668e..7c70a7e0daa0e1d1f98c105a31e7dbb079f94b3d 100644
--- a/MAC/Navigator2/panels/Processes/HardwareMonitor.pnl
+++ b/MAC/Navigator2/panels/Processes/HardwareMonitor.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -361,7 +361,7 @@ LANG:1 0
 25 50
 "RSPTable"
 ""
-1 30 520 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 30 350 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 25 0 0 0 0 0
 E E E
@@ -371,8 +371,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  28 518 992 601
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 28 348 992 431
 EE 1 0 1 5 1 "time" 12 1 0 "s" 1
 LANG:1 4 time
 E
@@ -408,13 +409,14 @@ LANG:1 0
 LANG:1 2 #1
 10 30
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0 0 1 2 1 7
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 1 2 1 7
 1 0
 2 51
 "PRIMITIVE_TEXT10"
 ""
-1 33 503 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+1 33 333 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
  E E
 27 0 0 0 0 0
 E E E
@@ -424,16 +426,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33 503 147 516
-0 2 2 "0s" 0 0 0 192 0 0  33 503 1
+E E 0 1 1 2 1 E U  1 E 33 333 147 347
+0 2 2 "0s" 0 0 0 192 0 0  33 333 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 17 RSP Log Messages:
 2 52
 "PRIMITIVE_TEXT11"
 ""
-1 33 483 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 33 313 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 29 0 0 0 0 0
 E E E
@@ -443,11 +446,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33 483 127 496
-0 2 2 "0s" 0 0 0 192 0 0  33 483 1
+E E 0 1 1 2 1 E U  1 E 33 313 127 327
+0 2 2 "0s" 0 0 0 192 0 0  33 313 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 14 RSP Connected:
 6 53
 "RSPConnectedText"
@@ -462,11 +466,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E 1 0 1 2 470 1 E 140 10 155 25
+E E 0 1 1 2 1 E 1 0 1 2 300 1 E 140 10 155 25
 25 54
 "TBBTable"
 ""
-1 30 660 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 30 490 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 33 0 0 0 0 0
 E E E
@@ -476,8 +480,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  28 658 992 741
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 28 488 992 571
 EE 1 0 1 5 1 "time" 12 1 0 "s" 1
 LANG:1 4 time
 E
@@ -513,13 +518,14 @@ LANG:1 0
 LANG:1 2 #1
 10 30
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0 0 1 2 1 7
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 1 2 1 7
 1 0
 2 55
 "PRIMITIVE_TEXT12"
 ""
-1 33 633 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+1 33 463 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
  E E
 35 0 0 0 0 0
 E E E
@@ -529,16 +535,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33 633 146 646
-0 2 2 "0s" 0 0 0 192 0 0  33 633 1
+E E 0 1 1 2 1 E U  1 E 33 463 146 477
+0 2 2 "0s" 0 0 0 192 0 0  33 463 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 17 TBB Log Messages:
 2 56
 "PRIMITIVE_TEXT13"
 ""
-1 33 613 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 33 443 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 37 0 0 0 0 0
 E E E
@@ -548,11 +555,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33 613 126 626
-0 2 2 "0s" 0 0 0 192 0 0  33 613 1
+E E 0 1 1 2 1 E U  1 E 33 443 126 457
+0 2 2 "0s" 0 0 0 192 0 0  33 443 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 14 TBB Connected:
 6 57
 "TBBConnectedText"
@@ -567,7 +575,7 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E 1 0 1 2 600 1 E 140 10 155 25
+E E 0 1 1 2 1 E 1 0 1 2 430 1 E 140 10 155 25
 25 58
 "myLogTable"
 ""
@@ -581,8 +589,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  29 170 993 472
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 29 170 993 281
 EE 1 0 1 5 1 "time" 12 1 0 "s" 1
 LANG:1 4 time
 E
@@ -618,8 +627,9 @@ LANG:1 0
 LANG:1 2 #1
 10 30
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0 0 1 2 1 7
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 1 2 1 7
 1 0
 1 75 4 "" 1
 0
@@ -636,8 +646,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  137 50 990 71
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 137 50 990 71
 2 "0s" 0 0 0 0 0 -1  E E E
 2 61
 "TopLabel"
@@ -652,11 +663,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 479 12 684 32
+E E 0 1 1 2 1 E U  1 E 479 12 684 33
 0 2 2 "0s" 0 0 0 192 0 0  479 12 1
 1
-LANG:1 33 MS Shell Dlg,-1,16,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-16-*-100-100-*-*-iso8859-1|-16,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 24 Station: HardwareMonitor
 2 62
 "PRIMITIVE_TEXT2"
@@ -671,11 +683,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 86 114 99
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 86 114 100
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 86 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 14 Current Action
 2 63
 "PRIMITIVE_TEXT3"
@@ -690,11 +703,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 53 127 66
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 53 127 67
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 53 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 15 Status Message:
 14 64
 "processAction"
@@ -709,8 +723,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  137 80 431 101
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 137 80 431 101
 2 "0s" 0 0 0 0 0 -1  E E E
 2 65
 "PRIMITIVE_TEXT4"
@@ -725,11 +740,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 116 105 129
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 116 105 130
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 116 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 13 Current Error
 14 66
 "processError"
@@ -744,8 +760,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  137 110 431 131
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 137 110 431 131
 2 "0s" 0 0 0 0 0 -1  E E E
 2 67
 "PRIMITIVE_TEXT5"
@@ -760,12 +777,33 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 33.00000000000001 152 118 165
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 152 118 166
 0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 152 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 13 Log Messages:
+2 68
+"PRIMITIVE_TEXT6"
+""
+1 33.00000000000001 292 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+ E E
+60 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 33.00000000000001 292 133 306
+0 2 2 "0s" 0 0 0 192 0 0  33.00000000000001 292 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 18 Controller Values:
 2 69
 "PRIMITIVE_TEXT7"
 ""
@@ -779,11 +817,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 459 86 513 99
+E E 0 1 1 2 1 E U  1 E 459 86 513 100
 0 2 2 "0s" 0 0 0 192 0 0  459 86 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 9 StartTime
 2 70
 "PRIMITIVE_TEXT8"
@@ -798,11 +837,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 459 116 512 129
+E E 0 1 1 2 1 E U  1 E 459 116 512 130
 0 2 2 "0s" 0 0 0 192 0 0  459 116 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 8 StopTime
 14 71
 "processStartTime"
@@ -817,8 +857,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  527 80 821 101
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 527 80 821 101
 2 "0s" 0 0 0 0 0 -1  E E E
 14 72
 "processStopTime"
@@ -833,8 +874,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  527 110 821 131
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 527 110 821 131
 2 "0s" 0 0 0 0 0 -1  E E E
 2 73
 "PRIMITIVE_TEXT9"
@@ -849,11 +891,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 849 86 866 99
+E E 0 1 1 2 1 E U  1 E 849 86 866 100
 0 2 2 "0s" 0 0 0 192 0 0  849 86 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 3 ID:
 14 74
 "processID"
@@ -868,8 +911,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  867 80 991 101
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 867 80 991 101
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
@@ -900,7 +944,7 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 4 "selfState" -1
+3 4 "selfState"
 "objects\\lofar_self_state.pnl" 9.500000000000011 10.5 T 42 1 0 1 -0.4999999999999928 4.5
 0
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/MACScheduler.pnl b/MAC/Navigator2/panels/Processes/MACScheduler.pnl
index ee5562e3574ba053b841a04aeaf7c46fc32280f5..700135b1626990037ca1df51e4c2e9b36b5917f6 100644
--- a/MAC/Navigator2/panels/Processes/MACScheduler.pnl
+++ b/MAC/Navigator2/panels/Processes/MACScheduler.pnl
@@ -239,17 +239,19 @@ LANG:1 0
 0
 1 45 0 "" 12
 0
-1 46 0 "" 15
+1 46 0 "" 13
 0
-1 47 0 "" 16
+1 47 0 "" 15
 0
-1 48 0 "" 17
+1 48 0 "" 16
 0
-1 49 0 "" 18
+1 49 0 "" 17
 0
-1 50 0 "" 19
+1 50 0 "" 18
 0
-1 51 0 "" 20
+1 51 0 "" 19
+0
+1 52 0 "" 20
 0
 30 12
 "FRAME1"
@@ -264,7 +266,7 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 0 1 0 1 E 2.28571428571429 0 0.2564102564102563 -38.5714285714287 492.3076923076924 0 E 30 303 451 421
+E E 0 0 1 0 1 E 2.28571428571429 0 0.487179487179487 -38.5714285714286 172.384615384615 0 E 30 303 451 421
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
 0 1
@@ -272,7 +274,7 @@ LANG:1 4 OTDB
 2 13
 "PRIMITIVE_TEXT7"
 ""
-1 40 585 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+1 40 344 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
  E E
 1 0 0 0 0 0
 E E E
@@ -282,8 +284,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 40 585 105 598
-0 2 2 "0s" 0 0 0 192 0 0  40 585 1
+E E 0 1 1 2 1 E U  1 E 40 344 105 357
+0 2 2 "0s" 0 0 0 192 0 0  40 344 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -291,7 +293,7 @@ LANG:1 10 Connected:
 2 14
 "PRIMITIVE_TEXT8"
 ""
-1 310 585 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+1 349 344 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
  E E
 3 0 0 0 0 0
 E E E
@@ -301,8 +303,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 310 585 382 598
-0 2 2 "0s" 0 0 0 192 0 0  310 585 1
+E E 0 1 1 2 1 E U  1 E 349 344 421 357
+0 2 2 "0s" 0 0 0 192 0 0  349 344 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -310,7 +312,7 @@ LANG:1 14 Poll Interval:
 2 15
 "PRIMITIVE_TEXT9"
 ""
-1 690 585 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+1 665 344 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
  E E
 5 0 0 0 0 0
 E E E
@@ -320,8 +322,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 690 585 743 598
-0 2 2 "0s" 0 0 0 192 0 0  690 585 1
+E E 0 1 1 2 1 E U  1 E 665 344 718 357
+0 2 2 "0s" 0 0 0 192 0 0  665 344 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -329,7 +331,7 @@ LANG:1 10 Last Poll:
 14 16
 "txt_OTDBconnected"
 ""
-1 120 579 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 117 343 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 6 0 0 0 0 0
 E E E
@@ -340,12 +342,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  118 577 302 598
+0  115 341 339 362
 2 "0s" 0 0 0 0 0 -1  E E E
 14 17
 "txt_OTDBpollinterval"
 ""
-1 393 579 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 430 340 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 8 0 0 0 0 0
 E E E
@@ -356,12 +358,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  391 577 615 598
+0  428 338 652 359
 2 "0s" 0 0 0 0 0 -1  E E E
 14 18
 "txt_OTDBlastPoll"
 ""
-1 760 579 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 730 343 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 10 0 0 0 0 0
 E E E
@@ -372,12 +374,12 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  758 577 982 598
+0  728 341 952 362
 2 "0s" 0 0 0 0 0 -1  E E E
 17 19
 "PlannedObservationList"
 ""
-1 30 620 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 30 420 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 11 0 0 0 0 0
 E E E
@@ -388,7 +390,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  28 618 322 722
+0  28 418 322 722
 0
 
 E
@@ -399,7 +401,7 @@ E
 2 31
 "PRIMITIVE_TEXT10"
 ""
-1 90 600 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 100 390 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 12 0 0 0 0 0
 E E E
@@ -409,8 +411,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 90 600 218 613
-0 2 2 "0s" 0 0 0 192 0 0  90 600 1
+E E 0 1 1 2 1 E U  1 E 100 390 228 403
+0 2 2 "0s" 0 0 0 192 0 0  100 390 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -418,7 +420,7 @@ LANG:1 21 Planned Observations:
 17 32
 "ActiveObservationList"
 ""
-1 360 620 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 360 420 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 14 0 0 0 0 0
 E E E
@@ -429,7 +431,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  358 618 652 722
+0  358 418 652 722
 0
 
 E
@@ -440,7 +442,7 @@ E
 2 33
 "PRIMITIVE_TEXT11"
 ""
-1 440 600 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 430 392 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 16 0 0 0 0 0
 E E E
@@ -450,8 +452,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 440 600 558 613
-0 2 2 "0s" 0 0 0 192 0 0  440 600 1
+E E 0 1 1 2 1 E U  1 E 430 392 548 405
+0 2 2 "0s" 0 0 0 192 0 0  430 392 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -459,7 +461,7 @@ LANG:1 20 Active Observations:
 17 34
 "FinishedObservationList"
 ""
-1 690 620.8336134453781 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 690 422 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 18 0 0 0 0 0
 E E E
@@ -470,7 +472,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  688 619 982 722
+0  688 420 982 722
 0
 
 E
@@ -481,7 +483,7 @@ E
 2 35
 "PRIMITIVE_TEXT12"
 ""
-1 760 600 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 760 392 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 20 0 0 0 0 0
 E E E
@@ -491,8 +493,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 760 600 889 613
-0 2 2 "0s" 0 0 0 192 0 0  760 600 1
+E E 0 1 1 2 1 E U  1 E 760 392 889 405
+0 2 2 "0s" 0 0 0 192 0 0  760 392 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -527,7 +529,7 @@ LAYER, 7
 LANG:1 0 
 0
 3 0 "PANEL_REF1" -1
-"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4210854715202e-014 -40
+"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""MACScheduler"
 0
diff --git a/MAC/Navigator2/panels/Processes/PythonControl.pnl b/MAC/Navigator2/panels/Processes/PythonControl.pnl
index 8165ee096e586c5c9a554708f453f0b151ef30e9..936a31a6404c6392cff74bfe9a1c7f61d5e894cd 100644
--- a/MAC/Navigator2/panels/Processes/PythonControl.pnl
+++ b/MAC/Navigator2/panels/Processes/PythonControl.pnl
@@ -96,18 +96,39 @@ LANG:1 0
 0
 1 57 0 "" 12
 0
-1 58 0 "" 15
+1 58 0 "" 13
 0
-1 59 0 "" 16
+1 59 0 "" 15
 0
-1 60 0 "" 17
+1 60 0 "" 16
 0
-1 61 0 "" 18
+1 61 0 "" 17
 0
-1 62 0 "" 19
+1 62 0 "" 18
 0
-1 63 0 "" 20
+1 63 0 "" 19
 0
+1 64 0 "" 20
+0
+2 47
+"PRIMITIVE_TEXT7"
+""
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 320 60 333
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
+0 1
+LANG:1 4 None
 0
 LAYER, 1 
 1
diff --git a/MAC/Navigator2/panels/Processes/RSPDriver.pnl b/MAC/Navigator2/panels/Processes/RSPDriver.pnl
index 7a96d8dc3426c9121e0b491894e08b997573692a..2009c70e1166edb6927dc886bd3f40a1430f28ff 100644
--- a/MAC/Navigator2/panels/Processes/RSPDriver.pnl
+++ b/MAC/Navigator2/panels/Processes/RSPDriver.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -98,18 +98,40 @@ LANG:1 0
 0
 1 57 0 "" 12
 0
-1 58 0 "" 15
+1 58 0 "" 13
 0
-1 59 0 "" 16
+1 59 0 "" 15
 0
-1 60 0 "" 17
+1 60 0 "" 16
 0
-1 61 0 "" 18
+1 61 0 "" 17
 0
-1 62 0 "" 19
+1 62 0 "" 18
 0
-1 63 0 "" 20
+1 63 0 "" 19
 0
+1 64 0 "" 20
+0
+2 47
+"PRIMITIVE_TEXT7"
+""
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 320 60 334
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 None
 0
 LAYER, 1 
 1
@@ -139,8 +161,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
-"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4210854715202e-014 -40
+3 0 "PANEL_REF1"
+"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""RSPDriver"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/SHMInfoServer.pnl b/MAC/Navigator2/panels/Processes/SHMInfoServer.pnl
index 21e564d133fd76ef4e8554ee0867859a05a1a53f..c3f5cf277303e758c283a7ac980e3589132bc3b5 100644
--- a/MAC/Navigator2/panels/Processes/SHMInfoServer.pnl
+++ b/MAC/Navigator2/panels/Processes/SHMInfoServer.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -96,18 +96,40 @@ LANG:1 0
 0
 1 57 0 "" 12
 0
-1 58 0 "" 15
+1 58 0 "" 13
 0
-1 59 0 "" 16
+1 59 0 "" 15
 0
-1 60 0 "" 17
+1 60 0 "" 16
 0
-1 61 0 "" 18
+1 61 0 "" 17
 0
-1 62 0 "" 19
+1 62 0 "" 18
 0
-1 63 0 "" 20
+1 63 0 "" 19
 0
+1 64 0 "" 20
+0
+2 47
+"PRIMITIVE_TEXT7"
+""
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 320 60 334
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 None
 0
 LAYER, 1 
 1
@@ -137,8 +159,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
+3 0 "PANEL_REF1"
 "objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""SHMInfoServer"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/SoftwareMonitor.pnl b/MAC/Navigator2/panels/Processes/SoftwareMonitor.pnl
index 227491fcf1379c90e746f3626c40e1d2205efe2d..6d593b7fc8f59e5af67a10ed0c9ee31d5c90382c 100644
--- a/MAC/Navigator2/panels/Processes/SoftwareMonitor.pnl
+++ b/MAC/Navigator2/panels/Processes/SoftwareMonitor.pnl
@@ -106,42 +106,44 @@ DISPLAY_LAYER, 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
 LAYER, 0 
 1
 LANG:1 0 
-1 69 0 "" 0
+1 48 0 "" 0
 0
-1 70 0 "0" 1
+1 49 0 "0" 1
 0
-1 71 0 "" 2
+1 50 0 "" 2
 0
-1 72 0 "" 3
+1 51 0 "" 3
 0
-1 73 0 "" 7
+1 52 0 "" 7
 0
-1 74 0 "" 8
+1 53 0 "" 8
 0
-1 75 0 "" 9
+1 54 0 "" 9
 0
-1 76 0 "" 10
+1 55 0 "" 10
 0
-1 77 0 "" 11
+1 56 0 "" 11
 0
-1 78 0 "" 12
+1 57 0 "" 12
 0
-1 79 0 "" 15
+1 58 0 "" 13
 0
-1 80 0 "" 16
+1 59 0 "" 15
 0
-1 81 0 "" 17
+1 60 0 "" 16
 0
-1 82 0 "" 18
+1 61 0 "" 17
 0
-1 83 0 "" 19
+1 62 0 "" 18
 0
-1 84 0 "" 20
+1 63 0 "" 19
+0
+1 64 0 "" 20
 0
 2 67
 "PRIMITIVE_TEXT11"
 ""
-1 30 580 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 334 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 24 0 0 0 0 0
 E E E
@@ -151,8 +153,8 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 30 580 85 593
-0 2 2 "0s" 0 0 0 192 0 0  30 580 1
+E E 0 1 1 2 1 E U  1 E 32 334 87 347
+0 2 2 "0s" 0 0 0 192 0 0  32 334 1
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
@@ -160,7 +162,7 @@ LANG:1 8 SWLevel:
 14 68
 "SWLevelText"
 ""
-1 100 580 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 162 330 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 25 0 0 0 0 0
 E E E
@@ -171,7 +173,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  98 578 222 599
+0  160 328 284 349
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
diff --git a/MAC/Navigator2/panels/Processes/StationControl.pnl b/MAC/Navigator2/panels/Processes/StationControl.pnl
index 7a423dd43f6b0647c2cbed9429f0cc55bf49eb86..2c35a6d0c6f0e479f872d968f211cf009b5ea800 100644
--- a/MAC/Navigator2/panels/Processes/StationControl.pnl
+++ b/MAC/Navigator2/panels/Processes/StationControl.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -128,22 +128,24 @@ LANG:1 0
 0
 1 75 0 "" 12
 0
-1 76 0 "" 15
+1 76 0 "" 13
 0
-1 77 0 "" 16
+1 77 0 "" 15
 0
-1 78 0 "" 17
+1 78 0 "" 16
 0
-1 79 0 "" 18
+1 79 0 "" 17
 0
-1 80 0 "" 19
+1 80 0 "" 18
 0
-1 81 0 "" 20
+1 81 0 "" 19
+0
+1 82 0 "" 20
 0
 25 65
 "observationTable"
 ""
-1 30 520 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 30 280 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 23 0 0 0 0 0
 E E E
@@ -153,8 +155,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  28 568 282 743
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 28 328 282 503
 EE 1 0 1 1 8 "Obs" 22 1 0 "s" 1
 LANG:1 19 Active Observations
 E
@@ -180,8 +183,9 @@ LANG:1 2 #2
 LANG:1 2 #1
 10 8
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0 0 1 0 1 7
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 1 0 1 7
 1 0
 0
 LAYER, 1 
@@ -212,8 +216,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
+3 0 "PANEL_REF1"
 "objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""StationControl"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/TBBControl.pnl b/MAC/Navigator2/panels/Processes/TBBControl.pnl
index b95fc95819b1359408cc827c551a826c09c7c8d3..0f9a869cb2756f3d3972e01ce8df7aadabd455b2 100644
--- a/MAC/Navigator2/panels/Processes/TBBControl.pnl
+++ b/MAC/Navigator2/panels/Processes/TBBControl.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -198,22 +198,24 @@ LANG:1 0
 0
 1 129 0 "" 12
 0
-1 130 0 "" 15
+1 130 0 "" 13
 0
-1 131 0 "" 16
+1 131 0 "" 15
 0
-1 132 0 "" 17
+1 132 0 "" 16
 0
-1 133 0 "" 18
+1 133 0 "" 17
 0
-1 134 0 "" 19
+1 134 0 "" 18
 0
-1 135 0 "" 20
+1 135 0 "" 19
+0
+1 136 0 "" 20
 0
 2 50
 "PRIMITIVE_TEXT8"
 ""
-1 142 602 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 25 0 0 0 0 0
 E E E
@@ -223,11 +225,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 142 602 207 615
-0 2 2 "0s" 0 0 0 192 0 0  142 602 1
+E E 0 1 1 2 1 E U  1 E 30 320 95 334
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 10 Connected:
 6 51
 "connectedText"
@@ -242,11 +245,11 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E 1 0 1 67 262 1 E 160 340 175 355
+E E 0 1 1 2 1 E 1 0 1 -45 -20 1 E 160 340 175 355
 2 65
 "PRIMITIVE_TEXT9"
 ""
-1 42 634 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 404 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 30 0 0 0 0 0
 E E E
@@ -256,16 +259,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 42 634 77 647
-0 2 2 "0s" 0 0 0 192 0 0  42 634 1
+E E 0 1 1 2 1 E U  1 E 32 404 67 418
+0 2 2 "0s" 0 0 0 192 0 0  32 404 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 6 rcuNr:
 14 66
 "rcuNrText"
 ""
-1 117 632 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 112 400 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 31 0 0 0 0 0
 E E E
@@ -275,13 +279,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  120 630 339 651
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 398 334 419
 2 "0s" 0 0 0 0 0 -1  E E E
 2 84
 "PRIMITIVE_TEXT11"
 ""
-1 42 654 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 425 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 41 0 0 0 0 0
 E E E
@@ -291,16 +296,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 42 654 114 667
-0 2 2 "0s" 0 0 0 192 0 0  42 654 1
+E E 0 1 1 2 1 E U  1 E 32 425 104 439
+0 2 2 "0s" 0 0 0 192 0 0  32 425 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 11 sequenceNr:
 14 85
 "sequenceNrText"
 ""
-1 112 632 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 107 401 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 43 0 0 0 0 0
 E E E
@@ -310,13 +316,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  120 650 339 671
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 419 334 440
 2 "0s" 0 0 0 0 0 -1  E E E
 2 86
 "PRIMITIVE_TEXT12"
 ""
-1 42 674 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 446 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 45 0 0 0 0 0
 E E E
@@ -326,16 +333,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 42 674 69 687
-0 2 2 "0s" 0 0 0 192 0 0  42 674 1
+E E 0 1 1 2 1 E U  1 E 32 446 59 460
+0 2 2 "0s" 0 0 0 192 0 0  32 446 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 5 time:
 14 87
 "timeText"
 ""
-1 120.771428571429 674 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 115.771428571429 442 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 47 0 0 0 0 0
 E E E
@@ -345,13 +353,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  120 672 339 693
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 440 334 461
 2 "0s" 0 0 0 0 0 -1  E E E
 2 88
 "PRIMITIVE_TEXT13"
 ""
-1 42 694 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 467 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 49 0 0 0 0 0
 E E E
@@ -361,16 +370,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 42 694 98 707
-0 2 2 "0s" 0 0 0 192 0 0  42 694 1
+E E 0 1 1 2 1 E U  1 E 32 467 88 481
+0 2 2 "0s" 0 0 0 192 0 0  32 467 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 9 sampleNr:
 14 89
 "sampleNrText"
 ""
-1 117 632 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 112 400 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 51 0 0 0 0 0
 E E E
@@ -380,13 +390,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  120 693 339 714
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 461 334 482
 2 "0s" 0 0 0 0 0 -1  E E E
 2 90
 "PRIMITIVE_TEXT14"
 ""
-1 42 714 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 488 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 53 0 0 0 0 0
 E E E
@@ -396,16 +407,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 42 714 68 727
-0 2 2 "0s" 0 0 0 192 0 0  42 714 1
+E E 0 1 1 2 1 E U  1 E 32 488 58 502
+0 2 2 "0s" 0 0 0 192 0 0  32 488 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 4 sum:
 14 91
 "sumText"
 ""
-1 115 625 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 394 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 55 0 0 0 0 0
 E E E
@@ -415,13 +427,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  120 713 339 734
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 482 334 503
 2 "0s" 0 0 0 0 0 -1  E E E
 2 92
 "PRIMITIVE_TEXT15"
 ""
-1 602 634 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 509 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 57 0 0 0 0 0
 E E E
@@ -431,16 +444,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 602 634 664 647
-0 2 2 "0s" 0 0 0 192 0 0  602 634 1
+E E 0 1 1 2 1 E U  1 E 32 509 94 523
+0 2 2 "0s" 0 0 0 192 0 0  32 509 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 10 nrSamples:
 14 93
 "nrSamplesText"
 ""
-1 685 512 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 385 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 59 0 0 0 0 0
 E E E
@@ -450,13 +464,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  690 630 909 651
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 503 334 524
 2 "0s" 0 0 0 0 0 -1  E E E
 2 94
 "PRIMITIVE_TEXT16"
 ""
-1 604 654 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 530 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 61 0 0 0 0 0
 E E E
@@ -466,16 +481,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 604 654 668 667
-0 2 2 "0s" 0 0 0 192 0 0  604 654 1
+E E 0 1 1 2 1 E U  1 E 32 530 96 544
+0 2 2 "0s" 0 0 0 192 0 0  32 530 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 10 peakValue:
 14 95
 "peakValueText"
 ""
-1 685 502 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 376 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 63 0 0 0 0 0
 E E E
@@ -485,13 +501,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  690 650 909 671
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 524 334 545
 2 "0s" 0 0 0 0 0 -1  E E E
 2 96
 "PRIMITIVE_TEXT17"
 ""
-1 604 674 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 551 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 65 0 0 0 0 0
 E E E
@@ -501,16 +518,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 604 674 635 687
-0 2 2 "0s" 0 0 0 192 0 0  604 674 1
+E E 0 1 1 2 1 E U  1 E 32 551 63 565
+0 2 2 "0s" 0 0 0 192 0 0  32 551 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 6 flags:
 14 97
 "flagsText"
 ""
-1 685 494 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 367 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 67 0 0 0 0 0
 E E E
@@ -520,13 +538,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  690 672 909 693
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 545 334 566
 2 "0s" 0 0 0 0 0 -1  E E E
 2 98
 "PRIMITIVE_TEXT18"
 ""
-1 606 694 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 572 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 69 0 0 0 0 0
 E E E
@@ -536,16 +555,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 606 694 638 707
-0 2 2 "0s" 0 0 0 192 0 0  606 694 1
+E E 0 1 1 2 1 E U  1 E 32 572 64 586
+0 2 2 "0s" 0 0 0 192 0 0  32 572 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 6 table:
 14 99
 "tableText"
 ""
-1 685 484 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 358 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 71 0 0 0 0 0
 E E E
@@ -555,13 +575,14 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  690 692 909 713
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 566 334 587
 2 "0s" 0 0 0 0 0 -1  E E E
 2 100
 "PRIMITIVE_TEXT19"
 ""
-1 42 602 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 30 370 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 72 0 0 0 0 0
 E E E
@@ -571,16 +592,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 42 602 86 615
-0 2 2 "0s" 0 0 0 192 0 0  42 602 1
+E E 0 1 1 2 1 E U  1 E 30 370 74 384
+0 2 2 "0s" 0 0 0 192 0 0  30 370 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 8 Trigger:
 2 118
 "PRIMITIVE_TEXT20"
 ""
-1 606 714 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+1 32 593 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
  E E
 74 0 0 0 0 0
 E E E
@@ -590,16 +612,17 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 606 714 648 727
-0 2 2 "0s" 0 0 0 192 0 0  606 714 1
+E E 0 1 1 2 1 E U  1 E 32 593 74 607
+0 2 2 "0s" 0 0 0 192 0 0  32 593 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
 LANG:1 7 missed:
 14 119
 "missedText"
 ""
-1 685 505 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
+1 110 379 E E E 1 E 1 E N "_WindowText" E N "_Window" E E
  E E
 76 0 0 0 0 0
 E E E
@@ -609,8 +632,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  690 713 909 734
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 115 587 334 608
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
@@ -641,8 +665,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
-"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 0 -40
+3 0 "PANEL_REF1"
+"objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""TBBControl"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/Processes/TBBDriver.pnl b/MAC/Navigator2/panels/Processes/TBBDriver.pnl
index 55a3a402459aa2e4987f5620324d695864cace4c..f6379d4a19852631ceba9af6d70773b34c23cebd 100644
--- a/MAC/Navigator2/panels/Processes/TBBDriver.pnl
+++ b/MAC/Navigator2/panels/Processes/TBBDriver.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 0
@@ -96,18 +96,40 @@ LANG:1 0
 0
 1 57 0 "" 12
 0
-1 58 0 "" 15
+1 58 0 "" 13
 0
-1 59 0 "" 16
+1 59 0 "" 15
 0
-1 60 0 "" 17
+1 60 0 "" 16
 0
-1 61 0 "" 18
+1 61 0 "" 17
 0
-1 62 0 "" 19
+1 62 0 "" 18
 0
-1 63 0 "" 20
+1 63 0 "" 19
 0
+1 64 0 "" 20
+0
+2 47
+"PRIMITIVE_TEXT7"
+""
+1 30 320 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E
+ E E
+21 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 320 60 334
+0 2 2 "0s" 0 0 0 192 0 0  30 320 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 4 None
 0
 LAYER, 1 
 1
@@ -137,8 +159,8 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "PANEL_REF1" -1
+3 0 "PANEL_REF1"
 "objects\\Processes\\controller_top.pnl" 49 92 T 0 1 0 1 1.4432899320127e-014 -40
 1
 "$ctrlName""TBBDriver"
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl b/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl
index ecd60e06cc315f28d797b9e82b49658ed2d4ef8a..4126a7e0b8a05e31b5f74faf84f2ed2d2bb6cbfb 100644
--- a/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl
+++ b/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl
@@ -43,15 +43,15 @@ void levelChanged(string dp1, int swlvl,
     if (observationChangedConnected) {
       if (dpDisconnect(\"observationChanged\", MainDBName+\"LOFAR_PermSW_MACScheduler.activeObservations:_online.._value\",
                                           MainDBName+\"LOFAR_PermSW_MACScheduler.activeObservations:_online.._invalid\") == -1) {
-        LOG_ERROR(\"SWController_small.pnl:main|Couldn't disconnect to: \"+MainDBName+\":LOFAR_PermSW_MACScheduler.activeObservations: \"+getLastError);
+        LOG_ERROR(\"SWController_small.pnl:main|Couldn't disconnect to: \"+MainDBName+\":LOFAR_PermSW_MACScheduler.activeObservations\");
+        observationChangedConnected = false;
       }
     }
-    observationChangedConnected = false;
       
     if (navFunct_dpReachable(MainDBName+\"LOFAR_PermSW_MACScheduler.activeObservations\")) {
       if (dpConnect(\"observationChanged\", MainDBName+\"LOFAR_PermSW_MACScheduler.activeObservations:_online.._value\",
                                           MainDBName+\"LOFAR_PermSW_MACScheduler.activeObservations:_online.._invalid\") == -1) {
-        LOG_ERROR(\"SWController_small.pnl:main|Couldn't connect to: \"+MainDBName+\":LOFAR_PermSW_MACScheduler.activeObservations: \"+getLastError());
+        LOG_ERROR(\"SWController_small.pnl:main|Couldn't connect to: \"+MainDBName+\":LOFAR_PermSW_MACScheduler.activeObservations\");
       } else {
         observationChangedConnected = true;
       }
@@ -95,23 +95,24 @@ private void observationChanged(string dp1, dyn_string observations,
         setValue(\"process\", \"backCol\", \"Lofar_off\");
         return;
       } else if ($name == \"PythonControl\") {
-//        firstObservation=firstPipeline;
+        firstObservation=firstPipeline;
       }
       
     }
-  }
-  if (firstObservation == \"\") {
-    updateSWController(baseDP,0,baseDP,invalid);
-  } else {
     // get real name from claimmanager
     obsDP=claimManager_nameToRealName(\"LOFAR_ObsSW_\"+firstObservation);
     baseDP = station+obsDP+\"_\"+$name;
     reload();
   }
 }
- 
   
 private void reload() {
+    if (updateConnected) {
+    if (dpDisconnect(\"updateSWController\", baseDP +\".status.state:_online.._value\",
+                                           baseDP +\".status.state:_online.._invalid\") == -1) { 
+      updateConnected = false;
+    }
+  }
 
   // check if the required datapoint for this view are enabled and accessible
   if (navFunct_dpReachable(baseDP+\".status.state\")) {
@@ -119,8 +120,6 @@ private void reload() {
       if (dpConnect(\"updateSWController\", baseDP +\".status.state:_online.._value\",
                                           baseDP +\".status.state:_online.._invalid\") == -1) {
         setValue(\"process\", \"backCol\", \"Lofar_dpdoesnotexist\");
-        LOG_ERROR(\"SWController_small.pnl:reload|Couldn't connect updateSWController: \"+getLastError());
-       
       } else {
         updateConnected = true;
       }
@@ -139,13 +138,6 @@ updateSWController(string dp1, int status,
   int lvl = 0;
   dpGet(\"LOFAR_PermSW_Daemons_SoftwareMonitor.SWLevel:_online.._value\",lvl);
 
-  if (invalid) {
-    setValue(\"process\", \"backCol\", \"Lofar_invalid\");
-    return;
-  } else {
-    setValue(\"process\", \"backCol\", getStateColor(status));
-  }
-
   if (lvl < 6 && ($name == \"ObservationControl\" ||    // MCU
       $name == \"OnlineControl\" ||    // CCU
       $name == \"PythonControl\" ||    // CCU
@@ -153,8 +145,14 @@ updateSWController(string dp1, int status,
       $name == \"BeamControl\" ||    // Station
       $name == \"TBBControl\")) {    // Station
     setValue(\"process\", \"backCol\", \"Lofar_off\");
+    return;
+  }
+   
+  if (invalid) {
+    setValue(\"process\", \"backCol\", \"Lofar_invalid\");
+  } else {
+    setValue(\"process\", \"backCol\", getStateColor(status));
   }
-    return;   
 }
   
 " 0
diff --git a/MAC/Navigator2/panels/objects/Processes/controller_top.pnl b/MAC/Navigator2/panels/objects/Processes/controller_top.pnl
index 76c4050584c4611be3c79b05cae1b929f8eea126..873a0e511ba541f7eb6e4ad6286c9507d7d5771a 100644
--- a/MAC/Navigator2/panels/objects/Processes/controller_top.pnl
+++ b/MAC/Navigator2/panels/objects/Processes/controller_top.pnl
@@ -1,4 +1,4 @@
-V 11
+V 10
 1
 LANG:1 0 
 PANEL,-1 -1 1013 750 N "_3DFace" 1
@@ -113,8 +113,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  28 168 992 562
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 28 168 992 279
 EE 1 0 1 5 1 "time" 12 1 0 "s" 1
 LANG:1 4 time
 E
@@ -150,8 +151,9 @@ LANG:1 0
 LANG:1 2 #1
 10 30
 1
-LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0 0 1 2 1 7
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+0 1 2 1 7
 1 0
 1 21 0 "" 1
 0
@@ -168,8 +170,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  138 48 991 69
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 138 48 991 69
 2 "0s" 0 0 0 0 0 -1  E E E
 2 3
 "TopLabel"
@@ -184,11 +187,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 480 10 626 30
+E E 0 1 1 2 1 E U  1 E 480 10 626 31
 0 2 2 "0s" 0 0 0 192 0 0  480 10 1
 1
-LANG:1 33 MS Shell Dlg,-1,16,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-16-*-100-100-*-*-iso8859-1|-16,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 19 Station: Controller
 2 7
 "PRIMITIVE_TEXT2"
@@ -203,11 +207,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 34 84 115 97
+E E 0 1 1 2 1 E U  1 E 34 84 115 98
 0 2 2 "0s" 0 0 0 192 0 0  34 84 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 14 Current Action
 2 8
 "PRIMITIVE_TEXT3"
@@ -222,11 +227,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 34 51 128 64
+E E 0 1 1 2 1 E U  1 E 34 51 128 65
 0 2 2 "0s" 0 0 0 192 0 0  34 51 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 15 Status Message:
 14 9
 "processAction"
@@ -241,8 +247,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  138 78 432 99
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 138 78 432 99
 2 "0s" 0 0 0 0 0 -1  E E E
 2 10
 "PRIMITIVE_TEXT4"
@@ -257,11 +264,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 34 114 106 127
+E E 0 1 1 2 1 E U  1 E 34 114 106 128
 0 2 2 "0s" 0 0 0 192 0 0  34 114 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 13 Current Error
 14 11
 "processError"
@@ -276,8 +284,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  138 108 432 129
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 138 108 432 129
 2 "0s" 0 0 0 0 0 -1  E E E
 2 12
 "PRIMITIVE_TEXT5"
@@ -292,12 +301,33 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 34 150 119 163
+E E 0 1 1 2 1 E U  1 E 34 150 119 164
 0 2 2 "0s" 0 0 0 192 0 0  34 150 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 13 Log Messages:
+2 13
+"PRIMITIVE_TEXT6"
+""
+1 30 290 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+ E E
+19 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 30 290 130 304
+0 2 2 "0s" 0 0 0 192 0 0  30 290 1
+1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
+LANG:1 18 Controller Values:
 2 15
 "PRIMITIVE_TEXT7"
 ""
@@ -311,11 +341,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 460 84 514 97
+E E 0 1 1 2 1 E U  1 E 460 84 514 98
 0 2 2 "0s" 0 0 0 192 0 0  460 84 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 9 StartTime
 2 16
 "PRIMITIVE_TEXT8"
@@ -330,11 +361,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 460 114 513 127
+E E 0 1 1 2 1 E U  1 E 460 114 513 128
 0 2 2 "0s" 0 0 0 192 0 0  460 114 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 8 StopTime
 14 17
 "processStartTime"
@@ -349,8 +381,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  528 78 822 99
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 528 78 822 99
 2 "0s" 0 0 0 0 0 -1  E E E
 14 18
 "processStopTime"
@@ -365,8 +398,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  528 108 822 129
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 528 108 822 129
 2 "0s" 0 0 0 0 0 -1  E E E
 2 19
 "PRIMITIVE_TEXT9"
@@ -381,11 +415,12 @@ LANG:1 0
 
 1
 "dashclr"N "_Transparent"
-E E 0 1 1 2 1 E U  1 E 850 84 867 97
+E E 0 1 1 2 1 E U  1 E 850 84 867 98
 0 2 2 "0s" 0 0 0 192 0 0  850 84 1
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
-0 1
+LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+1
 LANG:1 3 ID:
 14 20
 "processID"
@@ -400,8 +435,9 @@ LANG:1 0
 
 0
 1
-LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0
-0  868 78 992 99
+LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg
+0 ""
+ 868 78 992 99
 2 "0s" 0 0 0 0 0 -1  E E E
 0
 LAYER, 1 
@@ -432,7 +468,7 @@ LAYER, 7
 1
 LANG:1 0 
 0
-3 0 "selfState" -1
+3 0 "selfState"
 "objects\\lofar_self_state.pnl" 9.500000000000011 10.5 T 1 1 0 1 0.499999999999993 2.5
 0
-0
+0
\ No newline at end of file
diff --git a/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl b/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl
index b468708f2fbe22fda6a834d17f6fe396f2d2976a..d4063b6d79062e84624c59414ec0bf0a5468e731 100644
--- a/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl
+++ b/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl
@@ -153,7 +153,7 @@ LANG:1 0
 0
 1
 LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0
-0  28 168 992 562
+0  28 168 992 462
 EE 1 0 1 5 1 "time" 12 1 0 "s" 1
 LANG:1 4 time
 E
@@ -337,6 +337,25 @@ E E 0 1 1 2 1 E U  1 E 34 150 119 163
 LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
 0 1
 LANG:1 13 Log Messages:
+2 13
+"PRIMITIVE_TEXT6"
+""
+1 32 472 E E E 1 E 1 E N "_3DText" E N "_Transparent" E E
+ E E
+19 0 0 0 0 0
+E E E
+0
+1
+LANG:1 0 
+
+1
+"dashclr"N "_Transparent"
+E E 0 1 1 2 1 E U  1 E 32 472 124 485
+0 2 2 "0s" 0 0 0 192 0 0  32 472 1
+1
+LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0
+0 1
+LANG:1 14 Daemon Values:
 2 15
 "PRIMITIVE_TEXT7"
 ""
diff --git a/RTCP/Cobalt/CoInterface/src/BlockID.cc b/RTCP/Cobalt/CoInterface/src/BlockID.cc
index 1363d31146261bf811c703a585ebdbb08e9ea621..6cc681cd171e623c68a604fb2f1483cc23063450 100644
--- a/RTCP/Cobalt/CoInterface/src/BlockID.cc
+++ b/RTCP/Cobalt/CoInterface/src/BlockID.cc
@@ -22,8 +22,6 @@
 
 #include "BlockID.h"
 
-#include <iostream>
-
 namespace LOFAR
 {
   namespace Cobalt
diff --git a/RTCP/Cobalt/CoInterface/src/BlockID.h b/RTCP/Cobalt/CoInterface/src/BlockID.h
index 9b324f732a09bcc9a3af9dc79cfefb6f8b3e2458..e1f2e91d37d1e17a45838c943ecc4048668f5895 100644
--- a/RTCP/Cobalt/CoInterface/src/BlockID.h
+++ b/RTCP/Cobalt/CoInterface/src/BlockID.h
@@ -21,8 +21,7 @@
 #ifndef LOFAR_GPUPROC_BLOCKID_H
 #define LOFAR_GPUPROC_BLOCKID_H
 
-#include <sys/types.h> // ssize_t
-#include <iosfwd>
+#include <iostream>
 
 namespace LOFAR
 {
diff --git a/RTCP/Cobalt/CoInterface/src/Parset.cc b/RTCP/Cobalt/CoInterface/src/Parset.cc
index ef8d6adaccd12df4b93c5f589b2a993520ea070d..98a91e0b859c5dbaa4651c52fa752ff9cad5596c 100644
--- a/RTCP/Cobalt/CoInterface/src/Parset.cc
+++ b/RTCP/Cobalt/CoInterface/src/Parset.cc
@@ -189,20 +189,7 @@ namespace LOFAR
           // Observation.VirtualInstrument.stationList can contain full
           // antennafield names such as CS001LBA.
           LOG_WARN_STR("Warning: old (preparsed) station name: " << station);
-
-          // Do not assume the standard station name format (sily "S9").
-          string stName;
-          string antFieldName;
-          if (station.length() <= 1)
-            stName = station; // if stName or antFieldName is empty, writing an MS table will fail
-          else if (station.length() <= 5) {
-            stName = station.substr(0, station.length()-1);
-            antFieldName = station.substr(station.length()-1);
-          } else {
-            stName = station.substr(0, 5);
-            antFieldName = station.substr(5);
-          }
-          result.push_back(AntennaFieldName(stName, antFieldName));
+          result.push_back(AntennaFieldName(station.substr(0,5), station.substr(5)));
           continue;
         }
 
diff --git a/RTCP/Cobalt/GPUProc/doc/DAS4-fs5-jenkins-install-instructions.txt b/RTCP/Cobalt/GPUProc/doc/DAS4-fs5-jenkins-install-instructions.txt
index 42c87c3d7665e3dc5d2d8b68a829d25e1fdccbef..19bdd64e1b98ca99c1e4ccf09ef64cd358a82404 100644
--- a/RTCP/Cobalt/GPUProc/doc/DAS4-fs5-jenkins-install-instructions.txt
+++ b/RTCP/Cobalt/GPUProc/doc/DAS4-fs5-jenkins-install-instructions.txt
@@ -15,21 +15,20 @@ Environment
   module load cuda55/toolkit
   module load cuda55/fft
   module load hwloc
-* We assume PATH contains $HOME/root/bin
-  and LD_LIBRARY_PATH contains $HOME/root/lib
-  and PYTHONPATH contains $HOME/root/lib64/python2.6/site-packages
+* We assume PATH contains ~/root/bin
+  and LD_LIBRARY_PATH contains ~/root/lib
 
-* Always pass at least -DCMAKE_INSTALL_PREFIX=$HOME/root to cmake, or --prefix=$HOME/root to ./configure.
+* Always pass at least -DCMAKE_INSTALL_PREFIX=~/root to cmake, or --prefix=/home/jenkins/root to ./configure.
 * Make sure everything is linked using the same library versions (esp. for libhdf5).
 
 
 Relevant files and directories
 ------------------------------
 
-$HOME/root/				installation root
-$HOME/root/src/			source and build directories
-$HOME/root/share/aips++/data/	CASA measures table location
-$HOME/jenkins/			location of the jenkins continuous build and integration system
+~/root/				installation root
+~/root/src/			source and build directories
+~/root/share/aips++/data/	CASA measures table location
+~/jenkins/			location of the jenkins continuous build and integration system
 
 
 Data Access Library (DAL)
@@ -37,14 +36,13 @@ Data Access Library (DAL)
 
 Dependency for: LOFAR/RTCP/Cobalt/OutputProc
 
-  cd $HOME/root/src
+  cd ~/root/src
   git clone https://github.com/nextgen-astrodata/DAL.git DAL
-  mkdir DAL/build
-  cd DAL/build
-  cmake -DCMAKE_INSTALL_PREFIX=$HOME/root ..
+  mkdir build
+  cd build
+  cmake -DCMAKE_INSTALL_PREFIX=~/root ..
   make -j 8 install
   ctest    # optional
-  python -c 'import dal'  # optional (test), should print nothing and exit 0
 
 
 cfitsio
@@ -52,11 +50,11 @@ cfitsio
 
 Dependency for: casacore, wcslib
 
-  cd $HOME/root/src
+  cd ~/root/src
   wget ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio_latest.tar.gz
   tar zxf cfitsio_latest.tar.gz
   cd cfitsio
-  ./configure --prefix=$HOME/root --enable-reentrant --enable-sse2 --enable-ssse3
+  ./configure --prefix=/home/jenkins/root --enable-reentrant --enable-sse2 --enable-ssse3
   make -j 8 shared
   make install
 
@@ -66,11 +64,11 @@ wcslib
 
 Dependency for: casacore
 
-  cd $HOME/root/src
+  cd ~/root/src
   wget ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib.tar.bz2
   tar jxf wcslib.tar.bz2
   cd wcslib-4.18    # or whatever version you have
-  ./configure --prefix=$HOME/root --with-cfitsiolib=$HOME/root/lib --with-cfitsioinc=$HOME/root/include
+  ./configure --prefix=/home/jenkins/root --with-cfitsiolib=/home/jenkins/root/lib --with-cfitsioinc=/home/jenkins/root/include
   make -j 8 install
 
 
@@ -79,7 +77,7 @@ CASA measures tables
 
 Dependency for: casacore (keep the measure tables up to date, automatically!)
 
-  cd $HOME/root/share    # or wherever
+  cd ~/root/share    # or wherever
   mkdir aips++
   cd aips++
   wget ftp://ftp.atnf.csiro.au/pub/software/measures_data/measures_data.tar.bz2 ftp://ftp.atnf.csiro.au/pub/software/measures_data/measures_data.tar.bz2.md5sum
@@ -97,67 +95,30 @@ Dependency for: LOFAR/RTCP/Cobalt
 Since we keep the measure data up to date (and since this install is the testing env standard), 
 we use -DDATA_DIR=..., such that others can use our install AND measures tables.
 
-  cd $HOME/root/src
+  cd ~/root/src
   svn co http://casacore.googlecode.com/svn/trunk/ casacore
-  mkdir casacore/build
-  cd casacore/build
-  cmake -DCMAKE_INSTALL_PREFIX=$HOME/root -DUSE_HDF5=ON -DUSE_FFTW3=ON -DUSE_THREADS=ON -DUSE_OPENMP=ON -DDATA_DIR=$HOME/root/share/aips++/data ..
+  mkdir build
+  cd build
+  cmake -DCMAKE_INSTALL_PREFIX=~/root -DUSE_HDF5=ON -DUSE_FFTW3=ON -DUSE_THREADS=ON -DUSE_OPENMP=ON -DDATA_DIR=~/root/share/aips++/data ..
   make -j 8 install
   ctest    # optional
 
-  findmeastable    # optional; verify that casacore can find the measures tables
-
-
-pyrap (optional for LOFAR Cobalt)
------
-
-Dependency for: various LOFAR/CEP packages
-Depends on: python boost-python casacore numpy scons
-
-  cd $HOME/root/src
-  svn co http://pyrap.googlecode.com/svn/trunk pyrap
-  cd pyrap
-  ./batchbuild-trunk.py --casacore-root=$HOME/root --enable-hdf5 --cfitsio-root=$HOME/root --wcs-root=$HOME/root --prefix=$HOME/root --python-prefix=$HOME/root/lib64/python2.6/site-packages
-  python -c 'import pyrap'  # optional (test), should print nothing and exit 0
-
-
-log4cplus
----------
-
-  cd $HOME/root/src
-  wget http://downloads.sourceforge.net/project/log4cplus/log4cplus-stable/1.1.1/log4cplus-1.1.1.tar.gz   # or whatever recent version you like
-  tar zxf log4cplus-1.1.1.tar.gz
-  cd log4cplus-1.1.1
-  ./configure --prefix=$HOME/root
-  make -j 8 install
-  make check  # optional
-
-
-libssh2
--------
-
-  cd $HOME/root/src
-  wget http://www.libssh2.org/download/libssh2-1.4.3.tar.gz   # or whatever recent version you like
-  tar zxf libssh2-1.4.3.tar.gz
-  cd libssh2-1.4.3
-  ./configure --prefix=$HOME/root
-  make -j 8 install
-  make check  # optional
+  findmeastable    # verify that casacore can find the measures tables
 
 
 LOFAR (Cobalt only)
 -------------------
 
-  cd $HOME/root/src
+  cd ~/root/src
   svn co --username USERNAME -N https://svn.astron.nl/LOFAR/trunk LOFAR
   cd LOFAR
   svn up RTCP CMake LCS
-  svn up    # Guarantee the same version for all paths in case somebody commits while 'svn up'-ing multiple subdirs.
+  svn up    # Guarantee the same version in case somebody commits while 'svn up'-ing multiple subdirs.
   cd .. 
   mkdir -p LOFAR-build/gnu_opt
   cd LOFAR-build/gnu_opt
-  cmake -DCMAKE_INSTALL_PREFIX=$HOME/root -DBUILD_PACKAGES=Cobalt -DUSE_CUDA=ON ../../LOFAR    # assumes you have all deps installed and a LOFAR/CMake/variants/variants.<hostname> file is in place
+  cmake -DCMAKE_INSTALL_PREFIX=~/root -DBUILD_PACKAGES=Cobalt ../../LOFAR    # assumes you have all deps installed and a LOFAR/CMake/variants/variants.<hostname> file is in place
   make -j 8 install
-  ctest -j 8    # optional
-  . $HOME/root/lofarinit.sh    # required to use some of the LOFAR tools, but we will do this through jenkins
+  ctest    # optional
+  . ~/root/lofarinit.sh    # often needed, but we will do this through jenkins
 
diff --git a/RTCP/Cobalt/GPUProc/share/gpu/kernels/gpu_math.cuh b/RTCP/Cobalt/GPUProc/share/gpu/kernels/gpu_math.cuh
index 1952832101ebcbe05f42104a956c4f87ecdfdf54..77366adc5f9da05f8070fc51e69740aa0bc2faa4 100644
--- a/RTCP/Cobalt/GPUProc/share/gpu/kernels/gpu_math.cuh
+++ b/RTCP/Cobalt/GPUProc/share/gpu/kernels/gpu_math.cuh
@@ -122,10 +122,11 @@ inline __device__ dcomplex dphaseShift(double frequency, double delay)
   // This needs to be done in double precision, because phi may become
   // large after we multiply a small delay and a very large freq,
   // Then we need to compute a good sin(phi) and cos(phi).
-  double phi = -2.0 * delay * frequency; // -2.0 * M_PI: M_PI below in sincospi()
+  const double pi2 = -6.28318530717958647688; // -2.0 * M_PI
+  double phi = pi2 * delay * frequency;
 
   dcomplex rv;
-  sincospi(phi, &rv.y, &rv.x); // store (cos(), sin())
+  sincos(phi, &rv.y, &rv.x); // store (cos(), sin())
   return rv;
 }
 
diff --git a/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.cc b/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.cc
index 7a8b4eca7fa37e4c44461c7320a3dce08c36b230..f89999173e8735921fda6847b74e6816406e984c 100644
--- a/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.cc
+++ b/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.cc
@@ -86,7 +86,7 @@ namespace LOFAR
     }
 
 
-    void DelayAndBandPassKernel::enqueue(PerformanceCounter &counter, double subbandFrequency, size_t SAP)
+    void DelayAndBandPassKernel::enqueue(PerformanceCounter &counter, float subbandFrequency, size_t SAP)
     {
       setArg(2, subbandFrequency);
       setArg(3, SAP);
diff --git a/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.h b/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.h
index 76c33a96246a126a351bad40ca922190debea003..adbcfbed231e3efab226d3a1b643206e22902180 100644
--- a/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.h
+++ b/RTCP/Cobalt/GPUProc/src/cuda/Kernels/DelayAndBandPassKernel.h
@@ -88,7 +88,7 @@ namespace LOFAR
 
 
       void enqueue(PerformanceCounter &counter,
-                   double subbandFrequency, size_t SAP);
+                   float subbandFrequency, size_t SAP);
     };
 
     // Specialization of the KernelFactory for
diff --git a/RTCP/Cobalt/GPUProc/src/rtcp.cc b/RTCP/Cobalt/GPUProc/src/rtcp.cc
index fafe598d83f4bdf7f4a176ec0f6c9d6474fdb188..35ce302073f3c2ce8a81e61d58e3c5e93e3d73ad 100644
--- a/RTCP/Cobalt/GPUProc/src/rtcp.cc
+++ b/RTCP/Cobalt/GPUProc/src/rtcp.cc
@@ -177,19 +177,11 @@ int main(int argc, char **argv)
   // mess.
   // umask(S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IWOTH | S_IXOTH);
 
-  // Create a parameters set object based on the inputs
-  LOG_INFO("----- Reading Parset");
-  Parset ps(argv[optind]);
-
   // Remove limits on pinned (locked) memory
   struct rlimit unlimited = { RLIM_INFINITY, RLIM_INFINITY };
+
   if (setrlimit(RLIMIT_MEMLOCK, &unlimited) < 0)
-  {
-    if (ps.settings.realTime)
-      THROW_SYSCALL("setrlimit(RLIMIT_MEMLOCK, unlimited)");
-    else
-      LOG_WARN("Cannot setrlimit(RLIMIT_MEMLOCK, unlimited)");
-  }
+    THROW_SYSCALL("setrlimit(RLIMIT_MEMLOCK, unlimited)");
 
   /*
    * Initialise OpenMP
@@ -207,6 +199,11 @@ int main(int argc, char **argv)
    * INIT stage
    */
 
+  LOG_INFO("----- Reading Parset");
+
+  // Create a parameters set object based on the inputs
+  Parset ps(argv[optind]);
+
   if (rank == 0) {
     LOG_INFO_STR("nr stations = " << ps.nrStations());
     LOG_INFO_STR("nr subbands = " << ps.nrSubbands());
@@ -258,10 +255,10 @@ int main(int argc, char **argv)
 
       LOG_DEBUG_STR("Bound to memory on nodes " << nodestrs);
     } else {
-      LOG_WARN("Cannot bind memory (libnuma says there is no numa available)");
+      LOG_WARN_STR("Cannot bind memory (libnuma says there is no numa available)");
     }
 #else
-    LOG_WARN("Cannot bind memory (no libnuma support)");
+    LOG_WARN_STR("Cannot bind memory (no libnuma support)");
 #endif
 
     // derive the set of gpus we're allowed to use
@@ -294,14 +291,9 @@ int main(int argc, char **argv)
 
   // Bindings are done -- Lock everything in memory
   if (mlockall(MCL_CURRENT | MCL_FUTURE) < 0)
-  {
-    if (ps.settings.realTime)
-      THROW_SYSCALL("mlockall");
-    else
-      LOG_WARN("Cannot mlockall(MCL_CURRENT | MCL_FUTURE)");
-  } else {
-    LOG_DEBUG("All memory is now pinned.");
-  }
+    THROW_SYSCALL("mlockall");
+
+  LOG_DEBUG("All memory is now pinned.");
 
   // Allow usage of nested omp calls
   omp_set_nested(true);
diff --git a/RTCP/Cobalt/GPUProc/src/scripts/get_casacore_measures_data.sh b/RTCP/Cobalt/GPUProc/src/scripts/get_casacore_measures_data.sh
deleted file mode 100755
index 8e0a40290c031e7d85a08b2425b492749cea8a91..0000000000000000000000000000000000000000
--- a/RTCP/Cobalt/GPUProc/src/scripts/get_casacore_measures_data.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-# get_casacore_measures_tables.sh
-# Retrieve new casacore measures tables and install it atomically.
-
-# $Id$
-
-measures_ftp_path=ftp://ftp.atnf.csiro.au/pub/software/measures_data
-measures_data_filename=measures_data.tar.bz2
-measures_md5sum_filename=$measures_data_filename.md5sum
-measures_md5sum_filename2=$measures_md5sum_filename.1  # wget does this if exists
-update_id=`date +%FT%T.%N`  # e.g. 2013-09-26T01:58:30.098006623
-
-
-cd $HOME/root/share
-mkdir -p aips++
-cd aips++
-
-# Generate date timestamp for a directory to store the table update.
-# Mangle in nanosecs to survive concurrent update (don't do it!)
-mkdir $update_id
-cd $update_id
-
-# Get the data from CSIRO's (slow from NL) FTP server. About 1 MB may take a minute.
-# Get the md5sum twice, so we safe ourselves another download of the archive when they update the files in between.
-# By default, when wget downloads a file, the timestamp is set to match the timestamp from the remote file.
-wget --tries=4 \
-  $measures_ftp_path/$measures_md5sum_filename \
-  $measures_ftp_path/$measures_data_filename \
-  $measures_ftp_path/$measures_md5sum_filename
-
-# Verify that md5 hash is equal to hash in $measures_md5sum_filename
-# No need to compare the filename. (And note that the .md5sum from CSIRO contains a CSIRO path.)
-md5sum_pre=`cut -f 1 -d ' ' $measures_md5sum_filename`
-data_md5=`md5sum $measures_data_filename | cut -f 1 -d ' '`
-md5sum_post=`cut -f 1 -d ' ' $measures_md5sum_filename2`
-if [md5sum_pre -ne data_md5 && md5sum_post -ne data_md5]; then
-  echo "MD5 checksums failed to match. Deleting downloaded files. Retrying retrieval once."
-  
-  retrieve()
-  #check/loop
-fi
-echo "MD5 checksum matches the archive."
-
-# Unpack. This will create data/ephemeris/ and data/geodetic/
-tar jxf measures_data.tar.bz2
-
-# Everything cool. Switch data/ symlink to the new data/ _atomically_ with a rename.
-# No race with a reader possible. (As long as we don't delete the old data files too early.)
-cd ..   # out of $update_id/
-ln -s $update_id/data data_tmp && mv -Tf data_tmp data
-sync
-
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB0.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB0.MS
index 69ea12d133d0dcb42871ce3791dba1e19c9e9e20..a19bd9a254441d75474fc956894de75097c87e5d 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB0.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB0.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB1.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB1.MS
index acb52546d9a7ad14af02629ddade2391cd835cf8..dfc7e806adb30898ba6a51051adbe9b8b2160949 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB1.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB1.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB2.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB2.MS
index 85af9128e3b18aa7881cd63e65433c003c97c09e..7b0bb67c1c26c7578079150aa636f3d338a0000e 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB2.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB2.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB3.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB3.MS
index f93f2871f8b7a227bb051567246c728ee74d5d41..5947d64e1bca9eaed2c3ef659752359915b356da 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB3.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB3.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB4.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB4.MS
index e931298b672d0c4f6cc6a8eeafe8b7127e67f18d..7d397448dd1fb49977c0fc0aed92d6a3a77746ae 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB4.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_1sec_1st_5sb_noflagging.output/SB4.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB0.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB0.MS
index a3d21c556b595a1825cf79634671980de3230481..78f1404613c7f25175c0fd61214265aa2c37f531 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB0.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB0.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB1.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB1.MS
index 6eaf212d92d0fc0caabde0a571b6349a72205869..043d0246477067412515c6602b43b4c5e545956d 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB1.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB1.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB2.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB2.MS
index 91d90a7608999d6574e21b1969133a7e38c7d68c..ce0701e1ba6c7894a2a89d1594e9f63bd513dacb 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB2.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB2.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB3.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB3.MS
index 82d14a40b620dff29035717d1a2b0defde496e35..cdafd2d71b9c74a951c03a41f970ce869c0b4d90 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB3.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB3.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB4.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB4.MS
index 6554de89e259f7a62464462aced2a2913b3d122e..8f12893faa32a553adc40b44c7787794741fff3f 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB4.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_1st_5sb.output/SB4.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB0.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB0.MS
index c6842820f2a6c987927643e6d62e4c001b5599a6..66cfef6bf8716df0242991825a518d5889c03007 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB0.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB0.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB1.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB1.MS
index 4191998a0dd8ddb6f3a081817627364d492fa448..19dbf1b210ffbfd07c03a3d09b05a30b5e1b7884 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB1.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB1.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB2.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB2.MS
index 3c2cf6383d5410ecd1decb7fe4bbab5735cae622..cb8fefe6fd932dc000463ec903ee732c903fd5a0 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB2.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB2.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB3.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB3.MS
index 3bd6fb6c67ee235c0b993717d80b732443acd802..db9d92ad8816be37024a73da5551d13c43013380 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB3.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB3.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB4.MS b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB4.MS
index 230e783c1f7129567874c3774bd6de34e6e38c20..5b3898ba161a330a3662e826e86228aaa9263d18 100644
Binary files a/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB4.MS and b/RTCP/Cobalt/GPUProc/test/tCorrelate_3sec_2st_5sb.output/SB4.MS differ
diff --git a/RTCP/Cobalt/GPUProc/test/testParset.sh b/RTCP/Cobalt/GPUProc/test/testParset.sh
index e90b0dc5894e43830b1be51c5c9b76c186b43e20..842bed459952519926c97bf3d530002ca2be2e8b 100755
--- a/RTCP/Cobalt/GPUProc/test/testParset.sh
+++ b/RTCP/Cobalt/GPUProc/test/testParset.sh
@@ -110,7 +110,7 @@ function parse_logs
     # Taking 32*..., we still get a few dozen miscomparisons, so resort to 64.0
     #
     # Try bigger epsilons as well to see how big the error actually is.
-    for eps_factor in 1024.0 512.0 256.0 128.0 64.0 32.0 16.0 8.0
+    for eps_factor in 1024.0 512.0 256.0 128.0
     do
       EPSILON=$(echo $eps_factor \* $numfp32eps | bc -l)
 
diff --git a/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.run b/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.run
index 9f9bedc9e8547a2e6432faf5ee4888fd05ab163c..c36e8d9d8790833a66d02b59f9fceb000c0876f1 100755
--- a/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.run
+++ b/RTCP/Cobalt/OutputProc/test/tMSWriterCorrelated.run
@@ -1,11 +1,6 @@
 #!/bin/bash
 
 ./tMSWriterCorrelated
-status=$?
-if [ $status -ne 0 ]; then
-  echo "./tMSWriterCorrelated failed with exit status $status"
-  exit $status
-fi
 
 # add path to casacore for lhn001, but don't fail if this does not work
 (