Arduino – I finally cracked

For many years I avoided this popular microcontroller platform. Two reasons: I’m a one trick pony when it comes to programming (in VB.Net) and I hate having to learn yet another new programming language. I just want to be productive. Since my new job requires the intensive use of the Arduino ecosystem I now have to go down that road.

To stick to Windows programming and its GUI I previously used some of the USB hardware boards that were available. Like Labjack, my favorites DigiBee and Stepperbee and two years ago a co-worker got me acquainted with Phidgets.

All this is cool stuff that gets easily interfaced to a VB.Net program and nicely letting me stay in my .Net comfort zone. The major downside is that you always have to keep a PC available to run the software that interfaces to the hardware. Not always practical and sometimes even impossible.

Then there was the infamous Netduino. Sounds like and Arduino, looks like an Arduino and supposedly operates like an Arduino. But for the .NET platform. Through Microsoft’s micro framework it was programmable with either C# or VB.Net. That brought me a stand-alone microcontroller that could be programmed with a language I was reasonably proficient in.

Sales talk! Soon I learned that this was not a match made in heaven. Rather a quirky  marriage. The community was mostly centered around C#. I understand that given the popularity of C# – no problem. Factory support and code samples seemed to favor C# and treated VB stepmotherly. I found this more of a problem since they explicitly mentioned VB.Net support. But the biggest problem we (I together with my former co-teacher and students) was that this darn platform was just not stable. The IDE didn’t respond to the board, the board didn’t respond to the code, the IP stack was unstable, I²C routines were hard to get going… What worked yesterday is broken today.

My guess had always been that there are too many layers in the cake: firmware on the board, SDK for Visual Studio and the Micro Framework. Each of those rapidly issuing updates that would sometimes break old code. I lost interest in the board because of this. Recently I learned that the original manufacturer sold its business and the new owner ( sent out a newsletter in which he openly admitted this:

Even with its quirks and limitations (I’m looking at you .NET MicroFramework), there’s nothing else on the market I’d rather use. 

Quirks and limitations indeed.

In the mean time I took my first steps with the Raspberry Pi. That was two years ago. Fantastic platform and the onboard HDMI makes GUI programming possible. I bought a (pretty expensive) touch screen after I learned that Microsoft made an IoT version of Windows for the RasPi. No need to tell I fell into the trap – AGAIN. Compiling traditional Windows Forms code (i.e. to write programs working in a window running on Windows) was impossible. I fiddled with their Win10-IoT / UWP thing only to abandon after a while. If I need to learn another approach from scratch I might as well ditch that Microsoft shit all together. Python then? I have learned a few languages over the last 25 years so… YES I CAN! Only to find out that Python does not lend itself to GUI programming without additional frameworks or whatever it’s called. BUT I WANT TO INTERFACE WITH THE USER!!! And that user is me. A wattmeter/SWR meter for instance. Wouldn’t this look so much nicer with a graphic display rather than an alphanumerical LCD? However too much other things have kept me away from these toys since 2017.

Late 2018: Arduino it is then. I’m slowly getting to know the board and the code. I don’t want to cut ‘n paste code. Which is what most users seem to do. I want to understand. The classic blinking LED is easy. PWM with transistor driving a small DC motor was easy too. A four bit binary counter putting out BCD visualized with LEDs? Took some studying but it worked. The online documentation is great!

Five or six years ago I bought an 4×20 LCD display that never worked on the Netduino. I thought the display was DOA but no… I had it display a few lines of text after half an hour of trying to interface the display to an Arduino. The display is not DOA after all – damn Netduino platform. So many wasted hours!

I really would like to make my own watt/SWR meter. Seems like a cool project. I could do the hardware with the Arduino with basic reporting on the LCD display and have it send values to the PC that runs a VB.Net program with a nice interface…

Hobbies: time is an issue. Its use dictated by priorities.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.