- Netduino Forums
- → Viewing Profile: Posts: Scott Green
The Netduino forums have been replaced by new forums at community.wildernesslabs.co.
This site has been preserved for archival purposes only
and the ability to make new accounts or posts has been turned off.
Community Stats
- Group Members
- Active Posts 34
- Profile Views 8551
- Member Title Advanced Member
- Age Age Unknown
- Birthday Birthday Unknown
-
Gender
Not Telling
0
Neutral
User Tools
Friends
Scott Green hasn't added any friends yet.
Posts I've Made
In Topic: My Netduino CNC Machine
02 December 2011 - 09:25 PM
Darrin,
Looking great! Love the e-stop button...
Scott...
In Topic: Web Based Temperature Logger
02 December 2011 - 09:23 PM
Sweet! My younger brother is wanting to do exactly what you are doing. I'll let him know!
Scott...
In Topic: Netduino+ WeatherStation / Environment Monitor / Webserver
02 December 2011 - 05:59 PM
Scanman,
Super sorry about the reply delay. I totally missed your question.
The weather station is pretty much done from a hardware perspective. I've attached 2 pictures, 1 of the disassembled final product, and one of the assembled weather monitor.
What you are seeing is the monitoring hardware / home station. This consists of a circuit board that acts like a shield on the netduino. External to this box are an internal temp probe, an external box (outside) with Humidity, temp, Barometric pressure, and light level. There is also a weather station connection that provides wind speed, wind direction and rainfall. This monitor broadcasts packets to a dedicated windows server that tracks all of the weather statistics and provides a web based interface to the weather station. On the box is an LCD, LED and a Momentary switch. The LED blinks once for every revolution of wind, so I can visually see the wind speed from across the room. We routinely get 75mph winds where I live. The momentary pushbutton cycles through various LCD screens that give me instant access to all of the immediate weather stats.
This was certainly a fun project. Probably pretty aggressive to take on as the 1st project with the netduino, but I had a great time doing it. Figured out how to create circuit boards on my CNC router which is a huge win for me! This will open up a whole new world of projects in the future.
The DS1820 temp probes work well. I have no complaints about them at this point. You have to do some calibration between them, cause you will find that each one has slightly different temp readings, plus you have to make sure that you compensate for bad CRC values, and some bogus temp readings that you get from time to time. All in all, they are pretty easy to use with the 4.1.1 Alpha firmware. The one device that I am not happy with is the humidity sensor (Sparkfun). I've not found a super accurate way to read these things. The calculation requires a Zero humidity voltage reference value, and the only way you can get that is if you order it with the chip specific data sheet, and sparkfun does not supply that. Also, I get bogus reading from it all of the time. I think I can improve the logic to isolate the bogus readings, by ignoring huge second over second swings, but havent found a way to fix the reference problem. I'll keep hacking.
Scott...
In Topic: Unable to deploy without disconnect\reconnect USB cable
07 November 2011 - 05:27 AM
Chris,
Has there been any real progress on getting this bug fixed? This first report I see of this on Codeplex was way back in June and it doesn't look like any progress has been made towards resolution.
Does the forum software have the ability to take a vote? Seems like it would be good to know how many people are affected by this bug.
Scott...
In Topic: OneWire ALPHA
15 October 2011 - 02:21 AM
Ok, after a ton of research, and a ton of code tests I figured it out... The DS2450 returns the CRC with the bytes swapped, and it inverts the bits within each byte. i.e. 0xFF = 0x00. The following code results in a good CRC calculation... A little code cleanup and I'm golden!
var response = new byte[10];
var status = _core.Read(response);
var commandaddrdata = new byte[11]; // Array used to calculate the CRC16
commandaddrdata[0] = 0xAA;
commandaddrdata[1] = 0;
commandaddrdata[2] = 0;
commandaddrdata[3] = response[0];
commandaddrdata[4] = response[1];
commandaddrdata[5] = response[2];
commandaddrdata[6] = response[3];
commandaddrdata[7] = response[4];
commandaddrdata[8] = response[5];
commandaddrdata[9] = response[6];
commandaddrdata[10] = response[7];
UInt32 _LowInt = (UInt32) ~response[8] & 0xFF; // CRC Bits are inverted. Take complement of bits.
UInt32 _HighInt = (UInt32) ~response[9] & 0xFF;
UInt32 DSCRC16 = (((UInt32)_HighInt << 8) | _LowInt);
var crcwithcommand = OneWire.ComputeCRC16(commandaddrdata, count: 11);
if (crcwithcommand == DSCRC16)
{
channelA = (((Int16)response[1] << 8) | response[0]) * ConversionFactor;
channelB = (((Int16)response[3] << 8) | response[2]) * ConversionFactor;
channelC = (((Int16)response[5] << 8) | response[4]) * ConversionFactor;
channelD = (((Int16)response[7] << 8) | response[6]) * ConversionFactor;
}
else
{
if (errorProc != null)
errorProc(0, "DS2450 CRC Error. Return:" + DSCRC16.ToString() + " Calc:" + crcwithcommand.ToString());
}
- Netduino Forums
- → Viewing Profile: Posts: Scott Green
- Privacy Policy