fade height marlin что это

Unified Bed Leveling

This page is a work in progress, based on Marlin 1.1.x. Corrections/improvements are welcome.

UBL Startup Guide

The Unified Bed Leveling (UBL) system is a superset of the previous leveling systems.

The main improvements over the previous systems are:

Synopsis

Currently an LCD display with a rotary encoder is recommended. Note that the MKS TFT 2.8 and 3.2 do not actually fulfill the LCD requirements. The main documentation below assumes that a conforming LCD and a z-probe are present. See the no-lcd addendum for information on using UBL without a display, and the no-z-probe addendum to get UBL working without a z-probe installed. Note that operation without an LCD is still work-in-progress, and subject to change.

UBL is a superset of previous automatic leveling systems, but it does not necessarily supersede them in all cases. Its goal is to allow the best features of the previous leveling schemes to be used together and combined, as well as providing a richer set of commands and feedback for the user. However, this functionality comes at a cost of program space. Compared to bilinear leveling, for example, the difference might be 50 kB for UBL vs. 5 kB for bilinear – and for an equally precise mesh the printed results could be quite similar. With that said, the cost in program space is likely only a concern for more resource constrained parts like the 128k ATMegas.

The printer must be already fully functional and tested, with a well-constrained movement system. The more physically level and straight the bed is, the better your results will be. See Configuration.h and Configuration_adv.h for all of UBL’s settings.

You should be able to successfully print a small object at the center of the bed with bed leveling turned off. It’s very important to verify that your Configuration.h settings make this possible before trying to bring up UBL. Most problems bringing up the UBL Bed Leveling system occur when this step has been ignored. Please pay particular attention to your Z_PROBE_OFFSET_FROM_EXTRUDER value. Usually it’s best to home the Z-Axis in the center of the bed. But wherever you decide to home, the Z value reported on the LCD (or with M114 ) should be very close to 0.0 mm when the nozzle is just touching the bed. Failure to calibrate Z_PROBE_OFFSET_FROM_EXTRUDER properly will result in dimensional errors in your printed parts.

The following command sequence can then be used as a quick-start guide to home, level, and then fine-tune the results. These commands are for a ‘normal’ setup; see the relevant addenda for concerns and gcode sequences related to setups without an lcd or z-probe.:

Scope

The UBL system contains a suite of tools with multiple options intended to cover almost any situation. This document is aimed at getting a new user acquainted with the most used tools and options needed to produce a high quality print.

The intent is to provide a new user with enough knowledge of the UBL system that they can go to the detailed documentation and start working with the other tools and options as needed.

The 3-point leveling option is only covered to the extent of using it to transform an already-measured mesh.

Theory

UBL projects a rectangular grid over the print bed. A Z height is measured at each point (confluence) in the grid.

Linear moves are split at grid boundaries. For each segment the Z offset at start and end are calculated. The Z compensation varies linearly from the start to end of the move.

Note that kinematic systems like Delta and SCARA already split moves into very small segments, removing the need to split moves at grid boundaries. In the future, moves may be split into smaller segments on Cartesian also to produce more fine-grained Z height changes through the move.

The Z compensation on any grid line is the simple linear interpolation of the Z offsets of the two corners it connects.

The Z compensation for any point within a grid box is produced by calculating the bilinear interpolation of the Z offsets of the four corner points. See the addendum Bilinear computation for details.

Tools are provided that can populate the Z compensation values at the mesh points via automated probing, manual probing, and manually entering a value. The intent of UBL is to allow the entire printable area of the bed to have usable Z compensation values.

The initial auto bed leveling procedure rarely produces great results across the whole bed. Fine editing tools are used to tune the mesh more finely. UBL includes a test print utility to aid in the tuning process.

Process overview

To create a mesh that produces good first-layer results over the entire bed, follow this procedure:

An LCD controller with rotary encoder, while not required, substantially simplifies the process.

The printer (and LCD) must be fully functional before starting this process.

UBL Configuration

Enable these options:

Z Probe XY offsets should be set to within 1mm of the measured distance from the nozzle to the probe. Ideally the error should be less than +-2mm. Errors of 5mm have been known to cause difficulties in fine-tuning.

Travel limits & bed size tell the system where the nozzle can reach. This is used during automated probing to determine what points the PROBE can reach.

All printers require these settings, which specify the physical movement limits for the nozzle:

