Ender 3. Переход на SKR v1.3 с TMC2130 со стоковым дисплеем

Подписаться на 3Dtoday
Bookmark
Идет загрузка
Загрузка
23.04.19
5012
39
печатает на Ender 3
Техничка
27
Статья относится к принтерам:
Ender 3 Ender 3 Pro
Погуглив, я не нашел четких инструкций о прошивке, подключении и настройке конкретно этой платы на Ender 3. Это был мой первый опыт работы с Platformio и Marlin, поэтому я и решил написать этот мануал, думаю кому-то да и будет полезно.

Приветствую всех!

Так случилось, что еще не дождавшись принтера я уже задумался об апгрейде оного. Сразу было решено брать MKS gen L с драйверами TMC2208, что позволило бы уменьшить шум при работе, а также избавило бы от всяческих костылей при установке того же 3dTouch, в виде убивания бипера, нехватки места для прошивки и т.п.

Во время выбора продавцов платы на китайских просторах, наткнулся на 32-битные платы SKR v1.1/1.3, причем 1.1 отличался в цене от MKS gen L всего на 200 рублей, задумался, спросил совета здесь, в итоге посоветовали брать SKR v1.3 + TMC2130 SPI, поискал, посчитал, посмотрел в глаза жабе, которая, ухмыляясь, раздавила меня полностью и подумал, что покупать плату с драйверами за треть цены принтера в сборе, да еще и дрыгостола, как-то тупо и решил вообще отказаться от апгрейда, успокоиться и печатать на стоке.

Но все оказалось не так просто, неожиданно мне выдалась возможность взять SKR v1.3 + 4*TMC2130 по цене ниже чем MKS gen L без драйверов. Правда драйвера надо было дорабатывать для SPI режима, но мне уже было все равно, я не смог отказаться )))

И вот приехал принтер, следом за ним плата с уточкой, а еще через несколько дней драйвера.

Погуглив, я не нашел четких инструкций о прошивке, подключении и настройке конкретно этой платы на Ender 3. Это был мой первый опыт работы с Platformio и Marlin, поэтому я и решил написать этот мануал, думаю кому-то да и будет полезно.

Итак приступим, начнем с прошивки:

1. Устанавливаем Platformio
Сначала понадобится установить Atom или Microsoft's Visual Studio Code.
Я использовал VSCode, установка крайне проста, есть куча статей, где это разжевано до мелочей, я не буду вдаваться в тонкости типа "Нажмите кнопку Install, потом Next..." и т.п.
Идем по ссылке, скачиваем, устанавливаем, запускаем. Открываем Extension Manager, вводим в поисковой строке "platformio-ide", нажимаем Install (все-таки я это сказал!)
Вот все наглядно:
Ждем окончания установки, перезапускаем, готово!

2. Качаем Marlin bugfix-2.0.x
Я скачивал всю документацию со схемами и софтом с github, прямая ссылка на архив. Там уже есть Марлин с внесенными изменениями.
Скачали?
Извлекаем архив в корень диска (пусть это будет диск C). Marlin в папке "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x"
Можно скачать непосредственно с сайта Marlin , тогда придется в файле platformio.ini в строке 24 заменить megaatmega2560 на LPC1768

env_default = LPC1768

3. Редактируем Marlin:

Копируем с заменой все файлы для нашего принтера (Ender 3) из этой папки "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x\Marlin\src\config\examples\Creality\Ender-3" в эту папку "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x\Marlin".

В Platformio жмем Open Project и выбираем папку "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x"

Открываем слева папку Marlin, открываем файл Configuration.h, редактируем:

Чтобы можно было работать с принтером с компа через COM порт нужно расскомментировать строку 116

#define SERIAL_PORT_2 -1

В строке 135 меняем название платы с BOARD_MELZI_CREALITY на BOARD_BIGTREE_SKR_V1_3

#define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3

Прописываем драйвера, ищем (Ctrl+f) - "X_DRIVER_TYPE" и раскомментируем строки нужных осей, изменим названия драйверов для них, в моем случае на TMC2130.

#define X_DRIVER_TYPE TMC2130
#define Y_DRIVER_TYPE TMC2130
#define Z_DRIVER_TYPE TMC2130
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2130
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988

