Marty v1 Integration and API Docs

Marty has two main different modes of operation - remotely controlled with just a Rick in the head (how Marty is normally when you first get one), and an extended mode where a Raspberry Pi, Arduino or other serial or I2C enabled microcontroller or mini-pc is inside the head with Rick.

Some of our APIs and Integrations work with only one of these modes, some with both so we've split them into groups below. Martys can also be simulated using V-REP without needing a physical robot, also detailed below.

For Tutorials and Guides instead, and sourcecode, check out:

  Learning Portal   Robotical on GitHub   Marty Calibration Tool   Calibration Troubleshooting

Standard Setup with Just Rick

Scratch is the simplest way to program a Marty if you're a complete beginner. It has a simple graphical interface and blocks you can combine to build up a program, and is very popular with kids & educators.

Python is an easy to learn real-world programming language used by hundreds of thousands of people, with a strong online community and thousands of libraries.

Our Python API is probably the best pick for most people.

RaspberryPi in head with Rick

Python can also be used to control Marty from within the head. If you've also got ROS installed, then you have full access to rospy, otherwise you can use martypy.

ROS, the Robot Operating System is an incredible framework and collection of tools and libraries for building robotics applications. Marty is fully integrated into ROS, with the ros_marty API.


V-REP is a popular robot simulator with a whole load of ways to integrate with it. Marty is natively supported and packaged with V-REP.

(Note that V-REP is licensed according to Coppelia Robotics' licensing restrictions and condition)

Hardware & Low-Level APIs

This set of articles cover the sensors and physical aspects of Marty, as well as the more nitty-gritty technical details of Rick, Marty's control board and the associated electronics they come with. Also covered are complete connection details for interfacing with Rick's GPIOs and interface connectors.

Additionally our lowest level APIs are documented here, so if there's a language or system you want to use that's not currently supported, you may still be able to implement your control through these bare-metal APIs.