Thursday, 8 December 2011

Happy Holidays!

This will be my last post for a few weeks, as we are about to embark on a family holiday until early January. (It's going to kill me, being away from "My Precious" for 4 and a bit weeks!)

Anyway, don't despair that you don't hear from me for a while - I haven't disappeared off the face of the Earth, just taking a break with my partner and kids.

Until I talk to you all again - here's a seasonal print, hot off my new heated bed:

See you all in the New Year - happy holidays, and happy RepRapping!

A Hotbed of Intrigue

One thing I have been planning to do right from the start of my RepRap build was to add a Heated Print Bed – partly to allow me to print with ABS, but partly because by all accounts, you can get better quality printing even with PLA on a heated bed.

I bought my Mk. I PCB Heated Bed on eBay , and it arrived a couple of days ago. It seems to be very well made, and a quick check with the multimeter confirmed the total resistance was within spec. I scoured the forums and Wiki looking for ideas on how to mount it. In the end, I bought a small sheet of MDF board and cork from a local craft shop – they are intended to be used to make a table coaster / protector, but I have other plans! I also bought a small mirror with MDF backing board while I was at it, figuring I could cut myself a piece of mirror to use as a heated printing surface.

I wired up the heated bed and a 10 kOhm thermistor to my RAMPS, modified the Sprinter settings to have the correct thermistor properties, and started up Pronterface so I could set a bed temperature of 60 degrees. Success! The bed heats up, and when the thermistor detects 60 degrees, the heater circuit shuts down, starting up again when the thermistor temperature reading drops – brilliant! Time to get serious about mounting the heated bed and try some printing.

I didn’t want to start disassembling and reassembling my Y-Axis prematurely, so I have taped my thermistor onto the heat trace element side of the PCB, and then placed the PCB board onto the cork board heat-trace side down. I chose this orientation so that if I have a “head crash” I should not damage the heat trace elements. I have cut a bit of a rebate into the cork board for the thermistor wiring and the main power supply wiring (because they are also on the underside of the PCB) so it will sit nice and flat on the cork.

I placed the MDF board onto my acrylic print bed (still covered in Scotch Blue Tape), then put cork sheet on top, followed by the PCB, and finally the glass. I clamped the whole lot together with bulldog clips, and fired up the RepRap again. Initially, things were heating up quite nicely, but then – disaster! Crack! The mirror has split in two. In hindsight, clamping the glass down was probably a mistake; I suspect that If I had let it “float" on the PCB heart, all would have been well, but by clamping it down, something had to give, and it was my piece of glass.

Oh well – Plan B!

After cleaning up the broken glass, I disassembled everything, and then covered the top face of the PCB with my 20 mm Kapton tape, and put it all back together again. This time, when I fired up the RepRap, all seems to be fine. The heat bed and the extruder nozzle can both heat up independently, and seem to be able to hold temperature within a fairly narrow temperature range. It looks like it will take just a couple of minutes to reach PLA printing temperature of 60 degrees; rather longer for ABS @ 110 degrees – maybe 5 minutes or so.

Scanning over the PCB with a non-contact IR thermometer indicates there is some temperature variation across the surface of the PCB, with the edges being about 5 degrees cooler than the middle, due to the greater heat leakage. Pleasingly, the IR thermometer indicates the top face centre of the PCB is within about 1 or 2 degrees of the reading given by the thermistor on the underside of the PCB – it looks like my heat insulation is doing its job!

Nothing for it but to try some prints. I thought I would try a couple of the calibration test pieces first, to see how the quality compares with my previous “best work”.

It went brilliantly – the PLA filament seems to stick beautifully to the heated Kapton, but also releases beautifully when the heatbed cools down. Quality seems to be very good as well – although I have only done a couple of test prints so far. At the moment, I am still printing on a 2-layer raft, but the underside of the raft is super-smooth. I think I will try to get my bed really level, and then try printing straight onto heated  Kapton without any raft – that is a job for the future – as is trying to print with ABS, which I am now dying to try.

So – in summary:

You don’t NEED a heated bed to print PLA, but I’m told you DO need one to work with ABS. However, seeing how good the quality is when printing PLA onto heated Kapton, my advice to any newbies would be to definitely include a heated bed in your future upgrade plans – or else, build it into your original plans. It really does seem to help in getting quality prints!

Thursday, 1 December 2011

RepRap Material Test Facility - Part II

Hmmmmm ...

... this may need a little more thought.

I made some sample test pieces and a test bed, and the first thing that became apparent is that the original design is all a bit unstable for the sorts of loads that are required to load the test pieces to destruction - basically, the whole assembly will probably topple over long before you can get the full load applied, if you use my original part designs.

So I modified the designs to make it all a bit more stable, by adding some broader  feet to the test bed, and making the supports on the test pieces a bit wider. I also added the option of a removable Load Platen, to allow the test load to be applied more easily to the load pad on the top flange of the test piece, if desired:

and here are the parts I made:

and here's the complete assembly (using the lighter, weaker I-Beam test piece, rather than the solid rectangular beam) sitting on my kitchen scale (so I can do some quick load testing):

and here it is with my thumb applying a 5 kg load:

You can see that the test piece is bending, but it has only deflected about 3 mm with 5 kg load, and it is nowhere near structural failure. At a guess, it is going to be able to sustain more than 10 kg of point load.

So, what's the problem? Well, 10 kg is going to be quite a pile of weights, and I am not sure how to apply that much weight to such a small load pad in a stable fashion , and still have room to get my digital calipers in to accurately measure the deflection for the various load increments. I'm going to have to work out a simpler loading mechanism which can apply 10 or 20 kg of load, while still being able to measure both applied load and the resulting deflections.

Does anyone have any suggestions?

Wednesday, 30 November 2011

Testing the Strength of RepRap Printed Parts

I have just published my design concept for a means of testing RepRap printed parts on Thingiverse:
I shall provide a bit more background and commentary as the design concept develops here in my blog, where there are no space or format constraints, but the official "home" of my design concept will remain on Thingiverse.

Note: This design concept is a "work in progress", and I fully expect the designs to evolve in response to my own testing, and the comments of other RepRappers.


A Test Bed and sample Test Pieces for strength / stiffness testing of 3D Printed parts

The strength and stiffness of components manufactured using RepRap and other 3D Printing technologies are affected by a number of independent and inter-dependent parameters, including:
a)      the generic stock material used (e.g. PLA, ABS, PE, etc)

