3D Print:      «Blog»   ·   1   ·   2   ·   3   ·   4   ·   5   ·   6   ·   7

Operation ??? Monkey

Do you have any siggestions for a powder/liquid mix? Send it to me and I will try to get the materials and do a test print:


Operation Muscle Monkey

No tests yet, but I bought some Benefibre/sugar mix at the local gym. Five spoons full go into a glass of water if you want muscle. As a prototypical geek, I do not need muscle, and so this will go into starch (potato starch for now, because corn starch is harder to get in Germany). I will hopefully get a test going tomorrow - time permitting.

Operation Japanese Monkey

Ah, a new mixture. Dental plaster plus rice wine! So far, the results look somewhat promising. One of the sample blocks has much less bleeding than the rest. I wonder if the model will hold up (but I need to be patient for another hour).

Operation Inked Monkey

Interesting! I let the Gin cartridge in the printer over night and it emptied completely into the plaster, leaving an unsightly blob of Juniper juice and dentistry devices. It seems the alcohol has destroyed the nozzles and found its way out through some broken seals. Bye, Gin cartridge.

Now, I only had the black in head left, so I tried it on the dental plaster. The result is the same crumbly mass that I observed using other powders with ink. Ink is not an optin (and neither is Gin for these HP cartridges)

Operation Yellow Monkey

After the calculation below, I figured I need plaster that requires less water to solidify. I tried dental plaster (ultra hard, 1:5 Water to plaster, yellow) with my Gin cartridge.

Result: I managed to solidify the plaster and get some shape! Even though this looks not much like the monkey, I did generate the rough shape. So what went wrong? For making tooth imprints, the plaster needs to be evenly mixed with the water within 20 seconds. To make that easier for a plaster that needs so little water, the manufacturer add flow enhancers. Great news for dentists, bed news for us: the flow enhancers make the plaster bleed to all sides like crazy (many millimeters!), ruining our shapes.

Nevertheless, Yellow Monkey is a great success, proving that the concept is good and the printer actually works.

Operation Drunken Monkey

I bougt some medelling plaster at the store and loaded the cartridge with Gin (Vodka is recommended, but I only had Gin - sorry). While the Gin was probably just fine, the plaster was horrible. It required litres of water, and the packaging clearly announced 24 hours dry time. Doh.

Result: let's not talk about it... .

Operation Black Monkey

I did a few tests on paper until I was sure that everything is fine. Then I loaded the machine with plaster (only to find out that I bought the worst plaster ever with up to penny-size rock-hard pieces in it) and sliced the Blender Monkey into 10x10x8mm. The file was copied onto an SD card and printed through the Arduino firmware.

The final model was too weak. This is probably due to multiple factors. The plaster was bad, the ink saturation was too low, ink itself is a bad idea (Vodka is better), and of course I lacked the patience by digging the model out after an hour instead of waiting until tomorrow.

Result: the monkey head was there and had a blob shape, but then crubled into a million wet pices. Ooops.

Apr 21st 2013: Math Time

After another failed attempt (Alcohol and plaster of Paris), I guess I have to do some math again.

  • 1 drop of in is 160pl (pico Liter) covering a 0.25 cubic mm voxel
  • so, 1l = 1dm^3, 0.25mm = 0.0025dm, = 1,5625e-8 l
  • pico is short for 10e-12, so 160pl = 160e-12l = 0,0106e-8l
  • 1 voxel of plaster is1.563 / 0.01 = 156 times the amount of the ink drop
  • this particular plaster is mixed 1 parts of water to 2 parts of plaster (by volume)
  • so to have the correct ratio, we need 156/2 = 78 drops per voxel (0.25mm layers) or 31 drops on 0.1mm layes
  • super hard dental plaster mixes at 100:20, so we "only" need 32 drops per voxel / 12 drops on 0.1mm

Phew. Now, I did test 60 drops without success, meaning I am still doing something wrong.


  • the plaster sucked!
  • everything gets really dusty, everything
  • the roller has a slight wobble which is disasterous for the model quality
  • the x transport is really great now, quiet and reliable
  • after much alignment, the y axis is now fine as well
  • the z pistons never caused a problem, easy
  • the amount of powder picked up is the same as the amount layed down, so there is close to ne spill!
  • I will have to experiment with the powder/ink ratio a lot, test patterns are needed
  • the plaster really sucked, in case I did not mention that before
  • and yes, the machine is slow, but so was the original CupCake, and look how far those machines got

Task list:

  • get a precise roller
  • get better plaster
  • generate test patterns for the ink/powder ration and layer height
  • make the host software user friendly
  • optimize

Powder goes in Z1, the feeder hopper in the back

And is then transported and spread into the front hopper, Z2.

The printing process:

So I thought that a nozzle on my first print head died. AFter exchanging the head, the same nozzle did not work - huh? After checking the carrier, the chips, the connectors, I finally found the culprit: a hectic cut while soldering close to already wired connections. See the picture on the left.

Apr 17th 2013: This is my Interpretation

I just finished the essential commands for the 3dp file reader and interpreter.

All the slicing work, compilation, and optimization is done in the PC software where most of the computing power is available. Printing data is then stored in a proprietary .3dp file format on an SD card. The Arduino interpretes this file and sends the commands to the hardware interfaces. No PC is needed during printout.

Slicing and writing the .3dp file is next.

TODO: the ink cartridge need a cleaning and capping mechanism

Apr 16th 2013: Hooking it Up

Today was the day when all the hardware came together. All motors are moving, all end stops are signaling, all buttons are working, and all pixels light up. The firmware grew, and I can run tests on all those functions. Now the art will be to control the motors in the order required to generate a 3D model... .

Apr 15th 2013: Menus and Buttons

I replaced the push buttons on the panel, and hey, everything is working just fine. So I proceeded to recreate the firmware from the code samples I wrote over the last weeks, giving me an About Screen and a tree-style Menu Structure. Now I have a 90's telephone style menu to access test routines and whatever else I need to set up the machine.

Apr 14th 2013: Mounting the Panel

I had a few minutes today to mount the control panel and test the i2c command set, only to find out that the buttons I ordered were closed contact, opening when pushed. That won't work in a matrix, so I'll have to replace the buttons tomorrow. Luckily, I can get them locally.

I did fix many issues in the laser software, hoping that I will be able to cut complex parts again soon.

Oh, and while sourcing, I found spring-loaded contacts that are relatively cheap and will make for a great connector for the HP 45 cartridges (or whatever other cartridge comes my way).

If anyone has more information on the Xarr 128 cartridges, please contact me. Thanks!

Apr 13th 2013: The Control Panel

I lost the dongle to my laser cutter software. It took my three days to get that thing back up running again, and it is still not working all the way. At least, I managed to cut out parts for the control panel.

Originally, I wanted to provide just a web interface and not have any controls on the machine. But having a display is fantastic for debugging and a requirement for stand-alone operation. I decided for the LCD03 because it can also read a keyboard matrix and have an i2c bus.

Apr 8th 2013: Firmware Command List

I add the list of firmware commands that will be supported in the first version here.

Note: layers should offset the swash and/or use overlapping swashes to avoid weak vertical structures

Todo: get dimensions of printer in relation to end stops. Implement remaining firmware functions. Implement test pattern files.

Apr 7th 2013: Calculating step size

I need to know how far each axis travels when I send it a stepper pulse. So here is my formule:

  • pulley d0 is 15.12mm according to the datasheet
  • the circumference is d0 x PI or 15.12mm x 3.1416 = 47.5mm per revolution
  • the stepper motor has 400 steps per revolution, so 47.5mm / 400 = 0.11875mm per full step
  • our controller is set to do 16 microsteps, which gives us 0.11875mm / 16 = 0.007422 mm/pulse or 135 pulses per mm
  • sending our stepper 5000 pulses should move the head 37mm

Now about the printhead. It has 96dpi and 12 nozzles in a row, so:

  • 96dpi = 96/25,4mm = 3.78dots/mm or 0.26mm dot diameter
  • or 12/3.78 = 3,175mm/swash
  • so to advance correctly in X, we need 35 pulses from dot tot dot
  • and to advance in Y, we need 428 pulses from swash to swash

And what about the pistons? Now that one is easy:

  • according to the datasheet, one step is 0.01mm
  • which correspons to 100 steps per mm

After all that math, I will test my calculations tomorrow - yep, seems to work.

Apr 7th 2013: Adding End Stops

Stepper motors are neat, but they have no idea about absolute positioning. They need to be put into a reference position once, and from then on, they will drive exactly where we need them (assuming we are not losing steps).

Here is my solution for End Stops. The X End Stop is mounted on the left gantry element and interrupted by a cardboard tab. The Y End Stop is on the main chassis and interrupts before the gantry hits the physical end.

Connecting the photo interrupter GP1S53 is very easy: pin 2 and 4 connect to ground, pin 1 onnects via a 330 Ohm resitor to +5V to drive the LED. Pin 3 connects to an Arduino input with the PULLUP on. Uninterrupted, the Arduino pin will return 0, but as soon as the tab interrupts the path of light, the pin will go to 1 and we found the home position.

Apr 7th 2013: Setting up Workshop

The printouts on the paper were made by my machine. It's shakey and all, but I am getting there.

Apr 5th 2013: Missed me?

Two weeks wasted to a stupid flu. Sigh.

OK, in the mean time, I received the PCBs for my Arduino Mega breakout board.It's a collection of headers that go to the steppers and come from the end stops, an i2c header for a display, a full size SD card holder with level converter, and of course the darlington array to control the ink head nozzles. Everything is Through-Hole for simple soldering.

And to my own surprise, everything just works! The PC Power Suplly connects nicely and runs everything from Arduino to steppers to ink head. The X and Y motors are connected and work fine. And of course the Ink Head works as well. So I managed to print a few lines of text onto a paper that I taped on the build chamber.

I also managed to finally find the missing 2.5mm bolts to mount the Z Drives, but I am unhappy with it. The torque will eventually rip the mounts out.

Note: PCB needs room for beeper, status LED, reset switch, i2c pullups, smaller PC plug. Z Motor mount needs to be reworked.

Mar 6th 2013: Moved. Electronics.

Horray. I have an internet connection again. The friendly man from the Telekom drilled a few holes and mounted two little beige boxes, and I am online again.

After carefully weighing my choices, I ended up redesigning the ink cartridge driver board as well. My version requires four CPU pins and no extra power supply using only two chips (or one in SMD). I received the chips today, and I will hopefully solder and test the board tomorrow.

Mar 1st 2013: Moving, and Moving On

In case you wondered: I moved to another city and we are not online yet. Still, a lot happened around the machine. No pictures though for the lack of bandwidth.

So first of all, I redesigned the entire moving assembly of the machine. I threw out all the nuts and bolts and glued the parts instead. But a lot more needed to be changed, so instead of fixing here and there, I started from scratch. The original design must have been for different stepper motors. Everything was interfering with everything else. The roller motor scratched on the Y rod. The X motor had different mounting holes and would not fit in the space alotted. The Y motor did not fit either.

In the new setup, I also redesigned the X carriage to match the cartridge holder. The new Y carriages are much more sturdy, and the gantry no longer collapses under the pull of the belt tightener - which I redesigned as well.

I kept the body (for now) and assembled everything. All motors, pulleys, and belts are mounted and connected and work sufficiently well.

The stepper drivers are connected, but not yet mounted. The end stops work with the microcontroller, but are not mounted either. I put an SD card reader together on a strip board that I assembled and tested this afternoon.

Feb 19th 2013: Slow Progress

Today was a busy day - not for Pwdr though. I did have time to assemble the ink carrier and discovered an issue that will throw me back. The wood I am using is too soft in the 4mm variant. Tightening the screws squishes the wood and nothing fits right anymore.

There is another issue: some steppers don;t fit. This may be due to false transfer to parametric files, or because the steppers are a different than the original ones.

In any case I have to redesign the 4mm oarts to make the steppers fit better and to configure them for glueing instead of bolting together. To make everything correct (the German gene), I will have to enter all external parts used into teh CAD system/

