This is the documentation for the latest (main) development branch of
Zephyr. If you are looking for the documentation of previous releases, use
the drop-down menu on the left and select the desired version.
This application blinks a LED using the PWM API. See
Blinky for a GPIO-based sample.
The LED starts blinking at a 1 Hz frequency. The frequency doubles every 4
seconds until it reaches 64 Hz. The frequency will then be halved every 4
seconds until it returns to 1 Hz, completing a single blinking cycle. This
faster-then-slower blinking cycle then repeats forever.
Some PWM hardware cannot set the PWM period to 1 second to achieve the blinking
frequency of 1 Hz. This sample calibrates itself to what the hardware supports
at startup. The maximum PWM period is decreased appropriately until a value
supported by the hardware is found.
The board must have an LED connected to a PWM output channel. The PWM
controlling this LED must be configured using the
pwm_led0 devicetree alias, usually in the BOARD.dts file.
You will see this error if you try to build this sample for an unsupported
Unsupported board: pwm_led0 devicetree alias is not defined
No additional wiring is necessary if
pwm_led0 refers to hardware that is
already connected to an LED on the board.
In these other cases, however, manual wiring is necessary:
Building and Running
To build and flash this sample for the nRF52840 DK:
west build -b nrf52840dk_nrf52840 samples/basic/blinky_pwm
nrf52840dk_nrf52840 appropriately for other supported boards.
After flashing, the sample starts blinking the LED as described above. It also
prints information to the board’s console.