365 Button Capacitive Touch Array?


#1

This is called an Everyday Calander.

This will be open sourced later they say.

The capacitive touch buttons got me thinking about what is the most efficient way to create a capacity touch button matrix where you can have 365 individual touch buttons.

I’ve seen IC’s that allow you to create a cap touch grid of 64 buttons based on their data sheet.

365 buttons / 64 buttons per cap touch IC would mean you would need 5.7 chips to have enough inputs to handle 365 buttons.

Anybody else ever tried to do anything like this before?

I’m thinking a rotary encoder button with push trigger would allow you to scroll through all the individual LED’s without needing all the cap touch buttons and the huge PCB the buttons are printed on.

I think this is a good concept for the visually keeping track of if you’re keeping new daily habits or not.

I would like to build one for myself with more features.

I want to use 365 Neopixels instead of single color LED’s.

Any other ideas out there for a low-cost way to interface with 365 buttons as you see above?


#2

If you have two 20-channel ones, you could ‘multiplex’ them. Put them along the top and sides, to form an X,Y coordinate system. Then, if you touch a button one of each sensor should get triggered, allowing you to get it’s location.


#3

What @Moors7 suggests would be a space multiplex, but a time multiplex would also be something to consider.
A touch usually takes a couple hundred milliseconds, during that periode you could probably “scan” multiple portions of the sensor board one after the other.

BTW, are you sure these are individual cap “buttons”. I’ve done a similar thing with a signle 4-wire resisitive touch screen overlay that just reports the coordinate of the touch. As long you don’t need multi touch, a resistive touch panel should do just fine.


#4

That makes sense. Multiplexing is a new concept to me but the way you explained it sounds simple enough to understand.

Time Multiplex is something new to me. I’ll need to do some research on that one to better understand how it works.

They say they are using capacitive touch buttons.

I prefer the buttons vs a clear sheet resistive touch panel I think.

But still a rotary dial with push down trigger seems like a cheaper way to accomplish the same thing although it’s not quite the same as being able to push all the buttons which I’m sure is a different experience. That huge PCB seems overkill and can’t be that cheap to produce.

I’m thinking a rotary encoder button like this with a nice custom dial was my first alternative interface solution I thought could work.

Something about being able to touch those buttons has to be satisfying so I’m exploring all options.


#5

Just a thought, instead of capacitive, the traces could be exposed and then shorted by a finger touch. Although the exposed copper could tarnish over time especially from oils in the skin. That could cause intermittent/ incomplete touches over time. Capacitive is more elegant and should last longer.


#6

I’m not sure if you are aware, but this project is Simone Gertz’s, “get back on her feet” project now that she is recovering from brain cancer surgery. If you enjoy her project, perhaps you will consider supporting her (and her team’s) Kickstarter as a thank you for the inspiration.


#7

@LabSpokane All the links to her Kickstarter were posted in the initial post for full disclosure.

It’s an open source project, all files will be release to the public.

Personally I want more features, it’s a cool concept. I’m happy the kickstarter is doing so well.


#8

I have developed some environmental allergies over the past few years and now if I don’t take a daily allergy pill, I feel pretty miserable. Now that it is Spring, I need that daily pill but I keep forgetting whether I took it. Sometimes in the evening, sometimes in the morning… it’s all to sporadic to remember. So I remembered seeing this Every Day Calendar here and decided I needed a more compact (and less expensive) version of this to put inside my vanity cabinet. Besides, the Every Day Calendar Kickstarter has closed and they are in their production phase.

I dove pretty far down this rabbit hole designing a one-month calendar that would have basically the same functionality but only give you 31 days, a selectable month indicator (Jan, Feb, Mar, etc.) and have multiple users (so both my wife and I could share it.) Without remembering that this thread existed, I also decided that neopixels under the keys would be a more versatility design (for various reasons like coding missed days as "red’ or different users could use different color schemes, or just show random colorful effects, etc.) Using neopixels also simplifies the design since I don’t have to use GPIO expanders or LED driver ICs; all I have to do is string 48 neopixels together and supply power and ground to each. (I think that the current day LED should “breathe”, like the Particle device status LED, reminding you that you need to complete the task and then end up solid/steady once pressed.)

I designed the bottom “controller” board with 48 capacitive touch inputs (and headers for attaching to a separate touch plate PCB), 48 neopixels (one under each key), six 8-channel capacitive touch controller ICs (I2C bus comms), three 2-channel I2C multiplexers and headers for an Argon (or any mesh device).

Now I am moving on to the touch plate PCB with the capacitive touch pads and I’m realizing that designing the touch pads is a major design hurdle! I am trying to do the same type of design as in the Every Day Calendar (solid pad with character cutouts) because letting the LED light shine through the PCB is a major design attraction/feature. I’m using Eagle and making a copper pad with a cutout is painful. I even tried making the pad design in Inkscape and saving it as a .dxf file for import to Eagle (using this tutorial). The import works, but the pad becomes an outline using wires rather than a solid, filled polygon. I know this isn’t an Eagle forum, but does anyone have advanced PCB design experience that can suggest the best method to make the below image a solid polygon without having to manually trace the outline using the polygon tool?

The .dxf designed in Inkscape (black should be solid copper, the numbers should be bare PCB without any soldermask, copper, silkscreen, etc.):
image

The pad after importing the .dxf into Eagle:
image


#9

Very cool to hear you are progressing with this useful idea / product.

I was also thinking Neo Pixels were ideal for the LED’s for the same reasons you state.

Here is a way to do what you want but its in Kicad not Eagle.


#10

Did you make any more progress on this cap touch button array?


#11

Yes. I designed the entire thing and it’s ready to send to a PCB fabhouse. However, since I have zero experience with all these chips, I took a step back and designed 3 evaluation boards for a breadboard prototype. First there is a breakout board for the CAP1208 8-Channel Capacitive Touch Controller chip. Second a breakout for the TCA9543A 2-Channel I2C Multiplexer. And lastly, a breakout for a Richtek RT6255 Switching Step-Down Converter chip (4.5V-18V input, 5V,5A output).

I added all the v0.x files I have so far to GitHub (https://github.com/ninjatill/MonthCalendar) if you want to tinker or review the design. I do not have an official BOM put together yet because all the components are in my Digikey shopping cart still.

I have not written any code at this point.


#12

Very cool to see all the parts coming together!

Do you and drawling of what the keypad will look like?