Nov 11

Being fortunate enough to be a Microsoft MVP (Developer Security) I was able to attend the MVP Summit 2014 meeting at Microsoft Redmond and spent most of my time with the Embedded MVPs and Microsoft IoT Product Group which I really enjoyed as IoT has been a personal passion of mine for many years.  On the last day of the conference are side sessions where the groups at Microsoft who don’t have MVPs can present to interested MVPs and this year the Microsoft Accessibly group scheduled a full day of sessions which really caught my attention as this has been an interest of mine for a long time as well.  When I was at the University of Calgary in the late 80’s I taught special sessions for Visually Challenged students (I’d be remised if I didn’t mention Norman Palardy as he was the other session instructor and friend)  as the thinking was that Computer Science is a very cerebral activity and hence could be a viable occupation for someone with visual challenges.  While some of the students did manage to graduate with a degree in Computer Science I have to applaud their persistence as while the course material is difficult, the challenges of working with the existing technology etc  as a sight challenge student was ridiculously difficult.  Life in general for people with challenges is ridiculously difficult, for example in the US 65% of people with vision loss are unemployed and even those who are employed are often paid less then their co-workers.  Now one can argue all sorts of realities etc, but technology is the tool we use to change our realities, for example two hundred years ago it took weeks to cross the Atlantic in a sailing ship, then we invented self powered ships that only took days to cross the Atlantic and now it only takes hours as we fly across the Atlantic.  One reality we face today is as our life expectance increases so do our chances of personally living with disabilities so people should be far more empathetic and motivated for improvements in areas of computer accessibility as work in this field doesn’t just benefit those with disabilities but everyone, for example the idea of pinch and zoom is from enabling low vision users in the early 80’s (thank you University of Toronto for multi-touch gestures) but now it benefits all users.  My students used a couple of inventions by Ray Kurzweil, first was a CCD flatbed scanner which we used to scan the text books and then a OCR (Optical Character Recognition) system used to take those scans and produce digital versions of the text books (there were no ebooks back then so yet another spin off that everyone uses today) and we used his reader so our students could listen to those book and screen scrapers which pulled the text off of their computer screens so they could work with the compilers etc.  All of these technologies are used by everyone today, but were initial created as a solution for challenged users.  May we continue to use technology make the world a better and more accessible place for everyone.

Some Links you might be interested in.  First is Microsoft’s Accessibility Site which is a great starting point as a user, developer or IT Pro.

Guy Barker presented on his experiences as developer building apps which used various interfaces which as a developer was very interesting

And a recent project that was shown that as a developer and embedded device guy I found very inspiring


More complete write up of the Independence Day Project

Jun 05

I have funded a number of projects on KickStarter and elsewhere and have been really happy with the products which I’ve received and I even remember to blog about some of them.  Today my Waka Waka Power arrived and it is really as cool as I thought it was going to be.


One of the features that attracted me to this was the solar panel which is next generation with 23% efficiency and it does look different then any other solar panel you have seen and can fully charge the 2750 mAh internal battery in 8 hours, even in Calgary.


Now this is more then just a light, and what a light with spec like this on a single full charge:

  • Bright 20+ Hours
  • Reader 40+ Hours
  • Saver 200+ Hours

When they say bright we are talking about hurt your eyes its so bright, which again is an indication that they didn’t use your Daddy’s parts to make these as these are superbright A-brand LEDs with a combined output of 60 lumens so that is pretty good light, with exceptional duration.


What I really got this for was to have a high efficiency solar panel in a compact (its a bit smaller then my cell phone) rugged form for charging my cell phone (loving my Nokia Lumina 920 Windows Phone) or to charge my CamelBak All Clear UV Water Purification water bottles as my 72 Hour Pack has a number of high tech components in it that all center on using or providing USB power, like my BioLite Stove or my Bootstrap Solar Charger Kit as in an emergency you can’t count on the grid and your cell phone is likely to be far more important then you would think (communication device for requesting help or letting others know your OK etc).  For example in the recent Sandy Hurricane 75% of the cell towers in the affected areas were working so if you had a way to charge your cell phone, you likely had communication capabilities.


The USB out port can provide 1 A which should fully charge a phone in 2hours. This is a well engineered product as the thought and consideration taken show in a number of ways and I know I’ll get years of excellent service from this.

Why you want a Waka Waka

This was a KickStarter project with a social aspect as the project was so successful in attracting backers that they were able to included some goodies (expanded battery capacity, waterproof pouch, but the stretch goal that impressed me was that they assembled these in Haiti (providing employment to people who really need it), and were able to provide a large number (over 17,000) for humanitarian use for Syrian refugees and Haitian families living without electricity.  One of the big risks to safety in refugee camps is the use of candles or kerosene lamps etc in flammable tents.  I know some people that I mentioned this to were sceptical that someone would actually give these away, but they do and you can read about their efforts in Haiti here.  So not only did I get a cool piece of technology, but I also helped make the world a little brighter for someone else as well, what could make cool technology better?

Jan 22

In my office I have some Kentia Palm Trees on either side of my desk as Palm Trees are likely one of my favourite trees, as where you have Palm Trees, you don’t likely have snow, so I guess I associate Palm Trees like many others with warmth and beaches.

Now I’ve had a Gadgeteer device monitoring them for awhile now, but I wanted to take this device to the next level and not just monitor the conditions, but to inform me about those conditions and do it in different ways.  So of course the first idea is to have the device email me when the soil gets dry and let me know that I need to water my Palms, but that turned out to be trivial, so I wanted something a little more challenging, so how about being able to log into a web server on the device and get the current conditions, well with Gadgeteer that is trivial as well.  OK so how about uploading the condition data to a web site so I can login in and graph the data over some period of time so I can see trends etc, well bugger that was easy too.  So how about I have the device give my Palm Trees a life in the twitter world, by letting my Palms send tweets pertaining to the soil moisture, temperature, light etc and even send out tweets contains Palm Tree trivia and then for bonus points have the device do all of these things at once.  Well no problem with Gadgeteer, so here it is:


And a YouTube video describing it

My Palm Tree Monitors

Source code etc is available here:

Now granted I’m not a rookie coder, or someone who is afraid to try something new or lacks ideas or vision, and so Gadgeteer gives me a powerful medium in which to explore and express some of my ideas.  I see lots of Ardunio demo projects where someone is flashing some LED’s or something and I think, hey that is great, but I dream much bigger then that and so I need a tool that won’t limit my imagination or make it impossible to express my ideas, so Gadgeteer is my tool of choice for building devices.  Now that I have this device working, now its time to let my imagination run wild and design and build another uber cool Gadgeteer device.

The Kentia Palm is from Lord Howell Island and here is one company which grows Palms for export from Lord Howell Island.  I must admit I was surprised and impressed at the level of automation and that it takes at least 4 years to grow a Palm for shipment.  I’m sure they would appreciate the device I built to monitor my Palms.

Shows some of the automation used in growing Kentia Palms
Jan 09

Gadgeteer is really starting to hit its stride as when you can get a Color Sensor module, you got to know that there are getting to be a lot of different modules.  So one of my objectives this year is to try to post at least one Gadgeteer project a month on YouTube and Code Share as I think if you believe if something is good then you should let other people know about it.  In November I posted a Gadgeteer Gas Sensor which uploads its readings in real-time to ThingSpeak and uses ThingSpeak services to send out Twitter messages as gas concentration alerts and alarms and its been running for the last two months using different gas sensors.

My Gas Sensor Project

Today I posted my Color Sensor project onto YouTube

My Color Sensor Project

As I wanted to show off some cool Seven Segment LED’s which are expandable.  Want only two digits or twenty, no problem you just clip them together to whatever length you need.  Also they come in different colors, so what else could you want.  As I mentioned in the video it also gave me a chance to try out a color sensor, as I recently had one person telling me about how amazing their photocopier was because they could tell it to copy something onto blue paper and it could figure out which bin had the blue paper in it.  Twenty years ago that might have been rocket science, but now its a wonder that not every photocopier on the planet doesn’t include such a cheap and trivial to build and code feature.

I’ve likely spent far too much on Gadgeteer but for me my candy is creating stuff so if you walk into my office you will see a number of Gadgeteer projects in various stages of creation so that is what I get from Gadgeteer,  creative freedom.  Someday Gadgeteer could be the next greatest thing in IT as smart devices or the ‘Internet of Things’ becomes all the rage, but for me its about exercising my creative process now.

Now what should I create to post on YouTube next, so many choices…..

Jul 30

By now you must be getting the idea that I really like Gadgeteer and you would be absolutely correct.  I’m an idea guy and Gadgeteer gives me an easy to use medium in which to explore my ideas by creating working prototypes.  Like most people I am keenly interested in the world around me, and in particular the world I can’t see (or at least hope I can’t see it, otherwise that might be a bad sign).  For example air quality is pretty much a universal hot topic all over our planet, and I’d like to participate in those discussions as an informed contributor where I can share information based on data and not just opinion.  While everyone is entitled to an opinion, one must be very careful of opinions as often they are just that, an opinion without data or facts to back them up and as such shouldn’t carry much weigh, however some people and even so called scientists often confuse facts with ‘volume’ of their opinion, which is a dangerous thing in the public media as public opinion can be mislead by ‘volume’.  My objective for this Gadgeteer device was to explore some air quality sensors and their value as data providers.  The project also gave me a chance to evaluate the new Cerberus board and .NetMF 4.2.


First the components, currently there no native Gadgeteer air quality or gas sensors, but there is a Grove Expansion module which allows you to use Grove modules with Gadgeteer, so I picked up  the following Grove Sensors:

Grove -Air quality sensor 1.0 The sensor is designed for indoor air quality testing. The main gas detected is carbon monoxide, alcohol, acetone, thinner, formaldehyde and other slightly toxic gases.

Grove - Gas Sensor(MQ2) The Grove - Gas Sensor(MQ2) module is useful for gas leakage detecting(in home and industry). It can detect LPG, i-butane, methane, alcohol, Hydrogen and so on. Based on its fast response time. measurements can be taken as soon as possible. Also the sensitivity can be adjusted by the potentiometer.

Grove - Gas Sensor(MQ5) The Grove - Gas Sensor(MQ5) module is useful for gas leakage detecting(in home and industry). It can detect LPG, natural gas, town gas and so on. Based on its fast response time. measurements can be taken as soon as possible. Also the sensitivity can be adjusted by the potentiometer.

As mentioned I wanted to use the FEZ Cerberus Mainboard as its a 100% open source hardware .NET Gadgeteer-compatible mainboard with 168Mhz 32bit Cortex M4 processor with floating point, 1MB FLASH and 192KB RAM. This tiny mainboard has plenty of peripherals exposed on 8 sockets. A perfect match for robotics, quadcopters and cloud-sensor-monitoring. The 112KBytes of heap memory offers plenty of memory needed for about any network or internet connected application and has a killer price of $29.95, so how could I say No to trying this.  One thing to note is the Cerberus runs .NetMF 4.2, which caused some problems in that Seeed hasn’t released 4.2 drivers for their modules yet and the 4.1 driver for the Grove Expansion module was pretty much garbage, fortunately the board is almost identical to GHI  Electronics Eblock Expansion module so initially I was able to modify that driver to work with the Grove Expansion module, but later the fine folks at GHI Electronics took it upon themselves to release 4.2 versions of Seeed’s modules, to which everyone in the Gadgeteer community is grateful.


Now the sensor are all analog based sensors meaning you just have to get a voltage reading as the sensor reports back different levels as different voltages on a pin so we first declare AnalogInputs:

    private AnalogInput _aq;
    private AnalogInput _mq2;
    private AnalogInput _mq5;

and then assign them pins (see back of Grove Expansion Module for which pins to use for Analog inputs).

    _mq2 = groveExpansion.SetupAnalogInput(Socket.Pin.Three);
    _aq = groveExpansion.SetupAnalogInput(Socket.Pin.Four);
    _mq5 = groveExpansion.SetupAnalogInput(Socket.Pin.Five);

now all we have to do is query the the AnalogInputs for voltages or Proportions

    double mq2v = _mq2.ReadVoltage();
    double mq2p = _mq2.ReadProportion();

    double mq5v = _mq5.ReadVoltage();
    double mq5p = _mq5.ReadProportion();

    double aqv = _aq.ReadVoltage();
    double aqp = _aq.ReadProportion();

Now this brings up what do these voltages mean, how are they calibrated and that is the million dollar question as to calibrate a sensor you have either a known gas sample, or you have a calibrated gas sensor to compare with, neither of which I have, so what good is a gas sensor if its not calibrated?  What I’m looking for really is ‘change’ so if I assume that my air is generally OK now, what I’m looking for is changes to my current readings.  For example I ran my device for sometime, recording the measurements every 5 seconds and I could see spikes in the reading which were caused by various events in my local area (eg using the BBQ outside my office, cutting the lawns, etc)


I believe there is a sensor ‘break in period’ which can be seen initially.  So I can see changes in my air quality which isn’t bad for a $7 to $15 sensor and I have some data on which I can form an opinion on.

Source code for this project is available at TinyCLR and discussion if any here.

Now after completing and testing this project one of the things I’d like to see is native Gas Sensor modules for Gadgeteer and it should be really easy to build a killer Gas Sensor module that can sensor a number of different gases and such and I’ve outlined the killer feature here, hopefully someone will build such a module soon as I’d be happy to buy a number of them.