Внимание!!!
Хоть я и старюсь проверить данные конфиги полностью на сколько это возможно, все еще существует шанс что что-то может пойти не так и это может привести даже к поломке принтера. Ставьте конфиги на свой страх и риск!!!
Данные конфиги были проверены на слайсерах Orcaslicer 2.3.2 RC, Orcaslicer 2.3.1, 2.2.0 и QidiStudio v02.04.01.11.
Файлы, которые были нарезаны с использованием сторонних/стоковых конфигов и конфигов версии 0.4.2.2 или ниже не поддерживаются на этой версии и их надо заново нарезать!!!
Так как в OrcaSlicer 2.3.2 было переделана большая часть в плане ММУ (На основе данных из Orcaslicer 2.3.2 RC), то для OrcaSlicer 2.3.1 и OrcaSlicer 2.3.2 будут отдельные описания настроек профиля и g-code, и они не буду совместимы между собой (На данный момент). Если вы хотите использовать обе версии, то вам придется делать два профиля принтера. Главное отличие в том, что в новой версии OrcaSlicer продувка сопла происходит всегда в корзине вне зависимости от наличия черновой башни.
Была добавлена поддержка QIDIBox как для Orcaslicer, так и для QIDIStudio, однако основной упор поддержки от меня идет именно для Orcaslicer.
Файлы который были нарезаны с использованием сторонних/стоковых конфигов и конфигов версии 0.3.0.2 или ниже не поддерживаются на этой версии и их надо заново нарезать.
Установка версии 0.4.0 я рекомендую с нуля. Если у вас стоят старые, либо сторонние конфиги, то желательно откатится сначала на сток.
Если у вас принтер печатает на сток конфигах без проблем и вас все устраивает не имеет смысла ставить эти конфиги. Эти конфиги больше для энтузиастов.
Данные конфиги проверены только на той версии прошивки которая указана в инструкции. Версии ниже или выше могут не поддерживаться.
Данные конфиги по большей части были проверены только с Orcaslicer. Их работоспособность была проверена также и на QIDIStudio, но из-за нестабильности самого слайсера я не гарантирую их 100% работоспособность и мою поддержку в случае проблем в нем.
Изменения 0.4.3.4
Изменения 0.4.3.3
Изменения 0.4.3.2
Изменения 0.4.3.1
Изменения 0.4.3
Изменения 0.4.2.2 (0.4.1.2)
Изменения 0.4.2
Изменения 0.4.1.1
Изменения 0.4.1
Обновление с 0.4.3.* до 0.4.3.4
Были изменены следующие файлы:
«alt_gcode_macro_box.cfg»
«alt_gcode_macro.cfg»
А также g-code смены прутка (Пункт 3.1.1.4/3.2.1.4 установки.) для обоих слайсеров.
Для обновления достаточно заменить только их.
Если вы планируете использовать OrcaSlicer 2.3.2 то создать отдельный профиль принтера по пункту 3.3.
Обновление с 0.4.* до 0.4.3.3
Были изменены следующие файлы:
«alt_gcode_macro.cfg»
«alt_gcode_macro_box.cfg»
«alt_plr.cfg»
«alt_settings.cfg»
А также стартовые g-code (Пункт 3.1.1.1/3.2.1.1 установки.) и g-code смены прутка (Пункт 3.1.1.4/3.2.1.4 установки.) для обоих слайсеров.
Для обновления достаточно заменить только их.
Также необходимо добавить новый файл «alt_sc.cfg» рядом с конфигами и если вы используете skew correction, то настроить в нем свои значения.
В файле printer.cfg в блок [temperature_sensor Chamber_Thermal_Protection_Sensor] изменить в имени все заглавные буквы на строчные. Иначе климат контроль работать не будет. (Пункт 1.2.7 установки.)
Так как был изменен «alt_settings.cfg», то рекомендую отдельно сохранить старый перед заменой, чтобы потом было легче перенести ваши настройки, которые вы уже сделали в «alt_settings.cfg»
Если вы планируете использовать OrcaSlicer 2.3.2 то создать отдельный профиль принтера по пункту 3.3.
Нарезки на старых версиях с высокой вероятностью могут не поддерживаться!!!
Особенности
Большинство особенностей, перечисленных тут и не только либо отключаются, либо настраиваются в файле «alt_settings.cfg».
Измененная установка
Установка конфигов была переделана. Теперь в самом принтере изменяются всего 2 файла, а остальные просто дополняются. Это значительно упрощает откат до стоковых конфигов принтера.
Также добавлена простая установка настроек для доп. вентилятора в голове и btt sfs.
Поддержка QIDIBox
Данные конфиги имеют поддержку QIDIBox как для использования в Orcaslicer, так и в QIDIStudio.
Также было добавлено несколько полезных макросов для работы с боксом.

