08/20/2014 at 08:19 •
We've just got back from a fabulous weekend technology festival in Hebden Bridge. Wuthering Bytes was two days of talks and a day of workshops, and this year we were privileged to be asked to speak on Saturday and run a workshop on Sunday.
I'll post a link to the presentation when it's published over the next few days as we had 20 minutes to give an overview of the system that might help fill in any gaps in the documentation. BTW if anything isn't clear then please do leave a comment and I can expand on that bit.
The system behaved impeccably even with everyone watching it although we didn't have time to do the live demo we hoped for. The workshop was great fun although exhausting and we were very fortunate to have two contributions from workshop participants during the day!
Anton Whalley re-wrote our database and API to use mySQL rather than Cassandra. We talked about several options and eventually decided that it had been fun working with a really big scale noSQL datastore, but we didn't really need to fight it's restrictions. And Beth McMillan made a start on some graphs, which we're really grateful for.
I had loads of interesting conversations with people - including one with a grey-beard developer of proprietary hardware who told me that Arduino's were 'just toys' and that open source hardware didn't achieve the levels of quality that commercial products require! (With hindsight I think he must misunderstand how the Arduino is conceived - as a development board - he seemed very bothered about EMC compliance!)
I replied that the thing I loved about working in an open way was the potential to co-operate - and that this advantage was the key leverage point. Just the next day we get valuable contributions from people who have just heard a bit about the project, and want to help out! To get that sort of help, you need to be both open and worthwhile, and I'm proud to say that both we and our aquaPionics project are.
08/13/2014 at 11:11 •
I've referred to our system a bit loosely and also mentioned in the comments of a better way of doing things that we've developed so I'll just clarify this now. Our original system (we're now calling this system 1) was fully wired - and it worked great on the bench! However, installation proved a real challenge as we had to route the cables over the ceiling, adding another unexpected 5m to the length of them. Some of the sensors didn't mind this - the 1-wire protocol used by the DS18B20 temperature sensors coped fine for example. But the I2C communication to the TSL2561 light sensors was intermittent and some of the other sensors seemed a bit less reliable as well.
After a lot of research and trying out some circuits I settled on using a wireless solution from JeeLabs called the JeeNode. I wanted to use an open source solution partly on principle but mainly on very practical grounds. The JeeNodes have a vibrant community of hackers, many experts among them, who are invaluable in getting stuff working quickly. With a closed-source platform you are dependant on the vendors to help you, and they might be busy or just not that bothered. We are also thinking of making our own boards one day and of course, open source hardware makes it explicitly easy to do these things.
Also JeeNodes are a derivative of Arduino, so we could carry on using the libraries and code we'd developed without having to port anything over. The radio side is handled by a well coded library developed by JCW at JeeLabs, and we had good confidence in it. The radio chip used can also be added to a Raspberry Pi with little difficulty or expense, as it uses SPI to communicate. The add-on board we use is tiny and costs only slightly more than the radio module itself, you can see it here plugged directly into the Pi's GPIO pins:
Once we'd got a couple of wireless sensors built the advantages started to really stack up. Most importantly for us was the decoupling of sensors and base station - we could use multiple sensors and not worry about I2C address conflicts, running out of analog pins etc. We can even foresee having multiple redundant sensors and redundant base stations - a Redundant Array of Inexpensive Hardware. If one sensor fails then it can be replaced without affecting the rest of the system - no need for downtime while the new one is wired in.
We're calling this wireless approach system 2 - and we're recommending it for all new projects and systems. The system running in Todmorden that is monitored by the dashboard has a mixture of wired and wireless sensors - you might call it a system 1.5! Hope that helps clarify where we're up to - now on with the hacking!
08/09/2014 at 19:15 •
Today we're publishing our open data API. We've used Swagger to document it - but wait - there's more! Swagger also provides a way to use the API right in your browser - complete with headers, body, response codes. Try it out!
We are very keen to get feedback, suggestions, improvements and collaborators in true open-source fashion.
We've got more info about the system and the API at our website, l0l.org.uk
08/05/2014 at 10:04 •
Just back from a visit to Todmorden to do some emergency repairs on the system. Apologies if you've found the dashboard empty over the last few days - it's fixed now. Over the last week or so the power has been going up and down like a yo-yo - partly due to work carried out on the school site and partly due to supply problems affecting most of the town. As a result, the Raspberry Pi suffered corruption of it's SD card based filing system - and the backup SD card we prepared for just such an eventuality also failed soon after swapping it over.
After a few frustrating hours talking to folks over the phone and getting them to turn it off and on again, swap cards etc. I decided that a visit was needed - and I found that the Raspberry Pi had suffered a major failure and wouldn't boot no matter what I did. I'm not sure why this happened - it could be related to the power black- (and brown-) outs or it could be due to the valiant attempts of collaborators to act as my remote hands under phone guidance.
The system is quite cramped in it's box and it's quite possible that the metal pcb support pillars made a short circuit or that the extension board was connected up to the wrong pins. Luckily I was carrying a spare Raspberry Pi - something that is only practical with such a cheap platform - and once this was installed I could repair the filing system and reboot. We've ordered a couple of cheap uninterruptible power supplies that should keep the power going even when the grid fails us, and they'll also condition the power in case of further brown-outs.
However one bonus of the trip was I was given some chilli-peppers that were grown in another part of the project - guess I'm going to have to make some hot open-sauce!