Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't get image from the Wiretouch Monitor #4

Open
hongyu4671 opened this issue Mar 10, 2019 · 17 comments
Open

Can't get image from the Wiretouch Monitor #4

hongyu4671 opened this issue Mar 10, 2019 · 17 comments

Comments

@hongyu4671
Copy link

Hi guys,

I have followed the Wiretouch project description step by step. When the circuit (v1_30) and the sensor plate are finished, I have changed all parameters, unfortunately still can not get any image. When I change the “HALFWAVE AMP” in WireTouch Monitor 0.24, nothing changed (see in attachment "Screen Recording"). The parameters look like worked well.

OSX Version: 10.14.3
Xcode Version: 9.2
(I used OPA2350EA/250 for main-board, sensor-board and signal-board).

Circuit

Does anyone have the same problem?
#Question

@arminbw
Copy link
Owner

arminbw commented Mar 14, 2019

Hi Hong,

Your build looks great! Let’s hope we can get it going soon.

I’ve had a look at the video you sent me and the images look a bit too uniform to me. Also, the halfwave amp doesn't seem to do much at all. But before we go into that, please try the following:

  • Set sample delay to 1.
  • Set output amp to 1.
  • Set the frequency to something high, like 640 kHz or higher.
  • Now turn up the halfwave amp until the first grey or white dots start to appear on the black screen.
  • Now hold your hand above the sensor matrix. Put something in-between the wires and your hand. Don’t touch the wires themselves. Now slowly turn up the output amp until you see your hand.

If you still get nothing, you will need an oscilloscope to narrow down the problem.

  • First of all alter the firmware so it only measures a single crosspoint. I am doing that in my video at 7:18. Set sample = measure_one(4, 4); Now you are measuring a single point in the upper left corner of the matrix.
  • Search for the signal where the signal board connects with the sensor matrix. One of the "columns" of the matrix should show a clean 5V wave. If not, something is wrong on the signal board – or the main board.
  • If you found your wave, let’s check the sensor board. Be careful, though. You don’t want to short circuit anything! First open the sensor-board_v1_3.brd file to get an overview. Then have a look at PIN 5 of U13 (the first multiplexer). Does the oscilloscope show a wave? Does its amplitude decrease when you put your fist over the upper left corner of your matrix?

@hongyu4671
Copy link
Author

Dear Armin,

thanks for your reply.

After I set the sample delay to 1, output amp to 1 and frequency to 640kHz, I try to increase the halfwave amp to get some dots. Only when I set gamma to 16.00, then I can get some grey dots. But I can't get the hand shape by turning the output amp(video in attachment).

As you said, I set sample = measure_one(4, 4), at first, I can get a 5v wave from pin7 in signal board (picture in attachment). I felt there have some open circuit in the signal board (I use a socket to connect the ICs), after I presse the Multiplexer in signal board then I can't get any thing.

I will make new main and signal board. If I get something new, I will update this issue.

Thanks a lot for your advices!

Screen Recording 2019-03-20 at 11 13 16
5V_Wave

@arminbw
Copy link
Owner

arminbw commented Mar 30, 2019

I am not sure if I understood you correctly. When you remove the multiplexer from your signal board, you can measure a 5V wave at P7 (compare attachment)?

If that is the case, I would suggest to check if p7 (and something else) is somehow shorted to the ground plane – because p7 shouldn't be connected to anything if the multiplexer is missing.

Screenshot 2019-03-30 at 18 54 37

If you didn't solder the ICs yet, you might want to build your signal board on the bread board. This is what I did, to reduce prototyping costs.

@hongyu4671
Copy link
Author

Dear Arminbw,

I have made new main, signal and sensor board (without socket). As you suggested, I have measured some pins.

  • with code: measure_one(4, 4)
    I got a 5v from pin5 of Signal_board
    Signal_board_Pin5

  • with code: measure_one(4, 4)
    I got a wave from PIN5 of U13 of Sensor_board. After I press the matrix, the Vmin and Vbas decreased, Vpp increased. (Without press, just touch the matrix, the signal can not decrease that much)
    before
    after

  • with code: measure_one(m, l)
    the pins, which connect with the matrix, seemed like work well. (The signals have the shift)
    Signal_board_Pin2
    Signal_board_Pin32

  • with code: measure_one(m, l)
    when I pressed the matrix, I can only see some black lines. I can not tune the parameters to get the hand shape.
    Q_CPA_2

Thanks a lot for your advices!

@arminbw
Copy link
Owner

arminbw commented Apr 13, 2019