b)      the actual source and condition of the stock material; e.g. it has been reported that PLA filament will absorb atmospheric humidity over time, and this affects its condition when placed using RepRap-type fabrication; it has also been reported that different coloured batches of otherwise nominally identical filament from the same source can exhibit significantly different fabrication properties, and therefore presumably different mechanical properties

c)       the tool-path and build parameters which are used to fabricate the component (e.g. filament diameter, layer thickness, number of layers in the surface “shell”, % solid fill vs. % voids used in the core fill, etc)

d)      the orientation of the part during printing (filaments parallel or perpendicular to the main load paths, etc)

e)      the attributes of the actual printer (print head speed, precision / repeatability of placing the print head, backlash, etc)

When manufacturing components which are intended to have mechanical strength and function, it is necessary to be able to measure the actual strength of materials which can be printed with a particular machine, using a particular set of printing parameters, so that the strength and service life of the component can be predicted, and to assist in the design of new components which will be subjected to loads whose magnitude can be predicted or estimated.
This project came about partly because I am an engineer, and I “need to know” these sorts of things, but was also spurred on by reading an paper  on “3-D Printing of Open Source Appropriate Technologies for Self-Directed Sustainable Development” by Pearce, Blair, Laciak, Andrews, Nosrat & Zelenika-Zovko.

[Ref:  “Journal of Sustainable Development” Vol. 3, No. 4; December 2010 ]

In that paper, the authors conclude inter alia that:

Full testing of the present abilities of open source 3-D printed parts is needed, including testing a structural part to failure to determine general properties; and analysis/development of necessary testing equipment which could be available to open source 3-D printer users in the field, in order to contribute numerically to the knowledge base on printed OSAT. This can be accomplished by printing a series of beams of different materials, testing them and reporting the results to the open source community.
This project presents my suggestions towards the development of a standard testing program for 3D printing (and other RP technologies).


My primary objective in designing the Strength Test Bed and Test Pieces was that they should be easy to manufacture using the actual 3D Printer itself, and any additional “hardware” (“Vitamins”) and instrumentation should be readily available to anyone who is able to manufacture and maintain a 3D Printer. The only “Vitamins” required to undertake testing with this design are:
a)      Two short lengths of 8 mm steel rod (as used as the machine axis slides), which act as the test piece support pins, ensuing the test pieces act as simple beams of constant span, with minimal influence of other loading paths.

b)      Weights or similar to load the test pieces. These could be readily available standard cast metal weights, if available, or else any convenient masses which must be weighed prior to testing. The test weights are placed on the load pad on the top face of the test piece, ensuring the load is applied as a Point Load at mid-span.

c)       A means of measuring the deflection between the underside of the test piece and the Deflection Measuring Pad on the top face of the Test Bed – e.g. a dial gauge or digital calliper. The Deflection Measuring Pad ensures deflection measurements are taken reliably at mid-span of the test piece.

d)      Depending upon the strength of the manufactured pieces and the physical size of the available weights, it may be difficult to arrange for the full complement of test weights to be secured on the top face of the test piece. The test piece design allows for the optional use of another piece of 8 mm steel rod which can be bent so as to form a pair of hooks straddling the beam, from which weights can be easily suspended (e.g. tin cans filled with rocks, lead shot, etc)

It should also be possible to manufacture and test a range of test pieces in different orientations. Three key orientations would typically include:

a)      “Natural Alignment” - such that the filaments run parallel to the beam long  axis, and the layers are aligned with the top and bottom faces of the test piece

