Coder Social home page Coder Social logo

awawa-dev / hyperserialesp8266 Goto Github PK

View Code? Open in Web Editor NEW
33.0 2.0 62.0 69 KB

High speed 2Mb USB serial port LED strip HyperHDR driver using Esp8266 device.

Home Page: https://hyperhdr.blogspot.com

License: MIT License

C++ 82.60% Python 0.98% C 16.42%
esp8266 adalight hyperhdr ambilight usb ws8212b sk6812 rgbw arduino serialport

hyperserialesp8266's Introduction

HyperSerialEsp8266

Exposes USB high speed serial port at 2Mb baud for driving led strip using NeoPixelBus library. It's intended to replace slow Arduino solutions (level shifter 3.3V to 5v may be required). Data integrity check (Fletcher's checksum) included in new 'Awa' protocol for HyperHDR. So no more random flashing caused by serial transmission errors. That option must be checked in HyperHDR to make system works as on the screen below.

Make sure that your serial chip on the ESP8266 can handle 2Mb speed: for example CP2102 can't as its max speed is 1Mb and you can compile a version for that speed but I think that's not the point, cheap CH340G can do it without any problems. CH9102x also should work for you, even at 4Mb speed.

There is also my new fork named HyperSerialWLED available with the support for the AWA serial protocol at @2Mb speed for both ESP8266 and ESP32: https://github.com/awawa-dev/HyperSerialWLED Can't guarantee it will work as stable as HyperSerialEsp8266 because WLED has a lot of other things to do in the backgrounds (ex. handling Wifi) and timing control for the serial port could be at danger for larger number of LEDs. But you don't need to abandon all the benefits offered by the WLED which can be a big advantage for some users.

Tested with SK6812 RGBW and cheap 1.75$ noname clone of Wemos ESP8266 d1 mini CH340G. The data output is on the GPIO2 (D4 pin for Wemos mini d1), just like WLED for example. Should work with 3-channel RGB led system like WS8212b also.

RGB to RGBW conversion is calibrated for the neutral white channel BTF SK6812 but it can be easily changed (for cool and warm temperature) in the code. Search for "color calibration". In HyperHDR use "1.5" gamma for red, blue and green for best effect in the "Image Processing" tab.

LED strip / Device HyperSerialEsp8266
SK6812 cold white yes
SK6812 neutral white yes
WS281x yes
SPI (APA102, SK9812, HD107...) yes

Example of supported boards

Esp8266 Wemos D1 mini (CH340) and Wemos D1 mini pro (CP2104)

Data integrity check

Why the data integrity check was introduced which causes incompatibility with other software? Because at 2Mb speed many chip-makers allow few percent error in the transmission. And we do not want to have any distracting flashes. Broken frames are abandon without showing them. At 100Hz for 250 leds approximately 1-5% of the frames are broken.

Why not Arduino, Raspberry Pi or WLED

Because Arduino is slow, really slow even at @500000 baud. And no data integrity checking so random flashing may occure... Increasing serial port speed leads to problems with the LED library as most ATMega are at 16MHz only (for comparision Esp8266 is at 80/160MHz). For over 200leds and RGB channel we have merely ~20 frames. For RGBW is even worse. The only advantage of Arduinos is logic at 5V. For Esp8266 level shifter 3.3V to 5V may be required. You can find example of simply and efficient one here: Level shifter for 3.3V logic level

Rpi is very powerful device but for the SK6812 and WS2812b protocol timing of transmission is crucial. It's hard to maintain it in the multitasking environment.

WLED is a brilliant app and it's preffered solution in most cases. But sometimes Wifi is not an option: there is a problem with the signal strenght/stability caused by EM interference or obstacles which results in disturbing effects from the LED strip.You can also try https://github.com/awawa-dev/HyperSerialWLED if you don't want to abandon WLED benefits or you are looking for a version for ESP32.

Arduino: 250 RGB leds, 500000 baud, 100 Hz output from HyperHDR, real output for the LED strip is around 20Hz.
With such slow hardware driver you don't even need 30FPS from the grabber really:

p100

With HyperSerialEsp8266 you can have over 100Hz refresh rate for 250 RGB and over 80HZ for 250 RGBW LED strips.
 

Statistics are sent to serial port monitor when there is no data incoming. You can read it with any serial port client. This driver is not hiding any information from you.

Flashing

Recommend to use esphome-flasher

For RGBW LED strip like RGBW SK6812 NEUTRAL white choose: firmware_SK6812_RGBW_NEUTRAL.bin

For RGBW LED strip like RGBW SK6812 COLD white choose: firmware_SK6812_RGBW_COLD.bin

For RGB LED strip like WS8212b or RGB SK6812 variant choose: firmware_WS281x_RGB.bin

For SPI driven RGB LED strip APA102: firmware_SPI_APA102_SK9822_HD107.bin, WS8201: firmware_SPI_WS2801.bin

If you want to disable your first LED because it's used as a sacrificial level shifter, please use HyperHDR v19

For the RGBW firmware the white channel is automatically calculated and R,G,B channels are corrected.

Using esphome-flasher:

Usage in HyperHDR

Set Refresh time to zero, Baudrate to 2000000 and you enabled HyperHDR's AWA protocol.
Enabling White channel calibration is optional, if you want to fine tune the white channel balance of your sk6812 RGBW LED strip.
ESP8266/ESP32 handshake could help you to properly initialize the ESP device and enables statistics available in the logs (you must stop the LED device first to get them).

obraz

Benchmarks

Refresh rate depending on requested refresh rate/LED strip length:

RGBW LED strip / Device WeMos D1 Mini Pro (CP2104)
HyperSerialEsp8266 v8
300LEDs
Refresh rate/continues output=100Hz
71-75
600LEDs
Refresh rate/continues output=60Hz
34-35
900LEDs
Refresh rate/continues output=40Hz
23

Logic level analyzer, RGB (250 leds, 100Hz)

Logic level analyzer, RGBW (250 leds, 100Hz)

Compiling

Currently we use PlatformIO to compile the project. Install Visual Studio Code and add PlatformIO plugin. This environment will take care of everything and compile the firmware for you. Low-level LED strip support is provided by the https://github.com/Makuna/NeoPixelBus library.

But there is also an alternative and an easier way. Just fork the project and enable its Github Action. Use the online editor to make changes to the platformio.ini file, for example change default pin-outs/speed or enable multi-segments support, and save it. Github Action will compile new firmware automatically in the Artifacts archive. It has never been so easy!

Tutorial: https://github.com/awawa-dev/HyperSerialEsp8266/wiki

Pinout

ESP8266:
For non-SPI LED strip data pin is GPIO2 (usually D4).
For SPI LED strip is: GPIO13 (MOSI, usually D7) and GPIO14 (SCLK/CLOCK, usually D5).

Disclaimer

You use it on your own risk.
Don't touch these firmwares if you don't know how to put the device in the programming mode if something goes wrong.
As per the MIT license, I assume no liability for any damage to you or any other person or equipment.

hyperserialesp8266's People

Contributors

astarom avatar awawa-dev 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

Watchers

 avatar  avatar

hyperserialesp8266's Issues

HDR too dark

Hey guys,
i'm using the latest v19 with an Elgato HD60X. Works perfectly with the pre generated LUT.

My only issue is, that HDR content is captured way to dark. When i push the hardware brightness to 170 it's perfect on HDR, but too bright on SDR.

Is there a way too automatically switch that when SDR/HDR changes?

Device disabled, device 'adalight' signals error

Hello

I installed the HyperHDR in my RPi 3 with wemos di mini
Flashed it with HyperSerialEsp8266 with first led disabled, but when I select the 'adalight' as Controller type (as instructed with that baudrate) it gives me error as nothing works
Log shows:
[hyperiond LEDDEVICE] (ERROR) Device disabled, device 'adalight' signals error: 'Timeout writing data to ttyAMA0'

My python program can't work with HyperSerialEsp8266

I have written a program in which the packet sent to HyperSerialEsp8266 has the following:

def test_packet(data: np.ndarray, color_order: str):
    pixel_length = len(data)
    packet = bytearray([
        ord('A'), ord('w'), ord('a'),
        (pixel_length >> 8), (pixel_length & 0x00FF)
    ])
    packet.append(packet[3] ^ packet[4] ^ 0x55)  # CRC

    byteData = data.astype(np.dtype('B'))

    # Rearrange colors based on the color_order
    # ... (as before)

    # Add color data to the packet
    for color in byteData:
        packet.append(color[0])  # Red
        packet.append(color[1])  # Green
        packet.append(color[2])  # Blue

    # Fletcher checksum
    fletcher1 = sum(packet[6:]) % 255
    fletcher2 = (sum(packet[6:]) + fletcher1) % 255
    packet.append(fletcher1)
    packet.append(fletcher2)

    return packet

however ws2812b shows nothing after running the . Am I wrong somewhere? can you help me fix it?

Im using python 3.11.4, windows 10, wemos d1 mini pinout D4, Led ws2812b, baud 1000000 and works well with HyperHDR

Troubleshooting

I've got an ESP8266 (NodeMCU v3 CH340 https://www.amazon.com/gp/product/B09F8GCVC8/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&th=1) with some WS2812B RGBNW and for some reason its just not doing anything. Logs don't say much https://pastebin.com/P0qma9DR. I know the LEDs work (tested them with ESPHome).

I flashed it successfully. I've tried different USBs to connect from the Pi to the NodeMCU and connected them to Gpio 2 (D4). I am at a complete loss. It sees the device but I don't know what I'm doing wrong.

Suggestions?

Desperate for help - Cannot communicate with LEDs through ESP8266

I'd like to preface that this is most likely not an issue with hyperSerialEsp8266, but I don't know where to turn to at this point.

I've successfully managed to flashed my ESP8266 ESP-12F D1 Mini Module (CH340) (purchased here: https://www.amazon.ca/dp/B09X389JFJ?psc=1&ref=ppx_yo2ov_dt_b_product_details) with firmware_SK6812_RGBW_NEUTRAL.bin

My SK6812 LED strip lights up fine and according to the logs in hyperHDR, it appears it's able to interface with the ESP8266 through adalight COM3. The ESP8266 is connected through USB on the WIN PC running HyperHDR.

However, any attempt to change colors in hyperHDR does absolutely nothing.

Here are my configuration and logs:
image
image

2024-01-07T17:08:05.695Z [MAIN] TTY is not attached to the log output
2024-01-07T17:08:05.695Z [MAIN] Database path: 'C:/Users/Michel/.hyperhdr/db/hyperhdr.db', readonlyMode = disabled
2024-01-07T17:08:05.695Z [MAIN] Starting HyperHdr - 20.0.0.0beta1, (HEAD detached at v20.0.0.0beta1) (GitHub-ccd22a1/558c7e0-1703192848), built: Dec 23 2023:14:34:46
2024-01-07T17:08:05.695Z [MAIN] Set user data path to 'C:/Users/Michel/.hyperhdr'
2024-01-07T17:08:05.695Z [INSTANCE_CFG] Loading instance configuration
2024-01-07T17:08:05.697Z [DB] Database opened: C:/Users/Michel/.hyperhdr/db/hyperhdr.db
2024-01-07T17:08:05.711Z [INSTANCE_CFG] Settings database initialized
2024-01-07T17:08:05.715Z [SOUND_GRABBER] Sound device is disabled
2024-01-07T17:08:05.778Z [JSONSERVER] (JsonServer.cpp:26) Created new instance
2024-01-07T17:08:05.782Z [JSONSERVER] Started on port 19444
2024-01-07T17:08:05.782Z [SSDP] (SSDPHandler.cpp:31) SSDPHandler is initialized
2024-01-07T17:08:05.782Z [MAIN] start systray
2024-01-07T17:08:05.743Z [Media Foundation:auto] (GrabberWrapper.cpp:55) Starting the grabber wrapper
2024-01-07T17:08:05.743Z [MEDIA_FOUNDATION:AUTO] Starting to enumerate video capture devices
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:427) Detected 0 devices
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] Restarting video grabber is now blocked due to reloading of the configuration
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] Cropping image: width=0 height=0; crop: left=0 right=0 top=0 bottom=0
2024-01-07T17:08:05.744Z [Media Foundation:auto] (GrabberWrapper.cpp:126) CEC keycode. Start: 0, stop: 0
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] (Grabber.cpp:273) setBrightnessContrastSaturationHue nothing changed
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:185) setHdrToneMappingMode to: Disabled
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] (Grabber.cpp:182) setFpsSoftwareDecimation to: 1
2024-01-07T17:08:05.744Z [HYPERHDR0] Starting the instance
2024-01-07T17:08:05.744Z [INSTANCE_CFG0] Loading instance configuration
2024-01-07T17:08:05.744Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
2024-01-07T17:08:05.744Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {12, 12, 12} and frames: 200
2024-01-07T17:08:05.744Z [SIGNAL_AUTO] (DetectionAutomatic.cpp:376) Automatic signal detection -> errorTolerance: 9, modelTolerance: 90, sleepTime: 5000, wakeTime: 1000
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] (Grabber.cpp:380) setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'auto'
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] Delayed restart of the grabber due to change of selected device
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] (Grabber.cpp:200) Force encoding to: NO_CHANGE (old: NO_CHANGE)
2024-01-07T17:08:05.744Z [MEDIA_FOUNDATION:AUTO] setQFrameDecimation is now: disabled
2024-01-07T17:08:05.745Z [DB] Database opened: C:/Users/Michel/.hyperhdr/db/hyperhdr.db
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] Restarting video grabber is now blocked due to reloading of the configuration
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] (Grabber.cpp:159) Set new width: 512, height: 512 for capture
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] (Grabber.cpp:335) setWidthHeight preparing to restarting video grabber 0
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] Delayed restart of the grabber due to change of the capturing resolution
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] Delayed restart of the grabber due to change of the framerate
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] (DxGrabber.cpp:125) setHdrToneMappingMode to: Disabled
2024-01-07T17:08:05.746Z [SIGNAL_OLD] (DetectionManual.cpp:84) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
2024-01-07T17:08:05.746Z [SIGNAL_OLD] (DetectionManual.cpp:74) Signal threshold set to: {12, 12, 12} and frames: 200
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] (Grabber.cpp:380) setDeviceVideoStandard preparing to restart video grabber. Old: '' new: 'auto'
2024-01-07T17:08:05.746Z [DX11_SYSTEM:AUTO] Delayed restart of the grabber due to change of selected device
2024-01-07T17:08:05.764Z [INSTANCE_CFG0] Settings database initialized
2024-01-07T17:08:05.764Z [COMPONENTCTRL0] (ComponentController.cpp:30) ComponentController is initialized
2024-01-07T17:08:05.766Z [BLACKBORDER] Set mode to: default
2024-01-07T17:08:05.766Z [IMAGETOLED_MNG0] (ImageToLedManager.cpp:192) Set LED mapping type to unicolor_mean
2024-01-07T17:08:05.766Z [IMAGETOLED_MNG0] (ImageToLedManager.cpp:176) setSparseProcessing to 0
2024-01-07T17:08:05.766Z [IMAGETOLED_MNG0] (ImageToLedManager.cpp:103) ImageToLedManager initialized
2024-01-07T17:08:05.766Z [MUXER0] (Muxer.cpp:55) Muxer initialized
2024-01-07T17:08:05.766Z [COLORSPACE_CALIBRATION0] classicMode: no, gammas:[1.50, 1.50, 1.50], saturation: 1.00, luminance: 1.00, backLight: [enabled, threshold: 1, colored: yes]
2024-01-07T17:08:05.766Z [LED_CALIBRATION0] (LedCalibration.cpp:101) Calibration config '0' for LED segment: [0, 299]
2024-01-07T17:08:05.767Z [HYPERHDR0] Led strip RGB order is: rgb
2024-01-07T17:08:05.767Z [SMOOTHING0] High resolution clock is steady (good)
2024-01-07T17:08:05.767Z [SMOOTHING0] Creating config (0) => type: Alternative, dirMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2024-01-07T17:08:05.767Z [SMOOTHING0] Clearing queued colors before: disabling. Smoothing configuration changed: restarting timer.
2024-01-07T17:08:05.767Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:08:05.767Z [SMOOTHING0] Selecting config (0) => type: Alternative, directMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2024-01-07T17:08:05.767Z [SMOOTHING0] Selecting config (0) => type: Alternative, directMode: false, pause: false, settlingTime: 150ms, interval: 20ms (50Hz), antiFlickTres: 32, antiFlickStep: 2, antiFlickTime: 250
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] Start LedDevice 'adalight'.
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:310) deviceConfig: [{"awa_mode":true,"colorOrder":"rgb","currentLedCount":300,"espHandshake":true,"maxRetry":0,"output":"COM3","rate":2000000,"refreshTime":0,"smoothingRefreshTime":0,"type":"adalight","white_channel_blue":255,"white_channel_calibration":true,"white_channel_green":255,"white_channel_limit":100,"white_channel_red":255}]
2024-01-07T17:08:05.783Z [HYPER_MANAGER] HyperHDR instance 'First LED instance' has been started
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:406) Refresh interval updated to 0ms
2024-01-07T17:08:05.768Z [HYPERHDR0] The instance is running
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:49) DeviceType : adalight
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:50) LedCount : 300
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:51) RefreshTime : 0
2024-01-07T17:08:05.768Z [MUXER0] Register new input 'System/VIDEOGRABBER' with priority 240 as inactive
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:65) Device name : COM3
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:66) Auto selection: 0
2024-01-07T17:08:05.768Z [COMPONENTCTRL0] Video capture device: enabled
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:67) Baud rate : 2000000
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:68) ESP handshake : ON
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:69) Delayed open : 0
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:70) Retry limit : 0
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (LedDeviceAdalight.cpp:79) Adalight driver with activated high speeed & data integration check AWA protocol
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (LedDeviceAdalight.cpp:89) Adalight header for 300 leds: AwA 0x01 0x2b 0x7f
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (LedDeviceAdalight.cpp:45) White channel limit: 255, red: 255, green: 255, blue: 255
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:220) Enable the device
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] Opening UART: COM3
2024-01-07T17:08:05.768Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:206) _serialPort.open(QIODevice::ReadWrite): COM3, Baud rate [2000000]bps
2024-01-07T17:08:05.768Z [MEDIA_FOUNDATION:AUTO] Multithreading for MEDIA_FOUNDATION is enabled. Available thread's count 4
2024-01-07T17:08:05.768Z [MEDIA_FOUNDATION:AUTO] Starting to enumerate video capture devices
2024-01-07T17:08:05.768Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:427) Detected 0 devices
2024-01-07T17:08:05.768Z [MEDIA_FOUNDATION:AUTO] (MFGrabber.cpp:262) Forcing auto discovery device
2024-01-07T17:08:05.768Z [MEDIA_FOUNDATION:AUTO] Could not find any capture device
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:211) portName: COM3
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:212) systemLocation: \.\COM3
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:213) description: USB-SERIAL CH340
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:214) manufacturer: wch.cn
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:215) productIdentifier: 0x7523
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:216) vendorIdentifier: 0x1a86
2024-01-07T17:08:05.769Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:217) serialNumber:
2024-01-07T17:08:05.784Z [WEBSERVER] Initialize Webserver
2024-01-07T17:08:05.784Z [FLATBUFSERVER] Started on port 19400
2024-01-07T17:08:05.784Z [FLATBUFSERVER] Started local domain socket server: 'hyperhdr-domain'
2024-01-07T17:08:05.787Z [WEBSERVER] Apply Webserver settings
2024-01-07T17:08:05.787Z [WEBSERVER] Set document root to: :/www
2024-01-07T17:08:05.787Z [WEBSERVER] Started: 'HyperHDR WebServer (HTTP)' on port: 8090
2024-01-07T17:08:05.787Z [SSDP] (SSDPHandler.cpp:93) The local address is empty
2024-01-07T17:08:05.787Z [WEBSERVER] Initialize Webserver
2024-01-07T17:08:05.787Z [WEBSERVER] Apply Webserver settings
2024-01-07T17:08:05.787Z [WEBSERVER] Set document root to: :/www
2024-01-07T17:08:05.852Z [WEBSERVER] Setup SSL certificate
2024-01-07T17:08:05.852Z [WEBSERVER] Setup private SSL key
2024-01-07T17:08:05.853Z [WEBSERVER] Started: 'HyperHDR WebServer (HTTPS)' on port: 8092
2024-01-07T17:08:05.853Z [SSDP] (SSDPHandler.cpp:42) SSDPHandler is initializing
2024-01-07T17:08:05.855Z [SSDP] (SSDPHandler.cpp:183) The local address is: 192.168.0.192
2024-01-07T17:08:05.855Z [SSDP] (SSDPServer.cpp:95) Initialize the SSDP server
2024-01-07T17:08:05.855Z [WEBSERVER] (StaticFileServing.cpp:68) SSDP description is set up
2024-01-07T17:08:05.855Z [SSDP] Starting the SSDP server
2024-01-07T17:08:05.913Z [NETFORWARDER] Forwarder has changed state to disabled
2024-01-07T17:08:06.019Z [MUXER0] Set visible priority to 255
2024-01-07T17:08:06.019Z [HYPERHDR0] New priority[255], previous [255]
2024-01-07T17:08:06.019Z [HYPERHDR0] No source left -> switch LED-Device off
2024-01-07T17:08:06.019Z [SMOOTHING0] Clearing queued colors before: disabling
2024-01-07T17:08:06.019Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:08:06.019Z [COLORSPACE_CALIBRATION0] (ColorSpaceCalibration.cpp:225) setBackLightEnabled: 0
2024-01-07T17:08:06.143Z [LEDDEVICE0_ADALIGHT] ESP sent: ''
2024-01-07T17:08:06.164Z [LEDDEVICE0_ADALIGHT] DETECTED DEVICE USING HyperSerialEsp8266/HyperSerialESP32/HyperSerialPico FIRMWARE (Welcome! Awa driver 8. NeoPi) at 22 msec
2024-01-07T17:08:06.164Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:63) Switch on
2024-01-07T17:08:06.164Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:139) Power On
2024-01-07T17:08:06.164Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:270) Disable the device
2024-01-07T17:08:06.164Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:89) Switch off
2024-01-07T17:08:06.164Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:517) Set LED strip to black/power off
2024-01-07T17:08:06.164Z [COMPONENTCTRL0] LED device: enabled
2024-01-07T17:08:06.164Z [MUXER0] Register new input 'System/COLOR' with priority 0 as inactive
2024-01-07T17:08:06.164Z [MUXER0] Priority 0 is now active
2024-01-07T17:08:06.164Z [MUXER0] Set visible priority to 0
2024-01-07T17:08:06.164Z [HYPERHDR0] New priority[0], previous [255]
2024-01-07T17:08:06.164Z [HYPERHDR0] New source available -> switch LED-Device on
2024-01-07T17:08:06.164Z [SMOOTHING0] Clearing queued colors before: enabling
2024-01-07T17:08:06.164Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:08:06.164Z [HYPERHDR0] Boot effect: color set to [255, 0, 0]
2024-01-07T17:08:06.182Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:143) Flush was successful
2024-01-07T17:08:06.257Z [LEDDEVICE0_ADALIGHT] Received goodbye: 'xelBus SK6812 neutral GRBW.

RGBW => Gain: 255/255, red: 176 , green: 176 , blue: 112
HyperHDR frames: 0 (FPS), rece' (119)
2024-01-07T17:08:06.269Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:161) Serial port is closed: COM3
2024-01-07T17:08:06.269Z [COMPONENTCTRL0] LED device: disabled
2024-01-07T17:08:06.269Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:220) Enable the device
2024-01-07T17:08:06.269Z [LEDDEVICE0_ADALIGHT] Opening UART: COM3
2024-01-07T17:08:06.269Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:206) _serialPort.open(QIODevice::ReadWrite): COM3, Baud rate [2000000]bps
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:211) portName: COM3
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:212) systemLocation: \.\COM3
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:213) description: USB-SERIAL CH340
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:214) manufacturer: wch.cn
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:215) productIdentifier: 0x7523
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:216) vendorIdentifier: 0x1a86
2024-01-07T17:08:06.270Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:217) serialNumber:
2024-01-07T17:08:06.650Z [LEDDEVICE0_ADALIGHT] ESP sent: ''
2024-01-07T17:08:06.672Z [LEDDEVICE0_ADALIGHT] DETECTED DEVICE USING HyperSerialEsp8266/HyperSerialESP32/HyperSerialPico FIRMWARE (Welcome! Awa driver 8. NeoPi) at 23 msec
2024-01-07T17:08:06.672Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:63) Switch on
2024-01-07T17:08:06.672Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:139) Power On
2024-01-07T17:08:06.672Z [COMPONENTCTRL0] LED device: enabled
2024-01-07T17:08:07.290Z [NET_DISCOVERY] Found ESP board at COM3:-1 (USB-SERIAL CH340)
2024-01-07T17:08:07.289Z [SERVICE_mDNS] Starting the network discovery thread
2024-01-07T17:08:09.267Z [MUXER0] Timeout clear for priority 0
2024-01-07T17:08:09.267Z [MUXER0] Set visible priority to 255
2024-01-07T17:08:09.267Z [HYPERHDR0] New priority[255], previous [0]
2024-01-07T17:08:09.267Z [HYPERHDR0] No source left -> switch LED-Device off
2024-01-07T17:08:09.267Z [SMOOTHING0] Clearing queued colors before: disabling
2024-01-07T17:08:09.267Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:08:09.267Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:270) Disable the device
2024-01-07T17:08:09.267Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:89) Switch off
2024-01-07T17:08:09.267Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:517) Set LED strip to black/power off
2024-01-07T17:08:09.285Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:143) Flush was successful
2024-01-07T17:08:09.313Z [LEDDEVICE0_ADALIGHT] Received goodbye: 'xelBus SK6812 neutral GRBW.

