Giter Club home page Giter Club logo

rtlamr's People

Contributors

apaperclip avatar bemasher avatar ccutrer avatar ckartchner avatar jcwren avatar loverso avatar markfickett avatar powermik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rtlamr's Issues

Add option for lower resources

This would be great to run on a raspberry pi, but as it is the rtl_tcp process keeps too much in memory and gets killed off. A temporary work around which seems to work is to add swap.

High CPU utilization - r900 Parser is called when zero preambles found in Message?

Listening for r900 packets on my Pi 3 uses 100% of one CPU core, regardless of the number of meters audible to the receiver or the message receive rate. Poking around in the code it seems that Parse() is called even when there were zero preambles found in the Message, causing p.Filter() and p.Quantize() to do unnecessary work.

Checking for zero preamble indices and immediately exiting the parser function reduces the average cpu time to between 50% and 60%, without any obvious loss of messages. This also eliminates the stream of ll+, now... messages usually emitted by rtl_tcp for the first minute or two of operation.

Interestingly inserting the return before the cfg/copy at the start of the function causes no preambles to ever be found. Unfortunately I have little experience with Go, so delving into why that is is beyond my ability.

The exact patch is:

func (p Parser) Parse(indices []int) (msgs []parse.Message) {

        cfg := p.Decoder.DecCfg
        copy(p.signal, p.signal[cfg.BlockSize:])
        copy(p.signal[cfg.PacketLength:], p.Decoder.Signal[cfg.SymbolLength2:])

        // Why are we called with no preambles?
        if len(indices) == 0 {
                return
        }

        p.Filter()
        p.Quantize()
        ...
}

Raspberry Pi 2 100% CPU

I had an old version running until now on my RPi 1 with symbollength=7 and had about 30% CPU, now I upgraded to a RPi2 (clean distro of Raspbian), but with the same symbollength it is maxing out at 100%, with a load of 1.2.

It doesn't seem to miss packets but it's slowing down other processes.

CSV output is garbled

Windows bin precompiled run from the command line as shown:

rtlamr -format=csv -samplefile=output.csv

csv is 70kb with only 2 readings

Example paste of the output:

€€�ƒ€��€��„{}€~�{€�€~�|€�‚ƒ�‡{€{€€‚�{}{€}�{‚}ƒ€‚��~�}€�~‚�~}}�}†€…�~y‚}‰…�}~{�ƒ��€z‚‚�‚�}‡~��|�y��„x€x€

Let me know if any other details are needed.

Let us compile without GoLang

Hi!
Is there a way to compile without GoLang? (maybe with Make ?).
It would be great for those like me that uses Raspberry and wanna try your software.
(GoLang is very very heavy!)

Connection reset by peer

I'm running on OS X, and find that rtlamr will only run for a few minutes before either freezing up, or exiting with a "connection reset by peer" message. Both processes are on the same machine.

I started down the path of creating a watchdog script to kill & restart both rtl_tcp & rtlamr if no log entries written in some number of minutes, but thought there might be a better approach.

Is it possible that my sample rate needs to be lowered?

Or is there a way to modify the error handling in recv.go to retry after receiving this error from the call to rcvr.Read()?

Seems that it would be simplified if rtlamr used libsdr directly rather than in a separate process, but I'm a complete Go beginner, and don't really understand the motivation behind this design decision.

CPU use

FYI:
I tried rtlamr on Odroid U3.
For SCM messages CPU use was 8%, for R900 - 25%.
rtl_tcp -- 1..2%.

And one more -- I second for SCM and R900 messages in one output text stream.

I read you think about multiplex rtl_tcp... one more idea, though I think more CPU hungry -- option to use stdin/stdout to pipe irtl-tcp data through chained rtlamrs with each extracting specific messages.

Maybe such piping/chaining can be done even in one rtlamr process, in different threads?

Best regards,
Sergei.

Not receiving messages

Hi,

I followed the readme and believe I have everything set up correctly. I am trying to listen to an Itron SK9AMI6 meter using a RTL2838UHIDIR. I am running rtlmar without arguments. I have also tried all message types and get CenterFreq, SampleRate, DataRate, SymbolLength, PreaambleSymbols, PreambleLength, PacketSymbols, PacketLength, Preample and GainCount printouts, but no messages. Any tips?

Thanks!
~Noah

Any chance of supporting ELSTER R2S meters?

So I hate to ask this, but is there any chance you might add support for the ELSTER R2S meters? I have found code that can be used with GNU radio to read the meters, but the code is well beyond my ability to port it. The code is on github under argilo/gr-elster. Thanks for sharing this code and love the fact that you used Go to do it in.

Capturing ERT packet for peak 15 min. load?

In my area, the meters are broadcast a 15 minute peak load in addition to a SCM message of cumulative consumption.

Is there a specific message type that would broadcast this 15 minute load? If it is coming off the same Intron meter for the electrical SCM message is it broadcasting in SCM as well?

Ubuntu 14.04 rtl-sdr package and NooElec NESDR Nano R820T Errors

With a NooElec NESDR Nano (http://www.amazon.com/gp/product/B00JQZU1ZO/) plugged in
to my Ubuntu 14.04 system, I ran

$ sudo apt-get install golang libfftw3-dev rtl-sdr
$ rtl_tcp

Then, in another window, I did

$ export GOPATH=$HOME/gocode
$ PATH=${PATH}:$GOPATH/bin
$ go get github.com/bemasher/rtlamr
$ rtlamr

This crashed rtl_sdr the first try; after that, it reliably caused an error.

Since github's issue tracker doesn't support attachments, here's the rtl_tcp log:

$ rtl_tcp
Found 1 device(s).
Found Rafael Micro R820T tuner
Using Generic RTL2832U OEM
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl_tcp=127.0.0.1:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).
client accepted!
set freq 920299072
rtlsdr_demod_write_reg failed with -9
rtlsdr_demod_read_reg failed with -1
r82xx_write: i2c wr failed=-1 reg=17 len=1
r82xx_set_freq: failed=-1
rtlsdr_demod_write_reg failed with -1
rtlsdr_demod_read_reg failed with -1
set sample rate 2392064
Exact sample rate is: 2392064.101227 Hz
rtlsdr_demod_write_reg failed with -1
...
rtlsdr_demod_read_reg failed with -1
set gain mode 0
rtlsdr_demod_write_reg failed with -1
rtlsdr_demod_read_reg failed with -1
r82xx_write: i2c wr failed=-1 reg=05 len=1
rtlsdr_demod_write_reg failed with -1
rtlsdr_demod_read_reg failed with -1
worker cond timeout
Signal caught, exiting!
comm recv bye
Signal caught, exiting!

And here's the rtlamr log:

$ rtlamr
14:09:52.015569 decoder.go:39: BlockSize: 4096
14:09:52.015691 decoder.go:40: SampleRate: 2392064
14:09:52.015710 decoder.go:41: DataRate: 32768
14:09:52.015729 decoder.go:42: SymbolLength: 73
14:09:52.015754 decoder.go:43: PreambleSymbols: 21
14:09:52.015773 decoder.go:44: PreambleLength: 3066
14:09:52.015791 decoder.go:45: PacketSymbols: 96
14:09:52.015810 decoder.go:46: PacketLength: 14016
14:09:52.015835 decoder.go:47: Preamble: 111110010101001100000
14:09:52.015864 recv.go:62: CRC: {Name:BCH Init:0x0000 Poly:0x6F63 Residue:0x0000}

Is the rtl_sdr that comes with Ubuntu 14.04 too old?

$ apt-cache policy rtl-sdr
rtl-sdr:
  Installed: 0.5.2.7.3ab6-1

type *Receiver has no field or method...

Something is wrong with the current master branch of the rtlamr tree. I get these errors when I try to build:

../rtlamr/recv.go:86: rcvr.HandleFlags undefined (type *Receiver has no field or method HandleFlags)
../rtlamr/recv.go:89: rcvr.Flags undefined (type *Receiver has no field or method Flags)
../rtlamr/recv.go:359: rcvr.RegisterFlags undefined (type Receiver has no field or method RegisterFlags)
../rtlamr/recv.go:371: rcvr.Flags undefined (type Receiver has no field or method Flags)
../rtlamr/recv.go:380: rcvr.Flags undefined (type Receiver has no field or method Flags)