b)      “Rolled Over Alignment” – such that the part is printed lying “on its side”. The filaments still run parallel to the test piece long axis, but the layers now slice the test piece “vertically” rather than “horizontally” when the test piece is placed in its testing orientation

c)       “Vertical Alignment” – such that the test price is printed standing “on end” – this will b a much more “savage” test of the strength between layers, as the tensile beams stresses will act directly on the layers.
I have presented two sample test price geometries; one is a simple rectangular beam, which will allow testing of geometrically identical samples with different % solids core fill. The second is a modified I-Beam which would be a more “savage” test of the strength of components with complex geometry and thin walls, but which should be less sensitive to the % solid fill used (being largely “thin wall” construction). The I-Beam has stiffeners applied at the load concentrations so that its failure will tend to be governed by overall beam failure mode, rather than local crippling of the load points, etc. Both Test Piece profiles should be able to be fabricated on most 3D Printers in any orientation without the requirement for support (assuming the machine is capable of achieving reasonable “bridging”).

The design concept allows for an infinite range of test piece geometry and orientation, but to be generally useful, standardised testing regimes should be developed.
The Test Bed needs to be strong enough and rigid enough that it will survive many cycles of testing, with negligible deformation such that the measured deflections are properly representative of the strength and stiffness of the Test Piece. It is suggested that the Test Bed should therefore be printed with 100% solid fill, for overall rigidity and longevity


n   Print one (or more) Test Beds.

n   Print sufficient identical Test Pieces for the testing program. Keep records of the build and print parameters used (material, used, machine settings, % solid core fill, etc). Weigh the test pieces as a record of overall effective density. Where scales of only limited precision are available, weigh five or more identical pieces in a single weighing to get an effective mean sample weight.

n   It is suggested that a minimum of three identical test pieces should typically be printed whenever undertaking a formal testing and reporting program, although a single test piece can still yield useful insights into material behaviour when trying to determine a “semi-quantitative” assessment of comparative properties yielded by different printer settings etc. If the set of Test Pieces are printed as a nested suite in a single print run (rather than as a series of sequential print runs), this will ensure all pieces are manufactured under identical conditions, minimising variations due to machine preparation, operator skill, environmental conditions (temperature , humidity, dust), etc. It should be possible to arrange a suite of 5 or even 10 identical test pieces to be produced in a single print run in this way.

n   Consider printing sets of test pieces in different orientations when it is desired to understand the 3-dimensional orthotropic characteristics of the material.

n   Install steel pins on test bed, and place test piece on pins

n   Measure the clearance between the underside of the Test Piece and the Deflection Measuring Pad on the Test Bed

n   Apply an initial load increment (well below the anticipated failure load) and measure the mid-span deflection

n   Apply additional load increments and measure the deflection at each increment. It is recommended that data points should be entered into a graphing Spreadsheet or similar as it is recorded, to allow trends to be identified immediately (e.g. possible deflection reading errors, non-linear behaviour may indicate onset of failure, etc)

n   Repeat for each test piece in a suite, so that statistically meaningful results can be obtained.

n   Repeat for different manufacturing orientations, so that the influence of orthotropic material properties can be assessed.

Additional Work:

It is suggested that the RepRap community should review the design concept as presented here, and attempt some individual testing programs. It is possible that the design concept may need to be modified for broad adoption generally; e.g. larger (or smaller) test pieces may be considered appropriate to be generally representative.

If successful, it is proposed that a formal test regime and reporting system would be developed and published; e.g. either through the website, or other OSAT Community Host.  Individual users would test and report their findings. Results could be searched and filtered so as to provide statistically useful data on the practical material properties that can be achieved with different classes of 3D printers and stock material. This information could be used to allow machine users to “benchmark” their own machines, and also as an aid to design and manufacture of components.

Material properties which would be recorded could include (but not necessarily be limited to):

n   Effective Bulk Density

n   Effective Tensile Strength, Elastic Modulus and Elongation measured along the filaments

n   Effective Tensile strength, Elastic Modulus and Elongation between filaments (measured parallel to the laminations)

n   Effective tensile Strength, Elastic Modulus and Elongation measured between laminations

Note on Use of Open Source vs. Proprietary Software:

This project was a “work-in-progress” before I became aware of the OSAT initiative, and was intended mainly for my own entertainment / education, but with a view to sharing with the RepRap community. I created these design s using proprietary “Alibre Design” CAD software, Mathcad and Microsoft Excel workbooks, etc. It is proposed that if the concept is deemed to have general  applicability, the source files for all parts should be created in Open Source software (e.g. OpenSCAD), and Open Source software should also be used for record keeping and reporting (e.g. Open Office etc).

Smooth Operator

You know you're an engineer when ...

... it ain't broke, but you still gotta fix it!

Having got my machine working nicely, I could see a number of areas for improvement; in particular:

