Capacitive Sensing Continued

Hello readers from MAKE: as well as all other readers 🙂

My prototype touch sensor worked so well, that it hasn’t needed much changing. I sent the design off to Custom PCB, and less than a week later, I had a pile of circuit boards waiting for me.

I changed the layout around a little, mostly adding a 2×8 header for accepting a ribbon cable style connection. The header combines power, ground and outputs into a single connection, making it easier to connect to the main board of my larger project (sprinkler controller). Each touch output is paired with a ground wire, which I suppose makes it more resistant to interference. The caps I used this time are polyester film 220 nF, doubling the amount of capacitance compared to what was used on the prototype.

Yes, the ugly piece of plexi is still ugly. Don’t worry, it will be hidden from view. In the final configuration, this board and its plexiglas spacer will be inside a plastic project box. I’ll have a laminated “keypad” overlay affixed to the outside of the box so I can see where the buttons are. The spacer will be flipped around, going on the solder side, giving me enough clearance to flush-mount the sensor with the wall of the box. Flush mount is very important, as even the slightest air-gap will ruin the proximity sensing effect.

Nothing much to see solder side… a few smt passives set options on the chip, as well as decouple and filter the incoming power. The big resistor limits current for the meager power led which no one will ever see once the board is in use.

I’m very close to finishing the larger irrigation control project, hopefully sometime this week! Thanks for reading!

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

Touch Sensing Building Blocks I

The “core” building-block I mentioned in my last post is nearing completion, at least, the software.

I have my microcontroller handling “switch emulation” tasks. It can emulate either group of momentary switches or a group of toggle switches. Response time is real good in a dimly lit room, and it works decently well even with the overhead fluorescents turned on.

Right now I’m working on a basic keypad PCB I can throw together, for a ‘proof of concept’ prototype. The first keypads will likely only support 6 keys, and I’ll build from there. Six keys requires twelve LEDs, six of them need direct and discrete anode and cathode connection to the microcontroller. The other six LEDs are providing bias light for the sensors to “see”.

I should have a video up tomorrow of the breadboard in action, and hopefully some pcb’s by next weekend.

LEDs As Sensors: Revisted

Thanks to the folks at Make: and Hack A Day, my research into the area of using LEDs as sensors has been receiving a lot of attention. With this attention comes questions. I like receiving questions. Only thing I don’t like about answering questions in the e-mail is the knowledge is locked up. Sure I could repost the e-mails, but it is sometimes difficult to follow the context after the thought train has left the station. With my rekindled interest, I wanted to take a short moment and summarize a few things.

These are just my opinions – and I welcome debate and feedback on them – I especially welcome anyone to be challenged by them enough to prove me wrong. LEDs as Sensors offer at least two avenues of usefulness; communications and interface. I haven’t dipped even a toe into the communications side of the pool – all my work has been on interface.

These are the applications I feel LED Sensors are a poor fit to replace:
#1 – The touchpad on your notebook. Seriously, no one but a geek would enjoy having 128 or more bright LEDs glowing continuously to replace the little capacitive discharge pad that is used 95% of the time today.

#2 – The keys on your keyboard. LED sensors are pretty slow, even a modest typist would be hindered by the response time.

#3 – Any application that needs to work outdoors. LEDs and the Sun do not get along.

These are the application I feel LED Sensors may work well in:
#1 – Keypads and interactive displays used for Art and Music. These applications fit the ostentatious nature of the interface, where the controls are as much a work of art as a functional device.

Yep, that is it… that is the only application I think LED Sensors offer any strength in.
Here is an example – Musician / DJ sound effects tablet:

Imagine a thin tablet like device, glowing brightly with powerful LEDs in an otherwise darkened club / dance hall / etc. The tablet accepts an ordinary 8×11 sheet of transparency film. Printed on the film are the names of pre-programmed effects / samples /whatever. Under the film, evenly spaced trios of LEDs are used to detect the presence of a reflective object. The tablet connects into the rest of your system using regular MIDI or whatever other interface one can think of. This tablet is no different than boxes hobbyists and musicians have been building or buying for years, except, the mechanical switches have been replaced with eye catching LEDs.

Here are a few other questions that have been raised:

Q: Do I have to use red LEDs?
A: No, technically any LED color works. Red is the cheapest and that is what I use. Along with yellow, red is almost the most sensitive.

Q: I tried IR LEDs and they seem very sensitive, why not use those?
A: The point of using LEDs as Sensors is to have an ostentatious interface. It’s not going to be very showy if the light is invisible. If you want to use infrared LEDs, use one emitter and one photodiode / phototransistor – it is a LOT easier.

