Giter VIP home page Giter VIP logo

corsairlightingprotocol's Introduction

Corsair Lighting Protocol arduino-library-badge Test Status Average time to resolve an issue

iCUE RGBSync OpenRGB SignalRGB

This library can be used to integrate custom/unofficial RGB strips with iCUE. This is not an official Corsair project.

Features

Supported Devices

  • Lighting Node PRO
  • Commander PRO
  • Lighting Node CORE
  • LS100 Smart Lighting Controller
  • LT100 Smart Lighting Towers

Overview

Getting started

This project is an Arduino library called "Corsair Lighting Protocol". It can be used to control Arduino boards with iCUE. This project provides example sketches for easy use with Arduino IDE.

Requirements

The library is compatible with all boards using the MCU ATmega32U4. This includes Arduino Leonardo, SparkFun Pro Micro, Arduino Micro, and Adafruit 32u4 AVR Boards. It also supports the Arduino Uno and Arduino Mega, but this requires the HoodLoader2 bootloader, see this wiki for more details.

In addition, any board compatible with Adafruit TinyUSB for Arduino is also supported without the use of custom board definitions. Be sure to define USE_TINYUSB, which is done automatically when using a supported core and selecting TinyUSB for the USB Stack. See the TinyUSB example for implementation details.

It is not compatible with ATmega328 (Arduino Nano), STM8S103F3, teensy, or ESP8266 see list of architecture/platform for a detailed description why they are not supported.

In the rest of the documentation "Arduino" is used as a synonym for all supported boards regardless of the manufacturer.

When you have problems with a board not listed here, please open an Issue.

Install the libraries

To use this library you must install it with the Library-Manager. Open the Library-Manager in Arduino IDE via Tools->Manage Libraries... Search for "Corsair Lighting Protocol" and install the Corsair Lighting Protocol library. This library also requires the FastLED library. Search for "FastLED" in the Library-Manager and install the FastLED library. If using TinyUSB, also install the latest "Adafruit TinyUSB Library" as it supersedes some of the core versions.

Create a Lighting Node PRO with AVR

This guide will teach you how to create a Lighting Node PRO with an Arduino Leonardo compatible board. If you have an Arduino Uno or Mega, see the other guide.

  1. Open the example "LightingNodePRO", you can find it in Arduino IDE in the File menu->Examples->Corsair Lighting Protocol->LightingNodePRO. If you can't open the LightingNodePRO example the Corsair Lighting Protocol library is not installed correctly.

    open example sketch

  2. Install the CLP Boards. They can be installed by following the CLP Boards installation guide. After installation it should be possible to select the CLP Boards in the Arduino IDE as shown in the screenshot below. If your are using a Sparkfun Pro Micro also install the SparkFun Boards definition.

    select CLP Board

  3. Upload the "LightingNodePRO" sketch to your Arduino.

    upload sketch

  4. Do the wiring. For more information on how to wire the LEDs and how to set up the LEDs in the code see the links.

    the wiring

  5. Verify your device works as expected. Open the Windows settings->devices->Other devices. Somewhere in the list of devices, there should be a device called "Lighting Node PRO".

  6. Now open iCUE there you should see the "Lighting Node PRO".

If you have any problem during setup you may find the solution in the Troubleshooting section.

Create a Lighting Node PRO for a Raspberry Pi Pico with TinyUSB

This guide will teach you how to create a Lighting Node PRO with a Raspberry Pi Pico.

Note: FastLED currently does not support the RP2040 natively. You must manually merge support by modifying your library to include the 6 RP2040 platform files in the FastLED/src/platforms/arm/rp2040 folder and #elif defined(ARDUINO_ARCH_RP2040) / #include statements in led_sysdefs.h and platforms.h.

  1. Install the Raspberry Pi Pico Arduino core.

  2. Open the example "TinyUSB", you can find it in Arduino IDE in the File menu->Examples->Corsair Lighting Protocol->TinyUSB. If you can't open the LightingNodePRO example the Corsair Lighting Protocol library is not installed correctly.

  3. Select the Raspberry Pi Pico as shown in the screenshot below. Be sure to select the "Adafruit TinyUSB" USB Stack.

    select Raspberry Pi Pico

  4. Upload the "TinyUSB" sketch to your Pico.

  5. Do the wiring. For more information on how to wire the LEDs and how to set up the LEDs in the code see the links.

    A level shifter or buffer, like this one, is recommended in between the Pico and LEDs to translate the 3.3v logic level of the Pico IO to the 5v logic level of the LEDs. Your setup may not work reliably without one.

    the wiring

  6. Verify your device works as expected. Open the Windows settings->devices->Other devices. Somewhere in the list of devices, there should be a device called "Lighting Node PRO".

  7. Now open iCUE there you should see the "Lighting Node PRO".

Use the Lighting Node PRO

iCUE RGB Strip example

In iCUE open the "Lighting Setup" tab of the Lighting Node PRO(LNP) and set for both Lighting Channels the device to "RGB Light Strip" and the amount to a tenth of the LEDs you have. iCUE groups the LEDs into groups of ten. So if you have 20 LEDs, set the amount to 2. Now you can create lighting effects in the "Lighting Channel #" tabs.

Documentation

How it works

This library uses the USB HID interface of the ATmega32U4. After uploading a sketch with the library and selected CLP Boards, iCUE recognizes the Arduino as a Corsair device, because the CLP Boards use USB IDs of Corsair. In iCUE you can then select the device and set some lighting effects. iCUE sends these via the HID protocol to the Arduino. These commands are understood by the library and converted into lighting effects on the RGB strips connected to the Arduino. The FastLED library is used to control the LEDs.

Use of multiple devices

Each device has two unique IDs, that is, they should be unique. You must give each device a unique ID. There are two IDs that must be changed Serial Number and DeviceID.

The Serial Number can be set in the constructor of CorsairLightingProtocolHID and CLPUSBSerialBridge as shown in the example.

const char mySerialNumber[] PROGMEM = "202B6949A967";
CorsairLightingProtocolHID cHID(&cLP, mySerialNumber);

The Serial Number MAY only consist of HEX characters (0-9 and A-F).

The DeviceID can be set with the setDeviceID function of CorsairLightingFirmware.

void setup() {
    DeviceID deviceId = { 0x9A, 0xDA, 0xA7, 0x8E };
    firmware.setDeviceID(deviceId);
    ...
}

Alternative

The DeviceID can be changed with the DeviceIDTool. Upload the DeviceIDTool sketch and then open the Serial monitor with baudrate 115200. The tool displays the current DeviceID, you can type in a new DeviceID that is saved on the Arduino. After that, you can upload another sketch.

Repeat or scale LED channels

You can repeat or scale LED channel controlled by iCUE onto physical LED strips. This is very useful if you have very long LED strips that are longer than 60/96/135 LEDs, which is the maximum number iCUE supports.

To repeat or scale a LED channel you must apply the CLP::repeat or the CLP:scale function in the update hook of the FastLEDController. See the RepeatAndScale example for the complete code. Both functions take the FastLEDController pointer and the channel index as arguments. Additionally, the repeat function takes as an argument how often the LED channel should be repeated. For example, if you want to duplicate the channel you must pass 2 as argument. The scale function takes as third argument the length of the physical LED strip to which it scales the channel using integer scaling. For example you have 144 physical LEDs on you strip and 60 on the LED channel. Then the third argument of the scale function is 144.

For both functions it's important, that the CRGB arrays have at least the length of the physical LED strip. This means if your LED channel from iCUE has 50 LEDs and you use the repeat function to control 100 physical LEDs you MUST declare the CRGB array at least with a length of 100.

Increase the Brightness of the LEDs

When using LS100 or LT100 iCUE only uses 50% of the LEDs brightness even if you set the brightness to max in the iCUE Device Settings. But there are good news, we can increase the brightness with the Arduino so we can use the full brightness of our LEDs. Add the CLP::fixIcueBrightness function to the onUpdateHook in the setup function as shown in the example. If there are multiple functions called in onUpdateHook, fixIcueBrightness should be the first. Only use this function with LS100 and LT100 devices!

ledController.onUpdateHook(0, []() {
	CLP::fixIcueBrightness(&ledController, 0);
});

Reverse direction of LED Strip

If you want to change the direction of the LEDs of the Strip without physically change the strip, the CLP::reverse function can be used. The reverse function must be called be for scaling.

ledController.onUpdateHook(0, []() {
	CLP::reverse(&ledController, 0);
});

Hardware Lighting mode

The Hardware Lighting mode can be configured in iCUE. It allows you the set lighting effects that will be active when iCUE is not running. This is the case when the PC is off, in sleep mode, booting or the user is logged out. So if you want to have lighting effects in all these situations, use the Hardware Lighting mode. If you don't want it, configure a static black color.

License

This project is licensed under the Apache 2.0 License.

DISCLAIMERS

This is a DO IT YOURSELF project, use at your own risk!

Credits

Related projects

corsairlightingprotocol's People

Contributors

amahlaka avatar calcprogrammer1 avatar dependabot[bot] avatar fanman03 avatar kauezatarin avatar legion2 avatar per1234 avatar spegs21 avatar tylerseiford avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

corsairlightingprotocol's Issues

Change HID response size to 16

According to audiohacked/OpenCorsairLink#70 the responses received from device(this library) are 16 bytes long.
The same holds for System Information View only displays 16 bytes of the response.

Currently responses are send with 64 bytes filled with zero bytes.
To prevent problems with to many bytes in the response and speedup the protocol and reduces the memory usage, the response size should be reduced to 16 bytes.

Therefore multiple changes must be applied:

  • change RESPONSE_SIZE to 16
  • only send 16 bytes with RawHID.write()
  • change RAWHID_TX_SIZE to 16 and check USB and HID works correctly

Support for Arduino Uno, Mega

Add support for Arduino boards without a ATmega32U4. Using HoodLoader2 to enable the USB functions of the 16u2 and using it as a bridge to the 328/2560 MCU.
This requires to split the USB protocol stuff from the LED IO handling. The commands between the two are send via HW Serial.

This way we workaround the memory and io pin limitation of the 16u2.

Fan noise while using PWM on Commander PRO

I have built a circuit for the commander PRO and I am using the PWM signal to drive an N channel MOSFET to run the 12v fans pulsing the negatice rail. I use the same technique on my 3D printers. However anything less then a 100% duty cycle spins the fans ok but makes the fans noisy where you can here the PWM pulsing from the fan. like a background buzzing. I have tried multiple types of fans.

I Tried changing the fan update rate from 500 to a lower value but it didnt seem to make any difference.

Hardware related (Custom)

Hey, this is not much of a problem I'm having, nor is it directly a feature.

But I'm thinking about making a custom PCB with 2 controller chip onboard to utilize both USB's in the USB front header on the motherboard, for a total of 4 LED strip channels, on one board with one connection and one Molex power port in.

For this I'm wondering how the fans would map out in terms of port usage on the device, are they on their own individual io port or do they map into the same two channels, or maybe something else?

Thinking of using two ATmega8U2 for the MCU's, but I don't know if you got some info about if they are directly compatible, else I'll just use the bigger ATmega32U4.

Anything else I should look at what might be useful in such a board, basically two Pros in one package.

-Andreas

Implement Rainbow channel effect

iCUE 3.19 or 3.20 added the Rainbow Channel lighting effect for HW Playback for fans and strips. This effects use the Group mode 0x00 (GROUP_MODE_Rainbow_Wave) and therefore looks like a Rainbow Wave in the protocol, but with ledCount of 96. Even with lighting strips with max 60 leds the ledCount is set to 96. This cause a crash (buffer overflow) in CLP.

Step by step guide

Hi,

I would really appreciate a step by step guide especially overcoming the led limits and maybe add Spec Omega lighting node - 30 led Spec Omega case strip?

I created a guide on YouTube but it is probably not that accurate. I won’t link it here, but it can be found under “Arduino ARGB Corsair Lighting Protocol Corsair Lighting Node Pro Corsair iCUE”.

Ps. I have linked your project in the video as I think this is a great project.

Research about the LNP bootloader

The bootloader of the LNP has VID 1B1C and PID 0C0C (Lighting Node Loader).
The bootloader is a HID device like the LNP.

Open questions:

  • is the bootloader USB interface available while the LNP USB interface is active?
  • is the bootloader needed for iCUE to detected the LNP as a device?
    no, tested with new installed iCUE and the Arduino was recognized as LNP
  • HID protocol of the bootloader.

useful links http://forum.corsair.com/forums/showthread.php?p=892386

Not showing up as Corsair Lightning node pro

I have a chinese pro micro with sparkfun bootloader. I upload the simple LightningNodePro sketch, and it doesnt show up as a LightningNodePro in windows...
I am using arduino IDE.

Make it possible to reset a CLP Device

