Sep 22

Stay safe from high quality phishing email scams.

Today I received an email on my BT Internet email account which looked bona fide, but it was a phishing scam. Here I describe how to spot the few clues, to make sure you don’t get caught out. Continue reading

Sep 18

Solder paste under the microscope.

In electronics we regularly use solder paste in the assembly of printed circuit boards (PCBs).
This paste comes in a variety of packages, styles, types and so on. Today I look at one small tub of solder paster under the microscope. Quite literally.  Continue reading

SanDisk Extreme PRO® SDHC/SDXC™ UHS-3 Memory Card


512 GB SD Card anyone? SanDisk have pushed the boundaries with this new ½ Terabyte SDXC Card. It has 90 MB/s write speed too. Big. And Fast.

SanDisk Extreme PRO® SDHC/SDXC™ UHS-3 Memory Card.

Sep 11

mDNS / Bonjour tool for OS X Now Available in App Store.

My new mDNS Tool for Mac OS X is now available in the Mac App Store.
View it on the App Store or search the Mac App Store for “mDNS Tool”.

Screen Shot 2014-09-11 at 09.23.57

The tool allows you to browse and find all the mDNS / Bonjour services and devices on your network. Bonjour is Apple’s name for their implementation of mDNS, which is used to advertise and locate devices and services on the network.

  • List all mDNS / Bonjour devices on your network.
  • Find the address of devices and services.
  • See all the device details, not normally shown in network browsers.
  • Find IPv4 and IPv6 Addresses for devices.
  • Copy details to the clipboard.
  • Simple to use.
  • No drivers or libraries required.



Sep 05

Moto 360 Smartwatch on sale today.

Motorolla’s new “moto 360” goes on sale today at 11:00am Central Time (USA)
More details are available here.

Screen Shot 2014-09-05 at 11.37.02

See the launch video here.

The difference between the UK, England and Great Britain explained.


Ever wondered what is the difference between the terms “Great Britain”, “the United Kingdom” and even “England”? Well here’s the answer…


Aug 27

Windows ™ versus Linux on intel Galileo

Here is a really quick and dirty, non scientific comparison of a Galileo GEN1 board running Windows ™ against the same board running linux.
SPI Flash version is 1.0.2.

Login to windows is via telnet.
Login to linux is via ssh.

 Time taken from power-on to login:

Linux  48 Seconds
Windows 68 Seconds

Time taken to power off:

Linux    3.25 Seconds 
Windows  12.54 Seconds

Next I wrote a simple ‘blink’ executable thats sets up Pin 13 for GPIO and then turns it on/off in a tight loop. Source code for both is below. Both are built in ‘release’ mode.

To write the app for Windows on Galileo you need an external PC running Windows 7 or later, and Visual Studio 2013 or later, with the Microsoft IoT dev kit extensions installed.

To write the app for Linux, you need any PC or Terminal capable of attaching via telnet or RS232.

Size of simple ‘blink’ executable

Linux  10080 Bytes
Windows 19456 Bytes

Speed of executing GPIO Writes
The simple app after setting up the GPIO runs in a tight loop just switching the GPIO Pin to 1 and 0 continuously.

The Linux loop:


The windows loop:

    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
    digitalWrite(led, HIGH);  // turn the LED on by making the voltage HIGH

These gave the following results:

The Linux version gave a steady 223.9 Hz square wave with a 50% duty cycle. Pulse width is about 2.24 ms.

Screen Shot 2014-08-27 at 15.00.42

The Windows version gave a jittery 42.72 Hz wave with a 35% Duty cycle. Pulse width is about 14.97 ms, but there were occasional gaps in the wave form where it paused for 10 ms or so.

Screen Shot 2014-08-27 at 14.36.39

And finally, the full source code for each of the test apps.

Linux source code:

#include <stdint.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>

void setGPIOPin(char* pin, char* dir, char* drive, char* val)
  char buf[256];
  int fd;

  // Open the GPIO Export file
  fd = open("/sys/class/gpio/export",O_WRONLY);
  if(fd == -1)

// Export chosen pin
 write(fd, pin, strlen(pin)); // Export GPIO pin

  // Open exported pin DIRECTION file
  fd = open(buf,O_WRONLY); // open GPIOxx direction file


  // write out the direction
  write(fd,dir,strlen(dir)); // set GPIOxx direction to out

  // open the drive file
  fd = open(buf,O_WRONLY); // open GPIO drive strength file

 write(fd,drive,strlen(drive)); // set GPIO drive

  fd = open(buf,O_WRONLY);

  write(fd,val,strlen(val)); // set GPIO value

