diff --git a/examples/hwapi/hwconfig_dragonboard410c.py b/examples/hwapi/hwconfig_dragonboard410c.py
index 32fdb9dd6d298665f886aeba9c52b32a97fb301a..8061d7b743338839ba658132b7a6f0203d801588 100644
--- a/examples/hwapi/hwconfig_dragonboard410c.py
+++ b/examples/hwapi/hwconfig_dragonboard410c.py
@@ -15,5 +15,8 @@ from machine import Pin
 # User LED 1 on gpio21
 LED = Pin(21, Pin.OUT)
 
+# User LED 2 on gpio120
+LED2 = Pin(120, Pin.OUT)
+
 # Button S3 on gpio107
 BUTTON = Pin(107, Pin.IN)
diff --git a/examples/hwapi/soft_pwm2_uasyncio.py b/examples/hwapi/soft_pwm2_uasyncio.py
new file mode 100644
index 0000000000000000000000000000000000000000..abeb4b1bfc104bd2109e17454162a7dbcb9cbc5b
--- /dev/null
+++ b/examples/hwapi/soft_pwm2_uasyncio.py
@@ -0,0 +1,31 @@
+# Like soft_pwm_uasyncio.py, but fading 2 LEDs with different phase.
+# Also see original soft_pwm.py.
+import uasyncio
+from hwconfig import LED, LED2
+
+
+async def pwm_cycle(led, duty, cycles):
+    duty_off = 20 - duty
+    for i in range(cycles):
+        if duty:
+            led.value(1)
+            await uasyncio.sleep_ms(duty)
+        if duty_off:
+            led.value(0)
+            await uasyncio.sleep_ms(duty_off)
+
+
+async def fade_in_out(LED):
+    while True:
+        # Fade in
+        for i in range(1, 21):
+            await pwm_cycle(LED, i, 2)
+        # Fade out
+        for i in range(20, 0, -1):
+            await pwm_cycle(LED, i, 2)
+
+
+loop = uasyncio.get_event_loop()
+loop.create_task(fade_in_out(LED))
+loop.call_later_ms_(800, fade_in_out(LED2))
+loop.run_forever()