geekhack
geekhack Projects => Making Stuff Together! => Topic started by: hasu on Tue, 13 October 2015, 03:33:08
-
A few capsense controllers already have existed in keyboard community and I've been interested for long time.
Finally I also implemented capsense controller using Atmel QMatrix method and tested it with Topre Realfoce 106s.
https://github.com/tmk/capsense_qmatrix
Sorry, this post currently may be mess and halfway. I'll orgnaize this first post better later to offer informations and resources.
Capsense value of Realforce 106S
(http://i.imgur.com/VB6dEWi.png)
Capsense value of IBM 4704 62key
(http://i.imgur.com/Z4hQS2T.png)
Capsense value
(http://i.imgur.com/yxxAxmz.png)
Circuit:
(http://i.imgur.com/D7Vnf1I.png)
Test in the wild
Realforce 106s:
(http://i.imgur.com/yrMt8ZJh.jpg)
http://imgur.com/a/f5ehq
IBM 4704 62-key:
(http://i.imgur.com/G8n961ch.jpg)
http://imgur.com/a/3Www5
Atmel QMatrix
Burst length
number of charge pulses in a burst measurement
Increasing BL increases signal resolution and sensitivity.
Sampling Resistor
discharges Sampling Capacitor(Cs) and controls discharge slope.
Increasing Rsmp increases sensitivity.
X-Y
X transmitter, burst, drive line
Y receiver, sense line
YA port: charge transfer control(top)
YB port: ADC mux input(bottom)
self/mutual capacitance sense
self
mutual
ATMEL QTouch Library
supports GCC tool chain
works with AVR with 2K flash(QTouch only)
QTouch
self
a button per two pins
QMatrix
mutual
http://www.atmel.com/products/TouchSolutions/bsw/qmatrix.aspx
QTouchADC
QTouchADC only requires 1-series resistor and 1-pin per channel. No other external components are required.
QTouchADC offers faster acquisition times with shorter burst lengths, resulting in lower power consumption.
Also can be used promixity sensing.
http://www.atmel.com/products/TouchSolutions/bsw/qtouchadc.aspx
Charge transfer
QTouch Composer
extension for Atmel Studio 6
3.3 Tracking Base Capacitance Value
http://www.ti.com/lit/an/slaa379/slaa379.pdf
TI explains a patent expired method here. (not mutual sensing)
Calibrating
compensate capacitance drift
http://www.embedded.com/design/prototyping-and-development/4008781/Getting-in-touch-with-capacitance-sensor-algorithms
QTouch and QMatrix Sesitivity Tuning: http://www.atmel.com/images/qtan0062.pdf
X-Y electrode design(capacitance)
Bust length
Sampling Capacitor Cs = 4.7-10nF
Sampling Resistor Rsmp = 470K(220K-1M)Ohm
Sensor Design Guide
http://www.atmel.com/images/doc10752.pdf
Promixity sensing
http://www.atmel.com/Images/doc10760.pdf
QTouch 180mm
QTouchADC 250mm
QMatrix 50mm
Resources
mTouch Theory
http://ww1.microchip.com/downloads/en/DeviceDoc/93064A.pdf
Capacitive sensing library for Arduino
http://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense
How Oscilloscope Probes Affect Your Measurement
Input capacitance of Probes really affect circuit of capacitive sensor.
http://www.tek.com/dl/51W_30013_0_MR_Letter_0.pdf
Analog Devices CapTouch
http://www.analog.com/media/en/technical-documentation/data-sheets/AD7147.pdf
IBM patent: Keyboard multiple switch assembly:
http://www.google.co.ug/patents/US4274752
xwhatsit's explanation on IBM method:
http://deskthority.net/f-o-r-s-a-l-e-f58/xwhatsit-s-grand-unified-ibm-capsense-usb-controller-thread-t7993-120.html#p165846
Model F keyboards and the 8048
http://www.halicery.com/Hardware/Intel%208042%20and%208048/Notes%20on%20IBM%20Model%20F%20Keyborads.html
Other projects
xwhatsit's Grand Unified IBM Capsense USB controller thread:
https://geekhack.org/index.php?topic=58138.0
http://deskthority.net/f-o-r-s-a-l-e-f58/xwhatsit-s-grand-unified-ibm-capsense-usb-controller-thread-t7993.html
Designing a custom Topre board(attheicearcade):
http://deskthority.net/workshop-f7/designing-a-custom-topre-board-t11734.html
DPH capsense controller:
https://geekhack.org/index.php?topic=52922.0
Topre capsense TP1684
This is resource for analyze Topre capsense method(TP1684).
Waveforms of TP1684 and signal charts of scan switches.
http://imgur.com/a/jat2a
(http://i.imgur.com/VMT2VYA.png)
-
I won't pretend to understand it all but it's awesome to see projects like these. Thanks for all the work you put into things like this hasu.
-
Im buying a realforce, love this hasu :thumb:
-
The community is incredibly lucky to have someone like Hasu with his amazing skills and constant pushing of the envelope :)
-
I was looking at Atmel's SAM D21 which is a Cortex M0+ with USB and 16x16 mutual capacitance. If Atmel's QMatrix will give acceptable performance, that chip would simplify controller design.
-
I just noticed this post and haven't had the chance to digest all of the posted information. Anyway, I wanted to say this is super exciting work, as I have really enjoyed working with your TMK firmware on a phosphor glow Model M controller. I have a Model F AT that could also use a new controller and would consider going this route if/when you think it's ready for wider consumption.
-
Added graphs on first post, which display change of capcitive sensing value by key stroke on Realforce 106S and IBM 4704(62key).
IBM 4704 has less variation in total compared with Realforoce, but very clear transition and hysteresis by mechanical buckling.
(http://i.imgur.com/yxxAxmz.png)
I'm working on analog input mouse keys with Realforce now.
-
Thread arise! Any chance research like this could ever turn into an alternative controller for the Realforce? The Realforce is, all said and done, my favorite keyboard and it would be incredible to be able to make it programmable. If I knew the engineering side of this a bit better I'd dig into it myself, but I'm clueless past programming firmware and some light soldering.
-
Added video of waveform of Topre capacitive sensoer TP1684 and signal charts of matrix scan in FC660C.
http://imgur.com/a/jat2a
when pressed
(http://i.imgur.com/VMT2VYA.png)
when released
(http://i.imgur.com/9YrOHL2.png)
-
Sorry for necro-bumping, but did you ever make any progress on this Hasu? I'm looking at making an attempt myself using the ATSAMD21G18 for making a tray-mount 60% PCB using QTouch/Qmatrix.
-
No new progress.
Interesting project! Share your findings with the community if possible.