diff --git a/MAC/APL/PAC/Cal_Server/src/CalServer.cc b/MAC/APL/PAC/Cal_Server/src/CalServer.cc
index 469b5905a0a8894f11b258fc231211f3304841a3..6d5aabdfac8927f259aab65a9b8ae24102a81d58 100644
--- a/MAC/APL/PAC/Cal_Server/src/CalServer.cc
+++ b/MAC/APL/PAC/Cal_Server/src/CalServer.cc
@@ -735,55 +735,16 @@ GCFEvent::TResult CalServer::handle_cal_start(GCFEvent& e, GCFPortInterface &por
 
 				//
 				// set the control register of the RCU's
-				// if in HBA mode turn on HBAs in groups to prevent resetting of boards
-				//
-
 				RSPSetrcuEvent setrcu;
-				bitset<MAX_RCUS> testmask;
-				Timestamp timeStamp;
-
-	//			#define N_PWR_RCUS_PER_STEP 12
-				#define N_PWR_RCUS_PER_STEP 8
 
-				int nPwrRCUs = m_n_rcus / 2;  // only the even rcus deliver power to the HBAs
-				int steps    = nPwrRCUs / N_PWR_RCUS_PER_STEP;  // 4 steps for NL stations, 8 steps for IS stations
-				int jump     = m_n_rcus / N_PWR_RCUS_PER_STEP;  // jump = 8 for NL stations and 16 for IS stations
+                setrcu.timestamp = Timestamp(0,0); 
+                setrcu.rcumask = start.subset & validmask;
+                setrcu.settings().resize(1);
+                setrcu.settings()(0) = start.rcumode()(0);
 
-				if (steps == 0) { steps = 1; }  // limit for test cabinet
-				if (jump < 2) { jump = 2; }     // limit for test cabinet
-
-				// if LBA mode select all rcus in one step
-				if (start.rcumode()(0).getMode() <= 4) {
-					steps = 1;
-					jump = 2;
-				}
-				int delay(0);
-				for (int step = 0; step < steps; ++step) {
-					validmask.reset();
-					// select 12 even(X) rcus and 12 odd(Y) rcus
-					for (uint rcu = (step * 2); rcu < m_n_rcus; rcu += jump) {
-						validmask.set(rcu);   // select X (HBA power supply)
-						validmask.set(rcu+1); // select Y
-					}
-
-					// if any rcus in this masker send command
-					testmask = start.subset & validmask;
-					if (testmask.any()) {
-						delay = SCHEDULING_DELAY + step;
-						timeStamp.setNow(delay);
-						setrcu.timestamp = timeStamp; // in steps of 1 second
-
-						//TODO: Step20.2: might have to send 2 settings e.g. when using all X-pols
-
-						setrcu.rcumask = start.subset & validmask;
-						setrcu.settings().resize(1);
-						setrcu.settings()(0) = start.rcumode()(0);
-
-						LOG_DEBUG(formatString("Sending RSP_SETRCU(%08X)", start.rcumode()(0).getRaw()));
-						itsRSPDriver->send(setrcu);
-					} // if in mask
-				} // for steps
-				_enableRCUs(subarray, delay + 4);
+				LOG_DEBUG(formatString("Sending RSP_SETRCU(%08X)", start.rcumode()(0).getRaw()));
+				itsRSPDriver->send(setrcu);
+				_enableRCUs(subarray, SCHEDULING_DELAY + 4);
 			} // conflict?
 		}
 	}