I don't see HandleFlags, Flags, or RegisterFlags defined anywhere. Did something change where the definitions are dropped?

Thanks,

Ag Primatic

Add csv log output format.

I've been playing with it for about a week now. I started out using it on my raspberry pi but I think it was unable to keep up with all the IQ data coming in even at symbollength=7(rtltcp seems to be having buffer overruns). On my pc it works fine. My smart meter seems to transmit every 30 seconds hopping through 50 different channels with a pattern that repeats every 20 minutes and 6 seconds, give or take. After a lot of data logging on all the frequencies I've finally discovered my meters hopping pattern. I'm currently running a batch file that calls rtl 50 times in a row using the -single=true and using frequencies that work for me, to get 1 reading every 30 seconds. I'm looking forward to the release of your hopping pattern discovery tool. It would be even nicer if we could figure out the algorithm the meter uses to generate the pattern, perhaps its based on the meter id somehow. Also it would be nice if rtlamr had the option to output data in comma separated list format for easier import into a spread sheet. For now I've tweaked my local go files to get csv output but it would still be nice to see it officially supported.

Thanks for all your work on this.

Not receiving IDM messages

I'm receiving lots of SCM messages from 3 different CellNet meters, but I haven't picked up 1 IDM message after running rtlamr for hours with -msgtype=idm. Do some meters not send IDM messages?

Command line options being ignored.

It seems like some command line options are being ignored and the order they are entered seems to have an effect. See screen shot. Also I was unable to get the -duration option to work.
rtl

Error installing

When trying to install on Ubuntu 12.04 using go get as per the README, I get the following error:

recv.go:197: cannot use true (type bool) as type uint32 in function argument

Limit output by message count.

It would be great if, instead of setting the duration by time, if you could set it by number of returned outputs. For example, with the filterid set, and the duration set to 1 output, the program would run until it found the specific meter once, and close.

Compiling under Mac OS X

Hi,

I successfully built your code on my Linux platform, but when I try to compile it on OS X, I get this error:

$ go get github.com/bemasher/rtlamr

github.com/bemasher/fftw

ld: library not found for -lfftw3
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The fftw3 library is installed, but on my OS X system, libfftw3 is in /opt/local/lib, and I don't know how to add that path to the build procedure.

Any ideas of how to specify a library search path? If it were C and a Makefile, then I could find where to add the library directory. But I'm not very familiar with go.

Thanks,

Ag Primatic

1.4GHz water meters

Any ability to receive data from an Itron 200WM (1.4GHz) meter by changing center frequency?

IC ID: 864D-1430WA
Bands: 1427-1430 MHz, 1493.5-1496.5 MHz

Comment. Experimental initial impressions

This new experimental version uses much less CPU.

The master branch uses 100% CPU on my overclocked raspberry pi and it drops data packets because it can't keep up.

The experimental version seems to use only 30% with symbollength=7

CSV does not seem to be implemented so I'm switching back to master for now.
Looking forward to the development of this branch.

Thanks.

New ITRON AMI7 Meter

Is there anything I can do to help add support for my electric meter?

It's an Itron AMI7. FCCID SK9AMI7

Seems most meters in my area are this. (Duquesne Light Company, Pittsburgh PA)

Thanks and keep up the great work!

Net metering and -single one shot execution

I would first like to thank you for your effort in providing this wonderful software. I just installed a solar PV system, and would like to be able to track my power usage. I need to be able to read both the consumption, and the power that was pushed to the grid from the new net meter that was installed on our house. Your software is perfect for my project. When I look at the data that is transmitted from the net meter, it appears to send out three different messages. The first message contains the power consumption under the meter ID that is marked on the meter. The second message contains the power that was pushed to the grid with the meter ID plus one. The third message contains the difference between the consumption and the power pushed to the grid as a 2's complement number with the meter ID plus two. It appears to send all three in sequence one right after the other.

