Реализация 32 бит на RAMPS 1.5 и ARDUINO DUE при сборке ЗD-принтера.

Подписаться на 3Dtoday
Lenivo
Идет загрузка
Загрузка
10.11.17
8325
24
RepRap
24
Статья о переводе платы управления 3D-принтера на 32-битную электронику, реализованную на основе процессорной 32-битной платы управления ARDUINO DUE и шилда RAMPS 1.5. Под прошивку MK4due v4.3.2.
21e3ddae7332f6f59f6caec3a63d6187.JPG
6af618fe2baae607c1ebf07d49824fcf.JPG
RAMPS 1.5 – это немного улучшенная RAMPS 1.4 – заменен тип корпусов у силовых транзисторов и заменены предохранители на SMD. Данные переделки приблизили эти платы к промышленному стандарту. При том, в топологии платы изменения небольшие, что позволяет переделывать данную плату под 32 бита, основываясь на материалах переделки RAMPS 1.4., поэтому для лучшего понимания переделок желательно также почитать и статьи других авторов - о переделке RAMPS 1.4. под управление Ардуино DUE.

Вот так выглядит переделанная плата RAMPS 1.5, подключенная для тестирования.
522b9f4b89a1ee9bec1044e3d160d4f6.JPG
30cac7fea89f513700a1661e0ae78844.JPG
Вот фото со снятой периферией:
e1c1ba4d1909d3e08bda4f81df9e28ca.JPG
Остановимся более подробно на перепайке RAMPS. Так как в сети я не нашёл печатной платы RAMPS 1.5, то при переделках основывался на плате RAMPS 1.4 – так как подсоединительные контакты совпадают, то измерив прибором нужные точки на плате стало понятно, как её изменять. Внизу схема как изменять плату, на основе картинки RAMPS 1.4.
Сперва выпаиваем штырьки и силовую колодку (на схеме обозначена MSTBA4):
c9628812aa7306da65d5a93990a04de9.png
Затем паяем перемычки и в одном месте перерезаем дорожку:
567a2a2dc2259d4d179f4ac60abcd403.png
Вот так это выглядит на фото платы:
ff57d447bb041c7c43562d19f5417496.JPG
На верхней стороне делать придётся чуть побольше:
2b4572cd69c17633a1b2f1c76b2e941c.JPG
Дополнительно к перемычкам, надо выпаять силовые транзисторы B55NF и впаять L3803V (IRL3803). Предварительно, откусив и выгнув, как надо, ноги и откусив лишнюю часть монтажной площадки под винт.
d4eb9c46fb47556b4221c0be35d32fda.JPG
Также припаиваем стабилизатор на 9 вольт L7809:
030a984af0fd219a63da3c727098ca84.JPG
Припаиваем керамические конденсаторы 4,7 мкф и паяем на съемных колодках дополнительный электролит на линию 3,3 вольта.
bfd4a2e300ba558f7e879ac501f5593a.JPG
Или такой вариант -электролит ROE 1000мкф*6,3вольта с шунтирующим керамическим конденсатором 4,7 мкф*35 вольт:
da2a44baa5cf1e734848c6dcd9535b66.JPG
Линия на “+5” вольт нужна только для питания дисплея. Поэтому дополнительный конденсатор напаял прямо на дисплей. Дисплей подключен стандартно:
e7be4a0854ae05fcc1dd63d82c119b9f.jpg
1a10daaedbf20b0d9c0aacfd6034e611.JPG
Энкдер подключен по схеме, только без кнопки “СБРОС” – так как это не “резет” – а просто какая-то команда, которая с задержкой стопорит выполнение программы.
59c0475a1fc4fb7f1dd6121aeac79a02.png
На указанный разъём I2C можно подключить OLED дисплей - SSD1306 I2C. Поддерживает русский язык. Правда следует учитывать, что плата управления может управлять напрямую только одним дисплеем.
33b19a8e7c8686672bfe34305e552c0e.JPG
Вот сравнение двух дисплеев - активен только один, а другой просто держит картинку, которую не скинул после перепрошивки платы на другой тип дисплея. Я использовал большой дисплей - с ним проще настраивать прошивку. А для Олед дисплея надо энкодер стандартно на другие пины подключать или переназначать их.
85b3b09fa1795bf3ab1b550bc76d553e.JPG
Оптические концевики были спаяны по такой схеме и их работоспособность проверена на текущей переделанной плате (они работают):
eec4f15b9c3526907203707ac9c6c0f3.JPG
На плате DUE был выпаян разъём на 9 вольт и впаян винтовой разъём. Также было припаяно сопротивление 10 кОм . При установке в корпус выяснилось -неудобно впаял разъём -его бы надо было повернуть на 180 градусов. Удобнее было бы монтировать плату и вставлять провод.
8a1666de2380d620470737eb2e266fe9.JPG
Сопротивление нужно для перезапуска платы при включении. Мне к сожалению попалась плата, с не модернизированной прошивкой загрузчика. После включения питания - для старта необходимо было нажать "РЕЗЕТ". Впайка сопротивления устраняет данную проблему.

