+
 #include <Adafruit_PWMServoDriver.h>
 #include <Adafruit_NeoPixel.h>
 #include <Wire.h>
 #include <SoftwareSerial.h>
-
-/*
- * ToDo
- *  - Cycle through app [10 colours, count of how many to use, duration slider, blend amount 0-200%]
- *  - Vibrate On/Off/Set pattern
- *  - Tidy up code
- */
 
 enum LightMode {
   LightModeOff = 0,

typedef LightMode;


// Bluetooth declarations
SoftwareSerial _bluetoothSerial(2, 3);
const byte _bluetoothBufferSize = 42;
char _bluetoothBuffer[_bluetoothBufferSize];
byte _bluetoothBufferLength = 0;

// Lighting declarations
Adafruit_NeoPixel _lightStrip = Adafruit_NeoPixel(30, 6, NEO_GRB + NEO_KHZ800);
unsigned long _lightLoopLastTime = 0;
LightMode _lightMode = LightModeCycle;
uint32_t _lightSolidColour = 0xFF0000;
uint16_t _lightCycleCurrentOffsetTime = 0; // How many ms are we into the current sequence for when we are colour cycling
uint8_t _lightCycleColourCount = 4;
uint32_t _lightCycleColours[10];
uint32_t _lightCycleDuration = 10000; // In ms
uint32_t _lightCycleBlendAmount = _lightCycleDuration * 1; // How many different colours are visible of total amount at any time (i.e. 30 means each LED is a different colour within the cycle, 60 means the same but with every second colour skipped and 1 means everything is the same colour)

// Vibration declarations
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
unsigned long _lastMotorCycle = 0;
unsigned char _motorSequence = 0;


void setup() {
  // Begin serial for debugging purposes

        continue;

      // Parse and reset
      Serial.print(F("Handling command: "));
      Serial.println(_bluetoothBuffer[0]);
      if (_bluetoothBuffer[0] == 'L')
        bluetoothLightCommand();
      else if (_bluetoothBuffer[0] == 'V')