void setMux(void)
  // Switch all the SPI1 pins through to the header pins. And enable level shifter.
  setGPIOPin("55","out","pullup","1"); // mux
  setGPIOPin("39","out","pullup","1"); // Pin 13
  setGPIOPin("4","out","pullup","1"); // Level shifter

int main(int argc, char *argv[])
  int fd;

  fd = open("/sys/class/gpio/gpio39/value",O_WRONLY);
    printf("Failed to open GPIO On pin 13\n");


  return 0;

Windows Source code:

#include "stdafx.h"
#include "arduino.h"

int _tmain(int argc, _TCHAR* argv[])
    return RunArduinoSketch();

int led = 13;  // This is the pin the LED is attached to.
void setup()
    pinMode(led, OUTPUT);      // Configure the pin for OUTPUT so you can turn on the LED.

// the loop routine runs over and over again forever:
void loop()
    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
    digitalWrite(led, HIGH);  // turn the LED on by making the voltage HIGH

Aug 27

How To spot a fake or phishing email.

Here is our cut-out-and-keep guide on how to spot a fake or “phising” email.

A ‘phishing’ email is one that purports to be from someone you do business with, like your bank, Apple, a high-street store or online store, but is in fact a fake email trying to get you to hand over your identity, passwords and/or debit & credit card details.

As an example, take a look at this email which is doing the rounds at the moment: (this is a picture of the email, not the email itself, so it’s safe!).

Screen Shot 2014-08-27 at 16.02.36If you had received this email, would you have clicked on the “Update Now” link?

It looks genuine enough, and if you click on the “Update Now” link in the email it would have taken you to this website: (again, this is a picture of the web site, not the site itself).

Screen Shot 2014-08-27 at 16.16.52

It all looks genuine enough, but if you were to fill in this form, your Apple ID would be taken over, and you bank account cleaned out within minutes. I won’t publish the link that was embedded in that email, that would just be silly, but it took you to an address very similar to this “” – which should raise alarm bells, because it looks nothing like the usual web addresses for Apple – and they even spell ‘Apple’ wrong in the link.

So how can you tell if an email is genuine? Well, lets take a look at the clues in the original email.

Here is our cut-out-and-keep guide to spotting the fakes:


The simple rule is this:
Never trust any email that asks you to verify your identity or payment details. If you think it might actually be genuine, because you are (for example) expecting an account to expire, then instead of following the links in the email, use your normal routes for contacting the company. Don’t use any email addresses or phone numbers on the email, they might be fake too!

Aug 18

BT HomeHub 5 has issues with mDNS/Bonjour

I recently upgraded from the BT HomeHub 3 to their latest offering, the BT Home Hub 5.

However immediately on replacing the old router with the new one I started having problems with my networked printers. I have a pair of HP OfficeJet 7500A printers, attached to my home network. Once I had upgraded to the Home Hub 5, I could see the printers on the network, but I could not print to them.

To cut a long story short, I did a bit of digging about with Wireshark and Bonjour Browser and discovered the issue. The printers advertise themselves on the network using mDNS (also known as Bonjour in Apple circles). With mDNS when a computer wishes to find a provider of a certain service, such as printing, it sends out a service discovery packet on the network, and all the devices which provide that service reply with their details. This is known as ‘service discovery.’ In the case of these printers the service is known as “_ipp.tcp” (Internet Printing Protocol).

The problem that I’ve been seeing with the HH5 is that this service request and discovery process does not work for certain devices – but only when the computer issues the request via the HH5’s LAN interface (ie, the wired ethernet ports). If the computer is connected to the home hub using WiFi then the service discovery process works properly.

mDNS and Bonjour work by sending the service discovery packets to a well known ‘multicast’ address: – It looks to me like the HH5 is not passing these requests on the LAN interface correctly. Yet it does work on the WiFi interface.

It could be the size of the TXT record that is at the heart of the problem, because these printers return quite a large TXT packet, but I have not been able to verify that. Even so, it works fine over the WiFi interface, so it should work on the LAN interface.

Finally, if I go back to using my old BT Home Hub 3, then it all works fine on both the LAN and the WiFi interfaces, leading me to deduce that there is an issue with mDNS/Bonjour being used with HH5.

I’ve contacted BT and sent them packet captures and all kinds of data, but they don’t respond. It would appear as through they simply do not care about this issue.