Сохраняем файл (Ctrl+s).

Открываем файл Configuration_adv.h, редактируем:

В секции @section tmc_smart можно задать токи для каждого драйвера, но я оставил как есть.

В строке

#define CHOPPER_TIMING CHOPPER_DEFAULT_12V

исправляем на

#define CHOPPER_TIMING CHOPPER_DEFAULT_24V

раскомментируем строки:

Активируем мониторинг драйверов

#define MONITOR_DRIVER_STATUS

Активируем режим отладки для драйверов

#define TMC_DEBUG

#define TMC_USE_SW_SPI

Активируем гибридный режим. С ним прошивка сама будет менять режимы работы шаговиков с тихого на усиленный, не знаю насколько это актуально для Ender 3, но хуже не будет

#define HYBRID_THRESHOLD

Сохраняем файл (Ctrl+s).

Можно настроить и SENSORLESS_HOMING, но я не увидел в этом смысла для себя, поэтому не вдавался в подробности.

О драйверах TMC2130 есть прекрасная статья, я пока остановился на этих настройках )

Случайно наткнулся на инструкцию на thingiverse по подключению стокового дисплея одним кабелем, без каких-либо перевертываний коннектора, допаенных проводов и т.п., просто переназначим пины в файле "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x\Marlin\src\pins\pins_BIGTREE_SKR_V1.3.h"

меняем этот блок

#if ENABLED(ULTRA_LCD)
#define BEEPER_PIN P1_30 // (37) not 5V tolerant
#define BTN_ENC P0_28 // (58) open-drain
#define LCD_PINS_RS P1_19
#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
#define BTN_EN2 P3_25 // (33) J3-4 & AUX-4
#define SD_DETECT_PIN P1_31 // (49) (NOT 5V tolerant)
#define LCD_SDSS P0_16 // (16) J3-7 & AUX-4
#define LCD_PINS_ENABLE P1_18
#define LCD_PINS_D4 P1_20
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 P1_21
#define LCD_PINS_D6 P1_22
#define LCD_PINS_D7 P1_23
#endif
#endif // ULTRA_LCD

на это

#if ENABLED(ULTRA_LCD)
#define BEEPER_PIN P1_30 // (37) not 5V tolerant
#define BTN_ENC P0_28 // (58) open-drain
#define LCD_PINS_RS P1_22
#define BTN_EN1 P1_18 // (31) J3-2 & AUX-4
#define BTN_EN2 P1_20 // (33) J3-4 & AUX-4
#define SD_DETECT_PIN P1_31 // (49) (NOT 5V tolerant)
#define LCD_SDSS P0_16 // (16) J3-7 & AUX-4
#define LCD_PINS_ENABLE P1_23
#define LCD_PINS_D4 P1_21
#if ENABLED(ULTIPANEL)
#define LCD_PINS_D5 P1_21
#define LCD_PINS_D6 P1_22
#define LCD_PINS_D7 P1_23
#endif
#endif // ULTRA_LCD

Для работы картридера на плате, редактируем строки ниже,

было

//#define USB_SD_DISABLED
#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device
#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
//#define LPC_SD_ONBOARD // Marlin uses the SD drive on the control board

стало

//#define USB_SD_DISABLED
#define USB_SD_ONBOARD // Provide the onboard SD card to the host as a USB mass storage device
//#define LPC_SD_LCD // Marlin uses the SD drive attached to the LCD
#define LPC_SD_ONBOARD // Marlin uses the SD drive on the control board

Все, сохраняем файл (Ctrl+s).

Все готово, теперь нажимаем галочку в нижнем левом углу для компиляции прошивки
Ждем, видим заветную зеленую надпись Success.
Отправляемся в папку "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x\.pioenvs\LPC1768"
и вот она наша прошивка - firmware.bin
копируем ее в корень SD карты и пока откладываем в сторону.

Хардварная часть.

Доработка драйверов TMC2130 для работы в режиме SPI

Мне достались драйвера от BIGTREETECH TMC2130 v1.1, так называемые DIY, из коробки они работают только как STANDALONE
Для возможности подключения в SPI режиме необходимо сделать несколько нехитрых манипуляций с паяльником, во-первых нужно выпаять резистор R5, во-вторых запаять перемычки, вот картинка
Мне плата пришла с уже установленными джамперами для SPI, если вдруг у вас иначе, то вот картинка как надо:
Вставляем драйвера в плату (главное не задом наперед!) ориентир - подстроечный резистор должен быть слева и 4 пина выведенных наверх ближе к центру платы, а не к краю
Чтож, давайте установим драйвера для компьютера и прошьем плату скомпилированной ранее прошивкой.

Устанавливаем джампер питания на +5V USB, вставляем sd-карту в плату, подключаем к компьютеру, ждем, получаем ошибку установки драйвера, идем в диспетчер устройств, видим там неопознанное устройство Marlin USB Device, кликаем правой кнопкой мыши, обновить драйвер, выполнить поиск драйверов на этом компьютере, выбираем папку "C:\BIGTREETECH-SKR-V1.3-master\firmware\Marlin-bugfix-2.0.x\Marlin\src\HAL\HAL_LPC1768\win_usb_driver" и устанавливаем драйвер.

В диспетчере устройств запоминаем на каком COM порте наша плата, это понадобится для подключения к принтеру с компьютера.

Вынимаем sd-карту из платы, обратите внимание, после успешной прошивки платы файл firmware.bin на sd-карте должен изменить свое имя на FIRMWARE.CUR

Пришло время подключать плату к принтеру. Думаю довольно просто разобраться что где на стоковой плате, но на всякий случай картинка:
Убираем с разъемов клей, вытаскиваем коннекторы, чтобы не ошибиться я наклеил на неподписанные провода бирочки с описанием.

Теперь нужно модернизировать наши 2-пиновые штекеры концевиков, т.к. в SKR они под 3-пина, у нас есть два пути, первый - раздобыть 3-пиновые коннекторы и переставить провода (у меня они были в наличии), второй - срезать со стоковых часть защелки, так чтобы коннектор вставлялся в нижние 2 контакта (G и S).

Вставляем именно в нижние! На верхнем пине +5V и концевикам может настать конец. Будьте внимательны )
Вот картинка с описанием что куда подключать в SKR v1.3
Подключили? Отлично, не забываем поставить джампер в центре платы в положение INT +5V для питания от БП.

Экран подключаем в EXP1 на плате и в EXP3 на дисплее.

Включаем, пробуем покататься с дисплея, радуемся тишине!

Дело за малым, корпус для платы, смотрим варианты на thingiverse, подходят любые корпуса для SKR v1.1/1.3 и MKS gen L
Или же есть адаптер под стоковый корпус
т.к. собираюсь строить бокс для принтера из ЛДСП, то я с корпусом пока не определился, наверное буду делать сам и выносить наружу, но это уже совсем другая история...
Подписаться на 3Dtoday
27
Комментарии к статье

Комментарии

23.04.19 в 18:57
0
Дисплей должен работать без дополнительного определения пинов, если в конфиге прописан как CR10_STOCK_DISPLAY. Сам не пробовал, но видел в гитхабе коммит соответствующий.
23.04.19 в 21:44
0
в конфиге Ender он прописан именно как CR10_STOCKDISPLAY, только вот работать с одним кабелем, как в стоке, он не будет. С двумя кабелями, возможно, не пробовал.. у меня просто нет второго, да и зачем если и так работает.

В SKR v1.1 работает с двумя кабелями, но только надо переворачивать оба коннектора на 180 градусов.
23.04.19 в 22:19
0
Я к тому, что распиновку руками не надо прописывать, всё должно работать и так.
23.04.19 в 23:22
0
Да, я понял, о чем вы. Но увы, нет. Специально сейчас прошился с дефолтным файлом пинов - экран загорается и все, никаких признаков жизни, просто светится.
13.05.19 в 19:42
0
Вдруг кому-то потом пригодится...
Добрались таки руки до SKR v1.3 и Эндера. Собрал Marlin 2.0 от 20190401 - экран заработал без дополнительных телодвижений (CR10_STOCKDISPLAY). Свежая версия (от 2019-05-11) почему-то не собралась с тем же конфигом, ругается на gpio.h.
24.04.19 в 00:24
0
не забываем поставить джампер в центре платы в положение INT +5V для питания от БП.
я вот не могу понять, а как тогда быть с этой перемычкой если я хочу управлять принтером с компа? Получается что к компу подключить не получится?
24.04.19 в 08:45
1
Получится, перемычка сделана для развязки питания платы, просто ставите перемычку на INT +5V для питания от БП и как обычно USB кабель в комп и все будет работать, просто питание платы будет не от USB, а от БП.
28.04.19 в 17:50
0
Чтобы можно было работать с принтером с компа через COM порт нужно расскомментировать строку 116

