Skip to content

apple/swift-embedded-examples

Repository files navigation

Embedded Swift Example Projects

This repository is a set of demonstration projects of Embedded Swift. Embedded Swift is a compilation and language mode that enables development of baremetal, embedded and standalone software in Swift. To learn more, see:

⚠️ Embedded Swift is experimental. Some information on this page might be out of date with latest development.

‼️ Use the latest downloadable 'Trunk Development' snapshot from swift.org to use Embedded Swift. Public releases of Swift do not yet support Embedded Swift.

ℹ️ This repository contains code that is not continuously developed, instead it's presented "as is" for educational and demonstrational purposes. Making major improvements to existing examples is discouraged, but additions of new examples is welcome.

Catalog of Examples

Name Board Description Photo
stm32-blink STM32F746G-DISCO Baremetal program that blinks an LED repeatedly. Does not use any vendor SDKs or external toolchains.
stm32-lcd-logo STM32F746G-DISCO Sets up layers on the built-in LCD and animates them in a loop. Does not use any vendor SDKs or external toolchains.
stm32-neopixel STM32F746G-DISCO Uses SPI to program a NeoPixel LED strip. Does not use any vendor SDKs or external toolchains.
stm32-uart-echo STM32F746G-DISCO Uses UART to implement a simple "echo" firmware. Does not use any vendor SDKs or external toolchains.
pico-blink Raspberry Pi Pico W Baremetal program that blinks an LED repeatedly. Does not use any vendor SDKs or external toolchains.
pico-blink-sdk Raspberry Pi Pico W Baremetal program that blinks an LED repeatedly. Demonstrates how to use code and libraries from the Pico SDK and add Swift code on top of it.
nrfx-blink-sdk nRF52840-DK Baremetal program that blinks an LED repeatedly. Demonstrates how to use code and libraries from the Zephyr SDK and add Swift code on top of it.
esp32-led-strip-sdk ESP32-C6-DevKitC-1 Demonstrates how to integrate with ESP-IDF SDK and use Swift to control the LED strip library from the SDK.

Note that the SDK integration examples (Pico SDK, Zephyr SDK, etc.) are not recommendations or endorsement, the same is true for build system choice (Make, CMake, SwiftPM, shell scripts). Embedded Swift aims to be versatile and to allow for integration into more existing SDKs and build systems, and the example projects are merely showing the possibilities.

Community Examples

Name Board Description
swift-flipperzero-hello Flipper Zero A demonstration of running Swift apps on the Flipper Zero.
PlaydateKit Playdate A full featured framework for building Playdate games using Embedded Swift.
swift-playdate-examples Playdate A technical demonstration of Embedded Swift running on Playdate by Panic.
swift-for-wasm-examples Web A "Swift Audio Workstation" example built with Swift for WebAssembly running in the browser using Embedded Swift.

Please note that the presence of community repositories and devices in this list does not constitute a recommendation or endorsement. If there's a project you'd like to see included here, please submit an issue with the details.

Contributing to this repository

Code of Conduct

Like all Swift.org projects, we would like these Embedded Swift example projects to foster a diverse and friendly community. We expect contributors to adhere to the Swift.org Code of Conduct.

Contact information

The current code owners of this repository are Kuba Mracek (@kubamracek) and Rauhul Varma (@rauhul). You can contact them on the Swift forums via the handles @kubamracek and @rauhul.

In case of moderation issues, you can also directly contact a member of the Swift Core Team.