code: func NewBlinkMDriver(a Connector, options ...func(Config)) *BlinkMDriver {
  	b := &BlinkMDriver{
  		name:      gobot.DefaultName("BlinkM"),
  		Commander: gobot.NewCommander(),
  		connector: a,
  		Config:    NewConfig(),
  	}
  
  	for _, option := range options {
  		option(b)
  	}
  
  	b.AddCommand("Rgb", func(params map[string]interface{}) interface{} {
  		red := byte(params["red"].(float64))
  		green := byte(params["green"].(float64))
  		blue := byte(params["blue"].(float64))
  		return b.Rgb(red, green, blue)
  	})
  
  	b.AddCommand("Fade", func(params map[string]interface{}) interface{} {
  		red := byte(params["red"].(float64))
  		green := byte(params["green"].(float64))
  		blue := byte(params["blue"].(float64))
  		return b.Fade(red, green, blue)
  	})
  
  	b.AddCommand("FirmwareVersion", func(params map[string]interface{}) interface{} {
  		version, err := b.FirmwareVersion()
  		return map[string]interface{}{"version": version, "err": err}
  	})
  
  	b.AddCommand("Color", func(params map[string]interface{}) interface{} {
  		color, err := b.Color()
  		return map[string]interface{}{"color": color, "err": err}
  	})
  
  	return b
  }
docs: // NewBlinkMDriver creates a new BlinkMDriver.
  //
  // Params:
  //		conn Connector - the Adaptor to use with this Driver
  //
  // Optional params:
  //		i2c.WithBus(int):	bus to use with this driver
  //		i2c.WithAddress(int):	address to use with this driver
  //