Capacitive touch sensing

Presenting “6buttons”; a simple six button keypad based on the QProx QT160 charge transfer proximity sensor chip.

More details to come later, wanted to get some pictures and video online tonight.

simple schematic – i plan a “backpack” pcb which will provide some visual feedback, a clicking noise and translate the six outputs into an i2c bus device.

the brains of the operation, this chip does all the work. special mylar capacitors are required for it to work properly. i tried cheap-o ceramics with terrible results. the orange thing is a 10mhz resonator.

the “buttons” are printed out on plain paper, using the silkscreen layer from my pcb layout program. the capacitive dielectric is provided by the FR4 pcb material, the paper and a 1/8th inch thick layer of plexiglas; I guess you call that a multilayer capacitor!

the sensors are simple copper rings, which radiate the electrostatic field this chip uses to sense proximity. a ground plane pour around the IC helps to minimize cross-talk between sensor channels and prevent stray fields from detecting proximity around the chip itself. the capacitors near the chip also sense proximity and will need to be shielded with aluminum foil or something.

forgive the craptastic music in the video!

edit: also read Capacitive Sensing Continued

Random picture

I found this digging around some old forgotten directories on my web server.  It appears to be four dimly lit RGB leds.

5mm rgb led

LED Clock; Firmware taking shape

The firmware for my LED Sign / Clock project is taking shape.  I’ve worked out my initial wishlist of features, and put together a basic menu structure.  I figured a menu is the  easiest way to access a lot of options, while only relying on two buttons.

The basic menu consists of options for setting the time and date; minute, hour, day, date, month, year.   The basic options are pretty self explanatory.  I have also planned some more advanced options:

1. Adjustable display brightness – Varying the duty cycle and refresh rate of the matrix can effect its brightness.  I need to make a simple scale for these variances to allow for two or three brightness levels.

2. Adjustable scrolling speed – The program draws the same information several hundred times per ‘scroll’, changing this counter affects how fast the display appears to scroll.

3. Selectable time format – User can choose between 12 hour AM/PM time and 24 hours ‘Military’ formats

4. Message Mode – User can enable / disable scrolling messages as well as display a single message, a random message or messages in sequence.

Other than that, the code is still pretty basic.  I’ve completed a bunch of internal fixes, like the scrolling code now handles messages of variable lengths. up to sixteen characters.  I’ve also created i2c eeprom reading routines to extract menu prompts and other text strings I’ve stored in the eeprom to save flash space on the chip.