diff --git a/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc b/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc
index 6c5f8cd84eb306943837074f27683ba1eaca1032..ce0802a20f554916df8ecf3948b947c1eec8ad88 100644
--- a/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc
+++ b/MAC/APL/PIC/RSP_Driver/src/Sequencer.cc
@@ -45,37 +45,41 @@ namespace LOFAR {
 #define WRITE_ALL_TIMEOUT  5
 
 
-
 /*
  * Implements the following sequences:
  * from idle state:
- * - SEQ_STARTUP, starts on sequence disableClock
- * - SEQ_SETCLOCK, starts on sequence writeClock
- * - SEQ_RSPCLEAR, starts on sequence RSUclear
+ * - SEQ_STARTUP, on driver startup, starts on sequence disableClock
+ * - SEQ_SETCLOCK, on clock change, starts on sequence writeClock
+ * - SEQ_RSPCLEAR, on request, starts on sequence RSUclear
  *
- *  idle_state  <--------------------------------------------,
- *   |  |  |                                                 |
- *   |  |  '-> disableClock_state <-------------------.      |   STARTUP_WAIT
- *   |  |      writePLL_state     ---> writeError ----'      |   WRITE_TIMEOUT
- *   |  '----> writeClock_state   <-------------------.      |   STARTUP_WAIT
- *   |         readClock_state    ---> readError -----'      |   TDREAD_TIMEOUT
- *   |  ,------- ok <------------'                           |
- *   '--C----> RSUclear_state     <----------------------,   |   RSUCLEAR_WAIT
- *      |----> RCUdisable_state -----> writeError -------|   |   WRITE_TIMEOUT
- *      | ,----- ok <-----------' '--> ok & finalState---C---'
- *      | '--> setAll_state        --> writeError -------|       WRITE_TIMEOUT
- *      |      - Blocksync                               |
- *      |      - RADwrite                                |
- *      |      - PPSsync                                 |
- *      |      - CDOenable                               |
- *      |      - SDObitmode                              |
- *      |      - SDOselect                               |
- *      |      - SDOenable                               |
- *      |      RCUenable_state     --> writeError -------'       WRITE_TIMEOUT
- *      |                          --> finalState=True --,
+ *  idle_state  <-------------------------------------------.
+ *   |  |  |                                                |
+ *   |  |  '-> disableClock_state <----------------------.  |        STARTUP_WAIT
+ *   |  |      readDisabledClock_state --> readError ----'  |        
+ *   |  |      writePLL_state <--------------------------.  |        WRITE_TIMEOUT
+ *   |  |      readPLL_state  ---------> readError ------'  |        TDREAD_TIMEOUT
+ *   |  |                                                   |        
+ *   |  '----> writeClock_state <------------------------.  |        STARTUP_WAIT
+ *   |         readClock_state --------> readError ------'  |        TDREAD_TIMEOUT
+ *   |  .------- ok <----------'                            |        
+ *   |  |                                                   |        
+ *   '--|----> RSUclear_state <--------------------------.  |        RSUCLEAR_WAIT
+ *      |                                                |  |        
+ *      x----> RCUdisable_state -----> writeError -------x  |        WRITE_TIMEOUT
+ *      | .----- ok <-----------' '--> ok & finalState---|--'        
+ *      | |                                              |            
+ *      | '--> setAll_state ---------> writeError -------x            WRITE_TIMEOUT
+ *      |      - Blocksync                               |            
+ *      |      - RADwrite                                |            
+ *      |      - PPSsync                                 |            
+ *      |      - CDOenable                               |            
+ *      |      - SDObitmode                              |            
+ *      |      - SDOselect                               |            
+ *      |      - SDOenable                               |            
+ *      |      RCUenable_state ------> writeError -------'            WRITE_TIMEOUT
+ *      |                      '-----> finalState=True --.
  *      |                                                |
  *      '------------------------------------------------'
- *
  */
 
 
@@ -161,8 +165,9 @@ GCFEvent::TResult Sequencer::idle_state(GCFEvent& event, GCFPortInterface& /*por
 //
 // disableClock_state(event, port)
 //
-// before switching clock, goto 125 MHz (both clocks off)
-// this prevents locking of firmware
+// Before programming  the PLL on the TDS boards disable clock outputs.
+// The RSPBoards will reload the fpga firmware running on internal 125MHz clock. 
+// This prevents blocking RSPBoards while programming the PLL. 
 //
 GCFEvent::TResult Sequencer::disableClock_state(GCFEvent& event, GCFPortInterface& /*port*/)
 {
@@ -170,7 +175,7 @@ GCFEvent::TResult Sequencer::disableClock_state(GCFEvent& event, GCFPortInterfac
     case F_ENTRY: {
         LOG_INFO("Entering Sequencer::disableClock_state");
 
-        // save clock
+        // save clock, for later use
         itsClockRequest = Cache::getInstance().getBack().getClock();
 
         // set clock to internal board clock (125MHz)
@@ -203,6 +208,8 @@ GCFEvent::TResult Sequencer::disableClock_state(GCFEvent& event, GCFPortInterfac
 //
 // readClock_state(event, port)
 //
+// read back clock, to check if firmware is really running on 125MHz.
+//
 GCFEvent::TResult Sequencer::readDisabledClock_state(GCFEvent& event, GCFPortInterface& /*port*/)
 {
     switch (event.signal) {
@@ -249,7 +256,10 @@ GCFEvent::TResult Sequencer::readDisabledClock_state(GCFEvent& event, GCFPortInt
 
 //
 // writePLL_state(event, port)
-//
+// 
+// write start sequence to PLL on TDS board this is needed only once, on Driver start.
+// PLL is programmed if clock is set to 0
+// 
 GCFEvent::TResult Sequencer::writePLL_state(GCFEvent& event, GCFPortInterface& /*port*/)
 {
     switch (event.signal) {
@@ -287,6 +297,8 @@ GCFEvent::TResult Sequencer::writePLL_state(GCFEvent& event, GCFPortInterface& /
 //
 // readPLL_state(event, port)
 //
+// check programming result, if no errors, set clock back to default freq (from RSPDriver.conf)
+//
 GCFEvent::TResult Sequencer::readPLL_state(GCFEvent& event, GCFPortInterface& /*port*/)
 {
     switch (event.signal) {
@@ -314,8 +326,9 @@ GCFEvent::TResult Sequencer::readPLL_state(GCFEvent& event, GCFPortInterface& /*
             }
         }
         else if (Cache::getInstance().getState().tdread().isMatchAll(RegisterState::IDLE)) {
-            Cache::getInstance().getBack().getClock() = 200; //itsClockRequest;
-            Cache::getInstance().getFront().getClock() = 200; //itsClockRequest;
+            // set back default clock frequency
+            Cache::getInstance().getBack().getClock() = itsClockRequest; 
+            Cache::getInstance().getFront().getClock() = itsClockRequest;
             TRAN(Sequencer::writeClock_state);
         }
         break;