Interact with the physical world with Embedded Swift!

Your Ultimate Playground for Embedded Swift Programming. Swift and hardware unlock endless Possibilities.

Order now Watch Video

Who loves SwiftIO?

Your Ultimate Playground for Embedded Swift Hardware Programming. Swift with hardware unlock endless possibilities.

  • Swift developer

    Looking to expand your skillset with hardware

  • STEM teacher

    Planning an interactive technology course

  • Electronic enthusiast

    Looking for embedded Swift experience

  • Tech innovator

    Willing to experiment new technique

All-in-one kit to experiment

No need to purchase additional parts or accessories - SwiftIO Playground has it all in one package! You can start exploring the world of physical computing using Swift with ease.

Features included
Left Right
  • 1
    LCDDisplay graphics or images.
  • 2
    LEDCan be turned on/off or adjusted for brightness.
  • 3
    USB-Serial ConverterConnect to a device's USB port to transmit serial data.
  • 4
    PotentiometerAdjust resistance within a circuit.
  • 5
    ButtonControl current flow when pressed or released.
  • 6
    BuzzerProduce sounds of different pitches.
  • Download specs
  • 7
    SpeakerGenerate sounds or play audio files.
  • 8
    Real Time ClockRead the current time and date.
  • 9
    AccelerometerDetect movement by measuring acceleration.
  • 10
    ButtonControl current flow when pressed or released.
  • 11
    PotentiometerAdjust resistance within a circuit.
  • 12
    HumitureMeasure temperature and humidity.
  • Download specs

Integrate seamlessly with Swift

Swift is a powerful, efficient and safe modern language for embedded programming. It absorbs many other languages’ features without affecting the real-time performance of the embedded system.

  • MadMachine extension

    A beginner-friendly environment to program your board

  • MM-SDK

    A useful CLI tool to create and compile your projects

  • Libraries

    A series of support to facilitate Embedded Swift programming

Plug and play with Ease

SwiftIO Playground is designed with convenience in mind. All you need to do is to connect it to your computer with a USB cable, and download the project with a click of a button.

  • 1
    Connect

    Connect board to computer

  • 2
    Program

    Program your project in Swift

  • 3
    Click

    Click button to build/download project

Get Started with Support

Our online tutorials guide you step-by-step through each lesson, providing a clear and concise explanation of the theory behind each concept.

Onboarding
Get Started Guide

Handholding tutorials to embark on the journey

Swift IO library
API Reference

A useful CLI tool to create and compile your projects

Education
Project tutorial

see how the concepts are applied in real-world scenarios

Start your project Step-by-step

The accompanying demos provide a practical demonstration of each lesson, allowing you to see how the concepts are applied in real-world scenarios and inspiring you to create even more.

  • Blink
  • Speaker
  • Humiture
  • LCD
import SwiftIO
import MadBoard
  
  @main
  public struct Blink {
      public static func main() {
          // Initialize the specified pin used for digital output.
          let led = DigitalOut(Id.D18)
  
          // The code here will run all the time.
          while true {
              // Turn on red LED for 1 second, then off.
              led.write(true)
              sleep(ms: 1000)
                
              led.write(false)
              sleep(ms: 1000)
          }
      }
  }
import SwiftIO
import MadBoard
  
  @main
  public struct MusicPlayer {
      public static func main() {
        // The sample rate of I2S and Player should be the same.
        let speaker = I2S(Id.I2S0, rate: 16_000) 
        
        // BPM is beat count per minute.
        // Timer signature specifies beats per bar and note value of a beat.
        let player = Player(speaker, sampleRate: 16_000)

        player.bpm = Mario.bpm
        player.timeSignature = Mario.timeSignature

        // Play the music using the tracks.
        player.playTracks(Mario.tracks, waveforms: Mario.trackWaveforms, amplitudeRatios: Mario.amplitudeRatios)
  
        while true {
            sleep(ms: 1000)
        }      
      }
  }
import SwiftIO
import MadBoard
import SHT3x

  @main
  public struct Humiture {
      public static func main() {
          // Initialize the I2C0 and the sensor.
          let i2c = I2C(Id.I2C0)
          let humiture = SHT3x(i2c)
          
          // Read the temperature and humidity and print their values out.
          // Stop for 1s and repeat it.
          while true {
            let temp = humiture.readCelsius()
            let humidity = humiture.readHumidity()
            print("Temperature: \(temp)C")
            print("Humidity: \(humidity)%")
            sleep(ms: 1000)
          }
      }
  }
import SwiftIO
import MadBoard
import SHT3x
import LCD1602
  
  @main
  public struct Humiture {
      public static func main() {
          // Initialize the LCD and sensor to use the I2C communication.
          let i2c = I2C(Id.I2C0)
          let lcd = LCD1602(i2c)
          let sht = SHT3x(i2c)
          
          while true{
              // Read and display the temperature on the LCD and update the value every second.
              let temp = sht.readCelsius()
          
              lcd.write(x:0, y:0, "Temperature:")
              lcd.write(x: 0, y: 1, temp)
              lcd.write(x:4, y:1, " ")
              lcd.write(x:5, y:1, "C")
          
              sleep(ms: 1000)
          }
      }
  }

Unleash your creativity with add-ons

Compatible devices

SwiftIO is compatible with additional sensors, input devices, or output components. With this flexibility, you can explore the boundaries of what's possible with Embedded Swift programming.

  • Temperature
  • Light
  • Button
  • Speaker
  • Sound
  • Display
  • Humidity
  • Motor

What sets SwiftIO apart?

A comprehensive system for you to code in the physical world, leveraging Embedded Swift.