Настраиваем прошивку Marlin и заливаем её в 3D принтер

Подписаться на 3Dtoday
AKDZG
Идет загрузка
Загрузка
14.02.15
477084
423
печатает на Ultimaker Original
Техничка
216
Многие 3D принтеры работают под управлением популярной прошивки Marlin. Прошивка изначально сконфигурирована для Ultimaker Original. Разберём основные настройки для других 3D принтеров.
Прошивка лежит по этому адресу. Качаем. Давим на кнопку Download ZIP. Скачивается архив Marlin-Development.zip. Распаковываем его в выбранную папку.
Marlin01.png
Теперь скачиваем Arduino IDE для исправления и загрузки прошивки в 3D принтер. Ссылка. Давим на Windows Installer. Скачивается установщик arduino-1.6.0-windows.exe. Запускаем его и устанавливаем среду Arduino IDE.
Arduino - Software
Переходим в папку с прошивкой и запускаем файл Marlin.ino.
Marlin
Открывается среда Arduino IDE с прошивкой. Нам нужна вкладка Configuration.h.
Marlin _ Arduino 1.0.6
В начале мы видим ссылки на калибровку 3D принтера. Пролистываем дальше и читаем: "Это конфигурационный файл с основными настройками. Выберите тип контроллера, тип температурного датчика, откалибруйте перемещения по осям и сконфигурируйте концевые выключатели."

Начнём с выбора контроллера (MOTHERBOARD). Список контроллеров находится во вкладке boards.h. Давим на треугольник в правом верхнем углу и выбираем boards.h.
Marlin _ Arduino 1.0.6
Теперь посмотрим на установленную электронику. Вот некоторые типы плат:

Melzi
RepRapMelzi
RAMPS 1.4
RAMPS 1.4
У меня стоит RAMPS 1.4.
Marlin _ Arduino 1.0.6
Заменяю в configuration.h "MOTHERBOARD BOARD_ULTIMAKER" на "MOTHERBOARD BOARD_RAMPS_13_EFB".

#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_RAMPS_13_EFB
#endif

Следующим выбираем датчик температуры - термистор. Видим большой список "//// Temperature sensor settings:". У меня стоит хотэнд E3D-v5 и китайский термистор на столе. Для E3D-v5 я выбираю "// 5 is 100K thermistor - ATC Semitec 104GT-2", для стола "// 1 is 100k thermistor - best choice for EPCOS 100k". Если тип термистора неизвестен можно выбрать 1, а если температура не понравится можно выбирать любой и тестировать. Меняю.

100K thermistor - ATC Semitec 104GT-2
E3D
Обычный китайский термистор 100К
100K
Marlin _ Arduino 1.0.6
Ограничение максимальной температуры хотэнда "#define HEATER_0_MAXTEMP 275".

Ограничение минимальной температуры хотэнда "#define EXTRUDE_MINTEMP 170".

Если концевой выключатель подключен не стандартно и его состояние нужно инвертировать, то это можно сделать в прошивке, не перепаивая провода. Значения false или true. Команда M119 (например в Pronterface) показывает состояние концевых выключателей. У меня концевые выключатели стоят только в позиции HOME на MAX.
В положении HOME
Pronterface
В положении отличном от HOME по всем осям
Pronterface
Мне ничего менять не потребовалось.

const bool X_MIN_ENDSTOP_INVERTING = true;
const bool Y_MIN_ENDSTOP_INVERTING = true;
const bool Z_MIN_ENDSTOP_INVERTING = true;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;

Изменение направления вращения шаговых двигателей, значения false или true. Правильные перемещения сопла относительно стола:

- По оси X - влево "-", вправо "+".
- По Y - вперёд "+", назад "-".
- По оси Z - сближение "-", удаление "+".
- Экструдер. Extrude - выдавливание нити, Reverse (retract) - откат, втягивание нити.

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true

Дальше идёт настройка концевых выключателей. Нам нужно узнать где они расположены. Как это узнать? Начало координат находится в ближнем левом углу на поверхности стола, если сопло вывести в эту точку, то сработали бы концевики MIN, если в правую дальнюю верхнюю - сработают MAX. У меня в положении HOME находятся три концевых выключателя MAX, поэтому мои установки

// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1

Установка габаритов перемещения, после инициализации в положении HOME. Здесь мы задаём габариты рабочей зоны по X и Y, а также настройку сопла относительно стола.
Если при касании стола соплом срабатывает концевой выключатель (MIN), как у Ultimaker Original, то поднастройка сопла относительно стола выполняется перемещением концевого выключателя, а в "#define Z_MAX_POS" записываем значение координаты при максимальном удалении сопла от стола. Координату можно узнать по команде М114 или посмотрев на экран дисплея.
Если концевой выключатель по Z срабатывает при максимальном удалении сопла от стола (MAX), то нужно найти габарит по Z самостоятельно. Устанавливаем значение "#define Z_MAX_POS" изначально больше нормы, например 250 при габарите 200 мм. Опускаем сопло до касания стола и на дисплее (или по команде M114) видим координату больше нуля, теперь вычтем из установленного большого значения полученную координату и получим габарит по Z, который теперь запишем в "#define Z_MAX_POS". По итогам печати первого слоя можно будет подкорректировать это значение.

// Travel limits after homing
#define X_MAX_POS 215
#define X_MIN_POS 0
#define Y_MAX_POS 215
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0

Можно подкорректировать скорость перемещения в положение HOME.

#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)

Переходим к самому важному. Настройка шагов перемещения по осям. Экструдер тоже ось. Мои настройки.
Marlin _ Arduino 1.0.6
Теперь посмотрим, как я их получил. По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микрошагов на шаг (устанавливается перемычками на плате). По осям X и Y стоит приводной ремень GT2 с шагом 2 мм и 20-ти зубые шкивы, итого получаем формулу (200*16)/(2.0*20). По оси Z стоят шпильки М8 с шагом резьбы 1,25 мм, итого формула 200*16/1.25.

Находим спецификации (даташит) на установленные шаговые двигатели. Видим, что за один шаг вал поворачивается на 1,8 градуса, а это значит 360/1,8=200 шагов на полный оборот. Этот параметр одинаковый у большинства шаговых двигателей устанавливаемых в домашние 3D принтеры.
42BYGHW609-Stepper-Motor-Datasheet
Профили ремней, обычно используемых на 3D принтерах и их шаг. Оригинал здесь, страница 61.
TimingBeltDatasheet_GT2
Шкив
Puley
Как померить шаг винта? Замеряем участок винта и считаем на нём витки, затем длину участка в миллиметрах делим на количество витков 20/16=1.25 мм. Для более точного результата замеряем участок максимальной длины.
Замер
Настройка экструдера зависит от коэффициента редукции и диаметра подающей шестерни. Подберём экспериментально, после первой заливки прошивки в 3D принтер. Откручиваем сопло и уменьшаем ограничения минимальной температуры сопла до 5 градусов "#define EXTRUDE_MINTEMP 5". Теперь экструдер будет работать при холодном сопле, что нам и нужно. Пока не меняем настройки экструдера. Для настройки я использую программу Pronterface. Для начала ставим 50 мм и скорость 100 мм/сек. 50 мм - это длина прутка, проходящего через экструдер. Измеряем длину прутка прошедшего через экструдер линейкой или штангенциркулем.
Pronterface
Подбирая настройку экструдера добиваемся точной цифры на разумной длине прутка, например 300 мм. После настройки вернём ограничения минимальной температуры "#define EXTRUDE_MINTEMP 170".

Следующие цифры - это ограничение максимальной скорости перемещения по осям. На X и Y я ставлю 200 мм, остальные не трогаю.

#define DEFAULT_MAX_FEEDRATE {200, 200, 5, 25}

Настройка ускорения перемещений по осям. При больших ускорениях возможны пропуски шагов. Можно подбирать, гоняя в программе Pronterface по осям на заданной скорости. Вот мои настройки:

#define DEFAULT_MAX_ACCELERATION {1000,1000,100,10000}
#define DEFAULT_ACCELERATION 1500

Осталось активировать LCD дисплей с SD картой. Свой дисплей я нашёл на RepRap.org и идентифицировал как RepRapDiscount Smart Controller.
LCD 2004
Раскомментируем (уберём двойные слэши) следующие строки:

#define ULTRA_LCD
#define SDSUPPORT
#define ULTIPANEL
#define REPRAP_DISCOUNT_SMART_CONTROLLER

Есть ещё один твик для повышения точности срабатывания некоторых концевых выключателей. При настройке нуля по Z столкнулся с тем, что после каждой инициализации HOME положение сопла над столом немного менялось. Порывшись в прошивке нашёл параметр отвечающий за инициализацию концевых выключателей. Переходим во вкладку Configuration_adv.h и ищем строку "#define Z_HOME_RETRACT_MM 2", меняем значение 2 на 5 и больше не вспоминаем про этот параметр.

Пора заливать прошивку в контроллер. Для этого нужно в Arduino IDE правильно выставить тип платы и номер COM порта. Внизу окна отобразится тип платы и номер порта. Не забываем сохранять изменения (Ctrl+S).

