Кремень КД Реклама
Кремень КМ Реклама

Модификация MakerBot Replicator 2

Neiromantic
Идет загрузка
Загрузка
30.12.2019
4493
11
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

3
Статья относится к принтерам:
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`а понял, что задача оказалась далеко не тривиальной. 

Модификация MakerBot Replicator 2

Длинный шлейф слева по центру с темно-серыми проводами – это подключение моторов. Обмотки вообще не обозначались никакими цветами. Темно-серый шлейф снизу – это коннектор концевиков. И, наконец, шлейф с цветными проводами справа внизу – это двигатель, вентилятор и нагреватель экструдера. Спасибо, что хоть цветом обозначили.

Кому интересно, распиновка коннекторов.  

По коннектору моторов:

Модификация MakerBot Replicator 2По коннектору концевиков:

Модификация MakerBot Replicator 2По два провода с каждого концевика идут на землю и они соединены между собой.

По коннектору экструдера всё оказалось гораздо проще. Если смотреть на фото платы, то нижние 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 печатает без танцев с бубном.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

3
Комментарии к статье