Navio 2 LED, PWM and STM32 clarification

According to the documentation ( the Navio 2 LED is directly connected to GPIO pins, which means it is no longer connected to a PCA9685 hardware PWM generator. That means only 16 colours are possible without some kind of software PWM implementation?

I was confused by the continued presence of source files for the PCA9685 in the Navio directory of the Navio 2 samples repository ( But that doesn’t make sense as there is a reference to the PWM output also being “microcontroller” controlled with individual update frequencies, which the PCA9685 cannot do.

Overall this is not a problem, I just want to get the facts right as I implement support for it on Windows IoT. We can’t see the difference between 16 or 68 million (4096^3) colours at a distance anyway :eyes:. But I guess I need to get direct access to this STM32 to achieve any kind of PWM or RC Input on other platforms / without the Navio Linux drivers?

Please clarify the hardware interconnects on Navio 2 regarding STM32, LED and PWM.

p.s. I note the STM32 SWDIO and SWDCLK are exposed. Anything interesting coming out there from the firmware, how do you manage firmware updates and where is the source for that?

Yep, RGB led on Navio2 is connected directly to RPi’s GPIOs.
SWD is purely for reflashing (tool is on GitHub -

Thanks that put me in the right direction. :+1: I’ll nose around the various driver and Linux RT source files for the STM32 SPI communication protocol. :nerd:

Very interesting having a coprocessor. Reminds me of the old days programming the Commodore Amiga :sunglasses:

I Need help!
Could you please tell me how can I add led to navio2 pins !

you can find in the link the codes we added so far but we need a help with the LED part
we using C++

“” “”"

Thank you