-
I created a new project HyperSerialPico that introduces Adalight AWA HyperHDR protocol for Raspberry Pi Pico (Rp2040) as an alternative to ESP based solutions (HyperSerialEsp8266/ESP32). What is unique compared to the Esp8266/ESP32/ESP32-S2 boards, Pico thanks to the PIO I/O coprocessor is able to produce a very high quality and precise signal. Which is especially required for the Neopixel sk6812/ws8212b LED strips. The signal from the ESP boards is usually well tolerated by most variants of the Neopixel LED strip, but the emulation of their protocol brings with it various side effects, such as high memory consumption (limitation of the maximum length of the LED strips), slightly drifting I2S data clock (still within LEDs tolerance), IRQ thunderstorm when RMT is used, etc. Preliminary tests of the Pico board together with practical measurements of signal timings allow us to conclude that this board is free of these drawbacks and still it is very cheap: ~$2 for the mini version and $3-4 for the larger version. The project and firmwares for various LED strips can be found at: https://github.com/awawa-dev/HyperSerialPico Note that the first version of HyperSerialPico was released recently, so it should be treated as a test version: we are still collecting user feedback from various setups. I hope Pico will become the best platform for HyperSerial solution. Boards with built-in 3.3V to 5V level shifter!One line output model Pimoroni Plasma Stick 2040 W (link)Compile with Two lines output model Pimoroni Plasma 2040 (link)For ws281x/sk6812 led strips:Compile with OR Compile with For SPI led strips spi1 interface must be used:
Output is: Sample of electric results: 8-lanes output Adafruit Feather RP2040 SCORPIO (link)Single segment output Multi-segment SPI is using spi0 interface pins: 19(OUTPUT_SPI_DATA_PIN ) and 18(OUTPUT_SPI_CLOCK_PIN ) on output Sample of electric results: One lane output Adafruit ItsyBitsy RP2040 (link)Single segment output |
Beta Was this translation helpful? Give feedback.
Replies: 33 comments 162 replies
-
I installed the firmware verify the os and is mounting the pico the cables are the same as my ESP32 Serial but I only see ESP32, esp8266 handshake no pico at all. HyperHDR v19. What I'm missing? |
Beta Was this translation helpful? Give feedback.
-
Does HyperSPI or HyperSerialPico have a big improvement over HyperSerialESP32 (with 2Mbps [CH340]) ? |
Beta Was this translation helpful? Give feedback.
-
I'm going to give this a test to see if the latency improves from my current setup (HyperSerialESP32 @ 2 Mbps, 304 LEDs). I'd also like to use multi-segment (for the lowest latency possible). However, my LEDs are already taped onto the TV. Does having the LED segments reversed improve latency/performance? Lastly, can we enable SPI between the Pico (driver) and the RPi (host) for 'ultimate' performance? |
Beta Was this translation helpful? Give feedback.
-
Good afternoon dear @awawa-dev I haven't fully assembled my setup, I soldered my Esp32 (Hyper SPI) and level switch to control the tape. |
Beta Was this translation helpful? Give feedback.
-
I found and order for testing Rp2040 W board with a built-in level shifter so it's supposed to provide 5V data line for ws281x/sk6812. There is also smaller variant without wifi that supports SPI LEDs. I will try to find out if HyperSerialPico can be adapted (I hope only proper GPIO needs to be changed, from schematic it's GPIO15) https://shop.pimoroni.com/products/plasma-stick-2040-w?variant=40359072301139 |
Beta Was this translation helpful? Give feedback.
-
Has this been tested for Linux? I've flashed my Raspberry Pi Pico with the SK6812 cold firmware and when I plug it into my RPi4 it shows the device in the system log:
...but HyperHDR 20. beta doesn't seem to detect it:
|
Beta Was this translation helpful? Give feedback.
-
Thanks again and I apologize for so many questions. I'm now having an issue with the github action to compile HyperSerialPico after modifying the CMakeLists.txt to set SECOND_SEGMENT_INDEX to 146. The github action fails. If I set it back to OFF then it succeeds. |
Beta Was this translation helpful? Give feedback.
-
I've tested new rp2040 board with built-in level shifter: Adafruit Feather RP2040 SCORPIO It has 8 LED outputs. On default the 3.3V to 5V level shifter is enabled. On closer look it's cmos type vhct 245: Seems working fine. Single segment output Multi-segment: SPI is using 19(OUTPUT_DATA_PIN ) and 18(OUTPUT_CLOCK_PIN ) on output I plan to release new HyperSerialPico with pre-build firmwares for all three boards with built-in level shifters. Need to finish more tests and add one minor improvement to the project. |
Beta Was this translation helpful? Give feedback.
-
Is the SECOND_SEGMENT_INDEX zero or one-based? For example, my set segment has a total of 145 LEDs. Does that mean the SECOND_SEGMENT_INDEX should be set to 146? |
Beta Was this translation helpful? Give feedback.
-
New #583 PR brings a workaround for critical bug in udev module. Already merged.
|
Beta Was this translation helpful? Give feedback.
-
I was able to get my rpi4 to work with my new adafruit scorpio. but I am only able to get half of my strip working. I am running 2 segments, with second segment reversed. 170 leds total sk6812's. I fork the HyperSerialPico repo and edited CMakeLists.txt (I think I got it right, not sure), but I'm not sure how to recompile it from there. The directions mentions a firmwares folder? I'm not sure how to get it to that point. I assume that once I get it to that point that I just connect the Pico to my computer and copy the file to the RP2 drive, then reconnect it to the rpi4. Is that part correct? |
Beta Was this translation helpful? Give feedback.
-
New HyperSerialPico v4.0.0.0
|
Beta Was this translation helpful? Give feedback.
-
Hi everyone, my apologies I'm a beginner when it comes to github or hyperhdr, so pardon my silly questions. I built an HyperHDR setup a while ago and everything went fine but now I want to upgrade it using the RP2040. My questions are: Will it work with my raspberry pi 3B? Thanks in advance for all the help! |
Beta Was this translation helpful? Give feedback.
-
I am struggling with my ambilight upgrade from SK6812 + Hyperion on Athom WLED controller to new setup descibed below. I installed Download Pirate brand MicroPython as referenced by the Pimoroni page for Plasma 2040 and could manually control the strip. I'm using RPI-3B+ with HyperHDR v19.0.0.0 USB video capture is working... LED hardware: I've been scratching my head for more than a week now, and of course suffering from Ambient TV Llighting withdrawal! |
Beta Was this translation helpful? Give feedback.
-
You need to use HyperHDR v20.0.0.0-beta. |
Beta Was this translation helpful? Give feedback.
-
I'm going to have to wait for the official release. I'm not competent enough find what i need int his. I need a simple Pi Image File to build off. Not to worry Thanks On 9 Dec 2023, at 20:09, Awawa ***@***.***> wrote: Latest is currently here: https://github.com/awawa-dev/HyperHDR/actions/runs/7153056261 — Reply to this email directly, view it on GitHub , or unsubscribe . You are receiving this because you commented. Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
What is "n100 platform"? |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, after quite some time trying to get my setup to work I can't make it, I would appreciate if anybody have some idea what to try. My setup is: hyperhdr and piccap running on lg webos tv, connected with raspberry pi pico. I've compiled latest version of master branch of hyperhdr and installed on the tv. Overall everything until leds seems to work, i can see live video in the ui etc. Here are some logs:
note: First i tried to drive leds directly from io2 from pico, and it was not working, seems like there were two types of problems:
Then i got SN74HCT125N to use as a level shifter, note it is not one recommended by @awawa-dev because it is hard to get it where i live, and i found online that one i got should work fine. And the problem persisted even after adding level shifter. What i can defiantly say is that now signal is really shifter, i've checked that with oscilloscope (cheap diy dso138, but still it shows raised levels) All this was tested with 49leds strip. Power supply should be more then enough 100w. Ground of led strip and ground of pico is connected. Here is a picture of current state: Thanks for reading! |
Beta Was this translation helpful? Give feedback.
-
Hi, So I am working on putting a new system together. So far I purchased the Raspberry Pi 4 and an Elgato HD60X. I was hoping to use one of these drivers with the built in level shifter to make things a bit more simplified. I will also be going with SK6812 LED strip. I will be using close to 300 LED's so I read I will need to go with the multi segment setup. I was going to get either the Pimoroni Plasma 2040 or the Adafruit Feather RP2040 SCORPIO (not sure if one has any benefits over the other). For the interface to use, you mention to use CL for segment 1 and DA for segment 2. (for the Pimoroni) However, for SPI interface you say to use those for clock and data, respectfully. Does that mean you cannot do a multi segment setup with SPI? How do I know if I should even be using SPI or not? I am looking at a strip from amazon and it says a SK6812 and lists it under "SPI LED Strips", but it has no mention of SPI in its details page. Thanks :) |
Beta Was this translation helpful? Give feedback.
-
I never wrote that you have to use a multi-segment for 300LED, but you can consider it taking into account other factors, e.g. a slightly more complicated setup, more cables, etc. Of course, multi-segment will be faster, but for 300 RGBW LEDs it's 100Hz versus 83Hz, which could make a difference if you're building a strict gaming setup. Going above 100-120Hz rarely make sense because the PC/RPi clocks usually do not have required precision. SK6812 is Neopixel LED strip which require one data line, APA102 is SPI LED strip and requires two data lines: SPI LEDs do not required multi-segment because of very high data line speed nor such multi-segment is supported by the firmware. |
Beta Was this translation helpful? Give feedback.
-
I use 96LEDs/meter but sk6812RGBW and I really like it. You wont get APA102 on Ali and it's RGB only. At least I've never heard a success story. All clones with worse specification...if they meet such "tech specification" at all. Sometimes manufacturers enter in non-key parameters what the customer wants to see there, or these parameters change with subsequent revisions. But if we want to trust such "tech specifications" why not to try new sk6812 RGBW upgraded model which promises 3.3V MCU support. So say goodbye to level shifters (hmm..isn't that what we wanted to get?) The “Tech Specs” of new upgraded sk6812 RGBW is currently only available on their YouTube clip. There is no guarantee which version you will get? And not a word about the tolerance/range of the 3.3V data line which is very, very important... |
Beta Was this translation helpful? Give feedback.
-
I just received a Pimoroni Plasma Stick 2040 W and flashed it with the latest release. I connected it to my TV (LG with webOS and piccap) and the LEDs wouldn't light up. So I got a test strip (SK6812RGBWN) and did an install on a windows machine. HyperHDR seems to connect fine to the board, but the strip isn't lighting up. Any way to debug? I don't see any error. I connected the strip to another controller and it does work fine. Logs
|
Beta Was this translation helpful? Give feedback.
-
I’m working on my second HyperHDR project. Originally have a rooted LG C8 with piccap sending to a pi zero 2W which runs the LEDs on PWM which you typically recommend against. It’s working well. However, I’m doing another project on a new LG C3 and I’m preferring to switch to a RP2040. If I run both PicCap & HyperHDR on my TV itself (rather than HyperHDR on a Pi), how am I to get the data to a RP2040 like the adafruit feather Scorpio? Does it transmit over the TV USB with Adalight protocol? Would I be better with a networked solution such as ESP32/WLED? Thanks. |
Beta Was this translation helpful? Give feedback.
-
@awawa-dev |
Beta Was this translation helpful? Give feedback.
-
@awawa-dev |
Beta Was this translation helpful? Give feedback.
-
Hello everyone, I seen some HyperHDR projects and started a few weeks ago my own. So my setup is : For now I put a static color and the led hardware configuration is correctly put on adalight with AWA protocol and rp2040 handshake (the device is detected on the output path). Could someone help a newbie plz ? |
Beta Was this translation helpful? Give feedback.
-
I am using the Adafruit Feather RP2040 SCORPIO with NeoPixel WS2812B. The plan is as follows:
I've been searching and have not come across any specific diagram which matches these two items together. I am not very strong in understanding SPI Serial, I have dabbled in writing to SD cards using it so I remember a few things about the CEO pin aka Chip Select. May I have verification to be confident before applying power? Thank you in advance. |
Beta Was this translation helpful? Give feedback.
-
Hi there. I’m planning to do a multi-segment setup with an Adafruit Feather RP2040 SCORPIO receiving signals from an LG TV via USB. I plan to use it with a set of 4m SK6812 60led/m strip. I wonder if it is also possible to start two L-shape segments from one corner of the TV instead of from a middle top/bottom edge? I think that would help reduce connection points that I’ll have to use connectors or solder from 2 per segment to one. Also, if I understand it correctly, the pico board only needs one GND wire linked from one of their neopixel GND pins, so only 2 data lines and 1 GDN (?). Can I connect this GDN line together with the two GDN lines from the LED strips with a wago-type block before running a single line back to the PSU? This will be my first project and I’m looking forward to it. Thank you very much :) |
Beta Was this translation helpful? Give feedback.
-
Hi, Here is the dmesg log:
And the corresponding HyperHDR (v20) error:
And no LED on the board is shining. Do you have any hint on how to debug this? Thank you in advance and for all the hard work! |
Beta Was this translation helpful? Give feedback.
New HyperSerialPico v4.0.0.0