├── main.swift ├── .gitattributes ├── .yo-rc.json ├── contributing.md ├── code-of-conduct.md └── readme.md /main.swift: -------------------------------------------------------------------------------- 1 | print("Nothing to see here.") 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | readme.md merge=union 3 | -------------------------------------------------------------------------------- /.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "generator-awesome-list": { 3 | "promptValues": { 4 | "username": "Devran Uenal", 5 | "email": "maccosmo@gmail.com" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please note that this project is released with a 4 | [Contributor Code of Conduct](code-of-conduct.md). By participating in this 5 | project you agree to abide by its terms. 6 | 7 | --- 8 | 9 | Ensure your pull request adheres to the following guidelines: 10 | 11 | - Make sure you take care of this 12 | - And this as well 13 | - And don't forget to check this 14 | 15 | Thank you for your suggestions! 16 | 17 | 18 | ## Updating your PR 19 | 20 | A lot of times, making a PR adhere to the standards above can be difficult. 21 | If the maintainers notice anything that we'd like changed, we'll ask you to 22 | edit your PR before we merge it. There's no need to open a new PR, just edit 23 | the existing one. If you're not sure how to do that, 24 | [here is a guide](https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md) 25 | on the different ways you can update your PR so that we can merge it. 26 | -------------------------------------------------------------------------------- /code-of-conduct.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at maccosmo@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [http://contributor-covenant.org/version/1/4][version] 72 | 73 | [homepage]: http://contributor-covenant.org 74 | [version]: http://contributor-covenant.org/version/1/4/ 75 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Embedded Swift [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | 3 | > A curated list for Embedded and Low-Level development in the Swift programming language. 4 | 5 | 6 | ## Table of Contents 7 | 8 | - [Microcontroller units](#microcontroller-units) 9 | - [Single Board Computers](#single-board-computers) 10 | - [Communication](#communication) 11 | - [Displays](#displays) 12 | - [LEDs](#leds) 13 | - [Sensors](#sensors) 14 | - [Modules](#modules) 15 | - [Graphics](#graphics) 16 | 17 | --- 18 | 19 | ## Microcontroller units 20 | 21 | - [Swift for Embedded](https://github.com/swift-embedded/swift-embedded) - Swift for Embedded Systems ✨ 22 | 23 | ## Single Board Computers 24 | 25 | - [buildSwiftOnARM](https://github.com/uraimo/buildSwiftOnARM) - 🛠All you need to build Swift on a RaspberryPi or other ARM boards, updated to Swift 5.1.1 26 | - [Swift on Balena](http://github.com/wlisac/swift-on-balena) - Docker images for Swift on Raspberry Pi and other ARM devices from balena's base images. 27 | 28 | ## Communication 29 | 30 | ### Networking, IoT, Bus Protocols, … 31 | 32 | - [SwiftyGPIO](https://github.com/uraimo/SwiftyGPIO) - ⚡️A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire. 33 | - [SingleBoard](https://github.com/Kaiede/SingleBoard) - GPIO Library for Single Board Computers (Raspberry Pi / Rock 64) 34 | - [SwiftyXBee](https://github.com/samco182/SwiftyXBee) - ⚡️ A Swift library for communicating with XBee radios in API mode 35 | - [SwiftLinuxBLE](https://github.com/kevinbrewster/SwiftLinuxBLE) - SwiftLinuxBLE is a lightweight convenience wrapper for the PureSwift BluetoothLinux library. 36 | 37 | ## Displays 38 | 39 | - [SwiftyOLED](https://github.com/3Qax/SwiftyOLED) - A Swift library for OLED displays based on SSD1306 and SSD1305 drivers. 40 | - [SwiftyTM1637](https://github.com/SwiftyLinkerKit/SwiftyTM1637) - A Swift class to drive the TM1637 chipset (i.e. 7-segment LK-Digi Display) 41 | - [5110LCD_PCD8544.swift](https://github.com/uraimo/5110lcd_pcd8544.swift) - A Swift library for the Nokia3310/5110 PCD8544 Monochrome LCD display 42 | - [HD44780CharacterLCD.swift](https://github.com/uraimo/HD44780CharacterLCD.swift) - A Swift library for 16x2/20x4 Character LCDs with the HD44780(or clones) controller 43 | - [LCD20x4_i2c](https://github.com/carlhung/LCD20x4_i2c) - LCD20x4 Driver in swift for raspberry pi wiring in i2c 44 | 45 | ## LEDs 46 | 47 | - [swift-raspberry-pi-adafruit-led](https://github.com/jrahaim/swift-raspberry-pi-adafruit-led) - Swift implementation for accessing adafruit LEDs on a raspberry pi 48 | - [WS281x.swift](https://github.com/uraimo/WS281x.swift) - A Swift library for WS281x (WS2811,WS2812*,WS2813*) RGB led strips, rings, sticks, matrices and more. 49 | 50 | ## Sensors 51 | 52 | - [SwiftySHT20](https://github.com/samco182/SwiftySHT20) - ⚡️ A Swift library for the I2C SHT20 Humidity and Temperature Sensor. 53 | - [LSM303](https://github.com/flx/LSM303) - LSM303 Accelerometer access through Swift on Raspberry Pi 54 | - [PCA9685](https://github.com/Kaiede/PCA9685) - PCA9685 I2C Driver for Swift 55 | - [HCSR04.swift](https://github.com/konifer44/HCSR04.swift) - A Swift library for the HC-SR04 (US-015 and similar) ultrasonic ranging sensors. 56 | - [DS18B20.swift](https://github.com/uraimo/DS18B20.swift) - A Swift library for the DS18B20 digital temperature sensor 57 | - [RCWL-0516-Radar.swift](https://github.com/uraimo/RCWL-0516-Radar.swift) - A Swift library for the RCWL-0516 Microwave Radar 58 | - [Nunchuck.swift](https://github.com/uraimo/Nunchuck.swift) - A Swift Library for the I2C Wii Nunchuck controller. 59 | - [DS1307.swift](https://github.com/uraimo/DS1307.swift) - A Swift library for the DS1307 (DS1302, DS3231) I2C Real-Time Clock 60 | - [MPU-6050.swift](https://github.com/uraimo/MPU-6050.swift) - A Swift library for the MPU-6050 (and MPU-6000 family) Accelerometer and Gyroscope 61 | - [UBloxGPS.swift](https://github.com/uraimo/UBloxGPS.swift) - A Swift library for boards with the u-Blox 6/7/8 family of A-GPS receivers 62 | - [DHT-SwiftyGPIO](https://github.com/micheltlutz/DHT-SwiftyGPIO) - SwiftyGPIO with RaspberryPi + DHT11 Module 63 | 64 | ## Modules 65 | 66 | - [MCP3008.swift](https://github.com/uraimo/MCP3008.swift) - A Swift library for the MCP3008 (and MCP3002,MCP3004) 10 bits SPI ADC 67 | - [MCP4725](https://github.com/Kaiede/MCP4725) - Swift library for interacting with the MCP4725 I2C 12-bit DAC. 68 | - [SG90Servo.swift](https://github.com/uraimo/SG90Servo.swift) - Swift library for the SG90 Servo Motor, adaptable for other servos (9g ES08A, SM-S4303R, S3003, etc...). 69 | 70 | ## Graphics 71 | 72 | - [SwiftyGFX](https://github.com/3Qax/SwiftyGFX) - A Swift graphics library useful when working with dot matrix displays. 73 | 74 | 75 | ## Contribute 76 | 77 | Contributions welcome! Read the [contribution guidelines](contributing.md) first. 78 | 79 | 80 | ## License 81 | 82 | [![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0) 83 | 84 | To the extent possible under law, Devran "Cosmo" Uenal has waived all copyright and 85 | related or neighboring rights to this work. 86 | --------------------------------------------------------------------------------