a) I had quite a bit of "wobble" on the Z-Axis screw rods
b) The PLA slide bushes on the X and Y axes were OK, but were prone to a little bit of "slip-stick" friction, which would lead to "shudder" which could be seen in the filament make-up of printed parts.

So, I printed and installed some new Z-Axis Couplers to control the Z-Axis wobble.

A warning to anyone who replicates this:

In my original build phase, the illustrated guide recommended not installing mounting screws on the Z Motors , because the wobble is a known issue with the Prusa Mendel, and you have to allow the Z Axis drive system to flex a bit. Thinking that the new couplers were designed to solve this problem, I foolishly installed some screws to hold the motors down. (Somehow. it offends my engineering sensibility to have mechanical components which are not fully mounted!)


Even though the Z Axis is now MUCH smoother, there is still some mis-alignment, and if the motors are held down tightly, you will probably hear all sorts of nasty grinding noises (or worse - and bust a PLA slide bush on the Z-Axis like I did!) Luckily, I had some spare PLA Bushes, so was able to fix this quickly,and immediately removed the Z Axis motor screws again. With the motor again free to flex a bit, the Z axis is now really nice and smooth again.

I also bought some LM8UU linear bearings on eBay to install on the X and Y axes.

I made some LM8UU snap-fit holders out of PLA for the Y axis . (I'm not printing in ABS yet, coz I don't have a heated bed yet, although I have ordered the heat bed.) These came out OK, but are a bit brittle, so some of the snap-fit retainers broke when I was inserting the bearings; however, they are still functional, so I installed them anyway. I will make myself another (hopefully stronger) set when I replace the whole print bed to install the heated bed.

 I also printed myself a LM8UU X-Carriage out of PLA. This came out very nicely - nice and solid, and no damage when I installed the linear bearings.

So ... does it make any difference? In a  word: YES!

The Z-Axis wobble is almost entirely eliminated, and the X and Y axis movement is very noticeably improved - super-smooth and whisper quiet, and this all translates into really nice prints. I'll post some pictures of my current improved print results shortly.

 I still have some spare LM8UUs, which I intend to install on the Z axis using something like this maybe. However, I will probably wait until I can print ABS, because I'm not comfortable printing the X Axis brackets out of PLA, because the X Motor is mounted directly onto one of the X Brackets, and I am afraid it will soften and distort from the heat generated by the motor. (The X Carriage is separated from both the Hot End and the Extruder Motor, so I was happy to try that in PLA -  hopefully it doesn't suffer from heat distortion problems. Time will tell - and I didn't throw the original X Carriage away, just in case I damage my new X Carriage.)

Wednesday, 23 November 2011


Player 1: B4
Player 2: Hit! (Glug, glug, glug) ... C7
Player 1: Miss! ... B5
Player 2: Hit – you sank my Destroyer! (Glug, glug, glug) ... D4
(Well, I’m sure you get the gist by now.)

These designs were made for a friend who was sent an e-mail of a drinking game which has been doing the rounds lately:  

So I designed a range of "Battleshot" ships, and made a sample for him to inspect - check out the models here:


Saturday, 19 November 2011

Look Ma - no wires!

I have managed to get my RepRap working completely wirelessly, so I can initiate prints and monitor progress from my laptop, working in a different room in the house, remote from my printer. Hardware requirements are:

  • SD-RAMPS to enable models to be printed without having to send large amounts of data over a wireless link which might be a bit flaky if the computer moves too far from the printer, or is turned off - see my separate posting about getting SD-RAMPS working
  • XBee wireless communications - you need two XBee modules, a "shield" to connect one to the Arduino on the RepRap, and the "Explorer" dongle to connect the other to your PC, plus miscellaneous jumper wires etc. You can buy the components separately, but I already had all the bits I needed from my Sparkfun "XBee Wireless Kit" which I bought from Little Bird for some other projects I have been working on. (But this is definitely my best XBee project yet!)
First step was to find out how fast the XBees could communicate reliably over the sort of distances I want to use them. (My XBees came set up for 9600 baud by default; I wanted to go a lot faster if possible.) I loaded a simple XBee comms sketch (which I got from the excellent Tronixstuff tutorials ) , verified it was working properly over USB cable, then removed the USB cable, plugged in the XBee Explorer, and Bingo! - wireless comms! (Yes, it really is as easy as that to get rid of the USB umbilical chord between an Arduino and your PC.)

Using a terminal program of your choice (I use X-CTU), you can monitor the comms, and flash the baud rate to different speeds, etc. Note that you have to flash BOTH XBees independently to change their default baud rate; there is probably some way of doing this in software, but I wanted a "permanent" higher speed connection be default, so I flashed the firmware of both XBees to the same default baud rate.)

I found that I can get a nice reliable connection over a distance of 20 metres or so (through walls etc) at 38,400 baud, so that is how I have left my XBees set-up.

Next step was to modify the firmware (Sprinter in my case) to the new default serial comms speed. This is very easy for Sprinter; you just need to edit line 45 of "Configuration.h" and reload onto the Arduino:

