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

Bookmark
Идет загрузка
Загрузка
23.04.2019
14380
42
печатает на Ender 3
Техничка

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

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

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

37
Статья относится к принтерам:
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-masterfirmwareMarlin-bugfix-2.0.x'

Можно скачать непосредственно с сайта Marlin , тогда придется в файле platformio.ini в строке 24 заменить megaatmega2560 на LPC1768
env_default = LPC1768
3. Редактируем Marlin:

Копируем с заменой все файлы для нашего принтера (Ender 3) из этой папки 'C:BIGTREETECH-SKR-V1.3-masterfirmwareMarlin-bugfix-2.0.xMarlinsrcconfigexamplesCrealityEnder-3' в эту папку 'C:BIGTREETECH-SKR-V1.3-masterfirmwareMarlin-bugfix-2.0.xMarlin'.

В Platformio жмем Open Project и выбираем папку 'C:BIGTREETECH-SKR-V1.3-masterfirmwareMarlin-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-masterfirmwareMarlin-bugfix-2.0.xMarlinsrcpinspins_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-masterfirmwareMarlin-bugfix-2.0.x.pioenvsLPC1768'

и вот она наша прошивка - 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-masterfirmwareMarlin-bugfix-2.0.xMarlinsrcHALHAL_LPC1768win_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

Или же есть адаптер под стоковый корпус т.к. собираюсь строить бокс для принтера из ЛДСП, то я с корпусом пока не определился, наверное буду делать сам и выносить наружу, но это уже совсем другая история...

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

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

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

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

Комментарии

23.04.2019 в 18:57
0

Дисплей должен работать без дополнительного определения пинов, если в конфиге прописан как CR10_STOCK_DISPLAY.  Сам не пробовал, но видел в гитхабе коммит соответствующий.

23.04.2019 в 21:44
0

в конфиге Ender он прописан именно как CR10_STOCKDISPLAY, только вот работать с одним кабелем, как в стоке, он не будет. С двумя кабелями, возможно, не пробовал.. у меня просто нет второго, да и зачем если и так работает.

В SKR v1.1 работает с двумя кабелями, но только надо переворачивать оба коннектора на 180 градусов.

23.04.2019 в 22:19
0

Я к тому, что распиновку руками не надо прописывать, всё должно работать и так.

23.04.2019 в 23:22
0

Да, я понял, о чем вы. Но увы, нет. Специально сейчас прошился с дефолтным файлом пинов - экран загорается и все, никаких признаков жизни, просто светится.

13.05.2019 в 19:42
0

Вдруг кому-то потом пригодится...
Добрались таки руки до SKR v1.3 и Эндера. Собрал Marlin 2.0 от 20190401 - экран заработал без дополнительных телодвижений (CR10_STOCKDISPLAY). Свежая версия (от 2019-05-11) почему-то не собралась с тем же конфигом, ругается на gpio.h.

24.04.2019 в 00:24
0

не забываем поставить джампер в центре платы в положение INT +5V для питания от БП.
я вот не могу понять, а как тогда быть с этой перемычкой если я хочу управлять принтером с компа? Получается что к компу подключить не получится?

24.04.2019 в 08:45
1

Получится, перемычка сделана для развязки питания платы, просто ставите перемычку на INT +5V для питания от БП и как обычно USB кабель в комп и все будет работать, просто питание платы будет не от USB, а от БП.

28.04.2019 в 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.2019 в 18:33
0

Крч, сам спросил, сам ответил) кто столкнулся с трудностями при подключении к компу через юсб, есть маленький нюанс, если вы используете прошивку смузи, то это одни драйвера, а если марлин, как и я, то нужно устанавливать иные дрова на комп, по этой ссылке дрова если ставите марлин https://www.dropbox.com/s/a0k5idjmf4fn82f/lpc176x_usb_driver.inf?dl=0

30.04.2019 в 10:40
0

Все верно, я описывал как ставить драйвер как раз для Марлин, драйвер есть в папке Марлина, необязательно его скачивать, он тут Marlin-bugfix-2.0.xMarlinsrcHALHAL_LPC1768win_usb_driver

24.04.2019 в 06:06
0

Тоже хочу поставить такую плату на свой эндер, но я хочу ее поставить с дополнительным экструдером, для микса пластика. Тк я новичок в этом деле можете посоветовать, что лучше взять? Если с механизмом подачи особых заморочек нет, то вот с хотэндом у меня произошел взрыв мозга. разные горла разные резьбы с трубкой в горле и без и тп...

24.04.2019 в 08:52
0

Да я и сам совсем не профи )) Посмотрите в сторону химеры, у Соркина хорошее видео есть

24.04.2019 в 10:59
0

Хорошее видео!!! Спасибо!

25.04.2019 в 04:23
0

Лежат у меня 2 такие платы, взял на тест для ender 3. Но жаба дала добро еще и на Lerdge, поэтому сейчас вот так :)

Корпус сток с небольшими доработками

25.04.2019 в 08:34
0

Т.к. с программированием/прошивками туговато, то позвольте глупый вопрос.. А обязательно Platformio устанавливать? Arduino-IDE не покатит?

25.04.2019 в 09:07
0

для 32 бит обязательно Platformio. Если справлялись с Arduino-IDE, то справитесь и с Platformio, там даже проще, библиотеки необходимые он подтягивает сам

25.04.2019 в 09:58
0

За что отвечает данный параметр?

#define CHOPPER_TIMING CHOPPER_DEFAULT_12V

25.04.2019 в 12:37
0

Это для TMC драйверов некая настройка для оптимизации шума, вот что говорит мануал

