How to control multiple onboard leds?

I just got the Bus Pirate 6 and I’ve been playing around with the tutorial. I have a question about the onboard leds in the LED mode though. I can control the color and intensity of the first one fine, but none of the syntax I’ve encountered lets me light more of them. What am I missing?

HiZ> m led

Mode: LED

Use previous settings?
 LED type: Onboard LEDs (18 SK6812s) 

y/n, x to exit (Y) > n

LED type
 1. WS2812/SK6812/'NeoPixel' (single wire interface)*
 2. APA102/SK9822 (clock and data interface)
 3. Onboard LEDs (18 SK6812s)
 x. Exit
Type (1) > 3
LED-()> [ 0x808080.24:3

RESET
TX: 0x808080.24 0x808080.24 0x808080.24 
LED-()> 

This for example only lights the first led, when I would have expected three of them to light up. They do work, because they are all lit during the intro animation and such.

1 Like

Hey @Renzan !

Thanks for checking out the bus pirate.

Only one onboard led can be controlled to protect your USB port. The current can get really high really fast at 60ma full brightness on 18 leds.

I will make that a bit more obvious in the documentation

2 Likes

We had a similar discussion here: Addressing more than one onboard LED? Just putting the link here as the messages have some explanations and how the firmware safeties change the commands.

But TL;DR is only one LED can be controlled in the LED mode as a safety feature. During animations, the onboard LEDs are not lit fully so they stay under the power supply limit of a single USB port.

1 Like

I think it’d be safe to allow control of multiple onboard pixels.

I’ve given current calculations, reasoning, and pseudo-code in new issue #245.

The current limitation check should go into src/pirate/rgc.c, so it can apply to all updates at the last possible moment before submitting the buffer for DMA, and cannot be easily bypassed.

Currently, all the boards use the same LEDs, so this doesn’t need new board-specific configuration settings.

1 Like