A fully customizable 3D-printable guitar pedal enclosure designed in OpenSCAD, inspired by classic Hammond die-cast boxes. Create professional-looking enclosures in multiple standard sizes or define your own custom dimensions.
- Parametric Design: Adjust every dimension and component hole size via the OpenSCAD Customizer
- Multiple Presets: Choose from Hammond standard sizes (1590A, 1590B, 1590BB, 125B) or design custom dimensions
- Two-Part Assembly: Open-bottom shell with removable lid for easy component mounting
- Complete Controls: Pre-configured holes for:
- Potentiometer knobs (configurable count and positions)
- Footswitch
- LED indicator
- 1/4" input and output audio jacks
- DC barrel jack for power
- Screw Bosses: Built-in corner screw mounting posts with configurable counterbores
- Smooth Curves: Rounded corners and edges for a professional finish
- Print-Ready: Includes flipping options to optimize for 3D printing
- OpenSCAD (free, open-source 3D CAD tool): Download
- A 3D printer or 3D printing service
-
Clone the repository:
git clone https://github.com/grahamfranz/Pedal-Enclosure.git cd Pedal-Enclosure -
Open
pedal_enclosure.scadin OpenSCAD
- In OpenSCAD, go to Window > Customizer
- Under the
[Preset]section, select a preset size:1590A- Small (92.5 × 38.5 × 31 mm)1590B- Medium (112 × 60 × 31 mm) — default1590BB- Large (119 × 94 × 34 mm)125B- XL (121 × 66 × 39 mm)
- Choose a render option under
[Render]:enclosure- Just the main shell (top side up)lid- Just the bottom plate (base plate up)both- Both parts positioned for printing (with default flip options)assembled- Parts together to see the final result
- The default settings use hex nut fasteners, board standoffs enabled, no corner bosses, and flipped print orientation — ideal for most builds
- Click F5 to preview or F6 to render
- Export as STL when ready to print
- Set
presettocustom - Enter your desired dimensions in the
[Custom Outer Size]section:custom_length- X axis (long direction)custom_width- Y axis (short direction)custom_height- Z axis (vertical)
The Customizer provides sections for fine-tuning:
- [Shell] - Wall thickness, corner radius, smoothness
- [Screw Mounting] - Boss type (on/off), diameter, inset, clearances, counterbores, and fastener type (
self_tap,hex_nut,square_nut) - [Lid Locating Lip] - A raised plug on the lid that drops into the enclosure cavity, preventing lid shear under foot pressure
- [Board Mount] - Standoff diameter and height (optional posts hanging from the top wall for proto board mounting)
- [Top: Knobs] - Number of knobs (auto-distributes across rows), center-to-center spacing, hole diameter, row spacing
- [Top: Footswitch] - Hole size and position
- [Top: LED] - Hole diameter and position (optional)
- [Sides: Audio Jacks] - Hole sizes, heights, and symmetric offset to prevent jack hardware collision
- [Back: DC Jack] - Hole size and height (optional)
The design uses a standard orientation (top-down view):
+X (back edge — DC jack)
+-------------------+
| [dc] |
| o o o o | knob row
[O]| |[I] -Y = output, +Y = input
| * | LED
| |
| ( X ) | footswitch
| |
+-------------------+
-X (toe)
- Enclosure orientation: Controlled by
flip_enclosure_for_print(defaulttrue— top face on bed for the cleanest finish on the labeled side) - Lid orientation: Controlled by
flip_lid_for_print(defaulttrue— nut pockets face upward, away from the bed, so they don't sag during printing; the raised locating plug prints first as a solid foundation) - Support Material: With both flip options on, neither part needs supports
- Tolerance: Adjust
lid_clearance_dandscrew_hole_dif you have fit issues with your printer - Wall Thickness: For durability, keep at least 2–2.5 mm walls
- Lid thickness: Use at least 3 mm when using hex/square nut modes; the raised lip will be
lip_heighttaller (default 1.5 mm) - Locating lip fit: The plug is sized to the cavity inner profile minus 0.3 mm clearance so it slips in smoothly without binding
Choose a method in the [Screw Mounting] section:
boss_fastener |
Hardware needed | Notes |
|---|---|---|
self_tap |
M3 self-tapping screws (from below) | Simple, but repeated opening/closing will eventually strip the plastic |
hex_nut (default) |
M3 hex nuts + M3 machine screws (from above) | Screw enters the top face, passes down through the corner, and threads into a hex nut pocket captive in the lid's underside — provides reusable fastening |
square_nut |
M3 square nuts + M3 machine screws (from above) | Same as hex, but with a square pocket which is easier to print accurately |
Note: Nut modes recess the nut pocket into the lid's underside, so set lid_thickness to at least nut_pocket_depth + 0.6 mm (default 3 mm is recommended for M3).
For nut modes, set nut_pocket_depth to match your nut (hex ≈ 2.4 mm, square ≈ 1.8 mm).
- Print both parts (use default flip settings for cleanest results)
- (Hex/square nut modes only) Drop an M3 nut into each nut pocket on the lid's underside
- Install your components (pots, jacks, footswitch, LED) into the pre-drilled holes
- (Optional: board standoffs) Insert your proto board (e.g., CircuitMesh) from below the enclosure, aligning its screw holes with the standoffs, then secure from underneath
- Insert screws from the top into the corner posts and tighten (they will thread into the nut pockets on the lid's underside)
- Mount the lid to close the enclosure — the raised locating plug will drop into the cavity for a snug, shear-resistant fit
All preset Hammond enclosures are available as pre-rendered STLs in the renders/ directory, ready for immediate 3D printing. Each preset is exported in three configurations:
| Preset | Size (mm) | Enclosure | Lid | Both |
|---|---|---|---|---|
| 1590A | 92.5 × 38.5 × 31 | 1590A_enclosure.stl |
1590A_lid.stl |
1590A_both.stl |
| 1590B | 112 × 60 × 31 | 1590B_enclosure.stl |
1590B_lid.stl |
1590B_both.stl |
| 1590BB | 119 × 94 × 34 | 1590BB_enclosure.stl |
1590BB_lid.stl |
1590BB_both.stl |
| 125B | 121 × 66 × 39 | 125B_enclosure.stl |
125B_lid.stl |
125B_both.stl |
Note: All presets default to 3 knobs. You can customize num_knobs in the Customizer for any preset — the layout automatically wraps to multiple rows as needed.
- Use
*_both.stlfiles for a complete assembly view with both parts positioned for printing - Use individual
*_enclosure.stland*_lid.stlfiles if you prefer to print them separately or scale one part differently
Pedal-Enclosure/
├── README.md # This file
├── LICENSE # MIT License
├── pedal_enclosure.scad # Main OpenSCAD design
└── renders/
├── preview.png # Visual preview
├── 1590A_enclosure.stl # Pre-rendered STL (small, 2 knobs)
├── 1590A_lid.stl
├── 1590A_both.stl
├── 1590B_enclosure.stl # Pre-rendered STL (medium, 3 knobs)
├── 1590B_lid.stl
├── 1590B_both.stl
├── 1590BB_enclosure.stl # Pre-rendered STL (large, 3 knobs)
├── 1590BB_lid.stl
├── 1590BB_both.stl
├── 125B_enclosure.stl # Pre-rendered STL (XL, 3 knobs)
├── 125B_lid.stl
└── 125B_both.stl
- Decrease
wall_thicknessto 1.5 mm - Decrease
lid_thicknessto 1.2 mm
- Increase
facetsfrom 72 to 96 or higher (slower render)
- Increase
num_knobsto any value. The layout automatically wraps knobs to multiple rows based on enclosure width - Adjust
knob_spacing(center-to-center distance) andknob_row_spacing(vertical gap between rows) as needed - Rows with different knob counts are horizontally centered (staggered effect); rows with the same count align vertically
- Use
jack_x_offsetto prevent 1/4" jack connectors from colliding (typical range: ±15 mm) - Positive values move the input jack forward and output jack back
- Negative values reverse the direction
- Useful for compact builds where jack hardware extends into the enclosure
- Set
include_ledtofalseto remove the LED hole - Set
include_dc_jacktofalseto remove the DC jack
Feel free to fork, modify, and share improvements. If you have suggestions or find issues, please open an issue on GitHub.
Designed by Graham Franz. Inspired by the classic Hammond die-cast enclosure series.
Tips: For the best results, always preview your design in OpenSCAD before printing. Test-fit your components (pots, jacks) in the STL file to ensure proper spacing and clearance.