I would like to capture this data every night just after midnight. Right now, I use the -single option, but I have to do it three times, and change -filterid for each one shot execution. It then has to wait each time for the meter to get around to sending the data again. It would be nice if all three could somehow be captured with a single one shot execution. Maybe the one shot execution wouldn't finish until it had received something from each entry in the -filterid list. I appreciate any consideration that you might give to this, and thanks again for providing this software.

Failure to install.

Trying to install on Mint 14, Installed the dependencies and when using the command "go get github.com/bemasher/rtlamr" get the following error.

"# github.com/bemasher/fftw
constants.go:61[/tmp/go-build635587442/github.com/bemasher/fftw/_obj/constants.cgo1.go:73]: function ends without a return statement
constants.go:81[/tmp/go-build635587442/github.com/bemasher/fftw/_obj/constants.cgo1.go:98]: function ends without a return statement
"

r900 working?

Just downloaded this and fired it up. Am able to read SCM data, but r900 doesn't seem right. All IDs and consumption figures are 0. Here's the output:

$ rtlamr -msgtype=r900
21:20:29.552553 decode.go:82: CenterFreq: 912380000
21:20:29.552749 decode.go:83: SampleRate: 2359296
21:20:29.552762 decode.go:84: DataRate: 32768
21:20:29.552773 decode.go:85: SymbolLength: 72
21:20:29.552783 decode.go:86: PreambleSymbols: 32
21:20:29.552793 decode.go:87: PreambleLength: 4608
21:20:29.552803 decode.go:88: PacketSymbols: 116
21:20:29.552813 decode.go:89: PacketLength: 16704
21:20:29.552823 decode.go:90: Preamble: 00000000000000001110010101100100
21:20:29.552851 main.go:93: GainCount: 29
{Time:2016-04-17T21:20:31.520 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}
{Time:2016-04-17T21:20:32.284 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}
{Time:2016-04-17T21:20:32.732 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}
{Time:2016-04-17T21:20:33.180 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}
{Time:2016-04-17T21:20:37.844 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}
{Time:2016-04-17T21:20:38.522 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}
{Time:2016-04-17T21:20:38.635 R900:{ID:         0 Unkn1:0x00 NoUse: 0 BackFlow:0 Consumption:       0 Unkn3:0x00 Leak: 0 LeakNow:0}}

Am I doing something wrong?

Error in logfile when set to run on startup

Hi bemasher. When I set rtl_tcp to run on startup in /etc/rc.local and set up rtlamr to run @reboot with crontab I end up with this erroro in my log file for rtlamr.

15:38:21.897423 recv.go:55: Error connecting to spectrum server: dial tcp 127.0.0.1:1234: connection refused

I can confirm that rtl_tcp is running because rtlamr runs when I execute from the command line. I'm not sure if this is a bug or my own ignorance.

flexnet meters?

Hi

Thanks for this great software.

I was able to pull numbers from the gas meter, but i can't detect the Electric meter (FlexNet 530X), or the Water Meter (Neptune).

Has anyone been able to pull those numbers, either with this software or any other repo? Im guessing these need to be "woken up" to transmit data, but not sure how to do that.

Thanks

Support for Landis+Gyr AMI Focus Meters

Hi bemasher,

Thanks very much for all your work on this library and utility! Seems to be working well for my Philadelphia Gas Works ERT meter, using the scm message type.

It looks like PECO (Electric Utility) uses the Focus AXR-SD AMI meters - do you have any ideas about how to start reverse engineering that protocol? Given it's an encrypted mesh, presumably that makes it harder to snoop? Does it need to be actively queried? Are there any technical resources about the protocol?

Cheers,

Nic

Build Error

When I try to build using the command:

go get github.com/bemasher/rtlamr

I get the following error:

./rtltcp.go:107: undefined: flag.CommandLine

Not being familiar with go, I'm at a bit of a loss as to what the issue is.

rtlamr seems single threaded

I'm running rtlamr on a four core Odroid C1. It has just enough horse power to work correctly but I do get a fair number of ll+ messages from rtl_tcp. I get a single core pegged at 100% CPU utilization.

