XMIT wrote: ↑09 Jul 2016, 14:30
tigpha wrote: ↑May I ask a question about the PCB layout? What might be the purpose of the extra columns without holes in the loops, in between the columns which have holes in the loops where the ferrite beads attached to the keys pass through? Do these serve as reference loops against which the sensor loops are compared? Or do they serve to magnetically, or inductively separate the columns that are closer to each other?
This is pure speculation but I see two options:
1. The spare loops are used as a reference by the firmware.
2. The PCB is designed to have multiple designs used, and thus, offer multiple key positions.
Moreover, I'm not sure these goals are orthogonal. It's possible that with one design, one set of loops is used as sensing and the other for reference, and with another design the purposes of the loops are switched, if that makes sense.
The only way to really know for sure would be do dump, disassemble, and inspect the microcontroller code. I'm too lazy to do this, sorry.
hey! just saw this and thought id drop in a comment (sorry to resurrect a very dead thread!)
those extra traces aren't any thing like controller reference pads (err well they are, but the controller doesn't use them), or multiple optional key positions; rather, they're actually something far more clever!
so what happens is (xmit has like 99% of this already):
controller strobes column ("voice coil") current flows down the column that has holes in it, around the last pad, back up to the top.
then the current flows into the middle column ("reference coil") between two voice coils.
when it flows down this reference coil its actually flowing in such a way that the magnetic field generated from the flowing current is in the opposite direction from the strobed voice coil.
due to this, when a key is not depressed the current induced in the row traces ("sense coil") from both the voice coil, and its nearby reference coil cancel out as they are flowing in opposite directions. therefore little to no voltage (flowing current in a wire causes voltage, as the wire has some resistance to flow) can be sensed from the key.
so when a key is depressed, there is more coupling of the sense coil with voice coil than there is between the sense coil and the reference coil, so the current induced by the voice coil in the sense coil can be detected, as there's more of it.
the layout of the board is such that (for the most part) every two voice coils share a sense coil (the columns near the sense transformers get iffy, they're pulling some shenanigans there, but the following still holds), saving some space. they're using 74145 to select one of ten voice coils to strobe (sometimes its less). the reference coils for the sets of voice coils that each decoder / selector controls all go to the same star point ground under the decoder/selector. this is mainly for signal purity shenanigans. the effect of this is the ability to have NKRO without timing shenanigans, or much any thing else really!
as for the purpose of the variable resistor; its to control the current supply for the sense coil transformers. the 74145 is an inverted output selector, meaning that the selector changes the output of the pin to low to select a voice coil column, not to high.
hopefully that makes sense!
TL;DR : differential detection of changes in inductive coupling.