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 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.
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)
4 UART, 2 CAN, 2 IIC, and 2 SPI
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.
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).
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.
We're trying our best to provide you guys with detailed tutorials. Here are some of the materials. Indeed, that's not enough. Believe us, more and more useful guides will come out in the following months.
Get started with SwiftIO classes
Explore built-in examples
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.