Модификация 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 печатает без танцев с бубном.
Еще больше интересных статей
Печатаю гусеницу
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Возвращаясь к вопросу о том, что меня...
Светильник - ночник к Новому году
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Придумал, экструдер.....
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
Кстати. Какие рывок и ускорени...
Пруток гонял. Все ок. Ретракт....
Да, похоже именно на это. Прич...
Обнаружил хруст при движении с...
Привет.Принтер долго стоял, се...
При автовыравнивании после 12...
Полиамид и полипропилен с 30%...