Thomas Lochmatter · LaTeX to SVG · Secret Sharing · RGB/xy · NTC · PDF · QR · Unicode


A Linux Library for the maxon motor Positioning Control Units (MIP)

libmip is a library to access maxon motor's MIP 10, MIP 50 and MIP 100 devices over an RS-232 or an RS-485 interface from a computer running Linux, Mac OS X or many other Unix flavors.


  • Implements almost all commands of the maxon MIP documentation
  • Handles multiple MIPs (on the same or on different serial ports)
  • Offers the possibility to concurrently operate several MIPs from the same process/thread (event-based, asynchronous design)
  • Uses the POSIX termios library to access the serial port (except for the MARK/SPACE parity)
  • Object-oriented API
  • Source code available


libmip.tar.bz2 — library and example code (updated 2016-03-29)

libmip.pdf — API documentation (PDF)

Have a look at the README file for installation instructions. More documentation is available on request.

If you find this library useful, please drop me an email. I'm always glad to hear of projects using it.

Known Problems

The MIP devices use MARK/SPACE parity (8M1, 8S1) in their serial communication protocol. This is not POSIX compliant and therefore not guaranteed to be supported by POSIX compliant systems. This library contains two workarounds for this problem.

Linux and MARK/SPACE Parity

Feedback, Support and Bug Reports

Feedback is always welcome. If you report a bug, please try to be as specific as possible (i.e. do not report "something doesn't work").

If you have questions about my implementation, feel free to contact me. I'll give support as long as time allows it.

Related Work

If you are looking for a linux library that implements the EPOS protocol, check out Marcus Hauser's libEPOS.


This library may be used for free for any NON-COMMERCIAL purpose, including education and non-commercial research.

For COMMERCIAL projects, please contact me for licenses.