Well, I'll be coming at this from a different perspective. I am one of the "Minority" who started as an Electronic Engineer, Learned Web Design and Application Design and has been doing both for 20+ years. I am old school in the fact that while I have a degree in CEET, I don't believe whole-heartedly in in Certifications and Degrees without the Skills to back it. I have hired many a person over the years who could spew terms like a dictionary with a spigot but you barely program or design themselves into keeping the job.
I learned the hard way... by doing, by tinkering and also by reading, researching and studying... basically putting in the effort and realizing the end result is worth the time spent and there are no shortcuts to be had that bring personal value and satisfaction.
I know there are people that discover these Microcontrollers like the Netduino and say, I wish I could have a device that could turn on my lamp when it gets dark outside. Well, with the Netduino you can build that if you are willing to spend the time to learn about the Netduino, C# and how simple electronics works. There is knowledge and value to be gained by building it along with personal satisfaction. If people simply want to shortcut it and get it running ASAP taking all the shortcuts, why not simply by an X10 remote and an X10 Lamp controller. You will be able to still control that lamp, it's ready to go and will probably be cheaper than making it yourself.
Now I'm not saying to build everything from the ground up and force the users to code everything. I have made and sold many modules for DotNetNuke, Custom .NET controls, breakout boards for sensors all of these which are meant to save time. This is the idea behind the libraries. If you are going to design a set of libraries it should be done with a methodical approach. Research what libraries are out there for the Netduino already. Stefan, Mario, Fabien and many others have libraries already out there with quite a few great features and drivers. Look at the gaps that need to be filled. Design the libraries in a way where they are usable and extensible to allow the user to implement it as well as expand it. Then provide clear documentation for the classes for the end users providing examples and instructions. While this shows how to make it work, it still puts the work back on the user to plumb it all together.
So, I few ideas... I've read about frustration on a few forums. Things users have asked for as far as "has anyone written this yet" and here are a few suggestions based on that. These are classes I had to write for myself on my own .NET Netduino projects.
- Simple Data Logging - Ability to easily log data to an SD card. Could be Fixed Text, Could be XML, Could Provide Both. Make it simple enough to handle basic logging needs but robust enough for advanced users to do something like pass a collection of objects and have it automatically deserialize the collection to the log files.
- Error handling - A global error handling class which not only is able to handle errors properly but can also take advantage of the Simple Data Logging class and log the errors to a log file. Keep it extensible so a user could add in functionality to email or tweet an error using a 3rd party class like Stefan's SMTP or Fabien's Twitter classes.
- Menu System - This could be a tricky one because you need to take into account the different types of display mechanisms, or simply design it to work with Character LCDs but design it in a way where users could enhance it to work with their displays. I had to design a Menu System for my project that had a Parent/Child relation menu system. Allowed me to use a simple setup of an Up/Down/Enter button or in a more complex case Up/Down/Left/Right/Enter from a 5 way joystick or tactile button. The menu system should be configurable to the Screen to allow the user to specify things like; Show on 1 line, 2 line, etc basically how you will see the list of menu items. Easily allow a user to specify what an item click does (ie: Execute a method vs going to a child item). Have the ability to drive the Menu through code like an array or even from an XML file on the SD Card.
So these are a few of my thoughts, opinions, ideas. I hope my 2 cents is worth 2 cents. Good luck with the project and welcome to the Netduino Forums!
- Captain Colon likes this