RAMPS
Marlin _ Arduino 1.0.6 2015-02-13 22.19.24.png
Marlin _ Arduino 1.0.6
MELZI
Для выбора нужной платы в Arduino IDE нужно скопировать с заменой всё из папки с прошивкой "Marlin-Development\ArduinoAddons\Arduino_1.5.x\hardware\marlin\avr" в папку Arduino IDE "C:\Program Files (x86)\Arduino\hardware\arduino\avr". После этого появляется возможность выбрать плату Sanguino (базовая плата для Melzi) и нужный тип процессора. У меня нет платы Melzi, поэтому проверить не могу.
Marlin _ Arduino 1.6.0
Marlin _ Arduino 1.6.0
Для заливки прошивки нажимаем на круг со стрелкой.
Marlin _ Arduino 1.0.6
Прогресс заливки прошивки отображается индикатором
Marlin _ Arduino 1.0.6
После того, как всё заработает нужно откалибровать PID нагрева хотэнда и стола. Для этого я использую Pronterface. Вводим команду "M303 E0 C8 S260". Где M303 - команда калибровки, E0 - хотэнд, C8 - количество циклов нагрева-охлаждения, S260 - типичная температура работы сопла.
Pronterface
Последние результаты записываем в прошивку.

#define DEFAULT_Kp 12.22
#define DEFAULT_Ki 0.58
#define DEFAULT_Kd 64.08

По такой же схеме калибруем PID стола. Команда "M303 E-1 C8 S110". Где E-1 - стол, S110 - типичная температура нагрева стола. Последние результаты записываем в прошивку. У меня стол нагревается очень медленно и поэтому приходится перезапускать команду из-за ошибки Timeout.
Pronterface
#define DEFAULT_bedKp 105.94
#define DEFAULT_bedKi 4.97
#define DEFAULT_bedKd 564.11

Как узнать уже прошитые в 3D принтер параметры чтобы не калибровать повторно?

Параметры установленные в прошивке можно узнать в программе Repetier-Host через меню Конфигурация\Конфигурация EEPROM. Предварительно нужно указать COM порт в настройках и нажать кнопку "Подсоединить".
Настройки Marlin EEPROM
При подключении 3D принтера к программе Pronterface в правой части окна выводится список параметров прошивки
Pronterface
Также параметры можно увидеть на LCD дисплее. Через меню Control\Motion.

Хотелось бы увидеть подобные инструкции для Delta принтеров, CoreXY и H-Bot 3D принтеров.

Критические замечания настоятельно приветствуются, так как впоследствии инструкция будет размещена в 3D-Вики. Также очень важно мнение новичков, так как всё это делается именно для Вас!
Подписаться на 3Dtoday
216
Комментарии к статье

Комментарии

14 Фев 20:17
5
Спасибо. Добавил в избранное. Теперь осталось дойти до переделки кубекса
14 Фев 20:43
0
Хто ты человек? Для каждого принтера свои параметры и производитель их дает или прошивку дает.

Для тех кто собирает сам есть норм форумы например робофорум, ну и наверное кто собирает тот сам разберется. Так зачем эта статья? Для поисковых систем?
14 Фев 22:18
36
А вам то что? Здесь активно развивающийся проект по 3д печати. Полезен многим. Судя по вашим некоторым комментам в других темах - вы единственный недовольный его развитием. Не нравится- никто не держит и ваше мнение здесь неуместно. Идите на робофорум. Там вас встретят с распростертыми обьятиями
15 Фев 02:41
20
Зря Вы так. Отличная статья. Автору спасибо.
15 Фев 10:41
3
Ээ витя. Я тут никого никуда не посылал. И с чего ты витя взял, что мое мнение неуместно, а твое уместно? Так кто тут хамло?

Только дурак думает что авторам надо лайки и подхалимские спасибы. Норм автор хочет критики, чтобы взглянуть на свое мнение под углом.
15 Фев 10:44
12
Норм автор хочет критики, чтобы взглянуть на свое мнение под углом.
Вот это верно, но желательно конструктивной 8)
15 Фев 10:59
5
Я ленивый просто, не люблю много писать. Поэтому пишу кратко. Иногда получается резковато :)

В данном случае как я и написал ниже, просто считаю. что подобные публицистические стаьи попросту вредны. Ибо например глянте, некоторые хомячки уже отписали, что полезно. и они возьмут на заметку. Что для них полезно? На какую заметку?

Тут надо брать, собирать и пробовать, разбираться. Тогда уже будешь понимать что к чему. Я сам когда это прошел.

Ну и конструктива тогда

  1. В дополнение сделайте список часто используемых G-кодов при настройке. С небольшим описанием на русском. Думаю будет полезно начинающим.
  2. #define Z_HOME_RETRACT_MM 2 - это не твик, просто настройка под конкретный микрик.
  3. Касательно ПИД стола - только для низкоомных столов типа репрапа. Чтобы не вываливался сначала нагрейте кровать до температуры ниже S на 15 градусов. Для высокоомных столов (нихром и т.д) лучше банг-банг.
  4. Настройка шагов экструдера на холодную - плохо. При установленном сопле, оно изменится.
:)
15 Фев 11:28
2
В дополнение сделайте список часто используемых G-кодов при настройке. С небольшим описанием на русском.
Предлагайте полезные, а я опишу. Для меня полезными оказались только M-коды, в дополнении к описанным, M106 - включить охлаждение детали и M107 - отключить охлаждение.

Для высокоомных столов (нихром и т.д) лучше банг-банг.
Вот тут я не в теме. Может подскажете где смотреть?

Настройка шагов экструдера на холодную - плохо. При установленном сопле, оно изменится.
Здесь я уже манипулирую параметром Flow (Cura). Ну и по ходу можно и в прошивке поправить, только выбрать эталонный пластик.
15 Фев 11:50
0
Вот и я том же - шаги экструдера ставите по арифметике. А флоу ставите по измерениям на Горячем экструдере для конкретного пластика.

Да тут все не опишешь, говорю же на робофоруме, reprap.org все есть.
31 Мар 15:15
0
Что? Как шестеренка экструдера зависит от температуры экструдера. Оно либо провернется либо сорвет пластик, другого не дано.
С Flow вообще предпочитаю не играть, а поточнее измерить пластик, и если он овальный (как недавно было у 3dquality :D) то пересчитать его в эффективный радиус.
31 Мар 16:08
0
У меня такое на PLA пластике РЕК. Он пригарает и Flow резко падает. 90% деталей улетает в ведро.
15 Фев 12:03
14
Сам ты хомячок,дядя.Я не просто так написал,что это полезно,потому что сам через это прошел,своими шишками вывел то же самое,тогда гайды только на английском и очень скупые были.А здесь хороший стартап для новичков! Ты просто самодовольный осел,если считаешь,что все должны набивать одинаковые шишки. И если этот материал кому то поможет я буду рад,что он есть на этом ресурсе.
15 Фев 12:48
2
Вот он он уровень! Повторюсь я никого лично не оскорблял. Но некоторые умники сидя за монитором позволяют себе. Так кто же ты после этого?
28 Фев 15:41
0
Мне очень помог.
14 Фев 23:07
10
Для чего Ваш комментарий? Для поисковых систем?
14 Фев 23:19
6
это просто желчь находит выход через клавиатуру...
15 Фев 10:42
1
Ёда, мозг включи.
15 Фев 12:03
5
Вроде на ТЫ не переходили. Но если Вам так комфортнее я не против. Я считаю нужно иметь немного уважения к людям, которые переработали информацию и систематизировал её. Если же Вам эта информация не интересна и все знаете, то следует попросту её игнорировать. И заниматься более полезными делами. Спасибо.
14 Фев 23:12
7
А что тут плохого? У большинства моделей одинаковая элементная база. Знать и понимать суть происходящего - шаг к профессионализму. Не все появились на свет с мышой и паяльником в руках.:)
Содержательный и востребованный материал.
15 Фев 04:41
9
Хто ты человек?
Я стараюсь помочь новичкам (слепым котятам ;)) в нашем увлечении.

Для тех кто собирает сам есть норм форумы например робофорум, ну и наверное кто собирает тот сам разберется. Так зачем эта статья? Для поисковых систем?
Я в своё время долго лазил по форумам и читал другие статьи и постарался сконцентрировать с этой статье свои познания и уже практический опыт. Зачем поисковым системам эта статья? Я например частенько ковыряюсь в прошивках и эта статья даже для меня является полезной памяткой. И надеюсь сообщество поможет дополнить эту статью.


Ещё я собирал Mendel90 и хочу здесь запостить некоторые моменты. Конечно всю информацию я получал на робофоруме, но там её так никто и не собрал в единую и понятную статью. Но я думаю нужно развиваться и переходить на новый уровень или просто дать второе дыхание правому делу Setar.
15 Фев 10:38
0
Может оно кому и будет полезно. Но сами сказали что долго изучали вопрос и это правильно. Я сторонник первоисточников, в прошивке все тоже самое написано, так зачем??
15 Фев 10:48
5
Но сами сказали что долго изучали вопрос и это правильно. Я сторонник первоисточников, в прошивке все тоже самое написано, так зачем??
В Вашем вопросе уже есть ответ. "Чтобы долго не изучать, а использовать время для более полезных дел " :)
15 Фев 11:19
0
Вашими бы устами ... :)
14 Апр 09:47
0
У меня, к примеру, слетела прошивка и мне её нужно сменить, так что полезно)
14 Фев 23:06
2
Полезно. Хоть даже для общего развития...
15 Фев 00:02
2
Жара.
В избранное.
Из уважения к компетенции.
15 Фев 01:55
3
Очень информативная и актуальная статья. Как раз собрался выкинуть из прусы шпильки M5 (кривоваты) и заменить на M8, а тут такое прекрасное наглядное пособие. Спасибо!
Кстати, т.к. резьба метрическая, то стандартные шаги все известны, можно не мерять линейкой и не считать витки ;)
15 Фев 04:17
1
Как раз собрался выкинуть из прусы шпильки M5 (кривоваты) и заменить на M8
А вот это зря. Шпильки M8 более жёсткие и будут оказывать ещё более сильное влияние на колебание кареток. У меня Mendel90 и конструкция кареток плюс направляющие диаметром 10 мм выдерживают эти шпильки, а может просто гайки низкопрофильные спасают, в любом случае шпильки у меня тоже кривые и заметно молотят.

Кстати, т.к. резьба метрическая, то стандартные шаги все известны, можно не мерять линейкой и не считать витки
Ну это я для понимания написал и более экзотических типов винтов (трапецеидальные, ШВП).
15 Фев 10:29
1
резьба М8 существует с шагом от 0.5 до 1.25.
15 Фев 10:45
1
Дело не в шаге, а в толщине шпильки. Чем тоньше тем меньше воздействие её на каретку. М5 - золотая середина. М4 уже тонковата, гнется сама.
15 Фев 11:01
1
я знаю, а то что я написал является ответом нато что шаги можно не мерятьмерять и они известны
15 Фев 12:27
0
Да, именно так, поэтому и утчняют, где основная, а где мелкая ;)
17 Фев 13:39
1
Спроектировал новый узел для шпилек M8 (http://www.thingiverse.com/thing:664106), шпильки заменил. Вывод - хрень это все, нужны нормальный ШВП. Гайка-шпилька почти сразу начинается стираться, о чем свидетельствует металлический песок вокруг осей. Это все из за неровностей и неточностей самой шпильки и гайки, а так же из за самодельного преднатяжения.
17 Фев 13:53
1
Переходим на Mendel90 ;)
17 Фев 14:08
0
Можно вкратце - что там? Сами все спроектировали с нуля? OpenSCAD все таки зло для таких комплексных вещей :D
17 Фев 14:16
0
Это проект Нопхэда. Я пытаюсь инструкцию по компиляции упростить. У Нопхэда всё чётко! Я сам собирал и другим помогал. У Mendel90 нет Прюшиных проблем. Как доделаю, выложу здесь 8)
17 Фев 13:55
1
Для прусы 2 ШВП влетит в копейку, она того не стоит сама :D
17 Фев 14:06
0
Стоит) На ебее сами шпильки пл 400 рублей ну и винты тыщи по полторы, все из велкобритании :o
17 Фев 14:08
0
А муфты еще? Или прежние можно?
8 Сен 14:30
1
Необязательно ШВП ставить можно THSL-8D. Он дешевле швп и лучше шпилек;).
17 Фев 13:42
1
Шаг резьбы шпильки, безусловно, известен. Но я для проверки, отсканировал шпильку в обычном сканере для бумаг и в фотошопе посчитал расстояние между витками, исходя из того, что разрешение сканера - известная величина.
15 Фев 07:45
2
Очень полезная статья, я хоть понял с какой стороны подойти к прошивке и изменению параметров принтера.
15 Фев 11:06
3
к статье добавил бы что перед перепрошивкой дабы меньше было танцев с бубном, лучше ввести команду на вывод данных из eeprom и сохранить их. к сожалению я это нашёл после перешивки, теперь танцульки с ПИД на хотэнде. далеко от компа с принтером поэтому команду не назову.
15 Фев 11:32
1
далеко от компа с принтером поэтому команду не назову.
Да мы подождём, спешить-то некуда. ;)
16 Фев 10:33
5
//Implemented Codes
//-------------------
// G0 -> G1
// G1 - Coordinated Movement X Y Z E
// G2 - CW ARC
// G3 - CCW ARC
// G4 - Dwell S or P
// G10 - set head offset and temps
// G28 - Home all Axis
// G29 - Detailed Z-Probe (3 location test)
// G30 - Single Z Probe (probe current location)
// G31 - Report Curent Probe status
// G32 - Probe Z and calibrate with FPU
// G90 - Use Absolute Coordinates
// G91 - Use Relative Coordinates
// G92 - Set current position to cordinates given

//RepRap M Codes
// M104 - Set extruder target temp (deprecated)
// M105 - Read current temp
// M106 - Fan on
// M107 - Fan off
// M109 - Wait for extruder current temp to reach target temp. (deprecated)
// M114 - Display current position

//Custom M Codes
// M17 - Enable/Power all stepper motors
// M18 - Disable all stepper motors; same as M84
// M20 - List SD card
// M21 - Init SD card
// M22 - Release SD card
// M23 - Sel ect SD file (M23 filename.g)
// M24 - Start/resume SD print
// M25 - Pause SD print
// M26 - Set SD position in bytes (M26 S12345)
// M27 - Report SD print status
// M28 - Start SD write (M28 filename.g)
// M29 - Stop SD write
// M30 - Fast SD transfer
// M31 - high speed xfer capabilities
// M35 - Output time since last M109 or SD card start to serial

// M42 - Change pin status via gcode
// M82 - Set E codes absolute (default)
// M83 - Set E codes relative while in Absolute Coordinates (G90) mode
// M84 - Disable steppers until next move,
// or use S to specify an inactivity timeout, after which the steppers will be disabled. S0 to disable the timeout.
// M85 - Set inactivity shutdown timer with parameter S. To disable set zero (default)
// M92 - Set axis_steps_per_unit - same syntax as G92
// M114 - Output current position to serial port
// M115 - Capabilities string
// M117 - display message
// M119 - Output Endstop status to serial port
// M140 - Set bed target temp
// M190 - Wait for bed current temp to reach target temp.
// M200 - Set filament diameter
// M201 - Set max acceleration in units/s^2 for print moves (M201 X1000 Y1000)
// M202 - Set max acceleration in units/s^2 for travel moves (M202 X1000 Y1000) Unused in Marlin!!
// M203 - Set maximum feedrate that your machine can sustain (M203 X200 Y200 Z300 E10000) in mm/sec
// M204 - Set default acceleration: S normal moves T filament only moves (M204 S3000 T7000) im mm/sec^2 also sets minimum segment time in ms (B20000) to prevent buffer underruns and M20 minimum feedrate
// M205 - advanced settings: minimum travel speed S=while printing T=travel only, B=minimum segment time X= maximum xy jerk, Z=maximum Z jerk, E=maximum E jerk
// M206 - set additional homeing offset
// M208 - set axis max length
// M220 S- set speed factor override percentage
// M221 S- set extrude factor override percentage
// M240 - Trigger a camera to take a photograph
// M301 - Set PID parameters P I D and W
// M302 - S1 Allow cold extrudes, S0 cold extrues not allowed (default)
// M303 - PID relay autotune S sets the target temperature. (default target temperature = 150C)
// M304 - Set thermistor parameters
// M400 - Finish all moves
// M500 - stores paramters in EEPROM
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
// M503 - print the current settings (from memory not fr om eeprom)
// M510 - FPU Enable
// M511 - FPU Reset
// M512 - FPU Disable
// M999 - Restart after being stopped by error

вот
16 Фев 10:51
1
лучше ввести команду на вывод данных из eeprom и сохранить их.
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).

Ясно M501 читает параметры прошивки и их можно сохранить в текстовом файле.

Ну и до кучи M600 - пауза для смены прутка. G2 и G3 не используются слайсерами. Даже у меня нет желания вручную набивать программу. Простенькую для ЧПУшки ещё можно. В общем я не хакер и не смогу взломать сервер через 3D принтер, используя G-коды ;)
17 Фев 14:23
0
G1 - Coordinated Movement X Y Z E
можно поподробнее?Перевод я знаю,он мало о чем говорит)
17 Фев 14:27
2
Перемещение на рабочей скорости.
22 Фев 13:42
0
А можно подробнее,пожалуйста? Пример использования хотя бы)
22 Фев 14:00
2
G1 Z80
опускает сопло к столу до координаты Z80 (расстояние до от сопла до стола в мм). Можно ставить все три координаты, или четыре (плюс экструдер).
G1 X100 Y100 Z80 E5
Будет работать только при температуре более 170 градусов, так как давит пруток (5 мм).
Попробуйте в Pronterface. Можете исследовать ваш G-код файл на сайте gcode.ws
22 Фев 15:33
0
Благодарю!Кратко и понятно.
17 Фев 13:43
1
EEPROM в Марлине по дефолту отключен, его надо для начала включить.
17 Фев 13:46
1
А почему программы показывают информацию из него?
17 Фев 14:04
0
Не знаю что значит "показывают". У меня при коннекте тоже как будто выдается инфа из EEPROM , только вот M500 не работает.
Я собственно понял что включил EEPROM - когда (это было не так давно) у меня перестал внезапно работать экструдер (как в https://github.com/MarlinFirmware/Marlin/issues/1378) :D
17 Фев 14:30
1
Выходит подключаются только функции M500-M503.
18 Фев 09:55
0
Проверил M501 - чтение из EEPROM, работает, хотя в прошивке не включал. Возможно включается только сохранение в EEPROM - M500, проверять не буду, проще перепрошить.
Pronterface 2015-02-18 14.49.50.png
16 Фев 14:08
1
народ, кто подскажет такую весчь. настроил ПИД, температуру держит на ура, но при нагреве с 20 до 240 улетает за 270. какой из коэфициентов руками подкрутить? чот допетрить не могу
16 Фев 14:33
1
А раньше такого небыло? Похоже термистор находится далеко от нагревателя. Видимо это должно гистерезисом регулироваться.
16 Фев 15:25
1
не было. и про М501 узнал поздно(
17 Фев 13:45
0
да в чем проблема? запустите заново Auto PID Tuning, подождите 10 минут, и новые значения внесите в прошивку.
17 Фев 14:06
2
ну тут не дураки вроде. не помогало. решил проблему снижением тока в прошивке и руками уменьшил Кр относительно автопид на несколько едииниц
17 Фев 14:09
1
А как ток в прошивке снизил?
17 Фев 14:20
2
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
17 Фев 14:26
1
Интересно как это повлияет на скорость нагрева сопла?
17 Фев 15:37
2
хз, но температура + - 3градуса
17 Фев 14:11
1
ну тут не дураки вроде. не помогало. решил проблему снижением тока в прошивке и руками уменьшил Кр относительно автопид на несколько едииниц
18 Фев 09:10
1
Понаблюдал у себя. Нагрев доходит до заданных 280 градусов и останавливается. Значит не у всех такие пролёты :)
28 Фев 22:47
0
К сожалению оочень актуальна проблема помогите в решении кто может. Если подсоединять по одному движку к оси Z они работают отлично и паркуются. Но если подключить два движка одновременно при попытки припарковать ось происходит клин. При этом если не парковать ось двигается в верх и низ на указанное расстояние. В прошивке строка #define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200*16/0.8,760*1.1}

Да если значение с 4000 поменять на 2000 то все работает с половинным значением и ось паркуется. Но стоит поднять хотя бы до 3000 все клинит при попытке паркануть. ((((((((
1 Мар 03:31
2
Какой у Вас 3D принтер, какие приводные винты и гайки по оси Z?

Да если значение с 4000 поменять на 2000 то все работает с половинным значением и ось паркуется. Но стоит поднять хотя бы до 3000 все клинит при попытке паркануть. ((((((((

Какие это значения? На парковку влияет скорость парковки и смазка гаек и винта оси Z.
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
1 Мар 08:58
1
Да именно эти параметры я и уменьшил по оси Z и все стало нормально. Теперь можно настраивать оси ))))))))

Спасибо.
2 Мар 17:02
1
День добрый, может поможете еще с одной проблемкой, появилась еще одна проблема с осью Z. Если не давать задание на печать то паркуется нормально, но если дать задание на печать то после прогрева оси начинают парковатся то с Z происходит такая проблема на видео http://www.youtube.com/watch?v=vWzQ9yRZ ... e=youtu.be . Программа Repetier-Host v1.0.6 Насколько я понимаю проблема где то в настройках слайсера или я ошибаюсь ?
2 Мар 17:28
2
Могу только посоветовать программу Cura, так как сам ей пользуюсь.
1 Дек 16:52
0
По моему у меня та же самая ситуацыя, только видео не могу загрузить штоб посмотреть, грит не доступно..
Читал вашу переписку с AKDZG. проблемку наверное решили? не можете подсказать в чем была проблема PLZ....
2 Мар 19:15
0
На Cura тоже самое (( при этом при простой команде на парковку http://www.youtube.com/watch?v=NvIAIGZE7YM&feature=youtu.be все нормально.
2 Мар 19:23
1
Ток на драйвере шаговиков оси Z пробовали регулировать?
2 Мар 19:37
0
Ток выставил по формуле Vref = Ток * 0,4 получил 0,72 вот это значение и оставил. Да вить при так сказать холостой постановке домой оси все нормально. Проблема возникает именно при отправки на печать какого либо задания. ((
2 Мар 19:44
2
Я по формуле не пробовал, только по тестовым прогонам по осям. Ещё можно занизить ускорение в этом параметре
#define DEFAULT_MAX_ACCELERATION {1000,1000,100,10000}
2 Мар 20:00
1
И ещё, формула ведь для одного двигателя, а их два.
2 Мар 20:09
0
Ускорение занижал, напряжение на драйвере увеличивал, без изменений.
3 Мар 02:33
1
Возможно проблема в концевом выключателе. На видео видно как по Z дёргается на одном месте, а должно отъехать и подъехать.
2 Мар 20:11
0
Так двигатели же запаралелены, это если б они были последовательно тогда надо было б умножать на 2 :)
3 Мар 08:39
0
Проблему нашел в G-коде было "25 G1 Z5 F5000" стало "25 G1 Z0 F150"

А вот как теперь это прописать что б не вносить каждый раз ?
3 Мар 09:36
2
G-код формируется слайсером на основе прошивки. Попробуйте настроить чистую прошивку.
27 Мар 11:10
0
Что нужно изменить в конфиге при включении нагрева стола через реле?
27 Мар 11:12
3
Ничего, реле будет коммутироваться от платы, а само реле будет коммутировать стол.
27 Мар 12:58
3
По такой же схеме калибруем PID стола. Команда "M303 E-1 C8 S110". Где E-1 - стол, S110 - типичная температура нагрева стола. Последние результаты записываем в прошивку.
Чтобы реле не билось в конвульсиях :)
27 Мар 11:19
1
Спасибо за оперативный ответ. Просто читал что там ШИМ и реле от этого не комфортно.
И ещё вопрос. подключил full graphic smart controller раскоментил 2 строчки
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
и
#define SDSUPPORT
библиотеку залил. Но... Экран просто светится. энкодер на нажатие откликается писком.
Есть где почитать лечение? Может китайцы с контрастом накосячили? на подстроечный резистор экран не реагирует.
Или надо что-то ещё раскоментить?
27 Мар 11:29
2
Проще залить прошивку сразу, где прописана панелька, или же сгенерить репитировскую прошивку под свой принтер вот тут. Это лучше чем ковырять вагон кода)))) Забьете данные по принтеру, и получите готовую прошику, заливаете как марлин и все дела.

Я использую твердотелку, и коммутирую трансформатор, который на нагрев стола идет)))
27 Мар 13:01
1
Раскомментируем (уберём двойные слэши) следующие строки:
#define ULTRA_LCD
#define SDSUPPORT
#define ULTIPANEL
Когда разберётесь, напишите как сделали.
27 Мар 13:09
3
Измерить шаг резьбы удобнее вот таким инструментом
27 Мар 13:14
2
Да кто же спорит? А ещё есть калибры для резьбы :D
27 Мар 22:09
1
Нароооод! карауууллл!
я уже всю голову сломал...
я полный НОЛЬ в прошивках. Все делаю по описанным шагам, но ничего не выходит...
я в таком тупике, что даже не знаю как поставить вопрос:(
20150327_214750.jpg
Плата.jpg
Порт.jpg
Процессор.jpg
ошибка.jpg
27 Мар 22:10
1
Что я не так делаю?
27 Мар 22:12
0
пишите мне в личку, 100% помогу решить ваш вопрос.
27 Мар 22:21
1
я написал...
28 Мар 03:16
1
Обычные ошибки, говорят о невнимательности ;)
Configuration.h
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_ULTIMAKER
#endif
28 Мар 09:55
0
ОП! ошибка пропала. заливаю...
и что? какой реакции ожидать?

Sketch uses 52 240 bytes (20%) of program storage space. Maximum is 253 952 bytes.
Global variables use 3 010 bytes (36%) of dynamic memory, leaving 5 182 bytes for local variables. Maximum is 8 192 bytes.


и больше ничего
28 Мар 10:00
1
Вместо надписи "Загружаем..." должна появиться другая надпись, например "Загружено" и если ошибок нет, то всё в порядке :)
28 Мар 09:58
1
тут все еще хуже...
это не невнимательность, а полное отсутствие знаний в этой области и опыта...
признаю же... не бейте по голове:)
28 Мар 10:02
2
Да Вы не первый...;) Всё получится 8)
28 Мар 10:07
1
вот что: это оно?
вгрузили.jpg
28 Мар 10:15
2
Вы не в той вкладке указали тип платы. Верните здесь, как было. Теперь во вкладке Configuration.h укажите тип платы.
Marlin _ Arduino 1.6.0 2015-03-28 15.13.46.png
28 Мар 10:26
1
вгрузили2.jpg