If the device have any problem caused by broken state of the EEPROM it should be possible to reset the device. The reset must happen before the main loop of arduino, because the loop may crash with the broken state. So to trigger a reset the special DeviceID FF FF FF FF is introduced. If the CLP is started with this DeviceID it will reset everything stored in the EEPROM and change the DeviceID to 00 00 00 00. This will also help to fix #42 because EEPROM have all bits set in its initial state.

Lighting node pro sp120 fans not working

I'm having trouble getting my Chinese arduino (atmega32u4) to work.
I've gotten to the point where iCue recognizes it, but its not working
I've set it up for 6 sp120 fans but they are not lighting up.

I've connected the data wire to pin 2 and ground to ground.
IMG_20190717_185503

I'm using the example code for the lighting node pro because i'm rather new to coding

Arduino is not detected as LNP on first use

Describe the bug
After uploading an example sketch to the arduino, iCUE does not detect it.

To Reproduce
Steps to reproduce the behavior:

  1. User example sketch without changes
  2. Upload the sketch
  3. See iCUE shows nothing

Expected behavior
iCUE detects the Arduino as LNP and LEDs can be controlled.

System (please complete the following information):

  • OS: Windows 10
  • Board: PRO Mirco
  • IDE: Visual Studio
  • Version: 0.5.0
  • Sketch: LightingNodePRO

Code changes
None

Related

  • #39 Icue dont show my "Lighting node pro"
  • #33 lightnodepro not installing as hid i think
  • #29 ICUE does not identify.

Issue with Strip Scaling

Hi, I have a single strip of 210 WS2182B connected and when I use the scaling function, the strip works for a few seconds and then starts blinking all on/off. When I set the scale back down to 150 it seems to start working again. Any idea?

Code I'm using:

#include <CorsairLightingProtocol.h>
#include <FastLED.h>

#define DATA_PIN_CHANNEL_1 2

CRGB ledsChannel1[210];

CorsairLightingFirmware firmware = corsairLightingNodePROFirmware();
FastLEDController ledController(true);
CorsairLightingProtocolController cLP(&ledController, &firmware);
CorsairLightingProtocolHID cHID(&cLP);

void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN_CHANNEL_1>(ledsChannel1, 210);
  ledController.addLEDs(0, ledsChannel1, 60);
  ledController.onUpdateHook(0, []() {
    CLP::scale(&ledController, 0, 210);
  });
}

void loop() {
  cHID.update();

  if (ledController.updateLEDs()) {
    FastLED.show();
  }
}

5050 Leds

Is it possible for me to use this to control 4 pin 5050 leds while still using the corsair protocol?

better support for longer led strips

Currently the maximum led strip length using 2 x 6 RGB Strips in iCUE is 120 leds. It is possible to use 2 x 6 LL Fans in iCUE, to get a total of 192 leds. But the LL fans (and other fans) do not have a linear LED arrangement, so animations for the fans don't look good on the linear led strip.

To fix this problem the leds must be reordered in memory before sending the signal to the strip. The reordering should make animations look good on led stips, even when using fan in iCUE.

Icue dont show my "Lighting node pro"

I made all steps, the corsair link reconize my arduino but on icue no. I already changed the serial and did all steps. You have any ideia to fix my problem? I have one Arduino Uno

Issue with compiling for Arduino Uno

I succesfully flashed hoodloader.
but if i want to compile the code i get this error:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x20 pc=0x786d1e]

goroutine 1 [running]:
github.com/arduino/arduino-cli/legacy/builder.(*SetupBuildProperties).Run(0xdebc68, 0x11cd65a0, 0xdebc68, 0x11f5c7f0)
	/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/setup_build_properties.go:93 +0xd2e
github.com/arduino/arduino-cli/legacy/builder.(*ContainerSetupHardwareToolsLibsSketchAndProps).Run(0xdebc68, 0x11cd65a0, 0xdebc68, 0xdda500)
	/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/container_setup.go:92 +0x54f
github.com/arduino/arduino-cli/legacy/builder.runCommands(0x11cd65a0, 0x11c71f0c, 0x2, 0x2, 0xffffff01, 0x0, 0x4)
	/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:210 +0xbd
github.com/arduino/arduino-cli/legacy/builder.(*ParseHardwareAndDumpBuildProperties).Run(0x11c71f40, 0x11cd65a0, 0xdebbb4, 0x11c06ca8)
	/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:198 +0xbc
github.com/arduino/arduino-cli/legacy/builder.RunParseHardwareAndDumpBuildProperties(...)
	/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-cli/legacy/builder/builder.go:231
main.main()
	/home/jenkins/workspace/arduino-builder-all-cross-cli-inception/src/github.com/arduino/arduino-builder/main.go:388 +0x772
C:\Program Files (x86)\Arduino\arduino-builder gab 2 zurück

Fehler beim Kompilieren für das Board CLP HoodLoader2 16u2.

Verify the data loaded from EEPROM

Currently data from EEPROM is directly loaded into the internal state data structure and then used in the program. If the program runs for the first time, the EEPROM does not contain a valid stored state, but it gets loaded and used anyway. This results in issues like #42.

To resolve this issue an verification method must be implemented, that uses a checksum or hash of the state stored in EEPROM to verify it's integrity and restore default values if the EEPROM does not contain a valid state.

LS100, Lagging on whole Setup

Some kind package Bug
When I connect the LS100 (running on Arduino Pro Micro) the whole Setup starts hanging and lagging on some points.

More than 2 channels

Hello,

Is it possible to configure for more than 2 channels in 1 device? I saw that we can define CHANNEL_NUM in LedController.h. If I set it to let say 3 channels and modify LightingNodePRO.ino to add the extra channel, will it work?
Thank you.

Create a guide on how to setup ambient backlight with Arduino and iCUE

The new Smart Lighting Controller from Corsair which is included in the iCUE LS100 Smart Lighting Strip Starter Kit can be used to create ambient lighting with iCUE including ambient backlight. The Smart Lighting Controller uses the same protocol as the LNP and therefore can be faked with this library.
To make it easier to create an ambient lighting with custom LED strips and an arduino a guide should be provided that explains all steps necessary.

This depends on improvements from #57 ,#62 and the ability to create a Smart Lighting Controller #67 .

Problems with Beetle Leonardo USB ATMEGA32U4 mini

Sorry for that I have no experice with that device. I follow the manual and flash the example (without any changes) code to my USB Key with 32U4 in VS2019.

  1. in Windows device manager I can only see a "new" serial device. VID and PID seems ok.
  2. I downloaded USBDeview. There I can see after plug in one serial device and a 2nd one with right name.
  3. If I start iCUE 3.22.74 there is shown in setup "no device found".
    If I start Corsair Link 4 there is shown in a frame: "Lighting Node Pro - This device is controled by iCUE

I'm a little bit confused. Hope you can help me.

Support Spec Omega case as device

The Spec Omega case includes led strips with a total of 30 leds, thes are controlled by a speacial controller, probably similar to a LNP but with different USB PID.
To support the 30 led strip we need the Spec Omega case contoller USB PID.

Unable to flash Uno Mega controller

Describe the bug
HoodLoader2UnoMegaController project wont compile. I am not much programming savvy and i use Arduino IDE always so i am a little lost when it comes properly reporting. I will attach as many screenshots as possible :D. I have included all libraries.

Compiling Screen1
Debug window1
Debug window2
Error Window 1

System (please complete the following information):

  • OS: Win 10
  • Board: Legit Arduino Uno with HoodLoader2 properly installed on 16u2
  • IDE: Visual Studio 2019
  • Version: Latest commit, downloaded as zip
  • Sketch: HoodLoader2UnoMegaController.ino

Code changes
None

ICUE does not identify.

Was using version 0.3.0, was working everything right identified in the application. I ended up getting a new arduino, I went to the version 0.4.0 in the new arduino and without wanting to finish what was working. now it does not identify anymore in the icue, if a mute the PID = 0c0b for PID = 0c0c it appears only that it is the same as the image. and in the new arduino the same thing.

Better Arduino IDE support for common boards

To make it simpler to use this library with the Arduino IDE the boards.txt for common boards like Arduino Uno, Mega and SparkFun PRO Micro should be provided. Also a package_index.json should be provided as described here to make the import of the custom boards in Arduino IDE simple.

Controll RGB Strip with FastLED

Use the FastLED library to controll RGB strips.
The Colors and effects are set by the Corsair Lighting Protocol.

  • Hardware playback
    • Rainbow_Wave
    • Color Shift
    • Color Pulse
    • Color Wave
    • Static
    • Temperature
    • Visor
    • Marquee
    • Blink
    • Sequential
    • Rainbow
  • Software playback (iCUE)

lightnodepro not installing as hid i think

Describe the problem
i have the same problem as #17
it did install correctly the first time but it did not work so i uninstalled it and re-plugged my arduino and now it just says unknown device under com ports

Screenshots
b5f22958ff1c4d6d6abb0082fae8af93
f46d9e4192abb64675bff52f258b9fa4

System (please complete the following information):

  • OS: Windows 10
  • Board: Pro Micro
  • IDE: Arduino IDE
  • Version: 0.3.0 all the way to 0.5.0
  • Sketch: LightingNodePRO

Code changes
Did you changed the code of the library or the sketch?
no i did not edit anythning

CLP As Corsair MM800

Hello Legion2, I really like your CLP. Is it possible to make the leds controlled using CLP as a Corsair MM800 RGB Mousepad?
I have succesfully managed to make the arduino detected as MM800 RGB in Device, but it doesnt detected in iCUE.
Thanks.

Issue with LS100 and clone pro micro

Describe the bug
Using a clone Pro Micro (5v), when uploading the LS100 example sketch, the lighting channels don't work or light up (sometimes will work with rainbow swirl effect but cannot be changed in iCue). The Pro Micro is detected in iCue as an LS100 device.

When uploading any other sketch (Node Pro, Node Core, Commander Pro), everything works as expected and lighting channels can be controlled in iCue.

When uploading a Node Pro sketch but choosing "Smart Lighting Controller" as the device, the lighting channels can be controlled and the Pro Micro is detected as a LS100 device but the gamma correction from release 0.9.0 isn't applied.

I'm using a clone pro micro and reflashed the bootloader so I don't have to short the RST pins to upload any sketches.

Doesn't matter which pins were used, although I've had the sketch work once with the exact same configuration but with release 0.8.0 and board library 0.1.1. Suddenly stopped working again

edit: Planning on upload the STL for an LS100 style enclosure when everything is working

To Reproduce
Steps to reproduce the behavior:

  1. Choose "CLP SparkFun Pro Micro 5V, 16MHz"
  2. Choose "Smart Lighting Controller"
  3. Upload example "LS100" sketch

Images
LS100
Current wiring and setup. Shouldn't be an issue as using the Node Pro sketch is working as expected

System (please complete the following information):

  • OS: Windows 10 x64 1909 & Windows 10x64 1903
  • Board: Clone Pro Micro 5V, 16MHz
  • IDE: Arduino IDE 1.8.10
  • Version: 0.8.0 & 0.9.0, Board Library 0.1.1 & 0.1.2
  • Sketch: LS100

Code changes
Tested sketch with default pins but same issue. Preferred pins are 9 & 10 for the lighting channels and pin 14 for the LS100 button.

Make iCUE detect the Arduino correctly

Link 4 detects and displays the Arduino (Lighting Node PRO) in the UI.
In iCUE it does not show up. Only the USB disconnected sound is heard and the USB activity LED is flashing on start up of iCUE. No HID Reports are received by RawHID.
The following is logged by iCUE:

cue.dev: Device vid=1b1c pid=c0b ignored by HidDeviceEnumerator

Create documentation for the CLP API

API that must be documented:

  • FastLEDController/LEDController/ILEDController
  • TemperatureController/ITemperatureController
  • FanController/IFanController
  • CorsairLightingProtocolSerial/CorsairLightingProtocolHID

add off button for LS100

Hi
First of all thanks for your great job ^^
i use LS100 in ProMicro board , when i turn off PC ls100 still work
i realize the orginal ls100 have a poweroff button on it for this situation
its possible to add this button to LS100?
(sorry for my bad english >
<)

Add support for WS2801?

Ì have some meters of WS2801 at home. Is it possible to add support for this kind of LED stripe?

Support Commander PRO Features

Make it possible to create a Commander PRO with this library, so the the protocol is fully implemented.
Features that a Commander PRO have in addition to that of a LNP:

  • temperature sensors
  • voltage measurement
  • fan control
  • fan speed sensor

Improve the installation guide structure

To use Corsair Lighting Protocol multiple things must be installed and configured. Currently they all have there own guides and are linked to each other.

TODO:

  • better link the guides, and give them names
  • add verification steps, to verify the steps were followed correctly

Add support for customizable gamma for LS100

Since #90 fixed issues with OOM with the atmega32u4, next enhancement I see is to add the ability to change the gamma correction but have it default to 2.0 (currently it's hardcoded to 2.0) and only have it affect the video lighting mode.

With the specific strips I currently have, some only need a correction of 2.2 but some need as high as 3.0 or 3.5 (when being used with adalight instead of CLP).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.