diff --git a/BTD.cpp b/BTD.cpp index 1812f391..2506cdf1 100755 --- a/BTD.cpp +++ b/BTD.cpp @@ -720,7 +720,7 @@ void BTD::HCI_task() { if(pairWithWii) Notify(PSTR("\r\nWII Wii(&Btd);"), 0x80); else - Notify(PSTR("\r\nBTHID hid(&Btd);"), 0x80); + Notify(PSTR("\r\nBTHID bthid(&Btd);"), 0x80); Notify(PSTR("\r\nAnd then press any button on the "), 0x80); if(pairWithWii) diff --git a/PS4Parser.h b/PS4Parser.h index 093701e9..8b328342 100644 --- a/PS4Parser.h +++ b/PS4Parser.h @@ -81,6 +81,14 @@ struct touchpadXY { } __attribute__((packed)) finger[2]; // 0 = first finger, 1 = second finger } __attribute__((packed)); +struct PS4Status { + uint8_t battery : 4; + uint8_t usb : 1; + uint8_t audio : 1; + uint8_t mic : 1; + uint8_t unknown : 1; // Extension port? +} __attribute__((packed)); + struct PS4Data { /* Button and joystick values */ uint8_t hatValue[4]; @@ -92,8 +100,11 @@ struct PS4Data { int16_t gyroY, gyroZ, gyroX; int16_t accX, accZ, accY; + uint8_t dummy2[5]; + PS4Status status; + uint8_t dummy3[3]; + /* The rest is data for the touchpad */ - uint8_t dummy2[9]; // Byte 5 looks like some kind of status (maybe battery status), bit 1 of byte 8 is set every time a finger is moving around the touchpad touchpadXY xy[3]; // It looks like it sends out three coordinates each time, this might be because the microcontroller inside the PS4 controller is much faster than the Bluetooth connection. // The last data is read from the last position in the array while the oldest measurement is from the first position. // The first position will also keep it's value after the finger is released, while the other two will set them to zero. @@ -245,6 +256,38 @@ public: } }; + /** + * Return the battery level of the PS4 controller. + * @return The battery level in the range 0-15. + */ + uint8_t getBatteryLevel() { + return ps4Data.status.battery; + }; + + /** + * Use this to check if an USB cable is connected to the PS4 controller. + * @return Returns true if an USB cable is connected. + */ + bool getUsbStatus() { + return ps4Data.status.usb; + }; + + /** + * Use this to check if an audio jack cable is connected to the PS4 controller. + * @return Returns true if an audio jack cable is connected. + */ + bool getAudioStatus() { + return ps4Data.status.audio; + }; + + /** + * Use this to check if a microphone is connected to the PS4 controller. + * @return Returns true if a microphone is connected. + */ + bool getMicStatus() { + return ps4Data.status.mic; + }; + /** Turn both rumble and the LEDs off. */ void setAllOff() { setRumbleOff(); diff --git a/README.md b/README.md index 883c661e..35a786e5 100644 --- a/README.md +++ b/README.md @@ -122,11 +122,11 @@ It enables me to see the Bluetooth communication between my Mac and any device. The PS4BT library is split up into the [PS4BT](PS4BT.h) and the [PS4USB](PS4USB.h) library. These allow you to use the Sony PS4 controller via Bluetooth and USB. -The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller. +The [PS4BT.ino](examples/Bluetooth/PS4BT/PS4BT.ino) and [PS4USB.ino](examples/PS4USB/PS4USB.ino) examples shows how to easily read the buttons, joysticks, touchpad and IMU on the controller via Bluetooth and USB respectively. It is also possible to control the rumble and light on the controller and get the battery level. Before you can use the PS4 controller via Bluetooth you will need to pair with it. -Simply create the PS4BT instance like so: ```PS4BT PS4(&Btd, PAIR);``` and then hold down the PS and Share button at the same time, the PS4 controller will then start to blink rapidly indicating that it is in paring mode. +Simply create the PS4BT instance like so: ```PS4BT PS4(&Btd, PAIR);``` and then hold down the Share button and then hold down the PS without releasing the Share button. The PS4 controller will then start to blink rapidly indicating that it is in paring mode. It should then automatically pair the dongle with your controller. This only have to be done once. @@ -138,9 +138,11 @@ Also check out this excellent Wiki by Frank Zhao about the PS4 controller: . diff --git a/XBOXRECV.cpp b/XBOXRECV.cpp index e70e322a..144a4aa4 100644 --- a/XBOXRECV.cpp +++ b/XBOXRECV.cpp @@ -514,9 +514,9 @@ void XBOXRECV::setLedRaw(uint8_t value, uint8_t controller) { void XBOXRECV::setLedOn(LEDEnum led, uint8_t controller) { if(led == OFF) - setLedRaw(0); + setLedRaw(0, controller); else if(led != ALL) // All LEDs can't be on a the same time - setLedRaw(pgm_read_byte(&XBOX_LEDS[(uint8_t)led]) + 4); + setLedRaw(pgm_read_byte(&XBOX_LEDS[(uint8_t)led]) + 4, controller); } void XBOXRECV::setLedBlink(LEDEnum led, uint8_t controller) { diff --git a/examples/Bluetooth/PS4BT/PS4BT.ino b/examples/Bluetooth/PS4BT/PS4BT.ino index 0b850737..e47cfae0 100644 --- a/examples/Bluetooth/PS4BT/PS4BT.ino +++ b/examples/Bluetooth/PS4BT/PS4BT.ino @@ -25,6 +25,7 @@ PS4BT PS4(&Btd, PAIR); //PS4BT PS4(&Btd); boolean printAngle, printTouch; +uint8_t oldL2Value, oldR2Value; void setup() { Serial.begin(115200); @@ -56,28 +57,46 @@ void loop() { Serial.print(F("\tR2: ")); Serial.print(PS4.getAnalogButton(R2)); } + if (PS4.getAnalogButton(L2) != oldL2Value || PS4.getAnalogButton(R2) != oldR2Value) // Only write value if it's different + PS4.setRumbleOn(PS4.getAnalogButton(L2), PS4.getAnalogButton(R2)); + oldL2Value = PS4.getAnalogButton(L2); + oldR2Value = PS4.getAnalogButton(R2); + if (PS4.getButtonClick(PS)) { Serial.print(F("\r\nPS")); PS4.disconnect(); } else { - if (PS4.getButtonClick(TRIANGLE)) + if (PS4.getButtonClick(TRIANGLE)) { Serial.print(F("\r\nTraingle")); - if (PS4.getButtonClick(CIRCLE)) + PS4.setRumbleOn(RumbleLow); + } + if (PS4.getButtonClick(CIRCLE)) { Serial.print(F("\r\nCircle")); - if (PS4.getButtonClick(CROSS)) + PS4.setRumbleOn(RumbleHigh); + } + if (PS4.getButtonClick(CROSS)) { Serial.print(F("\r\nCross")); - if (PS4.getButtonClick(SQUARE)) + PS4.setLedFlash(10, 10); // Set it to blink rapidly + } + if (PS4.getButtonClick(SQUARE)) { Serial.print(F("\r\nSquare")); + PS4.setLedFlash(0, 0); // Turn off blinking + } - if (PS4.getButtonClick(UP)) + if (PS4.getButtonClick(UP)) { Serial.print(F("\r\nUp")); - if (PS4.getButtonClick(RIGHT)) + PS4.setLed(Red); + } if (PS4.getButtonClick(RIGHT)) { Serial.print(F("\r\nRight")); - if (PS4.getButtonClick(DOWN)) + PS4.setLed(Blue); + } if (PS4.getButtonClick(DOWN)) { Serial.print(F("\r\nDown")); - if (PS4.getButtonClick(LEFT)) + PS4.setLed(Yellow); + } if (PS4.getButtonClick(LEFT)) { Serial.print(F("\r\nLeft")); + PS4.setLed(Green); + } if (PS4.getButtonClick(L1)) Serial.print(F("\r\nL1")); diff --git a/examples/Bluetooth/SPP/SPP.ino b/examples/Bluetooth/SPP/SPP.ino index 6a326a3d..d8276b7b 100644 --- a/examples/Bluetooth/SPP/SPP.ino +++ b/examples/Bluetooth/SPP/SPP.ino @@ -16,8 +16,8 @@ USB Usb; BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so /* You can create the instance of the class in two ways */ -SPP SerialBT(&Btd); // This will set the name to the defaults: "Arduino" and the pin to "1234" -//SPP SerialBT(&Btd, "Lauszus's Arduino","0000"); // You can also set the name and pin like so +SPP SerialBT(&Btd); // This will set the name to the defaults: "Arduino" and the pin to "0000" +//SPP SerialBT(&Btd, "Lauszus's Arduino", "1234"); // You can also set the name and pin like so boolean firstMessage = true; diff --git a/examples/HID/USBHIDBootKbdAndMouse/Makefile b/examples/HID/USBHIDBootKbdAndMouse/Makefile deleted file mode 100644 index 253ecfb5..00000000 --- a/examples/HID/USBHIDBootKbdAndMouse/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# -# These are set for a mega 1280 + quadram plus my serial patch. -# If you lack quadram, or want to disable LFN, just change _FS_TINY=1 _USE_LFN=0 -# -# If your board is a mega 2560 uncomment the following two lines -# BOARD = mega2560 -# PROGRAMMER = wiring -# ...and then comment out the following two lines -BOARD = mega -PROGRAMMER = arduino - -# set your Arduino tty port here -PORT = /dev/ttyUSB0 - - -# uncomment the next line to enable debugging -#EXTRA_FLAGS += -D DEBUG_USB_HOST=1 - -# -# Advanced debug on Serial3 -# - -# uncomment the next line to enable debug on Serial3 -#EXTRA_FLAGS += -D USB_HOST_SERIAL=Serial3 - -# The following are the libraries used. -LIB_DIRS = -LIB_DIRS += ../libraries/USB_Host_Shield_2_0 -# And finally, the part that brings everything together for you. -include ../Arduino_Makefile_master/_Makefile.master diff --git a/examples/HID/USBHIDBootKbdAndMouse/nbproject/Package-Default.bash b/examples/HID/USBHIDBootKbdAndMouse/nbproject/Package-Default.bash deleted file mode 100644 index 808a7e12..00000000 --- a/examples/HID/USBHIDBootKbdAndMouse/nbproject/Package-Default.bash +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -x - -# -# Generated - do not edit! -# - -# Macros -TOP=`pwd` -CND_PLATFORM=AVR-Linux-x86 -CND_CONF=Default -CND_DISTDIR=dist -CND_BUILDDIR=build -NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging -TMPDIRNAME=tmp-packaging -OUTPUT_PATH=MissingOutputInProject -OUTPUT_BASENAME=MissingOutputInProject -PACKAGE_TOP_DIR=USBHIDBootKbdAndMouse/ - -# Functions -function checkReturnCode -{ - rc=$? - if [ $rc != 0 ] - then - exit $rc - fi -} -function makeDirectory -# $1 directory path -# $2 permission (optional) -{ - mkdir -p "$1" - checkReturnCode - if [ "$2" != "" ] - then - chmod $2 "$1" - checkReturnCode - fi -} -function copyFileToTmpDir -# $1 from-file path -# $2 to-file path -# $3 permission -{ - cp "$1" "$2" - checkReturnCode - if [ "$3" != "" ] - then - chmod $3 "$2" - checkReturnCode - fi -} - -# Setup -cd "${TOP}" -mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package -rm -rf ${NBTMPDIR} -mkdir -p ${NBTMPDIR} - -# Copy files and create directories and links -cd "${TOP}" -makeDirectory "${NBTMPDIR}/USBHIDBootKbdAndMouse" -copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 - - -# Generate tar file -cd "${TOP}" -rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/USBHIDBootKbdAndMouse.tar -cd ${NBTMPDIR} -tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/USBHIDBootKbdAndMouse.tar * -checkReturnCode - -# Cleanup -cd "${TOP}" -rm -rf ${NBTMPDIR} diff --git a/examples/HID/USBHIDBootKbdAndMouse/nbproject/configurations.xml b/examples/HID/USBHIDBootKbdAndMouse/nbproject/configurations.xml deleted file mode 100644 index e19c68a4..00000000 --- a/examples/HID/USBHIDBootKbdAndMouse/nbproject/configurations.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - USBHIDBootKbdAndMouse_ino.cpp - - USBHIDBootKbdAndMouse.ino - - - Makefile - - - ^(nbproject)$ - - . - - Makefile - - - - LOCAL_SOURCES - default - - - - . - ${MAKE} -f Makefile - ${MAKE} -f Makefile clean - - - - - - diff --git a/examples/HID/USBHIDBootKbdAndMouse/nbproject/project.xml b/examples/HID/USBHIDBootKbdAndMouse/nbproject/project.xml deleted file mode 100644 index c831722a..00000000 --- a/examples/HID/USBHIDBootKbdAndMouse/nbproject/project.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - org.netbeans.modules.cnd.makeproject - - - USBHIDBootKbdAndMouse - - cpp,ino - - UTF-8 - - - . - - - - Default - 0 - - - - - diff --git a/examples/HID/USBHIDJoystick/Makefile b/examples/HID/USBHIDJoystick/Makefile deleted file mode 100644 index 253ecfb5..00000000 --- a/examples/HID/USBHIDJoystick/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -# -# These are set for a mega 1280 + quadram plus my serial patch. -# If you lack quadram, or want to disable LFN, just change _FS_TINY=1 _USE_LFN=0 -# -# If your board is a mega 2560 uncomment the following two lines -# BOARD = mega2560 -# PROGRAMMER = wiring -# ...and then comment out the following two lines -BOARD = mega -PROGRAMMER = arduino - -# set your Arduino tty port here -PORT = /dev/ttyUSB0 - - -# uncomment the next line to enable debugging -#EXTRA_FLAGS += -D DEBUG_USB_HOST=1 - -# -# Advanced debug on Serial3 -# - -# uncomment the next line to enable debug on Serial3 -#EXTRA_FLAGS += -D USB_HOST_SERIAL=Serial3 - -# The following are the libraries used. -LIB_DIRS = -LIB_DIRS += ../libraries/USB_Host_Shield_2_0 -# And finally, the part that brings everything together for you. -include ../Arduino_Makefile_master/_Makefile.master diff --git a/examples/HID/USBHIDJoystick/nbproject/Package-Default.bash b/examples/HID/USBHIDJoystick/nbproject/Package-Default.bash deleted file mode 100644 index 45e0f31e..00000000 --- a/examples/HID/USBHIDJoystick/nbproject/Package-Default.bash +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -x - -# -# Generated - do not edit! -# - -# Macros -TOP=`pwd` -CND_PLATFORM=AVR-Linux-x86 -CND_CONF=Default -CND_DISTDIR=dist -CND_BUILDDIR=build -NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging -TMPDIRNAME=tmp-packaging -OUTPUT_PATH=MissingOutputInProject -OUTPUT_BASENAME=MissingOutputInProject -PACKAGE_TOP_DIR=USBHIDJoystick/ - -# Functions -function checkReturnCode -{ - rc=$? - if [ $rc != 0 ] - then - exit $rc - fi -} -function makeDirectory -# $1 directory path -# $2 permission (optional) -{ - mkdir -p "$1" - checkReturnCode - if [ "$2" != "" ] - then - chmod $2 "$1" - checkReturnCode - fi -} -function copyFileToTmpDir -# $1 from-file path -# $2 to-file path -# $3 permission -{ - cp "$1" "$2" - checkReturnCode - if [ "$3" != "" ] - then - chmod $3 "$2" - checkReturnCode - fi -} - -# Setup -cd "${TOP}" -mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package -rm -rf ${NBTMPDIR} -mkdir -p ${NBTMPDIR} - -# Copy files and create directories and links -cd "${TOP}" -makeDirectory "${NBTMPDIR}/USBHIDJoystick" -copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755 - - -# Generate tar file -cd "${TOP}" -rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/USBHIDJoystick.tar -cd ${NBTMPDIR} -tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/USBHIDJoystick.tar * -checkReturnCode - -# Cleanup -cd "${TOP}" -rm -rf ${NBTMPDIR} diff --git a/examples/HID/USBHIDJoystick/nbproject/configurations.xml b/examples/HID/USBHIDJoystick/nbproject/configurations.xml deleted file mode 100644 index 5bb562ca..00000000 --- a/examples/HID/USBHIDJoystick/nbproject/configurations.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - CDC.lst - HID.lst - HardwareSerial.lst - IPAddress.lst - Print.lst - Stream.lst - Tone.lst - USBCore.lst - WInterrupts.lst - WMath.lst - WString.lst - wiring.lst - wiring_analog.lst - wiring_digital.lst - wiring_pulse.lst - wiring_shift.lst - - USBHIDJoystick.ino - hidjoystickrptparser.cpp - hidjoystickrptparser.h - - - Makefile - - - ^(nbproject)$ - - . - - Makefile - - - - LOCAL_SOURCES - default - - - - . - ${MAKE} -f Makefile - ${MAKE} -f Makefile clean - - - - - - diff --git a/examples/HID/USBHIDJoystick/nbproject/project.xml b/examples/HID/USBHIDJoystick/nbproject/project.xml deleted file mode 100644 index b912fd91..00000000 --- a/examples/HID/USBHIDJoystick/nbproject/project.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - org.netbeans.modules.cnd.makeproject - - - USBHIDJoystick - - cpp,ino - h - UTF-8 - - - . - - - - Default - 0 - - - - - diff --git a/examples/PS4USB/PS4USB.ino b/examples/PS4USB/PS4USB.ino index c8dc5069..b3a2436b 100644 --- a/examples/PS4USB/PS4USB.ino +++ b/examples/PS4USB/PS4USB.ino @@ -15,6 +15,7 @@ USB Usb; PS4USB PS4(&Usb); boolean printAngle, printTouch; +uint8_t oldL2Value, oldR2Value; void setup() { Serial.begin(115200); @@ -47,26 +48,43 @@ void loop() { Serial.print(F("\tR2: ")); Serial.print(PS4.getAnalogButton(R2)); } + if (PS4.getAnalogButton(L2) != oldL2Value || PS4.getAnalogButton(R2) != oldR2Value) // Only write value if it's different + PS4.setRumbleOn(PS4.getAnalogButton(L2), PS4.getAnalogButton(R2)); + oldL2Value = PS4.getAnalogButton(L2); + oldR2Value = PS4.getAnalogButton(R2); if (PS4.getButtonClick(PS)) Serial.print(F("\r\nPS")); - if (PS4.getButtonClick(TRIANGLE)) + if (PS4.getButtonClick(TRIANGLE)) { Serial.print(F("\r\nTraingle")); - if (PS4.getButtonClick(CIRCLE)) + PS4.setRumbleOn(RumbleLow); + } + if (PS4.getButtonClick(CIRCLE)) { Serial.print(F("\r\nCircle")); - if (PS4.getButtonClick(CROSS)) + PS4.setRumbleOn(RumbleHigh); + } + if (PS4.getButtonClick(CROSS)) { Serial.print(F("\r\nCross")); - if (PS4.getButtonClick(SQUARE)) + PS4.setLedFlash(10, 10); // Set it to blink rapidly + } + if (PS4.getButtonClick(SQUARE)) { Serial.print(F("\r\nSquare")); + PS4.setLedFlash(0, 0); // Turn off blinking + } - if (PS4.getButtonClick(UP)) + if (PS4.getButtonClick(UP)) { Serial.print(F("\r\nUp")); - if (PS4.getButtonClick(RIGHT)) + PS4.setLed(Red); + } if (PS4.getButtonClick(RIGHT)) { Serial.print(F("\r\nRight")); - if (PS4.getButtonClick(DOWN)) + PS4.setLed(Blue); + } if (PS4.getButtonClick(DOWN)) { Serial.print(F("\r\nDown")); - if (PS4.getButtonClick(LEFT)) + PS4.setLed(Yellow); + } if (PS4.getButtonClick(LEFT)) { Serial.print(F("\r\nLeft")); + PS4.setLed(Green); + } if (PS4.getButtonClick(L1)) Serial.print(F("\r\nL1")); diff --git a/examples/testusbhostFAT/RTClib b/examples/testusbhostFAT/RTClib index a4bd6f50..9108effe 160000 --- a/examples/testusbhostFAT/RTClib +++ b/examples/testusbhostFAT/RTClib @@ -1 +1 @@ -Subproject commit a4bd6f500f70599847de60973371ee973d094a34 +Subproject commit 9108effe4d4e556198e3e7b95365d1c898680dae diff --git a/examples/testusbhostFAT/avr-gdb.conf b/examples/testusbhostFAT/avr-gdb.conf deleted file mode 100644 index 7ab686f2..00000000 --- a/examples/testusbhostFAT/avr-gdb.conf +++ /dev/null @@ -1,6 +0,0 @@ -file build/testusbhostFAT.elf -target remote localhost:4242 -set {int}0x802200 = 0xffff -set {int}0x802220 = 0x0000 -#graph display `x /3xh 0x802200` - diff --git a/examples/testusbhostFAT/generic_storage b/examples/testusbhostFAT/generic_storage index 1d481775..ab85718a 160000 --- a/examples/testusbhostFAT/generic_storage +++ b/examples/testusbhostFAT/generic_storage @@ -1 +1 @@ -Subproject commit 1d481775b5096a172edf607062278a86e9618a15 +Subproject commit ab85718a917094391762b79140d8e3a03af136a4 diff --git a/examples/testusbhostFAT/xmem2 b/examples/testusbhostFAT/xmem2 index 029e3dab..dd85091a 160000 --- a/examples/testusbhostFAT/xmem2 +++ b/examples/testusbhostFAT/xmem2 @@ -1 +1 @@ -Subproject commit 029e3dab4c885669cddaa59f3dc8fdc71d152792 +Subproject commit dd85091abaca7cc6055ff515a5e42f32198380d2 diff --git a/hiduniversal.cpp b/hiduniversal.cpp index acc1b00c..ad1ad190 100644 --- a/hiduniversal.cpp +++ b/hiduniversal.cpp @@ -401,8 +401,10 @@ uint8_t HIDUniversal::Poll() { #if 1 Notify(PSTR("\r\nBuf: "), 0x80); - for(uint8_t i = 0; i < read; i++) + for(uint8_t i = 0; i < read; i++) { D_PrintHex (buf[i], 0x80); + Notify(PSTR(" "), 0x80); + } Notify(PSTR("\r\n"), 0x80); #endif diff --git a/keywords.txt b/keywords.txt index a13ff34d..58496f4b 100644 --- a/keywords.txt +++ b/keywords.txt @@ -82,6 +82,10 @@ getX KEYWORD2 getY KEYWORD2 getTouchCounter KEYWORD2 +getUsbStatus KEYWORD2 +getAudioStatus KEYWORD2 +getMicStatus KEYWORD2 + #################################################### # Constants and enums (LITERAL1) #################################################### diff --git a/settings.h b/settings.h index a69545e4..e3d0ed1d 100644 --- a/settings.h +++ b/settings.h @@ -1,8 +1,18 @@ -/* - * File: settings.h - * Author: xxxajk - * - * Created on September 23, 2013, 12:00 AM +/* Copyright (C) 2011 Circuits At Home, LTD. All rights reserved. + +This software may be distributed and modified under the terms of the GNU +General Public License version 2 (GPL2) as published by the Free Software +Foundation and appearing in the file GPL2.TXT included in the packaging of +this file. Please note that GPL2 Section 2[b] requires that all works based +on this software must also be made publicly available under the terms of +the GPL2 ("Copyleft"). + +Contact information +------------------- + +Circuits At Home, LTD +Web : http://www.circuitsathome.com +e-mail : support@circuitsathome.com */ #ifndef USB_HOST_SHIELD_SETTINGS_H