
Explore the swift io microcontroller and its use of swift language to control hardware, software, and electronics in a VSCode development environment, enabling beginners to build robots.
Discover how SwiftIO merges Apple's Swift programming language with a microcontroller to control hardware using the SwiftIO board, Visual Studio Code, and the SwiftIO library.
Explore Swift IO micro hardware features, including ARM cortex M7, 600 MHz, GPIO pins, flash memory, RAM, and USB-C port. See how the playground and modules enable hands-on projects.
Explore what electricity is, how electrons move through a conductor, and how primary sources become electricity; learn about copper conductors, charge, and the path to voltage and resistance.
Voltage acts as the pressure pushing electrons through a circuit, measured in volts (V); higher voltage increases current, as shown by the water analogy and brighter lights at nine volts.
Learn how current, the flow of electrons, powers circuits; measure amps with a multimeter, relate volts, amps, and watts, and compare dc and ac usage.
Explore how resistance slows current, using a water pipe analogy; apply Ohm's law (V=I×R) to calculate voltage, current, and resistance in circuits with resistors and LEDs.
Discover how analog and digital signals power microcontroller projects with the Swift i/o board, sensors, and ADC conversion, including resolution and LCD displays.
Explore breadboards as reusable, solderless platforms for building circuits with power rails, rows and columns, and power them from the usb port on the computer or benchtop supplies.
Explore how resistors appear in schematics, how to read color-band values and tolerances, and how carbon composition or pencil lead demonstrate resistance with practical measurement tips.
Explore how resistors operate in series and parallel, and calculate total resistance using series addition and parallel reciprocal formulas. Apply Ohm's law to find current and analyze circuit examples.
Explore voltage dividers and variable resistors by examining potentiometers, how two resistors in series create a variable output, and how to calculate Vout using R1, R2, and Vin.
Explore switches such as spst, spdt, and dpdt, learn about poles and throws, and examine relays, dip switches, push buttons, and jumper wires that control circuits.
Understand diodes, devices that conduct current in one direction and block it in the other, via bias. Learn about PN junctions, doping, and uses like rectification and protection.
Learn how capacitors store electrical energy to smooth power and prevent current spikes in circuits. Read markings in microfarads and picofarads, and understand total capacitance in parallel or series configurations.
Learn how LEDs emit light via forward bias and photon emission, control color with materials and voltage, and build a resistor-protected Larson scanner on an Arduino Uno.
Explore how transistors function as amplifiers and switches, covering NPN/PNP BJTs and MOSFETs, gate voltage control, nanoscale sizing, and their role in modern computing.
Explore how to use a multimeter, distinguish analog and digital types, read AC and DC voltage and current, test continuity, resistance, and diodes, and understand probes, ranges, and fuse protection.
Measure voltage with a multimeter, focusing on DC voltage across batteries and components, and learn to use ranges, probes, and polarity to test car batteries and alternators.
Measure resistance safely across unpowered circuits with capacitors discharged, reading in ohms, and note color codes like blue blue brown gold for 660Ω ±5% in-circuit.
Place the multimeter in the circuit to measure current in amps. Explore how resistance and resistors protect LEDs from about 120 milliamps, and see Kirchhoff's first law at work at a node.
Install the mac os usb serial driver, download the mad machine sdk, install xcode, and set up visual studio code with the mad machine extension to interface with the hardware.
Write your first Swift program to blink an LED on pin d18 using a digital out in an infinite loop, a hardware hello world.
Control onboard RGB leds on the Swift IO micro with low signals to turn them on and mix red, green, and blue to yield colors via a set_rgb function.
Blink an led to reproduce morse code and transmit SOS with Swift IO micro. Learn to implement short and long flashes using arrays, for in loops, and if else statements.
control two leds with a software timer in Zephyr to create a blue led blink every 0.5 seconds and a red led toggle every 1.5 seconds, showcasing multitasking on microcontrollers.
control an led with a momentary button on the swift io micro, using gpio digital input and learning about pull up and pull down resistors to read press state.
Explore how interrupts replace polling to handle button presses with leds by using the set interrupt method, rising and falling edge detection, and an interrupt service routine.
Explore debounce, the process of filtering button bounce in hardware and software. Learn hardware fixes using capacitors and software timing methods to ensure reliable LED control with buttons.
In playground project 7, toggle the led on button release, using a state boolean and a digital in button with a digital out led in an infinite loop.
Create a two-way led switch using two buttons to toggle a single led, with digital inputs for the buttons and a digital output for the led.
Learn to control an LED with two dedicated buttons—on and off—using three state variables, nested if statements, and a ten millisecond debounce to set the LED high or low.
Learn how pulse width modulation shapes analog-like signals with a passive buzzer, adjusting duty cycle and frequency to play notes and melodies in Swift code.
Explain how to use pwm to generate sound with a buzzer, playing a c scale from a frequencies array at 50% duty cycle for one second per note.
Craft a breathing LED using PWM in Swift to smoothly modulate brightness, with a duty cycle between 0 and 1, step 0.01, and a code walkthrough.
Demonstrates a two-button dimmer that adjusts an led’s brightness via pwm using rising-edge interrupts. Learn to clamp duty cycles with max/min and update the led in a simple main loop.
Create a two-button reflex game with led and buzzer pwm, starting with a start button and measuring reflex time via clock cycle for display on the serial monitor.
Cycle led patterns with swift code and pwm using a button and a single led, switching between on, off, blink, and breathing via an enum and modular functions.
Explore analog signals with a potentiometer and read its variable voltage using an ADC, printing live voltages to the serial monitor as you turn the knob.
Read the potentiometer's analog value and map it to a pwm frequency from 50 hz to 1050 hz to control the buzzer pitch, using a 50% duty cycle.
Read the potentiometer's analog input as a percentage, then set the PWM duty cycle to control the LED brightness, demonstrating analog-to-digital conversion and PWM concepts.
Read the analog value from the left-side potentiometer to set led brightness via pwm duty cycle, and read the raw value from the right to determine blink duration.
Explore a double potentiometer setup to dim an led within a maximum brightness using pwm and a read percentage to scale the duty cycle.
Map the potentiometer’s rotation to eight notes from C4 to C5 using a frequencies array and PWM buzzer, reading analog input and playing a tone when the note index changes.
Program the microcontroller to read temperature and humidity from the Humetewa sensor via the I2C bus, and print the results to the serial monitor, with Celsius-to-Fahrenheit conversion.
Trigger temperature and humidity measurements with two buttons, average 20 sensor readings, display celsius and fahrenheit on the console, and indicate activity with an LED during measurement.
Explore real time clocks with swift io, learning to read and set time on the PCF 8563 RTC via I2C, including formatted date, time, and battery-backed backup behavior.
Read the time from the RTC module and blink the LED in sync with RTC seconds, using the PCF library for I2C communication on pin D18.
Design and implement an RTC-based alarm clock that triggers a buzzer and led at the set time, with a stop button and automatic stop via a duration.
Read accelerometer data in three-dimensional space using Swift I/O, capture x, y, z acceleration via I squared communication and Lis 3D library, and interpret gravity for orientation.
Use the accelerometer to motion-activate a dice roll, detecting shake or tilt with thresholds, and print a random 1–6 after the device steadies, with an LED indicator.
build an accelerometer lock game with a random four-direction password (left, right, forward, backward) unlocked by correct tilts within a 30-second timer, with led and beep feedback.
Explore driving a 240x240 TFT LCD with SPI in Swift, learn the coordinate system and 16-bit color, and create graphics by filling the screen, drawing lines, and colored squares.
Light up the lcd with a rainbow by drawing colored rectangles and converting 32-bit colors to 16-bit rgb565, exploring color depth, byte order, and Swift map usage.
Show how to create an LCD scrolling effect by cycling RGB colors and updating segments, converting 32-bit colors to 16-bit RGB565 with little endian formatting.
Read analog values from a potentiometer and map them to vertical line heights on a digital lcd to create a real-time analog visualizer with a left-to-right scrolling effect.
Create an acceleration visualizer that displays three colored bars for x, y, and z axes on an LCD, mapping accelerations to bar ranges and updating a moving indicator.
Learn to drive a speaker with I2S using SwiftIO Micro by converting WAV audio through a DAC and amplifier, and generating square and triangle waves to play a musical scale.
Build a music player in Swift for the SwiftIO board that converts notes and time signatures into code, generates sine-wave audio samples, and plays multi-track scores through a speaker.
Explore uart communication basics, including serial vs parallel, synchronous vs asynchronous timing, baud rate, and uart data packets with start, parity, and stop bits; USB serial converters connect devices.
Explore UART communication by linking a USB serial converter to your computer and enabling the Swift IO playground to echo messages. Observe echoed data on serial monitor in real time.
learn to control an led from your computer using uart serial commands, sending 1 to turn on and 0 to turn off via a usb serial connection and uart zero.
Connect the Swift io micro to wifi with the Esp32 module in station mode, configure uart, and exchange data over http while viewing ip details and handling errors.
Connect the Swift i/o board to wifi, fetch weather data from OpenWeatherMap using an HTTP GET, decode JSON into Swift structures, and display current conditions on the serial monitor.
Connects an ESP32 Wi-Fi module to an armature sensor to read temperature and humidity and post data to Thingspeak every 30 seconds for live cloud visualization.
Tilt the board to move a ball displayed on the LCD, reading accelerometer data and updating the ball's position in real time with a simple speed and bounds check.
Harness Swift to build a button-driven Morse code transmitter that differentiates dits and dahs by timing, displays messages on serial monitor, and drives a light-emitting diode and buzzer for feedback.
Create a two-player tic tac toe game on a ST7789 lcd using swift io, with a 3x3 grid, potentiometers and buttons, and colored squares.
Build the blink project with the Swift IO micro on breadboard, wiring a led and 220 ohm resistor to D18 and GND, then blink in infinite loop with Swift code.
Expand the blinky project by adding a second LED on a breadboard with power rails, wiring, and separate microcontroller pin control to blink two LEDs independently.
Design a Larson scanner with eight leds on a breadboard, using digital out pins d0-d7 and an array of outputs to sweep forward and backward at adjustable speed.
Implement digital input with a push button using a pull-down resistor to stabilize d10, and illuminate an LED on d13, with code and 10 ms debouncing.
Explore debounce, the process of removing button bounces and other hardware transitions, and learn hardware and software fixes like capacitors and delays to stabilize microcontroller readings.
Read a digital input from a button and print true or false to the serial monitor, demonstrating setup, wiring, and serial output with a 1-second loop.
SwiftIO Micro / SwiftIO Playground
Explore the Realm of Hardware with Swift
Venture into an innovative space where Swift transcends its traditional boundaries of iOS, macOS, watchOS, and tvOS development. SwiftIO heralds a new era, introducing the world's first microcontroller that uses Apple's Swift programming language. This course invites you to meld the realms of software and hardware, enabling the creation of remarkable tech devices fully controllable with Swift.
Why Choose SwiftIO?
SwiftIO equips you with a powerful platform designed to bridge your software development expertise to the tangible world of hardware. This course demystifies the process, offering you the tools and knowledge to command LEDs, motors, servos, and a plethora of devices, bringing your code to life.
Development Environment: Visual Studio Code
Ditch the complexity for simplicity with Visual Studio Code, our recommended development environment. Tailored for SwiftIO, Visual Studio Code ensures a smooth transition for Swift developers into hardware programming. Coupled with the mm-sdk CLI tool, it offers a seamless workflow from code to deployment on your SwiftIO board.
Swift Among Titans
Join Swift as it stands among giants like C/C++ (Arduino), Python (MicroPython, CircuitPython), and Go (TinyGo) in the microcontroller domain. SwiftIO's introduction brings the elegant syntax and power of Swift to microcontroller-based projects, expanding its reach and capabilities.
What You'll Learn:
This comprehensive course covers all bases - from the fundamentals of electricity and circuit components to a deep dive into Swift programming. You'll start from scratch, building a solid foundation before moving on to more complex and impressive projects. Whether you're new to programming, electronics, or looking to leverage your Swift skills in new ways, this course has you covered.
Begin Your Journey
This course is your ticket to blending digital creativity with physical innovation. By its end, you'll not only grasp the essentials of using Swift in a new light but also gain the confidence to design and execute your own hardware projects.
Embrace the challenge and start transforming your digital expertise into physical creations with SwiftIO. Begin your journey into hardware programming today.