         this->dataWrite(XModem::CAN);
         return false;
       default:
-debugPrintf("rf5:%d\n",cmd);  
         //something wrong
         this->dataWrite(XModem::CAN);
         this->dataWrite(XModem::CAN);

  this->blockNo = 1;
  this->blockNoExt = 1;
  this->retries = 0;
debugPrintf("rf0\n");  
  while (1) {
    char cmd = this->dataRead(100);
debugPrintf("rf1:%d\n",cmd);  
    switch(cmd){
      case XModem::SOH:
debugPrintf("rf2:%d\n",cmd);  
        if (!this->receiveFrameNo()) {
debugPrintf("rf2.1:%d\n",cmd);  
          if (this->sendNack())
            break;
          else
            return false;
        }
        if (!this->receiveData()) { 
debugPrintf("rf2.2:%d\n",cmd);  
          if (this->sendNack())
            break;
          else
            return false;          
        };
        if (transfer == Crc) {
debugPrintf("rf2.3:%d\n",cmd);  
          if (!this->checkCrc()) {
            if (this->sendNack())
              break;

          }
        } else {
          if(!this->checkChkSum()) {
            if (this->sendNack())
              break;
            else
