 void loop() {
   // Calculate how long no data backet was received
   unsigned long lastPacket = DMXSerial.noDataSince();
-  
+
   if (lastPacket < 5000) {
-    // read recent DMX values and set pwm levels 
-    analogWrite(RedPin,   DMXSerial.read(1));
-    analogWrite(GreenPin, DMXSerial.read(2));
-    analogWrite(BluePin,  DMXSerial.read(3));
+    // read recent DMX values and set pwm levels
+    analogWrite(RedPin,   DMXSerial.read(startChannel));
+    analogWrite(GreenPin, DMXSerial.read(startChannel + 1));
+    analogWrite(BluePin,  DMXSerial.read(startChannel + 2));
 
   } else {
     // Show pure red color, when no data was received since 5 seconds or more.

// address 1 (red) -> PWM Port 9
// address 2 (green) -> PWM Port 6
// address 3 (blue) -> PWM Port 5
// 
// Copyright (c) 2011-2015 by Matthias Hertel, http://www.mathertel.de
// This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx
// 
// Documentation and samples are available at http://www.mathertel.de/Arduino
// 25.07.2011 creation of the DmxSerial library.
// 10.09.2011 fully control the serial hardware register

const int GreenPin =  6;  // PWM output pin for Green Light.
const int BluePin =   5;  // PWM output pin for Blue Light.

// This Example receives the 3 values starting with this channel:
const int startChannel = 58 * 3 + 1;

#define RedDefaultLevel   100
#define GreenDefaultLevel 200
#define BlueDefaultLevel  255

void setup() {
  Serial.begin(115200);

  DMXSerial.init(DMXReceiver);

  // set some default values
  DMXSerial.write(1, 80);
  DMXSerial.write(2, 0);
  DMXSerial.write(3, 0);

  // enable pwm outputs
  pinMode(RedPin,   OUTPUT); // sets the digital pin as output
  pinMode(GreenPin, OUTPUT);
