Netduino home hardware projects downloads community

Jump to content


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.

bill.french's Content

There have been 260 items by bill.french (Search limited from 01-July 24)


By content type

See this member's


Sort by                Order  

#5963 What's the status of Onewire?

Posted by bill.french on 10 December 2010 - 03:17 AM in Netduino 2 (and Netduino 1)

Got it working! http://forums.netdui...-using-onewire/



#5508 What's the status of Onewire?

Posted by bill.french on 30 November 2010 - 01:20 AM in Netduino 2 (and Netduino 1)

Any suggestions on a chip? I'm having trouble finding anything. Closest I could find was this: DS2480B but DIP would be much easier for me. Thanks!



#6235 netduino+ Sous Vide Test Egg 1

Posted by bill.french on 19 December 2010 - 05:49 AM in Project Showcase

Can you post your PID code? What form are you using? (Ideal, parallel, etc)

LOL WUT?**

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

Of course! Thursdays are the "open hack nights" so there's usually some folks there doing something interesting for guests. Let me know when you're coming, I'll netduino up some steaks and print you a netduino t-shirt on our silkscreen press! We'll use bottle openers printed on our makerbot to open some Fubrew.



#6196 netduino+ Sous Vide Test Egg 1

Posted by bill.french on 18 December 2010 - 03:01 AM in Project Showcase

After a long journey trying to get reliable temperature readings using thermistors, I was finally able to test out my Sous Vide project using actual food last night using a Dallas DS18B20 OneWire temperature sensor and a onewire controller.

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):
Posted Image

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

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

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

Water circulation is definitely necessary. I didn't believe it at first, but the temperature differential between top,bottom, and middle of the water can be significant, as much as 5 degrees I was noticing, which is a big deal apparently, with hots spots at the bottom from the element, and a hot spot up top where the hot water rises. Also, the pot will set up pretty solid water currents from the convection, which now makes hot and cold spots horizontally. I do need to do something with the motor. I keep forgetting about that part of the project. Right now it's just a motor with the wand part of a baby bottle stirrer stuck on the end. It's super effective, too effective, really - it keeps moving the food around and sucks it into a votex and into the blades. An air bubbler would be easier, i think. I'm not quite at "version 1" yet, it's more proof of concept. I am going to now work pretty steadily towards etching my own PCB and get it into a shield form factor so that it will actually be usable and not require and hour of setup. Also, a lcd and interface are needed. Right now, changing the target temperature requires visual studio. I definitely want it to be easily multi-channel, as that's about all that really differentiates it from a $35 pid controller. I also need to test and build in some kind of safety so it doesn't burn my house down. Ultimate end-goal would be a professional produced "shield" product. I've always wanted to make and sell a product -- if one person buys it, that would be awesome and a check on my bucket list. The key for that is going to be getting it arduino compatible, and probably also make it useful for other things, such as environmental controls. It is basically a sophisticated thermostat. Once the netduino supports onewire out of the box, the game changes quite a bit. Thanks for asking, by the way. My family camps up in Alfred, ME pretty much every year. I'll have to invite you over for sous vide steaks finished on a camp fire.



#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)

...wait, so my example worked??? with a netduino?



#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)

Not entirely sure I understand what you're looking for?
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)

I have had very good luck with this unit: http://www.phanderso...mp/onewire.html



#4674 Disable Pull-up resistors

Posted by bill.french on 08 November 2010 - 09:46 PM in General Discussion

Have you tried using a pull down resistor? Quickly looking at all the example circuits on the datasheet for the LM35, it looks to me like they have some kind of path to ground. Also, according to the neduino processor datasheet, only AD0-3 have pull up resistors, A4-7 do not?



#4607 Disable Pull-up resistors

Posted by bill.french on 07 November 2010 - 07:49 PM in General Discussion

The LM35 seems to have given folks some trouble... I don't have one so I don't know how to fix it. Marius: what if you used a fairly high ohm pull-down resistor? It almost seems like very small output current of the LM35 has nowhere to go. Instead of the cpu acting like it has a pull up resistor, it simply has too high of a resistance to sink the current away. This is all wild guessing on my part.



#4608 Disable Pull-up resistors

Posted by bill.french on 07 November 2010 - 07:53 PM in General Discussion

LOL i was going to link to the previous thread about the LM35 in case there were some hints ... but it's your other thread...



#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)

I think my question is more technical than it might have come across. My oop is pretty good, i am weak on threading, and building disposers in the context of a GC is mysterious to me.

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)

This is like c# therapy.. thank you!

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)

ourt post timing seems to be crossing... lol i appreciate your regions link, too. Concerning GC.SupressFinalize -- in your opinion would it be appropriate in the webserver? Why or why not?



#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)

This has been great for me.

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)

Phantom, besides having some hilarious comments, your linked articles seem to argue against working so hard to explicitly dispose of objects c++ style, just when I was starting to get into it w/ c#. What I linked above seemed to argue for IDisposable in the context of exceptions and future-proofing, which I can get behind.

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)

Awesome, thank you, sir. Maybe in a couple weeks I can buy you a roast beef, mutz, and gravy sandwich when i'm in hoboken next.



#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)

Damn, I hate posting code online.

Please please please don't stop!! Certainly not because of anything I've said! You're a hero in my book.

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)

Fred (and Others) Web Server

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

can you post your complete source code?



#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. :o



#6411 A project suggestion - for Netduino, Plus, or mini.

Posted by bill.french on 23 December 2010 - 12:25 AM in General Discussion

You say "no internet" -- does that mean "no network"? My sous vide controller basically does what you describe, and sends the temp back via debug and network. There is an extra piece in the form of a onewire>rs232 controller, since the netduino doesn't support onewire directly, yet. Some links: Reading temp from DS18B20: http://forums.netdui...ch__1#entry5962 Graphing data over the network: http://forums.netdui...ch__1#entry4637 My sous vide thread: http://forums.netdui...ch__1#entry6196 The DS18B20 is a very cool chip. Once onewire is supported in the netduino, it will be a piece of cake to use.



#6737 A project suggestion - for Netduino, Plus, or mini.

Posted by bill.french on 31 December 2010 - 05:32 AM in General Discussion

I got the phanderson controller working -- check my links above.




home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.