How To Repair Precision Dance Pad Sensors
Openpad Build
July 2022
Openpad is a open-source design for trip the light fantastic toe simulation games similar Dance Dance Revolution and Pump It Upward. Congenital with forest, Openpad is a DIY solution to attain an arcade-like experience while supporting loftier customization, outperforming about commercial home pad solutions in durability, sensitivity and price-effectiveness. I nowadays my build below and document my observations and thoughts along the process.
Table of Contents
- Intro
- Frame
- Electronics
- Sensors
- Circuits
- Of Noise and Entropy
- Microcontroller
- Associates
- Terminal Impressions
- Future Piece of work
- Appendx
- Links
Introduction
I grew up with an arcade game called Trip the light fantastic Dance Revolution, which was a popular dancing game simulator from 1997. I played the home console version on my PlayStation and cycled through were not well anchored, frequently globe-trotting during play. Needless to say, the dwelling house dance pads paled drastically when compared to hardened arcade pads, built out of rugged metal frames, with welded support bars, with 1-inch thick acrylic panels and diffused lights to calorie-free up the trip the light fantastic toe flooring. For most people, purchasing the real arcade game itself was out of the question.1
However, with the development of free-equally-in-freedom software simulators such equally the legendary Stepmania, along with proliferation of fan-fabricated content, simfiles, which accept spread.2
Building arcade-style pads from scratch requires some labor simply is feasible for an individual equipped with a pocket-size tool set and skill set up. Information technology is a worthwhile endeavor to design piece of work effectually functionality, durability and price constraints.
Maybe in the futurity, I will discuss talk over a teardown of this Blueish Shark
In that location do exist commercial "hard" dance pads that attempt to replicate arcade pads. Historically, two of the top-tier products include the Cobalt Flux pads and Blue Shark pads, both which are no longer manufactured and but available from 2nd-paw markets. Soon, they are mid-tier products at a mid-range toll point but junior in quality or sensitivity or maintenance in one style or another. The onetime foam pads I had from DDRgame autumn into the classification of mid-tier pads. Arcade-style StepmaniaX (SMX) pads are acquirable for new, although they are pricey (U.s.a. $1400+shipping) and notoriously out of stock.iii
The primary goals for this build is to:
- Support High level play (highly sensitive panels)
- Back up USB host for PC interface
- Be as inexpensive as possible
Every bit with whatsoever ''price-efficient'' projection, the pad was built upwardly from the materials available at hand or the cheapest possible materials available at the local hardware store. This contrasts to a typical engineering workflow in which you begin with a design, then specify a BOM (Bill of Materials), prototype and iterate.
As a consequence of the primary goals, major blueprint choices followed naturally:
- Wood is the textile of the frame and panels
- Analog sensors for software-defined sensitivity
- Arduino for microcontroller
The source code and documentation needed to reproduce this project is bachelor on the Openpad project on Github originally pioneered by finalarcadia. While finalarcadia made a build for Pump every bit well merely hither I only provide the build for 4 panels. My forked co-operative includes an additional PCB design and small changes. My blueprint differs mostly in the utilize of modular panels, more sensitive sensors registration and more price-constructive circuit.
Frame
Metallic is expensive. Metalworking tools – as well expensive.4 Wood? Cheap. A used miter saw from craigslist? $40. My good friend, KJ helped draft some designs in CAD. Inspired by games Arrow Vortex and Technomotion where all 9 arrows in the 3x3 grid were used in gameplay, a modular design which each a square would be a self-independent and attachable unit was designed. The idea was if we wanted, we could re-conform our sensored panels in lodge to play Pump it Upwardly or any other dance game!
Why not build a universal controller to play all these great games
The material of pick is 2x4 pine lumber, bachelor in whatever United states hardware store for equally most equally cheap as woods tin go. The measurements in the design were not sized to 2x4 very well, thus numerous cuts were made to get the woods to shape! A rather generously thick base was made past gluing four 2x4 beams together. Since 2x4's are meant to be used in constructing buildings, it has rather rounder edges which I shaved off with the tabular array saw. More wood scraps! In retrospect, it would take been better to modify the design to reduce the cuts needed.
Old school DDR and PIU pads used two diagonal screws to secure the console
Building the individual modules became very monotonous and I almost injured myself twice while zoning out and neglecting prophylactic. Exactly 9 squares brackets with glue butt joints property everything together. I was also sloppy with gluing and the panels weren't completely level with the floor. This would become an issue later when you string the pad together!
Alignment is a big issue when dealing with modular blocks so I congenital the alignment blocks first, then glued then on while they were already coupled using heavy stones and bricks to clamp. There are two M6 screws used to concur each border of the module. Threads were tapped directly into the thin wooden alignment blocks. This is fine when the pad is flat but when you concur the pad vertically, it is slightly wobbling at several joints. In my mind though, disassembly for transporting was an of import feature at the time.
The starting time module made. This 1 looks much better than the rest. Notation the mounting holes for the sensors are tapped for M6 bolts, the same hole size as the sensor
Attaching the alignment blocks. Discover the utilise of bricks for clamping. Note the sensors are tapped directly into the base
Electronics
Sensors
Upwards to this 24-hour interval, DDR and PIU accept used condom digital sensors that are actuated by a metal subclass underneath the acrylic console. The bracket only allows vertical motion to be registered. Pad maintenance volition inevitably require padding the infinite to change sensitivity thresholds.5 A new arroyo by the StepmaniaX squad is their employ of analog sensors: load cells or strain gauges that can find minute tension or pinch in the metal structure itself! The sensors used in StepmaniaX and this project are beam shaped, which allows you to mount the panel on the other side of the beam. I used some rubber anxiety to hold on the console and also allows for adjusting of tension.
Testing the load cell circuit
Considering the load jail cell uses a Wheatstone span, the output of the point is in microvolts, too small to exist measured past any microcontroller. We demand to use a amplifier to do the task. Here I use an opamp (which one?) that has four op amps.
Why employ a analog sensor? Considering information technology allows you to configure arbitrary sensitivity in software! At to the lowest degree so goes the theory. The panels ended up being a little too sensitive! The sensors would sometimes register force from a diagonal module due to lateral forces from the frame'south uneven construction. Sometimes, just standing on the center panel tin can trigger the other arrows! A temporary fix is to recalibrate and rezero the sensors while standing on the centre panel.
I ordered the load cell sensors from various chinese suppliers through ebay. They're rather heavy and accept a pair of 2x2 M6-threaded holes for mounting.
Circuits
The connections on a breadstuff lath were to shaky for me and so I went straight to the protoboard. Screw-in terminals were used for the analog input signals. The internal resistance of my 200kg sensors are nearly 50Ω (U-03A9). My DAC has 10 bits in the range of 0-5V giving about 5/2ten = 4.8 mV sensitivity.
Now we demand to talk about the expected pressure we intend to measure. The average person in the world weighs 62 kg.6 Assume that a person when continuing, the weight is distributed evenly betwixt the legs. For the purposes of a trip the light fantastic game, nosotros tin too presume that less than half of the weight is used to annals a panel. Permit's just say I desire a We need sensitivity of 0.i / 200 * 5V = sensitivity of 100g to register. Nosotros need sensitivity of 0.i / 200 * 5V = two.5 mV is the maximum raw sensor threshold. This is clearly non enough to be picked upward by the DAC alone. We need an amplifier to read the signal.
A simple negative-feedback configuration with matched resistors of 1MΩ is used to accomplish a gain of …
Finalarcadia used 4 instrumental op amps (INA125P) which price ~$6 each on Digikey. I opted instead for a unmarried LM324 which is only $0.48. Using resistors of 1MΩ gives about a gain of 200 which is more than enough. Instrumental amps are only double staged op amps (3 for ane) that offering lower dissonance itself, but my setup seems to piece of work.
Of Noise and Entropy
Because we're designing an analog circuit we need to minimize our analog noise which our microcontroller will read! Following standard analog blueprint hither wise. And then make certain your sensors are shielded and your 5V clean. Keep wires curt every bit possible. Another option is to utilise RC time constant to filter out noise but that could introduce filibuster. Design a PCB and use bypass capacitors – use a function generator and oscilloscope to verify clean switching in your DAC.
Disclaimer: Actually, I didn't practice any of those things and my pad works groovy.
Microcontroller
Arduino is cheap and piece of cake to program. The Arduino Uno (ATmega328 scrap) is non powerful plenty to support USB profiling by it'due south own so you lot need to reprogram the side ATmega16u2 scrap to use the secondary chip as a USB host. Unfortunately, the latency is quite loftier for input (~50ms) and debugging a chore. To switch between a keyboard and developer function, you need to brusque a jumper pin and reconnect the USB every time. A more powerful Arduino Leonardo or even the Pro Micro or Pico is recommended.
It is wise to add together LED indicators as debugging via the Serial console can bear witness abrasive. Nothing like realtime visual feedback.
You run into two arduinos here because one of them is but providing power. I call up there shouldn't be a need for this only USB limits to 100mA by default and my op amp may depict up to 50 mA of power. The arduino board itself as well needs 50 mA so it's a close telephone call and I was definitely having stability issues where only a subset of the op-amps worked when everything was powered through my laptop. The utilize of arduino pro micro or nano will take lower power footprint than the uno.
Assembly
The panels were hand cut from a old projector Television set. The plastic itself was only i/32 " at most and so I supplemented it with ¾" of MDF. Alternatively, ¾" acrylic panels or ½" polycarbonate sheets and cutting them on a bandsaw. It turns it it actually hurts to play bare pes.
Final Impressions
Not bad for a first prototype. The whole blueprint needs a reworking merely I tin perform merely equally well if not meliorate than on my old foam pads. Some points taken:
- Modular pattern needs more precision
- USB power considerations for excursion (typ. 100mA)
- probably should go a safer table saw
- Use 4 smaller 20kg sensors instead of ane large 200 kg sensor
On that last point, I have hither a heat map of my Right panel readings. A gallon of water was placed at ii inch intervals on a panel. You can probably gauge where the tip of the sensor is residing. It's not perfect. The raw values are taken direct from the DAC in signed integer from -512 to 512. The pads are of course zeroed so no weight is registered as zero.
A rebuild is definitely in the planning as I'm hoping to create another pad for the purpose of playing doubles or versus!
Hereafter Work
There is a lot to do! New Features I desire to add:
- Lighting (externally powered LED's)
- Thinner, flexible transparent panels with improve mounting onto frame
- Proper PCB
- Just use the better arduino
Appendix
Links
- Github Source
- Wheatstone Span & Load Cells on Wikipedia
- Stepmania and user packs
- Technomotion Ghetto.io interface on github useful bits on ddr/piu here too!
- HackMyCab, a guide on modding and maintaining DDR machines
All content on this domain (unless otherwise specified) is licensed under a CC-Past 4.0 nabulator.com 2022
Last modified: 2022-04-19
How To Repair Precision Dance Pad Sensors,
Source: https://nabulator.github.io/openpad.html
Posted by: kingbroas1999.blogspot.com
0 Response to "How To Repair Precision Dance Pad Sensors"
Post a Comment