-
-
Notifications
You must be signed in to change notification settings - Fork 31
Very fast capture
If you want to increase performance in Windows 10/11, be sure to disable the Windows Hardware GPU scheduler.
Firefly Luciferin is a very optimized software and it has nearly no impact on your system performance.
By default Firefly Luciferin captures at 30FPS, if you want you can unlock the framerate.
If you are using a slow microcontroller, capturing at a very high framerate will not help. If you right click the tray icon and then click FPS
,
you can see the output as shown in the image below. In that output you can see how fast the software is capturing the screen (producing)
and how fast your microcontroller is able to process (consume) this data.
Increase baud rate
accordingly to your microcontroller's serial speed, 500K is generally more than enough for 30FPS. Producers framerate should not exceed the consuming one, all data that is not consumed in time, is lost.
Higher baud rate allows for higher framerates when driving LEDs using USB cable but it can cause flickering.
Increasing baud rate is not required if driving LEDs via WiFi or via Ethernet.
Producer framerate should not exceed the consuming one, all data that is not consumed in time, is lost and may cause stuttering.
A good WiFi signal strength is required for wireless stream.
Wireless stream using UDP stream is faster than USB cable and it is generally recommended when using the FULL firmware.
Please check what is the best GPIO for your use case for increased performance.
100 LEDs | FPS (RGB) | FPS (RGBW) |
---|---|---|
WiFi UDP GPIO2 | 230 FPS | 185 FPS |
WiFi UDP GPIO3 | 255 FPS | 225 FPS |
WiFi UDP GPIO5 | 210 FPS | 175 FPS |
USB GPIO2 | 145 FPS | 115 FPS |
300 LEDs | FPS (RGB) | FPS (RGBW) |
---|---|---|
WiFi UDP GPIO2 | 70 FPS | 65 FPS |
WiFi UDP GPIO3 | 100 FPS | 75 FPS |
WiFi UDP GPIO5 | 65 FPS | 60 FPS |
USB GPIO2 | 45 FPS | 40 FPS |
500 LEDs | FPS (RGB) | FPS (RGBW) |
---|---|---|
WiFi UDP GPIO2 | 45 FPS | 35 FPS |
WiFi UDP GPIO3 | 60 FPS | 45 FPS |
WiFi UDP GPIO5 | 45 FPS | 35 FPS |
USB GPIO2 | 30 FPS | 25 FPS |
GPIO in use does not affect performance on ESP32.
100 LEDs | FPS (RGB) | FPS (RGBW) |
---|---|---|
WiFi UDP | 300 FPS | 235 FPS |
USB | 150 FPS | 150 FPS |
300 LEDs | FPS (RGB) | FPS (RGBW) |
---|---|---|
WiFi UDP | 105 FPS | 80 FPS |
USB | 80 FPS | 50 FPS |
500 LEDs | FPS (RGB) | FPS (RGBW) |
---|---|---|
WiFi UDP | 65 FPS | 50 FPS |
USB | 40 FPS | 40 FPS |
Note: USB tests has been done at 1.5 million baudrate on both ESP8266 and ESP32. Both microcontrollers uses CH340 UART chip.
When the GPU is under heavy load, for example, when running a video game, using anti-lag technologies like NVIDIA Reflex-Boost
or AMD Anti-Lag
can help maximize Luciferin’s response.
Screen capturing is pretty slow and very CPU intensive in Windows systems (Linux is much more efficient in this regard), for this reason I wrapped the Windows GDI32 C class using Java Native Access to access Windows hardware acceleration.
This API captures and delivers captured frames in GPU memory.
If you are running Windows 8 or Windows 10/11 you can use Desktop Duplication API (DDUPL)
, it's the fastest implementation yet, no lag,
no stutter, very small usage of resources. DDUPL is accessed via JNA using the GStreamer bindings for Java.
Firefly Luciferin detects your CPU capabilities and uses the best ones available.
Advanced Vector Extensions
are Single Instruction, Multiple Data
extensions to the x86 instruction set architecture for microprocessors from Intel and Advanced Micro Devices (AMD).
AVX 512 and AVX 256 offer great performance and resource optimization benefits.
Firefly Luciferin is well balanced and will not trigger your AVX offset, this means that the processor will not experience a frequency drop when using AVX.
Auto settings is the recommended option.
- Compatible hardware
- Official PCBs (with Case)
- RGB and RGBW support
- Supported GPIO and Baud Rate
- Device reset
- How to set up multiple monitors
- Power saving features
- Hardware button
- Surround lighting with satellites
- Color temperature and Gamma
- Color grading: HSL tuning
- Light effects
- Smoothing color transitions
- Aspect ratio
- Eye care and night mode
- Themes
- Profiles
- Group LEDs
- Test image and latency test
- Update management
- Static IP and auto discovery
- Tray icon shortcuts
- Linux support
- Using the Access Point
- Home Assistant integration