% Division in USART interrupt code...

• Open HardwareSerial.cpp

• At or near line 206, change this...

  tx_buffer.tail = (tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE;

...to this...

  tx_buffer.tail = (unsigned int)(tx_buffer.tail + 1) % SERIAL_BUFFER_SIZE;

• At or near line 230, change this...

  tx_buffer1.tail = (tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE;

...to this...

  tx_buffer1.tail = (unsigned int)(tx_buffer1.tail + 1) % SERIAL_BUFFER_SIZE;

• At or near line 247, change this...

  tx_buffer2.tail = (tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE;

...to this...

  tx_buffer2.tail = (unsigned int)(tx_buffer2.tail + 1) % SERIAL_BUFFER_SIZE;

• At or near line 264, change this...

  tx_buffer3.tail = (tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE;

...to this...

  tx_buffer3.tail = (unsigned int)(tx_buffer3.tail + 1) % SERIAL_BUFFER_SIZE;

• At or near line 385, change this...

  int i = (_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE;

...to this...

  int i = (unsigned int)(_tx_buffer->head + 1) % SERIAL_BUFFER_SIZE;

• Save and close HardwareSerial.cpp

Basically, put "(unsigned int)" in front of every expression that includes "% SERIAL_BUFFER_SIZE".