Featured Engineer

Interview with Nicholas Skinner

Nicholas Skinner

Nicholas Skinner - Freelance website/web application and embedded software developer, hobby electronics enthusiast

  • Picture taken on a ski trip last year.
How did you get into electronics/engineering/programming and when did you start?

From memory I started out mainly just wiring up simple lights, buzzers, switches, and sometimes integrating them into existing (non electronic) toys. I can also remember a few other projects such as making small games out of cardboard box lids where if you connected a wire to the terminal next to the correct answer of a maths question a light would go on, building a crystal radio, and several others put together from simple kits such as a potato clock, small cars, and a robot that moved from a wired controller.

I had an “All-In-One” electronics kit and completed a few of the projects with that however my main interest was wiring up actual things around my bedroom and my parents house. These were usually 12V lights, and speakers salvaged from old electronics equipment. I installed an intercom system from my room to 3 rooms downstairs, and extended a remote door entry system up to my bedroom. I also bought an old mains operated wired alarm system (complete with magnetic reed sensors, and PIR sensors) which I setup in my bedroom. My parents did not particularly approve of wires trailing around the house so I had to get creative / lay them under carpets when they were out.

I can remember having a local Tandy electronics store although it later shutdown, I also sometimes received bags of various electronics components from Tandy such as LEDs, bulbs, motors and switches for birthday and Christmas presents, most of which went to good use in one project or another.

Soon however I started getting a bit more adventurous, a few more memorable projects that come to mind:

  • I had seen door entry systems where you hold up a card and it opens the door, I wanted something similar but my pocket money would not extend that far. I did however have access to magnetic reed switches (from an old burglar alarm system) therefore I connected some unused wires from the conveniently situated intercom box to the reed switch, the systems 12V power, and the electronic door release. I was then able to hold a magnet up to the bottom of the box to open the door without a key. It was far from secure, and repeatedly suffered from the reed switch burning out (usually in the on position) due to the high current passing through it (operating the door release) but I soon found a larger / older magnetic reed switch that did not suffer from the same problem (at the time I did not realise that use of relays / transistors would have been a better option). Having a magnet in my pocket to open the door also caused a few other annoyances such as sometimes wiping parking tickets.
  • For Halloween a few years running I wired up a smoke machine (something I saved up my pocket money to buy) feeding the hose end out the letterbox, and wiring it up to our doorbell, along with a few lights. To get this working I took apart its control unit, to find out how the circuit worked, replaced its 3 pin socket with one I could get a plug for, and built a mains relay box (operated from 12V) that could be used to trigger it from the doorbell.
  • I modified an electronic BB gun to be remotely trigger’able and connected it to a PIR sensor to fire when someone walked past.
  • I wired up a target shooting game which had a motor that moved around a meter horizontally to a piece of string connected to a pot of water hanging out of a 1st floor window above our doorway. I then ran a cable from it to the doorbell to trigger when the bell was pressed.
  • I modified some Sega Lock-On’s (home version of Quasar / Laser Quest) adding a constant fire button, and disabling the sound. I also used some IR Senders (used for controlling TV from other rooms) to “kill” opponents remotely.
  • After seeing a Van De Graph Generator at school I was fascinated with it and bought my own (which I ordered from America and took several weeks to arrive). I believe I also tried to link that up to the doorbell but can not remember it working.

My doorbell “tricks” apart from Halloween were always aimed at my friends / family.

On the programming side my first memory was programming our Olivetti 386 in GW-Basic to earn a Scouts Computer Programming badge. I later moved onto QBasic. I wrote a few applications, and simple games such as one moving a character across the screen if you answered questions correctly. I also modified the Nibbles game that came pre installed, adding level cheat codes. In school I programmed a guessing game on a basic graphics calculator (I do not own a more modern graphics calculator but I believe they are now much more advanced – at the time however it was not particularly straight forward). Throughout the years I purchased (usually at car boot sales), programmed, and then sold on several other computers such as the BBC Micro and ZX Spectrum.

What are your favorite hardware tools that you use?

For most part projects I work on do not need any particularly advanced tools, however I do need a few basics that work reliably. One purchase I would consider very worthwhile was a simple 2 port PCI serial card. Serial ports used to come as standard on the motherboard for all PCs and usually worked fairly reliably. Then they moved to only being available on headers for which you needed to purchase a breakout for (not great, but something that could be worked around – I purchased one and changed the pinout to work for the motherboard I had at the time), and then they stopped being available even on headers. At first I tried using various USB to serial adapters, first cheap imports, then more expensive brand name models, but they still never seemed quite as reliable as those provided from the motherboard. Finally after some searching I found a PCI serial card that worked with Windows 7 64-bit, it seemed like an expensive purchase at the time just for two serial ports (considering USB dongles are so cheap), and they used to come as standard, but it well worth it in the end.

In terms of other tools, I have found my simple DB9 serial switch to be very useful (before I was constantly unplugging/re-plugging serial cables), along with my Fluke 115 multimeter. The multimeter again was something that seemed expensive considering all the sub £20 meters available however I started to need something a little more reliable, and a little more accurate even for the basic work I was doing.

What are your favorite software tools that you use?

On the software side Edit Plus (text editor) is my favourite tool, and one I use on an almost daily basis, I have used it for years first mainly with PHP, HTML, CSS, JavaScript, and later with Python, Perl, and C. Another tool I use frequently is RSterm it has some issues you need to work around but it saved a great deal of time when developing on the Telit Python platform. I also use Realterm which also has its issues but I am still searching for a serial terminal application I like.

What is the hardest/trickiest bug you have ever fixed?

I am currently in the process of trying to debug an issue with a GSM based device that happens seemingly at random and only in certain locations of the country. This makes debugging it rather difficult as I am unable to replicate the problem and also physically going to the location is not that helpful because it may not occur for several hours/days. I also do not really have the option of leaving expensive debugging equipment (laptop, development board etc) due to the nature of the location, and also the software debugging tool needs someone “technical” to watch over it / restart it if needed further complicating things.

The solution I eventually came up with was to build a special version of the hardware that included an AVR based datalogger, this meant it was low cost and could be put inside the existing device. To get this working I logged the Windows based debugging software’s initialisation string with a serial port monitor tool, then programmed the AVR to emulate it therefore causing the device to start outputting debugging data which is then logged to the SD Card.

What has been your favourite project?

My favorite is an RFID door entry system I custom built and programmed a few years ago mainly because it is still something I use every day. The first version was a Parallax 125kHz RFID based model and was connected to my network via a Moxa serial to Ethernet board and then to a server which authenticated tags with a custom written C# application running as a service. I chose the design because I initially wanted the ability to easily audit entry logs, and enabled/disable tags straight from my PC. However it had a few issues since the 125kHz readers range was not great, and there seemed to be on occasions an unpredictable delay due to what I am assuming was network congestion / server performance issues. As I came to use it more / depend on it I decided to update it to a self contained system, and upgrade the RFID reader. I chose to use a 13.56MHz RFID reader which had a much improved read range, and linked it to a Parallax Basic Stamp which I wrote the code for (partly based on some example code for another model of RFID reader).

There is only one occasion that comes to mind where I nearly got locked out and that is when the power adapter broke, I previous had 2 adapters of the same model break after 2-3 years operation so should have replaced it sooner. Luckily on that day I just happened to also have my key with me (not something I usually carry) but needless to say after that I replaced it, this time with a more expensive commercial model from Farnel rather than the cheap adapter I had purchased from a local consumer orientated shop.

A Batter backup is something I know I should / need to setup but I just have not got around it yet, and with the power supply being fairly reliable in the UK not something I have made a priority.

Do you have any note-worthy engineering failures?

When I was younger once ran a 24 core IDC cable a good 20m-30m from my bedroom downstairs, and attempted to run a few things over it including 12V power, audio, and composite video from a CMOS security camera. I ended up just breaking the camera.

Not understanding the reason behind, or having access to any shielded cable I frequently found myself picking up local radio stations on audio long cable runs which I can remember finding very annoying after just spending the last few hours carefully running a cable under the carpet.

What are some of your other recent projects?

There have been a few of them:

  1. An Active RFID tracking system I built using Synapse hardware. It involved building the RFID “tags”, readers, PC interface unit, writing the software for the Synapse hardware, writing a software application (C#) to interface the system with a web server, then writing a PHP/HTML/JavaScript/SVG application to display the data in a web browser.
  2. Integrating my doorbell into a custom built home automation system to allow for remote ringer (PC based or wireless), disabling the bell, and ringing the bell remotely functionality.
  3. Building a web accessible heating / hot water programmer which involved putting together the hardware to interface with the mains controlled system, complete with support to allow for local on/off, permanent/temporary override, and status indicating LEDs, using a dedicated Fox G20 (mini Linux PC) acting as the programmer, and connecting to the network, and writing the PHP scheduling application, and PHP background progress.
  4. Remotely seeing who is at the door. It initially seemed like a simple idea however unfortunately there really was not anywhere to conveniently mount a camera (to avoid the need to run cable outside and buy a more expensive outdoor camera I wanted to use an indoor one pointing out of a nearby window). The issue was that the window had a view of the path but not the door itself, and by the time the visitor was at the door they were nolonger visible on the camera. For that reason I chose a camera with motion detection which to improve accuracy I integrated into the existing home automation system (linking to the doorbell) such that when the bell rang it would take the last image detected, send a signal over the network to any listening PCs which would then automatically popup the image from a few seconds previously when the visitor was in range of the camera.
  5. I have also been looking into using some commercial RFID hardware from Wavetrend with Synapse RF Engines however that project has been put on hold for now.

What direction do you see your business heading in the next few years?

I used to spend a lot of my free time when I was younger wiring up simple circuits but grew more into the programming side of things studying Computer Science at university. Over the past few years work wise I have been moving slight more into the embedded software side of things, and occasionally hardware as well, particularly recently. I will likely continue to get a little more involved in the embedded software / hardware side of things rather than more focusing solely on software (mainly based developments) as I am at the moment. I have found it very useful to be able to do both ends of a project from programming the hardware in the field to interfacing it with a e.g. a PHP web server running in the cloud.

What type of stuff/hobbies do you do in London in your free time?

At home I sometimes work on personal programming / electronics projects, such as those mentioned, outside (I am based in London, United Kingdom) I enjoy riding my bike and skiing either on a local dry slope or the indoor snow slope at Milton Keynes. I have also started getting back into inline skating again lately, mainly around Hyde Park (London).

Previous Spotlights

 
Click Here