 #define MOTOR_SPEED_SET 0x20
 #define SET_SOLID_COLOUR 0x21
 #define ENCODER_READ 0x22
+#define UPDATE_LED_GROUP 0x23
 
 // Register map array size in bytes
 #define REG_MAP_SIZE   6
 // Maximum length of a command
-#define MAX_SENT_BYTES 5
+#define MAX_SENT_BYTES 26
+
+// Number of neopixels
+#define NUM_LEDS 48
+#define LED_DATA_PIN 6
 
 // Track absolute encoder values, these are unsigned ints and can (and will) roll over. The difference()
 // function handles these cases properly. Note that these are volatile as they're updated on pin change

   for each motor, these are converted to values in the range -128 to 127 and sent to the motor drivers.
   Also handles lighting and reporting of encoder values in response to a bulk data request.
*/
#include <Adafruit_NeoPixel.h>
#include "Triangula_NeoPixel.h"
#include <Wire.h>
#ifdef ENABLE_MOTOR_FUNCTIONS
#include <Sabertooth.h>


#include <FastLED.h>
#include <pixeltypes.h>


// Comment this out to entirely disable the motor control functions. Handy when testing and you
// really don't want the robot to vanish off into the distance mid-test.