27.04.2019 в 09:54
0

Для драйверов А4988 тоже самое? на самих драверах А4988  тоже перемычки надо делать и резисторы удалять? а так же джамперы в таком же виде?

27.04.2019 в 13:50
1

сделал все по Вашему описанию : после включения питания пошел дымок с драйверов... Драйвера погорели....
Что я не так сделал?

27.04.2019 в 14:04
0

Дайте фото с установленными драйверами, может промахнулись

27.04.2019 в 18:57
0

Что я не так сделал
1. Поторопились;
2. Не сравнили драйверы по даташитам - ТС и свои A4988; они очевидно разные от слова совсем;
3. Похоже погорели не только драйверы. Всё опять надо перепроверять, по питанию в особенности.

Не слыхал, чтобы A4988 управлялись по SPI.
Вы очень смелый человек, выпускающий волшебного электронного джина.

28.04.2019 в 00:29
1

Нет конечно, не надо в A4988 вообще ничего трогать, это абсолютно другие драйверы и к ним ничего из статьи не относится. Для них просто надо было поменять положение джамперов для режима step/dir и все.

28.04.2019 в 07:54
0
28.04.2019 в 17:26
0

Залил прошивку, при запуске сразу почувствовал запах, отключил. Оказывается за 5-10 сек сильно нагрелся мосфет нагревателя кровати, отключил кровать и запустил. Сразу при старте 24v на разъеме стола. Это пробитый мосфет или что-то не так в прошивке? Делал все как у вас.
Кстати, как лучше подключить кулер радиатора хотэнда если не напрямую? Хочется чтобы включался только при нагреве и желательно не в полную силу (PWM). Можно ли подключить параллельно с нагревателем сопла?

28.04.2019 в 18:40
1

прописываете здесь нужный пин и ставите по какой температуре включаться, и можете подрубить вентилятор обдува хотенда к свободному разъему НЕ1

проверьте на всяк правильность распиновки, у меня так:

28.04.2019 в 18:59
0

Спасибо за ответ. И походу у меня бракованная плата :( Купил 2, щас залил одинаковые прошивки, на одной все нормально, на другой нет.
Всегда горит индикаторный диод о активности мосфета. Купил на замен бракованной платы эндера. Китайцы мать их за ногу. 

28.04.2019 в 19:17
0

Посоны! У меня с завода пробитый мосфет! теперь точно. Проверяйте свои.

29.04.2019 в 00:52
0

хреново( на моей плате был заменен мосфет, видны следы пайки неаккуратной  относительно других

04.05.2019 в 09:44
0

есть примеры печати до/после? стоит выделки овчинка?

04.05.2019 в 22:35
1

Лично у меня примеров нет, сейчас принтер не подключен основательно, жду вентиляторы и пр., буду доделывать. Ну, а так - печатал хорошо до и после хорошо (печатал кораблики, но отдал их, показать не могу), изменений каких-то глобальных в качестве нет, из плюсов - стало тихо, чего я и добивался. Я никому не советую хватать эту плату и скорее ставить на Ender, просто у меня был вариант взять ее с драйверами дешевле, чем mks gen L без драйверов.

04.05.2019 в 22:41
0

плату я давно заказал, просто в раздумьях ставить на эндер или ванхао дубликатор 3.

18.05.2019 в 19:41
0

Какие перемычки надо ставить для драйвера A4988?

20.05.2019 в 10:54
0

[IMG]https://3dtoday.ru/upload/main/52c/52c50c898700ddd473e5a9e43f60678a.png[/IMG]

18.05.2019 в 20:27
0

И еще вопрос... экструдер дергается туда сюда. что и где надо подкрутить?

21.05.2019 в 10:11
0

Есть вопросик. Как я понял при такой конфигурации кровать греется в bang-bang? Строчка с регулировкой пида вроде как закоментированна, но визуально видно что кровать греется короткими импульсами. После недели печати заметил что кровать долго греется. Причем она быстро греется до 80% от заданной температуры а потом очень медленно до заданной. и не важно будет это 60 или 90 гр.

22.05.2019 в 16:39
0

Отвечаю сам себе. Работает по пидам но в меню его не добавить, только зашивать вручную

17.06.2019 в 22:22
0

Там для подключения экрана нужен только один шлейф? А то на ютюбе некоторые двумя шлейфами подключали

18.06.2019 в 11:17
0

А какой вообще экран оптимален и без колхоза подключается?
LCD2004 - не стартует, воткнул как бы в родные гнезда, а тут почище чем в MKS Gen выходит, перевернуть недостаточно)))
Кардридер, кнопки не нужны, все через Окту.
Но вот температуру смотреть удобно на принтере, особенно когда филамент меняешь.

21.07.2019 в 22:26
0

При попытке установки драйвера 'lpc176x_usb_driver.inf' возникает такая проблема:

28.07.2019 в 12:11
0

Всем здравствуйте, может кто подскажет, все работает вроде бы хорошо, но недавно заметил такой косяк, при печати не доходит до края стола вправо по оси Х. Заметил когда начал печатать объемную деталь, на слайсере все выставлено правильно, деталь помещается на стол, но когда печатает 3 см обрезает справа. И бывает еще печатает, печатает, потом встает и все.

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

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

Новый 3D сканер RangeVision NEO. Обзор от 3Dtool. Оптический 3D сканер 2019 года.

3D печать и полиграфические услуги: как сэкономить на дорогостоящих и недолговечных деталях

Троллейбус

Оптические концевики

D-материалы как новые термины Формнекста

Фотополимерная печать, небольшая уловка.