Q: Does this work with organic / flexible LED displays?
A: I have no idea. Those displays are largely theoretical and prototypical in nature – maybe in five years when I can buy one for a few dollars, I’ll experiment with it. The organic compounds used to manufacturer these displays also have big problems with humidity and overall short lifespan – neither are very positive traits.

Q: Can you send me your ASM code for such and such?
A: No, no I can’t. I do not have any ASM code – I do not know how to program in assembler. I have code written in Proton Basic, which I will happily share.

Q: I want to get started with microcontrollers?!
A: Excellent – I’m not going to help you. There is a huge learning curve involved – a lot of it can be skipped by spending money (on proton basic). Check out and for good microcontroller stuff. Check out for tons of info on learning microcontrollers.

Q: What microcontroller do you recommend?
A: I like the new PIC16F690 family from Microchip. It is a small inexpensive package that offers many features only found on larger processors (like dedicated i2c hardware). It also sports at least 10 ADC ports.


In closing, I would also like to share some basic info on what I’m working on at the moment. My current project is to get a stand alone system worked out for emulating mechanical switches. I consider this a valuable “core” building block behind the technology. I have momentary switches partly working, after that, a toggle switch shouldn’t be much harder. As a future goal, I would like to get “cores” built to emulate sliders and knobs. Those three elements should cover a great deal of the artistic / musical needs that I feel this technology is well suited for.

Thank you for visiting and I welcome your comments. My gmail is gordonthree – feel free to contact me about anything.

Water Filter Controller

The old adage “measure twice, cut once” has a realitve in the field of electronics engineering; “measure twice, design once” … ok, well maybe that’s a bit corny but anyway.

Turns out the controller I designed for my water filter is pretty much useles. My filter’s pump is not the 12vdc that I imagined it to be, instead, it is 24vac. So the two smt mosfets which I soldered to my pcb with generous amounts of solder, are not capable of switching AC. Worse, I had planned to power the controller itself off the psu for the pump, so the 7805 vreg I’m using will not appericate AC on its input terminals either.

I plan to salvage this situation however… using relays, either mechanical or electronic, as well as a separate power supply. So, I will use a ~12 volt unregulated supply to power a pair of mechanical relays, one for the pump, one for the valve, which in turn will be switched by the mosfets. Or, I can desolder / destroy / jumper over the mosfets, and run a +5v control signal to my outputs, for control of a solid state relay.

I need to price out the cost of mechanical vs solid state …. probably solid state will win, I think I can build a triac based ssr for under $2.

Phase Two Update

Only had a few hours to work on the project today, but I didn’t let that slow me down.

I revised the interface for setting the date, it now works like the channel namer, opposed to how it worked before.


User could move the cursor left and right, and had to press a third button to select which value to edit, then the user could increase/decrease the value and press the third button to save the new value.


User can only move the cursor from left to right, wrapping at the far-right to the far-left… this is using button 3… Buttons 1 and 2 increase/decrease the value under the cursor, saving it each time.

Added a new ‘screen’ to the display, it cycles through the temperature channels individually now, displaying their names.

Added a new interface for enabling and disabling channels. This effects which channels are displayed by the above mentioned screen.

The code now supports up to ten channels.

I found the source of the intermittent temperature readings by examining the recommended circuit versus what I had built. Maxim recommends a 200 ohm resistor to be placed in series with VCC for the MAX1668 … so, after doing that – no more random drop outs … weird eh?

I also discovered, when writing a rapid fire string of bytes to the eeprom, it likes you to wait ~10ms after each byte … which is mentioned in the eeprom datasheet, but I keep forgetting that.

Phase Two Continues

Well, aside from household chores, normal human interactions, eating, and what-not… I spent the weekend working on my MAX1668 temperature probe project.

  • More or less finished the “clock” portion of the display.
  • Integerated the clock porition with the temp probe code, so the display alternates between the two now.
  • Written an Interface for naming the temperature probe channels.

time display real time clock ds1307

Check out the updated writeup:

MAX1668 Phase2

Exploration of MAX1668

I’ve created a new page under Technology and Projects. Digging through my samples box, I came across the MAX1668 from Dallas-Maxim.

dallas-maxim five channel temperature probe max1668 i2c smbus microcontroller

The 1668 is a five channel temperature probe with a serial interface. My final goal for this project is to hook the 1668 up to a large VFD display for monitoring temperatures.

Check it out … there are a ton of pictures, so dialup beware!

Exploration of MAX1668