OK, let me try to sum this up: You rebuild all boards and you get different results now. So there was something wrong with the old ones. I suspect there was a short on the signal board, but we don't know for sure.

The measurement you made with measure_one(4,4) on the new setup tells us the following:

  • The signal board is sending a nice 5V square wave to the sensor matrix.

  • The sensor board is receiving the coupled wave.

  • The observable changes on PIN5 on UI13 are very small.

Please note: you shoudn't press. We are not measuring contact or pressure, but proximity by altering the electrical field.

I covered my sensor matrix with a 1.5mm thick glass plate, which I took out of a picture frame. At the beginning I used plastic foils, but glass worked best. Please try that or something similar and see if you can still see small changes on PIN5 of U13 on the sensor board when you put your fist on the upper left corner of the matrix (measure_one(4,4)). The difference can be very subtle, but it should be still noticeable on the oscilloscope. The image I attached shows what I get at 132kHz and at ca. 750kHz.

measurements

You see, the amplitude changes just a little bit. But If you see less of a difference, you might want to try other cover materials. Also try using different wires for your sensor matrix. Don't rebuild the whole matrix. Just build a single cross point for testing purposes.

If you get something similar, you should be able to measure the same signals where the sensor board connects with the mother board - on P4. Now follow the trace on the mother board. Measure PIN3 of OPAMP-3 while pulling up the "halfwave amp" in the GUI. How does it look like? Can you still spot a difference when you put your fist on the glass?

@arminbw
Copy link
Owner

arminbw commented Apr 13, 2019

As a side note: I think it’s a typo, but if you want to measure the whole matrix, change the firmware code back to measure_one(k, l) not measure_one(m, l).

@hongyu4671
Copy link
Author

I have changed the cover material to 1.5mm glass. As you suggested, I use two Dupont Line to make the cross. Now I can get some big change of the signal.

  • Code: measure_one(4,4) I can get nearly 1V change from the Pin5 of U13
    Before put fist (Pin5 of U13)
    1-1
    After put fist (Pin5 of U13)
    1-2

  • Code: measure_one(4,4) when I change "halfwave amp" signal from Pin3 of OPAMP-3 (mother board) can get the change as in the following pics
    2-1
    2-2

  • Code: measure_one(4,4) When I put my fist on the glass, I can see some change in the viewer of GUI. When I put my fist on, It seems like more dots came out
    Screen Recording 2019-04-18 at 15 45 37

The PCB boards seems like works good, is it time to rebuild the matrix on glass?

Btw, its a typo for the (m, l)

@arminbw
Copy link
Owner

arminbw commented Apr 25, 2019

Image 1 and 2 look pretty good!

Regarding image 3 and 4, where you measure Pin3 of OPAMP-3: Did you reduce the frequency (269kHz?) here to get better measurements? If not, something might be wrong here. Please check. And can you still see a difference in the wave when you lift and lower your fist? I you can see a difference on the oscilloscope, increase the halfwave amp. Try to "cut away" the not relevant part of the wave. Compare figure 2 (E and F) in the paper.

Please don’t rebuild the matrix until we get a clear visual difference on the screen while measuring a single crosspoint. I am not speaking of some dots. The whole screen should turn from black to white while you lower your fist on the crosspoint. If you only get a grey screen, either the output amp and/or the halfwave amp are set too high. Or something else is still wrong and needs to get fixed.

Also, please reduce the sample delay while debugging.

@arminbw
Copy link
Owner

arminbw commented May 26, 2019

Hi Hong, did you make any progress? Can I support you in any way?

@hongyu4671
Copy link
Author

hongyu4671 commented May 28, 2019 via email

@hongyu4671
Copy link
Author

Hi Arminbw,

I have tried follow the steps, which you showed in your Youtube video, I can get a better result as below (Gif 1). (Test One single cross)
(Halfwave amp: 246, Output amp: 4, Sample delay: 1, Frequency: 356kHz)

At the beginning of the video, first 2 times, the other hand, which not upon the cross point, touched the laptop metal cover, which should connect with ground.

The last 2 times, the other hand didn’t touch anything (the result in the software was not that clear).
Gif1

Here have a strange thing, when I connect oscilloscope with the PIN3 of OPAMP-3 and connect the probe ground with ground from the mainboard, the result seems better. And the other hand, which not upon the cross, did not touch anything. And the signal from PIN3 of OPAMP-3 have the change from 25mV (before I put fist) to 18mV (after I put fist)
Gif2

dso_06_20_01_34_21
dso_06_20_01_35_04

And I have a question here, the white or grey dots are the noise of the circuit, aren't they? We should change the Halfwave amp to get a pure dark screen, right? But when I change it below 246, the screen goes to dark, when I put my fist on top, nothing changes. When I change it beyond 247, the screen goes completely white.

When I increase the Signal Frequency to 640, the result even better. It changes from grey to full white.
Gif3

Many thanks for your help!

@hongyu4671
Copy link
Author

And one more thing, I turn off oscilloscope, remove the connection from Pin3 of OPAMP-3, but still connect the ground pin from mainboard with the oscilloscope's ground, the result are good as below.
Gif4

@hongyu4671
Copy link
Author

Hi Arminbw,

If I didn't misunderstand the code, measure_one(k, l), when we change the k, the signal from signal board should change.

When we use measure_one(0, 0), the signal should come from Pin 1 of signal board,
measure_one(1, 0), signal should from Pin 2, right?

But when I change the code, the signal doesn't have any change, It comes always from Pin 7 and Pin 23, which should get with code measure_one(6, l) and measure_one(22,l)

All the signals are same like bellow.
dso_06_20_20_09_58

@arminbw
Copy link
Owner

arminbw commented Jul 8, 2019

Hi Hong,

a change from 25mV to 18mV seems pretty good to me. The video you posted (where you are using 640kHz) looks good too, but the screen should be black when your hand is raised, not grey.

Try to reduce the halfwave amp a bit while lifting your hand. Turn it lower than 247. The screen should be black. Then try to increase the output amp a little bit (higher than 1). When the screen turns grey, reduce the output amp a bit again, so the screen is black again. Then lower your hand and see if you can turn the screen white. It can be a bit tricky to get the full range/sensitivity.

Regarding your other question: Yes, grounding the oscilloscope while making measurements helps. The motherboard has an extra pin to support that. Just be careful not to short anything. And yes, grounding the board and making measurements can alter the results a bit. Grounding your laptop (connecting it with a different power supply or cable) might also change the results. Unfortunately there are lots of variables.

Regarding your last post: Yes, measure_one(0,0) should only send the signal to Pin 1. If you see the wave at Pin 7 and/or Pin 23, something is wrong. Maybe the software isn't running – or maybe the multiplexer isn't working correctly. You could test this with the oscilloscope.
The following image shows what mux1 should do when you set sample = measure_one(1, 0).

mux1_measure_1_0

@hongyu4671
Copy link
Author

Hi arminbw,

I have tested the 2 MUX in signal board, the signal looks good. I think last time, I forgot to run the software.

  • With code measure_one(1,1), after tuning the parameter I can get the screen from black to grey (when my fist touch the wire), when my other hand hold the ground, it can go to white (when my fist touch the wire).
    屏幕录制 2019-07-15 下午1 29 25
    with the circuit below:
    20190715_160213

  • With code measure_one(1,1), when I changed the circuit to 6 signal lines, 8 sensor lines (circuit below), I can not get the same good result as before.
    11_6x8
    20190715_155418

  • With code measure_one(k, l), (k=6, l=8), noise came up, and it can not be removed.
    屏幕录制 2019-07-15 下午3 54 421

@arminbw
Copy link
Owner

arminbw commented Oct 17, 2019

Hi Hong, sorry for the long delay. I will try to replicate your setup over the weekend.

@arminbw
Copy link
Owner

arminbw commented Nov 24, 2019

I am trying to sum up your last post and comment on it point-by-point:

  • Your MUX seems to work correctly. That’s good!
  • measure_one(1,1) shows some promising results. Looking at your photo, I would suggest putting the glass not in-between the wires, but on top of it. Your hand should not touch the wires directly.
  • When you set signalboardWires = 6 and sensorboardWires = 8 you get diagonal black lines. The lines you are seeing are not necessarily noise. Your board´s firmware is sending 6x8 crosspoints to your computer, but wiretouch_monitor_osx.app is still expecting 32x22 crosspoints. To get a correct visualization you would need to change the values in wtmApp.h and then re-compile the software.

An easier way to quickly check if your small 6x8 build is working, is to set your firmware code back to 32x22 crosspoints. The screen should turn all white with a little black rectangle inside.

small_build_breadboard
small_build_monitor

I tried to replicate your setup (see pictures above). I can track some movement in the black area, but there is a lot of noise bleeding in. I would suggest to increase the distance of the wires (e.g. 1cm x 1cm squares) and to try different wire gauges. I’m sorry that I can’t give you better advise at the moment than to basically ”play with all parameters”. Debugging hardware prototypes remotely is …not easy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants