WiringPi: Remove files that seem won't be used or already have not been used

Signed-off-by: Deokgyu Yang <secugyu@gmail.com>
Change-Id: I1189f950d0e51cbc4c569b1e7a1182dc5f8fe762
diff --git a/examples/Gertboard/7segments.c b/examples/Gertboard/7segments.c
deleted file mode 100644
index 8797e49..0000000
--- a/examples/Gertboard/7segments.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * 7segments.c:
- *	Simple test program to see if we can drive a 7-segment LED
- *	display using the GPIO and little else on the Raspberry Pi
- *
- *	Copyright (c) 2013 Gordon Henderson
- ***********************************************************************
- */
-
-#undef	PHOTO_HACK
-
-#include <wiringPi.h>
-
-#include <stdio.h>
-#include <time.h>
-#include <ctype.h>
-#include <string.h>
-
-/*
- *  Segment mapping
- *
- *	 --a--
- *	|     |
- *	f     b
- *	|     |
- *	 --g--
- *	|     |
- *	e     c
- *	|     |
- *	 --d--  p
- */
-
-// GPIO Pin Mapping
-
-static int digits   [6] = {  7, 11, 10, 13, 12, 14    } ;
-static int segments [7] = {  6,  5,  4,  3,  2,  1, 0 } ;
-
-
-static const int segmentDigits [] =
-{
-// a  b  c  d  e  f  g     Segments
-// 6  5  4  3  2  1  0,	// wiringPi pin No.
-
-   1, 1, 1, 1, 1, 1, 0,	// 0
-   0, 1, 1, 0, 0, 0, 0,	// 1
-   1, 1, 0, 1, 1, 0, 1,	// 2
-   1, 1, 1, 1, 0, 0, 1,	// 3
-   0, 1, 1, 0, 0, 1, 1,	// 4
-   1, 0, 1, 1, 0, 1, 1,	// 5
-   1, 0, 1, 1, 1, 1, 1,	// 6
-   1, 1, 1, 0, 0, 0, 0,	// 7
-   1, 1, 1, 1, 1, 1, 1,	// 8
-   1, 1, 1, 1, 0, 1, 1,	// 9
-   1, 1, 1, 0, 1, 1, 1,	// A
-   0, 0, 1, 1, 1, 1, 1,	// b
-   1, 0, 0, 1, 1, 1, 0,	// C
-   0, 1, 1, 1, 1, 0, 1,	// d
-   1, 0, 0, 1, 1, 1, 1,	// E
-   1, 0, 0, 0, 1, 1, 1,	// F
-   0, 0, 0, 0, 0, 0, 0,	// blank
-} ;
- 
-
-// display:
-//	A global variable which is written to by the main program and
-//	read from by the thread that updates the display. Only the first
-//	6 characters are used.
-
-char display [8] ;
-
-
-/*
- * displayDigits:
- *	This is our thread that's run concurrently with the main program.
- *	Essentially sit in a loop, parsing and displaying the data held in
- *	the "display" global.
- *********************************************************************************
- */
-
-PI_THREAD (displayDigits)
-{
-  int digit, segment ;
-  int index, d, segVal ;
-
-  piHiPri (50) ;
-
-  for (;;)
-  {
-    for (digit = 0 ; digit < 6 ; ++digit)
-    {
-      for (segment = 0 ; segment < 7 ; ++segment)
-      {
-	d = toupper (display [digit]) ;
-	/**/ if ((d >= '0') && (d <= '9'))	// Digit
-	  index = d - '0' ;
-	else if ((d >= 'A') && (d <= 'F'))	// Hex
-	  index = d - 'A' + 10 ;
-	else
-	  index = 16 ;				// Blank
-
-	segVal = segmentDigits [index * 7 + segment] ;
-
-	digitalWrite (segments [segment], segVal) ;
-      }
-      digitalWrite (digits [digit], 1) ;
-      delay (2) ;
-      digitalWrite (digits [digit], 0) ;
-    }
-  }
-}
-
-
-/*
- * setup:
- *	Initialise the hardware and start the thread
- *********************************************************************************
- */
-
-void setup (void)
-{
-  int i, c ;
-
-  wiringPiSetup () ;
-
-// 7 segments
-
-  for (i = 0 ; i < 7 ; ++i)
-    { digitalWrite (segments [i], 0) ; pinMode (segments [i], OUTPUT) ; }
-
-// 6 digits
-
-  for (i = 0 ; i < 6 ; ++i)
-    { digitalWrite (digits [i], 0) ;   pinMode (digits [i],   OUTPUT) ; }
-
-  strcpy (display, "      ") ;
-  piThreadCreate (displayDigits) ;
-  delay (10) ; // Just to make sure it's started
-
-// Quick countdown LED test sort of thing
-
-  c = 999999 ;
-  for (i = 0 ; i < 10 ; ++i)
-  {
-    sprintf (display, "%06d", c) ;
-    delay (400) ;
-    c -= 111111 ;
-  }
-
-  strcpy (display, "      ") ;
-  delay (400) ;
-
-#ifdef PHOTO_HACK
-  sprintf (display, "%s", "123456") ;
-  for (;;)
-    delay (1000) ;
-#endif
-
-}
-
-
-/*
- * teenager:
- *	No explanation needed. (Nor one given!)
- *********************************************************************************
- */
-
-void teenager (void)
-{
-  char *message = "      feedbeef      babe      cafe      b00b      " ;
-  int i ;
-
-  for (i = 0 ; i < strlen (message) - 4 ; ++i)
-  {
-    strncpy (display, &message [i], 6) ;
-    delay (200) ;
-  }
-  delay (1000) ;
-  for (i = 0 ; i < 3 ; ++i)
-  {
-    strcpy (display, "    ") ;
-    delay (150) ;
-    strcpy (display, " b00b ") ;
-    delay (250) ;
-  }
-  delay (1000) ;
-  strcpy (display, "      ") ;
-  delay (1000) ;
-}
-
-
-/*
- *********************************************************************************
- * main:
- *	Let the fun begin
- *********************************************************************************
- */
-
-int main (void)
-{
-  struct tm *t ;
-  time_t     tim ;
-
-  setup    () ;
-  teenager () ;
-
-  tim = time (NULL) ;
-  for (;;)
-  {
-    while (time (NULL) == tim)
-      delay (5) ;
-
-    tim = time (NULL) ;
-    t   = localtime (&tim) ;
-
-    sprintf (display, "%02d%02d%02d", t->tm_hour, t->tm_min, t->tm_sec) ;
-
-    delay (500) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/Gertboard/Makefile b/examples/Gertboard/Makefile
deleted file mode 100644
index 1939ad6..0000000
--- a/examples/Gertboard/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-#
-# Makefile:
-#	Gertboard - Examples using wiringPi
-#
-#	Copyright (c) 2013 Gordon Henderson
-#################################################################################
-
-ifneq ($V,1)
-Q ?= @
-endif
-
-#DEBUG	= -g -O0
-DEBUG	= -O3
-CC	= gcc
-INCLUDE	= -I/usr/local/include
-CFLAGS	= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS	= -L/usr/local/lib
-LDLIBS    = -lwiringPi -lwiringPiDev -lpthread -lm
-
-# Should not alter anything below this line
-###############################################################################
-
-SRC	=	gertboard.c				\
-		buttons.c 7segments.c			\
-		voltmeter.c temperature.c vumeter.c	\
-		record.c
-
-OBJ	=	$(SRC:.c=.o)
-
-BINS	=	$(SRC:.c=)
-
-all:	$(BINS)
-
-gertboard:	gertboard.o
-	$Q echo [link]
-	$Q $(CC) -o $@ gertboard.o $(LDFLAGS) $(LDLIBS)
-
-buttons:	buttons.o
-	$Q echo [link]
-	$Q $(CC) -o $@ buttons.o $(LDFLAGS) $(LDLIBS)
-
-7segments:	7segments.o
-	$Q echo [link]
-	$Q $(CC) -o $@ 7segments.o $(LDFLAGS) $(LDLIBS)
-
-voltmeter:	voltmeter.o
-	$Q echo [link]
-	$Q $(CC) -o $@ voltmeter.o $(LDFLAGS) $(LDLIBS)
-
-temperature:	temperature.o
-	$Q echo [link]
-	$Q $(CC) -o $@ temperature.o $(LDFLAGS) $(LDLIBS)
-
-vumeter:	vumeter.o
-	$Q echo [link]
-	$Q $(CC) -o $@ vumeter.o $(LDFLAGS) $(LDLIBS)
-
-record:	record.o
-	$Q echo [link]
-	$Q $(CC) -o $@ record.o $(LDFLAGS) $(LDLIBS)
-
-.c.o:
-	$Q echo [CC] $<
-	$Q $(CC) -c $(CFLAGS) $< -o $@
-
-clean:
-	$Q echo [Clean]
-	$Q rm -f $(OBJ) *~ core tags $(BINS)
-
-tags:	$(SRC)
-	$Q echo [ctags]
-	$Q ctags $(SRC)
-
-depend:
-	makedepend -Y $(SRC)
-
-# DO NOT DELETE
diff --git a/examples/Gertboard/buttons.c b/examples/Gertboard/buttons.c
deleted file mode 100644
index 5f76764..0000000
--- a/examples/Gertboard/buttons.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * buttons.c:
- *	Read the Gertboard buttons. Each one will act as an on/off
- *	tiggle switch for 3 different LEDs
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-
-// Array to keep track of our LEDs
-
-int leds [] = { 0, 0, 0 } ;
-
-// scanButton:
-//	See if a button is pushed, if so, then flip that LED and
-//	wait for the button to be let-go
-
-void scanButton (int button)
-{
-  if (digitalRead (button) == HIGH)	// Low is pushed
-    return ;
-
-  leds [button] ^= 1 ; // Invert state
-  digitalWrite (4 + button, leds [button]) ;
-
-  while (digitalRead (button) == LOW)	// Wait for release
-    delay (10) ;
-}
-
-int main (void)
-{
-  int i ;
-
-  printf ("Raspberry Pi Gertboard Button Test\n") ;
-
-  wiringPiSetup () ;
-
-// Setup the outputs:
-//	Pins 3, 4, 5, 6 and 7 output:
-//	We're not using 3 or 4, but make sure they're off anyway
-//	(Using same hardware config as blink12.c)
-
-  for (i = 3 ; i < 8 ; ++i)
-  {
-    pinMode      (i, OUTPUT) ;
-    digitalWrite (i, 0) ;
-  }
-
-// Setup the inputs
-
-  for (i = 0 ; i < 3 ; ++i)
-  {
-    pinMode         (i, INPUT) ;
-    pullUpDnControl (i, PUD_UP) ;
-    leds [i] = 0 ;
-  }
-
-  for (;;)
-  {
-    for (i = 0 ; i < 3 ; ++i)
-      scanButton (i) ;
-    delay (1) ;
-  }
-}
diff --git a/examples/Gertboard/gertboard.c b/examples/Gertboard/gertboard.c
deleted file mode 100644
index aefcb12..0000000
--- a/examples/Gertboard/gertboard.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * gertboard.c:
- *	Simple test for the SPI bus on the Gertboard
- *
- *	Hardware setup:
- *		D/A port 0 jumpered to A/D port 0.
- *
- *	We output a sine wave on D/A port 0 and sample A/D port 0. We then
- *	plot the input value on the terminal as a sort of vertical scrolling
- *	oscilloscipe.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <sys/ioctl.h>
-#include <stdlib.h>
-#include <math.h>
-
-// Gertboard D to A is an 8-bit unit.
-
-#define	B_SIZE	256
-
-#include <wiringPi.h>
-#include <gertboard.h>
-
-int main (void)
-{
-  double angle ;
-  int i, inputValue ;
-  int  buffer [B_SIZE] ;
-  int   cols ;
-  struct winsize w ;
-
-
-  printf ("Raspberry Pi Gertboard SPI test program\n") ;
-  printf ("=======================================\n") ;
-
-  ioctl (fileno (stdin), TIOCGWINSZ, &w);
-  cols = w.ws_col - 2 ;
-
-// Always initialise wiringPi. Use wiringPiSys() if you don't need
-//	(or want) to run as root
-
-  wiringPiSetupSys () ;
-
-// Initialise the Gertboard analog hardware at pin 100
-
-  gertboardAnalogSetup (100) ;
-
-// Generate a Sine Wave and store in our buffer
-
-  for (i = 0 ; i < B_SIZE ; ++i)
-  {
-    angle = ((double)i / (double)B_SIZE) * M_PI * 2.0 ;
-    buffer [i] = (int)rint ((sin (angle)) * 127.0 + 128.0) ;
-  }
-
-// Loop, output the sine wave on analog out port 0, read it into A-D port 0
-//	and display it on the screen
-
-  for (;;)
-  {
-    for (i = 0 ; i < B_SIZE ; ++i)
-    {
-      analogWrite (100, buffer [i]) ;
-
-      inputValue = analogRead (100) ;
-
-// We don't need to wory about the scale or sign - the analog hardware is
-//	a 10-bit value, so 0-1023. Just scale this to our terminal
-
-      printf ("%*s\n", (inputValue * cols) / 1023, "*") ;
-      delay (2) ;
-    }
-  }
-
-  return 0 ;
-}
diff --git a/examples/Gertboard/record.c b/examples/Gertboard/record.c
deleted file mode 100644
index 71d8718..0000000
--- a/examples/Gertboard/record.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * record.c:
- *	Record some audio via the Gertboard
- *
- *	Copyright (c) 2013 Gordon Henderson
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <sys/time.h>
-
-#include <wiringPi.h>
-#include <gertboard.h>
-
-#define	B_SIZE	40000
-
-int main ()
-{
-  int i ;
-  struct timeval tStart, tEnd, tTaken ;
-  unsigned char buffer [B_SIZE] ;
-
-  printf ("\n") ;
-  printf ("Gertboard demo: Recorder\n") ;
-  printf ("========================\n") ;
-
-// Always initialise wiringPi. Use wiringPiSys() if you don't need
-//	(or want) to run as root
-
-  wiringPiSetupSys () ;
-
-// Initialise the Gertboard analog hardware at pin 100
-
-  gertboardAnalogSetup (100) ;
-
-  gettimeofday (&tStart, NULL) ;
-
-  for (i = 0 ; i < B_SIZE ; ++i)
-    buffer [i] = analogRead (100) >> 2 ;
-
-  gettimeofday (&tEnd, NULL) ;
-  
-  timersub (&tEnd, &tStart, &tTaken) ;
-
-  printf ("Time taken for %d  reads: %ld.%ld\n", B_SIZE, tTaken.tv_sec, tTaken.tv_usec) ;
-
-  gettimeofday (&tStart, NULL) ;
-
-  for (i = 0 ; i < B_SIZE ; ++i)
-   analogWrite (100, buffer [i]) ;
-
-  gettimeofday (&tEnd, NULL) ;
-  
-  timersub (&tEnd, &tStart, &tTaken) ;
-
-  printf ("Time taken for %d writes: %ld.%ld\n", B_SIZE, tTaken.tv_sec, tTaken.tv_usec) ;
-
-  return 0 ;
-}
-
diff --git a/examples/Gertboard/temperature.c b/examples/Gertboard/temperature.c
deleted file mode 100644
index 5985a12..0000000
--- a/examples/Gertboard/temperature.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * temperature.c:
- *	Demonstrate use of the Gertboard A to D converter to make
- *	a simple thermometer using the LM35.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-
-#include <wiringPi.h>
-#include <gertboard.h>
-
-int main ()
-{
-  int x1, x2 ;
-  double v1, v2 ;
-
-  printf ("\n") ;
-  printf ("Gertboard demo: Simple Thermemeter\n") ;
-  printf ("==================================\n") ;
-
-// Always initialise wiringPi. Use wiringPiSys() if you don't need
-//	(or want) to run as root
-
-  wiringPiSetupSys () ;
-
-// Initialise the Gertboard analog hardware at pin 100
-
-  gertboardAnalogSetup (100) ;
-
-  printf ("\n") ;
-  printf ("| Channel 0 | Channel 1 | Temperature 1 | Temperature 2 |\n") ;
-
-  for (;;)
-  {
-
-// Read the 2 channels:
-
-    x1 = analogRead (100) ;
-    x2 = analogRead (101) ;
-
-// Convert to a voltage:
-
-    v1 = (double)x1 / 1023.0 * 3.3 ;
-    v2 = (double)x2 / 1023.0 * 3.3 ;
-
-// Print
-
-    printf ("|    %6.3f |    %6.3f |", v1, v2) ;
-
-// Print Temperature of both channels by converting the LM35 reading
-//	to a temperature. Fortunately these are easy: 0.01 volts per C.
-
-    printf ("          %4.1f |          %4.1f |\r", v1 * 100.0, v2 * 100.0) ;
-    fflush (stdout) ;
-  }
-
-  return 0 ;
-}
-
diff --git a/examples/Gertboard/voltmeter.c b/examples/Gertboard/voltmeter.c
deleted file mode 100644
index c4d2113..0000000
--- a/examples/Gertboard/voltmeter.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * voltmeter.c:
- *	Demonstrate use of the Gertboard A to D converter to make
- *	a simple voltmeter.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-
-#include <wiringPi.h>
-#include <gertboard.h>
-
-int main ()
-{
-  int x1, x2 ;
-  double v1, v2 ;
-
-  printf ("\n") ;
-  printf ("Gertboard demo: Simple Voltmeters\n") ;
-  printf ("=================================\n") ;
-
-// Always initialise wiringPi. Use wiringPiSys() if you don't need
-//	(or want) to run as root
-
-  wiringPiSetupSys () ;
-
-// Initialise the Gertboard analog hardware at pin 100
-
-  gertboardAnalogSetup (100) ;
-
-  printf ("\n") ;
-  printf ("| Channel 0 | Channel 1 |\n") ;
-
-  for (;;)
-  {
-
-// Read the 2 channels:
-
-    x1 = analogRead (100) ;
-    x2 = analogRead (101) ;
-
-// Convert to a voltage:
-
-    v1 = (double)x1 / 1023.0 * 3.3 ;
-    v2 = (double)x2 / 1023.0 * 3.3 ;
-
-// Print
-
-    printf ("|    %6.3f |    %6.3f |\r", v1, v2) ;
-    fflush (stdout) ;
-  }
-
-  return 0 ;
-}
-
diff --git a/examples/Gertboard/vumeter.c b/examples/Gertboard/vumeter.c
deleted file mode 100644
index 9643ace..0000000
--- a/examples/Gertboard/vumeter.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * vumeter.c:
- *	Simple VU meter
- *
- * Heres the theory:
- *	We will sample at 4000 samples/sec and put the data into a
- *	low-pass filter with a depth of 1000 samples. This will give
- *	us 1/4 a second of lag on the signal, but I think it might
- *	produce a more pleasing output.
- *
- *	The input of the microphone should be at mid-pont with no
- *	sound input, but we might have to sample that too, to get
- *	our reference zero...
- *
- *	Copyright (c) 2013 Gordon Henderson
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-#include <wiringPi.h>
-#include <gertboard.h>
-
-#ifndef	TRUE
-#define	TRUE	(1==1)
-#define	FALSE	(!TRUE)
-#endif
-
-#define	B_SIZE	1000
-#define	S_SIZE	 128
-
-static int buffer [B_SIZE] ;
-static int bPtr = 0 ;
-
-/*
- * ledPercent:
- *	Output the given value as a percentage on the LEDs
- *********************************************************************************
- */
-
-static void ledPercent (int percent)
-{
-  unsigned int output = 0 ;
-
-  if (percent > 11) output |= 0x01 ;
-  if (percent > 22) output |= 0x02 ;
-  if (percent > 33) output |= 0x04 ;
-  if (percent > 44) output |= 0x08 ;
-  if (percent > 55) output |= 0x10 ;
-  if (percent > 66) output |= 0x20 ;
-  if (percent > 77) output |= 0x40 ;
-  if (percent > 88) output |= 0x80 ;
-
-  digitalWriteByte (output) ;
-}
-
-static unsigned int tPeriod, tNextSampleTime ;
-
-/*
- * sample:
- *	Get a sample from the Gertboard. If not enough time has elapsed
- *	since the last sample, then wait...
- *********************************************************************************
- */
-
-static void sample (void)
-{
-  unsigned int tFuture ;
-
-// Calculate the future sample time
-
-  tFuture = tPeriod + tNextSampleTime ;
-
-// Wait until the next sample time
-
-  while (micros () < tNextSampleTime)
-    ;
-  
-  buffer [bPtr] = gertboardAnalogRead (0) ;
-
-  tNextSampleTime = tFuture ;
-}
-
-
-int main ()
-{
-  int quietLevel, min, max ;
-  int i, sum ;
-  unsigned int tStart, tEnd ;
-
-  printf ("\n") ;
-  printf ("Gertboard demo: VU Meter\n") ;
-  printf ("========================\n") ;
-
-  wiringPiSetup     () ;
-  gertboardSPISetup () ;
-
-  ledPercent (0) ;
-  for (i = 0 ; i < 8 ; ++i)
-    pinMode (i, OUTPUT) ;
-
-  for (bPtr = 0 ; bPtr < B_SIZE ; ++bPtr)
-    buffer [bPtr] = 99 ;
-
-  tPeriod = 1000000 / 1000 ;
-
-  printf ("Shhhh.... ") ; fflush (stdout) ;
-  delay (1000) ;
-  printf ("Sampling quiet... ") ; fflush (stdout) ;
-
-  tStart = micros () ;
-
-  tNextSampleTime = micros () ;
-  for (bPtr = 0 ; bPtr < B_SIZE ; ++bPtr)
-    sample () ;
-
-  tEnd = micros () ;
-
-  quietLevel = 0 ;
-  max =    0 ;
-  min = 1024 ;
-  for (i = 0 ; i < B_SIZE ; ++i)
-  {
-    quietLevel += buffer [i] ;
-    if (buffer [i] > max) max = buffer [i] ;
-    if (buffer [i] < min) min = buffer [i] ;
-  }
-  quietLevel /= B_SIZE ;
-
-  printf ("Done. Quiet level is: %d [%d:%d] [%d:%d]\n", quietLevel, min, max, quietLevel - min, max - quietLevel) ;
-
-  printf ("Time taken for %d reads: %duS\n", B_SIZE, tEnd - tStart) ;
-
-  for (bPtr = 0 ;;)
-  {
-    sample () ;
-    sum = 0 ;
-    for (i = 0 ; i < S_SIZE ; ++i)
-      sum += buffer [i] ;
-    sum /= S_SIZE ;
-    sum = abs (quietLevel - sum) ;
-    sum = (sum * 1000) / quietLevel ;
-    ledPercent (sum) ;
-    if (++bPtr > S_SIZE)
-      bPtr = 0 ;
-  }
-
-
-  return 0 ;
-}
diff --git a/examples/PiFace/Makefile b/examples/PiFace/Makefile
deleted file mode 100644
index f937c14..0000000
--- a/examples/PiFace/Makefile
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# Makefile:
-#	wiringPi - A "wiring" library for the Raspberry Pi
-#	https://projects.drogon.net/wiring-pi
-#
-#	Copyright (c) 2012 Gordon Henderson
-#################################################################################
-# This file is part of wiringPi:
-#	A "wiring" library for the Raspberry Pi
-#
-#    wiringPi is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Lesser General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    wiringPi is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Lesser General Public License for more details.
-#
-#    You should have received a copy of the GNU Lesser General Public License
-#    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
-#################################################################################
-
-ifneq ($V,1)
-Q ?= @
-endif
-
-#DEBUG	= -g -O0
-DEBUG	= -O3
-CC	= gcc
-INCLUDE	= -I/usr/local/include
-CFLAGS	= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS	= -L/usr/local/lib
-LDLIBS    = -lwiringPi -lwiringPiDev -lpthread -lm
-
-# Should not alter anything below this line
-###############################################################################
-
-SRC	=	blink.c buttons.c reaction.c ladder.c metro.c motor.c
-
-OBJ	=	$(SRC:.c=.o)
-
-BINS	=	$(SRC:.c=)
-
-all:	$(BINS)
-
-blink:	blink.o
-	$Q echo [link]
-	$Q $(CC) -o $@ blink.o $(LDFLAGS) $(LDLIBS)
-
-buttons:	buttons.o
-	$Q echo [link]
-	$Q $(CC) -o $@ buttons.o $(LDFLAGS) $(LDLIBS)
-
-reaction:	reaction.o
-	$Q echo [link]
-	$Q $(CC) -o $@ reaction.o $(LDFLAGS) $(LDLIBS)
-
-ladder:	ladder.o
-	$Q echo [link]
-	$Q $(CC) -o $@ ladder.o $(LDFLAGS) $(LDLIBS)
-
-metro:	metro.o
-	$Q echo [link]
-	$Q $(CC) -o $@ metro.o $(LDFLAGS) $(LDLIBS)
-
-motor:	motor.o
-	$Q echo [link]
-	$Q $(CC) -o $@ motor.o $(LDFLAGS) $(LDLIBS)
-
-.c.o:
-	$Q echo [CC] $<
-	$Q $(CC) -c $(CFLAGS) $< -o $@
-
-clean:
-	$Q echo "[Clean]"
-	$Q rm -f $(OBJ) *~ core tags $(BINS)
-
-tags:	$(SRC)
-	$Q echo [ctags]
-	$Q ctags $(SRC)
-
-depend:
-	makedepend -Y $(SRC)
-
-# DO NOT DELETE
diff --git a/examples/PiFace/blink.c b/examples/PiFace/blink.c
deleted file mode 100644
index ffb8a2e..0000000
--- a/examples/PiFace/blink.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * blink.c:
- *	Simple "blink" test for the PiFace interface board.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-
-#include <wiringPi.h>
-#include <piFace.h>
-
-// Use 200 as the pin-base for the PiFace board, and pick a pin
-//	for the LED that's not connected to a relay
-
-#define	PIFACE	200
-#define	LED	(PIFACE+2)
-
-int main (int argc, char *argv [])
-{
-  printf ("Raspberry Pi PiFace Blink\n") ;
-  printf ("=========================\n") ;
-
-// Always initialise wiringPi. Use wiringPiSys() if you don't need
-//	(or want) to run as root
-
-  wiringPiSetupSys () ;
-
-// Setup the PiFace board
-
-  piFaceSetup (PIFACE) ;
-
-  for (;;)
-  {
-    digitalWrite (LED, HIGH) ;	// On
-    delay (500) ;		// mS
-    digitalWrite (LED, LOW) ;	// Off
-    delay (500) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiFace/buttons.c b/examples/PiFace/buttons.c
deleted file mode 100644
index 147a4bd..0000000
--- a/examples/PiFace/buttons.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * buttons.c:
- *	Simple test for the PiFace interface board.
- *
- *	Read the buttons and output the same to the LEDs
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-
-#include <wiringPi.h>
-#include <piFace.h>
-
-int outputs [4] = { 0,0,0,0 } ;
-
-// Use 200 as the pin-base for the PiFace board
-
-#define	PIFACE_BASE	200
-
-
-/*
- * scanButton:
- *	Read the guiven button - if it's pressed, then flip the state
- *	of the correspoinding output pin
- *********************************************************************************
- */
-
-void scanButton (int button)
-{
-  if (digitalRead (PIFACE_BASE + button) == LOW)
-  {
-    outputs [button] ^= 1 ;
-    digitalWrite (PIFACE_BASE + button, outputs [button]) ;
-    printf ("Button %d pushed - output now: %s\n",
-		button, (outputs [button] == 0) ? "Off" : "On") ;
-  }
-
-  while (digitalRead (PIFACE_BASE + button) == LOW)
-    delay (1) ;
-}
-
-
-/*
- * start here
- *********************************************************************************
- */
-
-int main (void)
-{
-  int pin, button ;
-
-  printf ("Raspberry Pi wiringPi + PiFace test program\n") ;
-  printf ("===========================================\n") ;
-  printf ("\n") ;
-  printf (
-"This program reads the buttons and uses them to toggle the first 4\n"
-"outputs. Push a button once to turn an output on, and push it again to\n"
-"turn it off again.\n\n") ;
-
-// Always initialise wiringPi. Use wiringPiSys() if you don't need
-//	(or want) to run as root
-
-  wiringPiSetupSys () ;
-
-  piFaceSetup (PIFACE_BASE) ;
-
-// Enable internal pull-ups & start with all off
-
-  for (pin = 0 ; pin < 8 ; ++pin)
-  {
-    pullUpDnControl (PIFACE_BASE + pin, PUD_UP) ;
-    digitalWrite    (PIFACE_BASE + pin, 0) ;
-  }
-
-// Loop, scanning the buttons
-
-  for (;;)
-  {
-    for (button = 0 ; button < 4 ; ++button)
-      scanButton (button) ;
-    delay (5) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiFace/ladder.c b/examples/PiFace/ladder.c
deleted file mode 100644
index 4f08a6f..0000000
--- a/examples/PiFace/ladder.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * ladder.c:
- *
- *	Gordon Henderson, June 2012
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <math.h>
-
-#include <wiringPi.h>
-#include <piFace.h>
-
-#ifndef	TRUE
-#  define	TRUE	(1==1)
-#  define	FALSE	(1==2)
-#endif
-
-#undef	DEBUG
-
-#define	NUM_LEDS	 8
-
-
-// Map the LEDs to the hardware pins
-//	using PiFace pin numbers here
-
-#define	PIFACE	200
-
-const int ledMap [NUM_LEDS] =
-{
-//  0, 1, 2, 3, 4, 5, 6, 7, 8
-    200, 201, 202, 203, 204, 205, 206, 207
-} ;
-
-
-// Some constants for our circuit simulation
-
-const double vBatt      =      9.0 ;	// Volts (ie. a PP3)
-const double capacitor  =      0.001 ;	// 1000uF
-const double rCharge    =   2200.0 ;	// ohms
-const double rDischarge =  68000.0 ;	// ohms
-const double timeInc    =      0.01 ;	// Seconds
-
-double vCharge, vCap, vCapLast ;
-
-
-
-/*
- * setup:
- *	Program the GPIO correctly and initialise the lamps
- ***********************************************************************
- */
-
-void setup (void)
-{
-  int i ;
-
-  wiringPiSetupSys () ;
-
-  if (piFaceSetup (200) == -1)
-    exit (1) ;
-
-// Enable internal pull-ups
-
-  for (i = 0 ; i < 8 ; ++i)
-    pullUpDnControl (PIFACE + i, PUD_UP) ;
-
-// Calculate the actual charging voltage - standard calculation of
-//	vCharge = r2 / (r1 + r2) * vBatt
-//
-//
-//   -----+--- vBatt
-//        |
-//        R1
-//        |
-//        +---+---- vCharge
-//        |   |
-//        R2  C
-//        |   |
-//   -----+---+-----
-
-  vCharge = rDischarge / (rCharge + rDischarge) * vBatt ;
-
-// Start with no charge
-
-  vCap    = vCapLast = 0.0 ;
-}
-
-
-/*
- * introLeds
- *	Put a little pattern on the LEDs to start with
- *********************************************************************************
- */
-
-void introLeds (void)
-{
-  int i, j ;
-
-
-  printf ("Pi Ladder\n") ;
-  printf ("=========\n\n") ;
-  printf ("       vBatt: %6.2f volts\n", vBatt) ;
-  printf ("     rCharge: %6.0f ohms\n", rCharge) ;
-  printf ("  rDischarge: %6.0f ohms\n", rDischarge) ;
-  printf ("     vCharge: %6.2f volts\n", vCharge) ;
-  printf ("   capacitor: %6.0f uF\n", capacitor * 1000.0) ;
-
-// Flash 3 times:
-
-  for (j = 0 ; j < 3 ; ++j)
-  {
-    for (i = 0 ; i < NUM_LEDS ; ++i)
-      digitalWrite (ledMap [i], 1) ;
-    delay (500) ;
-    for (i = 0 ; i < NUM_LEDS ; ++i)
-      digitalWrite (ledMap [i], 0) ;
-    delay (100) ;
-  }
-
-// All On
-
-  for (i = 0 ; i < NUM_LEDS ; ++i)
-    digitalWrite (ledMap [i], 1) ;
-  delay (500) ;
-
-// Countdown...
-
-  for (i = NUM_LEDS - 1 ; i >= 0 ; --i)
-  {
-    digitalWrite (ledMap [i], 0) ;
-    delay (100) ;
-  }
-  delay (500) ;
-}
-
-
-/*
- * winningLeds
- *	Put a little pattern on the LEDs to start with
- *********************************************************************************
- */
-
-void winningLeds (void)
-{
-  int i, j ;
-
-// Flash 3 times:
-
-  for (j = 0 ; j < 3 ; ++j)
-  {
-    for (i = 0 ; i < NUM_LEDS ; ++i)
-      digitalWrite (ledMap [i], 1) ;
-    delay (500) ;
-    for (i = 0 ; i < NUM_LEDS ; ++i)
-      digitalWrite (ledMap [i], 0) ;
-    delay (100) ;
-  }
-
-// All On
-
-  for (i = 0 ; i < NUM_LEDS ; ++i)
-    digitalWrite (ledMap [i], 1) ;
-  delay (500) ;
-
-// Countup...
-
-  for (i = 0 ; i < NUM_LEDS ; ++i)
-  {
-    digitalWrite (ledMap [i], 0) ;
-    delay (100) ;
-  }
-  delay (500) ;
-}
-
-
-/*
- * chargeCapacitor: dischargeCapacitor:
- *	Add or remove charge to the capacitor.
- *	Standard capacitor formulae.
- *********************************************************************************
- */
-
-void chargeCapacitor (void)
-{
-  vCap = (vCapLast - vCharge) *
-	exp (- timeInc / (rCharge * capacitor)) + vCharge ;
-
-#ifdef	DEBUG
-  printf ("+vCap: %7.4f\n", vCap) ;
-#endif
-
-  vCapLast = vCap ;
-}
-
-void dischargeCapacitor (void)
-{
-  vCap = vCapLast *
-	exp (- timeInc / (rDischarge * capacitor)) ;
-
-#ifdef	DEBUG
-  printf ("-vCap: %7.4f\n", vCap) ;
-#endif
-
-  vCapLast = vCap ;
-}
-
-
-/*
- * ledBargraph:
- *	Output the supplied number as a bargraph on the LEDs
- *********************************************************************************
- */
-
-void ledBargraph (double value, int topLedOn)
-{
-  int topLed = (int)floor (value / vCharge * (double)NUM_LEDS) + 1 ;
-  int i ;
-
-  if (topLed > NUM_LEDS)
-    topLed = NUM_LEDS ;
-
-  if (!topLedOn)
-    --topLed ;
-
-  for (i = 0 ; i < topLed ; ++i)
-    digitalWrite (ledMap [i], 1) ;
-
-  for (i = topLed ; i < NUM_LEDS ; ++i)
-    digitalWrite (ledMap [i], 0) ;
-}
-
-
-/*
- * ledOnAction:
- *	Make sure the leading LED is on and check the button
- *********************************************************************************
- */
-
-void ledOnAction (void)
-{
-  if (digitalRead (PIFACE) == LOW)
-  {
-    chargeCapacitor () ;
-    ledBargraph (vCap, TRUE) ;
-  }
-}
-
-
-/*
- * ledOffAction:
- *	Make sure the leading LED is off and check the button
- *********************************************************************************
- */
-
-void ledOffAction (void)
-{
-  dischargeCapacitor () ;
-
-// Are we still pushing the button?
-
-  if (digitalRead (PIFACE) == LOW)
-  {
-    vCap = vCapLast = 0.0 ;
-    ledBargraph (vCap, FALSE) ;
-
-// Wait until we release the button
-
-    while (digitalRead (PIFACE) == LOW)
-      delay (10) ;
-  }
-}
-
-
-/*
- ***********************************************************************
- * The main program
- ***********************************************************************
- */
-
-int main (void)
-{
-  unsigned int then, ledOnTime, ledOffTime ;
-  unsigned int ourDelay = (int)(1000.0 * timeInc) ;
-  
-  setup     () ;
-  introLeds () ;
-
-// Setup the LED times - TODO reduce the ON time as the game progresses
-
-  ledOnTime  = 1000 ;
-  ledOffTime = 1000 ;
-
-// This is our Gate/Squarewave loop
-
-  for (;;)
-  {
-
-// LED ON:
-
-    (void)ledBargraph (vCap, TRUE) ;
-    then = millis () + ledOnTime ;
-    while (millis () < then)
-    {
-      ledOnAction () ;
-      delay       (ourDelay) ;
-    }
-
-// Have we won yet?
-//	We need vCap to be in the top NUM_LEDS of the vCharge
-
-    if (vCap > ((double)(NUM_LEDS - 1) / (double)NUM_LEDS * vCharge))	// Woo hoo!
-    {
-      winningLeds () ;
-      while (digitalRead (PIFACE) == HIGH)
-	delay (10) ;
-      while (digitalRead (PIFACE) == LOW)
-	delay (10) ;
-      vCap = vCapLast = 0.0 ;
-    }
-
-// LED OFF:
-
-    (void)ledBargraph (vCap, FALSE) ;
-    then = millis () + ledOffTime ;
-    while (millis () < then)
-    {
-      ledOffAction () ;
-      delay        (ourDelay) ;
-    }
-
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiFace/metro.c b/examples/PiFace/metro.c
deleted file mode 100644
index a4a8c1d..0000000
--- a/examples/PiFace/metro.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * metronome.c:
- *	Simple test for the PiFace interface board.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <wiringPi.h>
-#include <piFace.h>
-
-#define	PIFACE	200
-
-/*
- * middleA:
- *	Play middle A (on the relays - yea!)
- *********************************************************************************
- */
-
-static void middleA (void)
-{
-  unsigned int next ;
-
-  for (;;)
-  {
-    next = micros () + 1136 ;
-    digitalWrite (PIFACE + 0, 0)  ;
-    digitalWrite (PIFACE + 1, 0)  ;
-    while (micros () < next)
-      delayMicroseconds (1) ;
-    
-    next = micros () + 1137 ;
-    digitalWrite (PIFACE + 0, 1)  ;
-    digitalWrite (PIFACE + 1, 1)  ;
-    while (micros () < next)
-      delayMicroseconds (1) ;
-    
-  }
-}
-
-
-int main (int argc, char *argv [])
-{
-  int bpm, msPerBeat, state = 0 ;
-  unsigned int end ;
-
-  printf ("Raspberry Pi PiFace Metronome\n") ;
-  printf ("=============================\n") ;
-
-  piHiPri (50) ;
-
-  wiringPiSetupSys () ;	// Needed for timing functions
-  piFaceSetup      (PIFACE) ;
-
-  if (argc != 2)
-  {
-    printf ("Usage: %s <beates per minute>\n", argv [0]) ;
-    exit (1) ;
-  }
-
-  if (strcmp (argv [1], "a") == 0)
-    middleA () ;
-
-  bpm = atoi (argv [1]) ;
-
-  if ((bpm < 40) || (bpm > 208))
-  {
-    printf ("%s range is 40 through 208 beats per minute\n", argv [0]) ;
-    exit (1) ;
-  }
-
-  msPerBeat = 60000 / bpm  ;
-
-// Main loop:
-//	Put some random LED pairs up for a few seconds, then blank ...
-
-  for (;;)
-  {
-    end = millis ()  + msPerBeat ;
-
-    digitalWrite (PIFACE + 0, state)  ;
-    digitalWrite (PIFACE + 1, state)  ;
-
-    while (millis () < end)
-      delayMicroseconds (500) ;
-
-    state ^= 1 ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiFace/motor.c b/examples/PiFace/motor.c
deleted file mode 100644
index 14f5539..0000000
--- a/examples/PiFace/motor.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * motor.c:
- *	Use the PiFace board to demonstrate an H bridge
- *	circuit via the 2 relays.
- *	Then add on an external transsitor to help with PWM.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <wiringPi.h>
-#include <piFace.h>
-#include <softPwm.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-
-int outputs [2] = { 0,0 } ;
-
-#define	PIFACE_BASE	200
-#define PWM_OUT_PIN	204
-#define	PWM_UP		202
-#define	PWM_DOWN	203
-
-void scanButton (int button)
-{
-  if (digitalRead (PIFACE_BASE + button) == LOW)
-  {
-    outputs [button] ^= 1 ;
-    digitalWrite (PIFACE_BASE + button, outputs [button]) ;
-    printf ("Button %d pushed - output now: %s\n",
-		button, (outputs [button] == 0) ? "Off" : "On") ;
-  }
-
-  while (digitalRead (PIFACE_BASE + button) == LOW)
-    delay (1) ;
-}
-
-
-int main (void)
-{
-  int pin, button ;
-  int pwmValue = 0 ;
-
-  printf ("Raspberry Pi PiFace - Motor control\n") ;
-  printf ("==================================\n") ;
-  printf ("\n") ;
-  printf (
-"This program is designed to be used with a motor connected to the relays\n"
-"in an H-Bridge type configuration with optional speeed control via PWM.\n"
-"\n"
-"Use the leftmost buttons to turn each relay on and off, and the rigthmost\n"
-"buttons to increase ot decrease the PWM output on the control pin (pin\n"
-"4)\n\n") ;
-
-  wiringPiSetup () ;
-  piFaceSetup (PIFACE_BASE) ;
-  softPwmCreate (PWM_OUT_PIN, 100, 100) ;
-
-// Enable internal pull-ups & start with all off
-
-  for (pin = 0 ; pin < 8 ; ++pin)
-  {
-    pullUpDnControl (PIFACE_BASE + pin, PUD_UP) ;
-    digitalWrite    (PIFACE_BASE + pin, 0) ;
-  }
-
-  for (;;)
-  {
-    for (button = 0 ; button < 2 ; ++button)
-      scanButton (button) ;
-
-    if (digitalRead (PWM_UP) == LOW)
-    {
-      pwmValue += 10 ;
-      if (pwmValue > 100)
-	pwmValue = 100 ;
-
-      softPwmWrite (PWM_OUT_PIN, pwmValue) ;
-      printf ("PWM -> %3d\n", pwmValue) ;
-
-      while (digitalRead (PWM_UP) == LOW)
-	delay (5) ;
-    }
-
-    if (digitalRead (PWM_DOWN) == LOW)
-    {
-      pwmValue -= 10 ;
-      if (pwmValue < 0)
-	pwmValue = 0 ;
-
-      softPwmWrite (PWM_OUT_PIN, pwmValue) ;
-      printf ("PWM -> %3d\n", pwmValue) ;
-
-      while (digitalRead (PWM_DOWN) == LOW)
-	delay (5) ;
-    }
-
-    delay (5) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiFace/reaction.c b/examples/PiFace/reaction.c
deleted file mode 100644
index 5084508..0000000
--- a/examples/PiFace/reaction.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * reaction.c:
- *	Simple test for the PiFace interface board.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-
-#include <wiringPi.h>
-#include <piFace.h>
-
-
-int outputs [4] = { 0,0,0,0 } ;
-
-#define	PIFACE	200
-
-/*
- * light:
- *	Light up the given LED - actually lights up a pair
- *********************************************************************************
- */
-
-void light (int led, int value)
-{
-  led *= 2 ;
-  digitalWrite (PIFACE + led + 0, value) ;
-  digitalWrite (PIFACE + led + 1, value) ;
-}
-
-/*
- * lightAll:
- *	All On or Off
- *********************************************************************************
- */
-
-void lightAll (int onoff)
-{
-  light (0, onoff) ;
-  light (1, onoff) ;
-  light (2, onoff) ;
-  light (3, onoff) ;
-}
-
-
-/*
- * waitForNoButtons:
- *	Wait for all buttons to be released
- *********************************************************************************
- */
-
-void waitForNoButtons (void)
-{
-  int i, button ;
-
-  for (;;)
-  {
-    button = 0 ;
-    for (i = 0 ; i < 4 ; ++i)
-      button += digitalRead (PIFACE + i) ;
-
-    if (button == 4)
-      break ;
-  }
-}
-
-
-void scanButton (int button)
-{
-  if (digitalRead (PIFACE + button) == LOW)
-  {
-    outputs [button] ^= 1 ;
-    digitalWrite (PIFACE + button, outputs [button]) ;
-  }
-
-  while (digitalRead (PIFACE + button) == LOW)
-    delay (1) ;
-}
-
-
-int main (void)
-{
-  int i, j ;
-  int led, button ;
-  unsigned int start, stop ;
-
-  printf ("Raspberry Pi PiFace Reaction Timer\n") ;
-  printf ("==================================\n") ;
-
-  if (piFaceSetup (PIFACE) == -1)
-    exit (1) ;
-
-// Enable internal pull-ups
-
-  for (i = 0 ; i < 8 ; ++i)
-    pullUpDnControl (PIFACE + i, PUD_UP) ;
-
-
-// Main game loop:
-//	Put some random LED pairs up for a few seconds, then blank ...
-
-  for (;;)
-  {
-    printf ("Press any button to start ... \n") ; fflush (stdout) ;
-
-    for (;;)
-    {
-      led = rand () % 4 ;
-      light (led, 1) ;
-      delay (10) ;
-      light (led, 0) ;
-
-      button = 0 ;
-      for (j = 0 ; j < 4 ; ++j)
-	button += digitalRead (PIFACE + j) ;
-
-      if (button != 4)
-	break ;
-    }
-
-    waitForNoButtons () ;
-
-    printf ("Wait for it ... ") ; fflush (stdout) ;
-
-    led = rand () % 4 ;
-    delay (rand () % 500 + 1000) ;
-    light (led, 1) ;
-
-    start = millis () ;
-    for (button = -1 ; button == -1 ; )
-    {
-      for (j = 0 ; j < 4 ; ++j)
-	if (digitalRead (PIFACE + j) == 0)	// Pushed
-	{
-	  button = j ;
-	  break ;
-	}
-    }
-    stop = millis () ;
-    button = 3 - button ; // Correct for the buttons/LEDs reversed
-
-    light (led, 0) ;
-
-    waitForNoButtons () ;
-
-    light (led, 1) ;
-
-    if (button == led)
-    {
-      printf ("You got it in %3d mS\n", stop - start) ;
-    }
-    else
-    {
-      printf ("Missed: You pushed %d - LED was %d\n", button, led) ;
-      for (;;)
-      {
-	light (button, 1) ;
-	delay (100) ;
-	light (button, 0) ;
-	delay (100) ;
-	i = 0 ;
-	for (j = 0 ; j < 4 ; ++j)
-	  i += digitalRead (PIFACE + j) ;
-	if (i != 4)
-	  break ;
-      }
-
-      waitForNoButtons () ;
-    }
-    light (led, 0) ;
-    delay (4000) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiGlow/Makefile b/examples/PiGlow/Makefile
deleted file mode 100644
index f182db7..0000000
--- a/examples/PiGlow/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-#
-# Makefile:
-#	wiringPi - A "wiring" library for the Raspberry Pi
-#	https://projects.drogon.net/wiring-pi
-#
-#	Copyright (c) 2012-2015 Gordon Henderson
-#################################################################################
-# This file is part of wiringPi:
-#	A "wiring" library for the Raspberry Pi
-#
-#    wiringPi is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Lesser General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    wiringPi is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Lesser General Public License for more details.
-#
-#    You should have received a copy of the GNU Lesser General Public License
-#    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
-#################################################################################
-
-ifneq ($V,1)
-Q ?= @
-endif
-
-#DEBUG	= -g -O0
-DEBUG	= -O3
-CC	= gcc
-INCLUDE	= -I/usr/local/include
-CFLAGS	= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS	= -L/usr/local/lib
-LDLIBS    = -lwiringPi -lwiringPiDev -lpthread -lm
-
-# Should not alter anything below this line
-###############################################################################
-
-SRC	=	piGlow0.c piGlow1.c piglow.c
-
-OBJ	=	$(SRC:.c=.o)
-
-BINS	=	$(SRC:.c=)
-
-all:	$(BINS)
-
-piGlow0:	piGlow0.o
-	$Q echo [link]
-	$Q $(CC) -o $@ piGlow0.o $(LDFLAGS) $(LDLIBS)
-
-piGlow1:	piGlow1.o
-	$Q echo [link]
-	$Q $(CC) -o $@ piGlow1.o $(LDFLAGS) $(LDLIBS)
-
-piglow:	piglow.o
-	$Q echo [link]
-	$Q $(CC) -o $@ piglow.o $(LDFLAGS) $(LDLIBS)
-
-.c.o:
-	$Q echo [CC] $<
-	$Q $(CC) -c $(CFLAGS) $< -o $@
-
-clean:
-	$Q echo "[Clean]"
-	$Q rm -f $(OBJ) *~ core tags $(BINS)
-
-tags:	$(SRC)
-	$Q echo [ctags]
-	$Q ctags $(SRC)
-
-install:	piglow
-	$Q echo Installing piglow into /usr/local/bin
-	$Q cp -a piglow /usr/local/bin/piglow
-	$Q chmod 755 /usr/local/bin/piglow
-	$Q echo Done. Remember to load the I2C drivers!
-
-depend:
-	makedepend -Y $(SRC)
-
-# DO NOT DELETE
diff --git a/examples/PiGlow/piGlow0.c b/examples/PiGlow/piGlow0.c
deleted file mode 100644
index d3fe4b9..0000000
--- a/examples/PiGlow/piGlow0.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * piglow.c:
- *	Very simple demonstration of the PiGlow board.
- *	This uses the SN3218 directly - soon there will be a new PiGlow
- *	devLib device which will handle the PiGlow board on a more easy
- *	to use manner...
- *
- * Copyright (c) 2013 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <wiringPi.h>
-#include <sn3218.h>
-
-#define	LED_BASE	533
-
-int main (void)
-{
-  int i, j ;
-
-  wiringPiSetupSys () ;
-
-  sn3218Setup (LED_BASE) ;
-
-  for (;;)
-  {
-    for (i = 0 ; i < 256 ; ++i)
-      for (j = 0 ; j < 18 ; ++j)
-	analogWrite (LED_BASE + j, i) ;
-
-    for (i = 255 ; i >= 0 ; --i)
-      for (j = 0 ; j < 18 ; ++j)
-	analogWrite (LED_BASE + j, i) ;
-  }
-}
diff --git a/examples/PiGlow/piGlow1.c b/examples/PiGlow/piGlow1.c
deleted file mode 100644
index a00b31e..0000000
--- a/examples/PiGlow/piGlow1.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * piGlow1.c:
- *	Very simple demonstration of the PiGlow board.
- *	This uses the piGlow devLib.
- *
- * Copyright (c) 2013 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <poll.h>
-
-#include <wiringPi.h>
-#include <piGlow.h>
-
-#define	PIGLOW_BASE	533
-
-#ifndef	TRUE
-#  define TRUE  (1==1)
-#  define FALSE (!TRUE)
-#endif
-
-
-/*
- * keypressed: clearKeypressed:
- *	Simple but effective ways to tell if the enter key has been pressed
- *********************************************************************************
- */
-
-static int keypressed (void)
-{
-  struct pollfd polls ;
-
-  polls.fd     = fileno (stdin) ;
-  polls.events = POLLIN ;
-
-  return poll (&polls, 1, 0) != 0 ;
-}
-
-static void clearKeypressed (void)
-{
-  while (keypressed ())
-    (void)getchar () ;
-}
-
-
-/*
- * pulseLed:
- *	Pulses the LED at position leg, ring from off to a max. value,
- *	then off again
- *********************************************************************************
- */
-
-static void pulseLed (int leg, int ring)
-{
-  int i ;
-
-  for (i = 0 ; i < 140 ; ++i)
-  {
-    piGlow1 (leg, ring, i) ;
-    delay (1) ;
-  }
-  delay (10) ;
-  for (i = 140 ; i >= 0 ; --i)
-  {
-    piGlow1 (leg, ring, i) ;
-    delay (1) ;
-  }
-}
-
-/*
- * pulseLeg:
- *	Same as above, but a whole leg at a time
- *********************************************************************************
- */
-
-static void pulseLeg (int leg)
-{
-  int i ;
-
-  for (i = 0 ; i < 140 ; ++i)
-  {
-    piGlowLeg (leg, i) ; delay (1) ;
-  }
-  delay (10) ;
-  for (i = 140 ; i >= 0 ; --i)
-  {
-    piGlowLeg (leg, i) ; delay (1) ;
-  }
-}
-
-
-/*
- * pulse Ring:
- *	Same as above, but a whole ring at a time
- *********************************************************************************
- */
-
-static void pulseRing (int ring)
-{
-  int i ;
-
-  for (i = 0 ; i < 140 ; ++i)
-  {
-    piGlowRing (ring, i) ; delay (1) ;
-  }
-  delay (10) ;
-  for (i = 140 ; i >= 0 ; --i)
-  {
-    piGlowRing (ring, i) ; delay (1) ;
-  }
-}
-
-#define	LEG_STEPS	3
-
-static int legSequence [] =
-{
-   4, 12, 99,
-  99,  4, 12, 
-  12, 99,  4,
-} ;
-  
-
-#define	RING_STEPS	16
-
-static int ringSequence [] =
-{
-   0,  0,  0,  0,  0, 64,
-   0,  0,  0,  0, 64, 64,
-   0,  0,  0, 64, 64,  0,
-   0,  0, 64, 64,  0,  0,
-   0, 64, 64,  0,  0,  0,
-  64, 64,  0,  0,  0,  0,
-  64,  0,  0,  0,  0,  0,
-   0,  0,  0,  0,  0,  0,
-  64,  0,  0,  0,  0,  0,
-  64, 64,  0,  0,  0,  0,
-   0, 64, 64,  0,  0,  0,
-   0,  0, 64, 64,  0,  0,
-   0,  0,  0, 64, 64,  0,
-   0,  0,  0,  0, 64, 64,
-   0,  0,  0,  0,  0, 64,
-   0,  0,  0,  0,  0,  0,
-} ;
-
-/*
- * main:
- *	Our little demo prgoram
- *********************************************************************************
- */
-
-int main (void)
-{
-  int i ;
-  int step, ring, leg ;
-
-// Always initialise wiringPi:
-//	Use the Sys method if you don't need to run as root
-
-  wiringPiSetupSys () ;
-
-// Initialise the piGlow devLib with our chosen pin base
-
-  piGlowSetup (1) ;
-
-// LEDs, one at a time
-
-  printf ("LEDs, one at a time\n") ;
-  for (; !keypressed () ;)
-    for (leg = 0 ; leg < 3 ; ++leg)
-    {
-      for (ring = 0 ; ring < 6 ; ++ring)
-      {
-	pulseLed (leg, ring) ;
-	if (keypressed ())
-	  break ;
-      }
-      if (keypressed ())
-	break ;
-    }
-  clearKeypressed () ;
-
-// Rings, one at a time
-
-  printf ("Rings, one at a time\n") ;
-  for (; !keypressed () ;)
-    for (ring = 0 ; ring < 6 ; ++ring)
-    {
-      pulseRing (ring) ;
-      if (keypressed ())
-	break ;
-    }
-  clearKeypressed () ;
-
-// Legs, one at a time
-
-  printf ("Legs, one at a time\n") ;
-  for (; !keypressed () ;)
-    for (leg = 0 ; leg < 3 ; ++leg)
-    {
-      pulseLeg (leg) ;
-      if (keypressed ())
-	break ;
-    }
-  clearKeypressed () ;
-
-  delay (1000) ;
-
-// Sequence - alternating rings, legs and random
-
-  printf ("Sequence now\n") ;
-  for (; !keypressed () ;)
-  {
-    for (i = 0 ; i < 20 ; ++i)
-      for (step = 0 ; step < LEG_STEPS ; ++step)
-      {
-	for (leg = 0 ; leg < 3 ; ++leg)
-	  piGlowLeg (leg, legSequence [step * 3 + leg]) ;
-	delay (80) ;
-      }
-
-    for (i = 0 ; i < 10 ; ++i)
-      for (step = 0 ; step < RING_STEPS ; ++step)
-      {
-	for (ring = 0 ; ring < 6 ; ++ring)
-	  piGlowRing (ring, ringSequence [step * 6 + ring]) ;
-	delay (80) ;
-      }
-
-    for (i = 0 ; i < 1000 ; ++i)
-    {
-      leg  = random () % 3 ;
-      ring = random () % 6 ;
-      piGlow1 (leg, ring, random () % 256) ;
-      delay (5) ; 
-      piGlow1 (leg, ring, 0) ;
-    }
-  }
-
-  return 0 ;
-}
diff --git a/examples/PiGlow/piglow.c b/examples/PiGlow/piglow.c
deleted file mode 100644
index e6a2db3..0000000
--- a/examples/PiGlow/piglow.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * piglow.c:
- *	Very simple demonstration of the PiGlow board.
- *	This uses the piGlow devLib.
- *
- * Copyright (c) 2013 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#ifndef	TRUE
-#  define TRUE  (1==1)
-#  define FALSE (!TRUE)
-#endif
-
-#include <wiringPi.h>
-#include <piGlow.h>
-
-static void failUsage (void)
-{
-  fprintf (stderr, "Usage examples:\n") ;
-  fprintf (stderr, "  piglow off         # All off\n") ;
-  fprintf (stderr, "  piglow red 50      # Light the 3 red LEDs to 50%%\n") ;
-  fprintf (stderr, "     colours are: red, yellow, orange, green, blue and white\n") ;
-  fprintf (stderr, "  piglow all 75      # Light all to 75%%\n") ;
-  fprintf (stderr, "  piglow leg 0 25    # Light leg 0 to 25%%\n") ;
-  fprintf (stderr, "  piglow ring 3 100  # Light ring 3 to 100%%\n") ;
-  fprintf (stderr, "  piglow led 2 5 100 # Light the single LED on Leg 2, ring 5 to 100%%\n") ;
-
-  exit (EXIT_FAILURE) ;
-}
-
-static int getPercent (char *typed)
-{
-  int percent ;
-
-  percent = atoi (typed) ;
-  if ((percent < 0) || (percent > 100))
-  {
-    fprintf (stderr, "piglow: percent value out of range\n") ;
-    exit (EXIT_FAILURE) ;
-  }
-  return (percent * 255) / 100 ;
-}
-
-
-/*
- * main:
- *	Our little demo prgoram
- *********************************************************************************
- */
-
-int main (int argc, char *argv [])
-{
-  int percent ;
-  int ring, leg ;
-
-// Always initialise wiringPi:
-//	Use the Sys method if you don't need to run as root
-
-  wiringPiSetupSys () ;
-
-// Initialise the piGlow devLib
-
-  piGlowSetup (FALSE) ;
-
-  if (argc == 1)
-    failUsage () ;
-
-  if ((argc == 2) && (strcasecmp (argv [1], "off") == 0))
-  {
-    for (leg = 0 ; leg < 3 ; ++leg)
-      piGlowLeg (leg, 0) ;
-    return 0 ;
-  }
-
-  if (argc == 3)
-  {
-    percent = getPercent (argv [2]) ;
-
-    /**/ if (strcasecmp (argv [1], "red") == 0)
-      piGlowRing (PIGLOW_RED, percent) ;
-    else if (strcasecmp (argv [1], "yellow") == 0)
-      piGlowRing (PIGLOW_YELLOW, percent) ;
-    else if (strcasecmp (argv [1], "orange") == 0)
-      piGlowRing (PIGLOW_ORANGE, percent) ;
-    else if (strcasecmp (argv [1], "green") == 0)
-      piGlowRing (PIGLOW_GREEN, percent) ;
-    else if (strcasecmp (argv [1], "blue") == 0)
-      piGlowRing (PIGLOW_BLUE, percent) ;
-    else if (strcasecmp (argv [1], "white") == 0)
-      piGlowRing (PIGLOW_WHITE, percent) ;
-    else if (strcasecmp (argv [1], "all") == 0)
-      for (ring = 0 ; ring < 6 ; ++ring)
-	piGlowRing (ring, percent) ;
-    else
-    {
-      fprintf (stderr, "piglow: invalid colour\n") ;
-      exit (EXIT_FAILURE) ;
-    }
-    return 0 ;
-  }
-
-  if (argc == 4)
-  {
-    /**/ if (strcasecmp (argv [1], "leg") == 0)
-    {
-      leg = atoi (argv [2]) ;
-      if ((leg < 0) || (leg > 2))
-      {
-	fprintf (stderr, "piglow: leg value out of range\n") ;
-	exit (EXIT_FAILURE) ;
-      }
-      percent = getPercent (argv [3]) ;
-      piGlowLeg (leg, percent) ;
-    }
-    else if (strcasecmp (argv [1], "ring") == 0)
-    {
-      ring = atoi (argv [2]) ;
-      if ((ring < 0) || (ring > 5))
-      {
-	fprintf (stderr, "piglow: ring value out of range\n") ;
-	exit (EXIT_FAILURE) ;
-      }
-      percent = getPercent (argv [3]) ;
-      piGlowRing (ring, percent) ;
-    }
-    return 0 ;
-  }
-
-  if (argc == 5)
-  {
-    if (strcasecmp (argv [1], "led") != 0)
-      failUsage () ;
-
-    leg = atoi (argv [2]) ;
-    if ((leg < 0) || (leg > 2))
-    {
-      fprintf (stderr, "piglow: leg value out of range\n") ;
-      exit (EXIT_FAILURE) ;
-    }
-    ring = atoi (argv [3]) ;
-    if ((ring < 0) || (ring > 5))
-    {
-      fprintf (stderr, "piglow: ring value out of range\n") ;
-      exit (EXIT_FAILURE) ;
-    }
-    percent = getPercent (argv [4]) ;
-    piGlow1 (leg, ring, percent) ;
-    return 0 ;
-  }
-
-  failUsage () ;
-  return 0 ; 
-}
-
-
diff --git a/examples/q2w/blink.c b/examples/blink-thread.c
similarity index 72%
rename from examples/q2w/blink.c
rename to examples/blink-thread.c
index 62b694a..a53fbf3 100644
--- a/examples/q2w/blink.c
+++ b/examples/blink-thread.c
@@ -1,6 +1,7 @@
 /*
- * blink.c:
- *	Simple "blink" test for the Quick2Wire interface board.
+ * blink-thread.c:
+ *	Standard "blink" program in wiringPi. Blinks an LED connected
+ *	to the first GPIO pin.
  *
  * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
  ***********************************************************************
@@ -25,25 +26,35 @@
 #include <stdio.h>
 #include <wiringPi.h>
 
-#define	LED	1
+// LED Pin - wiringPi pin 0 is BCM_GPIO 17.
+
+#define	LED	0
+
+PI_THREAD (blinky)
+{
+  for (;;)
+  {
+    digitalWrite (LED, HIGH) ;	// On
+    delay (500) ;		// mS
+    digitalWrite (LED, LOW) ;	// Off
+    delay (500) ;
+  }
+}
+
 
 int main (void)
 {
-
-// Enable the on-goard GPIO
+  printf ("Raspberry Pi blink\n") ;
 
   wiringPiSetup () ;
-
-  printf ("Raspberry Pi - Quick2Wire Mainboard LED Blink Test\n") ;
-
   pinMode (LED, OUTPUT) ;
 
+  piThreadCreate (blinky) ;
+
   for (;;)
   {
-    digitalWrite (LED, HIGH) ;
-    delay (500) ;
-    digitalWrite (LED, LOW) ;
-    delay (500) ;
+    printf ("Hello, world\n") ;
+    delay (600) ;
   }
 
   return 0 ;
diff --git a/examples/blink12drcs.c b/examples/blink12drcs.c
deleted file mode 100644
index 6ee11fd..0000000
--- a/examples/blink12drcs.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * blink12drcs.c:
- *	Simple sequence over the first 12 GPIO pins - LEDs
- *	Aimed at the Gertboard, but it's fairly generic.
- *	This version uses DRC totalk to the ATmega on the Gertboard
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <drcSerial.h>
-
-#define	GERT_BASE	100
-
-static int pinMap [] =
-{
-  0, 1, 2, 3,		// Pi Native
-  GERT_BASE + 2, GERT_BASE + 3, GERT_BASE + 4, GERT_BASE + 5,
-  GERT_BASE + 6, GERT_BASE + 7, GERT_BASE + 8, GERT_BASE + 9,
-} ;
-
-// Simple sequencer data
-//	Triplets of LED, On/Off and delay
-
-
-int data [] =
-{
-               0, 1, 1,
-               1, 1, 1,
-   0, 0, 0,    2, 1, 1,
-   1, 0, 0,    3, 1, 1,
-   2, 0, 0,    4, 1, 1,
-   3, 0, 0,    5, 1, 1,
-   4, 0, 0,    6, 1, 1,
-   5, 0, 0,    7, 1, 1,
-   6, 0, 0,    8, 1, 1,
-   7, 0, 0,    9, 1, 1,
-   8, 0, 0,   10, 1, 1,
-   9, 0, 0,   11, 1, 1,
-  10, 0, 1,
-  11, 0, 1,
-
-  0, 0, 1,	// Extra delay
-
-// Back again
-
-              11, 1, 1,
-              10, 1, 1,
-  11, 0, 0,    9, 1, 1,
-  10, 0, 0,    8, 1, 1,
-   9, 0, 0,    7, 1, 1,
-   8, 0, 0,    6, 1, 1,
-   7, 0, 0,    5, 1, 1,
-   6, 0, 0,    4, 1, 1,
-   5, 0, 0,    3, 1, 1,
-   4, 0, 0,    2, 1, 1,
-   3, 0, 0,    1, 1, 1,
-   2, 0, 0,    0, 1, 1,
-   1, 0, 1,
-   0, 0, 1,
-
-   0, 0, 1,	// Extra delay
-
-   0, 9, 0,	// End marker
-
-} ;
-
-
-int main (void)
-{
-  int pin ;
-  int dataPtr ;
-  int l, s, d ;
-
-  printf ("Raspberry Pi - 12-LED Sequence\n") ;
-  printf ("==============================\n") ;
-  printf ("\n") ;
-  printf ("Connect LEDs up to the first 4 Pi pins and 8 pins on the ATmega\n") ;
-  printf ("    from PD2 through PB1 in that order,\n") ;
-  printf ("  then sit back and watch the show!\n") ;
-
-  wiringPiSetup  () ;
-  drcSetupSerial (GERT_BASE, 20, "/dev/ttyAMA0", 115200) ;
-
-  for (pin = 0 ; pin < 12 ; ++pin)
-    pinMode (pinMap [pin], OUTPUT) ;
-
-  dataPtr = 0 ;
-
-  for (;;)
-  {
-    l = data [dataPtr++] ;	// LED
-    s = data [dataPtr++] ;	// State
-    d = data [dataPtr++] ;	// Duration (10ths)
-
-    if (s == 9)			// 9 -> End Marker
-    {
-      dataPtr = 0 ;
-      continue ;
-    }
-
-    digitalWrite (pinMap [l], s) ;
-    delay        (d * analogRead (GERT_BASE) / 4) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/blink6drcs.c b/examples/blink6drcs.c
deleted file mode 100644
index 32f4921..0000000
--- a/examples/blink6drcs.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * blink6drcs.c:
- *	Simple sequence over 6 pins on a remote DRC board.
- *	Aimed at the Gertduino, but it's fairly generic.
- *	This version uses DRC to talk to the ATmega on the Gertduino
- *
- * Copyright (c) 2012-2014 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <drcSerial.h>
-
-#define	GERT_BASE	100
-
-static int pinMap [] =
-{
-  GERT_BASE + 6, GERT_BASE + 5, GERT_BASE + 3, GERT_BASE + 10, GERT_BASE + 9, GERT_BASE + 13,
-} ;
-
-// Simple sequencer data
-//	Triplets of LED, On/Off and delay
-
-
-int data [] =
-{
-               0, 1, 1,
-               1, 1, 1,
-   0, 0, 0,    2, 1, 1,
-   1, 0, 0,    3, 1, 1,
-   2, 0, 0,    4, 1, 1,
-   3, 0, 0,    5, 1, 1,
-   4, 0, 1,
-   5, 0, 1,
-
-   0, 0, 1,	// Extra delay
-
-// Back again
-
-               5, 1, 1,
-               4, 1, 1,
-   5, 0, 0,    3, 1, 1,
-   4, 0, 0,    2, 1, 1,
-   3, 0, 0,    1, 1, 1,
-   2, 0, 0,    0, 1, 1,
-   1, 0, 1,
-   0, 0, 1,
-
-   0, 0, 1,	// Extra delay
-
-   0, 9, 0,	// End marker
-
-} ;
-
-
-int main (void)
-{
-  int pin ;
-  int dataPtr ;
-  int l, s, d ;
-
-  printf ("Raspberry Pi - 6-LED Sequence\n") ;
-  printf ("=============================\n") ;
-  printf ("\n") ;
-  printf ("  Use the 2 buttons to temporarily speed up the sequence\n") ;
-
-  wiringPiSetupSys  () ;	// Not using the Pi's GPIO here
-  drcSetupSerial (GERT_BASE, 20, "/dev/ttyAMA0", 115200) ;
-
-  for (pin = 0 ; pin < 6 ; ++pin)
-    pinMode (pinMap [pin], OUTPUT) ;
-
-  pinMode (GERT_BASE + 16, INPUT) ;	// Buttons
-  pinMode (GERT_BASE + 17, INPUT) ;
-
-  pullUpDnControl (GERT_BASE + 16, PUD_UP) ;
-  pullUpDnControl (GERT_BASE + 17, PUD_UP) ;
-
-  dataPtr = 0 ;
-
-  for (;;)
-  {
-    l = data [dataPtr++] ;	// LED
-    s = data [dataPtr++] ;	// State
-    d = data [dataPtr++] ;	// Duration (10ths)
-
-    if (s == 9)			// 9 -> End Marker
-    {
-      dataPtr = 0 ;
-      continue ;
-    }
-
-    digitalWrite (pinMap [l], s) ;
-    delay        (d * digitalRead (GERT_BASE + 16) * 15 + digitalRead (GERT_BASE + 17) * 20) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/blink8-drcn.c b/examples/blink8-drcn.c
deleted file mode 100644
index 96c775b..0000000
--- a/examples/blink8-drcn.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * blink8-drcn.c:
- *	Simple sequence over the first 8 GPIO pins - LEDs
- *	Aimed at the Ladder board, but it's fairly generic.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <drcNet.h>
-
-int main (void)
-{
-  int i, led ;
-
-  printf ("Raspberry Pi - 8-LED Sequencer\n") ;
-  printf ("==============================\n") ;
-  printf ("\n") ;
-  printf ("Connect LEDs to the first 8 GPIO pins and watch ...\n") ;
-
-  int pinBase = 100 ;
-
-//  wiringPiSetup () ;
-  drcSetupNet (pinBase, 100, "192.168.254.21", "6124", "123456") ;
-
-  for (i = 0 ; i < 8 ; ++i)
-    pinMode (i + pinBase, OUTPUT) ;
-
-  for (;;)
-  {
-    for (led = 0 ; led < 8 ; ++led)
-    {
-      digitalWrite (led + pinBase, 1) ;
-      delay (10) ;
-    }
-
-    for (led = 0 ; led < 8 ; ++led)
-    {
-      digitalWrite (led + pinBase, 0) ;
-      delay (10) ;
-    }
-  }
-}
diff --git a/examples/delayTest.c b/examples/delayTest.c
index 4c8b6ca..d772cf9 100644
--- a/examples/delayTest.c
+++ b/examples/delayTest.c
@@ -25,7 +25,6 @@
 
 #include <stdio.h>
 #include <unistd.h>
-#include <wiringPi.h>
 
 #include <sys/time.h>
 
@@ -34,17 +33,13 @@
 int main()
 {
   int x ;
-  struct timeval t1, t2 ;
+  struct timeval t1, t2, t3 ;
   int t ;
   int max, min ;
   int del ;
-  int underRuns, overRuns, exactRuns, total ;
+  int underRuns, overRuns, exactRuns, bogusRuns, total ;
   int descheds ;
 
-  if (wiringPiSetup () == -1)
-    return 1 ;
-
-  piHiPri (10) ; sleep (1) ;
 
 // Baseline test
 
@@ -58,21 +53,22 @@
   {
     underRuns = overRuns = exactRuns = total = 0 ;
     descheds = 0 ;
-    max = del ;
-    min = del ;
+    max =   0 ;
+    min = 999 ;
 
     for (x = 0 ; x < CYCLES ; ++x)
     {
       for (;;)				// Repeat this if we get a delay over 999uS
       {					// -> High probability Linux has deschedulled us
 	gettimeofday (&t1, NULL) ;
-	  delayMicroseconds (del) ;
+	  usleep (del) ;
+//          delayMicroseconds (del) ;
 	gettimeofday (&t2, NULL) ;
 
-	if (t2.tv_usec < t1.tv_usec)	// Counter wrapped
-	  t = (1000000 + t2.tv_usec) - t1.tv_usec;
-	else
-	  t = t2.tv_usec - t1.tv_usec ;
+	timersub (&t2, &t1, &t3) ;
+
+	t = t3.tv_usec ;
+
 	if (t > 999)
 	{
 	  ++descheds ;
@@ -82,25 +78,24 @@
 	  break ;
       }
 
-      if (t > max)
-      {
-        max = t ;
-	++overRuns ;
-      }
-      else if (t < min)
-      {
-	min = t ;
-	++underRuns ;
-      }
-      else
+      if (t == del)
 	++exactRuns ;
+      else if (t < del)
+	++underRuns ;
+      else if (t > del)
+	++overRuns ;
+
+      if (t > max)
+        max = t ;
+      else if (t < min)
+	min = t ;
 
       total += t ;
     }
     printf ("Delay: %3d. Min: %3d, Max: %3d, Unders: %3d, Overs: %3d, Exacts: %3d, Average: %3d,  Descheds: %2d\n",
 	del, min, max, underRuns, overRuns, exactRuns, total / CYCLES,  descheds) ;
     fflush (stdout) ;
-    delay (1) ;
+    usleep (1000) ;
   }
 
   return 0 ;
diff --git a/examples/ds1302.c b/examples/ds1302.c
deleted file mode 100644
index f1e9e20..0000000
--- a/examples/ds1302.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * ds1302.c:
- *	Real Time clock
- *
- * Copyright (c) 2013 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <time.h>
-
-#include <wiringPi.h>
-#include <ds1302.h>
-
-// Register defines
-
-#define	RTC_SECS	 0
-#define	RTC_MINS	 1
-#define	RTC_HOURS	 2
-#define	RTC_DATE	 3
-#define	RTC_MONTH	 4
-#define	RTC_DAY		 5
-#define	RTC_YEAR	 6
-#define	RTC_WP		 7
-#define	RTC_TC		 8
-#define	RTC_BM		31
-
-
-static unsigned int masks [] = { 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x07, 0xFF } ;
-
-
-/*
- * bcdToD: dToBCD:
- *	BCD decode/encode
- *********************************************************************************
- */
-
-static int bcdToD (unsigned int byte, unsigned int mask)
-{
-  unsigned int b1, b2 ;
-  byte &= mask ;
-  b1 = byte & 0x0F ;
-  b2 = ((byte >> 4) & 0x0F) * 10 ;
-  return b1 + b2 ;
-}
-
-static unsigned int dToBcd (unsigned int byte)
-{
-  return ((byte / 10) << 4) + (byte % 10) ;
-}
-
-
-/*
- * ramTest:
- *	Simple test of the 31 bytes of RAM inside the DS1302 chip
- *********************************************************************************
- */
-
-static int ramTestValues [] =
-  { 0x00, 0xFF, 0xAA, 0x55, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0xF0, 0x0F, -1 } ;
-
-static int ramTest (void)
-{
-  int addr ;
-  int got ;
-  int i = 0 ;
-  int errors = 0 ;
-  int testVal ;
-
-  printf ("DS1302 RAM TEST\n") ;
-
-  testVal = ramTestValues [i] ;
-
-  while (testVal != -1)
-  {
-    for (addr = 0 ; addr < 31 ; ++addr)
-      ds1302ramWrite (addr, testVal) ;
-
-    for (addr = 0 ; addr < 31 ; ++addr)
-      if ((got = ds1302ramRead (addr)) != testVal)
-      {
-	printf ("DS1302 RAM Failure: Address: %2d, Expected: 0x%02X, Got: 0x%02X\n",
-		addr, testVal, got) ;
-	++errors ;
-      }
-    testVal = ramTestValues [++i] ;
-  }
-
-  for (addr = 0 ; addr < 31 ; ++addr)
-    ds1302ramWrite (addr, addr) ;
-
-  for (addr = 0 ; addr < 31 ; ++addr)
-    if ((got = ds1302ramRead (addr)) != addr)
-    {
-      printf ("DS1302 RAM Failure: Address: %2d, Expected: 0x%02X, Got: 0x%02X\n",
-	      addr, addr, got) ;
-      ++errors ;
-    }
-
-  if (errors == 0)
-    printf ("-- DS1302 RAM TEST: OK\n") ;
-  else
-    printf ("-- DS1302 RAM TEST FAILURE. %d errors.\n", errors) ;
-
-  return 0 ;
-}
-
-/*
- * setLinuxClock:
- *	Set the Linux clock from the hardware
- *********************************************************************************
- */
-
-static int setLinuxClock (void)
-{
-  char dateTime [20] ;
-  char command [64] ;
-  int  clock [8] ;
-
-
-  printf ("Setting the Linux Clock from the DS1302... ") ; fflush (stdout) ;
-
-  ds1302clockRead (clock) ;
-
-// [MMDDhhmm[[CC]YY][.ss]]
-
-  sprintf (dateTime, "%02d%02d%02d%02d%02d%02d.%02d",
-	bcdToD (clock [RTC_MONTH], masks [RTC_MONTH]),
-	bcdToD (clock [RTC_DATE],  masks [RTC_DATE]),
-	bcdToD (clock [RTC_HOURS], masks [RTC_HOURS]),
-	bcdToD (clock [RTC_MINS],  masks [RTC_MINS]),
-	20,
-	bcdToD (clock [RTC_YEAR],  masks [RTC_YEAR]),
-	bcdToD (clock [RTC_SECS],  masks [RTC_SECS])) ;
-
-  sprintf (command, "/bin/date %s", dateTime) ;
-  system (command) ;
-
-  return 0 ;
-}
-
-
-/*
- * setDSclock:
- *	Set the DS1302 block from Linux time
- *********************************************************************************
- */
-
-static int setDSclock (void)
-{
-  struct tm t ;
-  time_t now ;
-  int clock [8] ;
-
-  printf ("Setting the clock in the DS1302 from Linux time... ") ;
-
-  now = time (NULL) ;
-  gmtime_r (&now, &t) ;
-
-  clock [ 0] = dToBcd (t.tm_sec) ;	// seconds
-  clock [ 1] = dToBcd (t.tm_min) ;	// mins
-  clock [ 2] = dToBcd (t.tm_hour) ;	// hours
-  clock [ 3] = dToBcd (t.tm_mday) ;	// date
-  clock [ 4] = dToBcd (t.tm_mon + 1) ;	// months 0-11 --> 1-12
-  clock [ 5] = dToBcd (t.tm_wday + 1) ;	// weekdays (sun 0)
-  clock [ 6] = dToBcd (t.tm_year - 100) ;       // years
-  clock [ 7] = 0 ;			// W-Protect off
-
-  ds1302clockWrite (clock) ;
-
-  printf ("OK\n") ;
-
-  return 0 ;
-}
-
-
-
-
-int main (int argc, char *argv [])
-{
-  int i ;
-  int clock [8] ;
-
-  wiringPiSetup () ;
-  ds1302setup   (0, 1, 2) ;
-
-  if (argc == 2)
-  {
-    /**/ if (strcmp (argv [1], "-slc") == 0)
-      return setLinuxClock () ;
-    else if (strcmp (argv [1], "-sdsc") == 0)
-      return setDSclock () ;
-    else if (strcmp (argv [1], "-rtest") == 0)
-      return ramTest () ;
-    else
-    {
-      printf ("Usage: ds1302 [-slc | -sdsc | -rtest]\n") ;
-      return EXIT_FAILURE ;
-    }
-  }
-
-  for (i = 0 ;; ++i)
-  {
-    printf ("%5d:  ", i) ;
-
-    ds1302clockRead (clock) ;
-    printf (" %2d:%02d:%02d",
-	bcdToD (clock [2], masks [2]), bcdToD (clock [1], masks [1]), bcdToD (clock [0], masks [0])) ;
-
-    printf (" %2d/%02d/%04d",
-	bcdToD (clock [3], masks [3]), bcdToD (clock [4], masks [4]), bcdToD (clock [6], masks [6]) + 2000) ;
-      
-    printf ("\n") ;
-
-    delay (200) ;
-  }
- 
-  return 0 ;
-}
diff --git a/examples/lcd-adafruit.c b/examples/lcd-adafruit.c
deleted file mode 100644
index 47c9b9b..0000000
--- a/examples/lcd-adafruit.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * lcd-adafruit.c:
- *	Text-based LCD driver test code
- *	This is designed to drive the Adafruit RGB LCD Plate
- *	with the additional 5 buttons for the Raspberry Pi
- *
- * Copyright (c) 2012-2013 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <time.h>
-
-#include <wiringPi.h>
-#include <mcp23017.h>
-#include <lcd.h>
-
-#ifndef	TRUE
-#  define	TRUE	(1==1)
-#  define	FALSE	(1==2)
-#endif
-
-
-// Defines for the Adafruit Pi LCD interface board
-
-#define	AF_BASE		100
-#define	AF_RED		(AF_BASE + 6)
-#define	AF_GREEN	(AF_BASE + 7)
-#define	AF_BLUE		(AF_BASE + 8)
-
-#define	AF_E		(AF_BASE + 13)
-#define	AF_RW		(AF_BASE + 14)
-#define	AF_RS		(AF_BASE + 15)
-
-#define	AF_DB4		(AF_BASE + 12)
-#define	AF_DB5		(AF_BASE + 11)
-#define	AF_DB6		(AF_BASE + 10)
-#define	AF_DB7		(AF_BASE +  9)
-
-#define	AF_SELECT	(AF_BASE +  0)
-#define	AF_RIGHT	(AF_BASE +  1)
-#define	AF_DOWN		(AF_BASE +  2)
-#define	AF_UP		(AF_BASE +  3)
-#define	AF_LEFT		(AF_BASE +  4)
-
-
-// User-Defined character test
-
-static unsigned char newChar [8] = 
-{
-  0b00100,
-  0b00100,
-  0b00000,
-  0b00100,
-  0b01110,
-  0b11011,
-  0b11011,
-  0b10001,
-} ;
-
-// Global lcd handle:
-
-static int lcdHandle ;
-
-/*
- * usage:
- *********************************************************************************
- */
-
-int usage (const char *progName)
-{
-  fprintf (stderr, "Usage: %s colour\n", progName) ;
-  return EXIT_FAILURE ;
-}
-
-
-/*
- * scrollMessage:
- *********************************************************************************
- */
-
-static const char *message =
-  "                    "
-  "Wiring Pi by Gordon Henderson. HTTP://WIRINGPI.COM/"
-  "                    " ;
-
-void scrollMessage (int line, int width)
-{
-  char buf [32] ;
-  static int position = 0 ;
-  static int timer = 0 ;
-
-  if (millis () < timer)
-    return ;
-
-  timer = millis () + 200 ;
-
-  strncpy (buf, &message [position], width) ;
-  buf [width] = 0 ;
-  lcdPosition (lcdHandle, 0, line) ;
-  lcdPuts (lcdHandle, buf) ;
-
-  if (++position == (strlen (message) - width))
-    position = 0 ;
-}
-
-
-/*
- * setBacklightColour:
- *	The colour outputs are inverted.
- *********************************************************************************
- */
-
-static void setBacklightColour (int colour)
-{
-  colour &= 7 ;
-
-  digitalWrite (AF_RED,   !(colour & 1)) ;
-  digitalWrite (AF_GREEN, !(colour & 2)) ;
-  digitalWrite (AF_BLUE,  !(colour & 4)) ;
-}
-
-
-/*
- * adafruitLCDSetup:
- *	Setup the Adafruit board by making sure the additional pins are
- *	set to the correct modes, etc.
- *********************************************************************************
- */
-
-static void adafruitLCDSetup (int colour)
-{
-  int i ;
-
-//	Backlight LEDs
-
-  pinMode (AF_RED,   OUTPUT) ;
-  pinMode (AF_GREEN, OUTPUT) ;
-  pinMode (AF_BLUE,  OUTPUT) ;
-  setBacklightColour (colour) ;
-
-//	Input buttons
-
-  for (i = 0 ; i <= 4 ; ++i)
-  {
-    pinMode (AF_BASE + i, INPUT) ;
-    pullUpDnControl (AF_BASE + i, PUD_UP) ;	// Enable pull-ups, switches close to 0v
-  }
-
-// Control signals
-
-  pinMode (AF_RW, OUTPUT) ; digitalWrite (AF_RW, LOW) ;	// Not used with wiringPi - always in write mode
-
-// The other control pins are initialised with lcdInit ()
-
-  lcdHandle = lcdInit (2, 16, 4, AF_RS, AF_E, AF_DB4,AF_DB5,AF_DB6,AF_DB7, 0,0,0,0) ;
-
-  if (lcdHandle < 0)
-  {
-    fprintf (stderr, "lcdInit failed\n") ;
-    exit (EXIT_FAILURE) ;
-  }
-}
-
-
-/*
- * waitForEnter:
- *	On the Adafruit display, wait for the select button
- *********************************************************************************
- */
-
-static void waitForEnter (void)
-{
-  printf ("Press SELECT to continue: ") ; fflush (stdout) ;
-
-  while (digitalRead (AF_SELECT) == HIGH)	// Wait for push
-    delay (1) ;
-
-  while (digitalRead (AF_SELECT) == LOW)	// Wait for release
-    delay (1) ;
-
-  printf ("OK\n") ;
-}
-
-
-/*
- * speedTest:
- *	Test the update speed of the display
- *********************************************************************************
- */
-
-static void speedTest (void)
-{
-  unsigned int start, end, taken ;
-  int times ;
-
-  lcdClear (lcdHandle) ;
-  start = millis () ;
-  for (times = 0 ; times < 10 ; ++times)
-  {
-    lcdPuts (lcdHandle, "0123456789ABCDEF") ;
-    lcdPuts (lcdHandle, "0123456789ABCDEF") ;
-  }
-  end   = millis () ;
-  taken = (end - start) / 10;
-
-  lcdClear (lcdHandle) ;
-  lcdPosition (lcdHandle, 0, 0) ; lcdPrintf (lcdHandle, "Speed: %dmS", taken) ;
-  lcdPosition (lcdHandle, 0, 1) ; lcdPrintf (lcdHandle, "For full update") ;
-
-  waitForEnter () ;
-
-  lcdClear (lcdHandle) ;
-  lcdPosition (lcdHandle, 0, 0) ; lcdPrintf (lcdHandle, "Time: %dmS", taken / 32) ;
-  lcdPosition (lcdHandle, 0, 1) ; lcdPrintf (lcdHandle, "Per character") ;
-
-  waitForEnter () ;
-
-  lcdClear (lcdHandle) ;
-  lcdPosition (lcdHandle, 0, 0) ; lcdPrintf (lcdHandle, "%d cps...", 32000 / taken) ;
-
-  waitForEnter () ;
-}
-
-
-/*
- * The works
- *********************************************************************************
- */
-
-int main (int argc, char *argv[])
-{
-  int colour ;
-  int cols = 16 ;
-  int waitForRelease = FALSE ;
-
-  struct tm *t ;
-  time_t tim ;
-
-  char buf [32] ;
-
-  if (argc != 2)
-    return usage (argv [0]) ;
-
-  printf ("Raspberry Pi Adafruit LCD test\n") ;
-  printf ("==============================\n") ;
-
-  colour = atoi (argv [1]) ;
-
-  wiringPiSetupSys () ;
-  mcp23017Setup (AF_BASE, 0x20) ;
-
-  adafruitLCDSetup (colour) ;
-
-  lcdPosition (lcdHandle, 0, 0) ; lcdPuts (lcdHandle, "Gordon Henderson") ;
-  lcdPosition (lcdHandle, 0, 1) ; lcdPuts (lcdHandle, "  wiringpi.com  ") ;
-
-  waitForEnter () ;
-
-  lcdPosition (lcdHandle, 0, 1) ; lcdPuts (lcdHandle, "Adafruit RGB LCD") ;
-
-  waitForEnter () ;
-
-  lcdCharDef  (lcdHandle, 2, newChar) ;
-
-  lcdClear    (lcdHandle) ;
-  lcdPosition (lcdHandle, 0, 0) ;
-  lcdPuts     (lcdHandle, "User Char: ") ;
-  lcdPutchar  (lcdHandle, 2) ;
-
-  lcdCursor      (lcdHandle, TRUE) ;
-  lcdCursorBlink (lcdHandle, TRUE) ;
-
-  waitForEnter () ;
-
-  lcdCursor      (lcdHandle, FALSE) ;
-  lcdCursorBlink (lcdHandle, FALSE) ;
-
-  speedTest () ;
-
-  lcdClear (lcdHandle) ;
-
-  for (;;)
-  {
-    scrollMessage (0, cols) ;
-    
-    tim = time (NULL) ;
-    t = localtime (&tim) ;
-
-    sprintf (buf, "%02d:%02d:%02d", t->tm_hour, t->tm_min, t->tm_sec) ;
-
-    lcdPosition (lcdHandle, (cols - 8) / 2, 1) ;
-    lcdPuts     (lcdHandle, buf) ;
-
-// Check buttons to cycle colour
-
-// If Up or Down are still pushed, then skip
-
-    if (waitForRelease)
-    {
-      if ((digitalRead (AF_UP) == LOW) || (digitalRead (AF_DOWN) == LOW))
-	continue ;
-      else
-	waitForRelease = FALSE ;
-    }
-
-    if (digitalRead (AF_UP) == LOW)	// Pushed
-    {
-      colour = colour + 1 ;
-      if (colour == 8)
-	colour = 0 ;
-      setBacklightColour (colour) ;
-      waitForRelease = TRUE ;
-    }
-
-    if (digitalRead (AF_DOWN) == LOW)	// Pushed
-    {
-      colour = colour - 1 ;
-      if (colour == -1)
-	colour = 7 ;
-      setBacklightColour (colour) ;
-      waitForRelease = TRUE ;
-    }
-
-  }
-
-  return 0 ;
-}
diff --git a/examples/lcd.c b/examples/lcd.c
deleted file mode 100644
index 510f562..0000000
--- a/examples/lcd.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * lcd.c:
- *	Text-based LCD driver.
- *	This is designed to drive the parallel interface LCD drivers
- *	based in the Hitachi HD44780U controller and compatables.
- *
- *	This test program assumes the following:
- *
- *	8-bit displays:
- *		GPIO 0-7 is connected to display data pins 0-7.
- *		GPIO 11 is the RS pin.
- *		GPIO 10 is the Strobe/E pin.
- *
- *	For 4-bit interface:
- *		GPIO 4-7 is connected to display data pins 4-7.
- *		GPIO 11 is the RS pin.
- *		GPIO 10 is the Strobe/E pin.
- *
- * Copyright (c) 2012-2013 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <time.h>
-
-#include <wiringPi.h>
-#include <lcd.h>
-
-#ifndef	TRUE
-#  define	TRUE	(1==1)
-#  define	FALSE	(1==2)
-#endif
-
-static unsigned char newChar [8] = 
-{
-  0b11111,
-  0b10001,
-  0b10001,
-  0b10101,
-  0b11111,
-  0b10001,
-  0b10001,
-  0b11111,
-} ;
-
-
-// Global lcd handle:
-
-static int lcdHandle ;
-
-/*
- * usage:
- *********************************************************************************
- */
-
-int usage (const char *progName)
-{
-  fprintf (stderr, "Usage: %s bits cols rows\n", progName) ;
-  return EXIT_FAILURE ;
-}
-
-
-/*
- * scrollMessage:
- *********************************************************************************
- */
-
-static const char *message =
-  "                    "
-  "Wiring Pi by Gordon Henderson. HTTP://WIRINGPI.COM/"
-  "                    " ;
-
-void scrollMessage (int line, int width)
-{
-  char buf [32] ;
-  static int position = 0 ;
-  static int timer = 0 ;
-
-  if (millis () < timer)
-    return ;
-
-  timer = millis () + 200 ;
-
-  strncpy (buf, &message [position], width) ;
-  buf [width] = 0 ;
-  lcdPosition (lcdHandle, 0, line) ;
-  lcdPuts     (lcdHandle, buf) ;
-
-  if (++position == (strlen (message) - width))
-    position = 0 ;
-}
-
-
-/*
- * pingPong:
- *	Bounce a character - only on 4-line displays
- *********************************************************************************
- */
-
-static void pingPong (int lcd, int cols)
-{
-  static int position = 0 ;
-  static int dir      = 0 ;
-
-  if (dir == 0)		// Setup
-  {
-    dir = 1 ;
-    lcdPosition (lcdHandle, 0, 3) ;
-    lcdPutchar  (lcdHandle, '*') ;
-    return ;
-  }
-
-  lcdPosition (lcdHandle, position, 3) ;
-  lcdPutchar (lcdHandle, ' ') ;
-  position += dir ;
-
-  if (position == cols)
-  {
-    dir = -1 ;
-    --position ;
-  }
-  
-  if (position < 0)
-  {
-    dir = 1 ;
-    ++position ;
-  }
-
-  lcdPosition (lcdHandle, position, 3) ;
-  lcdPutchar  (lcdHandle, '#') ;
-}
-
-
-/*
- * waitForEnter:
- *********************************************************************************
- */
-
-static void waitForEnter (void)
-{
-  printf ("Press ENTER to continue: ") ;
-  (void)fgetc (stdin) ;
-}
-
-
-/*
- * The works
- *********************************************************************************
- */
-
-int main (int argc, char *argv[])
-{
-  int i ;
-  int lcd ;
-  int bits, rows, cols ;
-
-  struct tm *t ;
-  time_t tim ;
-
-  char buf [32] ;
-
-  if (argc != 4)
-    return usage (argv [0]) ;
-
-  printf ("Raspberry Pi LCD test\n") ;
-  printf ("=====================\n") ;
-
-  bits = atoi (argv [1]) ;
-  cols = atoi (argv [2]) ;
-  rows = atoi (argv [3]) ;
-
-  if (!((rows == 1) || (rows == 2) || (rows == 4)))
-  {
-    fprintf (stderr, "%s: rows must be 1, 2 or 4\n", argv [0]) ;
-    return EXIT_FAILURE ;
-  }
-
-  if (!((cols == 16) || (cols == 20)))
-  {
-    fprintf (stderr, "%s: cols must be 16 or 20\n", argv [0]) ;
-    return EXIT_FAILURE ;
-  }
-
-  wiringPiSetup () ;
-
-  if (bits == 4)
-    lcdHandle = lcdInit (rows, cols, 4, 11,10, 4,5,6,7,0,0,0,0) ;
-  else
-    lcdHandle = lcdInit (rows, cols, 8, 11,10, 0,1,2,3,4,5,6,7) ;
-
-  if (lcdHandle < 0)
-  {
-    fprintf (stderr, "%s: lcdInit failed\n", argv [0]) ;
-    return -1 ;
-  }
-
-  lcdPosition (lcdHandle, 0, 0) ; lcdPuts (lcdHandle, "Gordon Henderson") ;
-  lcdPosition (lcdHandle, 0, 1) ; lcdPuts (lcdHandle, "  wiringpi.com  ") ;
-
-  waitForEnter () ;
-
-  if (rows > 1)
-  {
-    lcdPosition (lcdHandle, 0, 1) ; lcdPuts (lcdHandle, "  wiringpi.com  ") ;
-
-    if (rows == 4)
-    {
-      lcdPosition (lcdHandle, 0, 2) ;
-      for (i = 0 ; i < ((cols - 1) / 2) ; ++i)
-        lcdPuts (lcdHandle, "=-") ;
-      lcdPuts (lcdHandle, "=3") ;
-
-      lcdPosition (lcdHandle, 0, 3) ;
-      for (i = 0 ; i < ((cols - 1) / 2) ; ++i)
-        lcdPuts (lcdHandle, "-=") ;
-      lcdPuts (lcdHandle, "-4") ;
-    }
-  }
-
-  waitForEnter () ;
-
-  lcdCharDef  (lcdHandle, 2, newChar) ;
-
-  lcdClear    (lcdHandle) ;
-  lcdPosition (lcdHandle, 0, 0) ;
-  lcdPuts     (lcdHandle, "User Char: ") ;
-  lcdPutchar  (lcdHandle, 2) ;
-
-  lcdCursor      (lcdHandle, TRUE) ;
-  lcdCursorBlink (lcdHandle, TRUE) ;
-
-  waitForEnter () ;
-
-  lcdCursor      (lcdHandle, FALSE) ;
-  lcdCursorBlink (lcdHandle, FALSE) ;
-  lcdClear       (lcdHandle) ;
-
-  for (;;)
-  {
-    scrollMessage (0, cols) ;
-    
-    if (rows == 1)
-      continue ;
-
-    tim = time (NULL) ;
-    t = localtime (&tim) ;
-
-    sprintf (buf, "%02d:%02d:%02d", t->tm_hour, t->tm_min, t->tm_sec) ;
-
-    lcdPosition (lcdHandle, (cols - 8) / 2, 1) ;
-    lcdPuts     (lcdHandle, buf) ;
-
-    if (rows == 2)
-      continue ;
-
-    sprintf (buf, "%02d/%02d/%04d", t->tm_mday, t->tm_mon + 1, t->tm_year+1900) ;
-
-    lcdPosition (lcdHandle, (cols - 10) / 2, 2) ;
-    lcdPuts     (lcdHandle, buf) ;
-
-    pingPong (lcd, cols) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/max31855.c b/examples/max31855.c
deleted file mode 100644
index 36b3cf6..0000000
--- a/examples/max31855.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * max31855.c:
- *	SPI Thermocouple interface chip
- *
- * Copyright (c) 2015 Gordon Henderson.
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <time.h>
-
-#include <wiringPi.h>
-#include <max31855.h>
-
-int main (int argc, char *argv [])
-{
-  int i = 0 ;
-
-  wiringPiSetup () ;
-  max31855Setup (200, 0) ;
-  max31855Setup (400, 1) ;
-
-  for (;;)
-  {
-    if (i == 0)
-    {
-      printf ("+------+------+------+------++------+------+------+------+\n") ;
-      printf ("| Raw  | Err  |  C   |   F  || Raw  | Err  |  C   |  F   |\n") ;
-      printf ("+------+------+------+------++------+------+------+------+\n") ;
-    }
-
-    printf ("| %4d | %4d | %4d | %4d |",   analogRead (200), analogRead (201), analogRead (202), analogRead (203)) ;
-    printf ("| %4d | %4d | %4d | %4d |\n", analogRead (400), analogRead (401), analogRead (402), analogRead (403)) ;
-    delay (500) ;
-
-    if (++i == 10)
-      i = 0 ;
-
-  }
-
-}
diff --git a/examples/nes.c b/examples/nes.c
deleted file mode 100644
index 31908e8..0000000
--- a/examples/nes.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * nes.c:
- *	Test program for an old NES controller connected to the Pi.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-
-#include <wiringPi.h>
-#include <piNes.h>
-
-#define	BLANK	"|      "
-
-int main ()
-{
-  int joystick ;
-  unsigned int buttons ;
-
-  if (wiringPiSetup () == -1)
-  {
-    fprintf (stdout, "oops: %s\n", strerror (errno)) ;
-    return 1 ;
-  }
-
-  if ((joystick = setupNesJoystick (2, 1, 0)) == -1)
-  {
-    fprintf (stdout, "Unable to setup joystick\n") ;
-    return 1 ;
-  }
-
-  for (;;)
-  {
-    buttons = readNesJoystick (joystick) ;
-
-    if ((buttons & NES_UP)     != 0) printf ("|  UP  " ) ; else printf (BLANK) ;
-    if ((buttons & NES_DOWN)   != 0) printf ("| DOWN " ) ; else printf (BLANK) ;
-    if ((buttons & NES_LEFT)   != 0) printf ("| LEFT " ) ; else printf (BLANK) ;
-    if ((buttons & NES_RIGHT)  != 0) printf ("|RIGHT " ) ; else printf (BLANK) ;
-    if ((buttons & NES_SELECT) != 0) printf ("|SELECT" ) ; else printf (BLANK) ;
-    if ((buttons & NES_START)  != 0) printf ("|START " ) ; else printf (BLANK) ;
-    if ((buttons & NES_A)      != 0) printf ("|  A   " ) ; else printf (BLANK) ;
-    if ((buttons & NES_B)      != 0) printf ("|  B   " ) ; else printf (BLANK) ;
-    printf ("|\n") ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/q2w/Makefile b/examples/q2w/Makefile
deleted file mode 100644
index 8f773bf..0000000
--- a/examples/q2w/Makefile
+++ /dev/null
@@ -1,84 +0,0 @@
-#
-# Makefile:
-#	wiringPi - A "wiring" library for the Raspberry Pi
-#	https://projects.drogon.net/wiring-pi
-#
-#	Copyright (c) 2012-2013 Gordon Henderson
-#################################################################################
-# This file is part of wiringPi:
-#	A "wiring" library for the Raspberry Pi
-#
-#    wiringPi is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Lesser General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    wiringPi is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Lesser General Public License for more details.
-#
-#    You should have received a copy of the GNU Lesser General Public License
-#    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
-#################################################################################
-
-ifneq ($V,1)
-Q ?= @
-endif
-
-#DEBUG	= -g -O0
-DEBUG	= -O3
-CC	= gcc
-INCLUDE	= -I/usr/local/include
-CFLAGS	= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS	= -L/usr/local/lib
-LDLIBS    = -lwiringPi -lwiringPiDev -lpthread -lm
-
-###############################################################################
-
-SRC	=	blink.c button.c blink-io.c volts.c bright.c
-
-OBJ	=	$(SRC:.c=.o)
-
-BINS	=	$(SRC:.c=)
-
-all:	$(BINS)
-
-blink:	blink.o
-	$Q echo [link]
-	$Q $(CC) -o $@ blink.o $(LDFLAGS) $(LDLIBS)
-
-blink-io:	blink-io.o
-	$Q echo [link]
-	$Q $(CC) -o $@ blink-io.o $(LDFLAGS) $(LDLIBS)
-
-button:	button.o
-	$Q echo [link]
-	$Q $(CC) -o $@ button.o $(LDFLAGS) $(LDLIBS)
-
-volts:	volts.o
-	$Q echo [link]
-	$Q $(CC) -o $@ volts.o $(LDFLAGS) $(LDLIBS)
-
-bright:	bright.o
-	$Q echo [link]
-	$Q $(CC) -o $@ bright.o $(LDFLAGS) $(LDLIBS)
-
-
-.c.o:
-	$Q echo [CC] $<
-	$Q $(CC) -c $(CFLAGS) $< -o $@
-
-clean:
-	$Q echo "[Clean]"
-	$Q rm -f $(OBJ) *~ core tags $(BINS)
-
-tags:	$(SRC)
-	$Q echo [ctags]
-	$Q ctags $(SRC)
-
-depend:
-	makedepend -Y $(SRC)
-
-# DO NOT DELETE
diff --git a/examples/q2w/binary.c b/examples/q2w/binary.c
deleted file mode 100644
index 3c987c6..0000000
--- a/examples/q2w/binary.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * binary.c:
- *      Using the Quick 2 wire 16-bit GPIO expansion board to output
- *	a binary counter.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <mcp23017.h>
-
-#define	Q2W_BASE	100
-
-int main (void)
-{
-  int i, bit ;
-
-// Enable the on-goard GPIO
-
-  wiringPiSetup () ;
-
-// Add in the mcp23017 on the q2w board
-
-  mcp23017Setup (Q2W_BASE, 0x20) ;
-
-  printf ("Raspberry Pi - quite2Wire MCP23017 Test\n") ;
-
-// On-board button Input:
-
-  pinMode (0, INPUT) ;
-
-// First 10 pins on q2w board as outputs:
-
-  for (i = 0 ; i < 10 ; ++i)
-    pinMode (Q2W_BASE + i, OUTPUT) ;
-
-// Last pin as an input with the internal pull-up enabled
-
-  pinMode         (Q2W_BASE + 15, INPUT) ;
-  pullUpDnControl (Q2W_BASE + 15, PUD_UP) ;
-
-// Loop, outputting a binary number,
-//	Go faster with the button, or stop if the
-//	on-board button is pushed
-
-  for (;;)
-  {
-    for (i = 0 ; i < 1024 ; ++i)
-    {
-      for (bit = 0 ; bit < 10 ; ++bit)
-        digitalWrite (Q2W_BASE + bit, i & (1 << bit)) ;
-
-      while (digitalRead (0) == HIGH)		// While pushed
-	delay (1) ;
-
-      if (digitalRead (Q2W_BASE + 15) == HIGH)	// Not Pushed
-	delay (100) ;
-    }
-  }
-  return 0 ;
-}
diff --git a/examples/q2w/blink-io.c b/examples/q2w/blink-io.c
deleted file mode 100644
index 4dd4276..0000000
--- a/examples/q2w/blink-io.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * blink-io.c:
- *	Simple "blink" test for the Quick2Wire 16-pin IO board.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <mcp23017.h>
-
-#define	LED		1
-#define	Q2W_BASE	100
-
-int main (void)
-{
-
-// Enable the on-goard GPIO
-
-  wiringPiSetup () ;
-
-// Add in the mcp23017 on the q2w board
-
-  mcp23017Setup (Q2W_BASE, 0x20) ;
-
-  printf ("Raspberry Pi - Quick2Wire MCP23017 Blink Test\n") ;
-
-// Blink the on-board LED as well as one on the mcp23017
-
-  pinMode (LED, OUTPUT) ;
-  pinMode (Q2W_BASE + 0, OUTPUT) ;
-
-  for (;;)
-  {
-    digitalWrite (LED,          HIGH) ;
-    digitalWrite (Q2W_BASE + 0, HIGH) ;
-    delay (500) ;
-    digitalWrite (LED,          LOW) ;
-    digitalWrite (Q2W_BASE + 0, LOW) ;
-    delay (500) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/q2w/blink.sh b/examples/q2w/blink.sh
deleted file mode 100644
index bb6107a..0000000
--- a/examples/q2w/blink.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh -e
-#
-# blink.sh:
-#	Standard "blink" program in wiringPi. Blinks an LED connected
-#	to the LED on the Quick2Wire board
-#
-# Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
-#######################################################################
-# This file is part of wiringPi:
-#	https://projects.drogon.net/raspberry-pi/wiringpi/
-#
-#    wiringPi is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Lesser General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    wiringPi is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Lesser General Public License for more details.
-#
-#    You should have received a copy of the GNU Lesser General Public License
-#    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
-#######################################################################
-
-# LED Pin - wiringPi pin 1 is BCM_GPIO 18.
-
-LED=1
-
-gpio mode $LED out
-
-while true; do
-  gpio write $LED 1
-  sleep 0.5
-  gpio write $LED 0
-  sleep 0.5
-done
diff --git a/examples/q2w/bright.c b/examples/q2w/bright.c
deleted file mode 100644
index 2318834..0000000
--- a/examples/q2w/bright.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * bright.c:
- *	Vary the Q2W LED brightness with the analog card
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <pcf8591.h>
-
-#define	LED		  1
-#define Q2W_ABASE       120
-
-int main (void)
-{
-  int value ;
-
-// Enable the on-goard GPIO
-
-  wiringPiSetup () ;
-
-// Add in the pcf8591 on the q2w board
-
-  pcf8591Setup (Q2W_ABASE, 0x48) ;
-
-  printf ("Raspberry Pi - Quick2Wire Analog Test\n") ;
-
-// Setup the LED
-
-  pinMode  (LED, PWM_OUTPUT) ;
-  pwmWrite (LED, 0) ;
-
-  for (;;)
-  {
-    value = analogRead  (Q2W_ABASE + 0) ;
-    pwmWrite (LED, value * 4) ;
-    delay (10) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/q2w/button.c b/examples/q2w/button.c
deleted file mode 100644
index 1781f02..0000000
--- a/examples/q2w/button.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * button.c:
- *	Simple button test for the Quick2Wire interface board.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-
-#define	BUTTON	0
-#define	LED1	1
-#define	LED2	7
-
-int main (void)
-{
-
-// Enable the on-goard GPIO
-
-  wiringPiSetup () ;
-
-  printf ("Raspberry Pi - Quick2Wire Mainboard Button & LED Test\n") ;
-
-  pinMode (BUTTON, INPUT) ;
-  pinMode (LED1, OUTPUT) ;
-  pinMode (LED2, OUTPUT) ;
-
-  digitalWrite (LED1, HIGH) ;		// On-board LED on
-  digitalWrite (LED2, LOW) ;		// 2nd LED off
-
-  for (;;)
-  {
-    if (digitalRead (BUTTON) == HIGH)	// Swap LED states
-    {
-      digitalWrite (LED1, LOW) ;
-      digitalWrite (LED2, HIGH) ;
-      while (digitalRead (BUTTON) == HIGH)
-	delay (1) ;
-      digitalWrite (LED1, HIGH) ;
-      digitalWrite (LED2, LOW) ;
-    }
-    delay (1) ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/q2w/volts.c b/examples/q2w/volts.c
deleted file mode 100644
index e091093..0000000
--- a/examples/q2w/volts.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * volts.c:
- *	Read in all 4 analogs on the Q2W analog board.
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <wiringPi.h>
-#include <pcf8591.h>
-
-#define	LED		1
-#define Q2W_ABASE       120
-
-int main (void)
-{
-  int value, pin ;
-
-// Enable the on-goard GPIO
-
-  wiringPiSetup () ;
-
-  pinMode (LED, OUTPUT) ;	// On-board LED
-
-// Add in the pcf8591 on the q2w board
-
-  pcf8591Setup (Q2W_ABASE, 0x48) ;
-
-  printf ("Raspberry Pi - Quick2Wire Voltmeter\n") ;
-
-  for (;;)
-  {
-    for (pin = 0 ; pin < 4 ; ++pin)
-    {
-      value = analogRead  (Q2W_ABASE + pin) ;
-      printf ("  %5.2f", (double)value * 3.3 / 255.0) ;
-    }
-    printf ("\r") ; fflush (stdout) ;
-
-    delay (100) ;
-    digitalWrite (LED, !digitalRead (LED)) ;	// Flicker the LED
-  }
-
-  return 0 ;
-}
diff --git a/examples/rht03.c b/examples/rht03.c
deleted file mode 100644
index 854f837..0000000
--- a/examples/rht03.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * rht03.c:
- *	Driver for the MaxDetect series sensors
- *
- * Copyright (c) 2012-2013 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-
-#include <wiringPi.h>
-#include <maxdetect.h>
-
-#define	RHT03_PIN	7
-
-/*
- ***********************************************************************
- * The main program
- ***********************************************************************
- */
-
-int main (void)
-{
-  int result, temp, rh ;
-  int minT, maxT, minRH, maxRH ;
-
-  int numGood, numBad ;
-
-  wiringPiSetup () ;
-  piHiPri       (55) ;
-
-  minT =  1000 ;
-  maxT = -1000 ;
-
-  minRH =  1000 ;
-  maxRH = -1000 ;
-
-  numGood = numBad = 0 ;
-
-  for (;;)
-  {
-    delay (100) ;
-
-    result = readRHT03 (RHT03_PIN, &temp, &rh) ;
-
-    if (!result)
-    {
-      printf (".") ;
-      fflush (stdout) ;
-      ++numBad ;
-      continue ;
-    }
-
-    ++numGood ;
-
-    if (temp < minT) minT = temp ;
-    if (temp > maxT) maxT = temp ;
-    if (rh  < minRH) minRH = rh ;
-    if (rh  > maxRH) maxRH = rh ;
-
-    printf ("\r%6d, %6d: ", numGood, numBad) ;
-    printf ("Temp: %5.1f, RH: %5.1f%%", temp / 10.0, rh / 10.0) ;
-    printf ("  Max/Min Temp: %5.1f:%5.1f", maxT / 10.0, minT / 10.0) ;
-    printf ("  Max/Min RH: %5.1f:%5.1f", maxRH / 10.0, minRH / 10.0) ;
-
-    printf ("\n") ;
-  }
-
-  return 0 ;
-}
diff --git a/examples/scrollPhat/Makefile b/examples/scrollPhat/Makefile
deleted file mode 100644
index 2471f69..0000000
--- a/examples/scrollPhat/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Makefile:
-#	wiringPi - A "wiring" library for the Raspberry Pi
-#	https://projects.drogon.net/wiring-pi
-#
-#	Copyright (c) 2012-2015 Gordon Henderson
-#################################################################################
-# This file is part of wiringPi:
-#	A "wiring" library for the Raspberry Pi
-#
-#    wiringPi is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Lesser General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    wiringPi is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Lesser General Public License for more details.
-#
-#    You should have received a copy of the GNU Lesser General Public License
-#    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
-#################################################################################
-
-ifneq ($V,1)
-Q ?= @
-endif
-
-#DEBUG	= -g -O0
-DEBUG	= -O3
-CC	= gcc
-INCLUDE	= -I/usr/local/include
-CFLAGS	= $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
-
-LDFLAGS	= -L/usr/local/lib
-LDLIBS    = -lwiringPi -lwiringPiDev -lpthread -lm
-
-# Should not alter anything below this line
-###############################################################################
-
-SRC	=	scphat.c test.c
-
-OBJ	=	$(SRC:.c=.o)
-
-BINS	=	$(SRC:.c=)
-
-all:	$(BINS)
-
-test:	test.o
-	$Q echo [link]
-	$Q $(CC) -o $@ test.o $(LDFLAGS) $(LDLIBS)
-
-scphat:	scphat.o
-	$Q echo [link]
-	$Q $(CC) -o $@ scphat.o $(LDFLAGS) $(LDLIBS)
-
-
-.c.o:
-	$Q echo [CC] $<
-	$Q $(CC) -c $(CFLAGS) $< -o $@
-
-clean:
-	$Q echo "[Clean]"
-	$Q rm -f $(OBJ) *~ core tags $(BINS)
-
-tags:	$(SRC)
-	$Q echo [ctags]
-	$Q ctags $(SRC)
-
-install:	scphat
-	$Q echo Installing scphat into /usr/local/bin
-	$Q cp -a scphat /usr/local/bin/scphat
-	$Q chmod 755 /usr/local/bin/scphat
-	$Q echo Done. Remember to load the I2C drivers if needed.
-
-depend:
-	makedepend -Y $(SRC)
-
-# DO NOT DELETE
diff --git a/examples/scrollPhat/scphat.c b/examples/scrollPhat/scphat.c
deleted file mode 100644
index 8f90bad..0000000
--- a/examples/scrollPhat/scphat.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * scphat.c:
- *	Little program to allow use of the Pimoroni Sctoll Phat
- *	from the command-line.
- *
- * Copyright (c) 2015-2016 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <wiringPi.h>
-#include <scrollPhat.h>
-
-static char *progName ;
-
-
-/*
- * checkArgs:
- *	Count the arguments for each little function
- *********************************************************************************
- */
-
-static void checkArgs (char *command, int num, int arg, int argc)
-{
-  if ((arg + num) < argc)
-    return ;
-
-  fprintf (stderr, "%s: Not enough data for %s command.\n", progName, command) ;
-  exit (EXIT_FAILURE) ;
-}
-
-
-/*
- * doClear:
- *	Clear the display
- *********************************************************************************
- */
-
-static int doClear (void)
-{
-  scrollPhatClear () ;
-  return 1 ;
-}
-
-
-/*
- * doBright
- *********************************************************************************
- */
-
-static int doBright (int arg, int argc, char *argv [])
-{
-  checkArgs ("bright", 1, arg, argc) ;
-  scrollPhatIntensity (atoi (argv [arg+1])) ;
-  return 2 ;
-}
-
-
-
-/*
- * doPlot
- *********************************************************************************
- */
-
-static int doPlot (int arg, int argc, char *argv [])
-{
-  checkArgs ("plot", 2, arg, argc) ;
-  scrollPhatPoint (atoi (argv [arg+1]), atoi (argv [arg+2]), 1) ;
-  scrollPhatUpdate () ;
-  return 3 ;
-}
-
-
-/*
- * doLine
- *********************************************************************************
- */
-
-static int doLine (int arg, int argc, char *argv [])
-{
-  checkArgs ("line", 4, arg, argc) ;
-  scrollPhatLine (atoi (argv [arg+1]), atoi (argv [arg+2]),
-  			atoi (argv [arg+3]), atoi (argv [arg+4]), 1) ;
-  scrollPhatUpdate () ;
-  return 5 ;
-}
-
-
-/*
- * doLineTo
- *********************************************************************************
- */
-
-static int doLineTo (int arg, int argc, char *argv [])
-{
-  checkArgs ("lineto", 2, arg, argc) ;
-  scrollPhatLineTo (atoi (argv [arg+1]), atoi (argv [arg+2]), 1) ;
-  scrollPhatUpdate () ;
-  return 3 ;
-}
-
-
-/*
- * doWait
- *********************************************************************************
- */
-
-static int doWait (int arg, int argc, char *argv [])
-{
-  checkArgs ("wait", 1, arg, argc) ;
-  delay (atoi (argv [arg+1]) * 100) ;
-  scrollPhatUpdate () ;
-  return 2 ;
-}
-
-
-/*
- * doSpeed
- *********************************************************************************
- */
-
-static int doSpeed (int arg, int argc, char *argv [])
-{
-  checkArgs ("speed", 1, arg, argc) ;
-  scrollPhatPrintSpeed (atoi (argv [arg+1])) ;
-  return 2 ;
-}
-
-
-/*
- * doScroll
- *********************************************************************************
- */
-
-static int doScroll (int arg, int argc, char *argv [])
-{
-  checkArgs ("scroll", 1, arg, argc) ;
-  scrollPhatPuts (argv [arg+1]) ;
-  return 2 ;
-}
-
-
-static void failUsage (void)
-{
-  fprintf (stderr, "Usage: %s command [paremters] ...\n", progName) ;
-  fprintf (stderr, "  commands:\n") ;
-  fprintf (stderr, "    clear/cls        - Clear the display\n") ;
-  fprintf (stderr, "    bright N         - Set display brightness; 1-100\n") ;
-  fprintf (stderr, "    plot X Y         - Set a single pixel at location X Y; 0-10, 0-4\n") ;
-  fprintf (stderr, "    line X1 Y1 X2 Y2 - Draw a line from the 2 points\n") ;
-  fprintf (stderr, "    lineto X2 Y2     - Draw a line from the last point to the new one\n") ;
-  fprintf (stderr, "    wait/delay N     - Wait for N 10ths seconds\n") ;
-  fprintf (stderr, "    speed N          - Set scrolling speed (cps)\n") ;
-  fprintf (stderr, "    scroll S         - Scroll the given string\n") ;
-  fprintf (stderr, "\n") ;
-  fprintf (stderr, "  Example: %s plot 0 0 wait 50 scroll \"  Hello  \"\n", progName) ;
-  exit (EXIT_FAILURE) ;
-}
-
-
-/*
- * the works
- *********************************************************************************
- */
-
-int main (int argc, char *argv [])
-{
-  int arg = 1 ;
-  char *command ;
-
-  progName = argv [0] ;
-
-  wiringPiSetupSys () ;
-
-  if (scrollPhatSetup () != 0)
-  {
-    fprintf (stderr, "%s: Unable to initialise the scrollPhat: %s\n", progName, strerror (errno)) ;
-    exit (EXIT_FAILURE) ;
-  }
-
-  progName = argv [0] ;
-
-  if (argc < 2)
-  {
-    fprintf (stderr, "%s: Nothing to do...\n", argv [0]) ;
-    failUsage () ;
-  }
-
-  while (arg != argc)
-  {
-    command = argv [arg] ;
-    /**/ if (strcasecmp (command, "clear")  == 0) arg += doClear  () ;
-    else if (strcasecmp (command, "cls")    == 0) arg += doClear  () ;
-    else if (strcasecmp (command, "bright") == 0) arg += doBright (arg, argc, argv) ;
-    else if (strcasecmp (command, "plot")   == 0) arg += doPlot   (arg, argc, argv) ;
-    else if (strcasecmp (command, "line")   == 0) arg += doLine   (arg, argc, argv) ;
-    else if (strcasecmp (command, "lineto") == 0) arg += doLineTo (arg, argc, argv) ;
-    else if (strcasecmp (command, "wait")   == 0) arg += doWait   (arg, argc, argv) ;
-    else if (strcasecmp (command, "delay")  == 0) arg += doWait   (arg, argc, argv) ;
-    else if (strcasecmp (command, "speed")  == 0) arg += doSpeed  (arg, argc, argv) ;
-    else if (strcasecmp (command, "scroll") == 0) arg += doScroll (arg, argc, argv) ;
-    else
-    {
-      fprintf (stderr, "%s: Unknown command: %s.\n", argv [0], argv [arg]) ;
-      failUsage () ;
-    }
-  }
-
-  return 0 ;
-}
diff --git a/examples/scrollPhat/test.c b/examples/scrollPhat/test.c
deleted file mode 100644
index e4d8021..0000000
--- a/examples/scrollPhat/test.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * test.c:
- *	Little test program forthe Pimoroni Scroll Phat.
- *
- * Copyright (c) 2015-2016 Gordon Henderson. <projects@drogon.net>
- ***********************************************************************
- * This file is part of wiringPi:
- *	https://projects.drogon.net/raspberry-pi/wiringpi/
- *
- *    wiringPi is free software: you can redistribute it and/or modify
- *    it under the terms of the GNU Lesser General Public License as published by
- *    the Free Software Foundation, either version 3 of the License, or
- *    (at your option) any later version.
- *
- *    wiringPi is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU Lesser General Public License for more details.
- *
- *    You should have received a copy of the GNU Lesser General Public License
- *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
- ***********************************************************************
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-
-#include <scrollPhat.h>
-
-
-/*
- * prompt:
- *	Simple prompt & wait
- *********************************************************************************
- */
-
-static void prompt (const char *p)
-{
-  printf ("    %s. Press ENTER: ", p) ;
-  (void)getchar () ;
-}
-
-
-/*
- * the works
- *********************************************************************************
- */
-
-int main (void)
-{
-  int x, y ;
-
-  printf ("\n") ;
-  printf ("Scroll Phat Test program\n") ;
-  printf ("========================\n") ;
-
-  if (scrollPhatSetup () != 0)
-  {
-    printf ("Unable to initialise the scrollPhat: %s\n", strerror (errno)) ;
-    exit (1) ;
-  }
-
-  printf ("-> Scroll Phat initialised OK\n") ;
-  printf ("... Basic display tests.\n\n") ;
-
-  prompt ("Display ought to be blank") ;
-
-// Light all pixels using one point at a time
-
-  for (y = 0 ; y < 5 ; ++y)
-    for (x = 0 ; x < 12 ; ++x)
-      scrollPhatPoint (x, y, 1) ;
-  scrollPhatUpdate () ;
-
-  prompt ("Display ought to be all lit-up") ;
-
-// Big rectangle
-  
-  scrollPhatClear () ;
-  scrollPhatRectangle (0,0, 10, 4, 1, 0) ;
-  scrollPhatUpdate () ;
-
-  prompt ("There should now be a rectangle round the outside") ;
-
-  scrollPhatLine (0,0, 10,4, 1) ;
-  scrollPhatLine (0,4, 10,0, 1) ;
-  scrollPhatUpdate () ;
-
-  prompt ("Diagonal lines") ;
-
-  scrollPhatIntensity (1) ;
-
-  prompt ("Minimum brightness") ;
-  
-  scrollPhatIntensity (100) ;
-
-  prompt ("Maximum brightness") ;
-  
-  scrollPhatIntensity (10) ;
-
-  prompt ("Default brightness") ;
-  
-  scrollPhatClear () ;
-  
-  printf ("    Message Test...Press Ctrl-C to exit: ") ;
-  fflush (stdout) ;
-
-  scrollPhatPrintSpeed (75) ;
-  for (;;)
-    scrollPhatPuts ("  Welcome to the scroll phat from Pimoroni  ") ;
-  
-  return 0 ;
-}