Модификация MakerBot Replicator 2
Модификация MakerBot Replicator 2
С 2013 года трудится у меня MakerBot Replicator 2. Довольно шумный, с 8-ми битной платой, давно не обновляемой прошивкой и примитивным слайсером. Технологии 3D печати постоянно развиваются, появляются новые возможности прошивок, слайсеров, тихие драйверы двигателей. Но всё это для старенького MakerBot`а недоступно. Задумал я поставить 32-х битную плату с новыми драйверами и всеми вытекающими из этого плюшками. Выбирал между Lerdge X с драйверами LV8729 и SKR 1.3 с TMC2130. В итоге остановился на SKR 1.3 и прошивке Marlin 2.0.
Добравшись до подвала и разглядев внимательно родную материнскую плату MakerBot`а понял, что задача оказалась далеко не тривиальной.
Длинный шлейф слева по центру с темно-серыми проводами – это подключение моторов. Обмотки вообще не обозначались никакими цветами. Темно-серый шлейф снизу – это коннектор концевиков. И, наконец, шлейф с цветными проводами справа внизу – это двигатель, вентилятор и нагреватель экструдера. Спасибо, что хоть цветом обозначили.
Кому интересно, распиновка коннекторов.
По коннектору моторов:
По два провода с каждого концевика идут на землю и они соединены между собой.
По коннектору экструдера всё оказалось гораздо проще. Если смотреть на фото платы, то нижние 4 провода – это шаговик, затем черный и красный – вентилятор обдува экструдера, черный и белый – нагреватель экструдера.
В итоге вытащил все провода моторов и протянул новые. К коннектору концевиков спаял переходник.
Мотор оси Y тоже поменял. Поставил помощнее - 17HS15-1504S-X1, так как на него приходится самая большая нагрузка.
Кстати, двигатели на остальные оси и экструдер стоят необычные и никакого описания по ним нет, так что пришлось ток подбирать методом тыка.
На оси Х и экструдере стоит 17HD4063-03M, на оси Z – 17HD4001-28N с винтом.
Ток на драйверах устанавливать не имеет смысла, так как все значения берутся из прошивки (проверено опытным путем). На двигатели осей X, Z и экструдера установил ток 450 мА, на Y – 1.5А
Есть еще одна интересная особенность. Вместо термистора в хотэнде Репликатора используется термопара (кстати, красный провод на которой – минус, а желтый – плюс). В SKR1.3 нельзя так просто взять и воткнуть ее в разъем для термистора, т.к. принцип работы этих двух приборов совершенно разный. Термопара при нагреве генерирует небольшой ток, а термистор изменяет свое сопротивление. Поэтому для того, чтобы контроллер воспринимал температуру с термопары пины, к которым она подключена должны быть переведены в режим аналого-цифрового преобразователя (АЦП). Всё это в Марлине есть, но учитывая совсем небольшой ток, генерируемый термопарой, АЦП контроллера считывает показания на уровне 1-2 оС
Таким образом, чтобы подключить к плате термопару необходимо сначала подключить ее к усилителю для термопары, а затем сигнал подать на пин АЦП процессора. Как оказалось плюсовые пины для подсоединения термисторов на плате (0.23, 0.24 и 0.25) и есть входы АЦП. Короче, написал в техподдержку больших деревьев и получил замечательный, а главное профессиональный ответ: «You can connect it and use it. The pins have been defined in the configuration file and do not need to be changed.»
Начал ковырять сам. В файле …\Marlin\src\pins\lpc1768\pins_BIGTREE_SKR_V1.3.h есть интересный блок
//
// Temperature Sensors
// 3.3V max when defined as an analog input
//
#define TEMP_BED_PIN 0 // A0 (T0) - (67) - TEMP_BED_PIN
#define TEMP_0_PIN 1 // A1 (T1) - (68) - TEMP_0_PIN
#define TEMP_1_PIN 2 // A2 (T2) - (69) - TEMP_1_PIN
Т.е. можно всё-таки использовать данные входы как аналоговые с ограничением по входному напряжению в 3.3 вольта.
Пробовал подключать с разными усилителями для термопары ничего не заработало. В итоге плюнул, убрал термопару и поставил обычный 100К термистор.
Теперь немного о настройке прошивки.
Файл Configuration.h
#define SERIAL_PORT 0
#define SERIAL_PORT_2 -1
Иначе не сможем подключить к компьютеру по USB
#define BAUDRATE 115200
Скорость связи с платой
#define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3
Наша плата.
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1
Обычный 100К термистор и горячий стол (у меня он есть).
#define USE_ZMIN_PLUG
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
Настройка концевиков.
#define Z_MIN_ENDSTOP_INVERTING true
#define X_MAX_ENDSTOP_INVERTING true
#define Y_MAX_ENDSTOP_INVERTING true
Инвертируем концевики.
#define X_DRIVER_TYPE TMC2130
#define Y_DRIVER_TYPE TMC2130
#define Z_DRIVER_TYPE TMC2130
#define E0_DRIVER_TYPE TMC2130
Я использую драйвера ТМС2130.
#define DEFAULT_AXIS_STEPS_PER_UNIT { 88.89, 90.9, 800, 97.25 }
Настройка шагов на мм. На оси Z на 4х заходных трапецеидальных винтах с шагом 2мм в прошивке нужно считать не шаг, а длину перемещения за оборот. Для вала MakerBot получаем 200*32/8=800 при микрошаге 1/32. На остальных моторах стоит микрошаг 1/16. Значения получились путем калибровки.
#define DEFAULT_MAX_ACCELERATION { 2300, 2300, 200, 2000 }
#define DEFAULT_ACCELERATION 500
#define DEFAULT_RETRACT_ACCELERATION 800
#define DEFAULT_TRAVEL_ACCELERATION 500
Ускорения.
#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false
Ничего не инвертируем.
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1
Направление движения осей при концевиках X и Y в MAX.
#define X_BED_SIZE 285
#define Y_BED_SIZE 153
Размер печатной области.
#define Z_MAX_POS 155
То же по Z.
#define LEVEL_BED_CORNERS
Для ручной калибровки стола
#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (4*60)
Более плавное движение домой.
#define SDSUPPORT
Поддержка SD карт.
Файл Configuration_adv.h
#define E0_AUTO_FAN_PIN FAN1_PIN
Так как вентилятор обдува радиатора хотэнда подключил в разъем НЕ1
#define QUICK_HOME
Разрешаем ехать домой по диагонали. Если закоментировано, то сначала паркуется ось Х, затем ось Y.
#define DEFAULT_MINSEGMENTTIME 50000
Улучшаем печать по USB
#define MANUAL_FEEDRATE { 100*60, 100*60, 10*60, 60 }
Немного подправил.
#define BLOCK_BUFFER_SIZE 32
#else
#define BLOCK_BUFFER_SIZE 16
Добавил строки в блок #if ENABLED(SDSUPPORT) для улучшения чтения USB.
#define SDCARD_CONNECTION ONBOARD // было LCD
Подправим, чтобы можно было загружать g-код не только через кардридер дисплея, но и через плату.
#define BUFSIZE 32
#define TX_BUFFER_SIZE 32
Немного улучшим работу экрана
#define X_CURRENT 450
#define Y_CURRENT 1500
#define Z_CURRENT 450
#define E0_CURRENT 450
Выставляем токи в блоке #if HAS_TRINAMIC
#define Z_HYBRID_THRESHOLD 20
Чтобы двигатель меньше шумел.
Для работы Linear Advance необходимо установить следующие параметры
#define MINIMUM_STEPPER_DIR_DELAY 20
#define MINIMUM_STEPPER_PULSE 2
#define MAXIMUM_STEPPER_RATE 400000
Спасибо emlonlife, статья «Linear Advance + SKR 1.3 + TMC2208 (2130)»
И, наконец, раз уж занялся модификацией, подключил OctoPrint. Каких-то особенностей подключения нет, все стандартно.
В заключение хочу сказать, что принтер стало практически не слышно при тех же скоростях печати. Качество и возможности печати возросли. PLA, PETG, ABS печатает без танцев с бубном.
Еще больше интересных статей
Прозрачный ПЕТГ. Печать.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Тантра
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Вот что получается. Вро...
Записки тридэголика. Эпизод первый.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.



Комментарии и вопросы
Да, странно. Обычно нагрев сни...
Оребрение предназначено для сн...
Да бы не погасить приятные вос...
Появляются такие полосы сперед...
Привет всем! На принтере Anycu...
Сколько не затягиваю трубка пр...
Уж не знаю чего с этой платой....