Making one yourself, disclaimer

You can, using all the info on this page make one yourself, except for one thing: the microcontroller firmware. You can get that here. You can use it as you please, I hereby license it under the GPL, but I'd appreciate an e-mail or something with info how you implemented your mat. The firmware includes the source, but it hasn't been cleaned up, so I'm not responsible for your eyes popping out if you take a look at it.

Update: I just found a newer version on my HD which has better auto-calibrating. With this version, you can use inexpensive trim-potmeters instead of 10-turn-potmeters. Also, the AT90S2313 has been superseeded by the ATTiny2313; if you use that you don't have to install the 8MHz crystal anymore. For historical purposes the old software can still be gotten here.

On the computer, the pad behaves like a 4-button analog joystick, the 4 pads each act as a button while the axes don't do anything. You shouldn't use shoes to dance on this mat: first of all you seem to be able to injure yourself much easier if you dance with shoes on, but secondly I'm not sure if a pad can detect your body through your shoe. Dancing with socks only seems to be working fine, though.


This info is free, and works for me. If your version doesn't work, sorry, I'm not responsible for that. If you blow something up or injure yourself dancing, the same thing applies. This is free info and comes without any warrantee.

« Prev 3 


KMag wrote at 26 Mar 2012, 16.33:

@GameOver, @Sam: the technical explanation is that the human body has a very different dielectric constant from air. The foil sheets are open-faced capacitors, so bringing your feet near them changes their capacitance. If the circuit tries to keep the voltage constant, your changing of the capacitance causes current to flow in and out of the capacitor. I used to work on MEMS gyroscopes, which used a similar effect to measure microscopic changes in the distance between vibrating masses and the substrate over which they were suspended. A constant voltage difference was kept between the masses and the substrate. As the masses got closer to the substrate, capacitance went up, and the constant voltage supply caused current to flow in. As the distance increased, capacitance went down and current flowed out.

Sam wrote at 1 Jan 2012, 3.05:

Gameover, I realise it's 4 years later, but the pads aren't normal switches. When a human touches a wire, or something connected to it, all sorts of interference, from the mains as well as all sorts of other things, is sent to the pad. Humans act like big aerials, so connecting us to a pad, even through carpet, produces a small signal. This signal can be picked up by sensitive enough electronics. The contents of the signal itself don't matter, just detecting signal / no-signal is enough to detect if someone's touching it. Normally you'd use a sensitive amplifier, but apparently from this circuit, it seems the inputs of the controller chip are sensitive enough. It seems like the pads use the body as a sort-of ground connection, which will work as long as, again, you have a sensitive enough circuit.

Giorg wrote at 8 Aug 2008, 20.26:

Hi! I had built your controller with the Attiny 2313 but I had some problems programming fuses with avrdude .. how you programmed it? Now it seems to work but there is some lag between the contact with the ground and the detection of feet ...about 12 second. Is it normal? any way to improve response? thank you in advance Giorg

Sebastian wrote at 1 Nov 2007, 13.03:

gameover: the code is somewhat commented. basically the pad is switched rapidly between high ("sensor"), low ("ground") and disconnected (tri-state, high impedance, Z-mode, whatever you want to call it) and something is counted in the disconnected process i think (not sure entirely) which over a threshhold triggers an active result. jftaylor - no as long as you dont move the mat it's fine without pot adjustments. Sprite: as above i'd love a more detailed description too. and my next question, i notice a lot of crosstalk on wires that are pretty close together. im thinking of changing to sheilded wires and connecting sheild to ground. i know this works for dual-plate designs, but will it work for the single plate design?

game over wrote at 5 Sep 2007, 22.05:

In simple english, how does this work. I mean where isthe ground wire? are 2 contacts being pressed to close the circuit?? seems awesome!!!

jftaylor21 wrote at 5 Sep 2007, 2.57:

Looks great! I'm thinking of building my own. How reliable is it? Do you have to change the trimmer settings often?

Sprite_tm wrote at 24 Aug 2007, 12.23:

Sebastian: IIRC I removed that feature because the autocalibration made it sortta unnecessary. The code is quite old, so I can't be too sure, though. realyst: You basically remove the crystal and the 2 capacitors connected to it, leaving the two pins of the attiny unconnected. Be sure to set the fuses to the 8MHz internal oscillator, though.

realyst wrote at 24 Aug 2007, 1.25:

Could someone make a schematic with the Attiny updates? I'm not confident enough in my non-existent electronic abilities to figure it out myself^^; Or is it just the same but you just remove the crystal from the circuit and run the lead straight through?

Sebastian wrote at 19 Aug 2007, 5.46:

In the readme it is listed to short pins 8 and 9. I simulated through the code and searched through it, there appears to be no code or reference to it. am I blind or is this something that was removed in the latest code version?

Yasuo Katto wrote at 3 Jul 2007, 13.34:

A great Thank You, from Germany. Build my mat yesterday, first I've had a little problem with the flashing of the tiny2313 then after using avreal it worked. Hurray!!

3e06a wrote at 1 Jun 2007, 22.51:

Can you make that USB rather than gameport?

Roger Wolff wrote at 22 May 2007, 20.05:

Great idea. Someone said something about a chip programmer. That should not be a problem. You can make a programmer for the attiny from a parport connector and a few wires....

shum_inc wrote at 7 May 2007, 8.02:

Can anyone point analog sheme of QT1xx component ? This component not available in my region :(

Mipi wrote at 2 May 2007, 18.12:

Thomas, I managed to get couple of CY8C21234, and I already have programmer for them, could you share any info or links about your PSOC solution?

T045T wrote at 28 Apr 2007, 23.08:

Great Project, not only for "stealth" applications, but for some different things too... 2 ideas I've had: - usage in places where there's a carpet on the ground you don't want to get out of the way every time you play (usage on carpet harms soft mats, hard pads wouldn't be a problem) - really easy and good-looking customization... either paint design on wood or print and cover with acryl stuff... that's what I'm hoping to do... 2 questions remain for me: 1. Is there a way to (easily) add recognition of more buttons to the firmware (and circuit)? 2. Could this be made to work via USB, too?

tRg wrote at 28 Apr 2007, 17.43:

I was also looking for the CY8C21234, but I more into computers than on electronics : can the CY8C21234 be programmed with a cheap programmer (I made a JDM that works fine, is there a JDM like for the cypresses ?)

Scythe wrote at 26 Apr 2007, 17.43:

Yhomas, would you be able to schematic up something fro your design. sounds simple and doable for me.

Thomas wrote at 25 Apr 2007, 14.00:

Impressive work! I've looked through your firmware and your sensing method is clever. Have you looked at the CY8C21234 Cypress PSoC line? It has built-in support for capacative touch sense and is quite a bit cheaper than the QT160. It's about cost comparable to using the ATtiny, as you don't need the four potentiometers, only 2 external components needed, a cap and a resistor. Also they provide firmware for capacitive sensing which wouldn't require you to recalibrate the sensors after leaving them without touches for a minute.

Drake Coldwinter wrote at 24 Apr 2007, 18.12:

This is very interesting althrough I don't fully understand how it works...If I put the metal sheet between a wood tile and a plexiglass tile would it work ? I would wish to do a wood base with plexyglass buttons over it, can I use this technology on it ? that way the buttons will not be pressed at all, just stepped over right ? also, I know a place to order all the electronic components, but I don't have a chip programmer... I guess that is a deep problem for the project... finally I would like to plug it on xbox not in PC, I have already a DDR pad which I can salvage the parts.

drew wrote at 24 Apr 2007, 0.24:

To save people a download, here's the comment in the source code that you probably wanted to see: ;The detectX-routines work like this: ;First of all the pin is grounded, so the pad will get flooded with electrons. ;If there is a foot above the pad, the electrons will induce a shift of ;electrons in your body too. After waiting some time for this process to ;complete (and, meanwhile, turning off the leds so they can't disturb the ;measuring process) the pin is tristated and the time needed for the ;50K potmeter to pump all the electrons out again is measured. Because ;there's a bigger energy shift when your foot is above a pad, the time ;needed will be bigger then. This is compared to a running average, if the ;value is more than the average + a few % then the detection counts as a hit ;and increases ctr1.

Sprite_tm wrote at 23 Apr 2007, 21.55:

Mipi: Both work OK, it's designed to handle all the pads independently so stepping 2 or even 3 or 4 pads isn't a problem. Freeze arrows in theory would give a problem if they last longer than 20 seconds... but I haven't found one that long yet :) I just added a firmware update to my page; autodetection works even better with it. The files in it are dated around 2005, though, so I can't answer too much questions on the exact workings of it.

Mipi wrote at 23 Apr 2007, 20.05:

Nice work! How about in cases when two pads need to stepped simultaneously and/or with freeze arrows? Are there any problems with contacts? (going to build one anyway..)

Peter wrote at 23 Feb 2007, 16.09:

Thanks for the great idea and the code! I built one and it work very well; its totally accurate and doesnt slide around, the stealth capabilities make it even better. I used an Attiny2313 which has now replaced the AT90S2313 (its considered mature by Atmel). It is fully compatible, and if you disable the clock prescaler in the fuse bits, you dont even need a crystal oscillator! The internal 8mhz RC oscillator is accurat enough. I used 1K resistors for the LEDs, and powered the circuit from the sound card itself. Pins 1, 8 and 9 are +5v. 4 and 5 are ground. The pad worked perfectly with Stepmania and DDR for PC. Cofiguring it in DDR is a bit of a trick, because the pins 3 and 6 on the game port are for analog signals from the potentiometers on a joystick's X and Y axis. Pulling these pins up with the resistors make DDR think that the joystick is being pushed when you are configuring the inputs, and interprets that signal for the desired control. To work around this, step on the pad before you select the control to be configured. With such a curcuit, I wonder why people still build dance mats with conventional switches. Thanks, Sprite!

clay wrote at 16 Feb 2007, 3.32:

way to complicated for me, but it is a great idea

Clay wrote at 16 Jan 2007, 18.50:

That is intense. If I wasn't so electronically retarded I would totally build that.

Dave wrote at 21 Nov 2006, 6.05:

Hi, I'm wondering how your pad is working, it seems to be connected to a constant voltage, how can you sense with it? Cheers, Dave.

Sprite_tm wrote at 20 Oct 2006, 12.08:

whahahahahahahaha :)

Sprite_tm wrote at 11 Oct 2006, 12.46:

The plate size isn't that important, from memory I've used 30x30cm units myself but if you re-adjust the trimmers you can use just about any size. The software is self-compensating, the trimmers are just there to get the general range right; it doesn't matter if they're off a bit.

Matt wrote at 11 Oct 2006, 4.31:

Any info on getting the plate size correct, or is it all up to the use of the trimmers? I have a USB microcontroller I think I'll try this with, could make it compatable with both the PC and the xbox :)

Janna wrote at 11 Oct 2006, 3.08:

That's awesome! I think I'm going to have to make one...and make someone else interpret the schematics. Thank goodness StepMania makes a linux distro.

Leave a comment:

Your name:

What does this picture say?
Sorry, this is a captcha

Your comment:

© 2006-2016 Sprite_tm - Contact