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

ELV EM 1000 #4

Closed
sonic74 opened this issue Feb 12, 2013 · 5 comments
Closed

ELV EM 1000 #4

sonic74 opened this issue Feb 12, 2013 · 5 comments

Comments

@sonic74
Copy link
Contributor

sonic74 commented Feb 12, 2013

Hello!
Sorry to open an issue for this, I couldn't find another way to contact you.
Thanks for sharing your code!
I'm trying to receive readings from the ELV EM 1000 energy meter sensors. Demodulated AM audio:
http://sven.killig.de/SDR/ELV%20EM%201000-S.wav
"-a" log:
http://sven.killig.de/SDR/ELV%20EM%201000-GZ.txt
I just need a short tip how "pulse_distance" (496/978) and "pulse_start distance" (961/1447) correspond to ".short_limit" and ".long_limit". Thanks in advance!

@merbanan
Copy link
Owner

Ok, pulse avg length = 466 and it looks like that is varies by 1% or so. That means that the distance between the pulses is the information carrier. Then we need to use the OOK_PWM_D type in the struct. Now we just need to tell the bit decoder how to decide between 1 and 0. From the log we can see that the distance is 500 or 1000. So we set the .short_limit in between there, at 750. That way it should be easy to decide if it is one or the other. Data packets typically repeats and so does this signal. After 108 bits (324/3) we have a pulse_distance of 14459. So set the long limit to half of that (7250). That will make the bit decoder decode into the next row of the bit matrix. Now we just need to set the .reset_limit and we set it to twice the pulse distance of 14459 (~30000). And as the buffer to decode bits is 40 (#define BITBUF_COLS 5) and we have 108 pulses then we need to increase it to 108/8=21. Hook up the debug call back and you should now get the bit pattern from the signal. If you are lucky the 3 packets repeat and you only have 108 bits of info to figure out.

@sonic74
Copy link
Contributor Author

sonic74 commented Feb 12, 2013

@sonic74
Copy link
Contributor Author

sonic74 commented Feb 12, 2013

Actually, perhaps not so good yet: after the 40th (1-based) bit, there are only "0"s. Is there perhaps somewhere else a limit like the "BITBUF_COLS 5" (*8=40) ?
Bits 33-40 always being "1" also looks a bit strange.

@sonic74
Copy link
Contributor Author

sonic74 commented Feb 12, 2013

Aah, found it:
if (p->bits_col_idx>4) {
p->bits_col_idx = 4;
}

@sonic74
Copy link
Contributor Author

sonic74 commented Feb 12, 2013

Now (and with "BITBUF_COLS=14" (108/8=13,5) it looks better:
http://sven.killig.de/SDR/ELV%20EM%201000-GZ%20decoded.txt

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