RealCorebb / bbPOV-P

Maybe the Best ESP32 POV Display
https://bbrealm.com
208 stars 48 forks source link

Improving Performance #3

Open jake653 opened 2 years ago

jake653 commented 2 years ago

Actually more comments (not actually issues) again I can't use the QQ chat to contact the author.

Upgrading PWM refresh rate to reduce color smear: I have done a simple head to head test comparing the APA102-2020 to a HD107S-2020, the latter's 27kHz refresh rate improvement is quite noticeable. The HD107S-2020 is available from Aliexpress. The cost: 50 - $9.99, 100 - $15.96, 1000 - $116.20 (free shipping) https://www.aliexpress.com/item/1005003452347800.html

(I may have to use the bbPOV-P board design to test more HD107S-2020)

Better color resolution: 24 bit color LEDs don't reproduce dark portions of images very well. To illustrate, I examined a couple of Gamma Tables, meant to better match human perception, (one video wall maker boasted having 72 bit color resolution)

Examined 2 8-bit gamma tables:   
                total Unique outputs    bottom 128    bottom 64 entries
    NewConvert.py          193                    38                        11
    Adafruit Example        164                   54                      5 unique outputs

Here's an article regarding GAMMA It references the 1993 paper: SMPTE93_Gamma.pdf I believe there was a human perception table published in the 1930s that may be a more correct guide than gamma. https://ledshield.wordpress.com/2012/11/13/led-brightness-to-your-eye-gamma-correction-no/

The number of unique colors output by these conversion tables introduces more banding to darker colors.

The still hard to find 16 bit grayscale (48 bit color) versions of the HD107S-2020 would dramatically improve the color accuracy of photographic images. It's remarkable that they increased the PWM resolution by X256 but managed to maintain the 27kHz refresh rate. Pumping out twice the volume of color data may be challenging, the 40Mbps max data rate of these LEDs should help.

While HD107S-2020 16 bit are one part description I have seen, the emerging standard designation seems to be HD108. (The HD108E Economy version has 4.7 khz refresh)

There is a manufacturer Aliexpress listing uses some unfamiliar terminology translation. It appears to have a 4000 Meter min. order. And list LED qualities? of RGB, Changeable, Dream Color, Magic color

Shenzhen Newstar Technology on Alibaba home page. https://newstar-ledstrip.en.alibaba.com/minisiteentrance.html Two HD108 Newstar listings: https://www.alibaba.com/product-detail/HD108-16bit-2020-Digital-LED-65536_1600116723389.html?fromMSite=true

https://newstar-ledstrip.en.alibaba.com/product/1600116723389-812972612/HD108_16bit_2020_Digital_LED_65536_grayscale.html

One may have to find a low quantity reseller.

There are other LED makers who appear to buy the logic circuit from Newstar, packaging it with their own leds.

https://www.hd108-led.com/ is one

another distributor (see "2020 series") http://hd-pixels.com/product_1568972608000011.html

Comparing the Commercial 3D Holographic LED Fan products.

Al the models I have seen appear to use 16 channel Constant Current LED drivers distributed along the blades. These chips are design for Hub-75 Video wall LED panels. This driver arrangement allow the use of 1mm RGB LEDs for better density. Generating the PWM color control in software allows synchronizing the PWM to the fan motion. (The APA102 build in PWM frequency may differ in each Pixel.) A 160 Pixel Fan would require 30 of these drivers and 30 GPIO serial inputs. More advanced version of these driver chips have 12-16 bit PWM built in, reducing the CPU load, they add tricks like randomized pwm patterns to reduce power load peaks with multiple LEDs, the MBI5043 is an example of a smarter driver.

Alternative processor: The performance squeezed out of an ESP32 is remarkable, I have to imaging a 1Ghz class cell phone processor may improve things, a Linux based system may be a good host for the Python code (cpython?)

The aging "Allwinner A13" processor is a low cost example, (10 current offerings by sellers on Aliexpress) (it was used in the $9 C.H.I.P Linux board) See the article: "A $1, Linux-Capable, Hand-Solderable Processor" https://hackaday.com/2018/09/17/a-1-linux-capable-hand-solderable-processor/ I have seen discontinued boards that have Linux and Android systems for that chip. TinyCoreLinux (http://tinycorelinux.net/) may be more robust for embedded projects, it doesn't need SD card based scratch/cache files. OpenWRT is an embedded Linux used for tinkering with routers, it is lacking in graphics libraries. (These days Allwinner is making RISC-V Linux chips)

RealCorebb commented 2 years ago

Thank you for your professional analysis

Fun Fact: I tried HD107s at first. But the footprint of this is too hard to solder it. I killed many of these, it is too easy to break by the high temperature. So i decide to use the APA102.

PWM: I actually bought different led chip.I have two builds of this, one is the APA102, another is the APA107. The video showing is APA107. Limitted by the ESP32 Performance, the image is divided by 320, so the APA102 which has higher PWM freash rate is not much better than APA107 which PWM freash rate is 4.7 khz.

GAMMA: I am not familiar to this. But i tried to do some gamma correction, the camera recording has no much difference. As a youtuber(video maker), my first goal is to show this to public, so i am focusing on other things.

Processor: yes,ESP32 is the most powerful MCU combined with WIFI. I want my design is simple and tiny. I will consider to use something powerful.