- SparkFun ProMicro microcontroller
- Rocker switch (2)
- Thumb joystick
- Button pad 2×2
- LilyPad Vibe Board
- Transfer ball bearing
- SparkFun thumb joystick breakout
In order to have really intuitive, responsive inputs and outputs, I started by brainstorming different possibilities, and also researching different components that would provide feedback just to get ideas. Below is my brainstorm for words:
- clicking a button
- scrolling a wheel
In building this initial prototype, I realized that the green button (pictured left in figure 1) was not a strong form of feedback. It wasn’t as satisfying as the other inputs, and a little bit loud as well. Luckily, it’s also one of my largest components, so it worked out to get rid of it and switch it to another rocker button.
My plan currently is to have a rocker button on opposite sides, so that they can be clicked concurrently to trigger different LED colors. The joystick and button pad will remain where they are, but the joystick will have to stick out a lot further and I’ll have to laser cut a really specific shape in order to have it sit correctly. I additionally ordered a breakout PCB to sit beneath the button pad: not only will this add color when each button is pressed, but I also discovered the silicon button feedback is far more satisfying when sitting on a flat surface.
Additionally, because this is an exploration of tactile feedback and figuring out what the most satisfying to have in your hand and sit and play with is, it was decided that one side of the box should be essentially flat but with a texture etched by the laser cutter, in addition to a side with a roller ball of some kind on it. Both of those sides will be completely analog: the rolling ball feedback side is just a transfer ball bearing, an object that would be purchased at the hardware store, but I have no idea what it’s actually used for.
Inside, the box will contain a LilyPad Vibe Board as well – and I plan on having that respond to the joystick movement, more than likely, because I feel like it needs more feedback.
Here’s the updated layout plan for my cube:
Something I am struggling with currently is connecting the LilyPad Vibe Board to the thumb joystick. I want it to vibrate both when the joystick is pressed and tilted, and I’m struggling to set it up as a pushbutton that can enable the Vibe Board.
Update: After I managed to make the button function of the joystick connect with the Vibe Board, I decided that feedback wasn’t quite as intuitive as I expected. I had some friends playtest the joystick, and I noticed they rarely (if ever) even attempted to push the joystick down like a button. Accordingly, I felt using the Vibe Board in this fashion was a bit moot. Accordingly, I have changed it so that it vibrates when pressed up, down, left, or right – it makes the vibration more involved in the cube and therefore more satisfying.
My next step was to get the button matrix working. Although the code doesn’t do exactly what I foresaw (I planned on having the colors cycle through when that individual button was pressed, not an adjacent button), I ended up liking the kind of chase function of the button pad that was instituted instead. To me, this makes it puzzling in a relaxed manner (which is necessary since my object is intended to destress), and I think it works.
I laser cut my box today, and had to redo a couple of sides. I must have measured my rocker buttons incorrectly, because the holes were just a hair too big. I also flubbed up my measurement between the buttons (the diagram on the SparkFun website isn’t very clear on that part specifically), so I had to redo those as well. Now everything fits perfectly, outside of one side that is still not working as planned: my etched side. The black did not actually etch a pattern onto the acrylic, it just cut it out once more. My goal is to recut this one again, but I’m not confident I’ll be able to get in for hours again before our critique.
Now, all that remains is to solder my parts to my Pro Micro, upload, and contain it in the box.
Pictured below is the final file used to laser cut my acrylic box.
I am massively disappointed my hardware did not work in time for the critique. To recap: a bum cord in the BTU Lab led me to believe my Pro Micro was “bricked,” and eventually, broken entirely, when I could not manage to get it to reset after almost two hours of trying. I then de-soldered my entire project (button matrix, Micro, joystick, vibe board and all) in an attempt to get it to revive. I was concerned I managed to overwhelm it with all the connections, and that’s why it wasn’t resetting – but to no avail.
I left the lab finally, debating on whether to get it up and running on an Uno again, in a half closed enclosure, or to have it dead in the complete enclosure the following morning. Luckily (but not quite luckily enough), my Wearables classmate emailed me early in the morning letting me know the cord was in fact the issue. In the wee hours before critique, I tried to re-solder everything back together. A skill I learned I need to cultivate further through this experience: is both removing solder, and replacing solder joints after solder is removed.
Regardless of this, Arielle posed an important question: would you be proud of this piece, if it were working today?
The answer, as I have continued to contemplate in days following, is definitively yes. To reflect in a perhaps more emotional way than necessary on a TAM class documentation, I have never felt like I’ve learned more, or that I’ve had to fight harder to achieve it. I walked into this class to learn I probably shouldn’t be in it (having not taken Code or any other programming class), and it definitely messed with my headspace initially. But, as time went on, I found myself picking up right alongside my classmates (or very close to, at minimum) and it inspired me to keep working. Because of that, this project works a lot better than my previous one. This one came from a place of knowing I could code, that I could build circuits with confidence, and accordingly, that it was time to create something I would like or benefit from having. The fidget cube, while goofy, is exactly that. Each section of it is really thought-out, and each feedback mechanism is lovingly crafted with fellow high-stress/fidgety people like me in mind. I think it achieves what I hoped, and it will continue to as I try for a second and improved iteration.
While I am still bummed about the turnout for the morning of critique, I learned a ton through this project specifically. I saw for the first time through my own work what it means to fail electronically and to have multiple prototypes, even when something feels like it should be a finished piece as its being created. Because of what is on its face, a failure, I feel more confident than ever that I can fix it.