Universal Buttonbox (for OctoPrint) 3D Printer Model

Author: @
License: CC BY-NC
File formats: stl,txt
Download type: zip
Size:1.1MB

The file 'Universal Buttonbox (for OctoPrint) 3D Printer Model' is (stl,txt) file type, size is 1.1MB.

Summary

Universal Buttonbox (for OctoPrint)

ENDER-3 VERSION


Currently 2 versions:

  • 10 buttons
  • 10 buttons + 3 rocker switches

Note: the rocker switches are not effective if used with the same plugin as the buttons. I used them in combination with custom Python scripts to switch relays and switch a TP-Link plug that I cannot reach. This is relatively complicated. If you don't have a use for them or don't know how to use them with your Raspberry Pi, you can use the version with just the 10 buttons or reach out to me and others in the comments.


After the succes of the Ender-3 Buttonbox and me needing the same kind of device for my enclosed CR-10S, I present you the Universal Buttonbox. It is highly versatile as it can be mounted to whatever you want.

The new approach of incorporating the buttons in the top plate only requires printing two parts and makes for easy assembling.



How does it work?

  1. Push-buttons and rocker switches (Optional) act as inputs for a Raspberry Pi running Octoprint
  2. Button inputs are processed by the Octoprint-Enclosure plugin to activate an output. In this case send your own GCODE to the printer
  3. The printer does what you want it to do (hopefully)

What do you need?

  • 2 printed parts based on your desired version
  • 10x Tactile push-buttons (6x6x5mm)
  • (Optional) 3x rocker switch (19x12mm) (example)
  • 4x longer M3 bolts (+- 5-12 mm long)
  • 2x shorter M3 bolts (+- 4-6 mm long)
  • A resistor and wiring to connect the buttons and switches to the Raspberry Pi

How to make it? (see above GIF for assembly guide)

  1. Choose your version (with or without rocker switches). If you want to make your own custom buttons, use the top plate of your version ending with "BLANK".
  2. Print the two parts.

    How to print the button inlays:
    To get the colored inlays, align the button inlays 3D model with the top plate 3D model in the slicer. Note down the top plate position and move it away in order to first only print the button inlays (one layer, ideally 0.3mm). Afterwards, without removing the physical inlays from the buildplate, print the top plate in its previous position in order to print it over the already printed inlays (use the same initial layer height).

    Do the parts need supports?
    The mounting parts only needs supports underneath the two mounting screw holes on the sides. Ideally, you add these as custom supports in your slicer since the rest of the models can be printed without supports.

  3. Insert the tactile push-buttons
  4. (Optional) Insert the rocker switches
  5. Clear the bolt holes and bolt the top plate to the base
  6. Connect one end of all push-buttons together
  7. Via a current limiting resistor (resistance does not really matter, I used 1k Ohm) connect this side to the 3V3 of the Raspberry Pi
  8. Connect the other ends of the push-buttons each to a separate GPIO pin of the Raspberry Pi (remember which goes to which)

  9. Install the Octoprint-Enclosure plugin in Octoprint (https://plugins.octoprint.org/plugins/enclosure/)
  10. Define your outputs (for example GCODE scripts and the ones I use, see the file section)
  11. Define your inputs as GPIO Inputs (making sure to use the following settings: Output Control, Input Pulldown, Rise) and associate them with a corresponding output


Feel free to remix this design as you wish. It would be nice if you upload the remix so we can all benefit. Also feel free to comment with button ideas, ideas in general or your custom GCODE scripts so I can add them to the example document.

Disclaimer:
This design has overlapping geometry. I know Cura has no problem with the files, but I cannot guarantee that other slicers don't either.

UBB_Button_Inlays.stl 508.0KB
UBB_Example_GCODE_Scripts.txt 2.0KB
UBB_Mount_Only_Buttons.stl 283.0KB
UBB_Mount_Rocker_Switch.stl 283.0KB
UBB_Top_Plate_Only_Buttons.stl 1.1MB
UBB_Top_Plate_Only_Buttons_BLANK.stl 574.7KB
UBB_Top_Plate_Rocker_Switch.stl 890.8KB
UBB_Top_Plate_Rocker_Switch_BLANK.stl 377.9KB