babystep z для чего нужен

UNI Форум

Babystep (Z-axis fine-tuning) для Lerdge и Marlin через OctoPrint

Babystep (Z-axis fine-tuning) для Lerdge и Marlin через OctoPrint

Сообщение demonlibra » 03 апр 2020, 14:05

Создать дополнительные кнопки со следующими командами:

Получить текущее значение: M851
Сохранить изменения: M500
Увеличить зазор: M290 Z0.05
Уменьшить зазор: M290 Z-0.05

В Lerdge для корректировки позиции оси Z без изменения координаты используется g-code G39 (Set the Z-axis fine-tuning value)


G39 (Set the Z-axis fine-tuning value)

Description: Set he fine-tuning value of Z-axis
Usage: G39 [S ] [R]

Parameters:
[S ] Holistic compensation value of Z axis

Например, чтобы опустить стол вниз на 0.05 мм (увеличить расстояние между соплом и столом), надо выполнить команду:
G39 S0.05 R

Создать дополнительные кнопки со следующими командами:

Увеличить зазор: G39 S0.05 R
Уменьшить зазор: G39 S-0.05 R Отрабатывает не моментально. Вероятно после завершения очередного перемещения G1/G0. Но пользоваться можно.
Установленное значение сохраняется и после выключения платы.

Источник

Дополнительные настройки в Marlin

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

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

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

Статья относится к принтерам:

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

Дополнительные настройки термоконтроля горячего стола:

#define BED_HYSTERESIS 2 //просто выключает подогрев стола, если T>*целевая температура*+BED_HYSTERESIS и включает его, если T B F

Целевая температура устанавливается в значение мин_температура+фактор*se[шагов/сек] и ограничивается в пределах мин_температуры и макс_температуры

Отключается с помощью ввода команды М109 без F. Также, если температура установлена в ‘мин_температура’, то она не меняется с помощью этой функции

#define AUTOTEMP_OLDWEIGHT 0.98

Показ ADC-значений температуры. Команда M105 вместо привычной информации выдаст ADC-значения, прочитанные с датчиков температуры

Предотвращение износа экструдера. Если принтер простаивает, и температура выше, чем MINTEMP, экструдер будет выдавливать некоторое количество филамента с периодом, указанным в параметре SECONDS

#define EXTRUDER_RUNOUT_MINTEMP 190

#define EXTRUDER_RUNOUT_SECONDS 30.

#define EXTRUDER_RUNOUT_ESTEPS 14. //мм филамента

#define EXTRUDER_RUNOUT_SPEED 1500. //скорость экструзии

#define EXTRUDER_RUNOUT_EXTRUDE 100

Это поможет откалибровать датчик AD595, в случае, если он неправильно измеряет температуру.

измеряемая температура определяется как ‘текущая_температура = (измеренная температура * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET’

#define TEMP_SENSOR_AD595_OFFSET 0.0

#define TEMP_SENSOR_AD595_GAIN 1.0

Эта функция отвечает за контроль над вентилятором охлаждения драйверов ШД. Как подключить доп.вентиляторы читайте здесь. Вентилятор будет включаться тогда, когда хотя бы один из драйверов будет активен и выключаться через установленное время после отключения последнего драйвера.

#define CONTROLLERFAN_SECS 60 //Сколько секунд будет вращаться вентилятор после отключения последнего драйвера

#define CONTROLLERFAN_SPEED 255 // == полная скорость. Можно поставить меньше, если задействованы выходы с PWM.

При первом старте вентилятора он запускается на полной скорости на некоторое время. Это дает уверенный старт перед установлением пониженного PWM-значения (не работает с программным PWM на Sanguinololu). Примечание: это правило, возможно, действительно только для того вентилятора, который включается по команде M106

#define FAN_KICKSTART_TIME 100 //кол-во мс полной скорости

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

#define EXTRUDER_0_AUTO_FAN_PIN 4 (-1 для отключения)

#define EXTRUDER_AUTO_FAN_TEMPERATURE 50

#define EXTRUDER_AUTO_FAN_SPEED 255 // == полная скорость. Можно поставить меньше, если задействованы выходы с PWM.

При включении этой настройки концевые выключатели используются только для парковки

Включает драйвер ШД оси Z в последний момент. Нужна в случае перегрева соответствующего драйвера ШД.

Обычно используется один драйвер ШД для управления двумя моторами на оси Z. Раскомментируете для использования раздельных драйверов на каждый ШД Z-оси. Такую функцию поддерживают лишь некоторые платы, например, RAMPS, у которой есть поддержка 2 экструдеров (используется второй, обычно неиспользуемый драйвер ШД) Пины управления указаны для RAMPS, в случае другой платы исправьте их на свои. На 5-драйверной плате включение этой функции ограничит вас возможностью использования только одного экструдера

То же самое для Y-оси

Раскомментируйте, если есть необходимость, чтобы ШД по Y врашались в разные стороны

#define INVERT_Y2_VS_Y_DIR true

Функция поддержки принтеров с двойной Х-кареткой. Подобная конструкция имеет преимущество, т.к. неактивный экструдер может быть запаркован, что предотвратит вытекание горячего пластика из сопла, который загрязняет печать. Также это снижает общий вес каждой Х-каретки, позволяя печатать с более высокими скоростями

Читайте также:  что делать если болит живот когда месячные

Конфигурация для второй Х-каретки

#define X2_MIN_POS 80 // устанавливает минимальное расстояние, при котором вторая Х-каретка не задевает запаркованную первую Х-каретку

#define X2_MAX_POS 353 // максимальное расстояние между соплами, когда обе каретки запаркованы

#define X2_HOME_DIR 1 // вторая каретка всегда паркуется в концевой выключатель максимальной позиции

Однако в этом режиме значение EXTRUDER_OFFSET_X для второго экструдера предоставляет программное переопределение для X2_HOME_POS. Это также позволяет выполнить рекалибровку расстояния между концевыми выключателями без модификации прошивки (через команду M218 T1 Xn).

Помните: вы должны установить смещение второго экструдера равным нулю в вашем слайсере.

Пины для драйвера ШД второй Х-каретки (задаются здесь, чтобы не усложнять pins.h)

#define X2_ENABLE_PIN 29

#define X2_STEP_PIN 25

#define X2_DIR_PIN 23

Есть несколько режимов движения для двойной Х-каретки, которые можно выбирать через команду M605 S

Режим 0: Полный контроль. Слайсер полностью контролирует обе Х-каретки и может достичь оптимальных траекторий, но только если он поддерживает двойные X-каретки. (M605 S0)

Режим 1: режима авто-парковки. Прошивка будет автоматически парковать и снимать с парковки Х-каретки при ‘смене инструмента’, поэтому отдельная поддержка слайсером не требуется. (M605 S1)

Режим 2: режим дупликации. Прошивка будет копировать все действия первой каретки второй кареткой. Это позволяет печатать 2 одинаковых модели одновременно. (смещение по X и разница температур задается как M 605 S2 [Xnnn] [Ryyy]. Обратите внимание, что параметр R, отвечающий за температуру, задается в относительных величинах. Например, при значении R2 второй объект будет напечатан пластиком, нагретым на 2 градуса выше).

Эта строка определяет режим по умолчанию для двойной Х-каретки, который может быть позже сменен командой М605.

#define DEFAULT_DUAL_X_CARRIAGE_MODE 0

Настройки по умолчанию в режиме авто-парковки

#define TOOLCHANGE_PARK_ZLIFT 0.2 // величина подъема Z при парковке экструдера

#define TOOLCHANGE_UNPARK_ZLIFT 1 // величина подъема Z при снятии с парковки экструдера

Смещение по умолчанию для оси Х в режиме дупликации (обычно устанавливается в половину ширины печатной области)

#define DEFAULT_DUPLICATION_X_OFFSET 100

При парковке каретка каждой из осей активирует концевой выключатель, а затем отъезжает обратно на указанную ниже дистанцию прежде, чем медленно запарковаться снова:

#define X_HOME_RETRACT_MM 5

#define Y_HOME_RETRACT_MM 7

#define Z_HOME_RETRACT_MM 3

#define QUICK_HOME //при активации этого параметра по команде G28 X Y оси одновременно совершат парковку, а не по отдельности.

Отсчет в относительных величинах для осей X, Y, Z, E

По умолчанию драйверы на основе А4988 требуют сигнал высокого уровня для шага. Однако, некоторые мощные драйверы могут требовать сигнал низкого уровня. Инверсия сигналов делается установлением параметра в true:

#define INVERT_X_STEP_PIN false

#define INVERT_Y_STEP_PIN false

#define INVERT_Z_STEP_PIN false

#define INVERT_E_STEP_PIN false

Время, по истечению которого отключаются драйверы ШД в простое. Выставьте 0 для отключения.

#define DEFAULT_STEPPER_DEACTIVE_TIME 60

Подачи для ручных движений с панели (X Y Z E) (для ultipanel)

#define MANUAL_FEEDRATE // устанавливает скорость для ручных движений (мм/мин)

Если файл распечатан, то функция отключает все шаговики

#define SD_FINISHED_STEPPERRELEASE true

Возможно, ось Z нужно будет удерживать, поэтому оси можно отключить по отдельности

#define SD_FINISHED_RELEASECOMMAND ‘M84 X Y Z E’

Функция для съемки процесса печати

#define CHDK 4 //пин для срабатывания CHDK, чтобы сделать фото. Как этим пользоваться см. здесь.

#define CHDK_DELAY 50 //насколько долго в мс пин будет находиться в логической единице перед переходом в ноль

Показывать полосу прогресса печати на дисплеях HD44780 при печати с SD

(только для функции #define LCD_PROGRESS_BAR)

Определяет, сколько времени в мс будет показыватьсяполоса

#define PROGRESS_BAR_BAR_TIME 2000

Определяет, сколько времени в мс будет показываться сообщение статуса

#define PROGRESS_BAR_MSG_TIME 3000

Время (мс) удержания статус-сообщения (0=навсегда)

#define PROGRESS_MSG_EXPIRE 0

Раскомментируйте это для того, чтоюы сообщений показывались в течение времени MSG_TIME, а потом скрывались

Аппаратный ‘наблюдатель’ перезагрузит контроллер и отключит все выходы, если прошивка зависнет и не сможет выполнять регулировку температуры

Если у вас случилась перезагрузка ‘наблюдателем’ в Arduino Mega2560, то устройство будет висеть ‘вечно’, т.к. перезагрузка ‘наблюдателем’ оставляет самого ‘наблюдателя’ включенным. Функция ‘WATCHDOG_RESET_MANUAL’ обходит это, не используя аппаратную перезагрузку. Однако, ЭТА ФУНКЦИЯ НЕБЕЗОПАСНА и будет работать только в том случае, если прерывания отключены. И код может зависнуть при выполнении прерывания с отключенными прерываниями.

Включает опцию остановки печати с SD при срабатывании концевых выключателей, требует включения через меню LCD-экрана при активации в прошивке.

Babystepping позволяет пользователю двигать осями в небольших пределах независимо от обычного процесса печати. Например, это может быть использовано для смены высоты по Z в реальном времени. Не зависит от концевых выключателей!

#define BABYSTEP_XY //не только по Z, но также и по XY в меню

#define BABYSTEP_INVERT_Z false //true для инверсии движений по Z

Читайте также:  что делать если девушка перестала давать

#define BABYSTEP_Z_MULTIPLICATOR 2 //более быстрые движения по Z

Адванс-константа экструдера. Или Velocity-режим экструдера. (Extruder advance constant (s2/mm3)) Эта настройка должна помочь избавиться от капель на периметрах детали при печати, может быть полезна для Bowden-экструдеров. Подробнее здесь, здесь, здесь и здесь Вкратце о ее работе: экструдер начинает и прекращает давить пластик несколько раньше, чтобы давление в сопле успевало нарастать и спадать в нужное время. Подобная функция есть в Slic3r и, возможно, других сласерах.

#define STEPS_PER_CUBIC_MM_E (количество шагов экструдера/площадь экструзии)

И еще несколько интересных строк из configuration.h:

Увеличение частоты ШИМ вентилятора. Убирает назойливый звук, гл увеличивает нагрев мосфета/микроконтроллера

Использование программного PWM для управления вентилятором, как и для подогревателей. При этом используется очень низкая частота, которая не так раздражает (звуком). С другой стороны, если частота слишком мала, ее нужно увеличить параметром SOFT_PWM_SCALE.

#define SOFT_PWM_SCALE 0

Еще одна функция для съемки процесса печати (активация командой M240) через эмуляцию Canon RC-1 Remote. Подробнее здесь #define PHOTOGRAPH_PIN 23

Поддержка кондитерского экструдера BariCUDA #define BARICUDA

Наиболее полезные, на мой взгляд, функции:

#define EXTRUDER_0_AUTO_FAN_PIN 4

Пара мелочей, которые, возможно, будут нужны при использовании вентилятора обдува на низкой скорости

#define FAN_KICKSTART_TIME 100

Можно поиграться с величиной ретракта при парковке, чтобы чуточку ускорить этот процесс

#define X_HOME_RETRACT_MM 5

#define Y_HOME_RETRACT_MM 7

#define Z_HOME_RETRACT_MM 3

Эта команда значительно ускоряет парковку

Уже неоднократно перезапускал печать из-за неправильного значения z-offset. С помощью этой функции можно будет в реальном времени опустить каретку и не перезапускать печать снова

Эта функция, вероятно, поможет побороться с рассинхроном Z-оси на Prusa i3

Настройки filament sensor’а не стал включать потому, что им будет посвящена отдельная статья.

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

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

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

Источник

Настройка прошивки Marlin

Настройка BLTouch в прошивке Marlin

Настройка BLTouch в прошивке Marlin

Настройка прошивки Marlin (наш канал https://t.me/tevotornadosettings)

После установки и подключения Bltouch, необходимо внести изменения в прошивку. Для этого качаем прошивку и программное обеспечение Arduino IDE. С помощью Arduino IDE открываем файл прошивки и идем на вкладку Configuration.h. Далее ищем следующие строки, и правим их так, как написано здесь:

Есть команда M48

параметры x, y, p, s, v:

(Пример команды по тестированию на повторяемость показаний:

В условии #if ENABLED(AUTO_BED_LEVELING_LINEAR) в строке:

В новых версиях Marlin необходимо еще определить область замера.

// Set the boundaries for probing (where the probe can reach).

#define LEFT_PROBE_BED_POSITION MIN_PROBE_EDGE

#define FRONT_PROBE_BED_POSITION MIN_PROBE_EDGE

Если этого не сделать, то при отправки команды G29 в принтер, он отхоумится(перейдет в домашнюю точку) и остановится, а в терминальном окне будет видно, что он не знает границ замера и просит их указать. Если просто раскомментировать указанный фрагмент настроек, то при компиляции получим ошибки, как на пример:

FRONT_PROBE_BED_POSITION is outside the probe region.

По этому корректируем FRONT_PROBE_BED_POSITION вот таким выражением

BACK_PROBE_BED_POSITION is outside the probe region.

Z_SAFE_HOMING enable – парковка в центре стола чтобы не повредить bltouch

На вкладке Configuration_adv.h включаем babystep:

#define BABYSTEP_ZPROBE_OFFSET

На этом с прошивкой все, можно компилировать и загружать прошивку в принтер.

Источник

OctoPrint Baby Stepping – Enable Live-Z Probe Offset

Beginners often have issues with the first layer when starting a print. It’s either a bit too high or too low causing issues with layer adhesion.
If the nozzle is too high, the print will not adhere to the heated bed properly. If it’s too low there’s a risk of scratching the print surface or making the print stick too well making the removal harder.

By adding the OctoPrint Baby Stepping feature, you will be able to change the distance between the nozzle and heated bed and have it just right.
If you need help with installing OctoPrint first, I previously covered the installation process of OctoPrint on the Raspberry Pi with OctoPi.

Baby Stepping is a feature from Marlin Firmware that allows you to move the Z-axis up or down in small increments in order to fine-tune the first layer height.

This feature is usually disabled by default in Marlin but can be enabled when recompiling the firmware. If you want to use the OctoPrint Baby Stepping feature described in this article, you must have this feature enabled in your current firmware.

I’ve read a few posts online where people were saying that OctoPrint Baby Stepping is not possible, but after some research, I found this post with the code needed to achieve this functionality

Читайте также:  что делать если клавиши плохо нажимаются на ноутбуке

Add OctoPrint Baby Stepping

Download Putty, enter the IP of your Raspberry Pi then click Open

In the Login prompt, you need to enter the credentials for OctoPi. The default user is pi and the password is raspberry. Please note that the password will not be shown when typing.
If you changed the SSH credentials when you installed OctoPrint, you need to use the new credentials.

If you enter the credentials correctly, the servers’ SSH fingerprint prompt will show up. Click on Yes.

Enter the sudo nano

/.octoprint/config.yaml command and press Enter.

Enter your sudo password. This is the same password you used for logging in.

Using the arrow keys, navigate to the end of the file. Copy the code below and paste it in the terminal window right under the stream line

Save the edited file by pressing ctrl+x then press Y to confirm.

Enter the sudo service OctoPrint restart command to restart the OctoPrint service.

Navigate to the OctoPrint interface and now you will see the Live-Z Probe Offset section where you can use baby stepping during the print.

Wrapping Up

Now that you added OctoPrint Baby Stepping, a perfect first layer will be easier to achieve.
Check back soon for more guides about OctoPrint and added functionality.

Источник

Display current/total babystepping offset when babystepping #11743

Comments

thehans commented Sep 6, 2018 •

Description

When adjusting babystepping, the menu starts with a value of zero. If I adjust some, then go back into babystepping to adjust once more, the offset is reset to zero. Its not clear if the firmware has actually reset the offset or if its being added to the previous offset. I think it would be most useful if the previous babystepping offset was kept when re-entering the menu, so the cumulative adjustment is fully clear.

Marlin 1.1.9 on RAMPS, with «Reprap discount smart controller»

Steps to Reproduce

Expected behavior: [What you expect to happen]
Babystepping screen shows the current total babystepping offset applied.

Actual behavior: [What actually happens]
Babystepping starts at 0.000 every time, regardless of previous adjustments.

Additional Information

The text was updated successfully, but these errors were encountered:

thinkyhead commented Sep 12, 2018 •

Could be useful. But under what circumstances should the Z babystepping offset be cleared back to zero?

thehans commented Sep 12, 2018

Upon machine reset I suppose (RAM clear).

I mainly picture this as a tool to adjust first layer height. In that sense if you found a good height why not keep it there, adjusting incrementally? Also would be nice if that babystep offset could be optionally saved to eeprom, and would be applied to the home offset automatically in the future.

DrywFiltiarn commented Feb 26, 2019 •

I have to agree with @thehans on having an option to save the babystepping set and also on not clearing it as you leave the babystepping menu. Resetting back to zero makes sense in case the machine would be reset. As it is currently after doing an adjustment, then going back to homescreen and then doing another adjustment, you have no clue of what exactly the applied Z offset is.

In terms of saving the babystepping result to eeprom and restoring on machine restart would make sense as well. I have been struggling with the «bed z» option in the settings, and I can only conclude that no matter what value I set it to be it a positive or negative value it doesn’t do anything at all. Whereas babystepping actually results in what I would expect the «bed z» configuration should do as well.

Roxy-3D commented Feb 26, 2019 •

One answer might be to display both numbers. There is plenty of room on the Baby Step screen to do that. It could be made to display something like:

Unless there is very real value to saving a value in the EEPROM, that should be avoided. The EEPROM has a limited Erase/Write cycle count. We don’t want to wear out the user’s EEPROM.

Источник

Сказочный портал