Feb 18th 2013: Back at Work

I managed to sand down one piston to fit into the box. The box is too high and the lead screw does not push the piston all the way to the top. This need to be fixed for the next version for easy part removal and cleaning.

I ordered a few more electronic parts, mainly wires and a 3.3V converter for the SD Card socket. Oh, and two new tooth belts as the original ones were much too short.

Feb 12th 2013: Arduino and Steppers

Today I had time to play with the Arduino. I ordered the Mega 2560 as mentioned in the BOM, a model that is already pretty outdated agin. Time flies when you're having fun... .

I hooked up the Arduino with a Dange Shield and an EasyDriver to my Mac and started the Arduino dev environment.

Kudos to the Arduino developers. Everything worked right out of the box and pretty much exactly as described. This is something I am not used to as a software developer ;-) .

So what do we have so far: CPU, buttons, sliders, and a happily turning stepper motor. Still ahead though is the SD card interface (I am somewhat reluctant to buy a shield for such a minor layout), more buttons, a display (the good old 2x16 standard), end stops, and of course the ink cartridge control.

This particular cartridge fires 12 nozzles, one at a time at 5us per nozzle. Using a 74154, we can select each nozzle using only 4 pins plus one pin to enable the brint head (the output must be inverted!). We can further reduce the number of pins by using a shift register, shifting out the pattern, or even just shifting out a 4 bit number (3 pins).

Feb 5th 2013: Building a Piston

Click here to see how the pistons are built.

Click here to see how the body is built.

Feb 4th 2013: Cleaning parts

You saw the parts right after they came fro the laser in the picture above. The scorching comes from the laser buring the glue between the layers of wood. The picture on the left shows a sample part after and before cleaning with sand paper. I use my lunch break to clean a few of the parts.

Customs let my stepper controllers through. Hooray! The stepper motors will be sent tomorrow, which will then complete all my orders so far. I know already that I will need longer timing belts, but I won't order them until I know exactly how long.

Comments (0)

Feb 3rd 2013: Design decissions

Traveling by train is great. I used the time to draw a bunch of plans for a next version, including gutters, parts distribution, a removable controller, a powder collection box, and removable ink tanks. A man can dream, right?

My other research was more about the HP45 cartridges. I found flexible PCBs in the Farnell catalog, and I wonder if it would be possible to create a daughterboard for five-cartridge ink head X-carriage, as they are unavailable from HP.

Feb 2nd 2013: New Stepper Drivers ordered.

Being a very impatient person, I decided to look for different stepper drivers instead of the SparkFun EasyDrivers. I found the Pololu A4988 drivers at Watterott which are in stock and have even better characteristics than the EasyDrivers. The 16 microstep setting may proove invaluable since my belt gears have a larger circumference.

Feb 1st 2013: Laser Cut Parts

WIth a little extra time on my hands, I managed to laser-cut all required parts. The picture shows the results just as they come from the machine. They still need to be cleaned and sanded. I used the wrong kind of wood: the glue is giving the laser a problem, resulting in a slow cut and charring. With a different sort of wood, this could be much reduced. Taping off the back will eliminate the smoke residue (next time).

Acyllics don't have this problem.

This is the file I used. My beam radius is 0.36mm. I set my cut offset to 0.20mm, plust the 0.18mm offeset as mentioned in the file.


  • 1: Case Front SIde
  • 2: Case Back Side with electronics compartment
  • 3+4: Left and Right Side of Case, also the outer hopper walls
  • 5: Hopper Floor - this is where the Z steppers are mounted
  • 6: Forward Hopper Wall
  • 7: Middle Hopper Wall
  • 8: Back Hopper Wall
  • 9: Electronics Compartment Lower and Upper Plate
  • 10: Hopper Wall Mounting Bars
  • 11: Piston Floor - the powder goes on top of this; cover the surface with sand paper
  • 12: Piston Bottom Plate - mount the lead screw nut here
  • 13: Piston Sides
  • 14-16: Left Y Carriage with roller motor
  • 18-21: Right Y Carriage with X axis motor
  • 22-25: X carriage - mount the ink head on part 25
  • 26: Belt Holders for 15, 17, 19, 21, and 24
  • 27: short tensioner for X belt on plate 14
  • 28: long tensioners for Y belts on plate 1