#define SERIAL_PORT_2 -1
ну вот все сделал как описывалось выше и все-равно симпли и репитер хост не могут подрубиться, что в моем конфиге не так?

* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
107 #define SERIAL_PORT 0
/**

*
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
116 #define SERIAL_PORT_2 -1
/**
* This setting determines the communication speed of the printer.
*
* 250000 works in most cases, but you might try a lower speed if
* you commonly experience drop-outs during host printing.
* You may try up to 1000000 to speed up SD file transfer.
*
* :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
*/
#define BAUDRATE 115200

// Please choose the name from boards.h that matches your setup
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_BIGTREE_SKR_V1_3
28.04.19 в 18:33
0
Крч, сам спросил, сам ответил) кто столкнулся с трудностями при подключении к компу через юсб, есть маленький нюанс, если вы используете прошивку смузи, то это одни драйвера, а если марлин, как и я, то нужно устанавливать иные дрова на комп, по этой ссылке дрова если ставите марлин https://www.dropbox.com/s/a0k5idjmf4fn82f/lpc176x_usb_driver.inf?dl=0
30.04.19 в 10:40
0
Все верно, я описывал как ставить драйвер как раз для Марлин, драйвер есть в папке Марлина, необязательно его скачивать, он тут Marlin-bugfix-2.0.x\Marlin\src\HAL\HAL_LPC1768\win_usb_driver
24.04.19 в 06:06
0
Тоже хочу поставить такую плату на свой эндер, но я хочу ее поставить с дополнительным экструдером, для микса пластика. Тк я новичок в этом деле можете посоветовать, что лучше взять? Если с механизмом подачи особых заморочек нет, то вот с хотэндом у меня произошел взрыв мозга. разные горла разные резьбы с трубкой в горле и без и тп...
24.04.19 в 08:52
0
Да я и сам совсем не профи )) Посмотрите в сторону химеры, у Соркина хорошее видео есть
24.04.19 в 10:59
0
Хорошее видео!!! Спасибо!
25.04.19 в 04:23
0
Лежат у меня 2 такие платы, взял на тест для ender 3. Но жаба дала добро еще и на Lerdge, поэтому сейчас вот так :)

e1373dbf390fc360cba0570a5a998b03.jpg



9dfbe1d00588973d9c147aef26b2a4be.jpg

Корпус сток с небольшими доработками
25.04.19 в 08:34
0
Т.к. с программированием/прошивками туговато, то позвольте глупый вопрос.. А обязательно Platformio устанавливать? Arduino-IDE не покатит?
25.04.19 в 09:07
0
для 32 бит обязательно Platformio. Если справлялись с Arduino-IDE, то справитесь и с Platformio, там даже проще, библиотеки необходимые он подтягивает сам
25.04.19 в 09:58
0
За что отвечает данный параметр?

#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
25.04.19 в 12:37
0
Это для TMC драйверов некая настройка для оптимизации шума, вот что говорит мануал
27.04.19 в 09:54
0
Для драйверов А4988 тоже самое? на самих драверах А4988 тоже перемычки надо делать и резисторы удалять? а так же джамперы в таком же виде?
27.04.19 в 13:50
1
сделал все по Вашему описанию : после включения питания пошел дымок с драйверов... Драйвера погорели....
Что я не так сделал?
27.04.19 в 14:04
0
Дайте фото с установленными драйверами, может промахнулись
27.04.19 в 18:57
0
Что я не так сделал
1. Поторопились;
2. Не сравнили драйверы по даташитам - ТС и свои A4988; они очевидно разные от слова совсем;
3. Похоже погорели не только драйверы. Всё опять надо перепроверять, по питанию в особенности.