Подключение SD карты выполнено по схеме. Если карта запускается со штатного питания с линии 3,3 вольта, то можно схему со стабилизатором и запиткой от 5 вольт не ставить. Карту лучше отформатировать FAT32 с кластером 64 кб.:
e6cf69a8845d94eed007eeab7dd7a33d.jpg
Я прошил прошивкой MK4duo v 4.3.2. - это стабильная версия.
На момент написания статьи была уже и экспериментальная версия "4.3.29 dew", но я её не запускал.

О том, как прошить DUE прошивкой “MK4due” читайте статью:

http://3dtoday.ru/blogs/rus5/setting-mk4duo-with-pictures/

Фото смонтированного отсека для электроники (до монтажа вентиляторов охлаждения):
a88d3bb11d84d4ebdafa35d6847501be.JPG
Если кратко импульсный блок питания , с дополнительной дроссельной секцией для фильтрации от игольчатых выбросов +- 10 вольт.
Так как применён силиконовый нагреватель 200 ватт на 240 вольт для стола, применено электронное реле:
3a18c9ee741a9a71a25d1583b815bf86.JPG
Смонтированная плата управления с проводами:
3649de72ebebb9627b8bb1337d248a8c.JPG
Экран, энкодер и слот для карты памяти (припаянный на монтажной плате):
229336a3f5bc51a0235d1cdebfe46a0a.JPG
Принтер собран на основе корпуса СПринтер 232 ПРО.
84ee8725a5382180a371c1f6a7e45760.JPG
Сперва поставил редукторный экструдер Титан, но при настройках очень неудобно с ним- снимать и снова ставить пруток. Поэтому поставил обычный экструдер с пластиковым фитингом. Надо более тщательно будет сравнить качество печати этих двух экструдеров, но позже:
5916d03fa71e049087dc7d4a4ed505a8.JPG
Обдув под 40мм вентиляторы с рефлекторами уже печатал на этом принтере . Бесцветный пластик лучше печатается. Серый (металлик) очень уж капризный. Нагревательный блок в силиконовом "чулке" и утеплён асбестом. С наружи обмотан каптоновым скотчем.
b3c7df8c7c0fa4eb03fc786e13777e68.JPG
Концевые выключатели все оптического типа, на Z оси ШВП:
89702f1ccac2f07c83f03f09512daf12.JPG
19a6af3b45f4ea8d299050e940e494f2.JPG
Сделана панель с разъёмами для отсоединения Хот-енда и вентиляторов обдува:
59b924393094c86d7b4eab5a482eaf98.JPG
Для удобства сделана светодиодная подсветка зоны печати и выключатель подсветки:
e7ed3cce0efc4bf2ae69380e3b9d9172.JPG
23c2bccfb9e53634773354f5fb719aff.JPG
На не обкатанном принтере напечатал элементы для системы охлаждения платы управления . Вот переходник для вентилятора с размера 60мм на 50 мм. Печатал со скоростью 160 мм/сек - печаталось где то около 40 минут , не помню точно.
378eff3dda5e4ad3702ddf42801c1c70.JPG
fbdf1108bbefe07b3567b1c50312a32a.JPG
Вторая деталь воздуховода печатал на 180 мм/сек - половину напечатал нормально, но так как обдув на двух вентиляторах ещё не был смонтирован и опасался за слишком громкий звук работы китайских подшипников снизил скорость до 100 мм/сек. Потом уже пришлось попортить при монтаже не учел отверстия для головок винтов и как их закручивать. Модель(не моя) воздуховода была разработана для завинчивания болтов шляпками с другой стороны.
c530468e0ec32db603e2d4ad6faf1084.JPG
При оценке деталей следует учитывать - что это фактически первые напечатанные детали на этом принтере, который до конца недособран , не обкатан и прошивка настроена только в черне.

