summaryrefslogtreecommitdiff
path: root/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi
diff options
context:
space:
mode:
authorsiddhu89902016-07-25 15:59:40 +0530
committersiddhu89902016-07-25 15:59:40 +0530
commit21ab4886b202a52189b398bd9d3137e2a567d62a (patch)
tree90519f93c0a0c0ec22ce296372b811a7af2ed399 /2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi
parentd7d53dc95a7cb9878a4e49bdd06e626e981b0eb2 (diff)
downloadScilab2C-21ab4886b202a52189b398bd9d3137e2a567d62a.tar.gz
Scilab2C-21ab4886b202a52189b398bd9d3137e2a567d62a.tar.bz2
Scilab2C-21ab4886b202a52189b398bd9d3137e2a567d62a.zip
WiringPi used for RaspberryPi (Gpio, serial, Threads, ISRs)
Diffstat (limited to '2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi')
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/ads1115.h55
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/drcSerial.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/libwiringPi.sobin0 -> 58044 bytes
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max31855.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max5322.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23008.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016reg.h48
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23017.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s08.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s17.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x08.h73
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x0817.h87
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3002.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3004.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3422.h43
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp4802.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8574.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8591.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sn3218.h33
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softPwm.h35
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softServo.h35
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softTone.h39
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sr595.h34
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPi.h234
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiI2C.h42
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiSPI.h36
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringSerial.h38
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringShift.h41
-rw-r--r--2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wpiExtensions.h26
30 files changed, 1328 insertions, 0 deletions
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/ads1115.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/ads1115.h
new file mode 100644
index 00000000..5c91735c
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/ads1115.h
@@ -0,0 +1,55 @@
+/*
+ * ads1115.c:
+ * Extend wiringPi with the ADS1115 I2C 16-bit ADC
+ * Copyright (c) 2016 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/>.
+ ***********************************************************************
+ */
+
+// Constants for some of the internal functions
+
+// Gain
+
+#define ADS1115_GAIN_6 0
+#define ADS1115_GAIN_4 1
+#define ADS1115_GAIN_2 2
+#define ADS1115_GAIN_1 3
+#define ADS1115_GAIN_HALF 4
+#define ADS1115_GAIN_QUARTER 5
+
+// Data rate
+
+#define ADS1115_DR_8 0
+#define ADS1115_DR_16 1
+#define ADS1115_DR_32 2
+#define ADS1115_DR_64 3
+#define ADS1115_DR_128 4
+#define ADS1115_DR_250 5
+#define ADS1115_DR_475 6
+#define ADS1115_DR_860 7
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int ads1115Setup (int pinBase, int i2cAddress) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/drcSerial.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/drcSerial.h
new file mode 100644
index 00000000..29e988e1
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/drcSerial.h
@@ -0,0 +1,33 @@
+/*
+ * drcSerial.h:
+ * Extend wiringPi with the DRC Serial protocol (e.g. to Arduino)
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int drcSetupSerial (const int pinBase, const int numPins, const char *device, const int baud) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/libwiringPi.so b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/libwiringPi.so
new file mode 100644
index 00000000..da4a81e1
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/libwiringPi.so
Binary files differ
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max31855.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max31855.h
new file mode 100644
index 00000000..385c4bd3
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max31855.h
@@ -0,0 +1,33 @@
+/*
+ * max31855.c:
+ * Extend wiringPi with the MAX31855 SPI Thermocouple driver
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int max31855Setup (int pinBase, int spiChannel) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max5322.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max5322.h
new file mode 100644
index 00000000..a217cf88
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/max5322.h
@@ -0,0 +1,33 @@
+/*
+ * max5322.h:
+ * Extend wiringPi with the MAX5322 SPI Digital to Analog convertor
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int max5322Setup (int pinBase, int spiChannel) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23008.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23008.h
new file mode 100644
index 00000000..e9299a8c
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23008.h
@@ -0,0 +1,33 @@
+/*
+ * 23008.h:
+ * Extend wiringPi with the MCP 23008 I2C GPIO expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp23008Setup (const int pinBase, const int i2cAddress) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016.h
new file mode 100644
index 00000000..f9b5cc54
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016.h
@@ -0,0 +1,33 @@
+/*
+ * mcp23016.h:
+ * Extend wiringPi with the MCP 23016 I2C GPIO expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp23016Setup (const int pinBase, const int i2cAddress) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016reg.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016reg.h
new file mode 100644
index 00000000..9aea92d5
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23016reg.h
@@ -0,0 +1,48 @@
+/*
+ * mcp23016:
+ * Copyright (c) 2012-2013 Gordon Henderson
+ *
+ * Header file for code using the MCP23016 GPIO expander
+ * chip.
+ ***********************************************************************
+ * 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/>.
+ ***********************************************************************
+ */
+
+// MCP23016 Registers
+
+#define MCP23016_GP0 0x00
+#define MCP23016_GP1 0x01
+#define MCP23016_OLAT0 0x02
+#define MCP23016_OLAT1 0x03
+#define MCP23016_IPOL0 0x04
+#define MCP23016_IPOL1 0x05
+#define MCP23016_IODIR0 0x06
+#define MCP23016_IODIR1 0x07
+#define MCP23016_INTCAP0 0x08
+#define MCP23016_INTCAP1 0x09
+#define MCP23016_IOCON0 0x0A
+#define MCP23016_IOCON1 0x0B
+
+// Bits in the IOCON register
+
+#define IOCON_IARES 0x01
+
+// Default initialisation mode
+
+#define IOCON_INIT 0
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23017.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23017.h
new file mode 100644
index 00000000..79b4d7b3
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23017.h
@@ -0,0 +1,33 @@
+/*
+ * 23017.h:
+ * Extend wiringPi with the MCP 23017 I2C GPIO expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp23017Setup (const int pinBase, const int i2cAddress) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s08.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s08.h
new file mode 100644
index 00000000..ebf93d19
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s08.h
@@ -0,0 +1,33 @@
+/*
+ * 23s08.h:
+ * Extend wiringPi with the MCP 23s08 SPI GPIO expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp23s08Setup (const int pinBase, const int spiPort, const int devId) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s17.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s17.h
new file mode 100644
index 00000000..3b2a8088
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23s17.h
@@ -0,0 +1,33 @@
+/*
+ * 23s17.h:
+ * Extend wiringPi with the MCP 23s17 SPI GPIO expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp23s17Setup (int pinBase, int spiPort, int devId) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x08.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x08.h
new file mode 100644
index 00000000..c4e6b272
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x08.h
@@ -0,0 +1,73 @@
+/*
+ * mcp23x17:
+ * Copyright (c) 2012-2013 Gordon Henderson
+ *
+ * Header file for code using the MCP23x17 GPIO expander chip.
+ * This comes in 2 flavours: MCP23017 which has an I2C interface,
+ * an the MXP23S17 which has an SPI interface.
+ ***********************************************************************
+ * 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/>.
+ ***********************************************************************
+ */
+
+
+// MCP23x17 Registers
+
+#define IODIRA 0x00
+#define IPOLA 0x02
+#define GPINTENA 0x04
+#define DEFVALA 0x06
+#define INTCONA 0x08
+#define IOCON 0x0A
+#define GPPUA 0x0C
+#define INTFA 0x0E
+#define INTCAPA 0x10
+#define GPIOA 0x12
+#define OLATA 0x14
+
+#define IODIRB 0x01
+#define IPOLB 0x03
+#define GPINTENB 0x05
+#define DEFVALB 0x07
+#define INTCONB 0x09
+#define IOCONB 0x0B
+#define GPPUB 0x0D
+#define INTFB 0x0F
+#define INTCAPB 0x11
+#define GPIOB 0x13
+#define OLATB 0x15
+
+// Bits in the IOCON register
+
+#define IOCON_UNUSED 0x01
+#define IOCON_INTPOL 0x02
+#define IOCON_ODR 0x04
+#define IOCON_HAEN 0x08
+#define IOCON_DISSLW 0x10
+#define IOCON_SEQOP 0x20
+#define IOCON_MIRROR 0x40
+#define IOCON_BANK_MODE 0x80
+
+// Default initialisation mode
+
+#define IOCON_INIT (IOCON_SEQOP)
+
+// SPI Command codes
+
+#define CMD_WRITE 0x40
+#define CMD_READ 0x41
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x0817.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x0817.h
new file mode 100644
index 00000000..58bc0382
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp23x0817.h
@@ -0,0 +1,87 @@
+/*
+ * mcp23xxx:
+ * Copyright (c) 2012-2013 Gordon Henderson
+ *
+ * Header file for code using the MCP23x08 and 17 GPIO expander
+ * chips.
+ * This comes in 2 flavours: MCP230xx (08/17) which has an I2C
+ * interface, and the MXP23Sxx (08/17) which has an SPI interface.
+ ***********************************************************************
+ * 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/>.
+ ***********************************************************************
+ */
+
+// MCP23x08 Registers
+
+#define MCP23x08_IODIR 0x00
+#define MCP23x08_IPOL 0x01
+#define MCP23x08_GPINTEN 0x02
+#define MCP23x08_DEFVAL 0x03
+#define MCP23x08_INTCON 0x04
+#define MCP23x08_IOCON 0x05
+#define MCP23x08_GPPU 0x06
+#define MCP23x08_INTF 0x07
+#define MCP23x08_INTCAP 0x08
+#define MCP23x08_GPIO 0x09
+#define MCP23x08_OLAT 0x0A
+
+// MCP23x17 Registers
+
+#define MCP23x17_IODIRA 0x00
+#define MCP23x17_IPOLA 0x02
+#define MCP23x17_GPINTENA 0x04
+#define MCP23x17_DEFVALA 0x06
+#define MCP23x17_INTCONA 0x08
+#define MCP23x17_IOCON 0x0A
+#define MCP23x17_GPPUA 0x0C
+#define MCP23x17_INTFA 0x0E
+#define MCP23x17_INTCAPA 0x10
+#define MCP23x17_GPIOA 0x12
+#define MCP23x17_OLATA 0x14
+
+#define MCP23x17_IODIRB 0x01
+#define MCP23x17_IPOLB 0x03
+#define MCP23x17_GPINTENB 0x05
+#define MCP23x17_DEFVALB 0x07
+#define MCP23x17_INTCONB 0x09
+#define MCP23x17_IOCONB 0x0B
+#define MCP23x17_GPPUB 0x0D
+#define MCP23x17_INTFB 0x0F
+#define MCP23x17_INTCAPB 0x11
+#define MCP23x17_GPIOB 0x13
+#define MCP23x17_OLATB 0x15
+
+// Bits in the IOCON register
+
+#define IOCON_UNUSED 0x01
+#define IOCON_INTPOL 0x02
+#define IOCON_ODR 0x04
+#define IOCON_HAEN 0x08
+#define IOCON_DISSLW 0x10
+#define IOCON_SEQOP 0x20
+#define IOCON_MIRROR 0x40
+#define IOCON_BANK_MODE 0x80
+
+// Default initialisation mode
+
+#define IOCON_INIT (IOCON_SEQOP)
+
+// SPI Command codes
+
+#define CMD_WRITE 0x40
+#define CMD_READ 0x41
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3002.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3002.h
new file mode 100644
index 00000000..0cd727f3
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3002.h
@@ -0,0 +1,33 @@
+/*
+ * mcp3002.c:
+ * Extend wiringPi with the MCP3002 SPI Analog to Digital convertor
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp3002Setup (int pinBase, int spiChannel) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3004.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3004.h
new file mode 100644
index 00000000..a07c0bf0
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3004.h
@@ -0,0 +1,33 @@
+/*
+ * mcp3004.c:
+ * Extend wiringPi with the MCP3004 SPI Analog to Digital convertor
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp3004Setup (int pinBase, int spiChannel) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3422.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3422.h
new file mode 100644
index 00000000..72647d45
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp3422.h
@@ -0,0 +1,43 @@
+/*
+ * mcp3422.h:
+ * Extend wiringPi with the MCP3422/3/4 I2C ADC chip
+ ***********************************************************************
+ * 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/>.
+ ***********************************************************************
+ */
+
+#define MCP3422_SR_240 0
+#define MCP3422_SR_60 1
+#define MCP3422_SR_15 2
+#define MCP3422_SR_3_75 3
+
+#define MCP3422_GAIN_1 0
+#define MCP3422_GAIN_2 1
+#define MCP3422_GAIN_4 2
+#define MCP3422_GAIN_8 3
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp3422Setup (int pinBase, int i2cAddress, int sampleRate, int gain) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp4802.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp4802.h
new file mode 100644
index 00000000..effa0246
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/mcp4802.h
@@ -0,0 +1,33 @@
+/*
+ * mcp4802.c:
+ * Extend wiringPi with the MCP4802 SPI Digital to Analog convertor
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int mcp4802Setup (int pinBase, int spiChannel) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8574.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8574.h
new file mode 100644
index 00000000..8e2d8181
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8574.h
@@ -0,0 +1,33 @@
+/*
+ * pcf8574.h:
+ * Extend wiringPi with the PCF8574 I2C GPIO expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int pcf8574Setup (const int pinBase, const int i2cAddress) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8591.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8591.h
new file mode 100644
index 00000000..6b44ccf9
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/pcf8591.h
@@ -0,0 +1,33 @@
+/*
+ * pcf8591.h:
+ * Extend wiringPi with the PCF8591 I2C GPIO Analog expander chip
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int pcf8591Setup (const int pinBase, const int i2cAddress) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sn3218.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sn3218.h
new file mode 100644
index 00000000..580d5f96
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sn3218.h
@@ -0,0 +1,33 @@
+/*
+ * sn3218.c:
+ * Extend wiringPi with the SN3218 I2C LED driver board.
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int sn3218Setup (int pinBase) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softPwm.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softPwm.h
new file mode 100644
index 00000000..0351da5d
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softPwm.h
@@ -0,0 +1,35 @@
+/*
+ * softPwm.h:
+ * Provide 2 channels of software driven PWM.
+ * Copyright (c) 2012 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int softPwmCreate (int pin, int value, int range) ;
+extern void softPwmWrite (int pin, int value) ;
+extern void softPwmStop (int pin) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softServo.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softServo.h
new file mode 100644
index 00000000..794cf552
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softServo.h
@@ -0,0 +1,35 @@
+/*
+ * softServo.h:
+ * Provide N channels of software driven PWM suitable for RC
+ * servo motors.
+ * Copyright (c) 2012 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern void softServoWrite (int pin, int value) ;
+extern int softServoSetup (int p0, int p1, int p2, int p3, int p4, int p5, int p6, int p7) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softTone.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softTone.h
new file mode 100644
index 00000000..a93c5af3
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/softTone.h
@@ -0,0 +1,39 @@
+/*
+ * softTone.c:
+ * For that authentic retro sound...
+ * Er... A little experiment to produce tones out of a Pi using
+ * one (or 2) GPIO pins and a piezeo "speaker" element.
+ * (Or a high impedance speaker, but don'y blame me if you blow-up
+ * the GPIO pins!)
+ * Copyright (c) 2012 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int softToneCreate (int pin) ;
+extern void softToneStop (int pin) ;
+extern void softToneWrite (int pin, int freq) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sr595.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sr595.h
new file mode 100644
index 00000000..4a26dc7c
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/sr595.h
@@ -0,0 +1,34 @@
+/*
+ * sr595.h:
+ * Extend wiringPi with the 74x595 shift registers.
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int sr595Setup (const int pinBase, const int numPins,
+ const int dataPin, const int clockPin, const int latchPin) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPi.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPi.h
new file mode 100644
index 00000000..e11a0bef
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPi.h
@@ -0,0 +1,234 @@
+/*
+ * wiringPi.h:
+ * Arduino like Wiring library for the Raspberry Pi.
+ * Copyright (c) 2012-2016 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/>.
+ ***********************************************************************
+ */
+
+#ifndef __WIRING_PI_H__
+#define __WIRING_PI_H__
+
+// C doesn't have true/false by default and I can never remember which
+// way round they are, so ...
+
+#ifndef TRUE
+# define TRUE (1==1)
+# define FALSE (!TRUE)
+#endif
+
+// Handy defines
+
+// wiringPi modes
+
+#define WPI_MODE_PINS 0
+#define WPI_MODE_GPIO 1
+#define WPI_MODE_GPIO_SYS 2
+#define WPI_MODE_PHYS 3
+#define WPI_MODE_PIFACE 4
+#define WPI_MODE_UNINITIALISED -1
+
+// Pin modes
+
+#define INPUT 0
+#define OUTPUT 1
+#define PWM_OUTPUT 2
+#define GPIO_CLOCK 3
+#define SOFT_PWM_OUTPUT 4
+#define SOFT_TONE_OUTPUT 5
+#define PWM_TONE_OUTPUT 6
+
+#define LOW 0
+#define HIGH 1
+
+// Pull up/down/none
+
+#define PUD_OFF 0
+#define PUD_DOWN 1
+#define PUD_UP 2
+
+// PWM
+
+#define PWM_MODE_MS 0
+#define PWM_MODE_BAL 1
+
+// Interrupt levels
+
+#define INT_EDGE_SETUP 0
+#define INT_EDGE_FALLING 1
+#define INT_EDGE_RISING 2
+#define INT_EDGE_BOTH 3
+
+// Pi model types and version numbers
+// Intended for the GPIO program Use at your own risk.
+
+#define PI_MODEL_A 0
+#define PI_MODEL_B 1
+#define PI_MODEL_AP 2
+#define PI_MODEL_BP 3
+#define PI_MODEL_2 4
+#define PI_ALPHA 5
+#define PI_MODEL_CM 6
+#define PI_MODEL_07 7
+#define PI_MODEL_3 8
+#define PI_MODEL_ZERO 9
+
+#define PI_VERSION_1 0
+#define PI_VERSION_1_1 1
+#define PI_VERSION_1_2 2
+#define PI_VERSION_2 3
+
+#define PI_MAKER_SONY 0
+#define PI_MAKER_EGOMAN 1
+#define PI_MAKER_MBEST 2
+#define PI_MAKER_UNKNOWN 3
+
+extern const char *piModelNames [16] ;
+extern const char *piRevisionNames [16] ;
+extern const char *piMakerNames [16] ;
+extern const int piMemorySize [ 8] ;
+
+
+// Intended for the GPIO program Use at your own risk.
+
+// Threads
+
+#define PI_THREAD(X) void *X (void *dummy)
+
+// Failure modes
+
+#define WPI_FATAL (1==1)
+#define WPI_ALMOST (1==2)
+
+
+// wiringPiNodeStruct:
+// This describes additional device nodes in the extended wiringPi
+// 2.0 scheme of things.
+// It's a simple linked list for now, but will hopefully migrate to
+// a binary tree for efficiency reasons - but then again, the chances
+// of more than 1 or 2 devices being added are fairly slim, so who
+// knows....
+
+struct wiringPiNodeStruct
+{
+ int pinBase ;
+ int pinMax ;
+
+ int fd ; // Node specific
+ unsigned int data0 ; // ditto
+ unsigned int data1 ; // ditto
+ unsigned int data2 ; // ditto
+ unsigned int data3 ; // ditto
+
+ void (*pinMode) (struct wiringPiNodeStruct *node, int pin, int mode) ;
+ void (*pullUpDnControl) (struct wiringPiNodeStruct *node, int pin, int mode) ;
+ int (*digitalRead) (struct wiringPiNodeStruct *node, int pin) ;
+ void (*digitalWrite) (struct wiringPiNodeStruct *node, int pin, int value) ;
+ void (*pwmWrite) (struct wiringPiNodeStruct *node, int pin, int value) ;
+ int (*analogRead) (struct wiringPiNodeStruct *node, int pin) ;
+ void (*analogWrite) (struct wiringPiNodeStruct *node, int pin, int value) ;
+
+ struct wiringPiNodeStruct *next ;
+} ;
+
+extern struct wiringPiNodeStruct *wiringPiNodes ;
+
+
+// Function prototypes
+// c++ wrappers thanks to a comment by Nick Lott
+// (and others on the Raspberry Pi forums)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Data
+
+// Internal
+
+extern int wiringPiFailure (int fatal, const char *message, ...) ;
+
+// Core wiringPi functions
+
+extern struct wiringPiNodeStruct *wiringPiFindNode (int pin) ;
+extern struct wiringPiNodeStruct *wiringPiNewNode (int pinBase, int numPins) ;
+
+extern int wiringPiSetup (void) ;
+extern int wiringPiSetupSys (void) ;
+extern int wiringPiSetupGpio (void) ;
+extern int wiringPiSetupPhys (void) ;
+
+extern void pinModeAlt (int pin, int mode) ;
+extern void pinMode (int pin, int mode) ;
+extern void pullUpDnControl (int pin, int pud) ;
+extern int digitalRead (int pin) ;
+extern void digitalWrite (int pin, int value) ;
+extern void pwmWrite (int pin, int value) ;
+extern int analogRead (int pin) ;
+extern void analogWrite (int pin, int value) ;
+
+// PiFace specifics
+// (Deprecated)
+
+extern int wiringPiSetupPiFace (void) ;
+extern int wiringPiSetupPiFaceForGpioProg (void) ; // Don't use this - for gpio program only
+
+// On-Board Raspberry Pi hardware specific stuff
+
+extern int piBoardRev (void) ;
+extern void piBoardId (int *model, int *rev, int *mem, int *maker, int *overVolted) ;
+extern int wpiPinToGpio (int wpiPin) ;
+extern int physPinToGpio (int physPin) ;
+extern void setPadDrive (int group, int value) ;
+extern int getAlt (int pin) ;
+extern void pwmToneWrite (int pin, int freq) ;
+extern void digitalWriteByte (int value) ;
+extern unsigned int digitalReadByte (void) ;
+extern void pwmSetMode (int mode) ;
+extern void pwmSetRange (unsigned int range) ;
+extern void pwmSetClock (int divisor) ;
+extern void gpioClockSet (int pin, int freq) ;
+
+// Interrupts
+// (Also Pi hardware specific)
+
+extern int waitForInterrupt (int pin, int mS) ;
+extern int wiringPiISR (int pin, int mode, void (*function)(void)) ;
+
+// Threads
+
+extern int piThreadCreate (void *(*fn)(void *)) ;
+extern void piLock (int key) ;
+extern void piUnlock (int key) ;
+
+// Schedulling priority
+
+extern int piHiPri (const int pri) ;
+
+// Extras from arduino land
+
+extern void delay (unsigned int howLong) ;
+extern void delayMicroseconds (unsigned int howLong) ;
+extern unsigned int millis (void) ;
+extern unsigned int micros (void) ;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiI2C.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiI2C.h
new file mode 100644
index 00000000..6db8c688
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiI2C.h
@@ -0,0 +1,42 @@
+/*
+ * wiringPiI2C.h:
+ * Simplified I2C access routines
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int wiringPiI2CRead (int fd) ;
+extern int wiringPiI2CReadReg8 (int fd, int reg) ;
+extern int wiringPiI2CReadReg16 (int fd, int reg) ;
+
+extern int wiringPiI2CWrite (int fd, int data) ;
+extern int wiringPiI2CWriteReg8 (int fd, int reg, int data) ;
+extern int wiringPiI2CWriteReg16 (int fd, int reg, int data) ;
+
+extern int wiringPiI2CSetupInterface (const char *device, int devId) ;
+extern int wiringPiI2CSetup (const int devId) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiSPI.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiSPI.h
new file mode 100644
index 00000000..39803219
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringPiSPI.h
@@ -0,0 +1,36 @@
+/*
+ * wiringPiSPI.h:
+ * Simplified SPI access routines
+ * Copyright (c) 2012-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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int wiringPiSPIGetFd (int channel) ;
+int wiringPiSPIDataRW (int channel, unsigned char *data, int len) ;
+int wiringPiSPISetupMode (int channel, int speed, int mode) ;
+int wiringPiSPISetup (int channel, int speed) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringSerial.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringSerial.h
new file mode 100644
index 00000000..430dc731
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringSerial.h
@@ -0,0 +1,38 @@
+/*
+ * wiringSerial.h:
+ * Handle a serial port
+ ***********************************************************************
+ * 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/>.
+ ***********************************************************************
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int serialOpen (const char *device, const int baud) ;
+extern void serialClose (const int fd) ;
+extern void serialFlush (const int fd) ;
+extern void serialPutchar (const int fd, const unsigned char c) ;
+extern void serialPuts (const int fd, const char *s) ;
+extern void serialPrintf (const int fd, const char *message, ...) ;
+extern int serialDataAvail (const int fd) ;
+extern int serialGetchar (const int fd) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringShift.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringShift.h
new file mode 100644
index 00000000..419ade41
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wiringShift.h
@@ -0,0 +1,41 @@
+/*
+ * wiringShift.h:
+ * Emulate some of the Arduino wiring functionality.
+ *
+ * Copyright (c) 2009-2012 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/>.
+ ***********************************************************************
+ */
+
+#define LSBFIRST 0
+#define MSBFIRST 1
+
+#ifndef _STDINT_H
+# include <stdint.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern uint8_t shiftIn (uint8_t dPin, uint8_t cPin, uint8_t order) ;
+extern void shiftOut (uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val) ;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wpiExtensions.h b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wpiExtensions.h
new file mode 100644
index 00000000..fcaec96e
--- /dev/null
+++ b/2.3-1/src/c/hardware/rasberrypi/libraries/wiringPi/wpiExtensions.h
@@ -0,0 +1,26 @@
+/*
+ * extensions.h:
+ * Part of the GPIO program to test, peek, poke and otherwise
+ * noodle with the GPIO hardware on the Raspberry Pi.
+ * Copyright (c) 2012-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/>.
+ ***********************************************************************
+ */
+
+
+extern int loadWPiExtension (char *progName, char *extensionData, int verbose) ;