Ideally the mesh bounds will match your printable area perfectly. In practice it’s a good idea to pull these in a bit with MESH_INSET if the printable area goes right up to the edge of the bed. This helps keep the probe from missing the bed.

3 x 3 through 15 x 15 meshes are supported. X & Y dimensions do NOT need to be the same. First time users should start out with a small mesh until they are familiar with the tools. Once you’re proficient then move to larger meshes. 7 x 7 seems to be a popular size for a first attempt at a final mesh.

So however bed size and printable radius are defined, make sure that your mesh grid is defined so that a full circle of ‘extra’ mesh points lie outside of the printable radius.

Marlin 1.x

Marlin 2.x

Commands

UBL has a series of “phase” commands that roughly follow the mesh building process. Some are heavily used, some aren’t.

There are several options that can be applied to each of the phase commands. These are the most common:

Automated probing

The first step in the process is to use the Z probe to populate as much of the mesh as possible.

To start the process issue G29 P1 or, if you want to see the values as they are measured, G29 P1 T

If the EEPROM hasn’t been initialized then it’ll tell you to issue the M502, M500, M501 sequence. If that happens then you’ll need to re-issue the G29 P1 command.

If a G28 hasn’t already been done then the G28 sequence will automatically be done followed by the G29 P1 probing.

No further action is required of the user for this phase.

If you do a G29 T or M420 V command you’ll most likely see areas that do not have Z compensation values. See the addendum Mesh area for details.

Manual probing

This optional step uses the encoder wheel to move the nozzle up and down in 0.01mm steps. BE VERY CAREFUL when doing this. Nasty things can happen if too much force is applied to the bed by the nozzle.

Manual probing consists of lowering the nozzle until the nozzle comes in contact with a feeler gauge. Usually the feeler gauge is a piece of paper or a business card. It’s better if the gauge is a piece of plastic that’s hard but still has some flex. Even better is a mechanic’s metal feeler gauge but those are usually too short to be convenient.

The idea is to stop lowering when there is the first sign of resistance to moving the gauge. It is very important to be consistent in the amount of force/resistance from point to point.

The first step is to measure the thickness of the feeler gauge:

Issue G29 P2 B T to start.

The nozzle will move to the center of the bed.

Use the encoder wheel to move the nozzle until you feel a small amount of resistance. This is the resistance level you’ll want to aim for when manually probing.

Click the encoder button.

Remove the feeler gauge.

Lower the nozzle VERY SLOWLY until the nozzle just touches the bed.

Click the encoder button.

The nozzle will move to the first unmeasured location. Use the encoder to lower the nozzle until the desired resistance is felt with the feeler gauge. Click the encoder. The nozzle then moves to the next unmeasured location. Repeat until all locations are measured.

See the host interface screen for the grid position you’re currently probing.

When done, you can use G29 S to save the mesh to EEPROM.

Filling in the mesh

Again, G29 S[n] will save the mesh to EEPROM.

Test print

Once you have a reasonable looking mesh then it’s time to do a test print.

The easiest way to do this is to use the G26 command. There are several options for the G26 command. (See G26 for full details.)

G26 Bxx Hyy F1.75 L0.2 S0.4 will usually get you something reasonable:

Fine-tuning of the matrix

Look over the results of the G26 print and note where adjustments are needed.

The values in the mesh indicate how far the nozzle needs to move along the Z axis to compensate for imperfections in the bed. Positive values mean that the nozzle needs to move away from the bed (“up”) and negative values mean that the nozzle needs to move towards the bed (“down”). Thus, if the G26 print shows that for a specific mesh point the nozzle is too close to the bed (the lines are “squished” or the nozzle hit the bed when printing the test pattern) the value of the mesh point should be increased. If the nozzle is too far away from the bed (lines are too thin or not even sticking to the bed) the value of the mesh point should be decreased. This may cause the mesh point value to change from positive to negative or vice versa.

If UBL_MESH_EDIT_MOVES_Z is enabled it is also possible to use a piece of paper or a feeler gauge to adjust the position. Use a command of the form G29 P4 Hxxx where xxx is the thickness of the feeler gauge (or piece of paper) being used to adjust the nozzle height. For example G29 P4 H0.1 is a good option to use with a piece of paper.

To edit multiple points move the nozzle close to the first point and issue G29 P4 T Rxx where xx is the number of points you want to edit. You can look at the host interface screen to see where in the grid you are currently editing.

Press and hold the encoder button/wheel when you are finished.