Всё уже печатает, но бьюсь над заморочками прошивки - не могу побороть "зеркальную" печать. Приходится в слайсере ставить галочку "зеркало оси У".
Проблема в концевике У. Он установлен в максимальной позиции. И скомпилировать прошивку удается только, если его поставить как "минимальный У". А нормального инвертирования оси "У", как в последних версиях Марлина, здесь нет, есть только инвертирование двигателей. Но в Н-бот инвертируешь один двигатель , а инвертируются обе оси. То есть У становится правильной, а Х наоборот начинает неправильно двигаться. То есть пока бьюсь над решением, но смотрю обновления -может в обновлениях прошивки искоренят эту проблему. Однако это не мешает печатать. Надо только при подготовке кодов в слайсере не забывать зеркалить модель - если модель не симметричная по ХУ. Тогда можно и не зеркалить.

Всем удачи и успехов.

Екатеринбург.

09 ноября 2017 г.
Подписаться на 3Dtoday
24
Комментарии к статье

Комментарии

12.11.17 в 15:38
1
Удалось настроить правильную печать - без зеркального отражения. Помогла смена Коре ХУ на Коре УХ, инвертирование одного двигателя и замена местами шлейфов в разъёмах Хи У двигателей.

Поставил снова редукторный экструдер Титан. Заменил в нём Китайскую пружинку на РУССКУЮ. Хотя ещё идёт обкатка принтера печать уже довольно приличная по качеству.

Базовая скорость пока 125 мм/сек. Слайсер выставляет скорость на наружный периметр от 40 до 80 мм/сек. Скорость получается выше, чем на моем первом принтере. Но качество пока чуть ниже. Хотя , тут может и такие факторы играют - один заряжен бесцветным пластиком, а тот который с платой 32 бита серым (металлик) пластиком. А серый пластик в печати более капризный.
13.11.17 в 01:59
0
огромное спасибо за статью! как раз вся инфа вовремя появляется - делаю заказ деталей для первого принтера (h-bot quite rapid v3 от 3dmaniak), но хочу максимально использовать средства.. поэтому за бессонную ночь изучил распространенные платы управления и понял, что мкс нафиг не нужен, когда есть бюджетные 32бита.. спасибо! 8)
14.11.17 в 16:21
0
Проблема в концевике У. Он установлен в максимальной позиции. И скомпилировать прошивку удается только, если его поставить как "минимальный У". А нормального инвертирования оси "У", как в последних версиях Марлина, здесь нет, есть только инвертирование двигателей.

мне кажется или у вас концевик подключен к Y- ?
14.11.17 в 17:34
0
И какой глубокий смысл в такой черезмерной фильтрации причем достаточно необчными емкостями по 4.7 мкф ? меряли? считали? Игольчатый импульс до дросселя видели? странно, необычно, есть над чем подумать... дисплей по I2C весьма весьма медленная штука... и ЕЕпРОМ, судя по всему, вы не ставили?
14.11.17 в 21:10
0
Блок питания был куплен для запитки нагревателя стола на 12 вольт через отдельную клемму, поэтому взял более дешёвый блок питания -у него нет встроенных дросселей. Потом я поставил силиконовый нагреватель на 220 вольт. А этот блок дождался установки на следующий принтер. Если его сразу без дополнительных фильтров подключить к управляющей плате - то процессор "виснет". Виной тому импульсные помехи в виде игольчатых всплесков. от 12 вольт сперва до 22 вольт, потом до 2 вольт. Они хорошо видны на осциллографе. Глядя на осциллограф и подстраивал фильтр питания.