RGBW => Gain: 255/255, red: 176 , green: 176 , blue: 112
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 41232
RGBW => Gain: 255/255, red: 176 , green: 176 , blue: 112
HyperHDR frames: 2 (FPS), rece' (250)
2024-01-07T17:08:09.324Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:161) Serial port is closed: COM3
2024-01-07T17:08:09.324Z [COMPONENTCTRL0] LED device: disabled
2024-01-07T17:09:14.454Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:127.0.0.1
2024-01-07T17:09:32.117Z [WEBSOCKET] (HyperAPI.cpp:1109) message: [{"command":"leddevice","ledDeviceType":"adalight","subcommand":"discover","tan":219}]
2024-01-07T17:09:32.118Z [WEBSOCKET] (HyperAPI.cpp:1133) response: [{"devices":[{"name":"Auto","value":"auto"},{"name":"USB-SERIAL CH340 (\\.\COM3)","value":"COM3"}],"ledDeviceType":"adalight"}]
2024-01-07T17:09:48.218Z [WEBSOCKET] (WebSocketClient.cpp:188) send close: 1000
2024-01-07T17:12:19.676Z [WEBSOCKET] (WebSocketClient.cpp:39) New connection from ::ffff:192.168.0.207
2024-01-07T17:13:03.887Z [WEBSOCKET] (HyperAPI.cpp:1109) message: [{"command":"leddevice","ledDeviceType":"adalight","subcommand":"discover","tan":115}]
2024-01-07T17:13:03.888Z [WEBSOCKET] (HyperAPI.cpp:1133) response: [{"devices":[{"name":"Auto","value":"auto"},{"name":"USB-SERIAL CH340 (\\.\COM3)","value":"COM3"}],"ledDeviceType":"adalight"}]
2024-01-07T17:13:08.462Z [SMOOTHING0] Clearing queued colors before: enabling
2024-01-07T17:13:08.462Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:13:08.462Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:220) Enable the device
2024-01-07T17:13:08.462Z [LEDDEVICE0_ADALIGHT] Opening UART: COM3
2024-01-07T17:13:08.462Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:206) _serialPort.open(QIODevice::ReadWrite): COM3, Baud rate [2000000]bps
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:211) portName: COM3
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:212) systemLocation: \.\COM3
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:213) description: USB-SERIAL CH340
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:214) manufacturer: wch.cn
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:215) productIdentifier: 0x7523
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:216) vendorIdentifier: 0x1a86
2024-01-07T17:13:08.463Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:217) serialNumber:
2024-01-07T17:13:08.864Z [LEDDEVICE0_ADALIGHT] ESP sent: ''
2024-01-07T17:13:08.885Z [LEDDEVICE0_ADALIGHT] DETECTED DEVICE USING HyperSerialEsp8266/HyperSerialESP32/HyperSerialPico FIRMWARE (Welcome! Awa driver 8. NeoPi) at 21 msec
2024-01-07T17:13:08.885Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:63) Switch on
2024-01-07T17:13:08.885Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:139) Power On
2024-01-07T17:13:08.885Z [COMPONENTCTRL0] LED device: enabled
2024-01-07T17:13:25.009Z [MUXER0] Register new input 'Web Configuration@::ffff:192.168.0.207/COLOR' with priority 1 as inactive
2024-01-07T17:13:25.009Z [MUXER0] Priority 1 is now active
2024-01-07T17:13:25.010Z [MUXER0] Set visible priority to 1
2024-01-07T17:13:25.010Z [HYPERHDR0] New priority[1], previous [255]
2024-01-07T17:13:25.010Z [HYPERHDR0] New source available -> switch LED-Device on
2024-01-07T17:13:25.010Z [SMOOTHING0] Clearing queued colors before: enabling
2024-01-07T17:13:25.010Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:13:25.010Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:220) Enable the device
2024-01-07T17:14:22.171Z [MUXER0] Removed source priority 1
2024-01-07T17:14:22.171Z [MUXER0] Set visible priority to 255
2024-01-07T17:14:22.171Z [HYPERHDR0] New priority[255], previous [1]
2024-01-07T17:14:22.171Z [HYPERHDR0] No source left -> switch LED-Device off
2024-01-07T17:14:22.171Z [SMOOTHING0] Clearing queued colors before: disabling
2024-01-07T17:14:22.171Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:14:22.171Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:270) Disable the device
2024-01-07T17:14:22.171Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:89) Switch off
2024-01-07T17:14:22.171Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:517) Set LED strip to black/power off
2024-01-07T17:14:22.189Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:143) Flush was successful
2024-01-07T17:14:22.217Z [LEDDEVICE0_ADALIGHT] Received goodbye: 'xelBus SK6812 neutral GRBW.

RGBW => Gain: 255/255, red: 176 , green: 176 , blue: 112
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
2024-01-07T17:14:22.227Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:161) Serial port is closed: COM3
2024-01-07T17:14:22.227Z [COMPONENTCTRL0] LED device: disabled
2024-01-07T17:14:32.397Z [MUXER0] Register new input 'Web Configuration@::ffff:192.168.0.207/COLOR' with priority 1 as inactive
2024-01-07T17:14:32.397Z [MUXER0] Priority 1 is now active
2024-01-07T17:14:32.397Z [MUXER0] Set visible priority to 1
2024-01-07T17:14:32.397Z [HYPERHDR0] New priority[1], previous [255]
2024-01-07T17:14:32.397Z [HYPERHDR0] New source available -> switch LED-Device on
2024-01-07T17:14:32.397Z [SMOOTHING0] Clearing queued colors before: enabling
2024-01-07T17:14:32.397Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:14:32.398Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:220) Enable the device
2024-01-07T17:14:32.398Z [LEDDEVICE0_ADALIGHT] Opening UART: COM3
2024-01-07T17:14:32.398Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:206) _serialPort.open(QIODevice::ReadWrite): COM3, Baud rate [2000000]bps
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:211) portName: COM3
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:212) systemLocation: \.\COM3
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:213) description: USB-SERIAL CH340
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:214) manufacturer: wch.cn
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:215) productIdentifier: 0x7523
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:216) vendorIdentifier: 0x1a86
2024-01-07T17:14:32.399Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:217) serialNumber:
2024-01-07T17:14:32.799Z [LEDDEVICE0_ADALIGHT] ESP sent: ''
2024-01-07T17:14:32.808Z [LEDDEVICE0_ADALIGHT] DETECTED DEVICE USING HyperSerialEsp8266/HyperSerialESP32/HyperSerialPico FIRMWARE (Welcome! Awa driver 8. NeoPi) at 9 msec
2024-01-07T17:14:32.808Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:63) Switch on
2024-01-07T17:14:32.808Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:139) Power On
2024-01-07T17:14:32.808Z [COMPONENTCTRL0] LED device: enabled
2024-01-07T17:14:50.828Z [WEBSOCKET] (HyperAPI.cpp:1109) message: [{"command":"leddevice","ledDeviceType":"adalight","subcommand":"discover","tan":202}]
2024-01-07T17:14:50.828Z [WEBSOCKET] (HyperAPI.cpp:1133) response: [{"devices":[{"name":"Auto","value":"auto"},{"name":"USB-SERIAL CH340 (\\.\COM3)","value":"COM3"}],"ledDeviceType":"adalight"}]
2024-01-07T17:15:18.473Z [WEBSOCKET] (HyperAPI.cpp:957) log streaming activated for client ::ffff:192.168.0.207
2024-01-07T17:19:33.264Z [MUXER0] Timeout clear for priority 1
2024-01-07T17:19:33.264Z [MUXER0] Set visible priority to 255
2024-01-07T17:19:33.264Z [HYPERHDR0] New priority[255], previous [1]
2024-01-07T17:19:33.264Z [HYPERHDR0] No source left -> switch LED-Device off
2024-01-07T17:19:33.264Z [SMOOTHING0] Clearing queued colors before: disabling
2024-01-07T17:19:33.264Z [SMOOTHING0] Smoothing queue is cleared
2024-01-07T17:19:33.264Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:270) Disable the device
2024-01-07T17:19:33.264Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:89) Switch off
2024-01-07T17:19:33.264Z [LEDDEVICE0_ADALIGHT] (LedDevice.cpp:517) Set LED strip to black/power off
2024-01-07T17:19:33.282Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:143) Flush was successful
2024-01-07T17:19:33.310Z [LEDDEVICE0_ADALIGHT] Received goodbye: 'xelBus SK6812 neutral GRBW.

RGBW => Gain: 255/255, red: 176 , green: 176 , blue: 112
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
HyperHDR frames: 0 (FPS), receiv.: 0, good: 0, incompl.: 0, heap: 39976
RGBW => Gain: 255/255, red: 255 , green: 255 , blue: 255
2024-01-07T17:19:33.321Z [LEDDEVICE0_ADALIGHT] (ProviderSerial.cpp:161) Serial port is closed: COM3
2024-01-07T17:19:33.321Z [COMPONENTCTRL0] LED device: disabled

Only three LED are showing static color.

The setup worked with WLED, but because of performance issues I want to try serial connection.

I use a ESP8266 Nodemcu V3 developer board. This should have the faster chip necessary for 2Mbps.

Now only the first three leds are glowing static(white and green).

I flashed the latest image 5.0.0.0 and I use HyperHDR 18.0.0.0. The installation is on a Mac.

I simply connected the usb to the Mac, flashed and configured in HyperHDR. I can’t change the leds at all.

LEDs are SK6812 RGBNW.

Status LED on board is not glowing but flash reported success.

SPI PINS

what pins to use for spi?
data pin and clock pin?
in neopixelbus the software spi method is selected, not the hardware method. Why?) D5 and D7 is simple

Relay control

Hey, congrats for the excellent work!
Please, would it possible to use one of the GPIOs to control a 5v relay? Setting it to high only when the serial port is connected or something along those lines?
Thank you.

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.