wolfgirl engineering home
built stepmania platforms - January 18, 2020

i wanted to be able to play stepmania against my friends at school. i also wanted a more accurate platform than the foam pad i had at home in order to be able to play more difficult charts. however, existing commericial platforms are either not good, or too expensive.

one of my classes gives me the opportunity to build pretty much whatever i want, using grants the school receives. our budget is high and our class is small, i could’ve spent a thousand dollars on this if i had wanted to. i ended up spending ~one hundred fifty per platform using a design based on promits danceforce v3 and v4 designs.

i won’t write about the entire build process. you should read promits posts about it. this is about how i deviated from promits designs, and some of the issues i encountered.

promits blog posts cover most of the architecture. mine vary is a couple of ways. first, i am using the sensor design from their v4 platform. i used copper tape on the chassis to create the positively charged plane, sandwiching the velostat between it and aluminum panels covered in copper tape.

mostly complete platform missing bolts

i used 15 pin dsub connectors to make the control boxes detachable from the platforms, in order to make it easier to store them. the internal wiring of the control boxes vary from promits, as well. instead of relying on the microcontrollers internal pullups and treating the sensors as digital buttons, i read out their values on the analog pins. this also requires grounding each pin through a resistor in the ~1k range.

i made the mistake of using an arduino board with an m0 processor, which a lot of gamepad libraries have issues with. you will have to use this fork of the arduinojoysticklibrary if you are using any samd based board.

control box internal

when it comes to calibrating the platforms, there were a few unexpected quirks i ran into with its behavior. initially, i had assumed that i would ideally want to make each sensor as sensitive as possible, so i wrote a program that would record the maximum value each sensor would reach when there was no force on them, and made the activation threshold a few units higher than that.

two undesirable behaviors arise from that kind of calibration. the first is that you will need massive debouncing to prevent misteps, large enough that it will affect your accuracy. the other is jumps become oddly difficult. this is because you need to put much more work into making sure you are entirely off the sensor before it will retrigger, a low sensitivity will mean you can lightly bounce.

the calibration you actually want is to go as high as you can before it feels like you are having to slam your feet into the sensors.

another problem i had was having the sensors return to an unactivated state. this was an issue when i had finished my second platform, where the first step on a sensor would be perfectly sensitive, but would take nearly two seconds to deactivate. i discovered this was because i taped down the sensor too tightly. you should only tape securely enough to prevent the sensor from moving around, the velostat between each half should be under little stress aside from gravity.

i’ve been playing on them for about an hour a day since the semester started. since then, i have gone from playing sixes on the ace scale, to being able to achieve AAs on twelves.

i have not built a bar, i don’t feel like it’d be worth it since i associate bars with technical playing, and i do not think this platform design would lend itself very well to tech play due to the step depth.

overall, i’m very pleased with the results, it was very low effort and save for the limitations on play style, works extremely well. if you are looking to build your own platform, i’d recommend velostat for sensors like promits design, but i would suggest trying to find another way to create tactility since the polycarbonate cover makes tech play a little weird.