wierd serial output

This is the serial output i get from a device(wds500 wind gauge) i am trying to use in my projekt. Does any one have a clue how i could possibly straiten the curve out. Or possibly what it could be the cause of the curve. I am using a software oscilloscope http://www.zeitnitz.de/Christian/scope_en but i am quite certain that its not the oscilloscope that is showing wrong curve.

Amazing that you are getting anything at all, but the fact of the matter is that you can't use a soundcard-based scope with digital signals. The curve you are seeing likely has something to do with filtering or bypass caps in the input circuitry of the card.

Now - if you can find those caps, and remove them, then bridge the gap - you would then have a scope that would show you what you need, perhaps...

Oh man i can't afford a real oscilloscope... but when i connect the aurdino TTL serial line to the oscilloscope i get a perfect digital line. So thats what makes me believe the sound card thing actually works.

I figured it out apparently the curve is in this oscilloscope (yes it was the oscilloscope)or maby all sound card oscilloscopes is not based on the difference between ground and the measurement voltage but based on the difference from the last measurement.

Very strange, or actually not now when i think of it. Cause it is a sound card and sound for the sound card is the changes in voltages. The strange thing however is why the software engineer did not counteract this in his program :-? It's an easy fix...

Interesting - typically sound cards usually filter out DC voltage changes and are not useful for anything but audio/AC waveforms (you see this mentioned a lot on forums where people discuss the merits of soundcard-based oscopes).

Something you might want to look into (if you are only planning on looking at digital signals) is a software digital logic analyzer; they typically get their input from a parallel port (of course, your PC has to have a parallel port - many don't today).

Another option would be to monitor with another Arduino; plenty of projects out there using an Arduino as a oscope (curiously, few using it as a logic analyzer; not sure why).

I'm actually hoping to pick up a used Tektronix dual-input 60 MHz scope from a guy local to me off of Craigslist; according to what he's posted about it, it's been factory calibrated in the recent past (and a pretty good "steal" at $150).


Do you really need to decode the signal, reverse engineer what is being sent? Surely someone's invented this wheel already? Although I must admit that I couldn't find the spec of the data sent when I looked. Maybe try writing to....


?? After all, it would help them sell more units if the system was "hobbyist friendly".

As for the slewed display... it is adequate for deciphering the code in the signal, isn't it? That's the beauty of digital signals, after all.... as long as you can tell "high" from "low", HOW high/ low doesn't matter, does it? Now that you've found the place to connect to within your device's circuit, as long as you are sure that the weird voltages are just an artifact of the test instrument, you're well on the way to an Arduino based device to capture "utterances" from the wind sensor, and "play" with them until you figure out the code being used.

Well the problem is that my arduino cant tell the difference between high and low this time. Cause the processor that i get the serial data from does not use ground as zero it uses 3,3 volts as high and something under 3,3 volts as low i am guessing that something like 2,5v is low but i can't measure it, my multimeter just isn't fast enough to catch 1200 baud.

This is how i plan to solve it: All i need to do is measure the low voltage and push down the entire signal with a resistor so that low becomes under 0,6 volt(magical transistor voltage) and high does not. Then use a dual transistor boaster to push high to 5 volts and low stay at a low voltage.

But i bought a cheap Hobby scope it should arrive in a couple of days.

upm-marketing wouldn't even let me buy one from the beginning, unless i had prof that i owned the whether station first. But i found it at a dealer that couldn't care less, money is money right... ;)

If that doesn't work then use a voltage comparator like an LM339.

Well the problem that i had was that i measured on the wrong point.
There was another point that gave a clear 3v binary signal.

Here is my “decryption” of that signal if anyone else wants to use the sensor:
It is not a normal serial signal so you cant just connect it to your Rx line.

De coding
A signal looks like this
10101100101101001101001011001100110010110011001100110010110011001 10011001
10101100101101001101001011001100110010110011001100110010110011001 10100101
10101100101101001101001011001100110010110011001100110010110011001 01101001

First of all we need to decifere the first 64 digits
witch is quite easy you invert digit 1 & 2 so they become 01. Then you jump over
two digits and invert digit 5 & 6 (they become 00) then you jump over two digits again
and invert digit 9 & 10 and so on until you come to digit 40. If digit 40 is 1 you jump
over 4 digits instead of 2 and continue until you get to digit 64.

At this time your signal should look like this:
|-----------Static--------------||-dir-| |---------speed--------||Some kind of id but seams to be affected by wind strength

static is a number that may tell the station what kind of sensor it is.

Direction 7 digits, a 4 bit binary number each number has a assigned direction.
00 00 11 1 =
 0  0  1 1 = 3

First two digits will be 11 = 1 or 00 = 0 next to will be the same and the
third is also the same but the last bit is only one digit.
in this case it will be converted to "0011"
the conversion scheme:
n  =1111 = 16
nnv=1110 = 15
nv =1100 = 12
vvn=1101 = 13
v  =1000 = 8
vvs=1001 = 9
sv =1011 = 11
ssv=1010 = 10
s  =0000 = 0
sso=0001 = 1
so =0011 = 3
oos=0010 = 2
o  =0111 = 7
noo=0110 = 6
no =0100 = 4
nno=0101 = 5

speed is a binary number were a 1 is represented by two 1's and a 0 by two 0's.

00 00 00 00 00 00 00 11 11 11 11 11 =
 0  0  0  0  0  0  0  1  1  1  1  1 = 31

I have not researched that much about the wind speed yeat. But i think it works like this:
It's just a normal number always under or equal to 60.
When the number 60 comes up it means the wind is faster than the sensor can measure.
Any number under that is just some unit of speed, i have not figured
out witch unit it is yeat. Since i have not been able to compare it with any other sensors.