There are options ( G29 P4 X. Y. ) to make it easier to move to the desired probe locations. For example G29 P4 X110 Y110 will move to the grid point closest to the center of a 220x220mm bed.

It’s probably a good idea to issue a G29 S command to save the mesh to EEPROM at this stage.

Issue a G29 S command periodically to save your mesh.

As you print parts you may notice that further fine-tuning is needed. The G29 P4 T command can be used anytime to make adjustments.

Addenda

UBL without an LCD

If you don’t have an LCD with encoder, or you have something like a MKS TFT that doesn’t behave like a proper display, then you will need to modify this process slightly.

The same cautions apply to using the G26 test print command; if something goes wrong you want a way to quickly abort the process before your print head is driven into the bed.

G29 P2 (manual probe) is not available without a functional LCD, so instead of the sequence above users should skip directly from G29 P1 (auto-probe) to G29 P3 (smart fill). Likewise, G29 P4 R. cannot be used to interactively edit the mesh, so M421 must be used instead to manually adjust individual mesh points. With UBL, the M421 Q form can be used to offset the specified mesh point, avoiding the need to specify absolute values.

In summary, initial set-up without an LCD might look like this:

UBL without a z-probe

So in summary, initial set-up of a mesh might look like this:

Bilinear computation

MESH areas

After G29 P1 your matrix will probably have areas that do not have Z compensation values. This is because the probe can’t be positioned in these areas. The only ways to avoid this are:

If your probe is in front and to the right of your nozzle then the matrix will look like one of these.

fade height marlin что это

Further Optimization

Going forward, we’ve been thinking anew about boundary-splitting and delta-style line-splitting. On kinematic systems, moves are split into small segments, so the nozzle already closely follows the (bilinear approx.) curve of the bed on those machines. Thus, on kinematic systems we can theoretically skip the boundary-splitting step.

At the same time, we also realize that for mesh-based bed leveling, splitting up lines into smaller segments has extra benefit for Cartesians too. So, if we simply enable move-splitting for cartesians when mesh leveling is enabled, we can skip boundary-splitting while also improving leveling accuracy. Since it requires some extra computation, this ought to be an optional feature.

Источник

Fade height marlin что это

Подключение датчика BLTouch к robin nano v1.1

Датчик BLtouch используется для построения карты высот стола. Общую информацию о работе и подключении можно посмотреть в видео:

BLTouch от Trianglelab. В комплекте с датчиком идут провода, но их длины не хватает для подключения к плате на FB4S. Для удлинения проводов можно использовать еще один комплект удлинителя

Для надежного подключения к плате можно использовать JST XH 2.54 3 Pin коннектор.

Для установки на другую голову, необходимо сделать кронштейн для датчика. Основные требования:

Принцип работы датчика

У датчика есть управляемый щуп, который он может выдвигать и задвигать по команде. Так же он может с высокой точностью и повторяемостью определять прохождение щупом «точки детекции». Когда стол толкает вытянутый щуп, в определенный момент он достигает «точку срабатывания» и датчик фиксирует именно это. Bltouch не замеряет высоту от стола или насколько вытянут щуп. Он лишь сообщает МК, что щуп достиг «точки срабатывания», но делает это с погрешностью в тысячные доли миллиметра. МК знает высоту по Z и по тому, где сработал датчик, определяет высоту до стола в этом месте.

В данном примере используется метод Unified Bed Leveling, который сочетает приемущества остальных способов, позволяет строить, редактировать и сохранять сетку.

У датчика 5 проводов, которые можно разделить на две группы: управление щупом (серва) и концевик. Обычно провода обозначаются цветом.

Для прогнозируемой и понятной работы Bltouch, парковку оси Z следует сделать по датчику, а не по концевику. В данном случае, чтобы не вносить лишних изменений и оставить возможность отключить Bltouch только прошивкой, не изменяя подключения проводов, датчик подключен в разъем ZMax (пин PC4).

Управление выдвиганием щупа подключено в разъем PB2 (обозначен на плате).

Выбор ног для подключения может быть произвольным, однако надо учитывать, что на плате Robin Nano разъемы ZMin, Zmax, PWR-DET, MT1-DET, MT2-DET выполненый как вход. Выражается это в схемотехнике на плате:

fade height marlin что это

Разъем PB2 выполнен как выход, с токоограничивающим резистором R38 номинало 100 Ом.

На плате разъемы расположены следующим образом:

fade height marlin что это

Настройки приведены для сборки под FB4S.

Ноги МК на которые подключен датчки (Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h):

Файл Marlin/Configuration.h, секция «Z Probe Options».

Поскольку используется парковка по BLtouch, а не по концевику, то нужно включить:

Отключить ручной режим, включить BLTouch

Смещение сопла относительно датчика (зависит от физического положения датчика X,Y,Z). При первоначальной настройке Z можно поставить 0.

fade height marlin что это

В моем случае, как видно из чертежа, датчик смещен на 37 мм по оси X в положительную сторону и на 20 мм по оси Y в отрицательную.

Измерять 3 раза и выпадающее значение отбрасывать:

Включение функции теста точности датчика (позволяет оценить точность работы датчика командой M48 ):

Задать способ построения сетки. Используется рекомендуемый метод Unified Bed Leveling

Включить Z_SAFE_HOMING и задать точку для парковки:

Задание границ для замеров

Можно задать отступы и границы, куда может дотянуться щуп датчика. При парковке головы по концевикам осей X и Y на FB4S сопло оказывается вне пределов стола по оси Y. По оси X сопло не может достигнуть край стола, в моем случае оно смещено на 13мм. Для упрощения расчетов, я применил коррекцию только по оси Y:

Исходят из этих настроек, точка 0,0 для сопла будет совпадать с позицией концевика по оси X, и на 6мм сдвинута по оси Y от точки, где срабатывает концевик.

В моем случае, никаких дополнительных ограничений по перемещению датчика нет:

Первичная настройка датчика

Или из меню принтера, «initialize eeprom».

Для лучшей геометрии моделей можно выровнять плоскость стола параллельно плоскости движения головы в плоскости XY. Для этого нужно выбрать 4 точки по краям стола. В моем случае это точки с координатами (0,25), (208,25), (208,200), (0,200).

Максимальнальная координата по Y, в моем случае, ограничена перемещением головы, я просто использовал максимальное значение (200).

Перемещение головы выполняется командой G1.

Замер высоты выполняется командой G30. Будет произведен замер в текущем положении головы и в ответе на команду будет текущая высота по Z.

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

Примерный список команд:

В качестве альтернативы ручному методу с выполнением команды G30, можно использовать функцию ASSISTED TRAMMING. Работает это так: датчик замеряет высоту по 4 точкам и, зная шаг винтов регулировки стола, сообщает на сколько какой винт нужно повернуть.

Настройки функции в Marlin/Configuration_adv.h:

Запускается замер командой G35. После замера 4 точек будет выведен результат:

Построение сетки поверхности стола:

Начнется измерение высоты в точках, куда возможно дотянуться щупом. В моем случае, для сетки из 100 точек (10*10) щуп смог дотянуться до 72. Посмотреть результат измерения можно или командой «G29 T» или «M420 V». После замера ответ выглядит приблизительно так:

fade height marlin что это

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

Эта команда, заполняет «один шаг» в сетке, поэтому для заполнения сетки полностью, ее нужно выполнить несоклько раз. Между запусками, можно посмотреть результат командой «G29 T». В моем случае, запустить команду нужно было дважды. В результате получилась полная сетка поверхности:

fade height marlin что это

Теперь результат можно сохранить. Есть возможность сохранить несколько сеток, указав номер.

Проверить, что настройки сохранены: перезагрузить принтер и посмотреть состояние:

fade height marlin что это

В выводе команды должна быть сетка с актуальными значениями, состояние «Mesh is valid», а так же «Bed Leveling ON»

В процессе эксплуатации стол может немного изменять свое положение. Для быстрой коррекции в стартовый код можно добавить команду измерения наклона стола по 3-м точкам. Датчик проведет измерение в 3 точках (можно указать больше) и сделает «наклон» сохраненной сетки под эти измерения. Для того, чтобы корреция происходила после нагрева стола, но до нагрева сопла, нужно настроить стартовый код в слайсере. Обычная логика такая: если слайсер не находит в стартовом коде команд управления температурой (M104, M109, M140, M190), он их добавит автоматически. Если какие-то из этих команд есть, он соответсвенно не будет добавлять команды для нагрева стола или сопла. Это позволяет управлять очередностью нагрева. А для того, чтобы не править стартовый код при изменении температуры, в командах можно указать макросы, которые слайсер заменит на соответствующие значения.

А код для прочистки сопла разместить в стартовом g-код для филамента.

Настройка Z probe offset

Окончательная настройка Z probe offset делается на тестовой печати. Нужно запустить пробную печать небольшой модели с большим количеством линий юбки. Тестовый кубик с 30 линиями юбки отлично подойдет. Во время печати юбки из меню Tune-> BabyStepping изменяя высоту стола нужно добиться правильной укладки линий.

BabyStepping это возможность изменять высоту стола небольшими шагами (по умолчанию по 0.01 мм). Эти изменения не влияют на расчеты и никак не учитываются прошивкой, это просто возможность «подвигать» мотор оси Z, равносильно тому, что повернуть винт оси рукой. Поэтому значение BabyStepping сбрасывается при парковке.

Когда уровень стола будет устраивать, нужно запомнить итоговое значение BabyStepping и остановить печать. Полученное значение нужно прибавить к Z PROBE OFFSET и сохранить настройки в eeprom.

Сохранение сетки и восстановление после прошивки

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

А установить значение для конкретной точки:

После обновления прошивки или просто сброса eeprom достаточно запустить этот файл «на печать» и нужные значения будут восстановлены.

Источник

«ENABLE_LEVELING_FADE_HEIGHT» adds hight to printed object :- Who is the expert on Bi Linear? #7456

Comments

moth4017 commented Aug 8, 2017 •

Bug Report

Marlin version RC8 1.14
Using bed leveling Bi-linear
enable «ENABLE_LEVELING_FADE_HEIGHT»
Setting fade height via start up script:-
G1 E-5 F20 ;(to retract at 90mm/s)1
M502 ; load defaults from eprom
M500 ; save to eprom
M111 0 ;S247 Debug level
G28 ; home All
G29 ; probe bed to level
M420 Z6 ; fade height
M851 Z1.1; 1.2 is closer to the bed than 1.1
;do prime
G1 X1.0 F2000
G1 Z0.1 F1000
G1 Y60.0 E4.0 F1000.0 ;prime
G1 Y100.0 E8.5 F1000.0; prime
G92 E0

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

richgain commented Aug 10, 2017

I have the same issue with the 1.1.x Bugfix build from 8/8/17. I have just printed a whole batch of parts that should have been 15.8 mm tall, but are actually 16.6 mm tall and will not fit into the 16.2 mm slot designed for them.
On inspection,it is clear that the lowest 2 mm of every part has fatter layers than the upper part of the print.
My startup script includes:
M420 S1
M420 Z2

richgain commented Aug 10, 2017 •

Sorry, I should have said «the lowest 10 layers of every part have fatter layers than the rest».
Since I printed using 0.2 mm layer height, the first 10 layers should measure 2.0 mm, but actually measure more than 3 mm.

fade height marlin что это
fade height marlin что это

Roxy-3D commented Aug 10, 2017

richgain commented Aug 10, 2017

Hi Roxy
Yes, that is almost exactly the case.
Recv: echo:Mesh Bed Leveling:
Recv: echo: M420 S1 Z0.00
Recv: echo: G29 S3 X1 Y1 Z-0.82500
Recv: echo: G29 S3 X2 Y1 Z-0.82500
Recv: echo: G29 S3 X3 Y1 Z-0.80000
Recv: echo: G29 S3 X1 Y2 Z-0.80000
Recv: echo: G29 S3 X2 Y2 Z-0.72500
Recv: echo: G29 S3 X3 Y2 Z-0.70000
Recv: echo: G29 S3 X1 Y3 Z-0.87500
Recv: echo: G29 S3 X2 Y3 Z-0.80000
Recv: echo: G29 S3 X3 Y3 Z-0.65000

What does that mean?
Is it a bug or a feature?
Thanks,
Richard

Roxy-3D commented Aug 10, 2017

The reason I asked is this. The bed leveling system moves the nozzle up or down to track the bed based on the mesh point values. If the bulk of your bed has large negative mesh point values, the nozzle is going to be moved down from the first layer height to track the bed and get good adhesion.

The amount the nozzle moves down ‘Fades’ as you go up to 10 mm. So. The first 10mm of layers are trying to fill in the extra space. And after 10mm of Z Height, no correction is being applied any more.

moth4017 commented Aug 10, 2017 •

Hi Roxy 3D
i have a 6mm thick aluminium bed 350 x 350mm and this is the flattest piece i could get in NZ

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *