Commit fff1bf9e authored by ryukoposting's avatar ryukoposting


parent 7cc8b4a7
This diff is collapsed.
### PC-GPIO: API for manipulating microcontroller IO from your computer
The PC-GPIO API is a multi-platform API for interfacing with microcontroller IO from a
host computer running Windows, OSX, Linux, or *BSD. The host computer talks to the
microcontroller over TTL serial at 115.2kbaud.
Currently, the API allows the user to:
- Use any number of microcontrollers simultaneously
- Read and write to digital IO pins
- Read from analog input pins
- Write to PWM output pins
- Configure input capture with automatic callbacks to the host computer on capture
Planned features:
PC-GPIO is...
- Lightweight: default PC-GPIO microcontroller firmware generally uses very little of the
slave microcontroller's resources. Customized firmware is easy to make, and can utilize
a sizable amount of the microcontroller's resources without interfering with PC-GPIO.
- Cross-compatible: PC-GPIO requires no heap-allocated memory, and communicates over
standard TTL serial, meaning it is compatible with virtually any modern microcontroller.
The host-side PC-GPIO API has absolutely no external dependencies except for the
low-level libraries provided by the user's operating system.
- Industrial-Strength: error and safety checks abound in the PC-GPIO API, with virtually
all functions returning some form of status message. Checksums on every message mean
that errors are found before they can have unwanted effects on IO. Because of the lack
of heap usage, risk of memory fragmentation is eliminated, which is helpful in
environments where indefinite uptime is essential.
### Supported Operating Systems
- Currently Supported:
- The UNIXes, including Linux, OSX, and *BSD
- Planned:
- Windows (framework is already there, just need to write the platform-specific code)
### Natively Supported Microcontrollers
Literally any microcontroller with a UART peripheral that can run at 115200 baud can be
used with PC-GPIO with just a few dozen lines of code. However, implementations already
exist for the microcontrollers listed below:
- Arduino
- DUE: fully supported. Supported natively in the Arduino IDE. Will also be supported
without Arduino library dependencies via direct support for the SAM3X8E.
- UNO: planned.
- Atmel
- SAM3X4E, SAM3X8E: planned.
- Microchip (PIC)
- PIC24FJ16GA002, PIC24FJ32GA002, PIC24FJ48GA002, PIC24FJ64GA002: planned.
- PIC24FJ16GA004, PIC24FJ32GA004, PIC24FJ48GA004, PIC24FJ64GA004: planned.
- Infineon
- XMC1404: planned.
### License
Copyright (C) 2018 ryukoposting
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see [](
Contact: [](
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment