Skip to content

Latest commit

 

History

History

Bouncy-Mouse

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Bouncy Mouse PCB for Voron skirt buttons

An evolution of the physical skirt button, by adding PCB to simplify wiring, soldering and physical mounting.

2x Bouncy Mouse PCB installed

Credits and Attribution

This mod is not original or even novel, with most concepts taken from Voron user meteyou's gcode_buttons and adapted to fit my needs after trial and error experiences.

Thanks to meteyou and everyone else who had some incarnation of skirt buttons for the Voron. Thanks to MakerBogans Australia 3D printer community for being friendly and supportive human beings.


What are skirt buttons / G-Code buttons?

The idea is about having the convenience of direct interaction with physical buttons that perform a desired action upon pressing / releasing them. For example, pressing button X should instruct the print to turn on/off the internal LED light. (Insert your imagination here - mine sucks.)

The idea is not novel in any way and Bouncy Mouse is intended to help you build your own "custom" keyboard that can be installed in your Voron skirt, and then to connect that to your Raspberry PI / other GPIO interface and have it execute G-Code or macros.

Some users even replace / remove their display in favour of this.

Here's the Bouncy Mouse 3-Key PCB (v1 is pictured - v2 is current but with minor tweaks): Bouncy Mouse PCB v1

Holds up to three CherryMX key switches (LED optional)

Some known uses for G-Code buttons

  • Pause / Resume an active print.
  • Turn on/off/push-to-peek chamber LED lights.
  • Turn on/off fans.
  • Multi-material control (like ejecting filament in ERCF)
  • Start your Pre-heat / Warm-up routine
  • Graceful shutdown of Printer Software (e.g. Klipper / Raspberry PI Operating System)
  • Take a photo from printer CAM
  • Home your printer

Do I need Bouncy Mouse?

No, you don't. You can use meteyou's MOD and wire things directly - nothing wrong with it.

I created this because I found the soldering of wires to the switches and LEDs hard and fragile (I solder poorly - it's a hobby for me). Found the PCB held it all together much more firmly and rigidly.


I'm in - which one do I need?

The hexagonal voids in the Voron skirts for v2.4, Trident and Switchwire are the same size and have the same spacing between them - there are just less or more voids (for keys).

At the moment there are 3 variations, basically allowing for 1, 2 or 3 key switches.

Thanks @karlOS and everyone else for your input with the below. The table indicates the largest size model that would still fit for the different Voron models.

Size Switchwire Trident 2.4
SW 3-Key -- --
250mm -- 3-Key 1-Key
300mm -- 3-Key 2-Key
350mm -- 3-Key 3-Key

There is nothing stopping you from using a smaller 1-Key PCB, even if a larger 3-Key version could fit.

Bill of Materials (BOM)

The hexagonal voids in the Voron skirts are the same size and spacing across the different Voron v2 size models (250mm vs. 300mm vs. 350mm) - there are just less or more voids (and thus keys).

PCB Options

Here are the current variations. Refer to above section to decide which one to use

  • 3-Key PCB

    3-Key PCB 3-Key PCB

  • 2-Key PCB

    2-Key PCB 2-Key PCB

  • 1-Key PCB

    1-Key PCB 1-Key PCB


For each PCB, where N is the number of keys:

  • Nx CherryMX switches

  • Nx Printed part set

    • Hexagon Key Cap

    • Hexagon Key Shell

    • Hexagon Shell Retention Clip

  • N+1 PIN JST XH through the hole / PCB mount receptacle (marked as J1 on PCB)

  • N+1 PIN JST XH crimp connector housing

  • N+1 PIN JST XH crimp connector female pin

  • AWG 28 wiring long enough to reach connection points (recommend fitting length to size at point of installation)


Optional LEDs

The LED key backlight is optional.

The LEDs require a current limiting resistor is required or you'll blow them. This is what R1 (marked on PCB) is for. The Ohm size of R1 depends on your chosen configuration.

Key points to remember regarding R1:

  • PowerSupply Voltage matters 12v vs. 24v.
  • Number of LEDs matter.
  • 12v is likely a minimum for 3 LEDs.

A handy resource for calculating an appropriate value for R1 can be found here. That link is pre-configured for 3 LEDs, a 12v Power Supply and typical 3mm Polulu LED forward voltages of 1.6v-1.8v.

If you are having difficulty getting these figured out, you are welcome to enquire with me (#Jaans) in the MakerBogans discord.

Here's the BOM for the LED portion of the PCB:

  • 2 PIN JST XH through the hole / PCB mount receptacle (marked as J2 on PCB)

  • 2 PIN JST XH crimp connector housing

  • 2 PIN JST XH crimp connector female pin

  • R1 - Resistor values

Number of LEDs Power Supply LED forward voltage LED current rating R1
3 12v 1.6v 16mA 430-470ohm
2 12v 1.6v 16mA 530-560ohm
1 12v 1.6v 16mA 640-680ohm
- - - - -
3 24v 1.6v 16mA 1100-1200ohm
2 24v 1.6v 16mA 1200-1300ohm
- - - - -
1 5v 1.6v 16mA 200-220ohm
    Resistor ranges given (instead of absolute) to help use available 
    stock. Lower values will be more for brighter but also shorter life.

    I'm not an electronics engineer - so please validate the above for 
    yourself. Suggest you create a little test circuit to see if your 
    chosen LEDs and R1 value works. 
    
    Although this is generally safe and *should* at worst only blow the
    LED, bad things can happen - please refer to disclaimer section.

How to build

I see it as 4 main stages. Refer to each of the following pages for more detailed information:

  1. Print parts

    Button shell, hexagon holder, key cap with icon.

    Click here to view page about this section.


  2. Physical build

    Assemble PCB, Button, LED, Wires, Crimps, Solder, etc.

    Click here to view page about this section.


  3. GPIO PIN setup

    I use a Raspberry PI 4B and configure pins as input with pull-up resistor enabled.

    Click here to view page about this section.


  4. Klipper setup

    What to do when GPIO pin has been triggered.

    Click here to view page about this section.


Disclaimer

The ideas and suggestions here are meant in good faith, but offer no warranty and accepts no liability for any actions taken by you directly or indirectly, taken in part or in full from the content in this repository.

You acknowledge that if you wire or solder incorrectly, use the wrong polarity or voltage, or inappropriate resistor sizes, create short-circuits, etc. then you can damage not only these components but also the connected devices like your MCU controller or GPIO device like Raspberry PI. Soldering irons can cause severe burns and start fires - you are assumed competent to perform whatever action you decide. Don't take on this project if you are not comfortable with holding yourself responsible, working with electronics, soldering irons, etc.

Plain English: You acknowledge you are responsible for your actions and don't hold me liable for anything whatsoever.