Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the Kinen Motion Control System. Kinen is a set of conventions and specifications designed to support controllers, sensors, and actuators for motion control and other projects. This includes (but is not limited to) devices like stepper controllers, servo controllers, extruder controllers, pulse-width modulation spindle and laser controllers, temperature sensors and other devices. Kinen provides a modular framework at the hardware and communications levels to mix and match control electronics with a minimum of new custom development.
The goals behind Kinen include:
Provide hardware interoperability at the device-type level - e.g. stepper controller 'A' will work in a Kinen compatible system and so will stepper controller 'B' because they both follow the same conventions for parallel port pins, configuration variables, and other functions.
Provide conventions for device communications. Isolate transport, representation, and command semantics to work over USB, SPI, Ethernet, RS-485, wireless and other protocols.
Support plug-and-play drivers by providing an inspectable device descriptor for each device, and establish methods for discovery and late binding of drivers.
Provide a forum to define, discuss, argue, and publish device-type conventions to enable the above compatibility
Provide a community administered device-type registry to record device-types and their details
Provide a common place to look for compatible devices and provide a convenient jumping-off point for makers to provide device details, support, and sales
- Kinen RESTful Hardware Overview
- Kinen RESTful Hardware Conventions
- Kinen SPI Specification
- Kinen Sockets - Pinouts and Electrical
- Kinen Sockets - Mechanical
- Device Types
- Device Makers
Kinen setups can share as little as the underlying communications conventions as described in Kinen Protocol Specification. Using these conventions will simplify integration of device networks that can be built and managed as RESTful hardware. Device networks can be loosely or tightly coupled; by connecting devices via communications links (e.g. SPI, USB, 802.15.4); by connecting devices as pluggable modules; or even by defining devices as functions that cohabitate on the same embedded chip.
Going beyond the communications, Kinen hardware setups typically consist of a Kinen compatible motherboard with a microcontroller and one or more Kinen sockets, and a collection of Kinen "fins" (daughterboards) that plug into the motherboard. Kinen fins may be stepper motor controllers, servo controllers, extruder controllers, heated bed controllers, LED controllers or any other output or input device you define. Here's an example using a motherboard with a temperature controller fin.
The Kinen bus itself is very simple. A Kinen socket consists of a pair of 0.100" dual inline headers split into a (2x7 pin) smart header and a (2x13 pin) dumb header. A socket has connections for:
- SPI port
- I2C port
- Board reset
- Board interrupt
- 6 parallel port bits with pin usage assigned by the conventions for that device type (e.g. steppers)
- 5 volt and 3.3 volt logic power and ground (and IOref)
- Four high current outputs - e.g. for stepper motor phases
- High current power and ground (up to 9 amps total)
Here's an example of a board layout using Kinen (See Kinen Socket Pinouts and Electrical Specification for exact pinouts)
##Notes about this site and Kinen in general
This site and much of the Kinen concept is in heavy draft form. We are hoping for dialog and comment (in the Issues section) to move this along. Many of the conventions and rules of operation are unclear and we expect to work this out as we go along, so please comment.
In any event we will be posting more data and some driver code as these things get developed over the next few months.