Using OctoPi with Slic3r instead of cura

I installed OctoPi onto a Raspberry Pi embedded in my Makibox A6 HT 3d printer.
The development brance allows experimental slicing on the Raspi.
However it only allows to select a cura executable and config-file.
So here are the steps to do the same with Slic3r:

ssh pi@octopi.local

git clone https://github.com/hendricksonrw/OctoPrint/tree/cura-integration

wget http://makibox.com/tl_files/support/slic3r_configs/slic3r_configs.zip
unzip  slic3r_configs.zip
cp slicer_config/A6\ General\ \(HT\ PLA\)\ v0.3.ini slicer_default.ini 

git clone git://github.com/alexrj/Slic3r cd Slic3R
sudo perl Build.PL #this will take a LONG time and 1 or 2 tests may fail

vi cura_dummy

# ['/home/pi/Cura-13.01-linux/Cura', '-i', '/home/pi/cura_profile.ini', '-s', '/home/pi/.octoprint/uploads/Spritzen-Brett.stl', '-o', '/home/pi/.octoprint/uploads/Spritzen-Brett.gcode']

echo ----
echo ./slic3r.pl –load $2 -output $6 $4
echo ----
./slic3r.pl -load $2 -output $6 $4

chmod a+x cura_dummy

Then enter
"path to cura" = "/home/pi/Slic3r/cura_dummy"
"path to cura config" = "/home/pi/slicer_default.ini"


FreeCAD development VM

It took me an entire afternoon to set up a development environment for FreeCAD.
...so I'm publishing the ready made environment including kdevelop as a virtual machine.

For use with VirtualBox but the HDD is compatible with qemu.

The best option to extend the disk space is to add a second, virtual disk and mount it as /home/freecad/source or similar.

If there are issues where a (X)_python3.3.cmake file cannot be found, it may be required to change "python3.3" to "python2.7" via sudo in the respective (X).cmake file.

Developing a CAM for FreeCAD

This posting is just a list of links and notes for myself on how to get started contributing to the CAM project in FreeCAD.


Ultimately my aim is to integrate my SimpleMultiAxisCAM code for 4 and 5 axis CNC machining as a TPG (tool path generator) that post-processes the toolpath generated by another TPG. It shall add the inverse kinematic needed to use the 4th and 5th axis to follow the surface normal. Where that is not possible due to the tool or collet colliding with another point of the part or the machine, it shall try to follow the surface normal as close as possible.

CAM2 notes:

 'Tool Path Generator' (TPG) include a 'Geometry' setting.
   This 'Geometry' setting includes a list of object names from the current file.
 cam::Paths accepts these geometry names
   looks for those that are based on the Part::Feature class (and hence have a TopoDS_Shape reference).

   recursively iterates through the TopoDS_Shape objects until it finds the TopoDS_Edge objects.
It assembles these edges into lists of contiguous edges based on their endpoints.
The Cam::Path class does also allow Cam::Point objects to be contained so that point-based operations such as drilling, tapping, counterbore, boring etc.

   Stored these contiguous edges.

   represents a single 'curve' (i.e. line, arc, or spline, bezier curve).


For new developers:


large CNC converted to Ethernet

I did so much on the TravelCNC and the new Makibox 3D printer that all work on my large (very non-mobile) CNC got delayed quite a bit.
This weekend I finally got around to convert it from shielded USB cables to Ethernet.
The board was already capable of this but obviously I needed a way to supply 5V power when the USB cable was no longer used.

As a test-project I finished a very custom too-shelf for my tiny workshop out of scrap wood.
I tried to do deeper cuts into wood to use more of the actual cutting length of my thick 10 flute cutter and not wear out the tip as much but everything below Z-1.5mm was problematic.


Makibox with embedded Raspberry Pi

My Makibox is finally printing fine except for some MacOS related random freezes during long prints.
So I'm currently working on repling the desktop PC altogether and integrating a Raspberry Pi directly into the case of the Makibox.
Thus it will be remote operated via WiFi/Ethernet and a secured web UI.