Более подробно о них будет дальше.
Авто подбор шейперов
Доработан авто подбор шейперов:
Теперь он происходит по 3 точкам и диапазоне частот от 20 до 100 гц.
Также, при включенной опции, по окончанию калибровки шейперов будут построены графики. Они буду расположены прямо рядом с конфигами. Работает только с кнопки на экране или по команде «M901».

Внимание!!!
Для построения графиков надо установить зависимости командой в ssh: «pip install numpy matplotlib». Либо просто выполните макрос «INSTALL_REQ_LIB».

PLR
Был доработан PLR (возобновление печати после обрыва питания).
Теперь восстановление печати может происходить сколько угодно раз за одну печать.
Также добавлена поддержка возобновления печати если обрыв произошел из паузы: принтер также восстановит печать и уйдет в паузу.
Внимание!!!
Если, обрыв питания произошёл при движении стола, то велика вероятность что при возобновлении печати, позиция стола будет определена неправильно.
Возобновление печати после обрыва питания не дает 100% гарантию и точность восстановления печати. Шанс мини сдвигов все равно очень велик.
Загрузка/выгрузка филамента
Макросы загрузки и выгрузки филамента также были доработаны.
Теперь, при очистке сопла, ускорения фиксированы.
Добавлена настройка дельты по температуре при которой начинается процесс очистки сопла.
Добавлен признак по температуре для определения ТПУ (опционально), если будет определен что заряжен ТПУ, то будут применены более мягкие скорости экструдера и мягкий катер. При отключенной опции определения ТПУ мягкие скорости и катер будут применены всегда.
При загрузке и выгрузке филамента добавлена опция на проверку наличия филамента через датчик.
При выгрузке филамента добавлена экспериментальная опция, которая обрезает филамент с острым кончиком.

Катер филамента
Также был доработан для работы с очень жесткими и мягкими пластиками.
Его ускорения также теперь фиксированы.
Хоуминг
Переписан хоуминг.
Теперь стол опускается при любом хоуминге кроме по Z.
Отдельный хоуминг по Z происходит в точке нахождения головы.
Начало печати
Добавлена возможность настройки ожидания нагрева стола и камеры, а также таймер сверх ожидания после нагрева перед калибровкой.
Добавлена проверка наличия филамента перед стартом печати.
Очистка сопла перед печатью происходит с позиционированием стола в точке очистки.
Прайминг линии вынесены за область печати и их высота по Z также позиционируется.
Добавлена возможность отключить очистку об ушко пластины и силиконовую подушку. Это может быть полезно если вы хотите использовать, например, стекло.
Добавлены различные проверки для бокса.
Звуковые оповещения
Различные звуковые оповещения были добавлены в конфиги. На данный момент они присутствуют при:
включении принтера или перезапуске прошивки
срабатывании датчика филамента
окончании загрузки/выгрузки пластика
окончании калибровки шейперов
окончании и прерывании печати
Динамическое освещение
Добавлена возможность настроить разное освещение камеры в разных ситуациях:
при включении принтера
при печати
при окончании печати
при прерывании печати
при паузе
Включение/выключения algo_app через веб-интерфейс
Была добавлена возможность отключения в любой момент нейрослужб для экономии ресурсов хоста.
Также их можно в любой момент включить обратно, все это делает через кнопку макросов.
Для отключения вызовите макрос «REMOVE_ALGO_APP», для включения «ENABLE_ALGO_APP».

Перезагрузка экрана принтера
Добавлена возможность перезагрузить отдельно экран принтера без перезапуска самого принтера. Для этого в веб интерфейсе выполните макрос «REBOOT_QIDI_SCREEN».

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

Макросы, которые подписаны как «Служебный!!!», можно выполнять только если вы понимаете, что делаете.
Макросы, которые подписаны как «Не выполнять!!!», выполнять запрещено в любом случае.
Отключение M106
Добавлена возможность отключить управление вентиляторами через M106 который использует слайсер при нарезке. Управление вентиляторами через ползунки также продолжает работать. Это может быть полезно если вы ошиблись с охлаждением и вам надо вручную его переделать прямо во время печати.
Для отключения вызовите макрос «DISABLE_M106», для включения «ENABLE_M106».

Окончание или прерывание печати, а также перезапуск прошивки автоматически вызовут «ENABLE_M106».
Создание символьной ссылки на каталог mks
Добавлена возможность создать символьную ссылку на каталог mks прямо во флюиде для возможности последующего редактирования или скачивания системных файлов.

Переделан таймлапс
Была добавлена возможность настроить таймлапс, в том числе и положение головы для создания кадра.
Четыре варианта карты стола
Было добавлено 4 варианта карты стола при печати:
1. Одна карта.
В этом варианте будет использоваться всего одна карта с именем "default".
Имя настраивается в «alt_settings.cfg».
Если карта с таким именем не будет обнаружена принтером, то он перед печатью сделает карту всего стола и сохранит ее под этим именем.
2. Построение адаптивной карты через мой макрос.
В этом варианте перед печатью каждый раз будет сниматься адаптивная карта стола под размер печати первого слоя.
Параметры точности настраиваются в файле «alt_settings.cfg».
Почти полная автоматика и не требует калибровок.
Имя карты будет "my_kamp".
3. Построение адаптивной карты через KAMP.
В этом варианте перед печатью каждый раз будет сниматься адаптивная карта стола через KAMP.
Необходимо чтобы в слайсере была включена галка исключения моделей.
Параметры точности настраиваются в «printer.cfg» в блоке [bed_mesh].
Имя карты будет "kamp".
4. Массив карт.
В этом варианте будет создаваться карта с именем из префиксов под каждую температуру стола и камеры.
Имя карты будет "@prefix@_B@BEDTEMP@_C@CHAMBER@", где @prefix@ - это первикс указанный в переменной "variable_bedmesh3_name", @BEDTEMP@ - это температура стола, @CHAMBER@ - это температура камеры.
Например, для дефолтного префикса с температурой стола в 95 и камерой в 60, имя карты будет "PEI_B95_C60", если карты с таким именем не будет в памяти, то принтер сделает детальную карту всего стола и сохранит ее с этим именем, после чего будет загружать ее, когда печать будет происходить при температуре стола в 95 и камеры в 60.
Первый префикс настраивается в «alt_settings.cfg».
!!!Внимание!!! Используйте этот режим только если вы уверены, что ваша карта стола при одной и той же температуре стола и камеры будет всегда одинаковая.
Ночной режим
Была добавлена возможность включения ночного режима, он же тихий режим.
!!!Внимание!!! Данный режим хоть и был проверен, он все еще является экспериментальной опцией. Он требует тонкой настройки и его использование может привести к ухудшению качества печатаемой модели при его неправильной настройке, которая делается индивидуально.
Для включения вызовите макрос «NIGHTMODE_ON», для отключения «NIGHTMODE_OFF».

Перезапуск принтера автоматически отключит ночной режим.
Включать и отключать ночной режим можно до, во время и после печати.
На данный момент ночной режим может:
Ограничить ускорения
Ограничить скорости
Изменить освещение камеры
Отключить бипер
Ограничить скорости вентилятора обдува модели, бокового вентилятора и вытяжки
Отключить нагреватель камеры (только во время печати)
Изменить токи двигателей по XY
На данный момент в ночном режиме по умолчанию отключается только свет. Все остальные параметры надо вручную настроить в «alt_settings.cfg», там же и более подробное описание.
На самом деле изменений куда больше, некоторые из них вы найдете при изучении файла «alt_settings.cfg», а некоторые вы заметите только либо через время, либо через анализ кода макросов.
Резервная копия
Перед установкой данных конфигов, я очень рекомендую сделать резервные копии ваших файлов из флюида. Нужно сделать резервные копии следующих файлов:
«printer.cfg»
«officiall_filas_list.cfg»
Также, я рекомендую сделать копию вашего профиля принтера, так как в нем будут редактироваться g-коды.
В папку backup я на всякий случай положил все сток файлы конфигов с текущей версии прошивки.
Установка
Шаг 1. Установка конфигов
1.1 Через флюид или через ssh закидываем с заменой все файлы и папки с файлами в них.
Если будете делать через ssh, то они находятся по пути «/home/mks/printer_data/config/».
Если вы используете RFID метки, то файл «officiall_filas_list.cfg» берите из отдельной папки RFID (нужной вам версии прошивки), либо оставляйте старый.
Всего вы должны положить 7 новых файлов и 2 новых папки, в ALT_KAMP еще 2 файла, а в scripts еще 10.
Файл «officiall_filas_list.cfg» при этом будет заменен.

1.2 Далее открываем «printer.cfg» для редактирования. (После редактирования не забудьте нажать «Сохранить»!!!)
1.2.1 Комментируем (через #), следующие строчки:
[include KAMP_Settings.cfg]
[include gcode_macro.cfg]
[include plr.cfg]
Добавляем в начало строку:
[include alt_settings.cfg]
Вы должны получить по итогу что-то подобное:

1.2.2 Далее, находим блок [filament_switch_sensor filament_switch_sensor] и заменяем его полностью на этот:
[filament_switch_sensor filament_switch_sensor]
pause_on_runout: True
runout_gcode:
M118 Filament run out
FILA_DETECT
{% set can_auto_reload = printer.save_variables.variables.auto_reload_detect|default(0) %}
{% if can_auto_reload == 1 %}
AUTO_RELOAD_FILAMENT
{% endif %}
insert_gcode:
event_delay: 3.0
pause_delay: 0.5
switch_pin:!THR:PA1
1.2.3 Далее ищем блок [bed_mesh] и в конец добавляем эти строки:
fade_start: 1
fade_end: 10
fade_target: 0
faulty_region_1_min: -1, -1
faulty_region_1_max: 28, 28
Пример:

1.2.3.1 Если вы хотите использовать KAMP, то я также советую переписать несколько строк для более точной и полноценной карты:
mesh_min:0,0
mesh_max:270,270
probe_count: 10, 10
algorithm:bicubic
bicubic_tension:0.2
Пример:

1.2.4 Далее, после строк:
[virtual_sdcard]
path: ~/printer_data/gcodes
Добавляем:
[skew_correction]
Пример:

1.2.5 Теперь, ищем блок [resonance_tester] и заменяем его полностью на это:
[resonance_tester]
accel_chip:lis2dw
min_freq: 20
max_freq: 100
probe_points:
135, 5, 10
135, 70, 10
135, 135, 10
В блоке [printer] значение в строке square_corner_velocity меняем на 5 если там стоит другое.

1.2.6 Если вы хотите не просто включать/выключать освещение в принтере, а настраивать его яркость (но будет шим, который будет видеть камера), то ищем блок [output_pin caselight] и полностью заменяем его на:
[output_pin caselight]
pin:PC9
pwm: true
cycle_time: 0.01
shutdown_value:0
value:1.0
Теперь у вас будет ползунок настройки яркости в веб интерфейсе:

Шаг 2. Настройка «alt_settings.cfg»
2.1 Открываем файл «alt_settings.cfg» для редактирования. (После редактирования не забудьте нажать «Сохранить»!!!)
2.1.1(Если у вас нет дополнительного вентилятора обдува, то пропускайте этот шаг.)
Если у вас в голове стоит дополнительный вентилятор обдува, то просто раскомментируйте строку [include alt_add_fan.cfg] удалив в начале строки #. Какие-либо дальнейшие действия по настройке проводить не нужно.

2.1.2(Если у вас нет BTT SFS, то пропускайте этот шаг.)
Если у вас стоит BTT SFS, то просто раскомментируйте строку [include alt_sfs.cfg] удалив в начале строки #.

Далее открываем сам файл «alt_sfs.cfg» и настраиваем там detection_length под себя.

2.1.3 (Если вы не используете skew correction, то пропускайте этот шаг.)
Если вы используете skew correction, то открываем файл alt_sc.cfg для редактирования и записываем туда свои значения раскомментировав нужную вам строку.
2.1.4 Теперь проходимся по всем настройкам в файле «alt_settings.cfg» и настраиваем все под себя и не забываем сохранить.
Шаг 3. Настройка слайсера
3.1 Orcaslicer 2.3.1 и ниже
3.1 Открываем для редактирование базовый профиля принтера:

Нажимаем сохранить профиль принтера:

И задаем ему свое имя, например, «Qidi Q2 0.4 nozzle - alt», после чего сохраняем.
Теперь все изменения делаем только в этом профиле и при печати используем только его.
3.1.1 Открываем вкладку «G-код принтера»:

3.1.1.1В «Стартовый g-код принтера» удаляем все и вписываем следующее:
;V0.4.2 Beta
CHECK_EXTRUDER_BEFORE_PRINT E0={is_extruder_used[0]} E1={is_extruder_used[1]} E2={is_extruder_used[2]} E3={is_extruder_used[3]} E4={is_extruder_used[4]} E5={is_extruder_used[5]} E6={is_extruder_used[6]} E7={is_extruder_used[7]} E8={is_extruder_used[8]} E9={is_extruder_used[9]} E10={is_extruder_used[10]} E11={is_extruder_used[11]} E12={is_extruder_used[12]} E13={is_extruder_used[13]} E14={is_extruder_used[14]} E15={is_extruder_used[15]}
PRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature] EXTRUDER=[initial_no_support_extruder] XMIN={first_layer_print_min[0]} XMAX={first_layer_print_max[0]} YMIN={first_layer_print_min[1]} YMAX={first_layer_print_max[1]} TYPE_PRINT='[print_sequence]'
save_last_file HOTEND=[nozzle_temperature] HOTBED=[bed_temperature] CHAMBER=[chamber_temperature]
G0 X108 Y5 F6000
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]
M83
G1 X108.000 Y-0.5 F30000
probe
M104 S[nozzle_temperature_initial_layer]
M190 S[bed_temperature_initial_layer_single]
M191 S[chamber_temperature]
M109 S[nozzle_temperature_initial_layer]
M106 P2 S0
G91
G1 Z[initial_layer_print_height] F600
;G1 E3 F1800
G90
M83
G0 X128 E8 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
M400
M83
G0 X173 E10 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 X178 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X183 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X188 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X193 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X198 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G90
M400
G2 I0 J2 Z1 F600
SET_SC
3.1.1.2 В «Завершающий g-код принтера» просто удаляем все, он должен быть пустой.

3.1.1.3 Далее, листаем до блока «G-код после смены слоя», удаляем все и вписываем следующее:
;V0.4.2 Beta
G1 E-[retraction_length] F1800
GET_FRAME
G1 E[retraction_length] F300
G92 E0
SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}

3.1.1.4 Далее, листаем до блока «G-код смены прутка», удаляем все и вписываем следующее:
;V0.4.3.4 Beta
; FLUSH_START
G1 E[flush_length_1] F300 O1
G1 E[flush_length_2] F300 O1
G1 E[flush_length_3] F300 O1
G1 E[flush_length_4] F300 O1
; FLUSH_END
SERVICE_CHANGE_EXTRUDER CEXTRUDER=[current_extruder] NEXTRUDER=[next_extruder] CEXTRUDER_TEMP=[old_filament_temp] NEXTRUDER_TEMP=[new_filament_temp] WIPE_TOWER={has_wipe_tower} FLUSH_VOLUME1=[flush_length_1] FLUSH_VOLUME2=[flush_length_2] FLUSH_VOLUME3=[flush_length_3] FLUSH_VOLUME4=[flush_length_4] QS=0
{if current_extruder != next_extruder}
G1 E-[old_retract_length_toolchange] F1700
{endif}

3.1.2 Далее открываем вкладку «Экструдер ММ»:

3.1.2.1 Ставим галку «Ручная смена прутка»:

3.1.2.2 В «Параметрах одиночного мультиматериального инструмента» везде ставим 0:

3.1.2.3 Далее, «Время загрузки прутка» ставим 90, а «Время выгрузки прутка» 60:

В реальности время у вас может отличаться в обе стороны и вам надо будет самим его измерить.
3.1.3 Далее, открываем вкладку «Экструдер 1» и внизу в блоке «Откат при смене материала» у параметра «Длина» ставим 1:

3.1.4 Далее, открываем вкладку «Ограничения принтера» и в блоке «Максимальные рывки» рывок по Xи Y ставим 5:

3.1.5 Сохраняем профиль и в дальнейшем для печати используем только его.
3.2 QIDIStudio.
3.2Открываем для редактирование базовый профиля принтера:

Нажимаем сохранить профиль принтера:

И задаем ему свое имя, например, «Q2 0.4 nozzle - alt», после чего сохраняем.
Теперь все изменения делаем только в этом профиле и при печати используем только его.
3.2.1 Открываем вкладку «G-код принтера»:

3.2.1.1 В «Стартовый g-код принтера» удаляем все и вписываем следующее:
;V0.4.2 Beta
PRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature] EXTRUDER=[initial_no_support_extruder] XMIN={first_layer_print_min[0]} XMAX={first_layer_print_max[0]} YMIN={first_layer_print_min[1]} YMAX={first_layer_print_max[1]} TYPE_PRINT='[print_sequence]'
save_last_file HOTEND=[nozzle_temperature] HOTBED=[bed_temperature] CHAMBER=[chamber_temperature]
G0 X108 Y5 F6000
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]
M83
G1 X108.000 Y-0.5 F30000
probe
M104 S[nozzle_temperature_initial_layer]
M190 S[bed_temperature_initial_layer_single]
M191 S[chamber_temperature]
M109 S[nozzle_temperature_initial_layer]
M106 P2 S0
G91
G1 Z[initial_layer_print_height] F600
;G1 E3 F1800
G90
M83
G0 X128 E8 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
M400
M83
G0 X173 E10 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 X178 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X183 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X188 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X193 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X198 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G90
M400
G2 I0 J2 Z1 F600
SET_SC
3.2.1.2В «Завершающий g-код принтера» просто удаляем все, он должен быть пустой.

3.2.1.3Далее листаем до блока «G-код после смены слоя», удаляем все и вписываем следующее:
;V0.4.2 Beta
G1 E-[retraction_length] F1800
GET_FRAME
G1 E[retraction_length] F300
G92 E0
SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}

3.2.1.4Далее листаем до блока «G-код смены прутка», удаляем все и вписываем следующее:
;V0.4.3.4 Beta
; FLUSH_START
G1 E[flush_length_1] F300 O1
G1 E[flush_length_2] F300 O1
G1 E[flush_length_3] F300 O1
G1 E[flush_length_4] F300 O1
; FLUSH_END
SERVICE_CHANGE_EXTRUDER CEXTRUDER=[current_extruder] NEXTRUDER=[next_extruder] CEXTRUDER_TEMP=[old_filament_temp] NEXTRUDER_TEMP=[new_filament_temp] WIPE_TOWER={has_wipe_tower} FLUSH_VOLUME1=[flush_length_1] FLUSH_VOLUME2=[flush_length_2] FLUSH_VOLUME3=[flush_length_3] FLUSH_VOLUME4=[flush_length_4] QS=1
{if current_extruder != next_extruder}
G1 E-[old_retract_length_toolchange] F1700
{endif}

3.2.2Далее, открываем вкладку «Ограничения принтера» и в блоке «Максимальные рывки» рывок по X и Y ставим 5:

3.2.3Сохраняем профиль и в дальнейшем для печати используем только его.
3.3 Orcaslicer 2.3.2 и выше
3.3 Открываем для редактирование базовый профиля принтера:

Нажимаем сохранить профиль принтера:

И задаем ему свое имя, например, «Qidi Q2 0.4 nozzle – alt 2.3.2», после чего сохраняем.
Теперь все изменения делаем только в этом профиле и при печати используем только его.
3.3.1 Открываем вкладку «G-код принтера»:

3.3.1.1 В «Стартовый g-код принтера» удаляем все и вписываем следующее:
;V0.4.3.3 Beta
CHECK_EXTRUDER_BEFORE_PRINT E0={is_extruder_used[0]} E1={is_extruder_used[1]} E2={is_extruder_used[2]} E3={is_extruder_used[3]} E4={is_extruder_used[4]} E5={is_extruder_used[5]} E6={is_extruder_used[6]} E7={is_extruder_used[7]} E8={is_extruder_used[8]} E9={is_extruder_used[9]} E10={is_extruder_used[10]} E11={is_extruder_used[11]} E12={is_extruder_used[12]} E13={is_extruder_used[13]} E14={is_extruder_used[14]} E15={is_extruder_used[15]}
PRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature] EXTRUDER=[initial_no_support_extruder] XMIN={first_layer_print_min[0]} XMAX={first_layer_print_max[0]} YMIN={first_layer_print_min[1]} YMAX={first_layer_print_max[1]} TYPE_PRINT='[print_sequence]'
save_last_file HOTEND=[nozzle_temperature] HOTBED=[bed_temperature] CHAMBER=[chamber_temperature]
G0 X108 Y5 F6000
SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]
M83
G1 X108.000 Y-0.5 F30000
probe
M104 S[nozzle_temperature_initial_layer]
M190 S[bed_temperature_initial_layer_single]
M191 S[chamber_temperature]
M109 S[nozzle_temperature_initial_layer]
M106 P2 S0
G91
G1 Z[initial_layer_print_height] F600
;G1 E3 F1800
G90
M83
G0 X128 E8 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
M400
M83
G0 X173 E10 F{outer_wall_volumetric_speed/(24/20) * 60}
G0 X178 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X183 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X188 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G0 X193 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}
G0 X198 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}
G90
M400
G2 I0 J2 Z1 F600
SET_SC
3.3.1.2 В «Завершающий g-код принтера» просто удаляем все, он должен быть пустой.

3.3.1.3 Далее, листаем до блока «G-код после смены слоя», удаляем все и вписываем следующее:
;V0.4.3.3 Beta
G1 E-[retraction_length] F1800
GET_FRAME
G1 E[retraction_length] F300
G92 E0
SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}

3.3.1.4 Далее, листаем до блока «G-код смены прутка», удаляем все и вписываем следующее:
;V0.4.3.3 Beta
; FLUSH_START
G1 E[flush_length_1] F300 O1
G1 E[flush_length_2] F300 O1
G1 E[flush_length_3] F300 O1
G1 E[flush_length_4] F300 O1
; FLUSH_END
SERVICE_CHANGE_EXTRUDER CEXTRUDER=[current_extruder] NEXTRUDER=[next_extruder] CEXTRUDER_TEMP=[old_filament_temp] NEXTRUDER_TEMP=[new_filament_temp] WIPE_TOWER={has_wipe_tower} FLUSH_VOLUME1=[flush_length_1] FLUSH_VOLUME2=[flush_length_2] FLUSH_VOLUME3=[flush_length_3] FLUSH_VOLUME4=[flush_length_4] QS=1
{if current_extruder != next_extruder}
G1 E-[old_retract_length_toolchange] F1700
{endif}

3.1.2 Далее открываем вкладку «Экструдер ММ»:

3.1.2.1 Ставим галку «Ручная смена прутка»:

3.1.2.2 Далее, «Время загрузки прутка» ставим 90, а «Время выгрузки прутка» 60:

В реальности время у вас может отличаться в обе стороны и вам надо будет самим его измерить.
3.1.3 Далее, открываем вкладку «Экструдер 1» и внизу в блоке «Откат при смене материала» у параметра «Длина» ставим 1:

3.1.4 Далее, открываем вкладку «Ограничения принтера» и в блоке «Максимальные рывки» рывок по X и Y ставим 5:

3.1.5 Сохраняем профиль и в дальнейшем для печати используем только его.
Шаг 4. Финал
4.1 Перезагружаем принтер по питанию, предварительно сохранив все отредактированные конфиги.
4.2 Когда принтер включится выполните макрос INSTALL_REQ_LIB.

Он установит зависимости для построения графиков шейперов. Это займет какое-то время. По окончанию будет дан звуковой сигнал.
4.3 Если нужно отключить нейрослужбы, то выполните макрос REMOVE_ALGO_APP:

Внимание!!! Отключение нейрослужб это не тоже самое что отключение на экране. На экране просто вкл/выкл функция, а в этом случае отключается сама служба, что заметно разгружает хост, и галочка на экране перестает на что-либо влиять.
Как включить показ кнопок макросов
Для начала в веб-интерфейсе нажимаем на 3 точки слева вверху:

Далее нажимаем кнопку «компоновка панели управления»:

После ставим галочку напротив пункта «Макросы»:

Теперь у вас будет список из всех макросов и их можно будет вызывать по нажатию кнопки.
В настройках веб интерфейса их можно раскидать по группам и отключить отображение не нужных.

Пример сортировки:

Откат на сток конфиги
Для отката на сток конфиги в самом принтере достаточно вернуть старые файлы:
«printer.cfg»
«officiall_filas_list.cfg»
либо их сток версии, а в слайсере выбрать сток профиль принтера.
Калибровка по Yдля очистки сопла
Далее, я очень рекомендую проверить позицию по Y для чистки сопла об стол. Если сопло будет тыкаться в отверстие это приведет к проблемам и возможно к поломке. Это значение в параметре variable_clear_y_scrub в файле Settings.cfg. По умолчанию это 282. Если вы хотите использовать другое, то проверяйте с другим значением по Y.
Для этого хоумимся по всем осям и после этого вводим команду: G1 X135 Y282 Z0 F3000
После чего смотрим где стоит кончик сопла. Если оно стоит в прорези между основой пластины и «ушком», то значение Y надо поднять пока кончик сопла не окажется на нижней половине «ушка».
Рисунок как подбирать значение Y у variable_clear_y_scrubв файле Settings.cfg:

Подобранное значение надо вписать в variable_clear_y_scrub в файл Settings.cfg.
Как пользоваться QIDIBox
Принтер
Для начала я очень не рекомендую использовать базовые кнопки загрузки филамента во флюиде и на экране:


Проблема в том, что у этих кнопок нет ни каких защит по наличию в экструдере филамента с внешнего источника и температуре плавления предыдущего материала.
Кнопками выгрузки и удаления пользоваться можно.
Принтер перед началом печати сам зарядит нужной пруток из бокса со всеми защитами и если ему что-то не понравиться, то он прервет печать в самом начале и напишет вам что не так.
Если вам прям нужно самому заправить пруток из бокса в экструдер, то используйте мой макрос:

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

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

Также я сделал еще несколько дополнительных макросов:

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

Выгружает текущий заряженный пруток в бокс. По факту ни каких параметров вводить не надо - просто нажать и все.

То же самое что и предыдущее, но еще и удаляет филамент из бокса.

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

Сбрасывает все мапинги слjтов бокса на значения по умолчанию. Может помочь если начались проблемы со слотом после автозамены филамента.

Сбрасывает слоты бокса на значения по умолчанию. Может помочь если начались проблемы со слотом после автозамены филамента.
В вкладке config (аналог есть и на экране) содержаться несколько базовых параметров:


Detection on insertionавтоматически проворачивает катушку до хаба когда вы вставите пруток в слот.
Detection on Startup при запуске принтера по новой перепроворачивает все заправленные катушки. Рекомендую выключить так как эта операция может занять по времени больше минуты.
Automatic Reload автоматически заменяет окончившуюся катушку новой, которая подходит по параметрам.
Для того чтобы автозамена работала, вы должны правильно настроить поставщика, материал и цвет каждого слота и для автозаменяемых катушек все три параметра должны быть одинаковые.
Пример, три одинаковые катушки по параметрам:

Для того чтобы проверить работает ли автозамена надо нажать на кнопку «auto».

Три слота в автозамене:

Два по два слота в замене:

QIDIStudio
Принцип работы в QIDIStudio не изменился со стока.
Однако если вас интересует как сделать так чтобы студия при синхронизации подгружала ваши профили, если вы их настроили и сохранили, или профили других производителей, если вы их указали в принтере, то ответ – НИКАК.
QIDIStudio может подгружать только базовые профили при синхронизации, а именно QIDI и Generic и то не для всех типов филамента. И это ограничение самого QIDIStudio, по крайней мере мне не удалось хоть как-то заставить это заработать.
Orcaslicer
Для начала надо понимать, как принтер выбирает прутки. В отличии от студии в орке нет возможности сопоставить слоты пруткам в слайсере и поэтому в зависимости от того сколько у вас боксов у вас первые n-количество прутков будут считаться из боксов и их нумерация будет сопоставлена нумерации в боксах.
Например, если у вас бокс один, то первые четыре прутка будут считаться из бокса, а остальные извне.

По именам слотам соответственно 1А – 1, 1B– 2 и т.д.
Также надо настроить «объем очистки» и проверять его желательно перед каждой печатью.


Множитель желательно ставить 1.
Значения объема очистки можно настроить как вручную, так и автоматически просто нажав на кнопку «пересчитать». Тут главное, чтобы значения были не ниже 125.
Однако авто расчет зачастую использует слишком высокие значения, в моих тестах для смены большинства цветов хватало 150, хотя слайсер предлагал в 2-4 раза больше. Какие значения будете использовать вы, смотрите сами. Для примера 150 кубов это где-то 60мм продувки прутка.
Актуально только для OrcaSlicer 2.3.1 и ниже:
Если вы будете использовать черновую башню, то все эти объемы очистки будут идти в продувку сопла в нее и принтер при замене прутка не будет создавать отходы в мусорку.
Если вы черновую башню отключите, то эти значения будут использоваться уже при продувке сопла в мусорную корзину что приведет к созданию отходов.
Если при использовании черновой башни длина продувки указана 0, то принтер будет принудительно делать продувку в корзину.
Актуально только для OrcaSlicer 2.3.2 и выше:
Продувка сопла происходит только в корзину в независимости от начилия черновой башки.
Актуально для всех версий:
При продувке в мусорную корзину принтер также смотрит на параметр variable_box_count_flush и если длина продувки из слайсера пришла меньше чем значение в этом параметре, то будет использована длина из этого параметра.
Также если при смене материала принтер заметит, что температура печати старого прутка выше чем у нового, то он сделает продувку в мусорку в любом случае не зависимо от наличия черновой башни. Это сделано для избежание возможного возникновения пробок.
Для того чтобы печатать филаментом из внешнего источника есть три способа.
Первый – это использовать при печати филамент за пределами нумерации слотов, то есть если у вас всего один бокс, то вы весь стол должны печатать прутком номер 5 или выше.
Второй – это отключить бокс программно через макрос «DISABLE_BOX». В этом случае все прутки будут считаться внешними. Когда вам понадобиться бокс опять то выполните макрос «ENABLE_BOX».
Третий – это включить опцию «variable_box_auto_disable» (поставить 1 вместо 0) в файле «alt_settings.cfg». Далее заправляем филамент с внешнего источника. После чего отправляем на печать. Принтер увидит, что заряжен внешний пруток при старте печати с включенным боксом и отключит его сам если это нужно, а по окончанию печати включит его обратно.
Особенности работы с ММ
На данный момент конфиги имеют несколько особенностей по работе с боксом.
Есть несколько режимов поддержки смены филамента (работают только в Orcaslicer):
Между слотами QIDIBox
Полная автоматика, QIDIBox сам меняет прутки и действий оператора не требуется.
Со слота QIDIBox на внешний источник
Принтер выгрузит пруток в бокс и уйдет на паузу выведя на экран сообщение о том какой номер прутка оператору надо загрузить вручную, после чего нажать кнопку возобновления печати.
С внешнего источника на внешний источник (для этого режима QIDIBox не обязателен)
Принтер уйдет в паузу выведя на экран сообщение о том какой номер прутка оператору надо сначала выгрузить вручную, а потом загрузить, после чего нажать кнопку возобновления печати.
С внешнего источника на слот в QIDIBox
Принтер уйдет в паузу выведя на экран сообщение о том какой номер прутка оператору надо сначала выгрузить вручную, после чего нажать кнопку возобновления печати.
Также у принтера есть несколько проверок перед печатью:
Проверка на наличия филамента в слотах (Только Orcaslicer)
Если пруток из бокса используется в печати, а слот под него пустой, то принтер выведет ошибку об этом перед печатью и прервет печать.
Проверка на использования бокса
Если при старте печати пруток будет использоваться из бокса, а принтер увидит, что он заряжен из вне, то он выведет ошибку и прервёт печать. Либо сам отключит бокс если включена опция «variable_box_auto_disable».
Проверка на использования бокса
Если при печати пруток будет использоваться из вне, а принтер увидит, что он заряжен из бокса, то он выгрузит его в бокс и выведет ошибку и прервёт печать.
Скачать конфиги можно по этой ссылке: 0.4.3.4
Автор: @cerega66