Is it possible to split decode into go routines to better make use of multiple cores?

$ uname -a
Linux odroid 3.10.75-84 #1 SMP PREEMPT Sat Apr 25 18:33:08 BRT 2015 armv7l armv7l armv7l GNU/Linux

$ go version
go version go1.4.2 linux/arm


$ go tool pprof `which rtlamr` rtlamr.prof 
Entering interactive mode (type "help" for commands)
(pprof) top20   
35.12s of 35.88s total (97.88%)
Dropped 70 nodes (cum <= 0.18s)
      flat  flat%   sum%        cum   cum%
     7.20s 20.07% 20.07%      7.20s 20.07%  github.com/bemasher/rtlamr/decode.Decoder.Filter
     6.78s 18.90% 38.96%      6.78s 18.90%  github.com/bemasher/rtlamr/decode.Decoder.Search
     6.78s 18.90% 57.86%      6.78s 18.90%  runtime.memmove
     5.40s 15.05% 72.91%      7.63s 21.27%  github.com/bemasher/rtlamr/decode.MagLUT.Execute
     3.65s 10.17% 83.08%      3.65s 10.17%  github.com/bemasher/rtlamr/decode.Decoder.Pack
     2.23s  6.22% 89.30%      2.23s  6.22%  math.Sqrt
     2.13s  5.94% 95.23%      2.13s  5.94%  github.com/bemasher/rtlamr/decode.Quantize
     0.78s  2.17% 97.41%      0.85s  2.37%  syscall.Syscall
     0.03s 0.084% 97.49%      7.66s 21.35%  github.com/bemasher/rtlamr/decode.(*MagLUT).Execute
     0.03s 0.084% 97.58%      0.24s  0.67%  github.com/bemasher/rtlamr/scm.(*Parser).Parse
     0.03s 0.084% 97.66%      1.02s  2.84%  net.(*conn).Read
     0.02s 0.056% 97.71%     34.20s 95.32%  github.com/bemasher/rtlamr/decode.Decoder.Decode
     0.02s 0.056% 97.77%     35.72s 99.55%  main.(*Receiver).Run
     0.02s 0.056% 97.83%      0.87s  2.42%  syscall.Read
     0.01s 0.028% 97.85%      0.21s  0.59%  github.com/bemasher/rtlamr/scm.Parser.Parse
     0.01s 0.028% 97.88%      0.85s  2.37%  syscall.read

Should not exit on SIGWINCH.

When I change the size of the window, the program stops, probably because of the signal sent by the terminal (SIGWINCH). This signal should be ignored.

undefined: fftw.HCDFT1DPlan

Hello.
I'm trying to use this on a Raspberry Pi.
Upon attempting to go get this project, I get the following:

pi@raspberrypi ~ $ go get github.com/bemasher/rtlamr
# github.com/bemasher/rtlamr/preamble
/usr/lib/go/src/pkg/github.com/bemasher/rtlamr/preamble/preamble.go:14: undefined: fftw.HCDFT1DPlan
/usr/lib/go/src/pkg/github.com/bemasher/rtlamr/preamble/preamble.go:15: undefined: fftw.HCDFT1DPlan
pi@raspberrypi ~ $

My libfftw3-dev is installed properly, it seems.

Any ideas?

calculating average KWHr usage

I've been reading the IR LED of my Itron meter to calculate a WHr average. You get 1 blink per WHr, and from there you can just count for whatever time period you want and display it. Of course, the IR LED is weak, and you have to shield it from sunlight, and you need wires.

From rtlamr, it seems that I get data about once every three minutes. What have you been using to calculate your power usage? I find it most useful as far as energy-consciousness goes to have a display of how much power is being used right now, vs something like the whole day.

Broken commits.

Commits prior to 71d2fae are considered broken and should not be used. This is due to removal of (potentially) sensitive information.

R900 BCD Consumption

have been reading 6 R900 water meters with your software using a Raspberry Pi and have collected a bunch of data. Unfortunately, it appears that the electronic meter readings do not correspond with actual meter consumption. (realize there may be an offset between physical meter and electronic, but consumption amount (change between two dates) should match up.

Seem to remember you didn't have access to a meter. Any idea how to resolve this discrepancy? I can get more data as needed.

john

data results:

image

. Actual physical meter readings
11-Jul 11:25 82240.5 47624.2 87430.1 84552.7
5/2/2015 80997.7 45955.1 85285.3 84083.3

delta cf 1242.8 1669.1 2144.8 469.4
ccf 12.428 16.691 21.448 4.694

electronic readings (approximately same time as data above)
11-Jul 533040 292384 554032 542032
5/2/2015 526741 285013 545552 540800

delta cf 6299 7371 8480 1232
ccf 62.99 73.71 84.8 12.32

ratio 5.1 4.4 4 2.6

rtltcp does not build, no error

I try to build rtltcp go seems to complete normally but rtltcp is not created in $GOPATH/bin
I am running Apple OS 10.10.3 with 'go' version 1.4.2
I was able to build rtlamr and a "hello" program added to github.com/bemasher/
The following lines are from the terminal attempt to build rtltcp. I also echoed $GOPATH and $PATH fyi:

MacBook:src jeanie$ go install github.com/bemasher/rtltcp
MacBook:src jeanie$ rtltcp
-bash: rtltcp: command not found
MacBook:src jeanie$ echo $GOPATH
/Users/jeanie/dennis/Computer/go
MacBook:src jeanie$ echo $PATH
/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:
/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:
/usr/local/git/bin:/usr/local/go/bin:/Users/jeanie/dennis/Computer/go/bin

I can run rtlamr but without rtltcp I get the following:

MacBook:src jeanie$ rtlamr
17:10:51.020337 decode.go:42: BlockSize: 4096
......    8 lines removed for brevity  ......
17:10:51.020512 decode.go:51: Preamble: 111110010101001100000
17:10:51.020781 recv.go:62: Error connecting to spectrum server: dial tcp 127.0.0.1:1234: connection          refused

However, if I run osmo.com rtl_tcp then run rtlamr things appear to work with the following:

MacBook:src jeanie$ rtlamr
17:34:46.350806 decode.go:42: BlockSize: 4096
......    8 lines removed for brevity  ......
17:34:46.351097 decode.go:51: Preamble: 111110010101001100000
17:34:46.351560 recv.go:69: GainCount: 29
{Time:2015-05-08T17:34:46.642 SCM:{ID:34211079 Type: 4 Tamper:{Phy:00 Enc:01} Consumption:   38992 CRC:0x6E79}}
{Time:2015-05-08T17:34:47.085 SCM:{ID:34237682 Type: 4 Tamper:{Phy:00 Enc:02} Consumption:   89619 CRC:0x272B}}
{Time:2015-05-08T17:34:47.739 SCM:{ID:34211079 Type: 4 Tamper:{Phy:00 Enc:01} Consumption:   38992 CRC:0x6E79}}
{Time:2015-05-08T17:34:47.959 SCM:{ID:34237682 Type: 4 Tamper:{Phy:00 Enc:02} Consumption:   89619 CRC:0x272B}}  

Any hints on how to get rtltcp to build and run? I am thinking this will work more like designed if rtlamr has rtltcp to talk to and set-up rtl_tcp. Thanks for a writing this program and introducing me to 'go'. Looks like an interesting language.
Best regards, Dennis

Add support for Network Interval Message (NIM) format

I have the Itron gas meter described in the link below. I don't know for certain if my utility has implemented the Fixed Network Mode or not, but it it has, it would be very useful to get access to the hourly data from the NIM message format. It is interesting to note that the NIM is FM-modulated, while all the other messages are AM.

https://www.itron.com/PublishedContent/100G%20Datalogging%20FN%20ERT%20Module%20Specifcation%20Sheet_100941SP-09.pdf

NIM message details:
https://www.itron.com/PublishedContent/Water%20AMI%20100W%20Network%20Interval%20Message.pdf

No -version info

When I install rtlamr with:
go get github.com/bemasher/rtlamr

and run:
rtlamr -version

all of the fields are undefined (no version info).

constants.go

Hi, I have the same issue that was reported prior ---

# github.com/bemasher/fftw
constants.go:61[/tmp/go-build773017412/github.com/bemasher/fftw/_obj/constants.cgo1.go:73]: function ends without a return statement
constants.go:81[/tmp/go-build773017412/github.com/bemasher/fftw/_obj/constants.cgo1.go:98]: function ends without a return statement

I installed the latest go from source and tried to no avail. Can you drop a few extra returns in the .go file? I hate to fork the entire project for something silly like a missing return, or maybe that's the right thing (hey, I'm new here).

