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.

wendo's Content

There have been 34 items by wendo (Search limited from 29-April 23)


By content type

See this member's


Sort by                Order  

#58415 GPRS using AT cmd fail with +CEER: Regular deactivation

Posted by wendo on 27 May 2014 - 08:18 AM in General Discussion

Every modem has a slightly different AT command set for this sort of thing, what chipset does your GPRS modem have?




#58447 Browser problem: Firefox spell checker not working in edit box

Posted by wendo on 28 May 2014 - 07:57 AM in General Discussion

What _do_ you get when you right click in the edit box? Websites can replace the right click menu, but working around that is pretty simple with add-ons, but before you go down that road you'd want to confirm that's whats going on




#58514 Serial TTL LCD

Posted by wendo on 02 June 2014 - 03:47 AM in Netduino 2 (and Netduino 1)

There is a driver for the now discontinued Seeedstudio Grove Serial LCD here that I wrote that may work as a starting point. It doesn't have an RGB backlight like the one you have and will probably need all it's commands changed, but it'll give you framework to start with




#58609 Need help with I2C LCD display

Posted by wendo on 06 June 2014 - 10:27 PM in General Discussion

I'm not sure if this will help, but it may give you another option to try. Iv'e written a driver for the Grove RGB I2C LCD dislpay. The code is pretty generic and will likely work with minor modifications to for your I2C controller. You could remove all the RGB backlight code pretty easily and then just add the right codes to perform all the functions.

 

The driver is here

 

https://github.com/s...veRGBLCD/lcd.cs

 

The actual repo has an example program as well but it's pretty straightforward




#58610 Disk Drive Storage Project

Posted by wendo on 06 June 2014 - 11:13 PM in General Discussion

I'm exceedingly doubtful you could do this with a netduino at any sort of decent speed.

 

Initially you need to get another USB port from somewhere at minimum, but likely 2 as they need to be host ports. Either these would have dedicated controllers of their own, which you interface with over SPI or I2C or something, or you'd need to bit-bash them, the second likely isn't possible at all due to timing issues, the first would severely limit your speed.

 

Secondly you don't have the sort of memory available for to do any sort of decent read caching. Assuming you can pull that off, you then need to be able to decode the partition table and file system, read the data from it and and write the data to the new file system at ~30MB/sec whicih is all you can get from USB2 anyway. I don't know of any way you could push that sort of speed through a netduino alas. 

 

You dismiss the software as easy, but being able to read and write to NTFS partitions and file systems is no small feat for something on this scale.

 

For something like that you'd probably want to look at something like an FPGA board, but even that would be pretty painful as while you'd get the hardware side done fairly easily at decent speed, you still need the whole filesystem and partition layer to be able to write to the second drive.




#59013 Control LCD Display

Posted by wendo on 04 July 2014 - 11:38 PM in Netduino Plus 2 (and Netduino Plus 1)

I've written a basic driver for this here

 

It's basically a direct port of the supplied driver for the arduino




#59032 Control LCD Display

Posted by wendo on 06 July 2014 - 04:42 AM in Netduino Plus 2 (and Netduino Plus 1)

I use 2012, although it should work in any version really (I'm surprised 2013 wouldn't open the sln honestly).

 

Youneed to make sure you have the NETMF Toolbox assembles installed and include Toolbox.NETMF.Core and Toolbox.NETMF.Hardware.Core as references




#59033 Can anyone recommend a rock-solid LCD display?

Posted by wendo on 06 July 2014 - 04:44 AM in Netduino Plus 2 (and Netduino Plus 1)

Typically when I see that behavior on an LCD my first impression is I'm sending it data too fast. In saying that, most of my experience with LCD's has been either with serial LCD's or SPI/I2C ones as I hate having to dedicate heaps of pins to drive a screen




#59980 Safe code to convert byte[4] to float

Posted by wendo on 03 September 2014 - 09:22 PM in General Discussion

Hi Everyone

 

Let me give you some background. I'm building a wireless weather station using a variety of sensors, an adruino mini and an nRF24L01+ radio. All this works properly and fine. I've been prototyping with the receiver also running an arduino just for simplicity however the end goal was always to have my Netduino 2 Plus acting as the receiver due to the easy network integration.

 

Last night I spent a lot of time getting the radios talking and that is now working however I'm getting a byte packed array from the arduino (it uses the RF24 library) that contains floating point numbers. Endian issues aside I can't now get that byte packed array back to the floating point numbers I sent using any safe code as far as I can tell.

 

There are some posts scattered around using unsafe code to do this with varying levels of success but I need this to a) not eat my netduino, and B) be rock solid.

 

Without a bitconverter class available there is no "easy" way to do this, but I'd settle for hard at this point as long as the code was safe. I'm struggling to believe something seemingly as simple as this hasn't been solved in a more complete way but if I can't do this then it's back to my arduino receiver and buying an ethernet shield to get the job done.

 

This isn't the first time I've run into difficulties converting data types and it's probably the primary reason I have been spending less time with my netduino hardware, but that there seems to be no way to go from a byte array to a float just beggars belief.

 

Am I missing something somewhere?

 

Thanks




#59988 Safe code to convert byte[4] to float

Posted by wendo on 04 September 2014 - 09:13 AM in General Discussion

Oh wow, I'm on 4.3 but had missed that piece of information.... that'll make life EASY!

 

Thanks

 

And Baxter.... that's crazy, and awesome :)




#60217 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 25 September 2014 - 09:08 AM in Netduino 2 (and Netduino 1)

Hi

 

I'm getting this error intermittently on my N2+ when trying to send an HTTP GET command. I'm also getting "IP Address: <ip address>" printed semi regularly that isn't generated from my code. Presumably both are coming from a lower level and I have managed to track down the error message in what appears to be the NETMF firmware files, but it doesn't really make much sense to me.

 

The code that's generating the error is as below. It's called every 30 seconds from a timer. Can anyone explain what I'm doing wrong or how to get rid of the error? It seems to recover from this most of the time and continue but other times it then stops sending network traffic, although the rest of the program continues on fine.

        private static void UploadData(object sender)
        {
            var URLString = "http://data.sparkfun.com/input/" + sfPublicKey + "?private_key=" + sfPrivateKey + "&humidity=" + humidity.ToString("F1") + "&pressure=" + pressure.ToString("F0") + "&rain=" + rainfall.ToString("F0") + "&temp=" + temp.ToString("F1") + "&voltage=" + voltage.ToString("F2") + "&winddirection=" + windDirection.ToString("F0") + "&windgust=" + windGust.ToString("F1") + "&windspeed=" + windSpeed.ToString("F1") + "&charging=" + charging.ToString();
 
            try
            {
                using (HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URLString))
                {
                    request.Method = "GET";
                    request.KeepAlive = false;
                    request.Timeout = 5000;
                    request.ReadWriteTimeout = 5000;
 
                    using (var response = (HttpWebResponse)request.GetResponse())
                    {
                        if (response.StatusCode != HttpStatusCode.OK)
                        {
                            Debug.Print("HTTP Status:" + response.StatusCode + " : " + response.StatusDescription);
                        }
                    }
                    request.Dispose();
                }
            }
            catch (Exception ex)
            {
                Debug.Print(ex.Message);
            }
        }



#60229 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 25 September 2014 - 07:32 PM in Netduino 2 (and Netduino 1)

I should mention I'm running 4.3.1 firmware. Here's hoping they will fix it and we'll get a new firmware release otherwise my weather station receiver will need to move platforms. It's not ideal to have a data logger that stops logging data every day




#60253 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 27 September 2014 - 06:21 PM in Netduino 2 (and Netduino 1)

I put the dispose in there as I had the same idea that it was a memory leak so I wanted to make sure the request was being cleaned up. 

 

In saying that, I haven't seen the same issue for a couple of days now so I'm wondering if something else I've done has fixed it. Code is attached below. It's a decent size so it's not inline.

 

Basically I have an arduino with weather sensors attached mounted outside. It sends all the data to the Netduino via an nRF24L01+ radio system every 10 seconds and from there the Netduino uploads it to Sparkfun (and now Weather Underground) ever 30 seconds. 

 

Just thinking about how I've seen this happening it's possible the errors are actually coming from the NTP syncing which I'm doing once an hour as the only time I've seen these errors is when I've left MFDeploy sitting running for hours/days and I've had to remove all the Debug.print statements from my program to even see them as the scrollback buffer was never long enough so I don't know for sure that it's coming from the original timer.

 

Any ideas welcome

Attached Files




#60269 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 28 September 2014 - 05:53 AM in Netduino 2 (and Netduino 1)

I'm getting a little lost trying to implement the locks. both lock and Monitor appear to require you specifying the actual object s to protech, but I just want to lock entire code blocks, and the objects are different in each block anyway?!

 

Thanks




#60270 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 28 September 2014 - 06:41 AM in Netduino 2 (and Netduino 1)

I've switched over to the Toolbox HTTP_Client library rather than the built in one to see if that may help, I'll also look at switching over to the Toolbox NTP library too if I continue to see it and go from there. I'd still love to know how to lock the code blocks though




#60281 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 29 September 2014 - 01:48 AM in Netduino 2 (and Netduino 1)

Thanks for that, and for the record, the toolbox HTTP_Client appears to make it much much worse. I'll see how I go with adding some locks. Failing that I might add an RTC and remove the NTP code entirely and see if the problem persists




#60282 DHT11/22 sensor managed driver

Posted by wendo on 29 September 2014 - 01:51 AM in Project Showcase

When playing with these sensors I notice they take quite a while to stabilize after any changes. It may be as simple as moving between 3.3v and 5v VCC and they need some time to settle.




#60285 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 29 September 2014 - 06:11 AM in Netduino 2 (and Netduino 1)

The idea is for this to pretty much run uninterrupted for long periods of time so startup may only happen once every few months. I could probably push it out to once a week but I've got it going as often as it is pretty much exactly to catch these sorts of things :)




#60287 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 29 September 2014 - 08:38 AM in Netduino 2 (and Netduino 1)

Locking didn't help, onto doing a single NTP sync on boot and seeing what happens with only the web traffic




#60320 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 02 October 2014 - 03:56 AM in Netduino 2 (and Netduino 1)

I haven't, but that's only because I have never known how too :)

 

With only an initial NTP sync I still see it so it's not NTP that's causing the problem. I actually captured the exception and it's coming from inside System.http.

 

I do suspect a memory leak but as far as I can tell it's inside the HTTP library. Anyway, I'll start tracking it now and we'll see what we end up with. The error doesn't appear to be the actual cause of the lockups, at least not directly, the lockup itself is the above mentioned exception (so not technically a lockup) and the errors occur multiple times before that happens, seemingly at random. It also doesn't appear to be tied to one site specifically as I've enabled and disabled both the sparkfun stream and the weather underground stream and it continued to happen on both, so it's not some screwy response from the server causing it.




#60345 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 04 October 2014 - 11:07 AM in Netduino 2 (and Netduino 1)

So, not a memory leak, free memory stays pretty static around 79000

 

Is there some way I can catch the exceptions coming from System.Net and System.Http?




#60354 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 06 October 2014 - 07:31 AM in Netduino 2 (and Netduino 1)

Right, so I got an exception from System.Net.Sockets with an errorcode of 10060 and an m_HResult (whetever that is) of 4278190080 as this line 

using (var response = (HttpWebResponse)request.GetResponse())

10060 appears to be a timeout 

 

My question is why does a timeout cause an exception, and secondly shouldn't the try block that this is encased in catch this anyway? Or does a try block only catch exceptions from the next line?




#60359 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 06 October 2014 - 06:32 PM in Netduino 2 (and Netduino 1)

No, not at all, both sites are internet based so it's entirely possible they are down or have some other issue...

 

The question is how do I handle that cleanly and without causing an exception? Embedding the statement in another try block doesn't work as I've also just gotten a 10053 error (connection aborted) at the same place.

 

Ideally what I'd like to be able to do is detect the exception and either just ignore it (since I'll send again in 30 seconds anyway) or retry it




#60365 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 08 October 2014 - 03:55 AM in Netduino 2 (and Netduino 1)

As far as I'm aware I'm catching everything. I haven't changed any settings to limit what I'm catching and I assume the default is to catch everything?!




#60372 enc28j60_lwip_recv: input alloc packet failed

Posted by wendo on 08 October 2014 - 06:03 PM in Netduino 2 (and Netduino 1)

catch (Exception ex)
{
    Debug.Print(ex.Message);
}

The exceptions that occur appear to kill the timer that calls UploadData as far as I can tell. I've still got the debug.print command I added to show the free memory and once one of the exceptions hits that timer stops firing (it's the first line in the subroutine)





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.