Corsair Lighting Protocol  0.15.0
Control LEDs connected to an Arduino with iCUE
LEDController.h File Reference
#include <FastLED.h>
#include "Arduino.h"
#include "CLPUtils.h"
#include "ILEDController.h"
+ Include dependency graph for LEDController.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LEDGroup
 
struct  LEDChannel
 
class  LEDController
 

Macros

#define CHANNEL_NUM   2
 
#define GROUPS_NUM   6
 
#define GROUP_MODE_Rainbow_Wave   0x00
 
#define GROUP_MODE_Color_Shift   0x01
 
#define GROUP_MODE_Color_Pulse   0x02
 
#define GROUP_MODE_Color_Wave   0x03
 
#define GROUP_MODE_Static   0x04
 
#define GROUP_MODE_Temperature   0x05
 
#define GROUP_MODE_Visor   0x06
 
#define GROUP_MODE_Marquee   0x07
 
#define GROUP_MODE_Blink   0x08
 
#define GROUP_MODE_Sequential   0x09
 
#define GROUP_MODE_Rainbow   0x0A
 
#define GROUP_TEMP_GROUP_EXTERNAL   255
 

Enumerations

enum class  ChannelMode : byte { Disabled = 0x00 , HardwarePlayback = 0x01 , SoftwarePlayback = 0x02 }
 
enum class  PortType : byte { WS2812B = 0x01 , UCS1903 = 0x02 }
 
enum class  GroupSpeed : byte { High = 0x00 , Medium = 0x01 , Low = 0x02 }
 
enum class  GroupDirection : byte { Backward = 0x00 , Forward = 0x01 }
 
enum class  GroupExtra : byte { Alternating = 0x00 , Random = 0x01 }
 

Functions

bool isValidChannelMode (const ChannelMode channelMode)
 
bool isValidPortType (const PortType portType)
 
bool isValidGroupSpeed (const GroupSpeed groupSpeed)
 
bool isValidGroupDirection (const GroupDirection groupDirection)
 
bool isValidGroupExtra (const GroupExtra groupExtra)
 

Detailed Description

Defines types and constants of the LED part of the protocol

Enumeration Type Documentation

◆ ChannelMode

enum ChannelMode : byte
strong

The mode of an LEDChannel. The mode describes how the LED lighting is done.

See also
LEDController::setLEDMode()
Enumerator
Disabled 

No lighting is active for the channel. The LEDs will not be updated.

HardwarePlayback 

The Hardware Playback uses lighting effects defined by LEDGroups and LEDController renders the effects themself. This mode works even without an USB connection.

SoftwarePlayback 

All lighting effects are rendered by iCUE and only the RGB values are transferred via USB to the device. This requires an USB connection.

◆ GroupDirection

enum GroupDirection : byte
strong

The animation direction of a LEDGroup.

◆ GroupExtra

enum GroupExtra : byte
strong

Extra information for animations of a LEDGroup.

◆ GroupSpeed

enum GroupSpeed : byte
strong

The animation speed of a LEDGroup.

◆ PortType

enum PortType : byte
strong

The type of LED Chipset connected to a channel. These are the types implicitly defined by iCUE when doing the lighting setup in iCUE. These type is ignored by the LEDController.

Enumerator
WS2812B 

WS2812B used by all new Corsair devices

UCS1903 

UCS1903 Only used for the SP fan