Many thanks.

Multiple Protocols per Invocation

I happen to have a supported electric meter and water meter, but it appears that one sends IDM messages and the other SCM messages. Is it only a software limitation that the two distinct message types can't be received and decoded by a single rtlamr instance?

Right now my workaround is to invoke it in single shot mode first for one message type and then the other, and that does work so woo

logfile flag overwrites file on each run

Is there any chance you could change the code so that rtlamr will append to the end of the log file instead of re-create the file each time rtlamr restarts. I'm trying to log all the data but the logfile keeps getting cleared. For now I've replaced the line of code that creates the file with this line:
c.LogFile, err = os.OpenFile(c.logFilename, os.O_RDWR|os.O_APPEND, 0666)

R900 Support, Update Frequency and Flag Documentation

Sorry for reporting this as an "issue"... I just can't figure out where I can ask a question.

I have a Neptune R900i water meter in my home. I was actually excited to learn I would be getting a smart meter because I thought I'd be able to better monitor my water usage, but it seems the extent the features are used is to simply make their meter reading tasks easier.

I want to know if I have a leak, in as close to real-time as possible.

So I started looking for ways to read the meter myself (other than visually looking at it) and that brought me here, but I'm still lacking a LOT of info.

So a) can I interface (RTL-SDR?) with this meter so I can get the reading? and b) can I get a high enough resolution and frequency to actually make use of the data?

Again, sorry for posting this as an issue.

Not receiving R900 readings after 0.7 update

Hello!

After updating from 0.6.2 to 0.7, I can't receive any more R900 data. I validate that the same flags work on 0.6.2 and not 0.7 running them one after another.

I'm using -msgtype=r900 -decimation=8 as flags to run on embedded devices (such as RPi and others) without losing frames on rtl_tcp. At the moment I'm testing using an embedded x86 Linux.

If I can provide any more information or logs to help debug this, please let me know.

"bad" version:
Build Date: 01-28-2016
Commit: v0.6.2-28-ge8ea9d9

"good" version: the -version flag doesn't work :) but its MD5 is 96fe5cd30decf40cb50be74fe699d20f and I got it (again) today from rtlamr_linux_386.tar.gz (MD5 17716b7a1c15535f779f1fc12bdaf294) listed for 0.6.2 "releases".

Memory Leak in rtlamr

I created a program that uses rtlamr and logs meter readings along with other stuff at midnight every night. It runs for close to a month, and then quits working. I decided to see if my program was releasing all of the memory that it used, and found out that it wasn't. So then I tracked it down to rtlamr by running it by itself, and executing free after each run. I am running this on a Raspberry PI 2. The command that I am using is as follows. I also downloaded the latest release of rtlamr today.

/home/pi/goplay/bin/rtlamr -quiet=true -single=true -format=json 14233925 14233926

I have attached the output from running rtlamr followed by free until it started failing.

memory_leak.txt

scm+ types?

What do the following scm+ EndpointType's correspond to?

0x00
0x81
0x0B
0x08
0xA9
0x37
0xFA
0xF1
0x82
0x98
0xAA
0x05
0x81
0x81
0x96
0x85
0x2D
0xAE
0xC8
0x2C
0xA7

Invalid magic number.

Hi,

I have a RTL2838UHIDIR USB adapter, and I am able to listen to (for example) weather stations with gqrx using it, so signal is working and I can demodulate FM.

However, it seems I can't make this software work. Maybe there's a piece of the puzzle that's broken. I am using rtl-sdr 0.5.3-2 from the Debian package, and rtl-fm works.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.