kobuki / vptools Goto Github PK
View Code? Open in Web Editor NEWA weather station transceiver library
A weather station transceiver library
Hello Kobuki, first of all thanks for your work. I'm not sure if this is the correct channel to ask my question.
I am testing WxReceiver, I have a Davis VUE and an Arduino Pro Mini wired with an RFM69 and some BMP180 and BMP280, I am in Spain using the European band. ISSRx sketch and SFE_180 sample sketch work for me.
raw:50-03-38-FF-71-00-C3-67-FF-FF station:0 packets:20/0/100.00 channel:1 rssi:-36 batt:ok windv:3 winddraw:56 windd:83 rainsecs:-1 fei:-1 delta:2562456
raw:80-02-38-31-29-0E-96-AC-FF-FF station:0 packets:21/0/100.00 channel:2 rssi:-36 batt:ok windv:2 winddraw:56 windd:83 temp:78.6 fei:9 delta:2562456
raw:20-04-38-D5-81-85-72-C4-FF-FF station:0 packets:22/0/100.00 channel:3 rssi:-36 batt:ok windv:4 winddraw:56 windd:83 vcap:2.8 fei:-6 delta:2562392
With WxReceiver I get in the console:
WxReceiver v2019122001 ready to accept commands
?
ERR
ERR bad command
ERR bad command
What are the expected commands? Should the sketch work without weewx? Can i check it somehow?
Thanks in advance.
Any thoughts on what might be the best way to implement gust reposting in the AnemometerTX example with the limited 328 ram?
Kobuki
I added support to moteino mega, but i never use github so i attach the files here.
Best regards
hi kobuki,
i started to play around with jeelink v3 and need some assistance to understand the .ino stuff.
i guess that i have understood that the .ino code
correct me if i'm wrong.
but i have no idea how to load the .ino code to the jeelink.
can you point me to tutorial?
thx
I am trying to connect WxReceiver with weewx-meteoRX driver without success. I don't have a moteino, I use an arduino pro mini and an rfm69 868, I'm in Europe and with ISSRx I get good results, I also have a tested and working BMP280. But with WxReceiver I end up stuck in Starting main packet loop. I don't know if the problem is with my board, if the code makes use of the moteino's memory that I don't have.
Any suggestions for something I can do or look at?
What would be the syntax to test WxReceiver directly through the console?
Here are some logs and console output that think could be of interest.
Thanks in advance.
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using serial port /dev/ttyUSB0
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using station type vue
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using baudrate 115200
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using frequency EU
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using rf sensitivity 90 (-90 dB)
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using intemp_corr 0.000000
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using wind calibration file /usr/share/weewx/user/windcal.dat
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using iss_channel 1
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using anemometer_channel 0
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using leaf_soil_channel 0
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using temp_hum_1_channel 0
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using temp_hum_2_channel 0
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using solar_channel -1
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using uv_channel -1
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: using transmitters 01
Feb 19 00:26:37 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: open serial port /dev/ttyUSB0
Feb 19 00:26:37 c4lv0 weewx[2030] INFO user.meteostick: meteostick: establish communication with the meteostick
Feb 19 00:26:37 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 'r':
Feb 19 00:26:39 c4lv0 weewx[2030] INFO user.meteostick: meteostick: reset: # WxReceiver v2019122001 ready to accept commands
Feb 19 00:26:39 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: full response to reset: # WxReceiver v2019122001 ready to accept commands
Feb 19 00:26:40 c4lv0 weewx[2030] INFO user.meteostick: meteostick: configure meteostick to logger mode
Feb 19 00:26:40 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: '?':
Feb 19 00:26:40 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 'x180': # OK t1 f1 o0 m1 x190 r0 stopped
Feb 19 00:26:40 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 't1':
Feb 19 00:26:40 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 'f1':
Feb 19 00:26:41 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 'r1': # ERR bad command
Feb 19 00:26:41 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 'o3':
Feb 19 00:26:41 c4lv0 weewx[2030] DEBUG user.meteostick: meteostick: cmd: 'm1':
raw:88-00-40-2B-D9-00-6E-76-FF-FF station:0 packets:10/0/100.00 channel:1 rssi:-34 batt:err windv:0 winddraw:64 windd:93 temp:70.1 fei:0 delta:2562544
raw:78-00-40-6E-41-80-09-5D-FF-FF station:0 packets:11/0/100.00 channel:2 rssi:-33 batt:err windv:0 winddraw:64 windd:93 vsolar:1.5 fei:10 delta:2562536
raw:E8-00-40-88-01-00-49-2C-FF-FF station:0 packets:12/0/100.00 channel:3 rssi:-33 batt:err windv:0 winddraw:64 windd:93 rain:136 fei:-5 delta:2562544
raw:58-00-40-FF-71-00-E7-41-FF-FF station:0 packets:13/0/100.00 channel:4 rssi:-36 batt:err windv:0 winddraw:64 windd:93 rainsecs:-1 fei:5 delta:2562536
raw:88-00-40-2B-D9-00-6E-76-FF-FF station:0 packets:14/0/100.00 channel:0 rssi:-35 batt:err windv:0 winddraw:64 windd:93 temp:70.1 fei:-10 delta:2562536
raw:38-00-40-8A-41-80-1F-BC-FF-FF station:0 packets:15/0/100.00 channel:1 rssi:-33 batt:err windv:0 winddraw:64 windd:93 fei:0 delta:2562536
raw:E8-00-40-88-01-00-49-2C-FF-FF station:0 packets:16/0/100.00 channel:2 rssi:-35 batt:err windv:0 winddraw:64 windd:93 rain:136 fei:10 delta:2562536
Great work building on dekay's project. Can you add more comments about the additional packet formats you have decoded? Specifically, VP2P_RAINSECS, VUEP_VCAP, VUEP_VSOLAR (these are pretty self explanatory but..), and VP2P_WINDGUST. For WINDGUST what is the gustref value for?
thanks.
Hi,
I have an issue with the WxReceiver sketch, on a Motino R4, with BMP280 sensor and 868mhz rubber aerial.
Not sure if its my config of 3 transmitters (all in UK, so EU band)
Tx1 - Wind / UV / Solar
Tx2 - Temp & Hum
Tx3 - Rain
I'm running the sketch with the following changes:
byte cfgNumStations = 3; .... // id, type, active Station stations[8] = { { 0, STYPE_ISS, true }, { 1, STYPE_TEMP_HUM, true }, { 2, STYPE_RAIN, true } };
The behaviour is that the Moteino will receive OK intially, then degrade and stop. After a few mins, it will restart and the loss sequence will happen again after a random amount of time.
I amended the code to show debug info:
` Serial.print(round(rd->fei * RF69_FSTEP / 1000));
//Serial.println(round(rd->fei * RF69_FSTEP / 1000));
Serial.print(F(" stn="));
// Other possible informational values:
Serial.print(packet[0] & 0x7); // station
Serial.print(F(" total="));
Serial.print(radio.packets); // total packets
Serial.print(F(" lost="));
Serial.print(radio.lostPackets); // total lost packets
Serial.print(F(" ratio="));
Serial.println((float)(radio.packets * 100.0 / (radio.packets + radio.lostPackets))); // total good/(good+bad) packet ratio
//Serial.print((float)(radio.packets * 100.0 / (radio.packets + radio.lostPackets))); // total good/(good+bad) packet ratio
`
This is the output with extra info, with Arduino IDE timestamps:
Issue can be seen by a stall in reception at 20:56:20
*edit - pasting results breaks formatting, see attached file.
motino.txt
During the stalled time, I could see the VP2 console was still receiving wind packets correctly, so doesn't seem to be an issue with the transmitters.
As a comparison, I loaded the mcrossley RelayRxTx sketch, with only changes being to my transmitter config (same as above) and with everything else the same, I didn't see the same packet loss / stalling.
Many thanks
Hi, great work. I have been tracking all the different projects tackling the communication from Davis devices and your repo has great insights.
// wind data is present in every packet, windd == 0 (packet[2] == 0) means there's no anemometer
if (packet[2] != 0) {
if (stations[stIx].type == STYPE_VUE) {
val = (packet[2] << 1) | (packet[4] & 2) >> 1;
val = round(val * 360 / 512);
} else {
val = 9 + round((packet[2] - 1) * 342.0 / 255.0);
}
}
What is this piece of data? Does the VUE have 1 bit of wind data in the Byte 4? Where did you find this info?
(packet[4] & 2) >> 1
Thank you so much!
Hi there, I'm about a days worth of tinkering into it, and I'm trying to get this working, but can't. I have been using my own weewx driver since my weewx is remote from me, so my plan is to have ISSRx talk to a NodeMCU and upload the data to weewx over wifi.
Anyways, ISSRx is not receiving any packets from ISS. I uploaded the WxReceiver sketch and it eventually got some packets. I've since rebooted my Moteino and after a (long) while WxReceiver gets packets, but still nothing from the ISSRx sketch.
I see some inconsistencies with ISSRx, such as the blink function is not being called from anywhere. So I'm sure it could use some updates; and I'm happy to take a stab at it, but right now I'm totally lost. I've mirrored as much from the WxReceiver that I thought made sense (I have 1 station, changed the band to FREQ_BAND_US
) but still not getting any data.
I didn't see a FAQ or anything so that's why I'm making the ticket. Any guidance is appreciated!
Edit: I mirrored some more configs into ISSRx and it seems I've got it working now? Leaving this open for now in case there's any other guidance you can offer. Thanks!
raw:60-00-FF-00-01-00-27-8A-FF-FF station:0 packets:46/60/43.40 channel:5 rssi:-74 batt:ok windv:0 winddraw:255 windd:350 solar:0.0 fei:-20 delta:5123536
raw:E0-00-FF-81-01-00-FF-C0-FF-FF station:0 packets:47/61/43.52 channel:7 rssi:-82 batt:ok windv:0 winddraw:255 windd:350 rain:129 fei:-21 delta:5123484
raw:40-00-FF-00-01-00-12-82-FF-FF station:0 packets:48/62/43.64 channel:9 rssi:-85 batt:ok windv:0 winddraw:255 windd:350 uv:0.0 fei:-21 delta:5123548
raw:E0-00-FF-81-01-00-FF-C0-FF-FF station:0 packets:49/63/43.75 channel:11 rssi:-72 batt:ok windv:0 winddraw:255 windd:350 rain:129 fei:-21 delta:5123484
Hi.
First of all thanks for the bookshop at my university we have some consoles VP2, so I'm trying to use to display data. However, when trying to use anemometertx.ino included in the latest version of the library the moteino restarts at the instruction of initializate (), if I use a previous version i can send data between two moteinos https://github.com/kobuki/VPTools/tree/f13ab5e11f02d7715f92156d70d30ebe7ba88d0a
best regards
manmoi01
Good evening, first of all congratulations on your work. Here I have a little problem with the wxreceiver sketch, I make the necessary configurations so that it works, so my installation works with a moteino RFM69HCW, BMP180. The frequency is set to EU (I live in Belgium). When I start the serial monitor I only have this:
-> # WxReceiver v2019122001 ready to accept commands
->?
when i type an order i have this: -> #ERR
Now with the ISSRx sketch I see the raw data
If anyone has an idea thank you in advance
Good evening to all
The file VPTools/PacketFifo.cpp contains the line
#include "packetfifo.h"
However, Linux is case sensitive and the file is actually "PacketFifo.h". Either the include needs to be fixed or the filename be changed to all lower case. Note that other files like ISSRx.ino use mixed case in the #include statement.
BTW @kobuki, great job on this library!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.