Сегодня дошли руки до платки и драйверов, запаял резюки на плате и перемычки на драйверах, где указано. Решил юзать аппаратный UART на меге и вместе с этим пришли трудности.
Как и советовал
Alex Post заюзал UART на разъеме для мотора X, а также на разъеме EXP3, т.к. этот разъем у меня вообще не используется никак.
Переназначил пины с E1 на X.
А вот когда начал объявлять Serial2 и Serial3, к которым как раз и относятся UART-ы которые решено заюзать, вот тут и возникли трудности.
Сначала разкомментировал в
pins_RAMPS.h эти самые UART
после строчки "#if HAS_DRIVER(TMC2208)"
"#define Y_HARDWARE_SERIAL Serial2"
"#define E0_HARDWARE_SERIAL Serial3"т.к. объявлены они были только там из всех подходящих по моему мнению pins....h.
Но это не помогло, т.к. при попытке компиляции марлин считал что я юзаю програмный UART и бешено требовал объявить соответствующие ножки для Y и E0, которые были закомментированы.
Дальше я уже прописал точно так же UART в файле
pins_RUMBA.h, после чего марлин уже просто выдал ошибку повторного объявления класса
HardwareSerial. В результате поисков выяснилось что если объявлен для использования параметр
USE_MARLINSERIAL, то марлин не юзает HardwareSerial,а эмулирует UART програмно, в частности об этом говорится в файле
MarlinSerial.cpp строка 34
а прописан этот параметр в файле
Conditionals_LCD.h строка 526.
Но комментирование данного параметра ни к чему не привело, марлин попрежнему ругается на повторное объявление класса, при том что класс этот объявлен даже не в исходниках марлина.
Теряюсь в догадках что же я делаю не так