Не слыхал, чтобы A4988 управлялись по SPI.
Вы очень смелый человек, выпускающий волшебного электронного джина.
28.04.19 в 00:29
1
Нет конечно, не надо в A4988 вообще ничего трогать, это абсолютно другие драйверы и к ним ничего из статьи не относится. Для них просто надо было поменять положение джамперов для режима step/dir и все.
28.04.19 в 07:54
0
42401c75481a1bca1c62c82d4b0e88e2.jpg
affc1613b6851a86b1b48905e959ac6e.jpg
28.04.19 в 13:48
0
Судя по надписи а4988, вы их поставили вверх ногами
28.04.19 в 17:19
0
точно - вставили задом наперед
28.04.19 в 17:26
0
Залил прошивку, при запуске сразу почувствовал запах, отключил. Оказывается за 5-10 сек сильно нагрелся мосфет нагревателя кровати, отключил кровать и запустил. Сразу при старте 24v на разъеме стола. Это пробитый мосфет или что-то не так в прошивке? Делал все как у вас.
Кстати, как лучше подключить кулер радиатора хотэнда если не напрямую? Хочется чтобы включался только при нагреве и желательно не в полную силу (PWM). Можно ли подключить параллельно с нагревателем сопла?
28.04.19 в 18:40
1
прописываете здесь нужный пин и ставите по какой температуре включаться, и можете подрубить вентилятор обдува хотенда к свободному разъему НЕ1
16b4ac4a78fda8ddc2af020945c66d6b.JPG


проверьте на всяк правильность распиновки, у меня так:
7c8dcc0a05bc375893c4d3c29fde8881.JPG
28.04.19 в 18:59
0
Спасибо за ответ. И походу у меня бракованная плата :( Купил 2, щас залил одинаковые прошивки, на одной все нормально, на другой нет.
Всегда горит индикаторный диод о активности мосфета. Купил на замен бракованной платы эндера. Китайцы мать их за ногу.
28.04.19 в 19:17
0
Посоны! У меня с завода пробитый мосфет! теперь точно. Проверяйте свои.
29.04.19 в 00:52
0
хреново( на моей плате был заменен мосфет, видны следы пайки неаккуратной относительно других
04.05.19 в 09:44
0
есть примеры печати до/после? стоит выделки овчинка?
04.05.19 в 22:35
1
Лично у меня примеров нет, сейчас принтер не подключен основательно, жду вентиляторы и пр., буду доделывать. Ну, а так - печатал хорошо до и после хорошо (печатал кораблики, но отдал их, показать не могу), изменений каких-то глобальных в качестве нет, из плюсов - стало тихо, чего я и добивался. Я никому не советую хватать эту плату и скорее ставить на Ender, просто у меня был вариант взять ее с драйверами дешевле, чем mks gen L без драйверов.
04.05.19 в 22:41
0
плату я давно заказал, просто в раздумьях ставить на эндер или ванхао дубликатор 3.
18.05.19 в 19:41
0
Какие перемычки надо ставить для драйвера A4988?
20.05.19 в 10:54
0
18.05.19 в 20:27
0
И еще вопрос... экструдер дергается туда сюда. что и где надо подкрутить?
21.05.19 в 10:11
0
Есть вопросик. Как я понял при такой конфигурации кровать греется в bang-bang? Строчка с регулировкой пида вроде как закоментированна, но визуально видно что кровать греется короткими импульсами. После недели печати заметил что кровать долго греется. Причем она быстро греется до 80% от заданной температуры а потом очень медленно до заданной. и не важно будет это 60 или 90 гр.
22.05.19 в 16:39
0
Отвечаю сам себе. Работает по пидам но в меню его не добавить, только зашивать вручную

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

История болезни

Завод «Полема» представил новые материалы для аддитивных технологий в судостроении

3D-ПЕЧАТЬ МЕТАЛЛАМИ. Характеристики и особенности материалов.

3D-сканеры ScanTech на выставке Металлообработка-2019

Поиграем-3. Пазл - "Зверинец"

Уроки 3D моделирования Fusion 360 | Создаем 3D модель для 3D печати. Урок 4