и ?
28 Мар 10:29
1
Порядок 8)

Настраиваем прошивку Marlin и заливаем её в 3D принтер - Google Chrome 2015-03-28 15.28.16.png
28 Мар 10:43
0
а может дисплей еще нужно подключить (программно)?
28 Мар 10:36
0
Это прорыв! :) без иронии...

куда вгрузили? в то, что подключено в USB? на экране нет изменений... это так и должно быть?
когда он мне хоть один символ покажет?
а может его нужно подключить к 24в. он только к компу подвязан...
28 Мар 10:43
1
"Вгрузили" в Arduino. У Ультика экран подключается так:
Marlin _ Arduino 1.6.0 2015-03-28 15.40.52.png


Экран должен работать уже от USB. Ещё можно контраст сзади покрутить :)
28 Мар 10:52
0
он работает, но без символов...
фото есть выше... пока без изменений...
28 Мар 10:51
0
у меня это место выглядит так:
контроллер.jpg

внести изменения на черном шрифте? смущает последующая кракозябля... у нас разные верии
28 Мар 10:56
1
У меня прошивка чуть старее. Я красным указал важное место, оно не меняется. Раскомментируйте строку
#define ULTIMAKERCONTROLLER
Если после этого не покажет надписи, то нужно крутить контраст
28 Мар 11:12
0
что означает: "Раскомментируйте строку #define ULTIMAKERCONTROLLER " ?
28 Мар 11:19
1
У Вас так
Marlin _ Arduino 1.6.0 2015-03-28 16.14.31.png

А нужно сделать так
Marlin _ Arduino 1.6.0 2015-03-28 16.14.51.png

То есть убрать двойные слэши. Строка за двойным "//" не используется и является только комментарием. Когда убираем слэши строка принимает участие в компиляции прошивки и задействует какие-то функции.
28 Мар 11:00
1
вставил, и получил ошибку:
контроллер2.jpg


есть возможность общения в СКАЙПЕ ?
28 Мар 11:11
1
Вы удалили нужную строку. Восстановите её и пролистайте ниже.
Marlin_Configuration.h at Development · MarlinFirmware_Marlin · GitHub - Google Chrome 2015-03-28 16.10.52.png
28 Мар 11:18
1
есть такая:
контроллер3.jpg

что с ней делать?
28 Мар 11:20
1
Убрать слева две косых линии, чтобы надпись стала чёрной.
28 Мар 11:24
0
8) готово!
вижу символы:D
нижняя строчка: Err: MINTEMP
что это?
28 Мар 11:30
1
Проблемы с термистором :)
28 Мар 11:33
0
ну еще-бы...
ведь, к плате ничего не подключено...8) короче - ЭТО НОРМАЛЬНО на данной стадии?
или нужно еще, что-то подправить?
28 Мар 11:34
2
Именно это и означает, или обрыв, или не подключен. Короче нормально 8)
28 Мар 11:22
1
я понял... нужно стереть слеши :)
28 Мар 11:36
1
Алексей, огромное спасибо!
а дальнейшие действия?
28 Мар 11:43
3
Всё подключайте и тестируйте по очереди. Шаговики могут крутиться в обратную сторону, вообще не крутиться или не перемещать каретку в положение HOME... То есть у Вас ещё всё впереди :o:D:D
28 Мар 11:46
1
спасибо!
сегодня поставлю Z-микрики и можно подключать :D
29 Мар 00:24
0
Классный мануал по тонкой настройке спасибо огромное за ваш труд, но не понятно как определить железо которое стоит на борту. Есть ли софтина которая это железо может определить без вскрытия самого апарата?
29 Мар 03:20
1
Я думаю софт максимум что может определить это на какой Ардуине собрана электроника, а этого недостаточно. Поищите в Гугле по названию своего 3D принтера.
29 Мар 17:57
0
что еще надо знать?
29 Мар 18:12
2
Это глобальный вопрос :!:
Тип термистора (термопары) хотэнда, тип термистора (термопары) стола, как подключены шаговые двигатели (направление вращения), где стоят концевые выключатели (MIN, MAX), как подключены концевые выключатели (нормально замкнутые или нормально разомкнутые), шаг ремня, шаг винта, количество зубьев на шкивах, тип LCD, габариты перемещений, максимальные ускорения перемещений (от этого зависят пропуски шагов). Некоторые параметры можно увидеть в программе Repetier-Host. Обо всём этом и написано вверху ;)
29 Мар 18:22
0
А вот и первая проблема:
20150329_181519.jpg

расплавился держатель сопла. может это брак? или неправильное определение температуры?
как определить этот датчик?
29 Мар 18:28
1
В Ультиках стандартно стоит термопара, тип "-1". Это не брак, у него ограничение до 270 градусов (если я не забыл).
29 Мар 18:30
0
Не успел я достать термометр и замерить температуру нагревателя...
как решить такую проблему?
29 Мар 18:36
2
Нужно поставить ограничение в прошивке:
#define HEATER_0_MAXTEMP 270
И правильно установить тип термопары.
30 Мар 06:44
1
Вот настроенная прошивка для Ultimaker Original. Вам лучше отталкиваться от неё ;)
31 Мар 09:51
0
квадратики на дисплее указывают на не верное подключение шлейфа монитора, попробуйте еще раз проверить правильность разводки проводов от рампса к плате дисплея.
У меня было так, развернул( уже не вспомню что куда) и все заработало.
31 Мар 09:58
0
****расплавился держатель сопла. может это брак? или неправильное определение температуры?
как определить этот датчик?

Для определения правильной Т на голове необходимо иметь цифровой термометр для шашлыков на 300Ц. ИК термометры не подходят!
http://www.ebay.com/itm/Digital-Cooking-Thermometer-Probe-Meat-Food-Turkey-Kitchen-BBQ-Wine-Jam-Steak-/321453001401?pt=LH_DefaultDomain_3&hash=item4ad8178ab9
Откручиваете нерж трубку легко, оголяется его термистор, закрепляете термистор на кубик головы и запускаете Т на интерфейсе на 200Ц, смотрите показания на реальом Термометре. Дальше надо работать таблица из прошивки, надо подобрать правильную таблицу thermistortables.h. После получения измерения в окне +/-3-5Ц начинается работа на PID для установки правильной частоты подкачки нагревателя за ед. времени с целью получения максимально возможной ровной линии. У себя в посту Идеальный PID я постарался описать данный метод.
30 Мар 21:00
0
Ребята помогайте. Вроде все форумы пролистал. Сломал мозги.
Заливаю в свою злощастную дельту прошивку стоковую для дельты. Экранчика не мог прикрепить. Так вот цифры с геометрией и с шагами не меняются. остаются данные со старой прошивки. уже раз 20 перезаливал.часть данных шьется часть нет! Экран раскоментировать получилось, термистор на постель тож единичка прописалась, название принтера могу поменять, а вот геометрия (диагонали, радиус, длины кареток хоть ты помирай остаются прежними). их получается менять только через m666 и m92
31 Мар 03:25
0
Могу только посоветовать найти другую прошивку для Дельты, прошить её и посмотреть, что получится, а потом сравнить прошивки.
31 Мар 09:25
0
Я же написал что перепробовал кучу прошивок. Результат меняется только моторы начинают не одигаково ездить. И данные осаются с прошлых прошивок. Не верите могу показать этот процесс через удаленный компьютер
31 Мар 09:36
0
Я Вам верю ;)
У меня недавно были проблемы с Ардуиной. Попробуйте подменить, если есть запасная, ведь прошивка в неё заливается.
31 Мар 09:38
0
Да нет запасной - в том и дело
1 Апр 09:48
0
Алексей, спасибо за прошивку.
Вот, что получилось:
20150401_073506.jpg

как я понимаю, t118 - действительная температура, 0 - заданная (или наоборот).
в продолжение разговора о термопаре: перемена полярности не дала никаких изменений (нет реакции. 118 / 0 С)
пробовал подключить новый (не обрезанный) - тоже самое...
где можно найти разъяснения по меню контроллера?
1 Апр 10:05
1
Немного по меню я написал в ЖЖ.

Посмотрите на плату RAMPS 1.5.7, в это место
IMG_5760_c1.jpg

