Host and client on the same machine

This might seem like a weird feature to some that have not used a 3D printer before but a 3D printer needs another board to control the 3D printer controller board. Most people plug the 3D printer into their computers or laptops and run prints from there, this ties up the machine until the print is done. Then those users learn about running either Repetier Host/Server or OctoPrint/OctoPi on a Raspberry Pi, a low power open source computer. Adding this allows for uploading prints via the web. What you wind up with is either a mod to the printer or a bunch of wires and a Raspberry Pi consuming a desk. This is why the the Raspberry was built into the printer itself as a standard feature.

Adding a Raspberry Pi into the build

The choice to use a Raspberry Pi for this printer was base on it wide use and there were already images pre-built, making things easier.

Software for the Raspberry Pi

Between Repetier Server and OctoPrint, which seem to be among the more popular, Open – Source was kept in mind during this project. Repetier Server has a great free offering, however that offering is minus a couple of features that makes using OctoPi and Octoprint together and easy choice. Both have a good web interface, Repetier Server, can manage multiple machines very well with the web interface. OctoPrint has plugins and an active community supporting those plugins. One plugin that makes printing from any browser, simple, is Slicer. This plugin allows you to manulate STL files and slice them with either Cura or Slic3r.

Auto – Bed Leveling

Auto – Bed Leveling

The XenoCube has a inductive sensor utilized as the Z end stop. The Marlin Firmware is set to auto level the print to the bed, so that the imperfection/uneven surface will not be affected during the print. Auto – Bed Leveling runs before every print to unsure consistent printing.

Firmware Upload

Firmware Upload steps for MKS v1.5 printer controller board.


  1. Downloaded the latest firmware from: Marlin XenoCube Firmware
  2. Downloaded latest version of Arduino: Arduino Download
  3. The controller board is plugged in to power.
  4. There is a USB connection from the board to a computer.

Uploading Firmware to the Printer Control board.

  1. After installing Arduino, open the XenoCubeMarlin.ino, This should open Arduino and load all of the other files in the directory.
  2. Double check that Arduino is connected to the printer. Then select Board and port under Tools > Board = Mega 2560, Port: (This needs to be the com port that the USB cable is plugged into).
  3. There should not be any need to make any changes to the files.
  4. The firmware needs to be verified and complied before upload, run Sketch > Verify/Compile.
  5. Pending no errors from running Verify/Compile, go ahead and run Sketch > Upload. This will re compile the code and upload it to the board. (During the upload the blue com light on the board will flash repeatedly until upload is done.

Common issues:

  • Did not all the files load into Arduino? – Make sure that you either open the .INO file or navigate to File > Open > XenoCubeMarlin.ino. Do so will make sure all needed files are loaded.
  • No Com port listed under Tools > Port? Make sure that you have installed the USB driver. Please see KB article. Installing printer driver to upload firmware.
  • Making changes to any of the files could result in Arduino failing to compile the firmware, or adverse side effects during printing. However, if there are any normal changes that need to be made, look in the Configuration.h file.
  • No flashing lights on the printer board? Make sure that the compiling did not error out and/or communication to printer has not failed.

Software Stack

Software Stack

List of software components for XenoCube:

  • Marlin Firmware to drive the controller board.
  • OctoPI to drive the Raspberry PI
  • OctoPrint to drive the Printer.
  • Cura for slicing.
  • Arduino for uploading Firmware.

This should complete the list of software components need to run the XenoCube.

What Tools will I need?

The following is a list of common tools needed to assemble XenoCube.

  1. Prepping Parts:
    • Drill Bit Set – Including 8mm, 5mm, and 3mm drill bits. Drill the holes on the plastic parts.
    • Metal Chop Saw – Extrusion Bar, Drill Rod, and Threaded Rod needs to be cut.
  2. Frame Construction:
    • Bit Driver – Recommended to save your wrists.
    • Hex Bit Set – Including 3mm Hex, 5mm, Hex, Philips, and Flat head bits.
    • Pliers – Diagonal, and Needle Nose.
  3. Wiring:
    • Wire Stripper – Prepping wire ends.
    • Soldering Iron – Connecting wires together.
    • Wire Crimpers – Connections to PSU and Terminal Blocks.
    • Voltage Meter – Good for checking connections, resist, and well voltages.
  4. Software:
    • Computer – Needed for imaging Raspberry Pi SD card.