From RepRap
Jump to: navigation, search

Note: this is a description for an older attempt to communicate between various electronic RepRap components. While there is currently no known device using this, it might be worthwhile in some future arrangement.

Communication Protocol

These modules communicate using the SNAP Communications library. This is an implementation of the SNAP Protocol in a ring network.

Protocol Version 1

Global Commands

These commands should be implemented by every single device with an address.

[0] Get Version

Returns the version of the module. This message is the only message universally supported by all devices and is therefore useful as a test.


  • None


  • 1 byte: Response type (0)
  • 1 byte: major version number
  • 1 byte: minor version number

[255] Get Module Type

Returns the type of the module. This message is used to query every device in the network to determine what types of devices are connected. For example: the RepRap host software queries all devices for their type, compiles a list of connected devices, then queries each device for its version. From there, it can easily autoconfigure its internal software and automatically communicate properly with each device in the network. All this can be done transparently to the end user.


  • None


  • 1 byte: Response type (255)
  • 1 byte: module type (see table below)

Module Types:

Id Type
0 Linear Axis / Stepper Controller
1 Thermoplastic Extruder
2 Support Extruder
3 Cartesian Robot
4 Laser Cutter/Etcher
5 Cutting Toolhead

Allocated addresses

  • 0 PC
  • 1 Master controller (not currently used for ring network)
  • 2 X axis
  • 3 Y axis
  • 4 Z axis
  • 5-7 Reserved for 6 DoF platforms (Stewart platform etc.)
  • 8..27 Extruders 1 to 20
  • 50 IOBox test tool

Next Generation Protocol Ideas

Protocol Modules