Если резисторы R23 (верхний) и R4 (третий сверху) впаяны (как у меня), то их нужно выпаять или выкусить, они нужны для термисторов, а у Вас термопары (как в оригинале).
1 Апр 10:17
0
Спасибо.
Они там есть. Оба отвечают за ХОТЭНД? Просто для термостола у меня в комплекте ТЕРМИСТОР. (со столом позже буду разбираться). На сколько я понимаю, сам термистор дешевле термопары. ошибаюсь? А какой термистор можно поставить, если не вмешиваться в плату?
Или для этого нужен другой ХОТЭНД ?
1 Апр 10:33
0
R23 отвечает за хотэнд, R4 - за стол. Резисторы самые обычные на 4,7 кОм - удаляйте не задумываясь :) Термисторы мелковаты по размеру, относительно термопары и будут болтаться в родном хотэнде. Но при желании приспособить можно ;) На стол можно ставить термистор, там нет гнезда - погружается в каплю термопасты и закрепляется сверху любым термо скотчем или сразу вклеивается в Radial (клей-термопаста).
1 Апр 21:22
0
Алексей, как и есть!:)
Выпаял R23, температура стала комнатной 24 С.:D
Выставил 200 С. Фактическая постоянно гуляет 198-204 С.
Вот какая бяка: 200 С, а ИК термометр показывает 150 С. Погрешность? Вряд ли... могу допустить до 20 С (внешняя t + погрешность), но не 50. Заблуждаюсь?
2 Апр 03:58
0
У ИК видимо пятно замера большое. У меня было так же. Лучше использовать контактные термометры с термопарой. Хотэнд не держите на высокой температуре без работы (нагар, оплавится).
2 Апр 09:25
0
Да я и не сомневаюсь, что контактные лучше... но нет его под рукой:(
ИК ставил на удалении 3мм, с постоянно нажатой кнопкой температура стабилизируется через 3-5сек на 146-150 С. Разовый съем действительно дает 120-150 С (от раза к разу).
я не ставил пока ХОТЭНД (он у меня один остался ;)). тестил только нагревательный блок (алюм. бокс), подвешенный на проводах нагревателя. К стати, сегодня мне выточат втулку из ФТОРОПЛАСТА (не знаю, какая марка... надеюсь, что это не Ф50, а Ф2 или Ф4), для обкатки вполне сгодится... а там - посмотрим... Он тоже не теряет своих свойств до 260 С, а плавится при 350 С.
PEEK+30% стекловолокна - не знаю где взять... Он есть в продаже, но не в розницу... Может кто подскажет, где взять такой материал? Пруток ф16-20мм.
5 Апр 17:41
0
Алексей, вот еще вопрос:

1. я выбрал за ДОМ левый передний угол.
SENDING:M119
Reporting endstop status
x_min: TRIGGERED
x_max: open
y_min: TRIGGERED
y_max: open
z_min: TRIGGERED
z_max: open

а вот замеры перемещений:
заданное/фактическое
х - 100/132
y - 100/99,4
z - 40/19,8
Как быть? где ввести поправки?

вот, что я прописал:

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {(200*16)/(2.032*20),(200*16)/(2.032*20),200*16/(153.6/51),3200*(8/49)/(8*3.14)}

но изменений нет никаких... на плате установлены по три джампера на каждом драйвере.

2. Repetier-Host вот, что показывает:
repit2.jpg


3. двигатель экструдера не отзыватся:(
6 Апр 03:23
0
#define DEFAULT_AXIS_STEPS_PER_UNIT{(200*16)/(2.032*20*1.32),(200*16*1.006)/(2.032*20),(200*16*2.02)/(153.6/51),3200*(8/49)/(8*3.14)}
6 Апр 10:48
0
Алексей, такую правку я ввести попробую. Алгоритм мне понятен...
Никак не возьму в толк: Почему Repetier-Host показывает равные значения для X и Y (78,74 шаг/мм), а фактическое перемещение серьезно отличается? Это при прочих равных условиях... Моторы, шкивы, ремни, драйверы... и на единой плате...
в чем подвох? где собака зарыта? :)
6 Апр 14:05
1
Серьёзно отличается только "X", там и ищите ответ.
6 Апр 14:26
0
а где его там искать?
попробовать заменить мотор? или драйверы местами поменять?
или как?
5 Апр 20:38
0
с экструдером разобрался :). он с не прогретым соплом не работает.
а вот с X и Z - непонятка какая-то...
думаю, есть еще какое-то место, куда это нужно прописать. а какое - я не знаю :(
6 Апр 14:26
1
*****он с не прогретым соплом не работает.

работает если установить на место термистора на плате матери сопр в 40-50Ком. Мать подумает это термистор , на дисплее появится Т выше 180Ц и все врубиться:)
Внимание: с обманкой Тэн нагревателя головы не включать! - сгорит так как термоконтроль на обманке
6 Апр 14:29
1
Спасибо. Буду иметь ввиду ;)
только, в УТИМАКЕРЕ, термопара в нагревателе...
6 Апр 14:35
0
не учел:) можно и это обмануть, главное желание.
6 Апр 14:39
1
Да никто и не спорит... но есть пути и по проще...
прогрев сопла 30 секунд (или около того) ;)
а потом шевелим мотором экструдера :)
6 Апр 14:39
0
***а вот с X и Z - непонятка какая-то...
а что конкретно?
6 Апр 14:40
0
при всех равных условиях на осях X и Y - фактическое перемещение абсолютно разное. (Y - ожидаемый результат, а X - непонятка)

Z - дает фактическое перемещение в два раза меньше заданного.
6 Апр 14:44
1
делитель Z настраивается отдельно X с Y отдельно - у них не мог быть равные условия деления шага в прошивке.
Может я не так понимаю ваше сказанное, расскажите по другому
6 Апр 14:47
0
Repetier-Host вот, что показывает: см. выше картинку. и для X и для Y (78,74 шаг/мм)
6 Апр 14:46
1
*****Z - дает фактическое перемещение в два раза меньше заданного.
а что мешает компенсировать число деления если известно что в 2 раза меньше оно?
6 Апр 14:48
0
ничего не мешает пока...
интересно: НОГИ ОТКУДА РАСТУТ ? :D откуда вообще эта ДВОЙКА вылезла...
6 Апр 14:51
1
*****интересно: НОГИ ОТКУДА РАСТУТ ?
по моему нужен выхлоп и результат ? отнеситесь проще - есть баг в прошивке, обходим баг путем увеличения /уменьшения делителя:))

*****а X - непонятка)

шпули ШД на осях XY по кол. зубьев и диаметру одинаковые?
6 Апр 14:54
1
пуля - в пулю
Механика X и Y - абсолютно идентичны
6 Апр 14:58
0
X дистанция прохода одинаковая всегда при одном и том же делителе?
ШД ХY - одинаковые по ярлыку на двигателях?
6 Апр 14:57
1
X дистанция прохода одинаковая всегда при одном и том же делителе?
ШД ХY - одинаковые по ярлыку на двигателях?
6 Апр 14:59
1
Да, одинаковые.
ШД из одного комплекта. Маркировка одинаковая.
6 Апр 15:00
1
тады опять проблема такая же с прошивкой как с Z, кто то постарался.....
на сколько отличается делитель X от Y? в цифрах
6 Апр 15:03
0
попытался исправить и не успел.
про делители я поторопился...
что Вы имеете ввиду?

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT {(200*16)/(2.032*20),(200*16)/(2.032*20),200*16/(153.6/51),3200*(8/49)/(8*3.14)}
6 Апр 15:08
1
repit2.jpg
6 Апр 15:12
0
мне это понятно.
не понятно: ПОЧЕМУ ТАК
X: (200*16)/(2.032*20) = 78.74 шаг/мм
Y: ( 200*16)/(2.032*20) = 78.74 шаг/мм

а проходы разные:?:
6 Апр 15:29
1
*******мне это понятно.
не понятно: ПОЧЕМУ ТАК
X: (200*16)/(2.032*20) = 78.74 шаг/мм
Y: ( 200*16)/(2.032*20) = 78.74 шаг/мм

а проходы разные


и меня эти формулы сильно раздражают это как минимум , если нужен результат , подберите X и вообще все делители простыми цифрами 78.74 78.05 итп Ось указывается через запятую { X,Y,Z,E0}
Это будет работать так же как и эти идиотские формулы которые грузят CPU просто так!
2 Окт 13:27
0
Хочется прояснить один момент. В основном для тех, кто будет это читать и думать, что тов.Strela Ro-Sa предлагает "оптимизицию".
Никаких формул там не будет. Компилятор не дурак и посчитатает "формулу" в одно число, которое будет применяться в рантайме.
Напишите вы (200*16)/(2.032*20) или 78.74 результат будет одинаков. но первый вариант пересчитать проще, понятно откуда берется такое значение, а не "волшебные" 78.74



