Category: 3D Printing

Continuous toolpath generation

We’re currently working on a project that need an optimal tool path given an input image. Unlike most 2-D controllers, we can’t issue a command to raise and lower the tool – it has to be a continuous path, so it makes for an interesting problem! This is the problem of drawing a picture without lifting the pen from the page.

I’ve written some code to use a “nearest neighbour” approach to the travelling salesman problem. It’s not the optimal solution, but it works ok. The key problem being the algorithm’s inability to use a pixel more than once. It’s also quite slow but that’s not a big deal and could be easily optimised using a grid search if necessary.

Our test input image was:

Test image for pathing

After we ran our code we got:

line path solution

While it’s obvious that there’s lots of extra paths we can get rid of if we fix up the algorithm I think it’s a great first pass! We now just need to treat the problem as something less restrictive than the travelling salesman problem.

Replacing XYZware with Repetier-Firmware-0.92 on our DaVinci 2.0A 3D printer.

We have had a DaVinci 2.0A printer since November last year, overall it’s performance has been adequate for printing what we need for the loom but the software that the printer comes with leaves a lot to be desired.


As the name implies, the software is written by XYZ Printing for the (non-pro) DaVinci series of printers. It has basic functionality and the user interface can be figured out pretty easily, making it good for a cheap and easy path into 3D printing.

However, the software has some major downsides:

  • It’s buggy, often requiring software restarts and power cycling the printer to get things to communicate and print properly.
  • The settings are seem very sub optimal. Temperature settings for ABS are around 210 degrees Celsius for the extruder and 70 degrees celsius for the bed, which is way low. This makes getting things to stick pretty difficult. The only method I found for getting things to stick reliably was ABS slurry, which is messy to apply requires working with noxious chemicals.
  • It requires chipped Davinci cartridges, which are not overly expensive but are about 40% more expensive than buying generic filament on the spool. The chips are very simple and chip resetters that allow aftermarket filament to be used are available, but its a hassle.
  • The only options available for printing are for rafts, brims, infill percentages, and very general speed and detail settings. The only thing I really want however is the ability to change extruder temperatures, I can do without the rest.

The Process

The DaVinci’s main board runs the same micro controller as an Arduino Due, meaning it can run the open source printing firmware compatible with Repetier-Host. Thankfully, someone has already modified the firmware to be compatible with the DaVinci, and there is a very good youtube instructional video on how to complete the process.

Firmware download:
Youtube Instructions:

The installation process went pretty smoothly, the only issue I has was getting the computer to recognise the printer as an Arduino Due after the stock firmware wipe. This was caused by the fact that the microprocessor which the due is based on runs on both Native USB and with Com-Port emulation. Newer versions of the Arduino IDE have changed the way they handle the USB drivers for the due, making installing the new firmware difficult.

The easy way around this was simply to install the version of the Arduino IDE suggested in the youtube video, and everything worked fine. Newer versions of the Arduino IDE could be made to work, if you can be bothered.

After that it was simply a case of installing and setting up repetier-host, and enjoying the superior customisation of the open source software. Ill leave some details on that for a future blog.

Further information – DaVinci owners forum, very useful source of information.

Headphone Wrap Design

I recently bought some Sennheiser CX3.0 in-ear headphones to replace the CX1.0s that I lost. They came with a bit of a chunky case so I thought I’d make my own little wrap system for them now that we have our 3D printer. I just want them in my bag or pocket without tangling!

My first step was to see what other people had done on thingiverse. Lots of other people had uploaded designs but I thought I’d give it a crack to see how quickly I could make one of my own. I saw that most people simply made a flat design that was extruded to get some strength/ thickness so that’s the path I went down.

I made a few sketches with ideas and then jumped into Autodesk Fusion 360. I find the software a bit confusing and annoying at times having used Creo (formerly Pro Engineer) at uni but it does the job and it’s free for start-ups! For my first design, I just wanted to get the right size hole to put the ear-bud through and lock the cable with the slot. I also wanted to see if the little wrapping area was big enough.

I sketched up the 2D design and then extruded it a few mm to make a 3D design.

Headphone wrap Mk 1

This quick design was primarily to check the dimensions and it showed that my hole was the right size and that the area where the cable bunches at the end needed to be made bigger. Having both earbuds in one hole proved a bit cluttered so I decided to use two holes to make it a little less bulky in my pocket. I also realised that I hadn’t put a clip on both ends to hold the cable so I did that too. Rather than have a big square section in the middle I thought a few spaced holes would look nicer and be a little stronger so changed that feature as well to come up with my second design.

Headphone Wrap

You can see by the photo that it stores them quite compactly and means the cable won’t get insanely tangled when thrown in my bag or pocket.

The print times were only about 15mins each, give or take and given they weighed 3-4g each, they only used about 30 cents worth of PLA. Pretty cheap way to stop tangling in my bag!

For those that want to make their own, you can download the STL file here: headphone wrap v2. If you’re designing your own, I used a gap between the wraps was 2mm, the hole for the earbuds is 14mm, and the overall length is 111mm. The thinnest section was 2mm thick which is probably pushing it but we’ll see how it goes!

As for the headphones themselves, they’re amazing! I managed to get them for $78 at JB Hi-Fi. Lots of bass which was surprising given how small they are. Nice and clear sound. Even if Sennheiser is a bit overpriced for what you get, I highly recommend them.