Explore hardware using Swift

Here you’ll find a new possibility of Swift language, Usually used for iOS development, Swift could now run on microcontroller.


Its features and advantages makes the hardware development more accessible to all of you. You could easily use Swift to control different electronic devices around you, and even build some splendid projects.

SwiftIO board

SwiftIO board is our first microcontroller board that runs Swift language. It consists of chips and peripherals with different functionality and allows you to deal with input and output.

It could certainly light a LED or read sensor like many other microcontrollers, and it still has huge potential in GUI programming.


Tech specs

  • i.MX RT1052 Crossover Processor with Arm® Cortex®-M7 core @600MHz

  • Micro SD card slot, supporting standard and high capacity SD cards

  • Micro USB connector for power and serial communication

  • 3.3V operating voltage, 1A maximum output current

  • On-board USB to UART for serial communication

  • 8MB external flash, 32MB SDRAM

  • On-board RGB LED

  • 46 GPIO (General Purpose Input/Output)

  • 12x 12-bit analog to digital converters (ADC) 

  • 14 PWM 

  • 4 UART, 2 CAN, 2 IIC, and 2 SPI


MadMachine IDE

MadMachine IDE is the integrated development environment for SwiftIO board. It eliminates the complicated usages and provides you with a simple and clear interface. Thus, you could start your own code with ease.


In brief, you could use it to write code, compile and download code to the board. In addition, there are built-in examples for your reference.


The IDE is based on Electron, there are two versions in total: macOS and Windows. They are available for free download. Find their download links below.


For developers, there is also a CLI tool mm-sdk. You could edit code anywhere you like, like Xcode or VS code, then use the tool to compile it (the IDE also uses it to build your project). Find its tutorial here.

SwiftIO framework

SwiftIO framework is the Zephyr RTOS-based framework of our project. It abstracts all the low-level hardware and provides you with simple usage, including all the classes like DigitalOut, AnalogIn, PWM, I2C, SPI, etc. 


In your project, you need only to import it, then use the read or write method in each class. In this way, you could easily control the SwiftIO board.


If you are familiar with Arduino or MicroPython, the chart below would give you a more clear understanding of the whole system.


​Get started

Believe me, it’s really easy to start your first project. Just need a SwiftIO board, your computer, a USB cable and a SD card. Later on, you will use more electronic components to explore more about hardware.

​Let's enjoy

In the end

Why start this project?

There are many languages that could run on microcontrollers now, like C on Arduino, Python on MicroPython and CircuitPython, Go on TinyGo, .NET on NetDuino. Swift language is such an efficient and powerful language that could have huge potential in the microcontroller world, especially for some complicated applications and projects.


In addition, Swift language is now connected so tightly to the Apple system, and usually for iOS development. But it deserves more attention in other fields. So we came up with a cross platform solution - the IDE on both Mac and Windows, as well as the CLI tool. 

We would like to take full advantages of Swift language on microcontroller world. And one day, maybe you could program the small screens in SwiftUI style.

Join us

  • discord
  • Twitter
  • GitHub-Mark-120px-plus
  • YouTube