The #PewPew Standalone is pretty much where I wanted it to be in terms of balance between size, simplicity, ease of use, functionality and, last but not least, price. However, if I sacrificed a little bit of convenience and size, maybe I could make something with more functionality and better price?
As I pronounced two logs ago, the current design is the best I can come up with the laser-cut d-pad and those 6x6 buttons. However, there is one more way, and that is using plastic d-pad and buttons from an existing console. To do that, I needed a new PCB that would accommodate smaller buttons that could fit under the plastic d-pad. That PCB arrived today, so I could try a series of new solutions.
First I tried new 6x6 buttons that I ordered from Mouser, ones with 100gf actuation force. They do much less noise, and are easier to press. However, there is one small problem: because they are of better quality than the cheap switches I used before, and because their stems are held by the d-pad, which angles them when it is pressed, the d-pad has to be very carefully positioned at equal height on each of the button stems for the whole contraption to work properly — otherwise it becomes impossible to press some directions, or pressing one directions also presses other buttons. This is very annoying, so I decided to keep looking for better solutions.
The first one is to use the buttons from a Nintendo DS Lite:
This works pretty well, after a little bit of dremeling on the middle layer, to make room for the button's collar that keeps it in place. Unfortunately, once I tightened the screws, it became impossible to press the left direction button — turns out the dimensions of the buttons are not precise, and it's a little bit more than the promised 2.5mm of height. Loosening the screw makes it work again. (There is also the problem of the wrong markings on the buttons, but that could be probably solved by removing them.)
But this gave me an idea. You see, I could use a laser-cut d-pad and caps with those small buttons, if only there was some way of keeping them in place, preventing them from falling out. The plastic ones rely on that collar thing. I could perhaps make a two-layer d-pad and caps with a similar collar, but that would require at least 2 different kinds of acrylic — with different thickness. Plus, gluing them together would make them look bad, as the glue tends to make the transparent acrylic look misty. But I could hold them in place in a different way? How about two-sided tape?
So I put a piece of two-sided tape between the layers of acrylic, and stuck the d-pad cross and the button caps to that. And it works beautifully, even if it doesn't look so great. But that can be fixed. Encouraged with this, I assembled the whole device, and this time instead of using double-sided tape, I used regular tape, applying to the underside of the top layer only over the button holes. The result of that looks much better:
And it still works perfectly fine. I imagine I could order some die-cut stickers in the right shape for the mass production. Of course the holes in the d-pad and caps become unneeded — I used ones with holes, because I already had them.
There is one small complication with this approach: it works best when the d-pad and caps are cut from acrylic thicker than the front plate. That means I will probably need to go back to two sheets of acrylic, one 2.5mm (or even 3mm, to leave some leeway for variations in dimensions of the parts) for the middle layer and the d-pad and caps, and one 2mm, for the top layer. This shouldn't be much of a problem when producing more than 5 units, though, as we can fit multiple copies on both sheets then.
Finally, I discovered one more thing: those tiny buttons come in two versions: with regular actuation force, and with lower one. I think I have the regular version now, so I ordered the ones with lower to see if they will feel even better.
Documentation is the hard part, not only because it's difficult to clearly describe everything, but also because it's hard to find the motivation. For instance, I never really needed a schematic for this device, since most connections are really straightforward, and obvious to me — but probably not to other people. So I have finally cleaned up the schematic view.
There isn't much in it, but it might help when you are trying to figure out what is connected where.
The new front plate and button caps arrived, and I'm happy with them. I don't think I can improve this technique further, so I'm going to leave it like this. The only other improvement I can think of right now is to use switches that require less force for pressing — I will be looking into availability of such switches, so far I didn't get any answer to my inquiries.
I will still experiment with a plastic d-pad and buttons from the NDSL, but I'm not even sure I want to go that way.
I'm back from my vacation, and the order I made on the 1st of this month at @Elecrow, which was supposed to take 3-5 days is still on its way. Hopefully it arrives before the month ends.
While I wait, I decided to amend the PCB design a little bit, to add alternate button footprints to it, for those tiny 3x4x2.5mm buttons. They fit inside the regular 6x6x6mm button footprints, so this way I can use either kind, and have the option of using one of the existing plastic button caps with this board. I need more PCBs anyways, to make some final prototypes to give out for testing, and I was ordering a PCB for the #Flounder Keyboard anyways. This time I used @JLCPCB, we will see how much time 3-5 days is for them.
There is one more option for the button caps that I haven't properly explored yet. I don't have to 3D-print them or have them custom injection-molded if I can use existing parts from a commercial console. Turns out that most popular consoles out there have a lively modding community, and you can easily buy replacement button caps in a variety of colors and styles, very cheaply. Sounds like the perfect solution, right?
There is only one teeny-tiny detail that makes it tricky, and that is the fact that you have to design your thing so that those parts fit it. Of course the shapes of the holes in the laser-cut top plate can be adjusted very easily, but the really crucial dimensions that I don't have much control over are the thickness of the two plates.
There are generally three ways I can make this work: only use plastic caps, and put tact switches under them, like the Pokitto does, only use plastic caps, and put metal domes under them, like the 2DS does, or go full retro and use both the plastic caps and the rubber domes.
There is a number of advantages from doing it this way: the device is still easy to buy from widely available parts, there is no additional cost of making custom molds, the caps are profiled and nice to the touch, and, last but not least, it's probably much cheaper, especially if I get to re-use the rubber domes as well. As with everything, there are disadvantages as well: with time those parts may become harder to get, as new consoles replace the old ones on the market, I might be unable to get the sizes right, it may be necessary to move the buttons around to accommodate the domes, and perhaps even cut those domes (since I use 3 buttons, not 4), and finally, the markings on the buttons will be wrong (I use O, X, Z for the button names, most consoles use A, B, X, Y or some weird symbols).
I happen to have a replacement d-pad and buttons for a Nintendo DS Lite console, so let's see how that fits. They are made so that the part that presses on the dome is flush with the bottom of the top-plate, so I need a switch or dome that is exactly 2.5mm high — the thickness of the middle layer. Looking in my drawer, I found those 3x4x2.5 buttons that I have used in the #D1 Mini UI Shield previously. They are exactly 2.5mm high, and rather small, which makes them perfect for this. I quickly assembled a mock-up to see how they feel:
Funny how the cut-out in my existing plate almost perfectly matches this. Maybe I was influenced byt my NDS when designing it? In any case, the buttons fit and work well, though they are still very clicky.
Problem is, even with just 2mm top plate, the d-pad barely sticks out of it:
Ideally, I would want both plates to be from the same 2.5mm sheet, so this may be a problem? To be honest I'm not entirely sure, because despite being almost flat with the plate, it feels good. I guess more testing will be necessary.
So far so good, let's see how it works with the rubber domes! Unfortunately, I didn't have a spare rubber dome for NDSL, so I had to disassemble my console to get one.
Unfortunately, the rubber dome is exactly 2mm high, which leaves 0.5mm for the d-pad to rattle and makes it sink into the front plate too much. Also, the travel is much larger with the dome than it was with the switches, which makes it feel even worse. This won't work.
I will need a d-pad that is taller, and a rubber dome that is 2.5mm high. The latter might actually be easy, as I had a random rubber dome (left over from the ODROID GO) lying around, and it turns out to be around 2.5-3mm tall. A quick search reveals it's from the Game Boy Color. Fine, how does the d-pad of the Game Boy Color look like? Hmm, looks rather big, not sure how that will fit.
I think I will leave it for now, and see if I can get 6x6 switches with low actuation force, while waiting for the new front plate and caps. If that doesn't work, I guess I will need to order one of each kind of caps for console modding, and see if any of those works. At least...
I decided to make one last attempt at the case and the button caps, and that hopefully will be final. This time the PCB stays the same, I'm only laser-cutting a new front plate. I made everything fit on a single 100x100mm sheet of 2.5mm acrylic:
The D-pad cross is a bit larger and has rounder corners, the fire buttons are round. Both have a cut in them for springiness. The middle layer is split in two, to fit in the sheet — I would love to put one more screw in there, but that would require a change of the PCB, so no.
I will go with the regular 6x6mm tact switches with 6mm high stems, however I will try to find ones that have as small actuation force as possible, to make them softer and less "clicky".
While I wait for the order to complete, I will now need to work on the website for the project, and then try to find a distributor willing to sell it.
Today the new caps arrived from Sculpteo. I have to admit I was a bit unimpressed:
To be fair, they did warn me that I have lines closer than 3mm together, and that there may be singing and other problems, and required me to confirm via e-mail that I'm ready to take the risk. However, how that caused them to lose one of the buttons is a mystery. Good thing I only need three.
Fortunately, that burned and melted thing is just the protective foil on top of the acrylic. After removing it, it looks much better (though I do have bits of the blue foil melted into the part in some places):
Unfortunately, I miscalculated the hole sizes — I made them a little bit smaller than the diameter of the switch, but not enough, and the fit is too loose — they can slide. That makes it also hard to decide if the cutout patter I used gives it enough springiness — which was really the main reason for this experiment.
After some closer examination, I'm afraid there may be one more reason for the caps sliding. Unlike the standard tacts switches, those low-profile switches don't seem to have the plastic part conical — it's the same diameter all along the height. Back to the drawing board, I guess.
I finally had some time to assemble a second unit of the version 6 prototype, this time with the 6x6x6mm switches, and the "springy" caps that have a cut through the hole. It works surprisingly well:
I still need to resolve a few issues: the buttons are too high, making the caps stick too high from the case, the fire buttons rotate and get stuck, and generally look bad, and the D-pad has some sharp corners which are a bit inconvenient.
So I have another set of caps on order from Sculpteo (that was an experiment, but it turns to be very expensive):
Those have less lee-way around the edges and smaller holes for the shorter switches. I'm also testing a different way of making those springy cuts in them — we will see how that works. Hopefully being lower and having less leeway will prevent rotation of the caps.
I also started working on a final version of the laser-cut design, with all the parts on one 100x100x2.5mm sheet of acrylic, for easy cutting. The middle layer of the case had to be split in half for that. Here I used round fire buttons, so the rotation shouldn't be a problem.