Loading...
28 Фев 18:21
0
это хорошо что коментируются мои рекомендации, но вопрос в том что данная "волшебная" математика ничего общего не имеет к финальным настройкам делителя шага ШД и для того чтоб настроить очень точно принтер нужно вводить простые цифры на основании измерений цифрового штангена после физических движений осей.
Можно конечно придумывать каждый раз волшебные формулы как эти (200*16)/(2.032*20) и двигаться по ним во время финальных настроек если у вас очень много свободного времени, у меня этого времени практически не хватает, но настриваю принтер как видно из за этих сокращений телодвижений быстрее и видимо точнее вас.
На сегодня мои принтеры уже двигаются со скоростями до 250-280мм/сек
вот недавний собранный новый принтер, первая тестова печать как раз для понимания работы конечных настроек по делению шага. Хотелось бы посмотреть на ваши практические результаты.
https://youtu.be/GzZLmpqynW4
1 Мар 23:39
0
Добрый вечер, Роберт. Дабы вы не утруждали себя вопросом, представлюсь заранее. Меня зовут Артём, 3д печать для меня одно из хобии, посему скоростью в 250мм\с похвастаться не могу. Но, зато я похвастаться тем, что я разрабатываю игры, основной проект нашей студии взял уже не одну отметку "миллион пользователей". И разрабатываем мы как раз на С++. А по образованию, я разработчик микропроцессорных систем. Что также очень кстати в тему нашего диалога.
Теперь, закончив раскладывать регалии, перейду к делу.
То, что у вас есть навык настройки принтера, не значит, что вы понимаете как устроено его программное обеспечение - к сожалению это факт.
Судя по вашим комментариям ниже - это так. Хотя, возможно это не так, обвинять вас в полном профанстве рука не поднимается.
Я соглашусь, что в целом это не мешает его очень тонко настроить и получить хороший результат. Но все же не стоит выдавать свои домыслы за пугающую действительность.
Если у вас будут какие-то вопросы из серии "а что это, а как это работает", могу ответить в рамках этого диалога или ЛС. Углубляться в дебри работы алгоритмов принтера не обещаю, но объяснить простым языком "а что это за команда"
const unsigned int dropsegments=5;
могу.

Также у меня есть одно пожелание, в рамках конструктивного диалога, аргументы "сначала добейся" выглядят неуместно, давайте не будем переходить на личности и выходить за рамки дружественного общения в рамках сообщества.
2 Мар 01:23
0
Артем, что вы хотите от меня услышать? если честно я не совсем понимаю цель такой мессаги. Хотите сказать что я не умею настраивать принтеры так как не пользуюсь формулой, которая отнимает время на раздумывание?
Очень рад вашим успехам в области создания игр. Пишу на Java когда есть настроение. Являюсь гл. инженером ИТ ЦОД МТС Армении уже более 20 лет.
Рекомендация без обид:
Для того чтоб разобраться в фактах рекомендую не делать таких быстрых умозаключений и выводов. Все что вы здесь написали, могли написать в личике так как это почти полный офтоп и не относится к настройкам принтеров.

Я владею английским свободно и полностью понимаю смысл и суть команды const unsigned int dropsegments=5;
Команда изменена мной на const unsigned int dropsegments=0 и нормально прошла компиляция, загружена в МК. Рекомендую к применению. Думаю вы сумеете найти данный текст команды поиском в файлах прошивки и перевдете его комент. От таких изменнных и др. команд в прошивке МК принтер весьма чувствительно стабилизируется при высоких скоростях пречати. Почему нужны высокие скорости наверно догадваетесь так как наверное читали - у нас в Армении работает на 3д динамический хаб по предоставлению сервиса 3д печати населению Армении. Система находится в АМ зоне и не доступна для др. стран. Думаю это на долго . Когда пройдем полную обкатку тогда есть намерения выйти в Европу. С РФ пока есть проблемы. Какого рода не сообщу.
Как то так, рад знакомству коллега.
Если осталось и есть что сказать - пишите в личику.
Удачи.
28 Фев 17:34
0
Это будет работать так же как и эти идиотские формулы которые грузят CPU просто так!
Не грузят они ЦПУ, вместо них подставляются значения при компиляции.
28 Фев 17:49
0
Ой ой ой, ладно , как скажите:)) не надо так нервничать.
Пишите их как вам угодно и удобно, мне удобно видеть в прошивкке прямые цифры деления так как это все что нужно для понимающего дело человеку.
а насчет загрузки МК, что скажите насчет строки в Configuration_adv.h
команды : const unsigned int dropsegments=5;
это тоже не грузит МК?
28 Фев 17:57
0
const unsigned int dropsegments=5;
Эту должен грузить, а все #define - это команды препроцессора, они выполняются до компиляции.
28 Фев 18:24
0
я не спрашивал когда они и как компилируются, если вы были внимательны я спросил совершенно другое - нагружает ли данная строка const unsigned int dropsegments=5; МК во время работы или нет, как по вашему?
28 Фев 22:50
0
Данная строка всего лишь занимает 2 байт памяти.
28 Фев 23:01
0
к сожалению мы не понимаем друг друга. Как вас зовут?
я спрашиваю о работе команды а не о ее занимаемой емкости в памати МК.
Попытка 3:
как нагружается МК из за данной строки при выполнении анализа G-code - положительно или по нулям, как считаете?
28 Фев 23:46
0
Меня зовут Сергей,
Отвечаю на ваш вопрос: ЦПУ не тратится, т.к. это не команда, а данные,
ЦПУ тратится когда происходят действия над этими данными.
1 Мар 00:28
0
Рад знакомству Сергей, меня Роберт
В том то все дело что показанная команда тратит ресур вычислителя МК когда анализирует данную не ясную команду для выполнения округлений и переноса в буфер памяти всех чисел из маш. кода для оси E, которые равны 5 или меньше 5 и тем самым нагружают и без того нагруженный 8 битный МК что мешает развивать высокие скорости печати и не только этому, а так же портят поверхность деталей.Сейчас у меня в прошивке вместо 5 установлено 1 и думаю вывести эту цифру в 0 так как наблюдаю более стабильную работу принтера на высоких скоростя как 250мм/сек. Как вы считаете, что может произойти если значение будет 0? Можете подумать и подсказать?
Можете так же не отвечать если не разбираетесь в данном вопросе.
1 Мар 12:11
0
И я рад знакомству. Роберт, вы задаете не очень коректные вопросы. Вы приводите строку с данными и спрашиваете о ЦПУ. Если вы приводите пример с данными, то корректно обсуждать сколько памяти он занимает, если вы задаете вопрос касательно ЦПУ, корректно показывать код с операциями над этими данными.
и без того нагруженный 8 битный МК
Пока что это ваши домыслы, что МК и без того нагружен. Всем известно, что в дельте очень сложные вычисления и мега их тянет, по сравнению с дельтой, у других кинематик вычисления очень простые, и МК почти простаивает. Из личного опыта скажу что поддержка дисплея потребляет больше ресурсов чем расчет кинематики(дельта - исключение).
Сейчас у меня в прошивке вместо 5 установлено 1 и думаю вывести эту цифру в 0 так как наблюдаю более стабильную работу принтера на высоких скоростя как 250мм/сек. Как вы считаете, что может произойти если значение будет 0? Можете подумать и подсказать?
Если у вас есть КОНСТАНТА у которой значение 0, компилятор упускает операции умножения и сложения, тем самым ЦПУ не грузит константы в аккумулятор и не делает лишних действий которые не повлияют на результат.
1 Мар 12:36
0
По последнему коменту - спасибо! буду пробовать.
По остальным коментариям я воздержусь отвечать/обсуждать/коментировать так как мне совершенно не известно с каким потенциалом знаний я общаюсь и просто адаптировал вопрос, конвертировал вопрос в простые слова под среднего "жителя портала".
6 Апр 15:11
1
Насчет Z и двухкратного увеличения делителя - возможно вы не учли что резьба 4-х заходная , или учли?
6 Апр 15:14
1
6 Апр 15:15
0
Возможно микрошаг по Z в оригинале стоит 1/8.
6 Апр 15:20
0
Алексей джан а где это 1/8 может быть установлено? вообще похоже из слов FOBOS там не 1/8, а 1/2 если так...
6 Апр 15:25
1
а где это 1/8 может быть установлено
Дак перемычками же, под драйвером шагового двигателя ;)
6 Апр 15:22
2
блин как же я ненавижу эти длинные формулы ааа, вот зачем спрашивается нагружать вычислитель данной тупой задачей на каждом шаге ась?:((( {(200*16)/(2.032*20),(200*16)/(2.032*20),200*16/(153.6/51),3200*(8/49)/(8*3.14)}
{78.74,78.74,553.3,836} так разве не проще и короче...
6 Апр 15:27
0
вот зачем спрашивается нагружать вычислитель
Скорее эта формула для нас, а в прошивку сразу вычисленный результат заносится.
6 Апр 15:34
0
Мне не жаль вычислителя.
а пишу так, чтоб самому понимать (и собеседнику) откуда взялись 78,74 и прочее
6 Апр 15:36
1
Алексей , туда записывается формула к сожалению!!! и каждый раз координата попадает в формулу и считается!!!
Убрал это дело сразу махом, даже не думал грузить CPU! буржуи, ох эти буржуи...."правильные" блин
Интерпретатор языка ардуина wiring in и он тупой как пробка, все что раскомментировано пихает в HEX файл и вгоняет в ППЗУ
6 Апр 15:43
0
А я думаю это переменные, ведь это программирование и они должны в процессе компиляции вычислять результат и записывать в ячейку памяти. А формула ведь в текстовом формате. Не думаю, что в Ардуине всё так сложно.
28 Фев 17:36
0
Алексей , туда записывается формула к сожалению!!! и каждый раз координата попадает в формулу и считается!!!
Нет, gcc пишет сразу результат.
6 Апр 15:26
0
Я вот тоже об этом думал.
Но смущает то, что на каждом из драйверов (рядом) стоят одинаковые джамперы (по 3шт.)
но как тогда быть с разницей между X и Y ?
20150303_095841.jpg
6 Апр 15:32
1
*******Но смущает то, что на каждом из драйверов (рядом) стоят одинаковые джамперы (по 3шт.)
это правильно, они отвечают за делитель микрошага на уровне железа и при 3-х джамперах oно означает 1/16
Не трогайте это, тут вопросов нет
6 Апр 15:16
1
*****#define DEFAULT_AXIS_STEPS_PER_UNIT {(200*16)/(2.032*20),(200*16)/(2.032*20),200*16/(153.6/51),3200*(8/49)/(8*3.14)}

-вы уверены в том что прописанные тут значения применяются при их изменении?
- Вы здесь в прошивке меняете или из репитора меняете прошивку?
6 Апр 15:31
0
Вот я это вечером узнаю...
меняю в прошивке.
результат смотрю в репиторе...

Z: 200*16/(153.6/51) = 1062,5 , а репитор кажет 533,3 (аномалия)
6 Апр 15:34
1
******Вот я это вечером узнаю...
меняю в прошивке.
результат смотрю в репиторе...

Z: 200*16/(153.6/51) = 1062,5 , а репитор кажет 533,3 (аномалия)


Наконец!!!
Значит то что показывает репитор это из зоны его EPPROM а не прошивки!

Меняйте все из прошивки , из рипитора работать не будет!!! Блокирован репитор из прошивки!
6 Апр 15:40
0
Нет! это еще не конец...
вот смотрите:
репитор показывает значение Z = 533.3 и проход становится меньше в 2 раза (чем заявленный мной 1062,5)
значит он его берет из прошивки.
Я далеко не уверен, что аномалия с X и Z имеют общие корни...

******Вот я это вечером узнаю...
поробую ввести доп коэф. и посмотрю на результат...
если изменений не произойдет, значит то что я пишу в прошивке вообще не доходит до платы...
ну и значения репитора сверю...
6 Апр 15:47
1
*****Нет! это еще не конец...

неа:)) конец! Я уверен всеми своими КГ в теле :) - > он его берет из прошивки!!!
Репитор блокирован из прошивки, им нельзя писать в железо!!
меняйте значения только и прямо в прошивке, сохраняйте на ПК и вгоняйте в железо
Всегда держите 2 исходника чтоб откатить назад если что либо пошло не так
Всегда держите окончательный рабочий исходник на CD или DVD как резервную копию! Не доверяйте HDD или флешкам!
6 Апр 15:54
0
Ну написал же ранее:
меняю в прошивке.
результат смотрю в репиторе...
6 Апр 16:00
1
******меняю в прошивке.
результат смотрю в репиторе...

