|  | @@ -3287,25 +3287,23 @@ void gcode_M701()
 | 
	
		
			
				|  |  |  static void gcode_PRUSA_SN()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |      uint8_t selectedSerialPort_bak = selectedSerialPort;
 | 
	
		
			
				|  |  | +    char SN[20];
 | 
	
		
			
				|  |  |      selectedSerialPort = 0;
 | 
	
		
			
				|  |  | -    putchar(';');
 | 
	
		
			
				|  |  | -    putchar('S');
 | 
	
		
			
				|  |  | -    int numbersRead = 0;
 | 
	
		
			
				|  |  | +    SERIAL_ECHOLNRPGM(PSTR(";S"));
 | 
	
		
			
				|  |  | +    uint8_t numbersRead = 0;
 | 
	
		
			
				|  |  |      ShortTimer timeout;
 | 
	
		
			
				|  |  |      timeout.start();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    while (numbersRead < 19) {
 | 
	
		
			
				|  |  | -        while (MSerial.available() > 0) {
 | 
	
		
			
				|  |  | -            uint8_t serial_char = MSerial.read();
 | 
	
		
			
				|  |  | -            selectedSerialPort = selectedSerialPort_bak;
 | 
	
		
			
				|  |  | -            putchar(serial_char);
 | 
	
		
			
				|  |  | +    while (numbersRead < (sizeof(SN) - 1)) {
 | 
	
		
			
				|  |  | +        if (MSerial.available() > 0) {
 | 
	
		
			
				|  |  | +            SN[numbersRead] = MSerial.read();
 | 
	
		
			
				|  |  |              numbersRead++;
 | 
	
		
			
				|  |  | -            selectedSerialPort = 0;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          if (timeout.expired(100u)) break;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    SN[numbersRead] = 0;
 | 
	
		
			
				|  |  |      selectedSerialPort = selectedSerialPort_bak;
 | 
	
		
			
				|  |  | -    putchar('\n');
 | 
	
		
			
				|  |  | +    SERIAL_ECHOLN(SN);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  //! Detection of faulty RAMBo 1.1b boards equipped with bigger capacitors
 | 
	
		
			
				|  |  |  //! at the TACH_1 pin, which causes bad detection of print fan speed.
 |