// This determines the communication speed of the printer; 115200 is OK for USB cable; drop to 38400 for XBee JAH 19 November 2011
#define BAUDRATE 38400

Next comes the physical hook-up of the XBee shield to the RAMPS / Arduino. The connections you need to make are 4 pins on the AUX-1 area of the RAMPS board, so I soldered in some header pins to make it easier to connect jumper wires.

I can't attach the XBee shield in the usual way (i.e. stacking shields on top of each other) because it is only a standard sized shield, not a Mega shield, so I can't put it between the Arduino and the RAMPS, and it won't piggy-back onto the back of the RAMPS.

Instead, I have temporaraily attached the XBee shield to the RAMPS board by using 4 jumper wires to attach just 4 pins on the AUX-1 connector of the RAMPS board (namely, 5V, Gnd, D1 and D0) to the 5V, Gnd, Rx and Tx pins on the XBee Shield.

This is just a temporary arrangement for testing; now that i know that it woks, I will rig a better permanent solution soon.

Don't forget to attach the other XBee to the PC using the "Explorer" module:

Now, fire up the printer with no USB cable connection to the computer, and launch Pronterface on the host computer. Look for the appropriate COM port (it may have a new COM number from the default USB  cable connection), and change the baud rate in Pronterface to match the baud rate being used by the XBees. Try to connect to the printer - with any luck it will make the connection, and you will have full control, just as if the USB cable was in place.

Here's the video proof:

If you have trouble making the wireless connection:
  • Make sure the 2-way switch on the XBee Shield is set to UART not DLINE. (DOH!,105307 )
  • Double-check that both XBees, your firmware (e.g. Sprinter), and your host software (e.g. Pronterface) are all set for the same default baud ate.
  • Check the connections to Tx and Rx on the Xbee shield - try swapping these two wires around, in case you have connected Tx to Rx, etc.
Enjoy your new-found wireless freedom!

Wednesday, 16 November 2011

I feel the need ...

... The need for speed!

I may be getting ahead of myself here, but having done some calibration tests which have made HUGE improvements on my print quality, I decided to see how fast I can print.

I know, I know, I haven't finished calibrating yet, but I guess the "best" 3D printer for me is one that can build parts with "acceptable" quality at the fastest practical speed. I figure it is likely that there will be trade-off between speed and quality, and I just want to know what my options are.

Most of my calibration printing was done at 30 mm/ s, and while it is by no means perfect, the quality is "not bad" (if I do say so myself). I decided to have a go at 45 mm/s and 60 mm/s, just to see what happens.

And here's what happened (with print speeds of 30 mm/s, 45 mm/s and 60 mm/s, from left to right):

In short - my printer will print quite happily at 60 mm/s (maybe more - maybe even a LOT more?), but the quality drops off a bit as the speed increases. (No real surprise there!)

Here's a (bad) video of my machine printing at 60 mm/s:

For now - I will probably do most of my "quality" prints at 30 mm/s, but it is nice to know I can double the print speed whenever I need a "quick and dirty" print of something in half the time.

Monday, 14 November 2011

Quality Street!

I have just spent a few hours working through the Calibration procedures and test pieces on the Wiki - and the results have certainly been worthwhile!

It seems my settings weren't a million miles from where they should ideally be (and I'm sure further improvement is possible, and I will keep pursuing improvements), but in the space of an evening's work, the quality of parts that I am now producing has improved markedly.

Here is a photo of some of the various test pieces produced while working my way through the calibration process, tweaking the various SFACT settings as I went:

And to see how far I have come - here is the first RepRap TearDrop Shot Glass that I made about 4 weeks ago - one of my first "successful" prints:

Here's a rather better one I made a day or so later, when I had got my backlash under control:

And this is what I am getting now:

It's still not perfect, but it is MUCH cleaner and "tighter"than my previous efforts - and I am seeing the quality improvements in my other prints as well

Wednesday, 9 November 2011

Printing without a computer (well ... sort of ...)

My two daughters (aged 12 and 14) think my RepRap is very cool - they can see the attraction of having custom made "things", in their choice of colours. My partner, on the other hand, has been tolerant about my RepRap obsession - but no more than tolerant! That is to say, she smiles benignly, and walks away, shaking her head ...

Anyway, the only major "sticking point" was the amount of time our laptop has spent "anchored" to the desk with the RepRap attached by its USB "umbilical cord", when she wanted to take the computer into the living room to use while watching TV, etc. Easily fixed, I figured - just install SD RAMPS so I would be able to print while not connected to a computer.

I ordered the SD RAMPS module from RepRapWorld and it arrived a few days later.

I followed the Wiki page to install and test it. First up was a "dry run" test of the SD RAMPS module plugged straight into the Arduino Mega to make sure the module and micro SD card were functioning correctly - no problems there. Onwards and upwards ...

Next step was to solder in some headers onto the RAMPS board - but things didn't look quite right. The photos on the Wiki page show the SD RAMPS aligned neatly with the edge of the RAMPS card, but I couldn't quite figure this out:

It turns out that on RAMPS 1.4, the corresponding pin pads have been moved a bit closer to the corner of the board, so it looks a little bit different, because the SD RAMPS daughter-board hangs over the corner of the RAMPS 1.4 board a little bit:

Anyway - sorted that issue out, hooked up again - and great - I can read and write files to the micro SD card using Pronterface as my interface software. So, I uploaded a gcode file (or so I thought!), selected it for printing, and pressed "Print" - and off it went. Great, I thought, so I unhooked the USB cable ...

... and my printer stopped dead in its tracks, even though it was still hooked up to 12 V power.

I repeated this process a couple of times, and was about to give up, when a little bell went off in the back of my brain. Hadn't I read somewhere about an extra diode on the RAMPS board if you wanted to print computer-less?

Sure enough - it's right there on the Wiki :

Definitely solder D2 in. D1 should only be installed if the 5A rail is powered by 12V. It can be omitted and the Arduino will be powered from USB. You will want D1 installed if you add components to print without a PC. To reiterate, D1 MUST be omitted if you are powering the 5A rail by more than 12V.

Okay - disassemble the RAMPS from the Arduino, solder in a second diode D1 (under the X and Y StepSticks), reassemble, and try again.

Yes! It works! Get the print job started from Pronterface, then  disconnect the RepRap from the PC, and it carries on printing all by itself ...

... and then it stopped!

Repeat this cycle a few times - what is going on? I take the micro SD out of the SD RAMPS and take a close look at the files that are on it. Funny ... the gcode files are awfully small!

I try uploading a gcode file from Pronterface, watching progress more closely - it is VERY slow to transfer the data. Maybe I truncated the previous gcode uploads by being too impatient? I wait a few minutes while the upload completes, and try again - and this time, the print runs right through to completion, while my PC is in a different room.

Now I am happy ('coz I can print large print jobs, needing the computer for just a couple of minutes to initiate the job), and my partner is happy ('coz she got her computer back!)

To reiterate the key learnings:

  1. RAMPS 1.3 and 1.4 have different pin pad locations - I have added a photo of my 1.4 arrangement to the Wiki to help other newbies who are struggling to get SD RAMPS working properly. (Not sure about what you have to do for earlier versions of RAMPS.)
  2. While you are soldering in the headers etc, remember to solder in the second diode D1 if you have not already done so.  (There isn't much point that I can see in installing SD RAMPS if you can't print "computerless".)
  3. When uploading gcode files to the micro SD card, watch upload progress carefully before disconnecting anything - gcode uploads to micro SD via Pronterface are R...E...A...L...L...Y     S...L...O...W...!!!!!
  4. Alternatively, take the micro SD card out of the SD RAMPS and upload to it direct from your computer's micro SD Port or Adaptor. This will upload typical gcode files in a second or so, and is probably quicker than waiting for Pronterface to manage.
  5. Then you can re-insert the micro SD card into the SD RAMPS, and you're good to go.
  6. From Pronterface, select the gcode file on the microSD that you want to print, and when the print job is running, you should be able to disconnect the RepRap from your computer (but keep it connected to its own power supply!), and the print job should continue through to completion without being connected to a computer.

Monday, 24 October 2011

Firming Up

In getting where I have with my printer, I have had to spend some time experimenting with and tweaking the various firmware and software settings to improve the overall quality of my prints. I have made good progress, but I am not finished yet, by any means! (For the record, I am using Sprinter firmware, Pronterface software with Skeinforge, with RAMPS 1.4 electronics.)

Here are my main firmware settings (software settings will be in a following post), which are producing reasonable prints on my machine (your mileage may vary!):

Firmware Settings – Sprinter:

The settings I have had to adjust are in the “Configuration.h” file.

Line 15: Set the Motherboard ID value to match your electronics hardware; I am running a  RAMPS 1.4 so it’s:

#define MOTHERBOARD 33

Line 25 / 26: Define your temperature sensors; I have a 100k thermistor on my Hot End, and no Heated Bed as yet:



Line 30: Calibrating the steppers; after a bit of trial and error, printing and measuring calibration blocks, etc, I am using:

float axis_steps_per_unit[] = {80.*40./51., 80.*40./51., 3200./1.25, 700.};

(This was originally {80, 80, 3200/1.25, 700} by default for a metric Prusa Mendel with a Wade’s Extruder.)

Line 45: Set the comms baud rate:

#define BAUDRATE 115200

Lines 81 – 83: Setting the build volume; as reported in an earlier post  , my print range is somewhat restricted, so I am using:

const int X_MAX_LENGTH = 175; // (was 200)

const int Y_MAX_LENGTH = 175; // (was 200)

const int Z_MAX_LENGTH = 110; // (was 100)

I think pretty well everything else has been left as per the defaults. Save the whole Sprinter Sketchbook project in Arduino, upload to the Arduino Mega, and we’re ready to start tweaking the software …