вы сумели меня запутать, браво:)))))
еще раз 1 и последний! Репитор блокирован , он не читает прошивку из меги!!
Все его показания игнорируйте, работайте только через интерфейс ардуина.

6 Апр 16:07
0
Хорошо. Хотел взять тайм-аут (до вечера), но не тут-то было...:)

#define DEFAULT_AXIS_STEPS_PER_UNIT {(78.74),(78.74)...
как Вы объясните разницу в перемещениях, при равной механике ?
6 Апр 16:18
1
*****как Вы объясните разницу в перемещениях, при равной механике ?
можно узнать почему я или вы должны объяснять баги прошивки?
я подсоединился к вашему диалогу с Алексеем ( прошу прощения, могу удалиться) для того чтоб вам помочь быстрее настроить принтер и запустить печать. Я практик, жесткий и весьма приземленный,режущий острые углы тупиков от программеров, уже 24 года поступаю так и пока не единой ошибки в проделанной работе.
Ваша механика по вашим словам - пуля в пулю - ок верю охотно
Ваше прошивка, так же как и вы утверждали выше - еле остановились на рабочей более или мнее или как то так... и опять я вам верю так как прошивка принтера который вы собираете или собрали находится в большом фаворе и имеет классные продажи. Соответственно,прошивки к нему рабочие сразу вы не найдете ни где - простая прямая логика исходящая из ком. интересов производителя Ульти!
Вывод - все что имеете надо использовать в ваше благо и настроить прошивку так чтоб она работала без разбирательств почему она битая!
Вы согласны с данной изложенной мыслью - идем дальше и я вам с Алексеем поможем
Вы не согласны - я уйду в лес и без обид :)
6 Апр 16:44
0
Господь с вами... я и не думал Вас отсеивать...
Тут, чем больше голов и мнений - тем лучше...
Если это баг, то мы в этом убедимся...
я, всего лишь, пытаюсь докопаться до истины...
Ну разные мы, и подходы у нас разные...
Вечером я проясню, что происходит. Просто, на данном этапе (не имея аппарата под рукой), я выражаю не столько сомнения, сколько прошу разъяснений...
Хочу понять причину (по возможности)... а не просто обойти...
6 Апр 17:23
0
***Вечером я проясню, что происходит.
ок , буду ждать
*** Ну разные мы, и подходы у нас разные...
не согласен , в основном одинаковые 80% состоим из воды:)
Шутка:) я реально хочу помочь запуску и постарался ускорить его. не думаю что я нарушил 3 принципа робототехники:)
6 Апр 19:53
0
Ну вот и настал вечер... час истины...
который подтвердил мои опасения, которые стеснялся озвучить...
все дело в моих кривых руках...
М2.jpg

ввел я коэф-т 0,8 в ось X
Но реакции нет никакой... вместо запрошенных 100мм - 132мм
50мм-66мм
Видимо, я не туда пишу?
6 Апр 20:00
0
Можно верхнюю строку сюда текстом?
далее, скажите пож. ваши желаемые цифры деления? вот в такой последовательности X,Y,Z,E
6 Апр 20:04
0
#define DEFAULT_AXIS_STEPS_PER_UNIT {(200*16*0.8)/(2.032*20),(200*16)/(2.032*20),200*16/(153.6/51),3200*(8/49)/(8*3.14)}
6 Апр 20:05
0
ваши желаемые , итоговые цифры деления, плз
6 Апр 20:10
0
У вас есть Vk аккаунт? мой - https://vk.com/id270172689
6 Апр 20:15
0
нет, нет меня в соцсетях
есть скайп
6 Апр 20:17
0
78.74, 78.74, 1062.5, 780
6 Апр 20:24
0
а теперь посмотрите что получаете когда CPU считает? понимаете меня почему надо уйти от этих формул к чертовой бабушке на всегда?
cats.jpg

Пожалуйста, введите вместо всей этой сформулированной фигни выше, да простит меня Бог!
Следующее выражение:

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.74, 78.74, 1062.5, 836}
6 Апр 20:32
0

Досадно, но дело не в коэф-х...
нет изменений :cry:. те же 132мм вместо 100, а по Y = 100 из 100
М3.jpg
6 Апр 20:34
0
ОК, мне надо получить вашу прошивку, я сейчас вам скину свою почту в личику здесь
Пож. больше ничего не трогайте, сохраните то что я попросил ввести и вышлите мне весь архив.
6 Апр 20:38
0
ОК. уже упаковал.
а может я неправильно ее заливаю?
удалить прошивку не нужно, перед заливкой?
6 Апр 20:44
0
нет конечно, вы все делаете правильно
6 Апр 20:51
0
я нашел косяк этот...
ну и баран же Я...
рукожопое чудовище...:evil:
разница по осям XY устранена.
но регулировкам он все равно не поддается...
как будто, там что-то зашито, и это ЧТО-ТО я не могу переписать...:(
но ведь прошивка проходит, аппарат реагирует на процесс...
6 Апр 21:12
0
не знаю что вы нашли, я там кое что отключил исправил синтакс, моя версия V3, ваша V2
Загрузите мою, не сработает, тогда вашу восстановите и расскажите что вы исправили
6 Апр 21:14
0
***как будто, там что-то зашито, и это ЧТО-ТО я не могу переписать...

но ведь прошивка проходит, аппарат реагирует на процесс...

пожалуйста, загрузите мою версию и отпишите
6 Апр 21:10
0
отправил, проверьте почту
6 Апр 21:20
0
ОК. По Z отработал отлично.
по XY - тоже.
Спасибо! :D
а где засада была?
6 Апр 21:27
1
вы ввели конфликт между EPPROM и прошивкой самой, это то что я говорил выше, но EPPROM был включен и не верно включен.
Отключено! Не трогать! Работать только с прошивки!
Так все, поздравляю с первым боевым крещением, не нервничайте никогда, это дело нервы не любит а любит жесткую цифровую логику и последовательность