• Models
  • Contests
  • Slicer
  • Login
  • Start Here
    thingiverse-iconprintables-iconcults3d-iconmakerworld-iconmyminifactory-icon

    3D GO

    3D ModelsContestsCollectionsSaved ModelsOn a mobile device?

3D GO

Privacy Policy
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Image 1
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Image 2
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Image 3
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Image 4
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Thumbnail 1
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Thumbnail 2
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Thumbnail 3
Voron Skirt Button for 12x12mm through hole buttons 3D Printer File Thumbnail 4

Voron Skirt Button for 12x12mm through hole buttons

ClimbingSeb avatarClimbingSeb

February 15, 2024

printables-icon
DescriptionCommentsTags

Description

Buttons that fits in Voron's hexagonal skirt holes.


12x12mm through hole buttons are used. I think I used these. Connect them to free GPIO pins. The Raspberry Pi usually have a few free ones if the control board is maxed out. One cable to the I/O-pin, one to ground and use a pull-up configuration in Klipper (use ^! before the pin-name in the pin: config line).

Printed in PLA with 0.2mm layer height, 0.4mm nozzle. 18% infill. No supports.

The quick and dirty onshape model can be found here.

 

Configuration of buttons

See here and here for the description on how to configure Klipper.

I use this for the light button:
[gcode_button BUTTON_LAMP]
pin: ^!rpi:gpio4
press_gcode:
   {% if printer['output_pin caselight'].value == 0 %}
       LED_ON
   {% else %}
       LED_OFF
   {% endif %}
 

Update to the pin where your light button is connected, “caselight” to the output pin you use to control the light and change LED_ON/LED_OFF to whatever macro you use to turn on/off the lights.

 

I've configured Klipper so I need to hold down the filament button down to run the extruder and if I first double click, it unloads instead. The button shouldn't work while my filament sensor is active (which it is during printing). Update temperatures, filament sensor name and pin as needed.



[delayed_gcode feed_load]
initial_duration: 0
gcode:
    UPDATE_DELAYED_GCODE ID=feed_load DURATION=0.2
    {% if printer[printer.toolhead.extruder].temperature >= 180 %}
        SAVE_GCODE_STATE NAME=__filament__load
        M83
        G0 F240 # 240mm/min = 4mm/s
        G1 E0.8 # 0.8 * 5 = 4mm
        RESTORE_GCODE_STATE NAME=__filament__load
    {% else %}
        BEEP freq=100 dur=100
    {% endif %}


[delayed_gcode feed_unload]
initial_duration: 0
gcode:
    UPDATE_DELAYED_GCODE ID=feed_unload DURATION=0.2
    {% if printer[printer.toolhead.extruder].temperature >= 180 %}
        SAVE_GCODE_STATE NAME=__filament__unload
        M83
        G0 F240 # 240mm/min = 4mm/s
        G1 E-0.8
        RESTORE_GCODE_STATE NAME=__filament__unload
    {% else %}
        BEEP freq=100 dur=100
    {% endif %}


[delayed_gcode button_feed_double_click_check]
initial_duration: 0
gcode:
    SET_GCODE_VARIABLE MACRO=_BUTTON_FEED_CLICK VARIABLE=double_click VALUE=0


[gcode_macro _BUTTON_FEED_CLICK]
variable_double_click: 0
gcode:
    SET_GCODE_VARIABLE MACRO=_BUTTON_FEED_CLICK VARIABLE=double_click VALUE={ double_click + 1 }
    UPDATE_DELAYED_GCODE ID=button_feed_double_click_check DURATION=0.5
    {% if printer['filament_switch_sensor filament_sensor'].enabled %}
        BEEP freq=100 dur=150
    {% else %}
        {% if double_click == 0 %}
            M117 Loading...
    UPDATE_DELAYED_GCODE ID=feed_load DURATION=0.5
    UPDATE_DELAYED_GCODE ID=feed_unload DURATION=0
        {% else %}
            M117 Unloading...
    UPDATE_DELAYED_GCODE ID=feed_load DURATION=0
    UPDATE_DELAYED_GCODE ID=feed_unload DURATION=0.5
        {% endif %}
    {% endif %}


[gcode_button BUTTON_FEED]
pin: ^!rpi:gpio22
press_gcode:
    _BUTTON_FEED_CLICK
release_gcode:
    UPDATE_DELAYED_GCODE ID=feed_load DURATION=0
    UPDATE_DELAYED_GCODE ID=feed_unload DURATION=0
    {% if printer['pause_resume'].is_paused|int == 0 %}
        M117 Ready
    {% else %}
        M117 Paused
    {% endif %}

License:

BSD License

Related Models

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se preview image

#3DBenchy - The jolly 3D printing torture-test by CreativeTools.se

CreativeTools profile image

CreativeTools

90,931

Important information sign for 3D printers / Wichtiges Hinweisschild für 3D-Drucker :) preview image

Important information sign for 3D printers / Wichtiges Hinweisschild für 3D-Drucker :)

Pat_S profile image

Pat_S

3d Printer Printing 3d Printer preview image

3d Printer Printing 3d Printer

JAJMWHungFamily profile image

JAJMWHungFamily

930

Self-Watering Planter (Small) preview image

Self-Watering Planter (Small)

parallelgoods profile image

parallelgoods

73,166

X, Y and Z calibration tool for IDEX / dual extruder / dual color 3D printers preview image

X, Y and Z calibration tool for IDEX / dual extruder / dual color 3D printers

Voxel3D_NL profile image

Voxel3D_NL

205

sign: don't touch my 3d printer preview image

sign: don't touch my 3d printer

Izzodesign74 profile image

Izzodesign74

631

All In One 3D Printer test preview image

All In One 3D Printer test

majda107 profile image

majda107

64,516

axes calibrage cube-xyz for 3d printers preview image

axes calibrage cube-xyz for 3d printers

H- printed profile image

H- printed

9

7