Skip to content

cloddity/ddr-pad-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

DDR Pad Build

Last Updated: 09-14-22 - Progress: Complete

Video Preview: https://drive.google.com/file/d/1P_XRcj81ezTKjtoF2oQaf90bWCNSWTdR/view?usp=share_link enter image description here

Introduction

Last summer, my friends and I set out to build our own DDR (Dance Dance Revolution) pad. We were motivated by our mutual love for rhythm games and wanted to create an inexpensive yet sturdy pad that could endure long hours of gameplay. During the initial planning, we iterated through various ideas until we settled on a design that was fairly easy to assemble and maintain.

While our goal was to emulate the arcade experience at home, we primarily wanted to challenge ourselves by tackling a project that brought our skills together to create something fun. We hope that it will encourage more people to get into rhythm games, or at the least, inspire people to try their hand at a craft.


Initial planning documents

Materials

Tools

  • Clamps
  • Power jig/miter saw
  • Soldering iron
  • Tape measure
  • Pencil

Building the Pad

Base

  1. Cut the MDF into four 11"x11" squares and one 10"x10" square. These will be used to add support for the corner panels.
  2. Add grooves to the edges of the center panel. These will house the wiring components and hide the FSR contact points.
  3. Cut one of the corner panels into two triangles. This will allow the wires to be routed from the center panel to a microcontroller, located at the top-left corner of the pad.
  4. Apply wood glue to the corner panels, spacing them 1.5" from the corners of the plywood base (11" apart from each other). Then, apply wood glue to the center panel. Add clamps where necessary to ensure a tight bond.
  5. Cut the hardboard into five 11"x11" squares. Set these aside until wiring is complete.

enter image description here

Sensors

  1. Place the force-sensitive resistors (FSRs) towards the center of each panel (location may vary based on desired minimum sensitivity, thresholds may be adjusted later on during programming). If using more than one FSR per panel, wire them in series.
  2. Secure the sensors in place with tape, then cut eight 22-gauge jumper wires to connect the microcontroller to both ends of each sensor. Excess wire may be wrapped around the middle panel or tucked inside the case.
  3. Cut 20 square pieces of velcro, then place four pieces equidistant from each other in the space between the panels. These will hold the polycarbonate panels in place while allowing some freedom of movement.
  4. Attach the remaining four velcro pieces on the polycarbonate panels, ensuring that each piece lines up with the location of each FSR when the panels are placed down. Make sure to keep the plastic film on one side of the velcro so that it doesn't stick to the FSRs.

enter image description here

Wiring

  1. Use a soldering iron to solder tabs to the microcontroller, then slot the microcontroller into the breadboard.
  2. Connect VCC to (+) and GND to (-) on their respective power rails.
  3. Bridge four 330 ohm resistors from A0, A1, A2, A3 to GND.
  4. Guide the FSR jumper wires through the case, then connect the right pins to GND and the left pins to A0, A1, A2, A3 via the terminal strips. Ensure that the pins are correctly matched or it will result in negative resistance values when a force is applied to the sensor.
  5. (optional) If using the case buttons, wire one pin to GND and the other to any available slot in the microcontroller.
  6. Push firmware to the microcontroller after installing the prerequisites outlined in teejusb's FSR guide. Modify the SensorState array to include the case buttons if utilized.

enter image description here

Panels

  1. Make sure that the sensors are registering values to confirm that there are no wiring issues before installing the panels.
  2. Stick the polycarbonate panels adjacent to the center panel, ensuring that the velcro lines up with the FSRs.
  3. Apply wood glue on the hardboard panels, then clamp them down on top of the MDF panels. Take extra care to align them properly. These will hide the wires, and provide enough height to be level with the polycarbonate panels.
  4. Allow some time for the glue to dry before testing out the pad.

Software

  1. Using the React web app, adjust the FSR thresholds. The ideal threshold would be high enough such that the FSRs are not being activated when the panels are not stepped on, yet sensitive enough to register light taps.
  2. Download Stepmania, then go to Settings > Config Key/Joy Mappings. Apply these settings to map the pad buttons to their respective keys. enter image description here
  3. Then, go to Settings > Input Options > Calibrate Audio Sync to minimize input latency.

Special Thanks

This project could not have been possible without teejusb, who developed most of the code involved in interfacing the microcontroller, in addition to azirixx's easy travel pad build, which inspired the foundation for our project.

Many thanks to the Stamina Nation community members for their knowledge and support!

About

documentation for dance pad emulation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors