31 Oct 2013, 21:31

A Tech Halloween mainly made of fail

#“A Tech Halloween mainly made of fail”

This year I decided to be completely out of character and start Halloween preparations over a month ahead of time. The plans were ambitious to put it mildly. Vampires flying along guidewires, 10 feet in the air. Screaming skeletons jumping up out of bushes. Creepy crawlies automatically lowering on the heads of trick-or-treaters. You get the idea.

The reality was that almost everything took 4x as long to do as expected and I killed more tech trying to test things than actually survived. If you add in lots of work, travel and relentless human viruses and it was not a great month.

So this evening was a little less extreme than expected but seems to be going well so far.

Screaming Skulls

These are some dirt cheap flashing LED skulls from Lidl, wired to an Arduino and relay, plus PIR sensor and an audio module connected to portable speakers.

skulls

Everything works well except for those damned WTV020-SD-16Paudio modules. They truly are so awful you can’t even ignore a $4 price tag. Problems include: the serial interface just doesn’t work; it needs 3.7V not 3.3V or 5V; it only plays ad4 files of very low volume; it only works with SD cards 2GB or less; it is totally unreliable. Avoid avoid avoid.

The bit that made it all “sing” was 8yo Fionn doing an extended scream for me.

The PIR sensor is a little over-sensitive in an outdoor environment so I’ll use Ultrasonic sensors from now on.

httpv://youtu.be/b3SJWiBcuxw

Audio Player

I used the same bloody audio module on a portable “brains, brains, brains” sound player for our youngest. She gave up after 20 minutes this evening due to the unreliability.

brains

httpv://www.youtube.com/watch?v=mv09-JhG9F4

Motors and Relays

All of the movement projects relied on motors/servos. I thought I only had ones which I had salvaged from a dead HP inkjet. None were strong enough and could only lift one plastic mouse.

mouse

Then I thought of my 13 year old Black and Decker drill which I had recently stripped apart and salvaged the gears/motor/switch. I actually go it working with Arduino and some 10A relays last weekend, but when smoke started coming out of the relays, I stopped. It looks like I killed the motor so sadly there are no moving scary things this halloween.

drill

Minecraft Steve

I followed an Instructable. The head ended up 4 times too big. I stopped. The kids liked playing in it tho.

steve

Pumpkin

Actually pretty good but then, all I did was to print out a stencil and cut around it. Damn, we’re now out of tea-lights so two bright-white LEDs will have to do instead.

pumpkin

Rockets

Next year will involve rockets, lots of rockets.

28 Sep 2013, 14:50

This week's Tech Miscellany. It's a cracker.

#“This week’s Tech Miscellany. It’s a cracker.”

  • Espruino got funded and hit all the stretch goals. Hurrah! JavaScript on a microcontroller for a pittance. Going to be fun playing with this stuff. It made me realise that, along with the incredible ecosystem around the Raspberry Pi, how important the UK still is in technology. That Engineering culture hasn't gone away despite the destruction of the manufacturing sector since the 70s. It gave me a really nice feeling to see "Designed and manufactured with care in Sheffield" on the Pibow case. A pity we never managed to create a similar culture here in Ireland.
  • Only 8 days left to back ARDUINO BASIC CONNECTIONS - THE BOOK. I've backed it. A really useful resource.
  • I've been impressed recently by how easy it is to Airplay from a Mac to an Apple TV. Less impressed that it's all proprietary as usual from the borg. So I was very pleased to discover [a] XMBC/Raspbmc can act as an Airplay target and [b] someone has a beta of full Airplay mirroring to the Raspberry Pi.
  • I've had three TP-Link routers die on me in the past few months. A variety of problems - losing settings, disabling security, LAN ports dying or random reboots. Yet my 7+ year-old WRT54GS keeps on trucking. So I'm done with the cheap Chinese crap for the important things. I just got an Asus RT-N66U Dual Band Wireless N Router with Gigabit LAN/WAN, 2x USB, IPv6, 8x SSID etc etc. So it's expensive Chinese stuff from now on :-) A few days in and it has worked perfectly with a strong signal and good throughput. A 3 year warranty gives me confidence too.
  • Our audio setup for the TV facing the treadmill has been an ongoing challenge. Analogue audio from the Raspberry Pi is atrocious. Even using a HDMI-VGA adapter with an analogue audio port had a horrendous pulsating sound. This was all exacerbated by passing that through two amplifiers and then into a Lidl 2.1 speaker setup. But all that amplification is needed to hear audio over the sound of the treadmill. Given how much it is used, I finally got around to doing it right. So Raspberry Pi running Raspbmc connected by HDMI to LG full-HD monitor. Then headphone jack from monitor to all-newMicrolabs FC330 2.1 speakers. These speakers deserve all the good reviews they get on Amazon. Very heavy, great value and massive sound with 56W output. Highly recommended. No more pulsating noise, yay.
  • I tried out Google Coder on the Raspberry Pi last week. My initial excitement faded quickly when I realised you need a PC as well as an RPi to use it. So it completely misses the point of the Pi. Add to that the fact that the examples you are supposed to learn from are things like Asteroids in HTML5 and the whole thing seems wrong-headed. Re-done as a pure RPi project with examples that normal people can learn from and it could be an amazing educational tool. Extra snark: Impossible to find the site directly via Google search due to its generic name.
  • My latest DX.com impulse purchases. 3V to 5V booster. USB LiPo charger. 3.3V Arduino Pro Mini. Tilt switches. Accelerometer. Another ultrasonic sensor. 3000mAh Lipo battery. I have a nice setup between the Lipos, charger, booster etc and various Arduinos/RaspberryPis using these JST cables for common interconnect.
  • Looks like it's going to be a 3 Arduino + 2 Raspberry Pi Halloween. Starting the work this weekend. These things will be central to it.
  • Camp Coder Dojo in Clonakilty on 16/17 November. Should be a blast.
  • Tried to use OpenSignal API yesterday but the data returned isn't that useful. Lat/Lon of nearby masts would be awesome info.
  • Loved the idea of Modkit when it came out. Scratch-like approach to programming an Arduino. But not obvious what is going on with project. I tweeted them last week but no response. Not clear what the $50 gets you. Seems too high to me.
  • Scratch for Arduino (S4A) has a new web-site. I enjoyed this a few months back but they never replied to my enquiry about getting it running on the Raspberry Pi. That would be a killer combo.
  • Roku 1, 2 and 3 now available to Irish and UK punters. I think I'll finally bite the bullet this weekend.
  • 9 hrs of Pink Noise on YouTube. Incredibly effective at drowning out conversations. Non-distracting. Try it on a train etc. Failed to download using my usual tools to use offline.
  • T-Mobile G1 announced 5 years ago today. Mine still chugging away (4 years, 9 months later), waking me up every day. Amazingly, the App we got built way back in 2007 (the very first Irish Android App and one of the first reviewing Apps globally) still mostly works on my SGS4.
  • USB Condoms are a great idea. Connecting your phone to an unknown USB source is the tech equivalent of using a glory hole.
  • Nodeschool.io looks like a good way of learning Node. Going to try out over the weekend.
  • If you are using those cheap 4WD RC car kits from many electronics sites (I got ours on DX.com) and you want to control them with an Arduino and an Adafruit Motor Shield, then you have to do the trick of adding 3 capacitors to each of the cheap motors. This solved a huge number of the problems I was having with my daughter's RC car.
  • Heimcontrol.js is a home automation system using Node.js and Raspberry Pi. It does a lot of stuff I was hoping to play with so it may be a shortcut for me. Project seemed dead but got a ton of online attention recently and I see the Git commits have started again. Excellent stuff.
  • One big downside of using cheap Chinese knock-offs of Arduino is the provenance of some of the components. One device I got gave an error in the Device Manager in Windows no matter what I did. Eventually I discovered that it uses a dodgy clone of a Prolific USB-Serial chip and the original chip manufacturer has modified their drivers to detect the clones and refuse to work with them. Perfectly reasonable behaviour by them and serves me right for trying to go ultra-cheap. The workaround was of course to use older drivers but long-term I'll just avoid some of nastier end of the market.
  • One of my funnier Twitter account registrations in the 2007 landgrab was @rse. Still makes me snigger. I've suddenly started getting notifications for people using that in tweets. Love the fact that they are. Sadly I lost the account in late 2007 when I set up a script to auto-tweet once a week to "keep the account alive" because I believed some fool who told me you could lose accounts if you didn't update them. Of course it was detected as a bot and I had a ton of accounts suspended. I'm an idiot.
  • Still loving Parcel Motel. Saving me a fortune in shipping from all those Amazon sellers who won't do Free Supersaver shipping to Ireland.

28 Sep 2013, 12:52

Ah c'mon, is this not the cutest @raspberry_pi setup of all time?

#“Ah c’mon, is this not the cutest @raspberry_pi setup of all time?”

I splashed out a little on my main dev Raspberry Pi and finally got it a PiBow case. I’ve loved that design for so long, I had to succumb.

pibow2

Coincidentally the same company now has a brilliant new USB hub specifically for the RPi called the PiHUB. Not only is it in that hilarious shape, but it also comes with a 3A PSU. This means you can add extra devices and power the Raspberry Pi off it. So far it’s been the most compatible hub I’ve tried with the RPi and we all know how dodgy it can be with hubs. It also solves the USB-splitter-cable mess I had devised to connect a portable harddrive to the RPi.

Another thing I got from Pimoroni was an Adafruit Pi T-Cobbler. It’s a simple breakout board for the Pi with no actual electronics. I’ve been doing so much connect/disconnect stuff on the RPi pins recently I was sure I’d short something out eventually. This just makes things a little easier and has all the pins labelled. Took about 5 minutes to solder it together.

The other thing I got recently was a cheapish air mouse from 7DayShop. This was actually more intended for XBMC/Raspbmc usage but I’ve realised it’s perfect for travel. I was happily able to use it as a mouse and keyboard for X-Windows when checking out Google Coder recently. The particular one I got has overly-small arrow keys but that’s really the only criticism I can make.

The only things I’m missing now are some raspberry coloured cables.

07 Sep 2013, 15:51

Arduino and Raspberry Pi communicating over 2.4GHz with cheap nRF24L01+ modules

#“Arduino and Raspberry Pi communicating over 2.4GHz with cheap nRF24L01+ modules”

I’ve had a lot of fun over the past year messing with wireless comms. The 433Mhz/434MHz dirt-cheap modules are fantastic for Arduino, particularly when used with the VirtualWire library which makes them trivial to setup. I’ve been able to send sensor data and RC car commands using them with just a few lines of code. However, there isn’t a version of VirtualWire for RaspberryPi and I don’t have the time/skills to port the Arduino one.

I’ve also mentioned multiple projects using those HC05/HC06 serial Bluetooth modules. Again, dead easy to use and they connect Arduinos to PCs, Raspberry Pis and mobile phones. They are a bit pricey tho.

My latest experiments involve the Nordic Semiconductor nRF24L01+ modules. These cost approx 1.26 each on eBay and strike me as the perfect middle ground between the two approaches above. They are cheap, work over a decent distance and have libraries available for both Arduino and Raspberry Pi.

However I spent nearly all of last weekend trying to get a Raspberry Pi talking to an Arduino using instructions in some blogposts. It turns out his instructions were a mix of incorrect text, links to wrong repos, self-contradictory blogposts and code/comments which also contradicted each other. Eventually by ignoring text/comments and just reading the code, I got the wiring right and the sample code working. Whilst I hugely appreciate someone putting time and effort into writing/improving Open Source code like this, it really is a bad idea to then wrap it in such error-riddled explanations.

2013-09-07 15.34.49

To avoid you going down the same rabbit hole, this is what you need to do to get Arduino talking to RPi over nRF24L01+.

Arduino Connections

Note that the module is 5V tolerant (apart from VCC) but just to be sure I used it with an Elecfreaks Freaduino Leonardo which has a physical switch to toggle between 3.3V and 5V. You could also use a 3.3V Pro Mini from Sparkfun like this. It has worked fine on my 5V Uno too.
  • Arduino GND - Module Pin 1
  • Arduino 3.3V - Module Pin 2
  • Arduino Pin 8 - Module Pin 3
  • Arduino Pin 9 - Module Pin 4
  • Arduino Pin 13 - Module Pin 5
  • Arduino Pin 11 - Module Pin 6
  • Arduino Pin 12 - Module Pin 7
  • Module Pin 8 Not Connected

Raspberry Pi Connections

The Raspberry Pi is 3.3V itself so can connect directly to the module. Here is the pin-out. Only pay attention to the pin numbers in the circles, not the names.

RPi pinout GPIO

  • RPi Pin 6 - Module Pin 1
  • RPi Pin 1 - Module Pin 2
  • RPi Pin 22 - Module Pin 3
  • RPi Pin 24 - Module Pin 4
  • RPi Pin 23 - Module Pin 5
  • RPi Pin 19 - Module Pin 6
  • RPi Pin 21 - Module Pin 7
  • Module Pin 8 Not Connected

Building The Library on RPi


    javascript
    mkdir ~/gitwork
    cd gitwork
    git clone https://github.com/stanleyseow/RF24.git
    cd RF24
    cd librf24-rpi/librf24
    make
    sudo make install
    sudo ldconfig -v | grep librf
    cd examples/
    make

Arduino Libraries

You need to install the Arduino libraries:
  • Grab a zip file of all of the latest code from Github.
  • Unzip that file
  • Rename the directory from RF24-master to RF24
  • Delete all of its sub-directories
  • Copy the overall RF24 directory to the libraries directory of your Arduino IDE install. In my case that becomes: C:\Program Files (x86)\Arduino\libraries\RF24
  • The nRF24L01.h and RF24.h includes should now work in your code when you run the IDE

Arduino Sketch

This is my quick and dirty hack of the author’s Arduino sending sketch. It removes all of the LCD display stuff and only returns one sensor value. In my case that’s a single switch on Digital Pin 6 which is either open or closed. I’ll post a tidier one with updated comments when I have it completed.


    /*
    Written by Stanley Seow
    stanleyseow@gmail.com
    */

    #include 
    #include "nRF24L01.h"
    #include "RF24.h"
    #include "printf.h"

    #define RF_SETUP 0x17

    // Set up nRF24L01 radio on SPI pin for CE, CSN
    RF24 radio(8,9);

    // Example below using pipe5 for writing
    const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0x7365727631LL };

    char receivePayload[32];
    uint8_t counter=0;
    int inPin = 6; // button connected to digital pin 6

    void setup(void)
    {

        // Conor Switch
        pinMode(inPin, INPUT);

        Serial.begin(57600);

        printf_begin();
        printf("Sending nodeID & 1 sensor data\n\r");

        radio.begin();

        // Enable this seems to work better
        radio.enableDynamicPayloads();

        radio.setDataRate(RF24_1MBPS);
        radio.setPALevel(RF24_PA_MAX);
        radio.setChannel(76);
        radio.setRetries(15,15);

        radio.openWritingPipe(pipes[0]);
        radio.openReadingPipe(1,pipes[1]);

        // Dump the configuration of the rf unit for debugging
        radio.printDetails();
        delay(1000);
    }

    void loop(void)
    {
        uint8_t Data1,Data2,Data3,Data4 = 0;
        char temp[5];
        bool timeout=0;

        // Get the last two Bytes as node-id
        uint16_t nodeID = pipes[0] & 0xff;

        char outBuffer[32]=""; // Clear the outBuffer before every loop
        unsigned long send_time, rtt = 0;

        // Get readings from sensors, change codes below to read sensors
        Data1 = counter++;
        Data2 = digitalRead(inPin);

        if ( counter > 999 ) counter = 0;

        // Append the hex nodeID to the beginning of the payload
        sprintf(outBuffer,"%2X",nodeID);

        strcat(outBuffer,",");

        // Convert int to strings and append with zeros if number smaller than 3 digits
        // 000 to 999

        sprintf(temp,"%03d",Data1);
        strcat(outBuffer,temp);

        strcat(outBuffer,",");

        sprintf(temp,"%04d",Data2);
        strcat(outBuffer,temp);

        printf("outBuffer: %s len: %d\n\r",outBuffer, strlen(outBuffer));

        send_time = millis();

        // Stop listening and write to radio
        radio.stopListening();

        // Send to hub
        if ( radio.write( outBuffer, strlen(outBuffer)) ) {
            printf("Send successful\n\r");
        }
        else {
            printf("Send failed\n\r");
        }

        radio.startListening();
        delay(20);

        while ( radio.available() && !timeout ) {

            uint8_t len = radio.getDynamicPayloadSize();
            radio.read( receivePayload, len);

            receivePayload[len] = 0;
            printf("inBuffer: %s\n\r",receivePayload);

            // Compare receive payload with outBuffer
            if ( ! strcmp(outBuffer, receivePayload) ) {
                rtt = millis() - send_time;

                printf("inBuffer --> rtt: %i \n\r",rtt);

            }

            // Check for timeout and exit the while loop
            if ( millis() - send_time > radio.getMaxTimeout() ) {
                Serial.println("Timeout!!!");
                timeout = 1;
            }

            delay(10);
        } // End while

        delay(250);
    }

This sketch makes use of printf so you need a file in the same directory called printf.h which consists of:


    /*
    Copyright (C) 2011 J. Coliz maniacbug@ymail.com

    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License
    version 2 as published by the Free Software Foundation.
    */

    /**
    * @file printf.h
    *
    * Setup necessary to direct stdout to the Arduino Serial library, which
    * enables 'printf'
    */

    #ifndef __PRINTF_H__
    #define __PRINTF_H__

    #ifdef ARDUINO

    int serial_putc( char c, FILE * )
    {
        Serial.write( c );

        return c;
    }

    void printf_begin(void)
    {
        fdevopen( &serial_putc, 0 );
    }

    #else
    #error This example is only for use on Arduino.
    #endif // ARDUINO

    #endif // __PRINTF_H__

Running the code on the RPi and Arduino

On the Arduino, just compile and upload the sketch and then open the Serial Monitor window and set the baud rate to 57,600.

On the RPi, run the following. It will show you what it is receiving from the Arduino and echoes it back.

sudo /home/pi/gitwork/RF24/librf24-rpi/librf24/examples/rpi-hub

If everything is working ok, both the RPi and the Arudino should be showing very similar output and reporting success.

Next Steps?

The Raspberry Pi libraries and sample code are obviously in C which is probably too hardcore for most people. Ideally they’d be available to both Python and JavaScript deveopers. I’ll do a little poking around to see how you go about that. I wouldn’t hold my breath tho.

2013-09-01 14.44.06

I haven’t done any major distance testing on the modules. In our house, which has concrete internal walls, two modules could communicate from one room to the next but not from one end of the house to the other. They also worked successfully with one module inside an oil tank in the garden and the other one inside the house <10m away. I’ll try some open air testing soon.

07 Sep 2013, 11:21

Another big brain dump of interesting tech bits over the past few weeks