Sunday, 23 October 2011

Preparing the Machine – Pre-Flight Checks

This post is just a quick summary of the checks that I try to remember to carry out before each group of print runs – say at the beginning of an evening of printing.

Print Bed Medium

Firstly - if you are printing with PLA onto a non-heated acrylic bed, put down a layer of “Scotch 3M Blue Tape 2090". I can’t over-emphasize what a difference it makes having a good substrate that the build will adhere to, but will separate from the printed object at the end of the job. The surface of the blue tape tends to get a bit damaged with repeated use – be prepared to replace it periodically when the marks and scores from your earlier prints become very apparent. The frustration of having a long print job de-bond and separate part-way through is MUCH greater than the cost of a  metre or so of blue tape it needs to “refresh” the print bed surface (as I found out – the hard way!) Do yourself a favour – just do it!
Level Print Bed

Check the gap between the extruder nozzle and the print bed. I am using a feeler gauge, and aiming for about 0.3 – 0.4 mm. I’m not perfect at getting an even gap over the whole print bed, but I seem to be doing OK. My print bed levelling screws are installed screw-head-down / thread-up, and have the following components (from bottom to top):
1.       Screw Head
2.       Washer
3.       Lower Bed Plate
4.       Washer
5.       Spring
6.       Washer
7.       Levelling Nut
8.       Washer
9.       Upper Bed Plate
10.   Washer
11.   Locking Nut

I am sure there are many permutations on this theme, but this works for me.

My levelling procedure is as follows:
a)      Slacken the 4 top Locking Nuts.
b)      “Home” the machine, and adjust the Levelling Nut nearest the (0,0) corner to get the gap right at the “Home” point.
c)       Move the X-axis to near its upper limit (about 170 mm in my case), and adjust the gap at that corner.
d)      Move the Y-axis to its upper limit (again, about 170 mm in my case) and adjust the third Levelling Nut.
e)      “Home” the X-Axis, and adjust the 4th Levelling Nut.
f)       Tighten all 4 Locking Nuts
g)      Cycle through the four adjustment locations again, to make sure all is well; adjust if necessary.
h)      Move to somewhere near the middle of the print range - about (100,100) in my case - just to check the gap in the middle.

Free Movement

Check free movement of all axes – should all be quiet and free of audible “chatter”. If any of the movements is showing a bit of “stickiness” or noise, I put a couple of drops of light machine oil on the smooth rods, and move the axes through their full range a couple of times. I’m not sure how much this improves print quality – but it can’t hurt!
When the pre-flight checks are complete – you’re ready to print!

And the results:

I’m pretty pleased with what I am getting out of my machine now. Having got the machine working to my basic satisfaction, I am now concentrating on printing useful objects; that is not to say I am done with fine-tuning and calibration, but I figure I built this thing to MAKE stuff, not just for its own inherent magnificence (which is substantial!) and perfection.

In particular, I decided I need a Filament Spool so that longer prints can run continuously without me having to continuously check and untangle the filament coal lying next to my printer.

I looked at a few options on Thingiverse  before deciding on this stand  (which clips onto the top bars of a Prusa Mendel), together with this printable spool  , both by a contributor who calls himself 4ndy. Undertaking a substantial bunch of print jobs like this is a good test of whether my machine is basically up to the task. I'm still printing all the bits, but so far, I'm pretty happy with quality and progress:

Wednesday, 19 October 2011

When you can print one of these ...

... you start to believe that ANYTHING is possible!

I downloaded the STL file for the Twisted Bottle and pressed the print button.

Here it is underway:

And here is the finished product on the print bed:

And here is the finished article:

Tuesday, 18 October 2011

You've got to admit, it's getting better ...

... A little better all the time!

Well, I owe a HUGE debt of gratitude to Triffid Hunter and David Drew for their comments on my previous post . Triffid Hunter was 100% spot on in diagnosing my main problem as being backlash.

When first assembling my machine, I had no real guidance as to how tight the belts should be, and I was worried that if I over-tightened them, I could stall (or burn out ) my stepper motors, or break my machine. Triffid Hunter said "They should make a tone of 100hz or more when plucked like a guitar string. That's a low G sharp for the musically inclined." Or to put it another way, they should be "as tight as a tourniquet, dry as a funeral drum". (Google it, if you don't get the reference.)

So I set to tightening my belts. My X-axis belt was not too bad, but needed just a little bit of tightening, but my main problem was my Y-axis belt. Having had the root cause pointed out to me, sure enough, you could actually see the backlash on the Y-axis pulley every time it changed direction.

I have seen a number of clever tricks to tighten the belts on your RepRap, including this and this , but I decided to go with a much simpler solution - make a loop of cable ties around the ends of the belt, and then pull it nice and tight, and cut off the loose ends:
Simple (crude, even), but very effective, and easily adjusted without needing to tighten or loosen any clamps. If you over-tighten it, just cut it away, and have another go. So, I tightened both belts, and repeated some of my test prints - and the results are an astounding improvement (to me, anyway!):
Compare the 20 mm Calibration Cube to what I was getting earlier and my second attempt at the RepRap Teardrop Shot Glass against my first attempt , and you would have to agree that this is a dramatic improvement.

Monday, 17 October 2011


Well, I think I have now got to the point where I thoroughly deserve a toast to my success and progress so far - so I downloaded the STL file for the RepRap Teardrop Shot Glass and printed one off - and here it is under construction:

And here's the finished article, still bonded to the Blue Tape print bed:

Separated from the print bed - note the "raft", and the internal "whiskers" where the extruder has jumped across from one side to the other when changing to the next layer:

And after some cleaning up:

No, it's not perfect - but it neither does it look like a 3D spider's web, like my first few prints. The outside layer shows a few "sagging" layers, while the inside surface actually looks pretty good, and both the top face and bottom face of the horizontal shot-glass bottom look pretty tight.


(Wait - what's that I hear? Someone is asking if it's actually watertight, and did I actually get a drink from it? No! It leaks like a sieve! But never mind - it's onwards and upwards from here!)

Always listen to people who know what they are talking about!

My printer doesn't yet have a heated bed, although I expect I will add one as soon as I get the machine working to my basic satisfaction. I am printing 3 mm PLA (as most resources seem to suggest that PLA is an easier material to get to grips with than ABS, and it doesn't absolutely NEED a heated bed). The RepRap Wiki and other sources strongly suggested using "blue tape" on the print bed to get the printed objects to bond properly, with the most recommended blue tape being "Scotch 3M Blue Tape 2090". My local hardware store didn't have any Scotch brand "blue tape" when I went there a couple of weeks ago, so I bought a roll of generic paper-based painter's masking tape instead - BIG MISTAKE!!!!!

I found the PLA simply did not bond to the generic tape at all. I was able to get my early test prints to bond to paper which I bull-dog clipped to the print bed, but as I susbsequently discovered - this is (almost) OK for mucking around, but if you want to print something which is even half-decent, you absolutely MUST get a good bond between the raft / first layer and your print bed.

I went to a diferent hardware store today, and they had some genuine Scotch Blue Tape 2090, so I grabbed a roll. It was quite a bit dearer than the generic stuff I had bought earlier (although still very cheap compared to what I have spent on this project overall so far!), but what a difference it has made to the quality of my printed parts - WOW!

On the images that follow, one of my old 20 mm calibration cubes (printed onto paper) is on the left, while the same 20 mm cube printed on Blue Tape is on the right. All machine settings (firmware and software)  are identical - the only thing I changed is the contact medium on the top of the print bed.

Bottom Faces:

Top Faces:

Side View:

You can see that printing on Blue Tape gives me MUCH improved resolution overall: on the bottom face, the side faces, and the top face. I really wasn't expecting such a dramatic change to the whole print quality, just from having a better bond between the bottom printed layer and the print bed.

Do yourself a favour - if you are having any issues with the quality of your first prints (especially if you don't yet have a heated bed), I strongly suggest you use PLA filament and genuine Scotch Blue Tape 2090 - it certainly worked for me!

Getting everything squared away

Well, after my first flush of 3D printing glory, I had a “compulsory sabbatical”, due to a requirement to travel away from my machine for work purposes. (Oh, the separation anguish!) The enforced parting gave me the opportunity to stop playing and start thinking – how could I improve the design of my machine (which I only just got working, after a fashion), examining the Sprinter / Pronterface / Skeinforge settings, and so on.
In particular, I had one of those “light bulb” moments that sometimes happen when you take the time to step away from a problem, and see it from a new perspective - I worked out how to correct the non-perpendicular alignment of my X and Y axes.
Due to the initial mis-alignment of my whole frame, for my initial prints, squares were not quite square. I had calibrated the X and Y motors so that the sides were equal in length (and correct length, as well), but the corner angles were a couple of degrees off a right angle (as I always feared). This probably doesn't matter for "sculptural" type print jobs, but for dimensionally-critical machine parts, I wanted to get everything all squared away.
Then I realised that all I need to do is move the ends of the Y-axis smooth rods across slightly at either the front or rear threaded rod until they are truly perpendicular to the X-axis smooth rods (just a couple of mm at one end was all it needed). Once I had seen the machine in action, I realised that all you need to do is get all your smooth rods for the X, Y and Z-axes mutually perpendicular to each other - it actually doesn't matter if the rest of the frame is a bit skew, as the long as the smooth rods are all square to each other.
Five minutes work with a spanner shifting the Y-axis smooth rods a bit and voila! – nice square prints!
I now realise that the design of the Mendel Prusa is actually quite clever in that each of the axis smooth rods can be independently aligned so as to be truly perpendicular to the other two axes. I am sure this is by design, not just an accident, and it is probably obvious in hindsight, but it took me this long to realise!