ЕЕпРОМ - не применяю, внутренне не понимаю его нужности, именно, мне.

Оптические концевики у меня по всем трём осям. Не знаю, что вам кажется.
15.11.17 в 01:16
0
Оптические концевики у меня по всем трём осям. Не знаю, что вам кажется.

я хотел сказать, что если у вас Yконцевик установлен на максимум он должен быть воткнут в Y+ а не в Y- как на фото... это если не лезть в переназначение пинов и так далее.
15.11.17 в 08:58
0
Всё уже настроено и работает как надо. Вертеть геометрией зоны печати при помощи концевиков можно как угодно, настройки прошивки позволяют это.
18.11.17 в 01:24
1
OLED сильно тормозит? По сравнению с LCD2004. Только с 32 битами олед ставили? С мегой не пробовали?
18.11.17 в 01:42
0
В Марлине все возможности есть, в том числе OLED/SPI,
вплоть до работы с двумя дисплейными модулями - LCD2004 и MKS-TFT28/32.

Сам не пробовал,
двухдисплейную работу видел,
трёхдисплейную - никто не заморачивался видимо.

Один из самых нагрузочных на 8-ми битные мозги - это "RRD Smart Graphics", восьмистрочный.
Кириллица на нём требует доп.библиотеку u8lib.
18.11.17 в 01:51
1
Про возможность подключения я в курсе) Про "тупнячок" хочется узнать - время отклика. Как 8ми и 32ух битные мозги это переваривают. Сейчас на 2004ом сижу - быстро, но некрасиво. И громоздко. А тут маленькие габариты, белым по черному все.
На днях с фуллграфиком дали поиграть, так после 2004го фуллграфик тем еще тормозом кажется. Тааак все медленно
18.11.17 в 02:03
0
Cижу пока на 8-ми битах.

Прочувствовал как LCD2004 так и MKS TFT28 .
Каждый хорош, быстр и удобен - по-своему, для различных операций.

Буду цеплять оба на один и тот же Hercules New,
телеметрия - очевидно - на "консоль" процессора - LCD2004.
MKS TFT28 - хранение и "клава".

Про мою концепцию проводного пульта - уже писал , компоновочно - что-то вроде вот этого:

0d985a0ef03a474fa61b57e3e3ba69fc.jpg


Насчёт откликов - вроде тайминги опросов в Марлине - регулируются,
путём замедления (более редкие),
недавно видел в качестве коммента в какой-то статье,
там также была речь и про Дельты.

Может быть eta4ever подскажет?
18.11.17 в 06:49
0
По запуску на более ранних версиях Marlin читайте статью:


http://3dtoday.ru/blogs/bustep/mini-oled-controller-for4/



А я решил помучить свежую версию Марлина 1.1.6. - запуск OLED с энкодером на Марлине.
— в файле configuration.h
установить Русский язык #define LCD_LANGUAGE ru
раскомментировать строки:
#define SDSUPPORT
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#define U8GLIB_SSD1306

— в файле sanitycheck.h
поменять значение в строке 1224 - "+1" поменять на "0"
Изначально было так:

#if ENABLED(U8GLIB_SSD1306) && DISABLED(OLED_PANEL_TINYBOY2)
+ 1
Поменял на следующе:

#if ENABLED(U8GLIB_SSD1306) && DISABLED(OLED_PANEL_TINYBOY2)
+ 0



— в файле pins_ramps.h
найти раздел (примерная строка 328) :
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37

После этой строки я вставил блок:

#define BTN_EN1 31
#define BTN_EN2 33
#define BTN_ENC 35
#define SD_DETECT_PIN 49
#define KILL_PIN 41


