The Solidoodle 2 is compatible with Linux, though it can be a little tricky to get working with anything but Pronterface. The following information is written originally for Ubuntu/Debian, but should be adaptable to most distros.


Pronterface as distributed by Solidoodle nominally works in that it starts, but several packages are needed to have it work properly. On Ubuntu, these can be installed with the following command:

sudo apt-get install python python-tk python-pmw python-imaging python-serial python-wxgtk2.8 python-pyglet

This should install everything needed to run Pronterface with the included Skeinforge (which requires tkinter, installed by the line above), including displaying the model and printing.

Port Speed in Pronterface

For the out of the box Marlin firmware, the port speed MUST be set to 250000. This is the only speed that will work out of the box.

python-tk on Ubuntu 12.04 LTS i386

Ubuntu 12.04 LTS i386 does not include python-tk by default (x64 does). So, skeinforge will give you an error. To fix this, do:

sudo apt-get install python-tk


Getting RepetierHost to work with Solidoodle in Linux is far more labor intensive than using Pronterface, primarily because you have to recompile the firmware to a different port speed. The reason why is that RepetierHost's 'Linux' version is actually the Windows version, but running with the Mono Libraries, which allow it to run on Linux. These libraries do not support the custom port speed of 250000, so a different and more standard port speed must be used. Don't get nervous though, we will walk you through it.

NOTE: After recompiling the Firmware to 115200 you will have to set this value in Pronterface for it to continue working properl

How to recompile the firmware

First, you must download the correct version of the Arduino software, which for the Solidoodle is 0022 and can be downloaded from here.

Second, you will need the latest Solidoodle firmware from lawsy's github site. Use the 'ZIP' button in the upper left to download the whole thing.

Now you are ALMOST ready to carry through. Solidoodle itself has some really good instructions here but there are a few things to change:

  1. After you have opened the firmware ''(Step 3 part 6)'', you need to change the port speed in '''configuration.h'''. the lines for both port speeds are there, so just comment out the one for 250000 and uncomment the one for 115200
  2. The best reset button method I have found is right after hitting upload, double tap the reset button on the Solidoodle. This has worked more consistently than any other.
  3. You will likely get this compile error when you try to upload the firmware:
In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
                 from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
                 from /home/mbell/Downloads/arduino-0023/hardware/arduino/cores/arduino/wiring_private.h:30,
                 from /home/mbell/Downloads/arduino-0023/hardware/arduino/cores/arduino/WInterrupts.c:34:
 /usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
 /usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token

This is due to a problem in the Marlin firmware and is caused by one line located in wiring.h (located in arduino-0022/hardware/Sanguino/cores/arduino/wiring.h) it is ~line 79 and you need to comment it out thusly:

// #define round(x)     ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

Then upload the firmware as it says in the instructions.

Running RepetierHost

RepetierHost has only a few dependencies, the main one being Mono:

sudo apt-get install monodevelop

Slic3r should run out of the box as long as PERL is installed.

To set up RepetierHost, download it and extract it into a directory, then run the '' script to set it up as a proper executable. You will probably also have to add yourself to the 'dialout' group:

usermod -a -G dialout yourUserName

For the printer setup, use the instructions from Solidoodle, just remember to use 115200 for the port speed instead of 250000.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License