flat assembler
Message board for the users of flat assembler.

Index > Non-x86 architectures > Fun tricks with ARM

Goto page 1, 2, 3, 4  Next
Author
Thread Post new topic Reply to topic
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 18 Apr 2008, 16:56
I have just been experimenting with an old project from 2 years back and managed to give some others at my office a little conundrum to solve.


Here is the situation:

I have a basic MCU board, connected to a serial port on a PC. The board has standard MCU, RAM, PSU and some I/O (all unconnected except for one serial port) and nothing else.

I put a small program into it that sends to the PC a message to say when someone is touching the board. And conversely, another message to say when the touch is removed.


Now here is the problem:

This board has no touch sensor or suchlike device. It is purely a software solution. So how does the program know when the board is being touched? Note: it only responds to the touch of a person.


If someone can solve this problem then I'll give you one star.
Post 18 Apr 2008, 16:56
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 18 Apr 2008, 17:48
maybe due to a variation of the frequency or the voltage induced by the capacity of the person? ( interferances )
the touch pads are based on this principle, but it can be detected without sensors...

if the board is a nude pcb it can be the solution...

Quote:
it only responds to the touch of a person.
or any animals?
Post 18 Apr 2008, 17:48
View user's profile Send private message Visit poster's website Reply with quote
AlexP



Joined: 14 Nov 2007
Posts: 561
Location: Out the window. Yes, that one.
AlexP 18 Apr 2008, 21:00
I have a touchpad on my laptop that does not work with anything but actual (living) flesh. Don't ask how I know, but it doesn't.
Post 18 Apr 2008, 21:00
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 01:03
edfed wrote:
maybe due to a variation of the frequency or the voltage induced by the capacity of the person? ( interferances )

This board has standard 13MHz and 32768Hz crystal oscillators, the frequency change (if any) is too tiny to detect in any reliable way. There are no analogue voltage sensors on the board.
edfed wrote:
the touch pads are based on this principle, but it can be detected without sensors...

if the board is a nude pcb it can be the solution...

Quote:
it only responds to the touch of a person.
or any animals?
I suppose any animals would also be detected, at this stage there are only humans available for testing. I don't think this is important though since the board has not got a touchpad sensor.
Post 19 Apr 2008, 01:03
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 19 Apr 2008, 01:48
if an I/O is high impedance and opened, it can detect the presence of a human because of the current induced by the body...

but i think it is not this too.

are you sure it is "purelly software"?
does the electronic enter in concideration for the problem?
Post 19 Apr 2008, 01:48
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 02:09
edfed wrote:
if an I/O is high impedance and opened, it can detect the presence of a human because of the current induced by the body...
It can still detect your touch even when you touch the top of the IC's (the black plastic) and make no contact with the electrical wiring.
edfed wrote:
but i think it is not this too.

are you sure it is "purelly software"?
does the electronic enter in concideration for the problem?
The software has to run on the electronics, so, yes, it does also involve the electronics. But not in the sense that there is a specifically designed sensor that the MCU reads. I think you have the knowledge to solve this. You line of questioning is good.
Post 19 Apr 2008, 02:09
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 19 Apr 2008, 02:41
then, it is a problem of electromagnetic compatibility.
fingers, body and nude I/O acts as antena

your board will not be CE compliant.

i meet the problem many times during digital and analog conceptions.
to avoid the problem ( it is a problem, an undesired effect ) you should put some decoupling capacitors on the near supply rails of components, pull up resistors on all NC pins and put an electromagnetic shield all over the sensible circuitry.

it is possible that the µP will function in an erratic manner, inducing perturbation in some high frequency modules.

yes! 15 MHz is a high frequency in electronics, very sensitive to parasites, and emit a lot of parasites too.

mobiles phones are full of electromagnetic shields to avoid to fix theses problems.

if it is not that, sorry, i don't see what it can be and as it is my 3rd try, i've lost and cannot post another one. Sad

what happens if the finger is very near ( < 5 mm ) of the board but don't touch it?

it remembers me one experience that i've done.
one generator and a oscilloscope separated by 5 meters of distance.
one wire on the output of the generator at 5 MHz sine @ 15V~
and the oscilloscope on the lowest resolutions . 5ns & 1 mV
i tryed to make appear the signal on the screen, and it works a bit.
Post 19 Apr 2008, 02:41
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 03:42
edfed wrote:
then, it is a problem of electromagnetic compatibility.
fingers, body and nude I/O acts as antena
There is no antenna effect.
edfed wrote:
your board will not be CE compliant.
The board is CE and FCC compliant
edfed wrote:
i meet the problem many times during digital and analog conceptions.
to avoid the problem ( it is a problem, an undesired effect ) you should put some decoupling capacitors on the near supply rails of components, pull up resistors on all NC pins and put an electromagnetic shield all over the sensible circuitry.
There are no MCU or IO pins that are NC. All chip connections are properly terminated. It is only a problem in the sense of a Q posed to get people to think about it. In the real application the board functions perfectly.
edfed wrote:
it is possible that the µP will function in an erratic manner, inducing perturbation in some high frequency modules.
There is no erratic operation, it is the software that has to be programmed to do the detection
edfed wrote:
yes! 15 MHz is a high frequency in electronics, very sensitive to parasites, and emit a lot of parasites too.

mobiles phones are full of electromagnetic shields to avoid to fix theses problems.

if it is not that, sorry, i don't see what it can be and as it is my 3rd try, i've lost and cannot post another one. Sad
Don't give up so easily, I can see you will get there with a little more thought.
edfed wrote:
what happens if the finger is very near ( < 5 mm ) of the board but don't touch it?
Nothing happens, the board must be physically touched.
edfed wrote:
it remembers me one experience that i've done.
one generator and a oscilloscope separated by 5 meters of distance.
one wire on the output of the generator at 5 MHz sine @ 15V~
and the oscilloscope on the lowest resolutions . 5ns & 1 mV
i tryed to make appear the signal on the screen, and it works a bit.
Yes, I have seen similar effects with hairline fractures on clock lines. Where boards only start working when a hand is brought close by. But this is not the case here, the board is not faulty in any way.
Post 19 Apr 2008, 03:42
View user's profile Send private message Visit poster's website Reply with quote
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 19 Apr 2008, 08:37
Umm...

1. Grounding effect introduced by the persons touch or

2. More likely, because it uses ARM/THUMB software/firmware (pretty lame) Rolling Eyes
Post 19 Apr 2008, 08:37
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 08:47
Alphonso wrote:
1. Grounding effect introduced by the persons touch
No electrical grounding (or charging) by the body is involved. Even the edge of the pcb and the black plastic of the ICs can be successfully detected.
Alphonso wrote:
or
2. More likely, because it uses ARM software (pretty lame) Rolling Eyes
Hehe, okay, the ARM thing is just to indicate the device, it is not related to the human arm (or any other body part you might wish to use to touch it).
Post 19 Apr 2008, 08:47
View user's profile Send private message Visit poster's website Reply with quote
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 19 Apr 2008, 11:01
So its not a thumb instruction! Hard to know if your after a serious answer or not Confused

If the board is perfect, no dry joints that fail when the board flexes, and the person does not introduce any capacitive coupling, earth loops or electrical signals, then all I can think of is on chip thermal monitoring, but I would not expect to see any change by touching the edge of the PCB only perhaps the MCU itself. Does this board exist or is it an imaginary scenario?
Post 19 Apr 2008, 11:01
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 11:18
I am being completely serious, it is a real board, nothing special about it, no faults, I could get another off the shelf and it will also work. The Thumb/ARM thing is an unfortunate coincidence, they have nothing to do with this touch detector.

You are correct, it is a thermal monitor, it needs a live person to "heat it up", but the answer is not quite that simple. There are no temperature sensors on the board or in any of the ICs.
Post 19 Apr 2008, 11:18
View user's profile Send private message Visit poster's website Reply with quote
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 19 Apr 2008, 13:03
revolution wrote:
I am being completely serious
Sorry, I had this misconception that you were toying with Edfed and stringing him along only to tell him in the end the Thumb joke or something similar. Twisted Evil
revolution wrote:
You are correct, it is a thermal monitor, it needs a live person to "heat it up", but the answer is not quite that simple. There are no temperature sensors on the board or in any of the ICs.
Well, there's the two crystals you mentioned, so you could monitor frequency change by counting the number of clocks providing the temperature coefficients of each crystal are relatively different. I'm only guessing here.
Post 19 Apr 2008, 13:03
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 13:12
Alphonso wrote:
Sorry, I had this misconception that you were toying with Edfed and stringing him along only to tell him in the end the Thumb joke or something similar. Twisted Evil
ooh, that would be cruel, I couldn't do that to edfed, he's never hurt me.
Alphonso wrote:
Well, there's the two crystals you mentioned, so you could monitor frequency change by counting the number of clocks providing the temperature coefficients of each crystal are relatively different. I'm only guessing here.
They are very unpredictable (at least for me), and probably not sensitive enough to detect 0.0001°C changes. Oh, yeah, I forgot to mention, it is very sensitive, that is why it can detect someone touching the edge of the board, I was quite amazed at how fast the temp change passes through the board.
Post 19 Apr 2008, 13:12
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 19 Apr 2008, 13:47
what happens if you touch the board not with alive human but with warm iron? of the fire of a zippo ?

Transistors can be used as temperature sensors. they con sume more current and are more sensitive to edge passing.

PLL?
Post 19 Apr 2008, 13:47
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 13:57
edfed wrote:
what happens if you touch the board not with alive human but with warm iron? of the fire of a zippo ?
I haven't tried it but I expect it would print "don't touch me", so that means it would think it is a touch.
edfed wrote:
Transistors can be used as temperature sensors. they con sume more current and are more sensitive to edge passing.
Yes, but there are no current sensors on the board.
edfed wrote:
PLL?
Good guess, but I can't check the feedback voltage, there are no A/D's on the board.
Post 19 Apr 2008, 13:57
View user's profile Send private message Visit poster's website Reply with quote
AlexP



Joined: 14 Nov 2007
Posts: 561
Location: Out the window. Yes, that one.
AlexP 19 Apr 2008, 16:01
Quote:
of the fire of a zippo ?
I would recommend against that.
Post 19 Apr 2008, 16:01
View user's profile Send private message Visit poster's website Reply with quote
Alphonso



Joined: 16 Jan 2007
Posts: 295
Alphonso 19 Apr 2008, 16:25
Umm.. 1/10000th of a degree sensing. Shocked

I'm starting to wonder about that seriousness again. Wink

What is the MCU part number, is the external RAM significant ? I'm clueless Sad
Post 19 Apr 2008, 16:25
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20309
Location: In your JS exploiting you and your system
revolution 19 Apr 2008, 16:37
The sense range sensitivity is only an estimate. I did some rough calculations and got around 100u°C, but I think worst case is 0.001°C, it is very very sensitive. It is only a relative detection though, it can't be calibrated to any particular temperature.

The MCU is PXA270. RAM/ROM/PSU not important.
Post 19 Apr 2008, 16:37
View user's profile Send private message Visit poster's website Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4330
Location: Now
edfed 19 Apr 2008, 17:19
check the phase shift induced by the change of temperature?
frequency don't change, just the phase of one the clocks ?
Post 19 Apr 2008, 17:19
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2, 3, 4  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.