- Netduino Forums
- → bill.french's Content
bill.french's Content
There have been 260 items by bill.french (Search limited from 01-July 24)
#5963 What's the status of Onewire?
Posted by
bill.french
on 10 December 2010 - 03:17 AM
in
Netduino 2 (and Netduino 1)
#5508 What's the status of Onewire?
Posted by
bill.french
on 30 November 2010 - 01:20 AM
in
Netduino 2 (and Netduino 1)
#6235 netduino+ Sous Vide Test Egg 1
Posted by
bill.french
on 19 December 2010 - 05:49 AM
in
Project Showcase
LOL WUT?**Can you post your PID code? What form are you using? (Ideal, parallel, etc)
I am basically using a variation of this:
http://www.codeproje...ecipes/PID.aspx
...with the variation being for the integral i only remember the last 20 readings. At this point only P and I are doing much of anything, since the heating process is pretty slow, D doesn't really come into play very much with how I have it tuned currently.
**If you could direct me to a web page that explains pids and whatever ideal and parallel is, I would love to read it. Everything I've found (and there's quite a bit of it out there) seems to use technical vocabulary that I am not comfortable with. I feel like I've figured the essence of PIDs out, but it was a tough journey to wrap my mind around it since everything I was reading was not very approachable in my opinion.
#6198 netduino+ Sous Vide Test Egg 1
Posted by
bill.french
on 18 December 2010 - 03:23 AM
in
Project Showcase
#6196 netduino+ Sous Vide Test Egg 1
Posted by
bill.french
on 18 December 2010 - 03:01 AM
in
Project Showcase
The basic setup at this point uses a netduino+, the onewire controller, the DS18B20 for reading the temperature, a PowerSwitchTail controlling a cheapo walmart electric pot and an electric motor for agitating the water. What will be kind of a unique feature of my setup (besides network control and monitoring, which is in and of itself very cool) is that I can us this setup to manage up to 6 Sous Vide devices, so that there could be a meat, veggies, sides, dessert, and even the next days meat all going at once.
I still need to tune the PID algorithm, but looking at the graph, I am very close to a very stable temperature (it was set to 173F):

The goal was a (very) hardboiled egg, without any green on the yolk, and I was successful:

This is a picture of the setup, taken at Fubar Labs, my local hackerspace.

