2023-08-24 22:49:34 -05:00
|
|
|
# The Buildable Stick System
|
2023-08-16 08:05:31 -05:00
|
|
|
|
2023-08-24 19:51:07 -05:00
|
|
|
Files for 3D printing an arcade stick.
|
2023-08-16 08:25:04 -05:00
|
|
|
|
2024-03-06 14:10:31 -06:00
|
|
|
Have you ever wanted to conjure your own arcade stick out of the ether (well, plastic), or to prototype a new layout or
|
|
|
|
design before sending it to a custom builder? Do you just love having your space filled with arcade stick enclosures,
|
|
|
|
because you keep making different variants, colorways, and so on? Or do you simply want a good stick on the cheap, and
|
|
|
|
know someone or a library with a 3D printer? The Buildable Stick System may be the project for you!
|
|
|
|
|
2024-02-22 13:36:46 -06:00
|
|
|

|
2023-08-24 23:11:43 -05:00
|
|
|
|
2023-11-10 15:42:25 -06:00
|
|
|
[OpenSCAD-based illustration of how the components for an overhang panel-based stick fit together.]
|
|
|
|
|
2024-03-06 13:30:02 -06:00
|
|
|

|
2023-11-10 15:42:25 -06:00
|
|
|
|
|
|
|
[Photo of a completed inset panel-based stick.]
|
|
|
|
|
2023-08-24 19:51:07 -05:00
|
|
|
Originally an attempt to make a couple customized STL files for the [OpenStickCommunity Fightstick
|
|
|
|
Case](https://github.com/OpenStickCommunity/Hardware/tree/main/Fightstick%20Case), the changes ballooned to fit my
|
|
|
|
design and became incompatible with that project's components. This should be considered a different project with some
|
|
|
|
similar DNA, but to stress again, it could not have been done without that project as a guide star. See **Attribution**.
|
|
|
|
|
|
|
|
## Designing
|
|
|
|
|
|
|
|
No particular arcade stick design is prescribed by this project, instead, SCAD files are provided to choose desired
|
|
|
|
component objects or create new ones. The OpenSCAD language is essentially a functional programming language, making it
|
|
|
|
it easy to reuse, alter, and compose objects. If you do not see the object you would like, you can likely create it by
|
|
|
|
starting with an existing object and constructing what you'd like with new or existing components.
|
|
|
|
|
2024-03-06 12:01:26 -06:00
|
|
|
## Usage of Parts
|
|
|
|
|
|
|
|
There are a lot of parts to pick from, but there are some structural variants to pay attention to; here's some help
|
|
|
|
about when/how to use specific parts:
|
|
|
|
|
2024-03-06 13:31:15 -06:00
|
|
|
* `panel-inset` --- these fit flush into a frame, creating a closed box enclosure.
|
|
|
|
* `panel-overhang` --- these have a tray that fits into a frame with the actual face extending beyond the frame,
|
2024-03-06 12:01:26 -06:00
|
|
|
creating an ice cream sandwich enclosure.
|
|
|
|
* These also yield a bit more space inside the box, for tall levers or whatever.
|
2024-03-06 13:31:15 -06:00
|
|
|
* `frame` (non-pieces) --- these create the box of the enclosure, as one part. These can be hard to print well ---
|
2024-03-06 13:02:43 -06:00
|
|
|
shrinkage forces tend to curl up the corners no matter what you do, and some points need supports --- but if you don't
|
|
|
|
care about that because you're printing an ice cream sandwich, they are simpler than...
|
2024-03-06 13:31:15 -06:00
|
|
|
* `frame-piece` --- these break up the frame box into four faces, and are held together by friction fit and the hex
|
2024-03-06 12:01:26 -06:00
|
|
|
bolts. This is more stable than you might expect, but it does introduce some variability in the overall sturdiness of
|
|
|
|
the enclosure compared with the frame as one box piece.
|
|
|
|
* The `interconnect` replaces the need to bolt multiple frames together.
|
|
|
|
|
2023-08-24 19:51:07 -05:00
|
|
|
## Printing
|
|
|
|
|
|
|
|
These items all fit on a 256mm^2 print bed; I use a Bambu Lab P1P based on what I've learned from the
|
|
|
|
OpenStickCommunity. Standard settings seem sufficiently sturdy for my purposes, though the slicer has done a couple
|
|
|
|
weird things, in my experience.
|
|
|
|
|
2024-02-22 13:32:43 -06:00
|
|
|
My preferred settings are 3 wall loops with 20% gyroid sparse infill. This gives the models a bit more weight and
|
|
|
|
stability, but something like 2 wall loops, 15% grid sparse infill is fine and does not lead to a weak enclosure. The
|
|
|
|
costs below have been made against my settings.
|
|
|
|
|
2023-08-24 19:51:07 -05:00
|
|
|
## Assembling
|
|
|
|
|
|
|
|
What you'll need beyond these objects:
|
|
|
|
|
|
|
|
* An arcade stick board (I recommend [TheTrain's RP2040 Advanced Breakout
|
|
|
|
Board](https://github.com/OpenStickCommunity/Hardware/tree/main/RP2040%20Advanced%20Breakout%20Board))
|
|
|
|
* 4 M3 8mm hex bolts to secure the PCB to a panel
|
|
|
|
* Per frame and plate combo:
|
2023-11-23 09:32:03 -06:00
|
|
|
* 4 45mm M4 hex brass standoffs (or equivalent)
|
2023-11-10 15:49:26 -06:00
|
|
|
* 8 M4 countersunk hex bolts
|
|
|
|
* Overhang plates should use 12-16mm length bolts since they are taller
|
|
|
|
* Inset plates should probably use 8-12mm bolts --- some standoffs aren't threaded the whole way, making 16mm
|
|
|
|
too long to go flush
|
2023-11-23 09:32:03 -06:00
|
|
|
* If making the 45mm standoffs from multiple smaller ones, make sure they have enough length to take your bolts!
|
2023-08-24 19:51:07 -05:00
|
|
|
* Per frame connection point:
|
2023-09-07 00:19:42 -05:00
|
|
|
* 8 16mm M4 bolts
|
2023-08-24 19:51:07 -05:00
|
|
|
* 8 M4 flange nuts
|
|
|
|
* For a lever:
|
|
|
|
* 4 12-16mm M4 countersunk hex bolts
|
|
|
|
* 4 M4 flange nuts
|
2023-09-15 15:20:17 -05:00
|
|
|
* For Neutrik D connections:
|
|
|
|
* 2 10mm M3 hex bolts
|
|
|
|
* 2 M3 flange nuts
|
2023-08-24 19:51:07 -05:00
|
|
|
* Buttons and levers as desired
|
|
|
|
* Wiring as required
|
|
|
|
|
2023-09-12 09:24:33 -05:00
|
|
|
## Rough Costs
|
|
|
|
|
2023-09-12 10:36:15 -05:00
|
|
|
This is a rough estimate of the cost to produce one of these sticks, assuming a usual 2-frame design and layout.
|
|
|
|
Filament masses from Bambu Studio estimates, using Bambu PLA Basic.
|
|
|
|
|
2024-02-22 13:32:43 -06:00
|
|
|
* Left and right frame: **$10.42 USD** (208.50g each, as of 2024-02-22)
|
|
|
|
* Left and right (inset) top panels: **~$6.40 USD** (~128g each, as of 2024-02-22)
|
|
|
|
* Left and right (non-overhang) bottom panels: **$6.80 USD** (135.99g each, as of 2024-02-22)
|
|
|
|
* Miscellaneous mounting plates, decorative plates, etc.: **~$1.83 USD** (~73g, as of 2024-02-22)
|
2023-09-15 15:20:17 -05:00
|
|
|
* 8 16mm M4 bolts to connect the frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of 2023-09-12)
|
2024-03-06 12:01:26 -06:00
|
|
|
* These are only necessary if you are using the whole frames, but as a heads up, the material cost of the
|
|
|
|
pieces-based interconnect piece costs around $1, so it's roughly a wash since that's also a frame wall.
|
2023-09-15 15:20:17 -05:00
|
|
|
* 8 M4 flange nuts to connect the frames: **$0.68 USD** (you can get a pack of 100 on Amazon for $8.50, as of 2023-09-12)
|
|
|
|
* 4 10mm M3 bolts to connect Neutrik D plates to frames: **$0.40 USD** (you can get a pack of 100 on Amazon for $10, as
|
|
|
|
of 2023-09-12)
|
|
|
|
* 4 M3 flange nuts to connect Neutrik D plates to frames: **$0.34 USD** (you can get a pack of 100 on Amazon for $8.50,
|
|
|
|
as of 2023-09-12)
|
2023-11-23 09:32:03 -06:00
|
|
|
* 8 45mm M4 spacers to connect panels to frames: **$2.40 USD** (you can get a pack of 10 on AliExpress for $3, as of
|
2023-09-12 10:36:15 -05:00
|
|
|
2023-09-12)
|
2023-09-17 11:33:49 -05:00
|
|
|
* You could 3D print these too, but you're probably better off with brass ones as they give some weight to the
|
|
|
|
stick anyway
|
2023-11-08 18:14:19 -06:00
|
|
|
* You can also use a shorter length with longer bolts, or combine multiple spacers, if either of those yield better
|
|
|
|
prices
|
2023-09-17 11:33:49 -05:00
|
|
|
* 8 16mm M4 bolts to connect top plates to frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of
|
|
|
|
* 8 12mm M4 bolts to connect bottom plates to frames: **$0.72 USD** (you can get a pack of 100 on Amazon for $9, as of
|
2023-09-15 15:20:17 -05:00
|
|
|
2023-09-12)
|
|
|
|
|
2024-02-22 13:32:43 -06:00
|
|
|
With an enclosure coming in around $31, depending on your choices --- say, ~$30 for TheTrain's RP2040 Advanced Breakout
|
2023-09-15 15:20:17 -05:00
|
|
|
Board, ~$60 for Sanwa buttons and a lever, and ~$20 for miscellaneous connectors and wiring --- you can put a
|
2024-02-22 13:32:43 -06:00
|
|
|
full-featured controller with an open source foundation together for around $140. Reducing wall and infill settings
|
|
|
|
will probably save you around $5 of material, and you can probably decide what you want to do from there.
|
2023-09-12 09:24:33 -05:00
|
|
|
|
2023-09-15 15:30:10 -05:00
|
|
|
## Miscellany
|
|
|
|
|
|
|
|
See the `/docs/` directory for more thoughts too scattered for this document.
|
|
|
|
|
2023-09-12 09:24:33 -05:00
|
|
|
## Issues and Limitations
|
2023-08-24 19:51:07 -05:00
|
|
|
|
2023-09-06 14:47:14 -05:00
|
|
|
This is a living repository, and as such, there are likely issues with the objects, known or otherwise.
|
2023-08-24 19:51:07 -05:00
|
|
|
These issues may be fixed in the future; see `TODO.md` for details.
|
|
|
|
|
|
|
|
## Development and Contributing
|
|
|
|
|
|
|
|
Improvements, variants, new layouts, novel ideas, and etc. are all welcome.
|
|
|
|
|
|
|
|
These files are suitable for previewing and rendering in OpenSCAD. They may also work in FreeCAD and perhaps other
|
|
|
|
software, but they are developed in OpenSCAD, so YMMV otherwise.
|
2023-08-16 08:25:04 -05:00
|
|
|
|
2024-02-19 23:35:00 -06:00
|
|
|
This project is hosted at [my personal Git site](https://git.incorporeal.org/bss/buildable-stick-system), but people are
|
|
|
|
more likely to want to interact with [the GitHub mirror](https://github.com/bsstephan/buildable-stick-system). Feel free
|
|
|
|
to use either.
|
|
|
|
|
2024-02-25 00:27:50 -06:00
|
|
|
I'm reachable on the fediverse, over email, or on Discord, but if you're looking for an option I prefer, I maintain an
|
|
|
|
IRC channel, `#buildable-stick-system`, on [my IRC network, Randomus](https://randomus.net/) if you would like a place
|
|
|
|
to hang out and discuss issues and features and whatnot.
|
2024-02-19 23:35:00 -06:00
|
|
|
|
2023-08-16 08:25:04 -05:00
|
|
|
## Attribution
|
|
|
|
|
|
|
|
Inspired by the incredible work of [TheTrain](https://github.com/TheTrainGoes) on the [OpenStickCommunity Fightstick
|
|
|
|
Case](https://github.com/OpenStickCommunity/Hardware/tree/main/Fightstick%20Case), itself based on the incredible work
|
|
|
|
by [Dash n'Mash](https://twitter.com/Dash_xx_Mash?s=20). Original work Copyright 2023 TheTrain, [licensed under CC BY
|
|
|
|
4.0](https://creativecommons.org/licenses/by/4.0/).
|
|
|
|
|
|
|
|
Made possible by the amazing efforts of [slagcoin](https://www.slagcoin.com/).
|
|
|
|
|
|
|
|
## Author and Licensing
|
|
|
|
|
|
|
|
Written by and copyright Brian S. Stephan (<bss@incorporeal.org>).
|
|
|
|
|
2023-08-24 22:49:34 -05:00
|
|
|
The Buildable Stick System is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
|
2023-08-16 08:25:04 -05:00
|
|
|
License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
|
|
|
|
version.
|
|
|
|
|
2023-08-24 22:49:34 -05:00
|
|
|
The Buildable Stick System is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
2023-08-16 08:25:04 -05:00
|
|
|
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
|
2023-08-24 22:49:34 -05:00
|
|
|
You should have received a copy of the GNU General Public License along with the Buildable Stick System. If not, see
|
2023-08-16 08:25:04 -05:00
|
|
|
<https://www.gnu.org/licenses/>.
|