Skip to content
Switch branches/tags
Go to file


Failed to load latest commit information.
Latest commit message
Commit time


Screwless Modular Assemblable Robotic System

Build Status

Visit for more information about this project. The site includes build instructions, videos, an interview with the designer and much more.

SMARSLab & SMARS_Library

I've broken the SMARS code into two parts:

SMARS_Library is a component that can now be installed via

pip install smars-library

or visiting

SMARSLab is a web-based application for controlling your SMARS robots. The aim it that this will support both bluetooth connected wheeled SMARS as well as ones running locally on a raspberry pi zero. It currently supports QUAD SMARS and there is a test app for testing bluetooth connectivity. Visit for more information.

About this library

This library will enable you to get the quad robot walking and detecting its environment.

Python Library now pulls from pip

There is now a SMARS Python library available via pip.

Make sure you follow the instructions below to ensure the virtual environment is setup correctly and everything should work perfectly.

Setup a virtual environment

The best way to ensure all the right prerequisites are installed and the supported version of python is installed is by setting up a virtual environment for python.

To Install virtualenv:

  • log on to your raspberry pi
  • install virtualenv:
sudo apt-get install virtualenv
  • create a new virtual python environment:
virtualenv -p python3 venv
  • activate the new python environment:
source venv/bin/activate
  • install the pre-requisites:
pip install -r requirements.txt
  • to deactivate the environment once you have finished, type


├── Documentation                   - All the Documents
│   └── SMARS Build Instructions
│       └── Build instructions.pdf  - PDF version of the build instructions
├──                   - script for helping setup limbs on a QUAD SMARS
├──                      - Describes the pinouts for the PCA9685
├──                       - this file
├── requirements.txt                - used by pip to install the prerequisites
├──                       - a code similar to G-Code for sending commands to a SMARS, work in progress
├──                  - a parser for S-Code
├── Scratch 1.4
│   └──         - an example Scratch 1.4 file for communicating with SMARS
├──              - the lister app for communicating with SMARS and Scratch
├──                        - a shell script for setting up the code on a raspberry pi
├── SMARS_ultrasonic_demo
│   └── SMARS_ultrasonic_demo.ino   - a sample Arduino script for using the ultrasonic sensor
├── STL_Files                       - some STL files for modified tracks
│   ├── Track 18mm.png
│   ├── Track 18mm.stl
│   ├── Track 20.5mm 16h.stl
│   ├── Track 20.5mm.stl
│   ├── Track 205mm.stl
│   ├── Track 210mm.stl
│   └── Track.png
└── test                            - the test suite
    ├──                     - test suite documentation
    ├──                     - a simple test app for checking your SMARS setup
    └──               - the test suite used by Travis-CI to confirm build quality

Scratch 1.4 Code

The Library now includes a sample Scratch 1.4 script that will enable you to control your SMARS Quad robot from the scratch environment. Please note you will need to enable the remote sensor control for this to work, by right clicking on the sensor and clicking on 'enable remote sensing'.

The Scratch demo script needs to communicate with the Python '' code, and you will need to know the IP address of the computer running Scratch 1.4.

Note only Scratch 1.4 has the 'enable remote sensing' option available, Scratch 2.0 & Scratch 3.0 do not allow this, however you can still download and use Scratch 1.4 from the Scratch website:

Link to thingiverse original model:

Link to Quad version

Overview and Background

This robot is really easy and cheap to 3d print, build and program. It can be assembled without screws or soldering and it's modular so it can be adapted for different purposes. I'm Swiss, so I don't know American scholastic system but I would use SMARS in last year of middle school, high school or universities/ colleges. There is more "open electronics" compared to a Lego NXT or similar, so students need a few knowledges about security, electrical laws and so on. It can be use to improve software development skills, CAD skills or electronics skills, students can design their own modules and customize their SMARS.

Programming SMARS

You can use most common small hardware platforms as the brains inside SMARS, the Arduino platform (and compatible) was used in the original design as its cheap, commonly available, and the tools for programming it are easy to use. For the quad version of the robot a Raspberry Pi Zero was used. The language commonly used on the Pi (and where it gets it name from) is Python. A library module has been written for both Arduino and Python to help you get started.

Getting the Arduino IDE

Visit to download the latest Arduino Integrated Development Environment (IDE).