Presentación pública del proyecto

NebulaTor

Una actualización diseñada por CN3D para BIQU/BTT Nebula Extruder, desarrollada para mejorar el manejo del filamento, el sensado, el mantenimiento y el sistema de corte integrado.

Archivos próximamente: la documentación ya es pública, los archivos STL están previstos como siguiente paso, y los archivos CAD/STEP llegarán solo después de la validación final.

Documentación pública activaBase BIQU / BTT Nebula ExtruderSTL próximamenteCAD tras validación
Render en ángulo de NebulaTor que muestra la ventana frontal, la palanca del idler, el mecanismo de precarga del muelle y el lado del motor.
Docs públicasPresentación pública del proyecto y documentación
STL despuésArchivos imprimibles previstos tras la validación
CAD más tardeCAD/STEP previstos después de la validación final
KlipperLógica de firmware de desarrollo documentada

Estado de desarrollo del firmware

El repositorio incluye una referencia de configuración Klipper para NebulaTor. Define variables de carga y descarga, valores del extrusor, macros de carga y descarga, configuración NeoPixel, un botón de descarga y el comportamiento del sensor de filamento.

El firmware mostrado aquí documenta la lógica de desarrollo actual. Los archivos de configuración finales y validados se publicarán con la documentación del proyecto.

Conceptos de firmware

Plataforma

La referencia de configuración actual está escrita para Klipper.

Macros de carga y descarga

NEBULA_LOAD_FILAMENT y NEBULA_UNLOAD_FILAMENT gestionan el movimiento controlado del filamento usando variables compartidas.

Valores del extrusor

La configuración documenta rotation_distance 51.75, gear_ratio 11.25:1 y max_extrude_only_distance 200.0.

Lógica de botón y sensor

La configuración de desarrollo usa entradas gcode_button para el botón de descarga y el sensor de filamento.

Dependencia del controlador

Los nombres de pines del repositorio son ejemplos específicos de una placa y deben adaptarse por el usuario.

Control del cortador

El cortador forma parte del sistema de hardware; el comportamiento público final del firmware para los paquetes de lanzamiento todavía necesita validación.

Configuration explanation

El repositorio incluye una referencia de configuración Klipper para NebulaTor. Define variables de carga y descarga, valores del extrusor, macros de carga y descarga, configuración NeoPixel, un botón de descarga y el comportamiento del sensor de filamento.

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.

Extractos seguros

Referencia del extrusor

Valores principales documentados en la referencia Klipper actual.

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

Variables de carga / descarga

Las distancias y velocidades se centralizan antes de que las macros las usen.

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

Nombres de macros

La página documenta el propósito de las macros sin publicar una configuración final descargable.

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.

Qué debe adaptar el usuario

  • Nombres de placa y pines.
  • Cableado de sensores y botón.
  • Comportamiento de pausa/reanudación.
  • Pin y comportamiento de la cadena NeoPixel.
  • Cualquier ajuste final de lanzamiento publicado con el paquete validado.
Diagrama de bobinado del motor Nebula procedente del manual del proyecto.