Jan 31th 2013: Testing the design

I laser-cut the pieces for the x and y carriages today from 4mm plywood. There were a few minor errors which I fixed right away. Here is the newest file:


Comments (0)

Jan 30th 2013: No new part deliveries

Sigh. Of course, the only order from the U.S. (SparkFun) was held up in customs, being confused for a commercial package. I'll have to fiddle that one out tomorrow.

I test-cut some pieces on the laser today to figure out the beam width (it's 0.8mm - must replace lens and mirrors, I guess). Now I can calculate the bearing holes for a perfect fit.

I also added order numbers for ink cartridges and carrier assemblies. Seems like some of the stuff is made out of unobtainium. I'll have to salvage these from old printers. The list is on the last Blog page.

Tonight I managed to get the remaining parts into OpenSCAD and render them out as DXFs. Again, these are still untested, cut at your own risk.


The files are licensed under Creative Commons Attribution-NonCommercial 3.0 Unported License (CC BY-NC 3.0).

Jan 29th 2013: New parts

Electronics arrived in the morning, ink cartiridge and carrier came in the afternoon.

I managed to get the hopper and the piston into OpenSCAD. Five more designs to go and I can laser out the parts. Yay!

Jan 28th 2013: Parametric CAD Files

The material that I will be using for the carriages is only 4mm think instead of 5mm. Instead of reworking the files in QCAD, I programmed the layout in OpenSCAD. OpenSCAD ican create CAD files using parameters. For example, I can change the thickness of my material, and OpenSCAD will adjust all drawings to accomodate for the change, yet producing the same final parts.

Therefore, the first lines of the OpenSCAD file contain a list of parameters that can be changed to reflect the different bearing sizes, bolts, and materials. The file is then rendered and output to DXF.

Here is the file for those who would like to try it out. I have not cut anything yet, so there may be errors in the layout. BTW: this is also great if you can not get any metric material. Just change the first few lines to imperails measurements.

The files are licensed under Creative Commons Attribution-NonCommercial 3.0 Unported License (CC BY-NC 3.0).

Oh, and gears, belts, axes, bushings, and bearings arrived.

Jan 27th 2013: Planned Improvements

Well, it's the weekend and none of the parts arrived yet. So I decided to make a little list of planned improvements by priority:

Current build:

  • LCD, Buttons, and SD card slot
  • end stops on X, Y, Z1, and Z2
  • all electronics including power supply on one removable panel
  • car wash (rubber lip under the ink cartridge, rubber seal to avoid drying out)

Next build:

  • high resolution print head (HP45)
  • 5 heads (CMYK + clear) or single head (Canon) with five tanks
  • wider machine to make room for heads
  • gutter to collect overflowing powder

Jan 24th 2013: Ordering Parts

I ordered all required parts today. The original part list contains parts that are not available in Germany or somewhat uncommon, so I changed the BOM and moved to local suppliers whereever possible. I managed to get everything I need, but I will have to modify the CAD files to accomodate the new sizes of the parts.

Here are the major changes:

  • acrylic replaced by Birch Plywood for cost reduction
  • timing pulleys use T2.5 spacing which is more common, using plastic for cost reduction
  • timing belts were not available in the required lengths
  • ball bearings have no flange and have a larger diameter
  • 10mm prcission shaft replced by aluminum pipes to create the roller
  • sleeve bearings have different outer dimensions
  • fastening bolts are cylinder head becuase others weren't available
  • 24V power supplu no longer available at Farnell
  • I also ordered light sensors to be used as endstops, a display to make debugging easier, and a hand full of push buttons for controlling the machine

Jan 23rd 2013: First Steps

The first version of the printer will be a close copy of Pwdr as it is described on the page. In later versions, I plan to change the ink cartridge to a higher resolution one, eventually with five colors (CMYK plus transparent).

Today I downloaded all resources from the Pwdr website. I had to convert the SVG files to DXF, so I can laser-cut the part