Since I used MacOS, it was difficult to just DD the image onto the SD card.
(You can't do that while it's mounted and while it's not mounted you are missing the device entry.)
So I downloaded a small utility program to do that for me.


SSH was already configured. Pasword pi/paspberry. WiFi was already configured sans the networks keys.
With sudo I could easily edit the wpa_supplicant config.
At first it didn't want to boot unless Ethernet was connected.
I don't know why it works now.


My plan is to connect the Raspberry Pi camery but I haven't done so yet.
Octopi does support it.
There  is a nice swivel camera mount here but the base doesn't slice correctly with Slic3r and it is missing the back of the camera PCB case.


(Not done yet)
The Printrboard inside the Makibox seems to already provide 5V that I could use to power the Raspberry Pi.
GND Pin 6
5V Pin 2

Physical mounting

I'm working on it and will post the design files and STL exports on YouMagine soon. (No Thingiverse for me any more, sorry.)

Printer Settings 

You just need to set default temperatures and feedrates for jogging.
For some reason Octoprint/Octopi are not interested in the physical limits of your printer at all.

On-board slicing

Very experimental, so I haven't done that yet.
Here is the tutorial.


To update Octoprint on the Raspberry Pi, just SSH into the board and git-checkout the newest version.


The Raspberry Pi has one very important issue.
The SD card slot may loose contact at any time.
When that happens you get an "internal server error" in the middle of a print and cannot do anything via SSH because you are lacking all commands and files because...your file system is suddenly gone.
You can apply pressure to the SD card to counter this effect.
My Raspberry mounting above contains a pressure arm for that purpose.


Leaving Thingiverse

I like Thingiverse!
I put this step off for a long time, hoping for the best.
But Makerbot Industries has gone way too far and I can no longer support that site by hosting my designs there. Sorry.

My personal Makerbot Industries history?

 For my first 3d printer I decided on a RepMan 3.0. Back then the Makerbot Cupcake was out and it was clear that it had a ton of design flaws and was shipping with mistakes lots of others had already fixed in their designs.

When Makerbot Industries announced the Thing-O-Matic it looked like they had fixed their issues and had a new printer that was so reliable, it could print dozens of parts on a conveyor belt unobserved during the night. (That's what the official promo video showed a timelapse of after all.)
I was wrong. It was to be 2 years of fixing and tuning and replacing parts of that printer.

After such an experience I skipped the Replicator.
I learned that Makerbot doesn't release upgrade kits for their designs to fix hardware issues they know about.

Then a lot of features from Thingivere was removed (Bill of Materials, selecting required tools) that I had used up to that point. That got me quite upset but I didn't leave as there was not good alternative at that point.

Then they turned turbo-capitalist.
With the replicator II they stopped publishing hardware plans and switched to closed source software.
That step caused huge waves and a lot of people left Thingiverse and started alternative sites and a lound #OccupyThingiverse move.

I am subscribed to the Thingiverse Blog's RSS feed via a Reprap feed aggregator.
It turned out that the Thingiverse Blog became but a tag on the Makerbot blog.
Okay, I don't like that but I can live with that.

Nowadays the Thingiverse Blog's RSS feed consists entirely of Makerbot Industries marketing spam.
Not a single of these postings even mentions the word Thingiverse anymore. They are about Makerbot Stores and stuff.

Now the Thingiverse site login became a "Makerbot login". It's clearly no longer an independent site that happens to have a ton of Makerbox banner ads on it.

The last bit was their CES show now.
Chipped, proprietary filament cartridges in non-standard dimensions. This is a move I can absolutely not tollerate.
I'm leaving.


The most prominent alternative and the one I'm leaving for seems to be
Youmagine (It is operated by Ultimaker.)
They seem to be quite fair and open at the moment. I would have liked something not bound to any printer manufacturer but there is no better alternative now.

Youmagine allows me to include embed a design iFrame into this blog similar to embedded YouTube videos.
I guess I'll use that feature a lot.

My current plan is to keep the Thingiverse entries but remove the files and add a link to my Blog (most already have that) and to the Youmagine entry. Let's see if this will trigger any abuse response but I hope not.
I'm planning to use that opportunity to clean up many old designs, add more technical drawings,... .

I am thinking of having a copy on GitHub using this GitHub template for 3D printed projects.
The  problem with the GitHub -approach is that there is no index listing all  designs hosted where and that GitHub itself may at one point choose not to give free resources to projects that are not software at all.

About Youmagine

It's pretty new and still being improved at a very quick rate.

As far as the relation to Ultimaker goes, for the moment it seems to act only as a sponsor.
I would however really like an official word about this. Company managements change and so do their opinions.

It has this "send to 3d printer" button. It takes me to "You are not authorized to access this page." and I can't see a way to disable this or how it would ever select what file (if many) to send.

I get to have a Bill of Materials again! Yea!!!

I can't see anything about version control or deriving designs from other designs. The later feater I found quite important as you can navigate this ancestry both way. It was however seldomly used. Most designs I ever found are write-only and nobody ever improves on them. (Heck, hardly any 2 people use the same software or software able to import the original file. So people are often stuck with reverse engineering a design from an STL export.)

There is an empty "" block when editing a design. No idea what it means.

As for Creative Commons licenses: There is a nice feature "download printable attributions tag for this design" feature!

About Images: I cannot remove automatically rendered images for STL files. They will always be shown next to my uploaded images.

Profile page: You have to look up your password first. If you forget to enter it you are warned. Entering it THEN however takes you to the login page and after that all the text you already typed it lost. :(


Makibox issues

After I assembled my Makibox last night, I ran into a number of software issues.

Firmware: current 2.11

1 Lockups

Makible 5D Print in Google Chrome

In layer 5 of a test shotglass it just stopped and locked up. Wouldn't resume after power-cycling the printer and using the pause+resume function.
No error messages.

No manual jog controls for the extruder or Z axis => can't quickly move the head to a safe height and retract the filament after a failure.


Stock Pronterface/Printrun with Makibox settings.
I can jog each axis but loading any gcode and executing it, nothing happens.
It stays in line 0 (line 0 is a comment), doesn't heat up, doesn't home, nothing.

Update: gave Pronterface another try. This time it started printing but locked up just like 5D print did. So clearly this is a firmware issue or an issue in the common codebase (5D print started with a fork of Pronterface or so I've reat.)

Pronterface is incabable of stopping a print.
Pause, Reset, Stop, even Disconnect doesnt work. On Disconnect it executes the last 2 lines of g-code over and over again.This means the firmware has a bug and doesn't forget about already executed commands. At most it should finish the current command and then stop!


I tried RepetierHost with these settings.
I cannot navigate to any but the first page in the preferences window. ("Host", "Slicer", "3D visualisation", "Colors")
It seems to not update the graph or textual output of the current temperatures.
Do NOT check the "( ) printer sends OK even after error" box for the Makibox to work.

....it just locks up like all the others.

Temporary solution: I switch from a Macbook Pro to a desktop iMac and a different USB cable.

  • On the MacBook Pro with MacOS 10.9 "Maverick" the printer just randomly locks up independent of the host-software used.
  • On the iMac with MacOS 10.8.5 this doesn't happen.
  • It seems to happen less on the iMac when I move the mouse every few minuted to prevent any kind of light sleep mode.
Currently investigating the USB port power requirements as a possible reason.
(Original Printsboard allows for being powered by USB or internal regulators from it's stepper/heater power supply.)
If so, a powered USB hub should solve the lockups.

Solution: Raspberry Pi with Octoprint

2 Stalls and filament grinding

At random points in the print, the filament stops.
The drive gear has ground a hole into the filament.
The filament above that hole is nearly half ground away by the drive wheel.
  1. Repeated the bed leveling and all the tuning steps on the Makibox support page
  2. The hole for the axis of the plastic wheel in the extruder was too small. sanded it and the wheel now spins freely. (all injection molded parts where oversized on this Makibox.)
  3. Raised the temperature of the supplied "makibox HT test cube v0.2 PLA" from 192 to 218°C.
  4. Retract the filament after printing. Don't leave the filament to cool inside the hotend. Don't re-insert it before the hotend is <120 br="">
 Currently testing....

Possible next steps:
  1. Sanding down the surface of that springly plastic wheel to reduce friction.
  2. lubricating the rods and the axis in the extruder.
  3. Designing a different extruder with multiple drive-gears to increase grip without increasing pressure on the filament.

3. Slanted prints

...still working on this issue.
  1. Check your stepper voltages. Maybe go slightly above the recommed 1.45V reference volrage
  2. Check that your axis and hotend aren't fastened too tight.
  3. Check the motor coupling for breakage or being loose
  4. Check the bed-leveling bolts.
  5. ...TODO


Assembling my Makibox

I received my Makibox HT and am trying to assemble it as per the
assembly instructions.

General improvements

  • Label the bags!
  • Numerate and label the parts! 
  • Slot and tap contructions are always tedious. Especially in soft materials. It would have helped to tapper the taps (or the short side of the slots) of the slots to make insertion easier without affecting final stiffness. I get the impression that nobody ever thought about tollerances and how the parts have to move during assembly. A 5mm peg does NOT fit a 5mm hole. You make a 4.99mm peg and a 5.01mm hole!
  • Other kits often include 1 extra back with 1 instance of each bolt type used. So you have 1 spare in case one gets lots and don't get confused with having bolts left. (because they come in an extra bag)
  • The direct drive extruder is extremely prone to  get stuck and grind into the filament. It cannot transfer enough force, so a leadscrew or at least 2 driven gears on either side would have been a better idea.

Step 1

  • There is a vertical feature on one of the 170mm parts that is missing in the drawing. Thus being confusing.
  • Makible should label the parts by having a number be part of the mold. So you can refer to them.
  • Step C looks like there are 2 of the parts used in step B. Image isn't clear enough.
  • Use larger allowances for shrinkage in their taps

Step 2a+b

  • My kit was missing the M4 washers
  • The only M4x8 bolts in the kit have a different head (round) then in the image (flat).
  • ...and need a different size of hex key then in the video.
  • You need a broad screwdriver to hold the part for step B because you can't hold these with your fingers. (Too tight thread). In the video this is done by hand using the larger hex key...impossible in my kit because the bolts needs the smaller hex key and the part is made out of a denser material. One way is to clamp the screwdriver between your legs, hold the plate with one hand and very carefully turn the hex key with the other hand.
  • The round parts have no thread to hold the M4x8 bolts but these types of bolts are not ment to cut their own thread (That's why you need pliers. To force them).

Step 2c

  • A limit switch on the Y plate collides with a motor mount of the X plate. They don't fit. It looks like the limit switch on the X+Z plate is 4mm too long for it's position.
  • The M4x8 bolt thus can't reach the box on the other side that it is supposed to cut into. :/
  • Solution: That small, rectangular tab at the base of the cylindrical motor mount should not be there.
    If blocks the end stop and thus prevents the plates from matching up.
  • Problem: That M4x8 bolt is way too short! If you can, get a longer bolt to replace it!

Step 3

  • If you have magnetic (metric) hex keys, that could help in the fiddling with these tiny M3 bolts.
  • As always with steppers, check the orientation of the cable in the drawing to sew how to insert the stepper.
  • The image is not showing where one of the end-stop cables has to go when attaching the Z stage. 
  • The z axis in step C has no bolts securing it in place. It falls right of then you lift the assembly to continue with step 4.

Step 4

  • There are multiple parts that fit the drawing in 4a.
  • The parts added in 4a will fall off during 4b-d all the time.
  • 4d: You have to bend the thick wires to fit through the slots.
  • In 4d the on-off switch is not shown in the drawing and it it completely unobvious where it has to go.
  • Doing 4b before 4d makes fiddling the plug trough in 4d more tiresome then it needs to be.
  • In 4c it is not obvious from the drawing what part to use. (2 parts fit,  4 parts look like the drawing. 1 part is correct)
  • Seriously....Makible wants you to join about a dozen taps at once? In a tap&slot construction with no tapper and 0 allowances? Did they ever assembly any tap&slot or T-slot construction before? This is insane!
  • Tools required: flat rasp and mallet!
  • The bolts are too short to compress the parts together!

Step 5

  • This step requires some force. It would actually be easier if the part was not pre-assembled because the rods block the way for the hex-key.
  • For Step 5 B and C the flat part is one of the metal parts.

Step 6

  • easy

Step 7

  • 7b is tricky. The bolt has to cut it's own thread, yet there is not support form the other side. Why the plastic part had not been designed to fit is a mystery.
  • Page 7 (like others) doesn't follow western reading traditions of left to right and then up to down. So make sure where steps A, B and C are and execute them in alphabetic order.
  • The spring loaded platform is something I know from the old Repman. However this one is not good. The holes in the heated bed should be larger then the bolts! This way the plate tilts and then cants on the bolts and the springs have no effect anymore.
  • The position of the bolts makes leveling the bed and adjusting extruder height a nightmare!

Step 8

  • 8c : I'm not sure about their way of routing the cables. I usually try to keep cables away from heated metal plates
  • Warning! The printed instructions forgets to tell you that the bowden tube has 2 DIFFERENT ends. Check this video to see what end goes where!(The end with the deeper support goes in the hotend)

Step 9

  • I'm not sure that using bolts on acrylics without washers is a good idea.
  • Attaching the edges is very difficult without using a thread-cutter first.
  • Force the bolts into the edged first without the acrylivs, then remove them and then mount them. This requires enough force that the bolt actually gets hot (no powertools involved). Again this would be much simpler with another type of bolt that was designed to cut it's own thread.
  • Do NOT put that cable through there like instucted. It's too short later!

Step 10

  • Yes, you have to partly disassemble your preassembled extruder. That's correct.

Step 11

  • If you mounted your Z stepper wrong...now you'll regret it.
  • Also...what direction is X and what is Y? There is no imprinted hint! (Y is the longer axis)
  • HE?
  • HB? Maybe "Heated Bed" 
  • The drawing shows 3 endstop-headers but the board has 4. 
  • The video doesn't do the cabling in step 11 but aparently wires X and Y in some previous step. 

Step 13

  • aparently as with any other hole nobody thought of allowances and tollerances for the hole for the power plug. Even though that hole could easily be 8mm bigger and still nobody would notice.
  • I'm not exactly looking forward to installing Google Chrome just to run the damn printer software. A standalone Java program would have done exactly the same without installing such a thing on my Macbook. I don't see why I need to enter my Google account somewhere to use my local and offline 3D printer.

After Step 13 - Software

  1. Power up the board with the power supply and plug in the micro-USB cable
  2. Remove the jumper in the middle of the board at connector JP14
  • Right after we are told how to screw the case shut above the board..
  • I absolutely don't like that the host app is a Google Chrome app. Standalone Java already has a serial port API and doesn't require a new browser that auto updates without asking me, no knowledge of my Google Account and works!
  • Installed the Google Chrome app.
  • "Über die Chrome-App-Übersicht können Sie Ihre Lieblings-Apps direkt vom Desktop aus starten." Had to search a while to find that this damn thing has nested in my launcher WITHOUT ASKING FOR PERMISSION TO DO SO.
  • 5D print says "no device". No hint how to tell it that my printer is already connected and running.
  • bed leveling is a nigthmare.
  • The PID control is not good. I tell the bed to go to 35°C...it goes to 35....then slowly to 36....37....38..stays at 38.