Публичное раскрытие проекта

NebulaTor

Апгрейд BIQU/BTT Nebula Extruder, разработанный CN3D вокруг улучшенной работы с филаментом, датчиков, удобства обслуживания и встроенного резака.

Файлы выйдут позже: документация уже публична, STL запланированы следующим этапом, CAD/STEP - только после финальной проверки.

Документация опубликованаБаза BIQU / BTT Nebula ExtruderSTL позжеCAD после проверки
Рендер NebulaTor под углом с передним окном, рычагом idler, механизмом преднатяга пружины и стороной мотора.
Docs опубликованыПубличное раскрытие проекта и документация
STL позжеПечатные файлы запланированы после проверки
CAD позжеCAD/STEP запланированы после финальной проверки
KlipperЛогика прошивки в разработке задокументирована

Статус разработки прошивки

Репозиторий включает справочную конфигурацию Klipper для NebulaTor. В ней определены переменные загрузки и выгрузки, значения экструдера, макросы загрузки и выгрузки, настройка NeoPixel, кнопка выгрузки и поведение датчика филамента.

Показанная здесь прошивка документирует текущую логику разработки. Финальные проверенные файлы конфигурации будут опубликованы вместе с документацией проекта.

Концепции прошивки

Платформа

Текущая справочная конфигурация написана для Klipper.

Макросы загрузки и выгрузки

NEBULA_LOAD_FILAMENT и NEBULA_UNLOAD_FILAMENT управляют контролируемым движением филамента через общие переменные.

Значения экструдера

В конфигурации указаны rotation_distance 51.75, gear_ratio 11.25:1 и max_extrude_only_distance 200.0.

Логика кнопки и датчика

В конфигурации разработки используются записи gcode_button для кнопки выгрузки и датчика филамента.

Зависимость от контроллера

Имена пинов в репозитории являются примерами для конкретной платы и должны быть адаптированы пользователем.

Управление резаком

Резак является частью аппаратной системы; финальное публичное поведение прошивки для релизных пакетов еще требует проверки.

Configuration explanation

Репозиторий включает справочную конфигурацию Klipper для NebulaTor. В ней определены переменные загрузки и выгрузки, значения экструдера, макросы загрузки и выгрузки, настройка NeoPixel, кнопка выгрузки и поведение датчика филамента.

The documented Klipper reference is organized around the extruder values, shared load/unload variables, the load and unload macros, NeoPixel setup, the unload button, and filament sensor behavior.

Безопасные фрагменты

Справка по экструдеру

Основные значения, задокументированные в текущей справке Klipper.

[extruder]
rotation_distance: 51.75
gear_ratio: 11.25:1
max_extrude_only_distance: 200.0

Переменные загрузки / выгрузки

Расстояния и скорости централизованы до того, как их используют макросы.

variable_unload_purge_distance: 35
variable_unload_distance: 120
variable_load_distance: 40
variable_load_purge_distance: 70

Имена макросов

Страница документирует назначение макросов, не публикуя финальную конфигурацию для скачивания.

NEBULA_UNLOAD_FILAMENT
NEBULA_LOAD_FILAMENT

Complete Klipper Configuration

[gcode_macro _NEBULA_VARIABLE]
# unload
variable_unload_purge_distance: 35   # (mm) purge a distance before unload to clean filament
variable_unload_purge_speed:    300  # (mm/min) purge speed
variable_unload_distance:       120  # (mm) unload distance
variable_unload_speed:          3000 # (mm/min) unload speed
# load
variable_load_distance:         40   # (mm) load distance
variable_load_speed:            1500 # (mm/min) load speed
variable_load_purge_distance:   70   # (mm) purge a distance after load
variable_load_purge_speed:      300  # (mm/min) purge speed
gcode:

[extruder]
rotation_distance: 51.75
gear_ratio: 11.25:1
max_extrude_only_distance: 200.0 # must be greater than the distance of the single segment above 

[respond]
default_type: echo

[gcode_macro NEBULA_UNLOAD_FILAMENT]
gcode:
  {% set nebula = printer['gcode_macro _NEBULA_VARIABLE'] %}
  {% set unload_purge_distance = nebula.unload_purge_distance %}
  {% set unload_purge_speed = nebula.unload_purge_speed %}
  {% set unload_distance = nebula.unload_distance %}
  {% set unload_speed = nebula.unload_speed %}

  SAVE_GCODE_STATE NAME=tmp_unload_state
  G91
  G92 E0
  M118 Nebula unload purging
  G1 E{unload_purge_distance} F{unload_purge_speed}
  M400
  M118 Nebula unloading
  G1 E-{unload_distance} F{unload_speed}
  M400
  RESTORE_GCODE_STATE NAME=tmp_unload_state

[gcode_macro NEBULA_LOAD_FILAMENT]
gcode:
  {% set nebula = printer['gcode_macro _NEBULA_VARIABLE'] %}
  {% set load_purge_distance = nebula.load_purge_distance %}
  {% set load_purge_speed = nebula.load_purge_speed %}
  {% set load_distance = nebula.load_distance %}
  {% set load_speed = nebula.load_speed %}

  SAVE_GCODE_STATE NAME=tmp_unload_state
  G91
  G92 E0
  M118 Nebula loading
  G1 E{load_distance} F{load_speed}
  M400
  M118 Nebula load purging
  G1 E{load_purge_distance} F{load_purge_speed}
  M400
  RESTORE_GCODE_STATE NAME=tmp_unload_state

[neopixel nebula_neopixel]
pin: EBBCan:PD3 # RGB pin(marked as RGB on extruder), Modify this to match your mainboard!
chain_count: 2
color_order: GRB
initial_RED: 1.0
initial_GREEN: 1.0
initial_BLUE: 1.0

[gcode_button nebula_unload_button]
pin: ^!EBBCan:PB4 # Gcode Button pin(marked as GB on extruder), Modify this to match your mainboard!
debounce_delay: 0.02
press_gcode:
release_gcode:
  {% if printer.print_stats.state != "printing" %}
    {% set fs = printer['gcode_button filament_sensor'] %}
    {% if fs.state == "RELEASED" %}
      NEBULA_UNLOAD_FILAMENT
    {% endif %}
  {% endif %}

[gcode_button filament_sensor]
pin: ^EBBCan:PB3 # Filament sensor pin(marked as FS on extruder), Modify this to match your mainboard!
debounce_delay: 0.5
press_gcode:
  {% if printer.print_stats.state == "printing" %}
    PAUSE # [pause_resume] is required in printer.cfg
  {% endif %}
release_gcode:
  {% if printer.print_stats.state != "printing" %}
    NEBULA_LOAD_FILAMENT
  {% endif %}

  

Important sections

  • [extruder] reference values.
  • Load and unload variables used by the macros.
  • NEBULA_UNLOAD_FILAMENT and NEBULA_LOAD_FILAMENT macro entries.
  • NeoPixel setup.
  • Unload button and filament sensor behavior through gcode_button entries.

Comments and implementation notes

# Board and pin names are controller-specific.
# Sensor and unload-button wiring must match the user machine.
# Pause/resume and NeoPixel behavior must be validated before release use.

Что пользователь должен адаптировать

  • Имена платы и пинов.
  • Проводку датчиков и кнопки.
  • Поведение pause/resume.
  • Пин NeoPixel и поведение цепочки.
  • Любые финальные настройки релиза, опубликованные с проверенным пакетом.
Схема обмоток мотора Nebula из руководства проекта.