# Examples
One `main.rs` body per light type. **These are reference code, not standalone
firmware** — a Cargo example target can't pull in the ESP-IDF Zigbee SDK, because
the SDK's managed components only propagate to a crate that *depends on*
`huesmith`, not to `huesmith`'s own example targets.
To flash one: scaffold a binary project as shown in the
[repository README](../../README.md#project-layout) (the `Cargo.toml`,
`build.rs`, `.cargo/config.toml`, `sdkconfig.defaults`, and `partitions.csv` are
identical for every light type), copy the example's `main.rs` body into your
project's `src/main.rs`, and flash with `cargo espflash flash --release --monitor`.
| [`onboard_led.rs`](onboard_led.rs) | Built-in WS2812 (GPIO 8), no wiring | `color(8)` |
| [`rgb_strip.rs`](rgb_strip.rs) | External WS2812B strip | `rgb_strip(gpio, n)` |
| [`cct.rs`](cct.rs) | Cool/warm tunable white | `cct(cool, warm)` |
| [`dimmable.rs`](dimmable.rs) | Single-channel dimmable | `dimmable(gpio)` |
| [`on_off.rs`](on_off.rs) | On/off, no dimming | `on_off(gpio)` |
| [`custom.rs`](custom.rs) | Your own `LightOutput` backend | `custom(type, output)` |