Подключение Arduino MEGA 2560 К панели оператора HMI Weintek

Есть проект, в котором Arduino UNO подключается к панели оператора Weintek по протоколу Modbus, с помощью модуля RS485: https://github.com/AReds4/Arduino2HMI/tree/main
В проекте используется библиотека: https://github.com/jossef/arduino-modbus-slave/tree/master/%20arduino-modbus-slave
На Arduino UNO все прекрасно работает, но если загрузить тот же самый проект на MEGA 2560 то ничего не работает. Контакты TXD и RXD модуля RS485 подключаются к пинам 0(RX) и 1(TX) платы UNO.
На MEGA если подключить контакты TXD и RXD к пинам 0 и 1, то модуль RS485 не подает никаких признаков жизни, если подключить к пинам 14 и 15, 16 и 17, 18 и 19, 20 и 21 то модуль RS485 начинает мигать. Как подключить Arduino MEGA 2560 к панели Weintek? Может нужно что-то изменить в библиотеке? Покопался в библиотеке, но так и не разобрался.
Код проекта:

#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>

modbusDevice regBank;
modbusSlave slave;

#define RedPin 12
#define YellowPin 11
#define GreenPin 10

void setup()
{   
  regBank.setId(0); ///Set Slave ID

  regBank.add(1);//Red
  regBank.add(2);//Yellow
  regBank.add(3);//Green

  pinMode(RedPin,OUTPUT);//Red Light
  pinMode(YellowPin,OUTPUT);//Yellow Light
  pinMode(GreenPin,OUTPUT);//Green light
 
 slave._device = &regBank; 
  slave.setBaud(9600);
}
void loop(){

  //Control LED Lights's 
    int RedLED = regBank.get(1);
      if (RedLED <= 0 && digitalRead(RedPin) == HIGH)digitalWrite(RedPin,LOW);
      if (RedLED >= 1 && digitalRead(RedPin) == LOW)digitalWrite(RedPin,HIGH);
      
    int YellowLED = regBank.get(2);//Controls the 
      if (YellowLED <= 0 && digitalRead(YellowPin) == HIGH)digitalWrite(YellowPin,LOW);
      if (YellowLED >= 1 && digitalRead(YellowPin) == LOW)digitalWrite(YellowPin,HIGH);
      
    int GreenLED = regBank.get(3);//Controls the Green
      if (GreenLED <= 0 && digitalRead(GreenPin) == HIGH)digitalWrite(GreenPin,LOW);
      if (GreenLED >= 1 && digitalRead(GreenPin) == LOW)digitalWrite(GreenPin,HIGH);

slave.run(); 
}


16 & 17 - это Serial2

Эта библиотека заточена под 328 чип. Она использует прямой доступ к регистрам. В тех чипах, где регистры имеют отличия по назначению, работать не будет.

Только непонятно зачем. В HardwareSerial::begin() и так параметры порта задать можно.

TC: Вобщем, библиотеку рихтовать необходимо, там хардкод по полной программе. Или менять на другую.