Hardware question #267
Replies: 17 comments 32 replies
-
Hi I think this is a 99% chance of success without any changes to the hardware configuration. Why not 100%? Since your data line is already running around 3.3V, which is too low for an LED strip, but it works. If, after switching ESP from the TV, Rpi delivers a slightly lower + 5V via USB (unstable Rpi power supply or longer USB cable), and the ESP for some reason does not compensate it properly, the data line may no longer be tolerated. In this case, the level lever may become necessary. |
Beta Was this translation helpful? Give feedback.
-
BTW CP2102 is capable of 921600 speed. You can test your setup and USB connection already using latest HyperSerialWLED and changing speed in WLED (it's configurable now) and HyperHDR to 921600 (AWA protocol must be enabled of course). And after acquiring CH340g you can switch to 2Mb speed. |
Beta Was this translation helpful? Give feedback.
-
Data wire from ESP to strip will be the same, well, in fact, I can make it a little bit shorter I think. USB cable will be much longer unfortunately. Right now it is something like 15-20 cm., and if I will connect Pi to ESP it will be like 2 m. cable. Seems like I should do some testing. |
Beta Was this translation helpful? Give feedback.
-
Thank you very much for the answers, @awawa-dev . If I may, one more question about grabber and settings in HyperHDR. I am using cheap USB 3.0 grabber with, according to lsusb command, some kind of Macrosilicon chip inside. Is there any way to find out which one it specifically is without disassembling the unit? Or should I just put data into HyperHDR according to tests from blog? |
Beta Was this translation helpful? Give feedback.
-
You don't need to disassembling it. If you need faster grabber then probably Ezcap 321 could be a good choice. |
Beta Was this translation helpful? Give feedback.
-
Speed(Spd) is 480: that's USB 2.0 characteristic. The manufacturer would needed to make a serious modifications if it's possible at all because MS2109 has built-in USB2.0 controller. http://en.macrosilicon.com/info.asp?base_id=2&third_id=50 |
Beta Was this translation helpful? Give feedback.
-
Ok, I got some time to play around with new CH340C ESP32's and I miserably failed. @awawa-dev I need Your help again :( I upgraded to HyperHDR v18 beta2. I took another CP2102, flashed it with vanilla WLED, 115200 baudrate, same in HyperHDR, adalight, AWA disabled - does not work. In this case it lights up, when I restart HyperHDR/ESP32, an effect which is preset in HyperHDR works on startup, after that I get like a rainbow around whole strip and then it turns off fully. I can see live feed from grabber, I can see leds on live feed, that they change etc - but those don't work irl. If I start using WLED wireless connection, everything works fine, doesn't matter if I power ESP from Pi or from TV usb port. Also, if I will have to stick to wireless connection, what is max possible baudrate when using it? Many thanks in advance. |
Beta Was this translation helpful? Give feedback.
-
OK, since your LED strip is working when using wifi it's not that bad. Forget about HyperSerialESP32 for now and flash CH340C with HyperSerialWLED again for testing. Make sure you have latest HyperSerialWLED v7. Previous version had a problem with saving serial port speed due to some changes in WLED (they introduced artificial limit on start up). Set 921600 or 512000 speed both in HyperSerialWLED and in HyperHDR . It must work using AWA protocol (RGBW calibration in the adalight driver properties in HyperHDR must be DISABLED for HyperSerialWLED ).
Did you test WLED effects using WLED interface? Did WLED page was displaying the information about receiving live USB data from HyperHDR?
Quite strange, did you try to start an effect from the remote tab? Because it's like the grabber source was not active or the signal detection was triggered. Search for active priority in the logs. Grabber has 240 on default. Was WLED page displaying the information about receving data from HyperHDR all the time? And now the tricky question: was the ESP always connected to Rpi even when you used wireless communication? |
Beta Was this translation helpful? Give feedback.
-
Maybe it's related? link https://github.com/Aircoookie/WLED/issues/2618 |
Beta Was this translation helpful? Give feedback.
-
Ok, I will try. If I remember correctly, I tried with AWA protocol disabled.
No, will do.
Yes, when using vanilla WLED (usb connection) I saw that message, but LED's were not lighting up after startup effect.
Yes, all tests were done powering ESP from RPi's USB port. |
Beta Was this translation helpful? Give feedback.
-
Looks like I am out of luck and my ESP32 - C3 is not yet fully supported by WLED. |
Beta Was this translation helpful? Give feedback.
-
@inferno1231 |
Beta Was this translation helpful? Give feedback.
-
@awawa-dev Ok, thank you! Right now I am playing with CP2102 ESP32. I flashed HyperSerialWLED v7, connected to my setup. WLED Effects work when using adalight / AWA protocol. But I can't connect HyperHDR and ESP, there is no message that WLED is receiving data from HyperHDR. Also in "Overview" - Components - LED Device is off. But I can get a live feed no problem. |
Beta Was this translation helpful? Give feedback.
-
It works with 500000 baudrate! Looks like my ESP can't handle 921600. I think I will wait till my new CH9102X will arrive from Aliexpress and try with them. Hopefully those will be able to handle high baudrate. I am sorry for wasting your time and grateful for the help :) Or it could be USB cable rather than ESP? |
Beta Was this translation helpful? Give feedback.
-
Ok, I got my CH9102X today and spent some time testing everything. Firstly I installed CH343 driver to RPi. As @awawa-dev mentioned before, there is indeed a problem with latest WLED 0.13.1 version (including HyperSerialWLED v6.0.0.0 and v7.0.0.0), after switching to adalight ESP32 turns dead. I flashed my ESP32 with HyperSerialWLED v5.0.0.0beta and everything started working with 2000000 baudrate. After that I came back to my initial plan using HyperSerialESP32, and flashed latest pre-release version (v6.0.0.0). LEDs did not light up. After that I flashed HyperSerialESP32 v5.0.0.0 and everything lightened up again using 2000000 baudrate (I did not activate "White channel calibration (RGBW only)". So, is there any way to find out why v6 doesn't work on my setup? My target is to use 4MB baudrate, so I am not sure, if I should compile v5 with 4000000 or somehow fix v6 :) |
Beta Was this translation helpful? Give feedback.
-
what's exactly happen: your LED didn't work with HyperHDR or WLED page wasn't accessible? After flashing HyperSerialWLED v7.0.0.0 (yes, v7 it's very important) and possible restarting it, did you check what's your serial port speed in WLED page? Set it manually in WLED to 2000000 and give it a try again. I'm a little bit sick of WLED: they had full year of beta releases and that latest stable version has even a lot more seriuos bugs than previous betas.
something was sent but it was a garbage |
Beta Was this translation helpful? Give feedback.
-
Good catch @inferno1231 Finally I found the cause: the Arduino-esp32 board module in Arduino IDE. Previous HyperSerialESP32 v5 firmware was built using Arduino-esp32 version 1.x and HyperSerialESP32 v6 was built using Arduino-esp32 version 2.0.2. Newest 2.0.3 doesn't work properly either. Something must have changed inside that core library since Arduino-esp32 2.0 and it has a grave effect for the serial communication performance at 2Mb speed, causing very large frames become broken. EDIT: Maybe it's related espressif/arduino-esp32#7474 ? Newer version was released v6.1 using esp board manager 1.0.6. I've included check for the Arduino-esp32 version inside the code that throws error when Arduino-esp32 version 2.x is detected. I tested it using continues output in the smoothing and 50Hz smoothing rate: for 50Hz works at 0% error rate for around 500 RGBW LEDs setup and at 50% error rate for ~800 RGBW (sk6812 internal data line is limiting this, not fast enough to render it and receive incoming large frames at the same time). Please test it and let me know if it solved your problem. Link to 6.1 release: https://github.com/awawa-dev/HyperSerialESP32/releases/tag/v6.1.0.0 |
Beta Was this translation helpful? Give feedback.
-
Hello,
I am currently running SK6812RGBNW setup with 332 LED's + ESP32 (CP2102) running pure WLED + HyperHDR v17 on Pi.
I want to try a USB solution with HyperHDR v18 beta, so I ordered ESP32 with CH340g onboard (CH9102x are impossible to find in Europe it seems). There is one thing I can't understand - right now my ESP is connected via micro-usb cable to my TV's USB, I also run one jumper wire from GPIO2 to my strip for data and one jumper wire from GND to same strip's ground for common ground. I am not using any level shifters and it seems to work OK.
So, when I will flash ESP32 with HyperSerialESP32, I will run a micro-USB cable from ESP to Pi, I will leave GND and Data wires in place.. where and why do I need a level shifter? Should I run extra wire from 3.3 V pin of ESP to strip? If yes, why don't I need it now?
Sorry for stupid question, I just started to get into this like 3 days ago, and I never had any experience before.
Thank you in advance :)
Beta Was this translation helpful? Give feedback.
All reactions