Next up: Chicken Breasts!
#6267 netduino+ Sous Vide Test Egg 1
Posted by
bill.french
on 20 December 2010 - 01:36 AM
in
Project Showcase
#8178 How can I get instant (or close to) data from http...?
Posted by
bill.french
on 23 January 2011 - 04:00 PM
in
Netduino Plus 2 (and Netduino Plus 1)
#8173 How can I get instant (or close to) data from http...?
Posted by
bill.french
on 23 January 2011 - 02:53 PM
in
Netduino Plus 2 (and Netduino Plus 1)
Yup, *Note to self: "srtw"* (http://www.stopreinventingthewheel.com)
LOL... i added the quote to that page. I think I'll start a collection.
Have you tried playing with my example above? I think it should work.
jquery is definitly the place to start (and probably end) for ajax, i think VS is has intellisense for it?
#8121 How can I get instant (or close to) data from http...?
Posted by
bill.french
on 22 January 2011 - 10:08 PM
in
Netduino Plus 2 (and Netduino Plus 1)
1. How to get your javascript to get live data w/o refreshing the whole page?
2. Or a different way to get data from the netduino?
For #2, I don't know what you're going for.
For #1, check out jquery and the load command: (this would go in your refresh function once you have jquery included)
$('#myDiv').load('data.htm');
(to add jquery, use:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>in your <head>)
... in your program.cs: (i have not tested this, so it's more of an idea than anything)
namespace NetduinoPlusWebServer { public class Program { public static void Main() { Listener webServer = new Listener(RequestReceived); OutputPort led = new OutputPort(Pins.ONBOARD_LED, false); while (true) { // Blink LED to show we're still responsive led.Write(!led.Read()); Thread.Sleep(500); } } private static void RequestReceived(Request request) { if (request.URL == "data.htm") { request.SendResponse("some kind of data"); } } } }
#8087 1-WIRE
Posted by
bill.french
on 22 January 2011 - 02:27 AM
in
Netduino Plus 2 (and Netduino Plus 1)
#4674 Disable Pull-up resistors
Posted by
bill.french
on 08 November 2010 - 09:46 PM
in
General Discussion
#4607 Disable Pull-up resistors
Posted by
bill.french
on 07 November 2010 - 07:49 PM
in
General Discussion
#4608 Disable Pull-up resistors
Posted by
bill.french
on 07 November 2010 - 07:53 PM
in
General Discussion
#4295 .Net, Fred's webserver, and me
Posted by
bill.french
on 28 October 2010 - 02:22 AM
in
Netduino Plus 2 (and Netduino Plus 1)
My understanding about why you might build your own disposers is when you're dealing with unmanaged code, or threading issues, or if you want to dispose of stuff in particular order for particular reasons -- otherwise the garbage collector takes care of its business pretty well.
So, in short, while I can read and understand the IDisposable interface, i'm struggling to understand why people use it in fully managed code situations outside netmf, and particularly with our nd+, what about the listener.cs code calls for the use of IDisposable?
#4298 .Net, Fred's webserver, and me
Posted by
bill.french
on 28 October 2010 - 03:12 AM
in
Netduino Plus 2 (and Netduino Plus 1)
I like this explanation on using and IDisposable -- does that sound about right to you?
I've also figured out that the #Region stuff is not a requirement, just a nice way to structure the code, right?
Should you have "GC.SuppressFinalize(this);" as in here? Or is that not applicable in netmf?
Reading the webserver code, I am understanding how it's non-blocking -- but is it multithreaded? There's certainly threads involved, but to make it multithreaded, it seems that once you got a clientsocket, that should be spun off into it's own thread (which would deal with the response) so that the next connection could be accepted? I don't doubt that I'm misunderstanding this. Am I missing something?
Thank you so much for your time!
#4302 .Net, Fred's webserver, and me
Posted by
bill.french
on 28 October 2010 - 03:29 AM
in
Netduino Plus 2 (and Netduino Plus 1)
#4331 .Net, Fred's webserver, and me
Posted by
bill.french
on 28 October 2010 - 11:09 PM
in
Netduino Plus 2 (and Netduino Plus 1)
Corey, if I can get a little more time from you, or anyone else:
But you may be wondering why the link you posted has such complicated code. The answer is that Bill Gates is much smarter and richer than you and me, and therefore he has thought very hard about the difference between finalization and disposing. The rules are subtle and complicated (by the way, the link you posted also has it a little bit wrong)
Is the issue in:
~DisposeObject() { Dispose(false); }
? It seems this finalizer doesn't do anything, and based on what you said:
1. It should call CleanUp()
2. CleanUp() should deal with only unmanaged stuff
3. managed stuff should be handled in the if(disposing) block
Thanks, all, again. --Bill
#4301 .Net, Fred's webserver, and me
Posted by
bill.french
on 28 October 2010 - 03:25 AM
in
Netduino Plus 2 (and Netduino Plus 1)
Most of what I've written in the past only dealt with exceptions as a bad thing that end a program, I do know that I need to explore using exceptions in positive ways, somewhat similar to events.
#4362 .Net, Fred's webserver, and me
Posted by
bill.french
on 30 October 2010 - 12:39 AM
in
Netduino Plus 2 (and Netduino Plus 1)
#4315 .Net, Fred's webserver, and me
Posted by
bill.french
on 28 October 2010 - 12:20 PM
in
Netduino Plus 2 (and Netduino Plus 1)
Please please please don't stop!! Certainly not because of anything I've said! You're a hero in my book.Damn, I hate posting code online.
Wow, thanks everyone, I have read every word and I think I get it. My original post was primarily about tricking smart people into teaching me something I probably should have already known, for free. However, a part of me hopes I'm not alone and that it might be useful for someone else.
I also think this discussion really reveals how awesomely powerful the netmf is -- i can't imagine the competing platforms are having these types of discussions. I am certainly capable of understanding these things, but the subtleties of the implementation are tough, or at least, unobvious. (A tilde means what??)
I have been thinking about the using statement (and IDisposable, but not as much - and only tied the two together in the last 24 hours) for at least 5 years. I've read what it does, but have never gotten to the "but, why?" part. This line in the .net wiki sums up my frustration:
You should be familiar with the pattern or with the interface because it's a basic thing to know about the .Net framework.
Basic thing to know?? Why? I've read many books and created .Net applications that (admittedly small numbers of) people are actively using on a daily basis and never touched/actively avoided it.
I learn much better when there's a practical application involved, and the nd+ web server seemed like a perfect opportunity for me to bring myself forward with code I otherwise understand.
Concerning the multithreading, I agree that how it is done is probably the most appropriate. Threading is also something I'm trying to wrap my head around, so I'm happy to see i've gotten myself to the point of identifying it... how to make it multithreaded (or if it even should be) i will leave up to you all, but maybe I'll tackle it.
So, am I getting this right:
The point/advantage of having Listener implement IDisposable is so others can now call it in a using() (since using() requires the IDisposable interface) and trust it to clean up after itself. Does the IDisposable stuff also get called if, at some point in Program.cs, webServer = "null"? I think "yes".
Thank you, all, again.
#4293 .Net, Fred's webserver, and me
Posted by
bill.french
on 27 October 2010 - 11:26 PM
in
Netduino Plus 2 (and Netduino Plus 1)
As someone who understands but tries to avoid ternary operators, because they scare when I try to read code, I think I am really close to understanding everything that is happening in the listener.cs file -- any suggestions on how to work through it? I need the "dummies" version before I can tackle the MSDN version that deal with the concepts. I feel like I need some help getting to the next level with .Net. I think my questions mostly deal with IDisposable and/or disposing of objects. Even suggesting a class from MS where this stuff can be learned would be appreciated.
My basic questions:
1. What is IDisposable all about? I see here that it's important to know about it
2. What's up with the ~Listener piece? Here's a fun discussion of the tilde. Reading that made me say: WUT JUST HAPPENED HERE?
3. I have heard before that using() (as in, using (ClientSocket)) does something special, like disposes of the object when it is done, is that true?
4. "#region IDisposable Members" -- what is up with the #region stuff?
5. Why are we dealing so explicitly with disposal of stuff at all? Is it for performance reasons? Or should we not trust things to get disposed of on their own?
Forgive me if these questions are dumb. I've been working with .net for years now, and basically avoiding these questions. The basic stuff I've done over the years works, and I can't figure out how or why to learn about this stuff -- but the smarter folks all seem to do it so it must be important, and not just stylistic choices. I've done some pretty cool things over the years but I'm guessing my code looks like it's written by a 4 year old. Thank you!
#4590 External buttons problem
Posted by
bill.french
on 07 November 2010 - 05:43 PM
in
General Discussion
#6433 A project suggestion - for Netduino, Plus, or mini.
Posted by
bill.french
on 23 December 2010 - 02:24 PM
in
General Discussion
So, what to do in the interim. I liked the solution of the Anderson RS232/Onewire converter, but you know, how is that really different or much cheaper, than just buying a Arduino to use with the Netduino? But look at the beginner out there, the first thing he reads is he needs to go out and buy an Arduino, after he's made the choice to go with a Netduino !!
From what I've been reading, OneWire is actually really hard. The timings are very precise. Even the Adruino playground references Dr. Anderson's chip as an alternative that "reduces the workload inside the Arduino". Some sort of interrupt or other delay in the middle of it and you're sunk.
Although I might just be trying to justify my purchases to myself.

#6411 A project suggestion - for Netduino, Plus, or mini.
Posted by
bill.french
on 23 December 2010 - 12:25 AM
in
General Discussion
#6737 A project suggestion - for Netduino, Plus, or mini.
Posted by
bill.french
on 31 December 2010 - 05:32 AM
in
General Discussion
- Netduino Forums
- → bill.french's Content
- Privacy Policy