Fixed bindings, typemap for uchar[8]
diff --git a/wiringpi.i b/wiringpi.i
index 3580b3d..0988f69 100644
--- a/wiringpi.i
+++ b/wiringpi.i
@@ -34,7 +34,6 @@
 #include "WiringPi/devLib/lcd128x64.h"
 #include "WiringPi/devLib/lcd.h"
 #include "WiringPi/devLib/maxdetect.h"
-#include "WiringPi/devLib/piFace.h"
 #include "WiringPi/devLib/piGlow.h"
 #include "WiringPi/devLib/piNes.h"
 %}
@@ -238,6 +237,33 @@
 %rename("wiringPiISR") wiringPiISRWrapper         (int pin, int mode, PyObject *PyFunc);
 static void wiringPiISRWrapper(int pin, int mode, PyObject *PyFunc);
 
+%typemap(in) unsigned char data [8] {
+  /* Check if is a list */
+  if (PyList_Check($input)) {
+	if(PyList_Size($input) != 8){
+    		PyErr_SetString(PyExc_TypeError,"must contain 8 items");
+    		return NULL;
+	}
+    int i = 0;
+    $1 = (unsigned char *) malloc(8);
+    for (i = 0; i < 8; i++) {
+      PyObject *o = PyList_GetItem($input,i);
+      if (PyInt_Check(o) && PyInt_AsLong(PyList_GetItem($input,i)) <= 255 && PyInt_AsLong(PyList_GetItem($input,i)) >= 0)
+		$1[i] = PyInt_AsLong(PyList_GetItem($input,i));
+      else {
+		PyErr_SetString(PyExc_TypeError,"list must contain integers 0-255");
+		return NULL;
+      }
+    }
+  } else {
+    PyErr_SetString(PyExc_TypeError,"not a list");
+    return NULL;
+  }
+};
+
+%typemap(freearg) unsigned char data [8] {
+  free((unsigned char *) $1);
+}
 
 %typemap(in) (unsigned char *data, int len) {
       $1 = (unsigned char *) PyString_AsString($input);