Decision Time

Hi gang, I am a recently retired Engineer (Civil, not Electrical lol) who has always had an interest in computer programming and electronics. I also like to play with micro’s, mostly picaxes (basic), PIC’s, etc in creating some fairly simple home automation programs. I live on a rural property, and have a water treatment system (with an Reverse Osmosis Unit etc), and I have written a fairly large monitoring application for monitoring the system using pixaxe’s (and I2C over 200 foot distances which doesn’t work very well) I am experienced in VB as well, so I naturally got drawn into the .net MF world a year or so ago, spend a few hundred $$ on netduino/netduino Go!, then discovered the Gadgeteer products from GHI, I’ve got a spyder 2, cobra 2 or 3, a bunch of gadgeteer sensors, etc along with the netduino stuff catching dust. I also have a beaglebone black, Pi, some teensy 3.5/3.6’s, lying around…

I would like to re-write my application to run on a more ‘capable’ platform than the PIC/Picaxe, and in the process I will have to learn a new language which is fine. So I could switch to arduino development, stay with NETMF (with or without gadgeteer), or maybe wait until you can program a beaglebone black from VS?

I have been playing around with the cobra and spyder trying to get a 4.3 inch NewHaven Touch to work using glide and touch. About 2 days invested so far…

Soooo, my question. As Netduino, Netduino Go!, and gadgeteer are all dead or soon to be dead, I am wondering if it’s worth continuing to invest my time in NETMF at all, or just switch to a Beaglebone or PI, which seems to have considerably better support from the community. I have found it very frustrating getting documentation and assistance with NETMF, many hours spent wandering through incomplete or missing documentation. I am also concerned about running into a NETMF Bug that is not being fixed by MS or whoever is going to be managing NETMF in the future, resulting in more wasted time switching to a new development platform. For a documentation example, my newhaven display from GHI has 5 gadgetter ports, RGB, T, and I. VS throws and error when both T and I are connected, only one can be connected at a time, but I can’t find any documentation on what the two connectors do (obviously they are related to touch), and so far I have’t been able to get the glide xml file to run on VS without throwing and error, for example…

So, sorry this is a bit long winded, but I am asking for your opinion of where you would invest your time and effort in learning a new language and development system for the purpose of developing non-commercial micro projects for hobby purposes, based on where the technology is today, or where it’s going… Thanks for your comments!! - John

I think you may want to consider this when making any decisions

https://www.ghielectronics.com/community/forum/topic?id=23826&page=1

No doubt that the RPi and BBB have larger communities and a larger Internet knowledge-base out there, and are generally more capable CPUs, but they still are not anywhere as easy as NetMF to learn and apply. Yes, there are bugs and a smaller community to draw on, but there’s also a significantly shallower learning curve and easier tooling.

If rapid development and easy development is the goal, then NetMF is unmatched in my book. If you need something specifically more capable in some technical sense (e.g., multi-process, containerization, deterministic timing, multicast or P2P networking, OpenCV, etc), then you might need RPi or BBB (or FreeRTOS, mbed, etc), but you will pay a learning-curve price for that step, so be sure you need a specific capability before burning time there.

Right tool for the right job - and if the job is ‘fast and easy’ development, then yes, stick with NetMF. I certainly still plan to reach for it as a first choice for the right tasks.

1 Like

I think mcalsyn hit the nail on the head. 2 more points from my experience with NETMF.

  1. The best place to get help is on this forum. If I haven’t figured something out myself in a reasonable amount of time, or the documentation sucks; I’ll post a question on this forum. I am generally amazed at how fast I get a response and 9 times out of 10 I get the answer I need.

  2. There is a secondary advantage to my investment in C# that I am finding incredibly valuable. If you want to develop GUIs that display information and allow a user to interact with your embedded system, C# and the .NET desktop are incredibly effective and use the same Visual Studio IDE that you would use for you embedded systems. I just wrote a ship navigation systems that interfaces with GPS receivers, underwater tracking systems and eventually an e-mail server. I’m amazed at how quickly it came together and how few lines of C# code are required to do some pretty amazing stuff.

1 Like

OK, great, thanks for your replies so far! I’m feeling a bit better this morning after getting very little progress yesterday… I have my 4.3 inch cap touch NHVN Display now running with a basic glide screen (A Button and a text Box), I can update a value in the text box by pushing a separate button, but I can’t seem to get the touch to work on this thing. I have code that increments the text box when the glide screen “button” is pressed but the event never triggers when I touch the screen.

I have “GHI.Glide” included in my VS 2013 project (netMF 4.3, Spyder II Board), the NHVN screen is connected using R,G,B, and T (not I), and is connected that way on the gadgeteer diagram in VS. What else do I have to do to get touch working, sounds like I have to add a separate driver?? If so, I’ll need a hand on how to do that… thanks in advance!!

Are you using the NHVN display adapter? Is your display an I2C touch controller or 4-wire (Capacitive vs resistive touch usually)

Also look at posts from @ Dave McLaughlin about Newhaven touch as I am pretty sure he has a driver and has explained how to link it to Glide in the past as well

Yup I am using the adapter, with this display

It’s capacitive touch with I2C.

Thanks will look for Dave’s stuff, I am assuming that this one uses I2C for touch, I’ll also go over the datasheet for the thing…

I switched the VS gadgetter over to the I plug from the T plug, and it’s now looking for interruptinput.cs when it runs, so I’ll look into that…

For capacitive touch, that will always require an I socket. The T socket is for Touch, and is for a 4-wire resistive screen.

As mcalsyn said, it depends on what you are trying to achieve. Over the last several years I have played with NetMF, Arduino, TI’s Launchpad, some PIC stuff, esp8266 with Arduino, Particle, and probably something else. If you want to make blinky things and this is about as complex as you are planning on getting Arduino is great. There are lots of examples of really bad programming practices out there (for all of them really) but many of them work at least some, if not most, of the time. I have had some NetMF systems that run fine for many months sending data out to the could and operate autonomously, but it was not easy to get them to that state. I tried that with the esp8266, but could never get it to the reliable enough state (it might be better now, since there has been a lot of development since I last looked at it).

Debugging is way better on NetMF (since it is actually possible to debug and not just use print statements to see what happened).

If I actually get around to creating a small battery operated wireless sensor, I don’t think I would choose NetMF, but that is because I don’t believe enough people are actually using it that to figure out all the issues with it in terms of really, really, really low power usage. But, since I probably have wall power where I want them, it will be much easier to not worry too much about power and use whatever is easiest.

There is a learning curve for everything, and the more you learn about the way to do things with stuff you have the easier it gets.