В принципе этот код позволяет подцепить два экрана для одновременной работы OLED и LCD2004. НО у меня нет LCD2004 поэтому проверил только с OLED экранами 0,96 и 1,3 дюйма. Размер 1,3 дюйма, всё таки предпочтительней.

Запускал OLED на 32-битнгой плте с ДУЭ на MK4Due, и на 8-битной плате на Меге 2560 с Marlin 1.1.3 Marlin 1.1.6.

9f901e7a50513cf93fd9a0de0a29f827.JPG


1d426ea4ac93e4ac519a9b8f47cbd770.JPG


c8b52dc821072ae52a0c772f8972b4f7.JPG


73a7d880626ec90c72ccb34bf2c0acdf.JPG
18.11.17 в 09:49
0
Александр, есть возможность записать видео процесса лазания по меню? Интересует время, которое пройдет от момента воздействия на энкодер до обновления картинки на OLED. Буду очень признателен
18.11.17 в 14:51
0
Так в данный момент управляющие платы уже стоят на принтерах и трудятся. И нет желания их снимать. Скорость на ОLED явно выше , чем на LCD12864 и на глаз вы скорость обновления не заметите - щелкнули энкодером и уже стоит новая менюшка. Экран стоит копейки - купите и развлекайтесь на здоровье.

Я покупал тут:
226 рублей - 1,3 дюйма
https://ru.aliexpress.com/item/1PCS-1-3-OLED-module-white-color-128X64-1-3-inch-OLED-LCD-LED-Display-Module/32687721348.html?spm=a2g0s.9042311.0.0.hwu94Q


144 рубля - 0,96 дюйма

https://ru.aliexpress.com/item/1pcs-0-96-blue-0-96-inch-OLED-module-New-128X64-OLED-LCD-LED-Display-Module/32643950109.html?ws_ab_test=searchweb0_0,searchweb201602_0_10152_10065_10151_10344_10068_10345_10342_10343_10340_10341_10543_10541_10562_10084_10083_10307_10301_10060_10155_10154_10539_10312_10059_10313_10314_10534_10533_100031_10211_10103_10128_10073_10129_10594_10557_10169_10596_10595_10142_10107,searchweb201603_25,ppcSwitch_0&btsid=b0cb80e3-c495-4f82-98ce-dbbc94bae5ee&algo_expid=dd5a4e24-60fe-4cdb-813f-4ec79d3dc58b-8&algo_pvid=dd5a4e24-60fe-4cdb-813f-4ec79d3dc58b&rmStoreLevelAB=0

