First and foremost -- I will not be using Arduino (Wiring) code for this project. This is my first foray into ASM/C on AVR. This means that the Arduino libraries I mention below will not actually be used in this project. I'm focussing on the hardware first, and the code will follow.
Second and possibly most important -- I have examined plenty of possibilities for capacitive touch sensing, but I want to accomplish it with the minimum in external components and expense. I want most of the heavy lifting being done by the AVR. This means no QTouch chips or anything of the sort. I am making this project on the lowest budget possible, since it's purely for education and entertainment, and it's kinda difficult to fit SOIC chips on veroboard/stripboard without an adapter.
That said, my quandary follows.
I have been examining many capacitive-touch USB-HID interface options out there. I would like to have at least 8 capacitive inputs, while maintaining the following qualities: - minimum calibration required (I don't want to have to manually recalibrate every time I plug it in -- an auto-calibration-on-boot routine is acceptable if necessary and if possible) - minimum external components relied on (no QT chips or other ICs, just an AVR and maybe a few resistors or capacitors -- ideally only one pin is used per capacitive "button")
I have looked at the following examples: - http://www.artemlive.com/cgi-bin/news?c=v&id=749 -- this project is pretty nice, but it only provides 6 inputs, and uses 12 pins to do it. Not elegant enough. - http://www.arduino.cc/playground/Code/CapacitiveSensor -- I have used this library before. I quite liked it, though I never tried to expand beyond the 6 PORTB pins it uses. Is it possible to get more than 6 inputs out of this approach? - http://www.arduino.cc/playground/Main/CapSense -- I like the way this sounds. One send pin, and an unspecified number of receive pins. Is there a limit? The documentation doesn't explicitly mention the maximum number of inputs that can be configured in this way, nor if two or more can be sensed simultaneously. What is the maximum number of inputs I can achieve using this method? Can those inputs be pressed and sensed simultaneously? - http://simon.derr.free.fr/site/spip/spip.php?article5 -- This is a perfect example of what I'm looking for...except it uses a PIC and I have lost my PIC programmer. 10 inputs, and the only extraneous equipment needed are two resistor networks. I even already have this one soldered together on some veroboard awaiting the day that I find my PIC programmer or cave and purchase a new one...but then I need to learn PIC programming. :P - http://sheepdogguides.com/arduino/art3capsen.htm -- This is another similarly elegant example. The schematic is reminiscent of the PIC project in its simplicity, and the only issue is that it stops at 8 inputs. Can this approach support more than 8 inputs?
If anyone can provide any decent advice or pointers to good resources on this kind of stuff, I wold be very apreciative.