Prusa - RIP
I have finally decided to take on the challenge and build my own 3D printing machine.
While I usually try doing things from scratch, this time I have decided to go the easy way and support a fellow 3D printer owner, as this machine is deffinetly not an easy build. So I'm going the RepRap way and building a Prusa Mendel , using parts printed on another Mendel.
My build is going to be a little off from the original design as it is going to make use of linear bearings (LM8UU bearings) for axis movement as opposed to PLA bushings. So it is going to be more like this one: http://richrap.blogspot.com/2011/08/pimp-my-mendel-how-to-build-up-lm8uu.html
Besides the changes above I will use my own electronics to drive it, as I already have the drivers.
While waiting for the printed parts and the linear bearings to arrive (2 to 3 weeks from now) I have started building the electronics, so here we go:
Phase 1 - Electronics - as on 16-11-2011
As I have mentioned I'm not going to use any of the usual RepRap electronics, while Gen7 looks great, I really do not want to invest in Pololu driver since I have my own already. So all it's left is to create a compatible motherboard and at least one extruder heater board.
I started with the motherboard and I have decided to go as modular as possible on this one. This way I will be able to accomodate the board to whatever firmare I use (there are at least 3 more or less stable and some more in development). So the board is really generic, it features an ATMega644, 20mHz crystal, voltage regulator, serial and ISP connectors and all I/O's on screw terminals.
It has been designed in Eagle after a futile attempt to use Kicad (I just hate it I guess) and it looks like this:
And the back:
Yes a simple single sided board with (only) 5 bridges. While it is simple I spent a week and misused 5 PCB's to get it :/ I was really rusty on PCB making I guess.
Anyway smoke test passed, firmware is on it and it seems to work so far.
Next is testing firmware and hooking up the V4 drivers. Update: basic tests with driver and motor attached reveal it works fine!
OK this phase is not completed for a long time - I might have to rebuild the drivers on better PCB's, add another one to the mix and do some more tweaking on them but for now I'll just consider this phase "done". When if I do work on this I'll update the section.
Update - I have completly redesigned the PCB for the driver as it was a real mess in terms of layout and the control pins on the ATTiny2313 driving the thing were chosen ... well pretty much random at the time I have done the first design.
Of course changing the pins in use lead to a rewrite of the firmware too, which currently fails to do anything useful :P Working on it :/
Update - Finally got the driver firmware code to run this morning, the problem was a comparision reading the value of the pin. Yes you read that well, my read_pin() macro does not compare with 0, because it's a bool.
Having that fixed I'm really happy because the new PCB seem noise clear, and there is no more humming yey!
Next is getting it all straighten up and actually turning the motor with it :)
Phase 2 - Firmwarez - as on 08-11-2011
I think this is possibly the most confusing part for anyone building a machine of RepRap variety.
There are currently the following firmwares in active development:
TeaCup - https://github.com/triffid/Teacup_Firmware - possibly the most clean implementation by my standards and the only one I got working so far
Sprinter - https://github.com/kliment/Sprinter - Praised among cutting edge users for printing speed - did not yet get it working
Marlin - https://github.com/ErikZalm/Marlin - Bleeding edge with some cool features - did not yet get it working
Repetier - https://github.com/repetier/Repetier-Firmware - Yet another one - did not try it yet
The list could go on adding at least 5 or 6 others but most of them are based on Sprinter which is in turn based on Tonokip which is based on Hydra which is based on some other Arduino code same age as my own variation used to initially drive the Valkyrie.
Of course there are the original RepRap and Makerbot firmwares but those are out of my focus.
So far TeaCup seems to work best but that's to be proven along the way.
Will update this section as I progress with the trial/error of firmwares.
Phase 3 - Printed parts - as on 15-11-2011
I could have gone about this the RepStrap way especially since I have the Phoenix CNC but I chose not to because:
- I did not have a hotend - and I failed to fabricate a usable one - of course I could have gone the really long way and find a person with a lathe, pay that guy, subsitute something else for fire cement .. . etc, etc ... I chose not to go there - So I had to buy one
- Even if I had the hotend and it worked I did not have any way to mount it on the machine and no extruding mechanics - yes I could have gone the DIY way and build that part on the CNC fail a few times at it, etc,etc - but not this time - the wade design is proven already so I needed the real thing
- Assuming I would have done the two above and actually manged to mount a working extruder on the CNC, I would still have had the problem of getting the thing to work with EMC2, and most likley I would have discovered afterwards that the machine would have been to slow to be efficient, and that the table has to be replaced because it's not plane enough ... etc, etc
- I'd like to get rid of the CNC machine - it has become just to much for my limited living space - that thing should not be used in a flat like mine
After considering all the above I have decided I would be better off if I would get the printed parts for both the printer and the extruder and the vitamins I cannot source locally from our fellow member FrankNeon. He has been really great helping me out with getting the right stuff and cheap too. Thanks again David !
I'm currently waiting for the parts to arrive (hopefully next week they will be there) , but here is a quick preview:
Update - parts are at the postoffice yey! Will have to pick them up on Monday though ... boo they don't work on weekends ...
Update - I got the package yey! All parts look and feel great David did a real good job on them. One is missing because we missed it when we agreed on what's needed, but I have that covered. It's the retainer for the hotend which I will build out of some scrap cooper clad.
Phase 4 - The extruder assembly & testing as on 15-11-2011
Yesterday evening I have managed to put the extruder togheter, it is deffinetly going to work fine but I got to actually test it motor driven.
Here is how the front looks:
The hotend is attached only temporarly, it will be done after I do the retainer part.
Next is making the electronics, to drive the motor and heating the hotend :)
Phase 5 - Frame building as on 16-11-2011
Just a quick note, as I have guessed I have all the threaded rods I need which is great. As it turns out all the M8 nuts are on the Phoenix, a lot of dissasembly will be needed in order to get to them, there should be about 50 - 60 in there. And yes the Phoenix is beeing retired as it has done it's part.
The smooth rods I got from FrankNeon aka David are smooth and straight, but there is a sideways play in the linear bearings sliding on them ... this might turn out to be a problem ... or not ... I'll see about that when the time comes to it.
Update - Frame is mounted ... well loosely until I'll get to measure all lengths and fix stuff in place for good :)
This operation did take about 3 hours including cutting some of the threaded rods, and giving the Phoenix the lethal injection as all my nuts were on it :)
Next is careful adjusting and measuring to make sure all is equal and squared. < - done for now.
Update: Well adjusting stuff without the axises in place is not such a good idea after all, so I had to do it like three times :P
Phase 6 - The X,Y,Z axises as on 25-11-2011
I got the Y axis in place, looks good so far:
As you can see I have also the belt and the home brew bottom plate in place (yes the material is 7 mm hdf floor tiling ;)).
The upper print bed exists also ... just not mounted yet.
I've been also working on the X - Z assembly, it is also almost done except for having the belt on.
During the work I'v found some problems with the parts, it turns out I have some of the parts of an older Prusa revision (black ones) and some others from a more recent revision (blue ones). That fact caused some incompatibilities which had to be solved with some filing egineering.
Another part with problems is the motor coupling for the Z axis threaded rods. The printed ones are way to stiff to allow any imprecision in the actual axial rotation, in other words unless you can perfectly line up the rod with the motor axle you will get crazy wobble. Lining them up perfectly can not be achieved easy so I decided to use the solution I had on the Phoenix working nicely: hard rubber couplings. No wobble for me sir!
Next step is to replace the wiring on the motors as the current wiring is a little to thin tough it worked so far, but I got new cooper stranded wires especially to do this and current will pass better trough.
After that I'll start the "final" mounting (nah nothing is really final ... let's say final until next time) of the motors, belts and axises.
Yup rewired the motors - check
Mounted them on the machine - check
Mounted X-axis - not check
The above "not check" because I've hit another problem last night:
|From Nov 24, 2011|
The belt was rubbing against the lower part of the motor mount :/
|From Nov 24, 2011|
I have finished filing/milling stuff ar around 2 AM, but it's better now. I have not yet taken a picture with the fixed axis.
Update - yey Friday again and the mechanical assembly is finished !
Update - 02-12-2011 - Done?!
Well electronics is working ...
And It prints a cube ...
And how many tries to get to the above - cube evolution:)
The last one is pretty close to the requested size on X and Y but 2 mm short on Z :/
Update - 14.12.2011 - Tweaking the tweak out of tweaks
As I concluded my last update I'm still tweaking and tunning things :/
While I got some succesful prints out of the machine most of them were lucky shots so far, I can never reproduce a print a second time around.
The biggest problem is temperature reading accuracy. Currently I cannot really be sure that the set temperature in the software is actually reached or it stays lower or higher, as measuring outside the hotend does not give me any reasonable values. The thermistor tables I could find or generate so far are all more or less off, so my thermistor/setup is some special case.
So next is taking the hotend off the machine, and do some real measurements from inside it and correlate them with what the software reports.
Also I did not really do all the calibration steps suggested on the reprap wiki so far, the only part I did was to calculate the correct extruder steps.
Now it is time to take things step by step and .... yeah calibrate.
Update - 27.12.2011 - Out of PLA :/
You it had to happen eventually I finished the (generous!) supply of PLA I got from Dave with the printer pieces.
The last meters of it went into this:
Yup a star shaped tree topper :) Always wanted one.
In case you wonder, I did see the outage coming and I have decided to invest in a full roll (2.5 kg) of black PLA, but at the time I got it ... bummer ... I ordered wrong :( Soft PLA instead of normal, I thought "soft" referes to color not actual material softness. I have tried and will try again using it but due to it beeing so soft (think rubbery soft) it jams in the extruder and printing stops after a while. As a fellow RepRap user said about it, it is real hard to get any good prints, this material is only for pros. On the bright side, if I ever get it to print consistently I'll be able to print flexible parts ... liiike tracks and tires ... yes!
So before ordering again I'm looking into local sources, I'm trying naylon right now ... will update on that once I get the hotbed working.
Update - 09-01-2012 - Waiting for PLA-sticks
My nylon experiments proved two things so far:
1. Yup it works - Did some cubes and a squirrel with it - but: it's touchy about the printing surface, on a non heated printbed it's lower layers cool real fast causing the piece to get distorted
2. From the above I got to the conclusion I need a heated bed to use the stuff successfully
So I set on building my own. First attempt was to use a aluminum plate heated up by 4 0.47 ohm ceramic resistors (which I had form previous projects). It worked. It heated up to 88 degrees C as a max. Nylon still curls up at that temp -- > Fail!
Second attempt: I had a leftover ceramic tile and nichrome wires. I cut the tile manually with my Dremel tool to the right specs. Drilled it. Milled 18 slots 20 cm long, to have the nichrome embedded nicely. Used 18, 20 cm long, 4 ohm wires on the slots. Calculated and connected them all in parrallel and series to get about 1.2 total resistance, yelding a current draw of about 10 A current draw at 12V, yelding about 120W of power !! Burned out a mosfet trying to controll it. Hooked it up to the powers source directly, all that power is waisted on heating the underside to over 110 degrees, upperside stays below 80 degress ---> Fail again! #@$!$!%$%$!#R! Besides the thing is heavy as hell ....
There might be a third attempt combining the best of the two: aluminum plate VS nichrome wire ... that is if I can get off the firecement from the alu plate without damaging it :/ That stuff get's hard as stone :/
So I gaved up nylon for now maybe I'll try some other time.
I found a cheap...er source o PLA on ebay not really cheap at 28£/100m but with the shipping of 2 euros win! :) So I ordered 100 m of black and 20 m of each read, blue and yellow :D It should ship in the next days ... yes printing gallore !
In the meantime I did some more trials with the soft black stuff I rambled about in my last update, I got it to print YEY! Still tunning for best performance but I can deffinetly use the stuff to do flexible things ... yes tracks or rubbery (like) parts.
Also found the cause of some of my printing issues: the hotend was able to move up and down in the extruder mount ! So when filament pushed harder on it it would go down a mm or so while when retraction happened it moved up ... this caused problems with homing and layers getting laid improperly. So one less ghost in the machine now :D
On the software/firmware side I have settled on Repetier-firmware and Repetier-host. This combination is pretty stable, the host works very well with the firmware and it has a lot of features. Oh yeah and it integrates with Slic3r which is the new cool slicer software, 10's of times faster than Skeinforge and a lot easyer to get going. I have to admit I never tryed Skeinforge, I found Slic3r first and I just could not bring myself to learn all the miriads configuration options in there.
I totally recommend using both Repetier and Slic3r if you can, things are a lot easier using them with the caution that for the current time Slic3r does not have all the features of Skeinforge but development is going very fast in the right direction.
OK enough for this update ... sorry no pictures this time ;)
Back to waiting for my PLA now ... cheers!
Update - 10-01-2012 - Gear!
OK I lied, I stil have about a half meter piece of silvery PLA so I thought I shuould try doing some tests.
One of the things I want to print is: Surprise! Gears ... the things at the heart of any gearbox.
I also want to print them real small ... maybe smaller than want my former CNC could cut.
So here is a first success, printed at 0.1 mm layers :
That's a small BIC lighter in the second picture. So it works so far, next is to try getting even smaller tooth's printed ... but I think I'm pretty close to the practical limit.
Update - 20-01-2012 - Woah time flyes !
OK first things first, PLA arrived yes!
As I have mentioned I have found 3d-magic on ebay as a PLA plastic supplyer. I must say this guy is gold, GOLD!
I have ordered 20 meters of each blue, red and yellow translucent PLA and 100 meters of translucent black all in 3 mm diameter. The package was dispatched quickly and arrived a day before the estimated day at the post office.
As I opened the package I have found 4 neatly packed coils of each color, but bummer the black was 1.75 mm instead of 3 mm. I took pictures of the problem and contacted 3d-magic (aka Bart). He answered the same day apologizing for the mishap and told me to keep the wrong filament and that I would get the correct size ASAP. Which happened real fast and now I have plenty of plastics.
The filament is OK quality wise, the colors are well not as bright as I have hoped, but I guess it's either that or opaque. The width of the filament it's about 2.8 -2.9 mm, ocasionally there are air bubbles trapped in the material but I did not see any problem with that.
3d-magic recoments using 190 degrees C to print with this plastic, I have done tests as low as 175 degrees and it still extrudes. It sticks best at 185 - 190 degress though.
So if you need plastics and care for low shipping costs I recommend 3d-magic, it is not really cheaper than other plastics but with 2 euro shipping for 100m coil it works for me.
|From January 20, 2012|
Update - 03-02-2012 - Of firmware and stuff
So I decided to upgrade my build by switching to 2.5 mm belts and motors with factory made pulleys.
To do this I need to replace the Y axis motor mount with this one: http://www.thingiverse.com/thing:15988 so I started printintg it.
All was well up to about half way trough the print when things started going weird: extruded plastic was thinner and thinner and then it totally stopped flowing as my extruder motor was doing weird noises and lost steps.
I thought oh well here we go, the hotend must be clogged or something.
I took all related mechanical stuff apart ... extruder, hotend, hotend nozzle. There was nothing out of the ordinary wrong except for the hobbed bolt which was clogged with plastic, so I thought oh that was causing all the trouble.
So I happily cleaned up the bolt, cleaned up the nozzle, fixed the thermistor which lost a little structural part as I removed it before, redone the insulation, let it sit for 24 hours to harden, plugged it in and ... still the same problem :/ No extrusion ... motor going crazy ... dang.
OK it must be the driver, there is something wrong with it ... I replaced it with a new one. No go. Increased the power to the max .. no go.
Finally I realized my problem is not mechanical, or electrical ... something must be wrong with the firmware on the controller. I have reflashed it and tada ... it works correctly again!
Now if you ask what happened ... well the only thing I can think of is that some how either the EEPROM got messed up or the flash got messed up causing the part controlling the extruder to go bogo.
How it came to this? Hard to tell really ... Atmel chips can get memory corruption in cases of brownouts on the power supply and this is why it is good tha have the brownout fuses setup correctly, which I have not set on this chip .... oh well lesson learned I guess :)
Now I can go back trying to print the new Y axis motor holder, hopefully it will work this time.
Update - 06-02-2012 - Oh no more gears!?
Yup more gears :) But smaller this time:
Yup so this is the maximum limit on the small side I can do with my printer, 2 mm diametral pitch gears meaning 1 tooth has 1 mm width. The gear in the picture is an 8 tooth one I think I might be able to get away printing a 6 tooth one which would make it about 4 mm in diameter. But I don't think I have to because 8 teeth is good enough to get decent reduction.
The bigger gear is 32 teeth at the same 2 mm pitch and it matches the small one pretty well. I have tryed having another 8 teeth stacked on it, it worked ... but not that great, as it was printed too fast but that's fixable.
So how did I manage to print that small? Well here is a little howto:
1. Calibrate the printer - I mean calibrate the hell out of it else you will not get any results - trust me on that
2. Very important !! - Make sure your print bed is flat ... real flat, else at 0.1 mm or lesser layer height the plastic will not stick
3. Setup the Z axis to be as close as possible to the print bed as possible - if you need to print 0.1 layers you have to have the nozzle at 0.1 mm from the bed at max, best is to have less.
4. Make sure your temperature reading are correct +-5 degrees C
Now to actual printing:
Disclaimer: I choose to use Slic3r because I like the results I get with it and it is fast. Slic3r does not yet have a cooling feature yet so if you use Skeinforge you might be able to get my results easier.
So my settings in Slic3r to get the results are:
- feed rates 10mm/s everywhere
- temperature 160 degrees (yes that low)
- 1 mm retraction at 10 mm/s
- 0.1 mm layer height
- extrusion width ratio on auto
That's it ! Oh wait, at 160 degrees C you still need at least one fan blowing at the part so do not forget that.
Adding to the above, printing multiple parts at one time, I tried 4 gears, will provide more time for the layers to cool and get you even better results.
Update 22-02-2012 - 2.5D to 3D
Up until now I've been using Blender with success to design stuff to cut on my CNC (RIP dear machine). However as you might know for CNC you basically need to design things in 2D or 2.5D so usually you can get away with a 2D dxf file. Blender can be used to get the 2D design pretty well as you only need to define the shape.
Now with 3D printing you need to design the full 3D part and export it to STL, which can be read by the slicing program of choice and printed.
This means that you have to do a complete model with all the holes and features well defined, where all faces are manifolld. With Blender which is a mesh modeller you can create very nice looking models but it becomes a pain when you need for example to model a cube with a cylindrical hole trough it.
In theory you would use boolean operations to create a difference between the cube and the cylinder but currenty that will create a huge mess of generated faces and lots of non manifolds in there. If you export that stuff to STL your model is doomed.
Oh well while I love Blender I have to find something better to use for this kind of modelling namely a CSG (Constructive solid geometry) 3D modeler which works on volumes instead of meshes.
I know of 3 open source programs which work natively on Linux:
- OpenSCAD - It's the programmers CSG modeller, a lot like the old POVRay. It works well but you basically need to program your model. This approach allows things to be designed parametrically and this is really cool. The downside is that you need to write thie program instead of just you know cliky clicky.
- FreeCAD - now this is also a CSG modeller but with an nice gui interface in QT where you can use your mouse to design stuff. But it has a very different approach to design and a not very easy learning curve. Also it's missing some features or I can't find them and it is a little on the slow side ... remains to play with it some more
- HeeksCAD - yeah ... I know that one I think I'll avoid it for now. It's CNC plugin is good but moddeling no way, it's just clumsy :/
I tested FreeCAD it is promising but not quite there yet so I decided to go with the mainstream which is OpenSCAD.
So after about 6 - 7 hours learnig it I manage to create this:
|From Feb 22, 2012|
Yes a track link :D There will be tracks;)
Update 2012-Oct-04 - Done with the Prusa
RIP Prusa ... BumbleBee owns ya.