Заказывайте только почту нормальную, а не бесплатную, а то полгода идти будет. Советую покупать 1,3 дюйма - УЖ ОЧЕНЬ это МАЛЕНЬКИЕ дисплей. Ну очень маленькие. И главное обязательно смотрите чтоб было ЧЕТЫРЕ контакта, а не больше. Иначе гораздо трудней их подцеплять будет и другие настройки нужны.
16.09.18 в 12:54
0
Уважаемый автор статьи, у Вас SD карта работает? Ведь она должна подключаться к интерфейсу SPI. Не так ли? А у вас согласно переделкам она подключена на простые ноги Arduino DUE. У Arduino 2560 там был интерфейс SPI а у Arduino DUE там его нет. Он на коннекторе посередине платы Aduino DUE.
17.09.18 в 05:33
0
Всё работает. В прошивке стоит программный эмулятор и программное переназначение пинов. Я пробовал подключаться на разъём по середине платы - у меня не заработало. У других работает, а у меня нет. С настройкой работы карты памяти я мучался дольно долго. Если вам это действительно надо пробуйте оба варианта подключения, сработает либо на разъёме по центру платы, либо как показано у меня.
17.09.18 в 11:02
0
Спасибо за ответ. Как у Вас - не работало. Вчера решил "приколхозить" по центру платы. Ура !!! получилось. Помучиться пришлось с пайкой. Вывел только сигналы miso mosi sck. Остальные оставил как есть. Про эмулятор слышу впервые. Дело в том что у меня firmware Marlin Kimbra стоит. В файлах конфигурации нет строчек для переназначения пинов ни для SD карты ни для интерфейса SPI. И также не знаю как включать этот программный эмулятор. Аппаратный SPI думаю намного лучше.
17.09.18 в 11:13
0
Заработало - двигайтесь дальше. У меня тоже стоит firmware Marlin Kimbra - может дело в самих платах ДУЭ?. Я не пониманию - почему у кого то работает один вариант, а других другой. Если удалось запустить через разъём из центра платы - значит вам повезло, скорость чтения данных с карты памяти будет выше и надежность чтения лучше.
Эмуляторы встроенные, и закопанные в библиотеках. Может у вас более новый Marlin Kimbra, чем у меня. Но у меня всё настроено и работает. И ничего менять не собираюсь.
17.09.18 в 11:16
0
PS: Вы спрашивали надо ли мне это - конечно. Ведь переделка RAMS1.X и заключается в том чтоб оставить всё старое дешевое оборудование (дисплей, картридер и.т.д). А иначе можно было купить новый RAMS (в четыре раза дороже простого) или RAADDS (у ктайцев вообще не продается), а также другой дисплей с контроллером (специально для RADDS. А там проводов больше и мне придется старые из под клея выковыривать и.т.д)
17.09.18 в 11:19
0
Именно для тех кто хочет во Вашему варианту не могли бы выложить эти срочки "переназначения пинов СД карты"? И куда их вписать? В какой файл?
17.09.18 в 14:08
0
У вас возникло, наверное, недопонимание моих слов. Лично я сам ничего не переназначал, они были сделаны самими авторами в прошивке.
А вышел я на эти строки когда пытался маленький экран по I2C подключить. Если использовать стандартный экран 12864, то чего-то там переназначать не нужно было. А в той версии прошивки с которой я возился не было возможности подключить I2C совместно с чтением карты. Нужно было снимать запрет на использование двух экранов.
Сейчас вроде возможность использования I2C экрана а кард ридера реализована штатно есть. У меня всё работает и после запуска принтера я перестал усиленно отслеживать новые версии Кимбры.
17.09.18 в 14:12
0
У вас же всё заработало по вашим словам. Вот акуратненько и припаяйте проводочки к кардридеру. И не забивайте себе голову лишними сущностями. Ну или сделайте промежуточный разъём , который будет в воздухе будет болтаться на три провода.
18.09.18 в 00:43
0
Все, нашел истину, хотя уже поздно. В папке MK4duo\src\platform\HAL_DUE лежит файлик spi_pins.h. Он коротенький хотя и запутанный слегка. Похоже что если указать дисплей как "REPRAPWORLD_GRAPHICAL_LCD" тогда-то и включается эмуляция SPI. А у меня то был задан REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER. Вот тут "мир и разделился" тех у кого работает без перепайки и у кого с перепайкой))
в либом случае там можно попробовать всё стереть (или почти все) и написать 4 строчки.


#define SOFTWARE_SPI
#define MOSI_PIN 51
#define MISO_PIN 50
#define SCK_PIN 52
Это и будет вариант без перепайки. Я не проверял. И уже не буду. Просто хотел помочь тем кто столкнется с аналогичной проблемой.
21.09.18 в 15:28
0
Если есть возможность выложите подробное описание на какие пины подключили адаптер карты. Какой адаптер карты использовали?. Выложите фото своего подключения. Как решали проблему с уровнями - как я используя напрямую подключение к колодке адаптера, или использовали готовый модуль адаптера карты. В вашем варианте Кимбры - укажите какую версию прошивки использовали? Как в прошивке прописали карту? Фото бы вашей платы DUE. А то платы DUE есть разные с разными микросхемами драйверов подключения к компьютеру.

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

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

Испытания "Стаканыча"

3Dtoday за 60 секунд от 25 сентября

Ultimaker готовит новый хотэнд для работы с композиционными материалами

Dyze Design предлагает высокоэффективные экструдеры DyzeXtruder Pro с хотэндами DyzEnd Pro

Обзор вакуумного формовщика Mayku FormBox: пусть детали размножаются

DOOM. Муки постобработки