# Arcade buttons, tactile and metal buttons, toggles, joysticks, thumbsticks, potentiometers, rotary encoders

> What hole size does a 30 mm arcade button need?

- Category: Electronics › Switches
- Kind: Modern device
- Basis: Adafruit CAD (MIT) models of the sold parts; panel hole sizes from the product pages
- Page: https://xemstudio.com/objects/adafruit-buttons-joysticks-encoders/ · JSON: https://xemstudio.com/api/geometry?object=adafruit-buttons-joysticks-encoders · Plain text: https://xemstudio.com/objects/adafruit-buttons-joysticks-encoders/sheet.txt
- License: dimension sheet CC BY 4.0 (Xem Studio); linked files under their publishers' licenses

## Notes

- Arcade buttons: 30 mm (471) needs a Ø30 mm hole in 1–5 mm panels, body 33 mm OD, 45 mm deep with the microswitch; 24 mm mini arcade (3429) Ø24 hole, 32 mm deep; the 100 mm massive button (1185) Ø100 hole, 60 mm deep.
- 16 mm illuminated metal buttons (1145, 916): Ø16 mm hole, 2–10 mm panel, 30 mm behind. 8 mm soft tactile (3101): Ø8. 12 mm tactile B3F (1119): 12 × 12 × 7.3 mm body.
- Joysticks: 2-axis arcade-style (512) 40 × 40 × 32 mm; mini thumbstick (3102, 5628) 18 × 20 × 17 mm. 10K pot (562) Ø7 mm bushing, Ø6 mm D-shaft 15 mm. Rotary encoders (4991, 5221) Ø7 mm bushing with 6 mm shaft; the ANO encoder is Ø33 mm with a centre button.

## Sizes

| product | bbox_l_mm | bbox_w_mm | bbox_h_mm |
|---|---|---|---|
| 471 Arcade Button 30mm | 42.4 | 34.4 | 33.9 |
| 1145 16mm button | 24.5 | 19.0 | 19.0 |
| 1185 Massive Arcade Button 100mm | 98.5 | 98.5 | 68.5 |
| 1119 Tactile Switch 12mm (B3F-40XX) | 12.9 | 12.0 | 9.0 |
| 916 metal button | 37.2 | 21.9 | 19.0 |
| 3350 RGB button | 21.5 | 18.0 | 18.0 |
| 3221 Toggle Switch | 33.3 | 13.2 | 10.0 |
| 805 slide switch | 11.7 | 8.0 | 4.0 |
| 512 Analog 2-axis Joystick | 38.1 | 38.1 | 21.0 |
| 3102 Mini Joystick | 64.0 | 54.5 | 54.5 |
| 5628 Mini Joycon Thumbstick | 23.9 | 22.2 | 16.2 |
| 562 10K Potentiometer | 25.4 | 24.8 | 17.5 |
| 4991 QT Rotary Encoder | 31.0 | 25.4 | 25.4 |
| 5221 ANO Rotary Encoder | 38.1 | 35.6 | 9.4 |
| 5743 Mini Gamepad STEMMA QT | 50.8 | 22.9 | 13.1 |
| 5100 MacroPad RP2040 | 105.2 | 60.8 | 34.1 |
| 817 Zippy Micro Switch | 37.8 | 22.1 | 10.3 |
| 3347 Metal Ball Tactile Button 6mm | 11.3 | 8.8 | 7.4 |
| 1092 Tactile On Off Switch | 18.2 | 15.4 | 8.6 |
| 1400 Push Button Power Switch | 20.3 | 17.8 | 9.0 |
| 5880 Rotary Encoder I2C STEMMA QT | 25.9 | 25.4 | 25.4 |
| 5752 Quad Rotary Breakout | 76.2 | 27.3 | 21.6 |

## Where the files are

- Adafruit (official): [Adafruit_CAD_Parts: STEP, Fusion 360 and STL for Adafruit products](https://github.com/adafruit/Adafruit_CAD_Parts) — STEP, F3D, STL — MIT

## Free STEP/STL (22 parts, MIT License (Adafruit_CAD_Parts), Adafruit Industries)

Index: https://xemstudio.com/files/adafruit/adafruit-buttons-joysticks-encoders/index.json

- 471-arcade-button-30mm: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/471%20Arcade%20Button%2030mm/471%20Arcade%20Button%2030mm.step) — Adafruit #471 Arcade Button 30mm; bbox 42.4 × 34.4 × 33.9 mm; 0.4 MB on GitHub
- 1145-16mm-button: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1145%2016mm%20button/1445%2016mm%20button.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1145%2016mm%20button/1445%2016mm%20button.stl) — Adafruit #1145 16mm button; bbox 24.5 × 19.0 × 19.0 mm; 0.3 MB on GitHub
- 1185-massive-arcade-button-100mm: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1185%20Massive%20Arcade%20Button%20100mm/1185%20Massive%20Arcade%20Button%20100mm.step) — Adafruit #1185 Massive Arcade Button 100mm; bbox 98.5 × 98.5 × 68.5 mm; 0.8 MB on GitHub
- 1119-tactile-switch-12mm-b3f-40xx: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1119%20Tactile%20Switch%2012mm%20%28B3F-40XX%29/1119-12mm-TactileSwitch.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1119%20Tactile%20Switch%2012mm%20%28B3F-40XX%29/1119-12mm-TactileSwitch.stl) — Adafruit #1119 Tactile Switch 12mm (B3F-40XX); bbox 12.9 × 12.0 × 9.0 mm; 0.1 MB on GitHub
- 916-metal-button: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/916%20metal%20button/916%20Metal%20Button.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/916%20metal%20button/916%20Metal%20Button.stl) — Adafruit #916 metal button; bbox 37.2 × 21.9 × 19.0 mm; 0.7 MB on GitHub
- 3350-rgb-button: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3350%20RGB%20button/3350%20RGB%20button.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3350%20RGB%20button/3350%20RGB%20button.stl) — Adafruit #3350 RGB button; bbox 21.5 × 18.0 × 18.0 mm; 0.3 MB on GitHub
- 3221-toggle-switch: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3221%20Toggle%20Switch/3221%20Toggle%20Switch.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3221%20Toggle%20Switch/3221%20Toggle%20Switch.stl) — Adafruit #3221 Toggle Switch; bbox 33.3 × 13.2 × 10.0 mm; 0.7 MB on GitHub
- 805-slide-switch: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/805%20slide%20switch/805%20slide%20switch.step) — Adafruit #805 slide switch; bbox 11.7 × 8.0 × 4.0 mm; 0.0 MB on GitHub
- 512-analog-2-axis-joystick: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/512%20Analog%202-axis%20Joystick/512%20Analog%202-axis%20Joystick.step) — Adafruit #512 Analog 2-axis Joystick; bbox 38.1 × 38.1 × 21.0 mm; 0.2 MB on GitHub
- 3102-mini-joystick: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3102%20Mini%20Joystick/3102%20Mini%20Joystick.step) — Adafruit #3102 Mini Joystick; bbox 64.0 × 54.5 × 54.5 mm; 0.2 MB on GitHub
- 5628-mini-joycon-thumbstick: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5628%20Mini%20Joycon%20Thumbstick/5628%20Mini%20Joycon%20Thumbstick.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5628%20Mini%20Joycon%20Thumbstick/5628%20Mini%20Joycon%20Thumbstick.stl) — Adafruit #5628 Mini Joycon Thumbstick; bbox 23.9 × 22.2 × 16.2 mm; 0.1 MB on GitHub
- 562-10k-potentiometer: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/562%2010K%20Potentiometer/562%2010K%20Potentiometer.step) — Adafruit #562 10K Potentiometer; bbox 25.4 × 24.8 × 17.5 mm; 0.4 MB on GitHub
- 4991-qt-rotary-encoder: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/4991%20QT%20Rotary%20Encoder/4991%20QT%20Rotary%20Encoder.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/4991%20QT%20Rotary%20Encoder/4991%20QT%20Rotary%20Encoder.stl) — Adafruit #4991 QT Rotary Encoder; bbox 31.0 × 25.4 × 25.4 mm; 1.9 MB on GitHub
- 5221-ano-rotary-encoder: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5221%20ANO%20Rotary%20Encoder/5221%20ANO%20Rotary%20Encoder.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5221%20ANO%20Rotary%20Encoder/5221%20ANO%20Rotary%20Encoder.stl) — Adafruit #5221 ANO Rotary Encoder; bbox 38.1 × 35.6 × 9.4 mm; 0.3 MB on GitHub
- 5743-mini-gamepad-stemma-qt: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5743%20Mini%20Gamepad%20STEMMA%20QT/5743%20Mini%20Gamepad%20STEMMA%20QT.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5743%20Mini%20Gamepad%20STEMMA%20QT/5743%20Mini%20Gamepad%20STEMMA%20QT.stl) — Adafruit #5743 Mini Gamepad STEMMA QT; bbox 50.8 × 22.9 × 13.1 mm; 1.0 MB on GitHub
- 5100-macropad-rp2040: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5100%20MacroPad%20RP2040/5100%20MacroPad%20RP2040.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5100%20MacroPad%20RP2040/5100%20MacroPad%20RP2040.stl) — Adafruit #5100 MacroPad RP2040; bbox 105.2 × 60.8 × 34.1 mm; 3.1 MB on GitHub
- 817-zippy-micro-switch: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/817%20Zippy%20Micro%20Switch/817%20micro%20switch%20ZIPPY.step) — Adafruit #817 Zippy Micro Switch; bbox 37.8 × 22.1 × 10.3 mm; 0.0 MB on GitHub
- 3347-metal-ball-tactile-button-6mm: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3347%20Metal%20Ball%20Tactile%20Button%206mm/3347%20Metal%20Ball%20Tactile%20Button%206mm.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/3347%20Metal%20Ball%20Tactile%20Button%206mm/3347%20Metal%20Ball%20Tactile%20Button%206mm.stl) — Adafruit #3347 Metal Ball Tactile Button 6mm; bbox 11.3 × 8.8 × 7.4 mm; 0.4 MB on GitHub
- 1092-tactile-on-off-switch: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1092%20Tactile%20On%20Off%20Switch/1092%20Tactile%20On%20Off%20Switch.step) — Adafruit #1092 Tactile On Off Switch; bbox 18.2 × 15.4 × 8.6 mm; 0.1 MB on GitHub
- 1400-push-button-power-switch: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1400%20Push%20Button%20Power%20Switch/1400%20Push%20Button%20Power%20Switch.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/1400%20Push%20Button%20Power%20Switch/1400%20Push%20Button%20Power%20Switch.stl) — Adafruit #1400 Push Button Power Switch; bbox 20.3 × 17.8 × 9.0 mm; 3.8 MB on GitHub
- 5880-rotary-encoder-i2c-stemma-qt: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5880%20Rotary%20Encoder%20I2C%20STEMMA%20QT/5880%20Rotary%20Encoder%20I2C%20STEMMA%20QT.step) — Adafruit #5880 Rotary Encoder I2C STEMMA QT; bbox 25.9 × 25.4 × 25.4 mm; 1.8 MB on GitHub
- 5752-quad-rotary-breakout: [STEP](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5752%20Quad%20Rotary%20Breakout/5752%20Quad%20Rotary%20Breakout.step) · [STL](https://raw.githubusercontent.com/adafruit/Adafruit_CAD_Parts/main/5752%20Quad%20Rotary%20Breakout/5752%20Quad%20Rotary%20Breakout.stl) — Adafruit #5752 Quad Rotary Breakout; bbox 76.2 × 27.3 × 21.6 mm; 1.9 MB on GitHub

## Questions

**What size hole for a 30 mm arcade button?**

Ø30 mm (30.2 for a slip fit) in a 1–5 mm panel; 45 mm of depth behind for the microswitch and wires.

**What size hole for a 24 mm arcade button?**

Ø24 mm, panel 1–5 mm, 32 mm of depth.

**What panel hole for a potentiometer or rotary encoder?**

Ø7 mm (7.2 in a print) for the standard M7 bushing, with an optional Ø2 anti-rotation hole 8 mm from centre; panel 1–3 mm. Knobs fit a 6 mm D-shaft.

## Fits with

- [16 mm and 19 mm panel-mount push buttons](https://xemstudio.com/objects/16mm-arcade-button/)
- [Tactile buttons (6 mm), DIP switches and small slide switches](https://xemstudio.com/objects/tactile-switches/)
- [Panel cutouts: IEC inlet, rockers, barrel jack, USB-C, HDMI, LEDs, Neutrik D](https://xemstudio.com/objects/panel-cutouts/)
- [Trimmer potentiometers: Bourns 3296, 3266, 3339, 3006](https://xemstudio.com/objects/trimmer-potentiometers/)
