Как известно одна из популярных прошивок для 3D принтеров Marlin обзавелась поддержкой 32битных контроллеров на базе следующих чипов:
AT91SAM3X8E (на базе Arduino Due) (например RAMPS-FD, RADDS)
LPC176x (Всем известные девайсы на базе Smoothieboard) (работают ReARM, MKS Sbase, Azteeg X5 GT, AZSMZ mini)
STM32F1
Teensy 3.5/3.6 (они уже Cortex-M4 с FPU)
Предыстория: Товарижчь setar подбросил мне плату Azteeg X5 GT с драйверами BigFoot BSD2660. В оригинале плата работала на Smoothiware, но мне хотелось попробовать Marlin на ней. Собственно дело оставалось за малым, добавить в Marlin поддержку этой платы. К плате прилагался дисплей Viki2.
На фото ниже, Marlin запущенный на Azteeg X5 GT с Viki2 (к принтеру пока не подключал, драйвера tmc2660 не удалось запустить, надо написать или найти библиотеку для них)
Что сейчас работает:
Мапинг базовых пинов
Эндстопы
Грелки
Сервы
Термисторы
Экран Viki2
Драйверы (пробовал drv8825 и tmc2100)
Что не работает:
Драйверы BSD2660 (нет библиотеки, надо написать)
Ну и потенциально всё что не проверялось
Как всё это было: вся проблема заключалась в том, что по этой борде нет нормальной спецификации с пинами, а предположение что все пины будут совпадать с тем что заявлено для Smoothieboard мягко говоря не оправдалось =). Так что пины искались методом реверс энжиниринга и научного тыка. Порт по сути делался не с нуля, а в качестве базы использовалось то, что было сделано уже для re-arm. Фотки и может пара видео этого дела будет в следующих постах.
Мой код поддержки Azteeg X5 GT смержили в основное дерево Marlin, так что берем бранч bugfix-2.0.x и пользуем
Сергей, OBN_RacerMan, спасибо за идеи! Дисплея есть два: REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER и REPRAP_DISCOUNT_SMART_CONTROLLER. Оба протестированы на MEGA+RAMPS. Это точно снимает вопрос с контрастностью.
проверь как вот такой патч (его я делал для селены, там пришлось менять дефолтную контрастность) проблема схожая. ключевое #define DEFAULT_LCD_CONTRAST 200 и на всякий случай оставил ремарки по выбору режима работы SPI (программный / аппаратный) это в файле описания пинов в борде.
проверил DEFAULT_LCD_CONTRAST - это не оно. тому же под Smoothie дисплей тоже не работает. Решил плюнуть и заказать какой-нибудь совсем другой дисплей, например Viki.
А вот скажите, кто-то уже делал безсенсорную парковку по Z на tmc2209 ? Я значит поставил на все оси эти драйвера, сконфигурил по мануалу MKS все 3 оси одинаково, в итоге оси X и Y стали парковаться сразу и без вопросов а ось Z в полный отказ. С драйвера на ноге diag нет сигнала при парковке, хотя все 3 оси сконфигурены идентично. Драйвера менял местами, разницы нет. Если вход парковки от драйвера переключить на оптический концевик то парковка работает, то есть парковка сконфигурена верно и сигнал проходит.
настройки вроде простые, задаём тип драйвера #define X_DRIVER_TYPE TMC2209 включаем режим безсенсорной парковки #define SENSORLESS_HOMING настраиваем чувствительность #define X_STALL_SENSITIVITY 110
Добавлено спустя 1 час 50 минут 56 секунд: Победил. Глючный марлин (((
Для безсенсорной парковки должен быть включен режим spreadCycle и он принудительно включается во время парковки. Но если скорость парковки больше чем HYBRID_THRESHOLD то парковка не работает, сигнал концевика не генерируется. походу двукратное включение spreadCycle как-то плохо влияет.
интересно какова повторяемость ? вот если паузу поставил, выключив двигатели подвигал (например почистил), и продолжил печать. Попадет ли в то же место ??
Я пока не печатал, не проверял, но обещают прям идеально. Кроме калибровки по сигналу StallGuard там есть опция выравнивания положения вала ШД по идеальной фазе. После упирания в раму, считывается текущее положение фазы вала и вал отворачивается обратно в положение полного шага. Теоретически повторяемость равна повторяемости механики ШД.
/** * TMC Homing stepper phase. * * Improve homing repeatability by homing to stepper coil's nearest absolute * phase position. Trinamic drivers use a stepper phase table with 1024 values * spanning 4 full steps with 256 positions each (ergo, 1024 positions). * Full step positions (128, 384, 640, 896) have the highest holding torque. * * Values from 0..1023, -1 to disable homing phase for that axis. */ #define TMC_HOME_PHASE { 896, 896, 896 }
После калибровки паркует довольно нежно, можно палец сунуть =)
хочу безсенсорное выравнивание сделать, но наверно не получится, консольный стол при упирании в сопло дальним концом ощутимо выгибается, пружины стола сжимаются, не хватает чувствительности с винтом. Вроде ещё скорость влияет, сигнал срабатывает с небольшой задержкой, на высокой скорости успевает даже хрустнуть - пропустить шаг.
А если ускорение по Z поставить до неприличия большое? Драйвер ведь по логике вещей скорее всего считывает тот момент, когда идет ЭМ всплеск в обмотках шаговика и потом на этот всплеск реагирует. Можно еще и джерк по Z поставить минимальным, т.к. если я правильно понял, то это минимальное изменение скорости, при котором происходит ускорение.
При большом ускорении происходит ложное срабатывает в момент трогания ШД, то есть сигнал концевика приходит ещё пока мотор делает #define SENSORLESS_BACKOFF_MM { 5, 5 } // (mm) Backoff from endstops before sensorless homing. поэтому ускорение должно быть маленькое, чтобы мотор трогался без перегрузок, отводил каретку и плавненько медленно вёл в ноль. да, двигать ось надо тоже медленно, ато пока сигнал придёт, мотор успевает хрюкнуть.
я пока не понял можно ли разделить ускорения и джерк для парковки и для работы т.к. низкие значения для парковки не годятся для постоянной работы. возможно придётся делать макрос, ставить низкие параметры, парковаться, ставить обратно высокие.
Как по мне, я вижу только один нормальный вариант, это лезть в саму прошивку, где из редактора NPP в исходниках найти обработчики команд G27, G28, G29 , и в начале и конце каждой из этих команд делать вызов обработчиков команд M204 и M205 с заданными параметрами ускорений/джерков. Тогда думаю можно будет не париться, а если делать только в слайсере в начальном и конечном кусаках кода, то можно по запарке забыть и грохнуть принтер, когда будете делать это в ручном режиме.
Собственно все команды в марлине 2.0 распиханы по папкам в виде отдельных .cpp файлов по адресу ...\Marlin-2.0.x\Marlin-2.0.x\Marlin\src\gcode\...
Заслуга точности в основном лежит на TMC_HOME_PHASE, эта опция работает и с классическими концевиками, в отзывах даже с микриками получилась точность в районе нуля.
Но в реальной жизни проку от такой супер точной парковки я не вижу.
Всех приветствую, по случаю подвернулся комплект ардуино mega, ramps 1.4, lcd дисплей. Давно стоял нерабочий Дупликатор 4, решил воткнуть все туда. Перечитал кучу страниц в инете, скачал несколько десятков прошивок Marlin, потратил уже 4 дня, но ни как запустить не удается. По началу не удавалось даже прошить пустую ардуинку, Arduino IDE, сыпал кучей ошибок, хотя скачивал прошивки с постов, где автор описывал подобный набор. В итоге методом проб и ошибок и перебором различных версий Arduino IDE, отобрал прошивки, которые получилось залить. Но, дисплей не работал ни в какую. Стал ковырять дальше. Читал, читал, и вычитал то, что привело к результату, экран стал работать, но ни в какую не реагировал на крутилку. Эксперименты продолжились, что привело к тому. что в итоге нашел 2 прошивки. с которыми запускается ардуино, работает дисплей, могу перемещаться по меню, но двигатели не работают ни в какую. Тут я встрял в тупике. Чтобы не находил, где бы не искал, ничего не помогает. Подскажите куда дальше копать? Спасибо заранее.
Razmir писал(а):Всех приветствую, по случаю подвернулся комплект ардуино mega, ramps 1.4, lcd дисплей. Давно стоял нерабочий Дупликатор 4, решил воткнуть все туда. Перечитал кучу страниц в инете, скачал несколько десятков прошивок Marlin, потратил уже 4 дня, но ни как запустить не удается. По началу не удавалось даже прошить пустую ардуинку, Arduino IDE, сыпал кучей ошибок, хотя скачивал прошивки с постов, где автор описывал подобный набор. В итоге методом проб и ошибок и перебором различных версий Arduino IDE, отобрал прошивки, которые получилось залить. Но, дисплей не работал ни в какую. Стал ковырять дальше. Читал, читал, и вычитал то, что привело к результату, экран стал работать, но ни в какую не реагировал на крутилку. Эксперименты продолжились, что привело к тому. что в итоге нашел 2 прошивки. с которыми запускается ардуино, работает дисплей, могу перемещаться по меню, но двигатели не работают ни в какую. Тут я встрял в тупике. Чтобы не находил, где бы не искал, ничего не помогает. Подскажите куда дальше копать? Спасибо заранее.
Попробуйте для начала собрать через PLatformIO, он сам подтянет зависимости. Инструкция, например https://marlinfw.org/docs/basics/instal ... scode.html оттуда же берется прошивка. Главное - внимательно настроить конфиг.
какой нафиг платформио, это обычная мега, там ардуино ide заливает и компилирует.
Razmir писал(а):Всех приветствую, по случаю подвернулся комплект ардуино mega, ramps 1.4, lcd дисплей. Давно стоял нерабочий Дупликатор 4, решил воткнуть все туда. Перечитал кучу страниц в инете, скачал несколько десятков прошивок Marlin, потратил уже 4 дня, но ни как запустить не удается. По началу не удавалось даже прошить пустую ардуинку, Arduino IDE, сыпал кучей ошибок, хотя скачивал прошивки с постов, где автор описывал подобный набор. В итоге методом проб и ошибок и перебором различных версий Arduino IDE, отобрал прошивки, которые получилось залить. Но, дисплей не работал ни в какую. Стал ковырять дальше. Читал, читал, и вычитал то, что привело к результату, экран стал работать, но ни в какую не реагировал на крутилку. Эксперименты продолжились, что привело к тому. что в итоге нашел 2 прошивки. с которыми запускается ардуино, работает дисплей, могу перемещаться по меню, но двигатели не работают ни в какую. Тут я встрял в тупике. Чтобы не находил, где бы не искал, ничего не помогает. Подскажите куда дальше копать? Спасибо заранее.
Я не очень понимаю что значит "нашел 2 прошивки" ? В корне не верный подход.