Internet of things that do what they’re told

I really loved this talk between Cory Doctorow and Tim O’Reilly

The purpose of the IoT is to give humans superpowers

A lot of our Internet of Things models proceed from the idea that a human emits a beacon and you gather as much information as you can — often in a very adversarial way — about that human, and then you make predictions about what that human wants, and then you alert them. What if instead you had a device or a device ecosystem that was local to you, that didn’t share your information with anyone else, that gathered information that you gave voluntarily because it was just for your own benefit — myware, not spyware.

Then, as you moved through the world, other things emitted information about themselves. Your device took them in, looked at your very intimate, not-for-sharing preferences, and presented you with options, rather than treating you as an ambulatory wallet to try and game into admitting dollars. If you think about every offer that every business that you pass today might make to you, it adds up to a gig or two. We can handle that in our sleep. Why are we trying to tailor which information comes to you? Why aren’t they all promiscuously broadcasting, then you receive them and filter them at your end using your device that can keep your secrets for you?

This is why I haven’t gone in on any ‘smart’ devices yet – I keep looking for a self hosted personal assistant… and if it talks to any server, I’d like it to be one of mine.

CrunchBang ‘Detect Disks’ error fixed

Even though I have an almost obscene number of computers, I’ve really been missing having a personal laptop. So I’ve resurrected the IBM Thinkpad T42 that was old when my brother bought it used for school years ago. I had CrunchBang Statler installed on it before, currently trying to update it to CrunchBang Waldorf – Have to thank Larry the CrunchBang Guy for his Thinkpad specific guide to the ‘Detect Disks’ error on install – Disabled the floppy drive and away I went 😉


New Floors!

Putting in our new floors today. Had a lot if help 😉


One room and hallway mostly done, two rooms to go. Edges take far longer than areas with these floating cork planks.

Baby tunes

So, here’s a first for me – a post about a finished project. Well, OK, not finished but in production at least.

Friday night the radio in the nursery kicked it.

Nursery Radio

I think the warranty has expired.
I’ve been meaning to make a headless RasBMC player anyway, so I distracted the baby with the box from my new router and jumped in.


It works! My music is mirrored on a NAS with an SMB option. I can export my existing playlists to the hard drive with a few tweaks in notepad++ to fix the paths. I’ve got a usb powered surface transducer to help keep the sound low.

Eventually I’d like to pack the entire thing in the clock radio guts. But that will have to wait 😉

Project 1 – Nightlight

I made an order late last week from the excellent folks at Spikenzie Labs to replace a fraction of what I lost when I left Diyode and Guelph. Mainly, a new soldering iron and some kits to play with. So now I can finish my extra Codeshields and restart a few projects I’ve been meaning to work on.

The project I’d like to work on first is a bit of illumination for the nursary. He doesn’t sleep there at all yet, but when he does, it’ll be nice to have some gentle illumination that can change based on what’s happening – so ground level lighting when we bring him in, change table lighting when we’re over there, and some colour for him to watch while he’s waiting to sleep. Because if he has a few lights, we can just put him in the crib and he’ll be happy from 7-10pm and mom and dad will have lots of time for their own hobbies. Right? Right. These had better be some great lights.

I have no real experience with Arduino, or with anything really. But, as any great artist, I know how to steal. So I’m going to start with one of the available codeshields sketches and work off that – The button, potentiometer, tri-coloured LED and white LED to start, and I’m going to include a non-codeshield componant – a Motion Sensor.

So – How to attach the motion sensor? What pins are free on an arduino with a Codeshield? Are there any extra pins on a Codeshield? Yup! Looks like pins 7 and 8 are free. I used some F/F jumpers to easily add the motion sensor to pin 7 and used it to trigger the LED – Step 1 down, now to figure out what else I can trigger on motion!


We’ve into bigger digs to make room for our growing family. Unfortunately, that no more Diyode, just when I finally have the space to put it to better use 🙁

Along with my already established motion sensor monitor project, I’d like to see something like a wearable temperature sensor – Maybe an Adafruit Gemma with a smart pixel or two? Something that I can swap between outfits. Babies can’t indicate well when they’ve got cold feet.

And also, more importantly, the climate control for each room of this place is a heat/AC unit that can only blow a certain temp at a certain speed until the power goes out or the sun explodes. I’d like to add some brains, like an arduino with a temp sensor and a pair of servos for the climate control knobs. Going to mock it up on the codeshield 😉 If I get really ambitious, I’d like to network the rooms together with a web interface somehow…

First project post

I had been most of the way through a raspberry pi powered motion webcam before christmas, then made a string of mistakes involving a piss-poor card reader and lost all my work.

The good news is, rebuilding is going quickly. The new Raspbian image has GPIO, Python and now(!) limited support for hardware MJPEG decoding, which gets me closer to a feature I couldn’t implement before.

Current steps –
[] Find another dlink webcam to test on
[] Configure Motion to trigger a python script upon detection
[] Write the Motion trigger script and timer script to keep track of the amount of motion. Should really figure out a collision free way to do this, but my last dueling python method worked…
[] Mount my lights in the RasPi case for output through GPIO
[] Profit!