Announcement
Collapse
No announcement yet.
AAG Electronica Weather Station
Collapse
X
-
I'm willing to give it a try. You can give me a email at mcsSolutions 'at' CenturyTel 'dot' net to arrange the specifics. Unless there are some problems this can be done in a day on the weekend.
-
If no one else offers anything better, let's look at the idea again.
I would give you a virtual desktop; you can reboot whenever you want; the machine would be dedicated to you.
I would just need to replug my weather station from its now useful work around the house and leave it there for the period you need it (a week or two?).
VB6 shouldn't be any problem; there's a 2Mb adsl (so only 256K from the site but 2Mb in) which doesn't get much use otherwise at the moment. With remote desktop, if you tell it appropriately in the options as you are about to log in, you may know that all your local disks become available as networked disks to the controlled machine so it's easy to download stuff.
It would be neater if someone could give you what you need in the US. If not, let me know and I'll try and get it set up sometime soon (requires me in the house to replug the USB connections, and I travel a lot).
Simon
Leave a comment:
-
The baro integration is a bootstrap process. I first need a SW development environment and the AAG barometer. Once basic communication is established then remote diagnostics are possible. Thank you for the offer, but for the first step it would need to be a remote desktop with VB6 tools on your PC and that is likely not in the cards. Then with restarts and hangs it is awkward remotely.
Leave a comment:
-
High Wind report isn't a worry - just wondered idly in my curious way what it got logged at startup (and no other time).
Don't worry about the shutdown. sounds like your explanation is bang on the nail as it describes why it shuts sometimes and not others. and fortunately the software is all so good that we all rarely need or want to shutdown!
Very happy to pilot the barometer software if you like. would be quite easy.
might be able to set up a virtual PC with the weather kit on it some time if you need and give you access; I could then just tear it down afterwards (really easy cleanup!).
simon
Leave a comment:
-
You have been a big help and gone out of your way to get to the bottom of this. Thank you much.
The high wind indication is not something I've looked at in a long time. I can look. I can also open the voltage tolerance up a little as you suggest. My concern however, is that if a resistor becomes dislodged then it may be harder to know that a hardware failure has occurred.
I'm not aware of what I can do about the shutdown. I'm guessing that it is not version dependent, but timing dependent. When the plugin goes out to read a sensor it releases control to the 1-wire drivers and they hold the cpu because they need to control timing. HS is probably requesting shutdown at a time when the 1-wire drivers have control and expected shutdown timing is not occurring. The bus will be held for about 1/2 second for each temp conversion. If the iteration rate is high or there are many devices then the probability increases that the 1-wire drivers are busy.
I just mentioned on another thread that I did find the AAG Baro software, albeit in JAVA, and have converted it to work with the plugin. Dont know what the cpu impact will be. If someone stateside is willing to loan one then I should be able to integrate it.
Leave a comment:
-
Couple of subsequent points:
1. I note that the plugin is unfriendly at shutdown when HS is run as a service - seems to have started in last couple of versions - it doesn't like the HS service being stopped - goes on running and keeps HS up - reported a High Wind change which normally only happens right at the startup (why?)
2. If you have any details of how the DS2438 barometer works, I will try to think of a neat solution to making it work in the plugin without soaking too much resource. Would be nice to have the plugin support the whole set of devices ( :-) )
Simon
PS Realise I still have to licence the plugin - only 26 days left - which I will - it's great and thank you
Leave a comment:
-
I think the logic and table are now right [phew!]. It took me back to my youth to have to work out what was wrong, though it sure helped to have a device to hand.
One suggestion: as my readings were up to 0.2 V different from your table, you could move the comparison window from 0.25 to 0.5 and still avoid confusion but perhaps allow for different USB/Com port voltages etc. I'd be worried about production consistency of computers, peripherals, and weather stations.
Thank you for attending to this so quickly.
Simon
Leave a comment:
-
That was a good bit of detective work!
When looking at the direction table it is clear that the content was not correct on the right side. I believe I fixed it in 4.44.8.
I added a checkbox where the other wind settings are entered to allow the direction to be changed between "Wind Comming From" and "Wind Going To" to suit one's orientation. It is the Reverse Wind checkbox. The solution you proposed works well since it allows the angle/compass conversions to be maintained without any changes.
I also added the error detection logic so that it will be ignored or recorded as 0 (North) depending upon the Use Previous on Bad Readings checkbox that was already present.
Code:dirTable = Array("N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW", "N") If index <> 16 Or Not usePreviousOnBadReadings Then If ReverseWind Then index = 16 - index End If If (index - NorthDirection) < 0 Then index = index - NorthDirection + 16 Else index = index - NorthDirection End If WindDirection = dirTable(index) iTemp = CLng(CSng(index) * 22.5) If Calibrations > 0 Then iTemp = CLng(Calibrate(device, CStr(iTemp), jWindDirection)) End If If hs.DeviceValue(device) <> iTemp Then hs.SetDeviceValue device, iTemp hs.SetDeviceLastChange device, Now() End If If UseHTML Then WindDirection = FormatHTML(jWindDirection, WindDirection) End If hs.SetDeviceString device, CStr(WindDirection) End If
Leave a comment:
-
ERROR Alert!
I have just noticed an error in your table of directions. I have been reading it subconsciously knowing something was wrong and it finally clicked.
It is all wrong post SW....it starts to go back the other way! so you never will get readings WSW to NNW.....
That will explain some of the other results I couldn't understand when the vane was up on its pole :-)
Once the table has been corrected, a neat way to reverse it might be to change the last line of the routine to:
IF reverse THEN WindDirection = dirTable(16-index) ELSE WindDirection = dirTable(index)
but it will need N as both entries (0) and (16) in the table.
Simon
Leave a comment:
-
Readings done!
In summary: the big similarity is that my readings are within .2 volt of the table you have used.
The big DIFFERENCE, however, is that my readings run in the opposite direction to the table - and yes, my device is mounted the right way up and the circuit board is the right way up (I have taken it apart to prove that).
One request therefore and one suggestion:
Can you include a clockwise/anticlockwise flag on the plugin?
The suggestion is that if you don't match a table entry, you set that reading as an error (and the plugin already has neat logic about using previous reading or not for errors) - otherwise, there could be a lot of false N readings. Or set to "Error" if you can't?
Simon
Leave a comment:
-
Michael
Very kind - it's a dry day so I'm going up the ladder now - and will calibrate this morning.
Pete
it would be really helpful to have a second set of readings though: then we can give Michael some quality data.
I think there might also be a neat algorithm for the encoding which would allow him to simplify his decoding and indicate errors clearly....
Simon
Leave a comment:
-
Simon, Yes mine worked "out of the box". I actually have two of them (one spare) and they both work fine. I calibrated initially but never actually did a visual once set up. My weather station is above the roof line of a two story home.(~ 30 feet / 10 meters). As my Temp08/05's are not yet totally set up I can do a quick test with my spare AAG weather station and Michaels MCSTemperature plugin to validate direction in the next couple of days.
Leave a comment:
-
If you have you instrument on a test bench then you can collect the 16 set of four readings. AAG makes only one product variety so they should all be the same. If yours varies then we can assess what needs to be done.
Leave a comment:
-
I thought it might be a messy matching process!
I believe that different devices might be wired differently; that would certainly explain what I am seeing.
Would it be simple to make the table available perhaps under an advanced button?
It might be possible to simplify it too: it almost looks to me as if it is meant to have 3 readings: 0V, 2.5V and 5V (all nominal) and it could be fewer false N readings if the algorithm looked for those levels +/- 1V?
Simon
Leave a comment:
-
The algorithm is based upon 4 voltage readings with each set representing a position on the compass. A 0.25 voltage tolerance is used with expected voltages depending upon the position of the vane. I obtained the table from somewhere on the internet, but do not recall where. I never did empirically confirm it and my gauge is mounted where this analysis is not possible.
Once the 4 readings are made then I iterate looking for which of the 16 directions the set of 4 corresponds. North is used if it does not fit into any.
Code:conv_table(0) = Array(0.06, 4.64, 4.64, 4.64) conv_table(1) = Array(0.06, 0.06, 4.6, 4.6) conv_table(2) = Array(4.64, 0.06, 4.64, 4.64) conv_table(3) = Array(4.62, 0.06, 0.06, 4.6) conv_table(4) = Array(4.64, 4.64, 0.06, 4.64) conv_table(5) = Array(4.6, 4.6, 0.06, 0.06) conv_table(6) = Array(4.64, 4.64, 4.64, 0.06) conv_table(7) = Array(2.36, 4.62, 4.6, 0.06) conv_table(8) = Array(2.38, 4.66, 4.66, 4.66) conv_table(9) = Array(3.2, 3.2, 4.66, 4.64) conv_table(10) = Array(4.66, 2.38, 4.66, 4.66) conv_table(11) = Array(4.66, 3.18, 3.2, 4.64) conv_table(12) = Array(4.66, 4.66, 2.38, 4.66) conv_table(13) = Array(4.66, 4.66, 3.18, 3.18) conv_table(14) = Array(4.66, 4.66, 4.66, 2.38) conv_table(15) = Array(0.06, 4.62, 4.62, 2.34) dirTable = Array("N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "SSW", "S", "SSE", "SE", "ESE", "E", "ENE", "NE", "NNE", "?") index = 16 For i = 0 To 15 If (((Voltage(0) <= CSng(conv_table(i)(0)) + 0.25) And _ (Voltage(0) >= CSng(conv_table(i)(0)) - 0.25)) And _ ((Voltage(1) <= CSng(conv_table(i)(1)) + 0.25) And _ (Voltage(1) >= CSng(conv_table(i)(1)) - 0.25)) And _ ((Voltage(2) <= CSng(conv_table(i)(2)) + 0.25) And _ (Voltage(2) >= CSng(conv_table(i)(2)) - 0.25)) And _ ((Voltage(3) <= CSng(conv_table(i)(3)) + 0.25) And _ (Voltage(3) >= CSng(conv_table(i)(3)) - 0.25))) Then index = i Exit For End If Next If index <> 16 Then If (index - NorthDirection) < 0 Then index = index - NorthDirection + 16 Else index = index - NorthDirection End If Else index = 0 End If WindDirection = dirTable(index)
Leave a comment:
Leave a comment: