PRLS Tutorials and Guides

This page contains a set of tutorials and guides for using the Additive Robotics Professional Robotics Learning System.

Quick Start Guide


To use the PRLS, you need access to:

  1. A computer (Ubuntu 16.04 recommended)
  2. A 3D printer (or our supplemental mechanical parts kit)

Software setup

The easiest way to configure the necessary software on is to download and run this installation script. This can be done from the command line with

wget && source

You can also manually set up a computer with a different OS by following the steps below.

  1. install system packages: build-essential git gcc-arm-none-eabi qemu-system-arm symlinks expect ycmd atom clang uncrustify
  2. install openocd from source
  3. download our embedded software repository
  4. add 99-openocd.rules from our repository to the system udev rules
  5. add self to group plugdev if necessary
  6. (optional) install atom packages: autocomplete-clang, atom-beautify, atom-linter

Building your first robot

The easiest way to get started with hardware is to 3D print our open-source hardware examples. The example hardware can be assembled to create a simple autonomous driving robot that uses all the parts in the kit. Pre-printed parts can also be purchased if a 3D printer is not available.

Along with the example hardware, we also provide templates for various hardware interfaces. These designs can be used as a starting point for custom robots, and are particularly useful for the hardware design component of a robotics course.

A guide to the PRLS hardware can be found here.

Writing your first program

Our software repository contains both a library tailored to the PRLS and example projects. To create a new project based on the template, go to the projects directory of the embedded repository and run

./make_new_project [NewProjectName]

The script will generate a new directory “new_project_name,” with source / header files for the class “NewProjectName.” The project should compile as is (see instructions below), and should cause the status LEDs to flash at 1hz (on for half a second, off for half a second) when executed.

Building, loading, and running the program from the command line

To use your program, the code must first be compiled, then loaded on to the Module Core, and then started. Programs can be compiled, loaded, and debugged from the command line. To just compile the code, run


in the project directory. To compile and then load or debug the code, run

make load


make debug

Note that both of these options will not automatically start the program. If the load command is used, the program can be started by pressing the reset button on the module core. If the debug command is used, a command-line debugger (GDB) will be launched, from which the program can be started. Common GDB commands can be found in this cheat sheet.

Building, loading, and running the program from Eclipse

Program loading / execution can also be done using Eclipse CDT along with the GNU ARM Eclipse plugin. Instructions for setting up the GNU ARM Eclipse plugin can be found here. Once configured, you should be able to import the program into eclipse as an existing C++ makefile program. You can then debug the program by adding a new OpenOCD debugging configuration, using “-f ../../common/scripts/board.cfg” for the config options.

Next steps

You’re now ready to gain professional experience in a wide range of robotics topics. You may want to start by following the tutorials below, or by free-form experimentation.

Mechanical Design Tutorials

PRLS Mechanical Kit Assembly Guide

Onshape tutorials

MatterControl tutorials

3D-printing quality troubleshooting

Software Tutorials

C++ tutorials

Git tutorials

GDB usage

ROS tutorials

PRLS Usage

Basic library usage

Example projects