Day 5: Why few of us make things

Nick Ang
getting technical
Published in
7 min readJul 5, 2016
My own home surveillance camera with an extremely satisfying (I mean menacing) red LED

I can’t believe it. I can’t believe that I finally completed my first hardware project since secondary school. On that note, I can’t believe it involves a computer, that it’s contained on a single board, and that it cost less than a meal at a nice restaurant.

More importantly, I can’t believe that the entire thing didn’t require me to write a single line of code. Thank you open source movement, and thank you ccrisan for writing the software and letting people use it. For free. For free…

So I’ve spent the past 3 days putting together a home surveillance camera. Why is that a big deal in 2016? Well, if you ask it that way… not much, really. But I am proud of having pulled it off, being someone who knows very little technical stuff. All I know is a little C++ from the Arduino starter kit and some web development languages HTML, CSS and JavaScript, and that was enough to help me through the project.

Now that I’m finally done, I want to reflect on the 3-day process of putting the project together. While making something like this is becoming easier for anyone with the interest or a problem to solve (or best, both), still very few attempt to. Having only picked up programming over the last 2 months, I can attest to the reasons as to why so few non-technical people even try to make their own homemade surveillance camera.

Before diving in, I’ll talk a bit about the last few steps I took today to finish off my very own Raspberry Pi home surveillance project. To recap, the contraption is supposed to stream video over any browser (when connected to my home Wifi), take a burst of photos when motion is detected and upload them to a folder on Google Drive. Today, on my third day on the project, it did all that.

Transforming materials

Surveillance cam finishing touches

Yesterday I hit the sack with my Raspberry Pi unable to communicate with the Pi cam. I suspected it was a loose connection somewhere. Turns out, I inserted the ribbon cable which has electrical contact points on only ONE side the wrong way in into the Pi computer. A silly mistake that I only managed to catch when I corrected it and remounted the device on my ceiling, when I realised that the Wifi dongle was facing the opposite direction as when I mounted yesterday. Silly mistake, not even a rookie one!

So I reversed the ribbon cable and simplified the way the camera is fixed onto the plastic surface inside the dummy CCTV case using thin steel wires instead of Blu Tac. For this to work I had to drill two holes through the plastic in alignment with the mounting holes on Pi camera module’s circuit board. Then, all I had to do to secure it was to loop the wire through and give it a few twists at the ends. Much snappier method that made me smile.

With the two separate pieces — the shell and the Raspberry Pi and camera — connected only by the flimsy and fragile ribbon cable, I needed a way to bind them together as one solid unit. I did it the only way that made sense to me, which is with clear sticky tape.

Now I have a finished product that works! It will work with just a microUSB cable as a power supply — everything else is already on board the Pi computer. It didn’t look quite ready to be seen by the world of people who often come to my home as Airbnb guests, though. I needed to package it, to give it a finished product’s polish.

The paper extension hack I randomly devised today

Packaging

The idea that I ended up implementing was something that came quite easily to me. I was going to conceal the Rapsberry Pi (in its own plastic case that I bought at the same time with the Pi) with a flexible black band that went around the circumference of the dummy CCTV shell. It should blend nicely with the original black shell lining, helping to hide the extra thickness added by the computer.

Looking around the house, the first thing that caught my eye was some used A4-sized white paper I had lying around on my desk. Then I remembered that I had some black insulation tape — you know, the rubber stretchy kind? — that I could use to tape the paper entirely until it’s wholly black. That’s what I did, and I love the effect. Now the whole unit looks like any ordinary round CCTV.

Done with the polish, I mounted the device on my ceiling with a strip of 3M velcro tape, plugged in the power supply, and tested the system one last time. Live stream, burst of still images, Google Drive upload — it all worked, smooth like butter. That moment I took a step back, looked at my homemade surveillance camera perched up high at a strategic corner, and took in the glory. My smile faded away slowly only when I realised I was the only person in the living room.

My living room showing up in Chrome. Screenshot of motionEyeOS interface by ccrisan.

How having some technical knowledge got me started on this

So back to the thing I wanted to talk about. Why are there so few non-technical people who attempt electronic/hardware projects?

I feel like I need to set the tone right first, before laying out my hypothesis. I am not suggesting that everyone, technical or non-technical, ought to build things with technology like it’s “the new literacy”. No, nothing like that.

Also, by non-technical what I’m referring to are people who received no formal instruction on engineering or programming, and who haven’t picked up related skills in any substantial way from the pool of resources available for free or for a fee on the internet.

Ok, so what is my hypothesis? It’s quite straightforward: I believe that having exposure to reading and writing code builds confidence that is necessary for someone to try to build a technology project. Sounds obvious, right?

What I’m saying is that people who haven’t tried programming seriously before lack the confidence — not the ability — to build their own surveillance camera, even though everything that is needed (software and hardware) can easily be obtained. There’s a gulf between what’s possible and impossible in the mind of a non-technical person who have never coded. And that gulf is more like a gentle river to a non-technical person who has.

Fulfilling its destiny!

Confidence, not skill, builds (most) things

The funny thing is, I haven’t written any code in Python, or any of the several languages used to make the motion detection and management software. And that’s the cool part — you don’t need to know the specific language to have confidence. You just need to know broadly how things work.

For example, for me, knowing what Github was and how projects are organised on it helped me recognise it as the place where the source code for free open-source software is hosted. Also, having learned the core languages of the web (HTML, CSS, JavaScript) helped me realise that ‘software’ really just means plain text files that hold hundreds or thousands of lines of code that can be read by a computer to perform certain tasks, and that was what I needed to look for to ‘flash’ into the SD card from which my Raspberry Pi computer boots up from.

To those who haven’t found the time to pick up programming or simply have no interest to do so, I recommend doing one of two things:

  1. Try putting together a project, like this one or something else, using an Instructables guide. The first time will be hard, but everything you learn will make the second project seem much more feasible.
  2. Don’t try your own project and understand that your only option is to buy finished products whose inner workings will never be privy to you, even conceptually.

The choice is yours. Red pill, or blue pill?

Just kidding. The choice is really yours. Red or blue doesn’t matter as long as you‘re happy with it.

This post is part of my 30-day commitment to write daily about my journey learning something technical everyday. You can see my other posts at Getting Technical.

Enjoyed reading this? You can read my previous post here. Also, recommend this by hitting the ❤ button below so your friends and followers can read it. Thanks!

--

--

Nick Ang
getting technical

Software Engineer. Dad, rock climber, writer, something something. Big on learning everyday.