In the Winter Break of 2024, I wanted to do a small hardware project and decided upon a mini dance pad. Such a pad would be useful for practicing charts that I have trouble playing with my feet. I was inspired by this other crocheted mini DDR pad. While I thought this pad was cool, I was a little concerned that the conductive thread would not be reliable enough for the charts I wanted to play. Additionally, I thought it would be cute to make a mini version of the human-sized pad I made last year, so the base portion of it is a small clone of the big version. I won't be doing a full tutorial on how to make this mini pad, but I'll discuss some of the design choices.
For the sensors, I used some small flat force-sensing resistors (FSRs). Each panel consists of 1 layer of acrylic sheet, 1 layer of white contact paper, the FSR centered on the square, and a circular piece of command strip. An opposing piece of command strip then connects the whole thing to the mini wooden board. The FSR solder tabs are inserted into female DuPont connectors, flattened with pliers, wrapped with heat shrink tubing, and reinforced with Kapton tape. The center panel is empty but with some command strips on the side to elevate it and leave room for underwiring.
I used Sereni's guide for FSR wiring. For code, most existing repositories are based on Arduino / C++. However, the board I used here was the Adafruit QT Py, which supports CircuitPython. For my larger pad last year, I wrote a script in CircuitPython, which was very easy to adapt for this smaller pad. Basically all I had to do was change the pin labels. The code is here. The wiring from the pad to the breadboard was a little tricky. I wanted to have all of the ins and outs of the FSRs in a single row, which required a lot of working around.
The cool thing about this pad is that is reskinnable! I crocheted a cover for the pad. It is a removable cover affixed to the top edge of the board with command strip. The pad is a 27x34 rectangle of single crochet using black yarn. I then used cross-stiching to fill out the white, pink, and blue areas. I prefer this method because it is easier than changing yarn colors, and it provides extra weight and thickness. I had originally also wanted to make X and O buttons, but decided against it. This would have required way more wiring and a microcontroller with more pins available. After making the mat, I blocked the piece to make it more of a uniform rectangle. This involved soaking it in cold water and pinning it to a foam block, then letting it dry in place.
That's it. The project didn't take that much time overall, but time was pretty constrained this break so I'm glad that I was able to get it done. Here are some things I learned from the process:
How to crimp DuPont connectors consistently. This was very tricky.
The pros and cons of different adhesive methods. To try and keep everything swappable, I tried double-sided tape and temporary glue, but it just wasn't strong enough to hold the panels in place.
More practice on modding FSR sensitivity. I definitely needed the circular pressure points on the FSR rather than sandwiching it between two flat surfaces. That made a huge difference in sensitivity. The sensitivity problem was not solvable by adjusting the resistance of the resistors; it had to be a physical mod.
Considerations on yarn type. The yarn weights and materials were very different, and actually it probably wasn't a good idea to mix the two. I also had to test out the yarn type by burning it, which was novel.
Another thing that I noticed while testing this is that I had to change my ITG settings from what I used with the big pad. I changed the audio delay from -30 to 0. Maybe it's due to my hands being quicker than my feet? Or maybe it takes a longer time to depress the big FSRs.
Big shoutout to Si-Yuan for providing materials and helping me figure out the frustrating crimping process. Now his mini figurine can dance on the dance pad.