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
|
|
|
|
2023-09-17 11:33:49 -05: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.]
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
[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.
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
|
|
|
## 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.
|
|
|
|
|
2023-09-15 15:20:17 -05:00
|
|
|
* Left and right frame: **$7.08 USD** (141.84g each, as of 2023-09-12)
|
2023-11-10 15:49:26 -06:00
|
|
|
* Left and right (overhang) top panels: **~$6.74 USD** (~135g each, as of 2023-09-12)
|
|
|
|
* Left and right (overhang) bottom panels: **$5.90 USD** (118.16g each, as of 2023-09-12)
|
2023-09-15 15:20:17 -05:00
|
|
|
* Miscellaneous mounting plates, decorative plates, etc.: **~$1.00 USD** (~40g, as of 2023-09-12)
|
|
|
|
* 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)
|
|
|
|
* 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)
|
|
|
|
|
|
|
|
With an enclosure coming in around $26, depending on your choices --- say, ~$30 for TheTrain's RP2040 Advanced Breakout
|
|
|
|
Board, ~$60 for Sanwa buttons and a lever, and ~$20 for miscellaneous connectors and wiring --- you can put a
|
|
|
|
full-featured controller with an open source foundation together for around $135.
|
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
|
|
|
|
|
|
|
## 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/>.
|