#“Another big brain dump of interesting tech bits over the past few weeks”

  • Thrilled to find that Bluetooth on this Play Edition ROM for SGS4 works perfectly. I've gone from 20% success rate auto-connecting to my Lidl car stereo to 100%, Finally!
  • Nodeconf Europe is on in Waterford Mon-Wed. Incredible line-up of speakers. Superb IoT sessions set for Monday. A conference driven by expertise, not bullshit-artists hyping vapourware.
  • Ordered an Espruino - run JS on an MCU
  • This --------> <-------- close to ordering a Tessel - moar JS on an MCU, this time with NPM support
  • Waiting to order an Arduino Yun= Arduino + Wifi machine + bridge libraries
  • Of course I had to back this Pressy button for my Android phone. One of those slap-head projects that you can't believe you never thought of yourself.
  • What has happened to ql.io? Was a very cool open source Node.js project from eBay for querying a variety of web-services using a SQL like language. Doing joins across data from multiple sites was damned impressive. Have they shut it down?
  • Finally got Arduino talking to Raspberry Pi using two nRF24L01+ 2.4GHz devices. The libraries work great but it was the error-riddled blogposts by the author that made it take so long. I'll write up my own with the correct info soon. However it is not "Intrinsically Safe".
  • More MBP stupidity - horrible monochrome mini icons; favicons on Safari?; How do I discover that Safari is how to access the internet?; Caps Lock key in 2013 why?; but tiny arrow keys; no UK layout keymap for external keyboards; try to remember print-screen three-finger-salute; Magic Mouse hurts; DMG files - oh my god; Finder, oh hello 1989.
  • Apple keyboard dock for iPad is one of the worst pieces of industrial design of all time. Hilariously unstable and unusable. Going to hack a USB cable for it to see if it'll work as a PC keyboard since the buttons are nice.
  • Logitech Ultra-thin keyboard case for iPad is one of the best pieces of industrial design I've used. My Dad liking it a lot too. He may say bye bye to his heavy laptop.
  • ShrimpKey - Take the Shrimp DIY Arduino and turn it into a DIY Makey Makey. Neat.
  • Two different HDMI to VGA adapters cause horrendous pulsating noise on the analogue audio output of all my Raspberry Pis. Anyone else seeing/hearing this?
  • Only getting a 65Mbs connection from SGS4 phone to a Wireless-N AP when I'm right beside it. I have channel set not to overlap with any others. Where the hell is this mythical 300Mbs then?
  • My Runkeeper to Endomondo import tool now supports Sports Tracker too
  • Very very neat helium balloon project by Jason Madigan
  • XBMC now supports hardware video decoding on Android. Unfortunately not on Allwinner or AMLogic chips which is a total bummer as a large percentage of cheap devices use them. Fault lies totally with Allwinner and AMLogic. The unofficial XBMC for Android works like a charm on my SGS4.
  • No software application is complete until you can write code inside it. Code editor with Git support inside Chrome.
  • I'm sure I've forgotten 10 other things.

18 Aug 2013, 13:00

Tech brain-dump round-up

#“Tech brain-dump round-up”

Over a month without a blogpost. Possibly a 12 year record. Busy. Good busy. All of these were supposed to be standalone posts but that’ll never happen, so here’s some stuff that caught my eye in the past few weeks.

  • Weather Signal - Crowd Sourced weather using the sensors in your phone. I have it installed on my SGS4 already.
  • Android 4.3 “Play Edition” for Samsung Galaxy S4 without all the TouchWiz crap. I’ve been holding off on installing one of these ROMs until I saw some continuity of development. I finally installed this one on Friday. Solid as a rock so far. Only one visual glitch and FitBit won’t sync. I will be beating up Bluetooth big-time in the next few weeks as the normal Samsung stack is as garbage as the HTC one. Totally unreliable.
  • Running a Raspberry Pi on a battery: I ran an experiment with a Turnigy 2200mAh 7.4V LiPo battery to power an RPi. I put it through a regulator to drop it to 5V and it worked perfectly. Managed to get 5.5 hrs of usage with the RPi not doing very much. The Turnigys are designed for RC cars etc. Unfortunately I was tired when I was doing it and forgot those batteries have no low-charge protection. So it’s dead :-(
  • 6 weeks using an MBP 13”. You Mac fanbois are all smoking crack. It’s a perfectly fine laptop with an equal number of (different) problems to a standard Windows laptop. Stupid money for a nice case and mousepad with a pretty version of Unix. Where do I start? 2 USB ports. Bless.
  • foauth.org - Brilliant way to access tons of different OAuth based sites/services using simple username and password. I’ve a horrible feeling they will get C&Ds from Twitter and Co, but in the meantime, you can now try out fun ideas without the horror of server-side or mobile OAuth
  • Cloudup - Share files. Drag, drop and stream. Love the idea, haven’t had a chance to try properly.
  • Octopress - Yes, I’ve started drinking the static blog koolaid. Will be setting one up in the next few weeks using this.
  • Fargo.io - Just try it. In-browser Outliner built on Dropbox for storage by the creator of RSS. I already have two ideas for simple web services built on this DaaB (Dropbox as a Back-End) idea. Totally agree with the idea that all your “stuff” should be on a Dropbox-like service. Then new services you want to use are given permission to use it for storing everything there. It’s back to the idea of you owning your data. Outside opportunity for App.Net there?
Now to get back to the side project I started last September and have re-written twice before releasing anything. Analysis paralysis.

How are y’all?

 

30 Jun 2013, 10:45

It's official - Throne of Rolls is the greatest Instructable of all time

#“It’s official - Throne of Rolls is the greatest Instructable of all time”

A Game of Thrones themed toilet roll holderyou can make yourself.

FC0TOEZHIGFANVS.LARGE

15 Jun 2013, 12:12

A year of falling back in love with Making/Electronics on Raspberry Pi and Arduino

#“A year of falling back in love with Making/Electronics on Raspberry Pi and Arduino”

The 80s

As I have mentioned many many times, my adventure with computers began properly in late 1982 with my parents getting me a ZX Spectrum. I went from BASIC to Forth to Z80 Assembler over a few years and loved it all. Ok, to be fair, 90% of that time was spent playing Jet Set Willy.

2013-06-15 10.55.55

But I also had a strong interest in electronics. I’d tried a few times to learn from books in the local library but most of them were still about valves! I got (and still have) “20 Simple Electronics Projects for the ZX81 and ZX Spectrum” around ‘84/‘85 but I still struggled.

Maplin

Then I discovered the Maplin catalogue in the local newsagent and was entranced. I ordered various bits plus a multimeter and soldering iron from them and tried to build a Kempston-compatible joystick interface. That never worked. In fact the only real things I succeeded in doing were to upgrade the 16K Spectrum to 48K, to move it into a new keyboard case and to replace the power jack and add a reset button.

2013-06-15 11.07.56

Electronics in College

When it came time to pick my college course in ‘86, I initially looked into Computer Science in UCD/DCU/UL but the syllabuses back then were still full of Cobol, RPG (not the cool version of this acronym) and mainframes. Yuck! The Electronic Engineering syllabuses, in contrast, looked amazing. Analogue and digital electronics, programming, microwaves, bio-medical engineering, physics, chemistry, maths. Yum!

First Principles

So I enjoyed my 4 year degree in UCD and 2 year DSP Masters. Loved some subjects. Hated others. And sadly, electronics in general was one of the hates. I could blame the all-time worst lecturer on the planet for my detestation of analogue electronics. But it was really the entire UCD attitude of teaching the core principles without any practical understanding/feel/intuition that never worked for me. Our “practicals” were a joke of rushed setups and even more rushed reports. Zero actual understanding. If you want to freak out any ex-UCD Elec Engineer, just show them a circuit diagram with a transistor and inductor or ask them to turn on an oscilloscope.

transistor

I still think that way of teaching is wrong. The standard response from lecturers of the time was that if you wanted to do practical hands-on stuff, you should go to DIT, which they looked down their noses at. Or become a technician. Perhaps if they looked at Irish Universities pathetic record at being the source of great engineering innovations/patents/products, they’d think again about their sense of superiority. Metrics.

Solving Problems

On a positive note, the main benefit you get from an Engineering degree of this type is a strong approach to problem solving. You find yourself automatically breaking big challenges into smaller ones, you accept nothing at face value, you come up with models of how things work and then you validate them. If they don’t validate, the model is wrong, not the real world.

So the fact that the vast majority of UCD Engineers don’t end up working in engineering is possibly a good thing. That mindset is invaluable in most walks of life. Unfortunately Irish politics is the one area that could really benefit from it and has almost no engineering presence.

By the time I’d finished UCD, I was a software guy through and through. I’d learned C in 4th year and did all of my Masters using it. I was far more interested in the software development than any of the mathematical algorithms it was implementing. I never wanted to touch anything to do with electronics again.

The 90s

I spent the next 11 years as an Embedded Software developer working very closely with IC designers and board designers. Whilst I loved being near the hardware, I never wanted to do anything with implementing it. And as for analogue electronics. Shudder.

In parallel to that, I loved anything to do with the internet and was doing a huge amount of stuff there at home and as a sideline in my real job. I ended up switching to that career-wise with the great Embedded Collapse of 2001-2003 (aka the tech crash). I’ve had enormous fun over the past 10 years building Enterprise and non-Enterprise software. There has never been a dull day. In fact I haven’t been bored a working day in my life since my first job in 1992.

The Web

Tools/Languages/Platforms/OSes like Python, Linux, Django, JS, Node, Android, and PhoneGap are not just insanely powerful, they enable you to be shockingly efficient. It still amazes now that I can come up with a vague idea one morning and have it built, deployed and live on the web that afternoon.

Whilst I loved the past few years of Twitter/Facebook/SoLoMo/etc, nothing really new seemed to be happening there. The world of purely-online had become stale and repetitive. However the online+realworld was only just beginning.

Sugru

The first hint to me that I was getting into a Making mindset was Sugru. Not only is it an utterly brilliant product but the culture that Jane and James have built around it is really something special. Sugru could easily have been another DIY shop staple beside the epoxy resin that the odd person might buy. Instead it’s something I can mention to a group of my wife’s old school friends in a pub in Wicklow and they know exactly what it is and how useful it is.

I still find myself every day looking for things that could do with a bit of Sugru to improve/fix them. I live by The Fixer’s Manifesto. Check out my patent-pending Sugru Wall Fingers.

2013-06-15 11.10.01

Arduino

It was April 2012 when the Raspberry Pi went up for pre-order that I started reading and thinking and realising I had tons of things I wanted to do which only made sense when you did online+hardware. Over April and May I had some sort of Damascene conversion and got completely buzzed about making things. I subscribed to MAKE magazine. I got my old electronics books out of the attic and then, exactly 12 months ago, I ordered an Arduino Starter Kit.

timehop

And wow, what a 12 months that Starter Kit kicked-off. I’ve gone from a simple kit along with a soldering iron and multimeter to a desk covered in modules, wires, interfaces, sensors and microcontrollers.

In fact I still use the kit every day. Here’s something I put together in 10 mins before I went to bed the other night. It’s an 8 DHT22 Temperature and Humidity Sensor with a cloned 4 Nokia 5110 mobile phone screen. The code is just a quick hack of two Adafruit examples from their libraries. Two modules, one resistor and an Arduino. That’s all.

2013-05-23 10.25.45

Open Source Hardware

And this is the huge difference from my college days - modules. In the past year I have put together idea after idea, project after project and I’ve only needed to use Ohm’s Law once. I’ve also used a circuit simulator once for old times sake. The flood of cheap parts available online from China with a worldwide community of Open Source and Open Hardware enthusiasts means that you can prototype almost anything with a minimum of electronics knowledge. The only things you need are inquisitiveness, patience and a basic ability to think things through logically.

The real heroes for me are companies like Sparkfun, Adafruit and of course the amazing Arduino group. They blend learning, fun, Open Source and a commercial sensibility brilliantly. Long may they prosper.

Raspberry Pi

As for the Raspberry Pi, I think its most important impact has been to mainstream all of this. I’m pretty sure a lot of people are starting with RPi, getting into the whole Making community and then learning about Arduino and all of the other OSH projects out there. Heck, even most of the people who just use them for XBMC have to install a Linux based OS on an SD card to get started. That in itself may trigger further interest.

Whilst we can all criticise many aspects of the RPi design (USB, SD card location etc), it doesn’t matter. The fact that it exists and enables people to be creative is what matters. Every day I see new wonderfully crazy projects built using the Raspberry Pi. These would never have happened without it. Sure there are other cheap single board computers out there that people could have used, but they just didn’t know about them. Awareness + Ideas is leading to incredible ingenuity.

One of my big challenges has been working out the best approach to reporting data online. The device that does this will need Wifi, not wired Ethernet and the numbers just never add up when I do it with Arduino. The obvious solution is a Raspberry Pi Model-A with a cheap USB Wifi dongle.

2013-06-05 07.32.44

This gives me plenty of welly for running Node or Python and can interface easily with an Arduino. But I’m still worried about that SD card dangling off the end. Most of the problems we’ve had with RPi (apart from the USB horrors) have been related to either the SD card refusing to stay well-seated or it getting corrupted by reboots (usually caused by the aforementioned USB horror). The Beaglebone Black’s use of on-board eMMC looks a lot more stable by comparison but the Google Group doesn’t give me confidence that it is ready for primetime quite yet.

RC Cars

We’re also just getting into RC cars in our house. After years of the kids getting generic toy-shop RC cars which see one day’s use and are then discarded when the batteries run out, we now come up with ideas all the time and give them a lash on the iRacer or the ZL-4.

2013-06-15 11.11.34

Halloween

My 9yo daughter came up with a completely insane idea for her halloween costume last week (this child thinks ahead!). It will involve wearables, servos and lots of arts/crafts. It will also scare the living daylights out of children and adults alike.

Her 7yo brother announced he wants to do a hockey mask and chainsaw. I’m still trying to figure out how Jason got so into mainstream culture that a 7yo knows about him. We immediately came up with a way of doing it that won’t offend too many people.

Wearables

I love seeing all of the activity around wearables from the likes of Adafruit and it really catches the kids’ eyes too. I need to put in an order for a Flora or Lilypad soon and try some things out.

1405_LRG

Health and The Internet of Things

The whole area of Health and the Internet of Things (IoT or IOT) is where my head is at a lot of the time in the past few months. Everything I have been doing around sensors obviously falls into the IOT category. I’m also making a simple set of devices that fit into the home automation category but will also have a web-site and API involved.

In a far-too-long-term project I’m working on, I tried to reverse engineer a commercial product’s wireless communications protocol. Of course I failed. So I ripped out the electronics from the device, soldered together an Arduino-compatible board, added a wireless module, loaded up the VirtualWire library and had my own protocol running perfectly with an hour or two of work.

Finally I have just ordered a board for health sensing that should be great fun and provide me with some useful Quantified Self (QS) data too.

You Getting Started

If you are interested in getting into electronics, I can’t stress enough how easy it is to get started. Buy yourself an Arduino Starter Kit here, here, here, here, or here, do all the projects in it and you’ll be ready to take on anything after that :-)

2013-06-15 10.35.01

Next

Honestly if you’d told me a year ago that I’d be doing this much “stuff” in Making, I’d have laughed at you, but there is just so much potential for trying ideas out that I don’t think I’ll ever stop. And you just know my next big milestone is a 3D printer, and laser cutter, and and and………….

13 Jun 2013, 17:22

OK, I cannot deny it, Foursquare Time Machine is just bloody brilliant

#“OK, I cannot deny it, Foursquare Time Machine is just bloody brilliant”

So we start with Ireland’s first Foursquare check-in, courtesy of yours truly.

4sq01

An then they gave me an animation of all my check-ins, followed by Time Machine giving me a Personal Infographic that actually tells me something useful.

461858d3a436eef8fd30e6939c564821

08 Jun 2013, 21:03

My first stab at silicone mould making to cast an RC car suspension part

#“My first stab at silicone mould making to cast an RC car suspension part”

Regular readers will know that I’m a huge fan of the Dagu Arexx i-racer RC car. It’s cheap, light, fast, uses Bluetooth, has a removable shell and is perfect for n00b families like us who have never really done the RC thing properly.

Unfortunately after some over-exhuberant use recently, we broke a part of the suspension on one of the front wheels. Over the space of a few weeks I tried everything to fix it without success. That included:

  1. Trying to hand-mould thermo-plastic onto the remaining suspension member to rebuild the broken bit. It refused to stick
  2. Supergluing pieces of metalonto the remaining suspension member. They fell off.
  3. Soldering metal and wire onto the wheel hub to completely replace theremaining suspension member. This worked but was so loose and bendy that the car just drove around in circles.
2013-06-07 20.47.48

In the back of my mind I started justifying the cost of a 3D printer even tho I knew they were unsuitable for things that small.

I had pretty much given up when I read a post on Hack A Day about a guy creating new gears for his RC helicopter using silicone moulds and polyurethane resin.

The last time I tried to mould something was when I was about 12 and my sister got one of those castle-making kits where you had to make each “tile” from plastercast in green moulds first and then glue them together. Infuriating thing. What was that called? Can’t figure it out from Google.

But this guy’s approach looked perfect and appeared to make a strong item.

So I ordered some GP-325 RTV Silicone Mould Making Rubber and A2000L Easycast Polyurethane resin from a UK seller on eBay recently and it arrived last week.

I really wasn’t sure how to approach it so I just got stuck in. I removed the matching suspension part from the other wheel and put it in a plastic cup.I then mixed the two parts of the silicone as instructed and poured it over. Due to a rubbish kitchen electronic scales I wasn’t sure if the mix was correct so I let it dry for 24 hrs.

I popped the dry rubber out of the cup and could see the outline of the piece. I gently cut in with a blade and was shocked when the piece came out with no aggro and left behind a really impressive impression. The fact that the central hole was moulded perfectly too was the big surprise.

Phase two was less straightforward. I mixed the polyurethane and poured it into the mould. Despite tapping and squeezing etc, what came out an hour later was pretty stunted. I obviously had big issues with air pockets. So I cut away a bit at the top of the mould to make it easier for air to get out and the mixture to get in.

The second one was better but still not right. More rubber cutting ensued.

2013-06-08 18.00.11

The third mix was all wrong and never set.

Fourth time’s a charm and I got a “perfect” copy of the original. Obviously with lots of extra bits which I had to cut away.

moulds

I gave it about 16 hrs to cure, just in case.

2013-06-08 01.00.05

A tiny amount of trimming and it fit perfectly.

wheels

I’m genuinely stunned. I didn’t really expect a great result here but I got exactly what I needed. This method is amazing and so bloody easy.

2013-06-08 12.38.25

On the downside, I am concerned about the strength of the cast. Particularly the vertical bit which is what broke in the original too. I’m tempted to do another cast where I run a thin wire in the correct place to add some robustness. Having the mould means I can make as many of these as I like.

Is there any retail outlet in Cork/Dublin that sells the materials to do this kind of moulding? It’d be great to talk to someone who has done lots of it before about improving strength and flexibility and playing with the mix ratios.

I’ll update this when I’ve had a chance to test the car out properly.