Over The Air 2013 @ Bletchley Park

This is always a great event thanks to the organisers’ skill and persistence. All hail @mobilemaggie, @torgo, @matthewcashmore, sponsors etc. This year was no exception with plenty of great talks and workshops plus hacking. As usual, I wanted to do something with hardware and had brought a big bag of parts.

“Airsome” – Protecting Cyclists from Pollution

This idea came via keen cyclist Hugh Knowles of F4F. We had not got round to it until now (for reasons see to-dos below) but this seemed like the ideal opportunity to do air quaility measurement using wireless communications. The We in this case included Stephen @millipedia (aka Sooper) Cooper who is a dab hand with mobile software.

The general idea is as follows:


A sensor board is mounted on the bike. This has a bluetooth transmitter and sends periodic readings of gas concentration (CO and NO2) to the phone. The phone knows its location and sends this and the measurements to a cloud-based data store. The phone can then pull down a time-averaged dataset and plot a heatmap of the polution level.


This gets much more interesting when you can multiple bike inputs, supplemented by offical data from government AQ networks. This was beyond what we had time for in this 24-hour hack.

The sensor setup for this hack used an Arduino with AQE Shield and Bluetooth module. Not enough accuracy for a real-life solution and not robustly packaged but it did produce readings and showed the effects of driving around a local traffic island compared to the environment in the park.


The sensor module was powered by 4 AA rechargeables.  Fine for short-range use.  We assumed within this hack that we always had a mobile data connection from the phone.

We were pleased that we had enough hardware parts and could get this all working in the time available. We used Phonegap’s Bluetooth plugin which seemed to work fine for the most part, although we had to filter out some extraneous characters.


  • Sensor devices with better accuracy and professional calibration are needed. Ideally sense more than gases, particulates being a greater health risk.
  • The packaging for the sensor unit needs to be robust and suited to bike mounting in such a way that air passes over the sensors.
  • Need to think further about battery life or adding a battery and/ or charging system.
  • It should not be assumed that there is always a mobile signal.  Relatively little storage on the phone would avoid data loss.  We could use SMS as a fallback for alerting the rider when maps cannot be used.
  • The solution should be secured to that location data is not exposed.
  • It would be good if the whole solution could be open-sourced.

As usual, watch this space.

Wuthering Bytes 2013

* Readers beware.  This was somewhat of a live blog.  I’m still adding missing bits and correcting spelling etc. **

Great to be back in the Pennines.  Back in the excellent HB hostel. First up: walk up a hill.  This should clear out some cobwebs.  Headed out in a random direction that I had not walked before.  Ended up finding a nice route with great views.  Shame about the light level but that’s September for you.  My route:

hebden bridge 130914.png

Made it down to the venue.  Good buzz here.  First 2 talks started.

Blaine Cook somewhat scathing about github.  He seems to be using it for human-readable text.  I hadn’t thought of that.  Has not mentioned googledocs yet.  Will ask next time I see him.  As most of use it for code I think we’re very happy with it.

Brilliant to see our youngest ever speaker, 14 year old Amy Mather, to tell about her experiences as a maker and girl geek.  Not her first outing on the speaker circuit.  She showed us a video from Campus Party where she had presented.  Amy got interested via the MadLab sessions in Manchester.  Exciting things to do with coding and making.

Got straight onto the gender issue.  Toyshops have gender-specific toys; science is for boys?  Stereotypes need to change!

At the MiniMaker faire Amy made an Arduino volcano.  Was inspired.

Amy wanted suggestions for how to get more young people involved, especially girls. From the audience.  Inputs fro the floor:

  • get them young
  • add to curriculum
  • STEM ambassadors
  • clubs social and learn from each other
  • educate teachers
  • pink electronics (meet ’em half way)
  • use games; make it fun
  • start with activities that give instant results
  • fix media attitude and have role models

Some discussion about external pressures, trolls etc. Amy has a very mature attitude to all that. Have to ignore the negatives for the time being. It’ll be a slow process.  Social media mostly good. Has a lot to offer in getting help when you need it. Put me in mind of @stubbornella’s youtube talk “Don’t feed the Trolls“.

Some discussion about language: coding, hacks etc. Cool? probably not.

Amy likes mothership.hackermoms.org.  Need something like that in the UK.

Hard to capture all the discussion but it was all good.  Respect for Amy 😉

My talk: See here.  How did it go? I don’t know – ask the audience 😉
Comments: Accommodate the geeks; Polling is sometimes good.  Worry about critical conditions such as fire alarms.  All taken on board.
Adrian’s talk: Who knows about IoT?  All present.
History lesson: Networks past.  Even email started out closed.  Compuserve was a perfect

WAP. aaragh. set back the mobile web by a decade. Thank goodness that we now have phones, tablets and desktops all more or less compatible.

Ethernet is nice for IoT but cables are a pain. Wi-Fi’s ok but power hungry etc.  Lots of other alternatives that support the likes of Zwave, Zigbee etc. Companies have *the* one solution.  There are many of them to choose from.

Electric Imp – nice and easy to configure but ties you in to their service. Risky in terms of longevity of the tech.

Berg cloud – nice and flexible but ties you into Berg Cloud.

We have a tower of babel.  iThings next?

One Direction? No. By which he means that there is not proprietary architecture that will dominate the IoT.  I could not agree more.

IP everywhere? 6lowPAN? He’s worrying me. I think I was over-reacting.

Need pragmatic approaches based on existing internet standards. Ok I’m more comfortable now.

Melanie: how do we get around the commercial pressure? You can’t completely.

Paul: focus on “outside the building” where internet protocols should be de-rigeur.  Inside we can tolerate more variations.  Important to facilitate continuing innovation.

Shay Moradi’s talk:  I was rather tired after a nice lunch. May have been the 5.3 mile steep uphill walk too.

Nick Weldin’s Robot talk

Willow Garage Open CV; Robot OS (ROS) Open Source (OSRF)

These elements used by many Unis to make projects feasible

URDF models. nodes on any m/c on network. pub/sub

Moveit! demos on video, featuring expensive PR-2 bot.

ROS demo; visualiser, graphing tool.  Great tools.

Demo of Rumba base + Kinect – based ‘bot. The kit needs a box (like a laptop) with a full USB implementation (required by Kinect). About 1K for the setup demonstrated.  Other options tend to come with ROS nodes. After a brief tense moment … it worked!

Upcoming event @ Middx Uni. London meetup as well.

James Pallister’s measurement talk:

My typing fingers getting tired so this is from memory.  In their work at Embecosm they need fine-grain power and energy measurement to be able to deliver low power solutions around their compiler technology.

James showed a measurement board that I would like to get my hands on.  I had earlier mentioned the power topic in choosing protocols for IoT but my measurements were crude.  This approach solves that problem.  It’s a digital approach, sampling at up to 500 points per sec.  Resolution is about 10uA.  Being digital makes it easy to properly integrate with tests.

Day 2:

Another walk, this time a loop on footpaths around Heptonstall.  More serious inclines but a little shorter than yesterday. Woke me up a treat.

hebden bridge 130915
path round heptonstall
Got down to the venue in plenty of time to cable up and see what the network looked like.

My MQTT workshop

It started with firing up mosquito server on a RPi. This was ok except for issues with access from machines that had been allocated other IPs. With a little help from friends the Pi was configured with an additional fixed IP that everyone could see.

People had a variety of platforms: Arduino/ jeenode, MBED, Java and node.js with MQTT.js. All these soon spoke MQTT and were sending and receiving messages. @knolleary’s library for Arduino.

Various sensors were attached as well as other data sources. “Actuators” included colour switchable LEDs, a matrix display and a mains switch.

Once the sensors were publishing and the actuators subscribing via MQTT we needed to apply a rules engine to make the connections and apply some logic such as “turn the light red if the temperature falls below x degrees”.

I had brought a rules engine that I’m using for the ecoHome project mentioned in my talk. However, this, although powerfull, does take some setting up. @knolleary had presented node-RED on the previous day and I had played with it a little. I decided that this was the best rules engine for the workshop as it facilitates setup very well indeed with an excellent GUI. Logic and state can be implemented by writing javascript functions. This is fine if the logic is simple. There are also test tools such as logging element (elements are called “nodes” – whoops), a console display and an “inject” function.

node-RED is awesome – I rarely use that word. It makes the wiring of a system solution very simple and intuitive. Several of us were downloading and using it with minimum effort.

Bottom line: we got stuff done with a diverse range of platforms, sensors etc. MQTT just works and the libraries seem on the whole to be robust. node-RED makes it easy to hook things together.

We did have some issues with node-serialport. These are known but very irritating. In many cases you fortunately don’t need this and, if you do, it seems to work OK on a RPi.

Due to lack of concentration and my poor typing I’d like to see the following in enhancements in node-RED. Hopefully Nick will concur:

1. When you use inject to create a json object it would be nice if inject did the encoding and would not save unless the json was lint-free. A check-box option I think.

2. Similarly, functions should not save unless the javascript therein is lint-free.

I should post these as issues on node-RED’s github. In addition I’d like a couple of tools that I can create myself outside node-RED and hook through the socket “node”.

3. Browser-based input data source. This will allow data to be changed without having to edit injects and deploy. This could have a few sliders and switches.

4. Browser-based data sink. This could show multiple outputs in separate scrolling areas. This is less essential as you can have multiple debug elements in node-RED. The issue is that they are interlaced in the console and that can be inconvenient.

Well that’s about it folks.  Many thx to the organisers, especially @9600, to the presenters for the talks I went to and to @knolleary for help with node-RED etc.

Great location, great crowd, great content, great venue.  Inevitably, with such a lot of content and parallel sessions I missed stuff that I wanted to see.  I’m looking forward to the videos.

Wuthering Bytes was a great success.  Hope to be there again next year.