After quite a bit of messing about getting things setup just right I am eventually managing to print some real world things.
I printed 4ndy's Modular Printable Spool and one of jonaskuehling's Greg's Wade reloaded - Guidler, Tilt Screws, Fishbone Gears. (Pictures on Thingverse, try the links)
The first because the filament was getting stuck and the second as others have reported that the extruder is the part most likely to fail over time so I don't want to have to resort to buying parts I can print now.
I also strongly suspect that I will soon start building one of nophead's Mendel90s. Why have 1 printer when you can have 2.
Wednesday, 25 April 2012
Monday, 9 April 2012
Hot Bed Heat Up - Resolution
Thanks to the feedback from nophead, Triffid_Hunter & yngndrw on the forums, I have updated my wiring to overcome the short comings (pun intended) of the Sanquinololu.
The summary is as follows (based on the information gleaned from the three above):
The issues:
The summary is as follows (based on the information gleaned from the three above):
The issues:
- The molex connectors are rated for c.1A per pin.
- The HotEnd's typically draw sub 2A
- The heated bed draws about 11A
- The pcb tracks are dubious
The solutions:
- Use screw connectors instead of molex. These are recommended by nophead anyway due to all the movement/vibration that these printer's undergo. Triffid_Hunter seems to agree as his Sanguinololu also has screw connectors.
- Bypass/supplement the PCB traces with additional trace reinforcement, suggested by Triffid Hunter
- Connect the heated bed ground to the tab on the mosfet and the positive directly the the power supply using 13A wire, suggested by nophead.
- Double up by using all 4 of the molex pins. Mentioned by both nophead and yngndrw.
The implementation:
Sunday, 8 April 2012
Hot Bed Heat Up - Be Careful
Just yesterday I was reading this thread on the forum about standards. One of the points was about the connectors on the Sanguinololu boards not necessarily being up to the job for the currents that the heated bed need.
Lo and behold, today while calibration my bed stops heating. This is what I found!!
Might looks innocuous enough to the casual observer, but that's a bit scary, as leaving the printer unattended could result in a fire. Not that I've been brave enough to do that yet.
I then rates my scrap pile to see if I had a suitable relay which could be used instead. There went about 2 hours or so of fiddling and the end result?!? Didn't work. So for now I am back to wiring it up the old way as it is Easter Sunday with no hope of buying any kind of spares today.
I'll be researching this further and posting on the forum about it, as I think this is something we really need to do something about. I would have thought it shouldn't be that hard or costly to offload the heating so that it runs of a separate circuit and the Sanguinololu is merely doing the controlling, not actually providing the current.
Problem is, I can assemble and fiddle with electronics, but I don't know where to start when it comes to designing.
Lo and behold, today while calibration my bed stops heating. This is what I found!!
Might looks innocuous enough to the casual observer, but that's a bit scary, as leaving the printer unattended could result in a fire. Not that I've been brave enough to do that yet.
I then rates my scrap pile to see if I had a suitable relay which could be used instead. There went about 2 hours or so of fiddling and the end result?!? Didn't work. So for now I am back to wiring it up the old way as it is Easter Sunday with no hope of buying any kind of spares today.
I'll be researching this further and posting on the forum about it, as I think this is something we really need to do something about. I would have thought it shouldn't be that hard or costly to offload the heating so that it runs of a separate circuit and the Sanguinololu is merely doing the controlling, not actually providing the current.
Problem is, I can assemble and fiddle with electronics, but I don't know where to start when it comes to designing.
Recalculating Thermistor Tables & more bed levelling
Thermistor Tables
Those following this blog will know that I have had some issues with my printer reporting incorrect temperatures. As mentioned in my last post I tried a different thermistor (also EPCOS, so similar Beta value) with no improvement.
Today I decided to sort it out. Instead of going the normal route and measuring the resistance at different temperatures and then feeding this into the formula mentioned on the Wiki, I took a number of readings at 5 degree intervals. Noting both the the Printrun declared value and the multimeter value.
The thermocouple probe on my multimeter is slightly under 3mm diameter so I stuck it down the HotEnd and measured the internal temperature. I figured that this way I'll be reporting the actual temperature inside even if the temperature at the thermistor is slightly different. (I think nophead did something similar ages ago, but I couldn't find the post in a hurry - but this makes me feel I'm in good company).
For the heated bed I stuck the thermocouple to the bed with some Kapton tape.
When I had completed the above readings I plugged them into a spreadsheet. I then compared these values to tables supplied with Sprinter and the ones on the Wiki. none matched up exactly, but then again I wasn't measuring that accurately or at the actual thermistor.
I had also previously read this article on the Brokentoaster blog which suggested that we should have thermistor tables which, rather than being spread evenly across the ADC range, are focussed on the temperature ranges that we care about. This makes a lot of sense to me, as having finer resolution near our target temperatures should hopefully help with keeping the temperature stable (irrespective of the mechanism employed by the firmware). I also noted that the number of entries in the tables varied considerably for the different thermistors.
So, I played around with the createTemperatureLookup.py script original created by nophead and provided with Sprinter, and together with my spreadsheet I ended up creating new tables which have more entries and are focussed on the temperature ranges I care about for the thermistor in question. The resulting two tables (in Sprinter "thermistortables.h" format) are:
EDIT: It would appear these changes don't work. I'll report back in a new post when I have figured it out.
#if (THERMISTORHEATER == 8) || (THERMISTORBED == 8) // CRK - EPCOS 100K Tweaked for bed range and based on actual readings
#define NUMTEMPS_8 48
const short temptable_8[NUMTEMPS_8][2] = {
{1, 864},
{190, 175},
{379, 132},
{393, 130},
{407, 127},
{421, 125},
{435, 123},
{449, 121},
{463, 119},
{477, 117},
{491, 115},
{505, 113},
{519, 110},
{533, 109},
{547, 107},
{561, 105},
{575, 103},
{589, 101},
{603, 99},
{617, 97},
{631, 95},
{645, 93},
{659, 91},
{673, 89},
{687, 87},
{701, 85},
{715, 83},
{729, 81},
{743, 79},
{757, 77},
{771, 74},
{785, 72},
{799, 70},
{813, 68},
{827, 65},
{841, 63},
{855, 60},
{869, 57},
{883, 54},
{897, 51},
{911, 48},
{925, 44},
{939, 40},
{953, 35},
{967, 30},
{974, 26},
{995, 14},
{1016, -9}
};
#endif
#if (THERMISTORHEATER == 9) || (THERMISTORBED == 9) // CRK - ParCan Tweaked for hot end range and based on actual readings
#define NUMTEMPS_9 48
const short temptable_9[NUMTEMPS_9][2] = {
{1, 608},
{13, 312},
{25, 265},
{33, 248},
{41, 234},
{49, 224},
{57, 215},
{65, 208},
{73, 202},
{81, 196},
{89, 191},
{97, 187},
{105, 182},
{113, 179},
{121, 175},
{129, 172},
{137, 169},
{145, 166},
{153, 163},
{161, 161},
{169, 158},
{177, 156},
{185, 154},
{193, 152},
{201, 150},
{209, 148},
{217, 146},
{233, 143},
{241, 141},
{249, 139},
{257, 138},
{265, 136},
{273, 135},
{281, 133},
{289, 132},
{297, 130},
{305, 129},
{313, 128},
{321, 126},
{329, 125},
{337, 124},
{345, 123},
{353, 121},
{361, 120},
{369, 119},
{693, 79},
{1017, -8},
{1021, -21}
};
#endif
I will see how these values work out for now and report back if they aren't working.
OK, I figured it out (with a little help from the "#define DEBUG_HEAT_MGMT" debug flag in "configuration.h". Seems I was a little too gung-ho on editing out the values at the lower temperature ranges. I've changed the spread a little and have uploaded the following tables which so far are showing readings which compare favourably with my multi-meter.
#if (THERMISTORHEATER == 8) || (THERMISTORBED == 8) // CRK - EPCOS 100K Tweaked for bed range and based on actual readings
#define NUMTEMPS_8 51
const short temptable_8[NUMTEMPS_8][2] = {
{1, 864},
{78, 232},
{155, 187},
{232, 163},
{309, 145},
{386, 131},
{393, 130},
{407, 127},
{421, 125},
{435, 123},
{449, 121},
{463, 119},
{477, 117},
{491, 115},
{505, 113},
{519, 110},
{533, 109},
{547, 107},
{561, 105},
{575, 103},
{589, 101},
{603, 99},
{617, 97},
{631, 95},
{645, 93},
{659, 91},
{673, 89},
{687, 87},
{701, 85},
{715, 83},
{729, 81},
{743, 79},
{757, 77},
{771, 74},
{785, 72},
{799, 70},
{813, 68},
{827, 65},
{841, 63},
{855, 60},
{869, 57},
{883, 54},
{897, 51},
{911, 48},
{925, 44},
{939, 40},
{953, 35},
{967, 30},
{974, 26},
{995, 14},
{1016, -9}
};
#endif
#if (THERMISTORHEATER == 9) || (THERMISTORBED == 9) // CRK - ParCan Tweaked for hot end range and based on actual readings
#define NUMTEMPS_9 41
const short temptable_9[NUMTEMPS_9][2] = {
{1, 608},
{13, 312},
{25, 265},
{33, 248},
{41, 234},
{49, 224},
{57, 215},
{65, 208},
{73, 202},
{81, 196},
{89, 191},
{97, 187},
{105, 182},
{113, 179},
{121, 175},
{129, 172},
{137, 169},
{145, 166},
{153, 163},
{161, 161},
{169, 158},
{177, 156},
{185, 154},
{193, 152},
{201, 150},
{205, 149},
{261, 137},
{317, 127},
{373, 118},
{429, 111},
{485, 104},
{541, 97},
{597, 90},
{653, 83},
{709, 77},
{765, 69},
{821, 61},
{877, 52},
{933, 40},
{989, 19},
{1021, -21}
};
#endif
BTW: If you plan to do something similar, you also have to edit the if statements elsewhere in the thermistortables.h file.
More bed levelling
Since coming back from a week away I have not been able to get anything to print properly, so I figured I need to go back to basics, as I knew I had taken things apart and then not re-calibrated.
Due to the hassle with levelling the 4 corners of the bed each time (each corner affecting the other 3), I decided to convert my bed into having 3 mounting points. This will work if you have a firm bed. (I use a piece of Dibond, so I qualify). I made up a new plate which I have fixed to the rear y-axis bearing carriers. This extends past the back of the bed (over the y-axis motor) and has a bolt in the center. The bed (which is also over long) has a corresponding hole in the middle.
Bed levelling should now simply be a function of levelling the front left-to-right. The ideal place to do this is in line with the front mounting points, as then the lever effect of the rear adjustment doesn't come into play (mine is at y=37.5mm). Once you have the front sorted, then move the extruder to the rear centre (y=max, x=xmax/2=>85 for me). The way I have made it, I can home the z-axis at this position and then simply adjust the single nut until I get to zero on the z-axis.
I also fitted a z-axis end-stop adjuster. This is fantastic, as it allows you to level you bed to dead-zero and then tweak the z-height later if you need to raise or lower it slightly. I have included pictures of these changes. The z-endstop adjuster is a bit of a bodge, but I was using whatever bits I could lay my hands on while trying to doing it quickly and without a printer (obviously).
At the same time I fitted the new end-stop holders that I printed. The quality of the printing is shocking so they will need to be re-done, but they work (although are de-laminating). As mentioned before, the x & z ones are from thingiverse. I created a derivative of this for the y-axis, but haven't uploaded it yet, as I want to prove it works correctly first.
Those following this blog will know that I have had some issues with my printer reporting incorrect temperatures. As mentioned in my last post I tried a different thermistor (also EPCOS, so similar Beta value) with no improvement.
Today I decided to sort it out. Instead of going the normal route and measuring the resistance at different temperatures and then feeding this into the formula mentioned on the Wiki, I took a number of readings at 5 degree intervals. Noting both the the Printrun declared value and the multimeter value.
The thermocouple probe on my multimeter is slightly under 3mm diameter so I stuck it down the HotEnd and measured the internal temperature. I figured that this way I'll be reporting the actual temperature inside even if the temperature at the thermistor is slightly different. (I think nophead did something similar ages ago, but I couldn't find the post in a hurry - but this makes me feel I'm in good company).
For the heated bed I stuck the thermocouple to the bed with some Kapton tape.
When I had completed the above readings I plugged them into a spreadsheet. I then compared these values to tables supplied with Sprinter and the ones on the Wiki. none matched up exactly, but then again I wasn't measuring that accurately or at the actual thermistor.
I had also previously read this article on the Brokentoaster blog which suggested that we should have thermistor tables which, rather than being spread evenly across the ADC range, are focussed on the temperature ranges that we care about. This makes a lot of sense to me, as having finer resolution near our target temperatures should hopefully help with keeping the temperature stable (irrespective of the mechanism employed by the firmware). I also noted that the number of entries in the tables varied considerably for the different thermistors.
So, I played around with the createTemperatureLookup.py script original created by nophead and provided with Sprinter, and together with my spreadsheet I ended up creating new tables which have more entries and are focussed on the temperature ranges I care about for the thermistor in question. The resulting two tables (in Sprinter "thermistortables.h" format) are:
EDIT: It would appear these changes don't work. I'll report back in a new post when I have figured it out.
const short temptable_8[NUMTEMPS_8][2] = {
{1, 864},
{190, 175},
{379, 132},
{393, 130},
{407, 127},
{421, 125},
{435, 123},
{449, 121},
{463, 119},
{477, 117},
{491, 115},
{505, 113},
{519, 110},
{533, 109},
{547, 107},
{561, 105},
{575, 103},
{589, 101},
{603, 99},
{617, 97},
{631, 95},
{645, 93},
{659, 91},
{673, 89},
{687, 87},
{701, 85},
{715, 83},
{729, 81},
{743, 79},
{757, 77},
{771, 74},
{785, 72},
{799, 70},
{813, 68},
{827, 65},
{841, 63},
{855, 60},
{869, 57},
{883, 54},
{897, 51},
{911, 48},
{925, 44},
{939, 40},
{953, 35},
{967, 30},
{974, 26},
{995, 14},
{1016, -9}
};
#endif
#if (THERMISTORHEATER == 9) || (THERMISTORBED == 9) // CRK - ParCan Tweaked for hot end range and based on actual readings
#define NUMTEMPS_9 48
const short temptable_9[NUMTEMPS_9][2] = {
{1, 608},
{13, 312},
{25, 265},
{33, 248},
{41, 234},
{49, 224},
{57, 215},
{65, 208},
{73, 202},
{81, 196},
{89, 191},
{97, 187},
{105, 182},
{113, 179},
{121, 175},
{129, 172},
{137, 169},
{145, 166},
{153, 163},
{161, 161},
{169, 158},
{177, 156},
{185, 154},
{193, 152},
{201, 150},
{209, 148},
{217, 146},
{233, 143},
{241, 141},
{249, 139},
{257, 138},
{265, 136},
{273, 135},
{281, 133},
{289, 132},
{297, 130},
{305, 129},
{313, 128},
{321, 126},
{329, 125},
{337, 124},
{345, 123},
{353, 121},
{361, 120},
{369, 119},
{693, 79},
{1017, -8},
{1021, -21}
};
#endif
I will see how these values work out for now and report back if they aren't working.
OK, I figured it out (with a little help from the "#define DEBUG_HEAT_MGMT" debug flag in "configuration.h". Seems I was a little too gung-ho on editing out the values at the lower temperature ranges. I've changed the spread a little and have uploaded the following tables which so far are showing readings which compare favourably with my multi-meter.
#if (THERMISTORHEATER == 8) || (THERMISTORBED == 8) // CRK - EPCOS 100K Tweaked for bed range and based on actual readings
#define NUMTEMPS_8 51
const short temptable_8[NUMTEMPS_8][2] = {
{1, 864},
{78, 232},
{155, 187},
{232, 163},
{309, 145},
{386, 131},
{393, 130},
{407, 127},
{421, 125},
{435, 123},
{449, 121},
{463, 119},
{477, 117},
{491, 115},
{505, 113},
{519, 110},
{533, 109},
{547, 107},
{561, 105},
{575, 103},
{589, 101},
{603, 99},
{617, 97},
{631, 95},
{645, 93},
{659, 91},
{673, 89},
{687, 87},
{701, 85},
{715, 83},
{729, 81},
{743, 79},
{757, 77},
{771, 74},
{785, 72},
{799, 70},
{813, 68},
{827, 65},
{841, 63},
{855, 60},
{869, 57},
{883, 54},
{897, 51},
{911, 48},
{925, 44},
{939, 40},
{953, 35},
{967, 30},
{974, 26},
{995, 14},
{1016, -9}
};
#endif
#if (THERMISTORHEATER == 9) || (THERMISTORBED == 9) // CRK - ParCan Tweaked for hot end range and based on actual readings
#define NUMTEMPS_9 41
const short temptable_9[NUMTEMPS_9][2] = {
{1, 608},
{13, 312},
{25, 265},
{33, 248},
{41, 234},
{49, 224},
{57, 215},
{65, 208},
{73, 202},
{81, 196},
{89, 191},
{97, 187},
{105, 182},
{113, 179},
{121, 175},
{129, 172},
{137, 169},
{145, 166},
{153, 163},
{161, 161},
{169, 158},
{177, 156},
{185, 154},
{193, 152},
{201, 150},
{205, 149},
{261, 137},
{317, 127},
{373, 118},
{429, 111},
{485, 104},
{541, 97},
{597, 90},
{653, 83},
{709, 77},
{765, 69},
{821, 61},
{877, 52},
{933, 40},
{989, 19},
{1021, -21}
};
#endif
BTW: If you plan to do something similar, you also have to edit the if statements elsewhere in the thermistortables.h file.
More bed levelling
Since coming back from a week away I have not been able to get anything to print properly, so I figured I need to go back to basics, as I knew I had taken things apart and then not re-calibrated.
Due to the hassle with levelling the 4 corners of the bed each time (each corner affecting the other 3), I decided to convert my bed into having 3 mounting points. This will work if you have a firm bed. (I use a piece of Dibond, so I qualify). I made up a new plate which I have fixed to the rear y-axis bearing carriers. This extends past the back of the bed (over the y-axis motor) and has a bolt in the center. The bed (which is also over long) has a corresponding hole in the middle.
Bed levelling should now simply be a function of levelling the front left-to-right. The ideal place to do this is in line with the front mounting points, as then the lever effect of the rear adjustment doesn't come into play (mine is at y=37.5mm). Once you have the front sorted, then move the extruder to the rear centre (y=max, x=xmax/2=>85 for me). The way I have made it, I can home the z-axis at this position and then simply adjust the single nut until I get to zero on the z-axis.
I also fitted a z-axis end-stop adjuster. This is fantastic, as it allows you to level you bed to dead-zero and then tweak the z-height later if you need to raise or lower it slightly. I have included pictures of these changes. The z-endstop adjuster is a bit of a bodge, but I was using whatever bits I could lay my hands on while trying to doing it quickly and without a printer (obviously).
At the same time I fitted the new end-stop holders that I printed. The quality of the printing is shocking so they will need to be re-done, but they work (although are de-laminating). As mentioned before, the x & z ones are from thingiverse. I created a derivative of this for the y-axis, but haven't uploaded it yet, as I want to prove it works correctly first.
Saturday, 31 March 2012
Checking out the bed
Following my last post in which I asked for suggestions to sorting out the bed temperature mismatch, I got a response from T3P3 who suggested I check the room temperature resistance of the thermistor including the connectors. I did this and got a read of more than 100K (around 150K), but what's the definition of room temperature? (My mendel lives in the shed!!). I did however try one of the other EPCOS thermistors I had from Farnell (when I was planning on making my own hot end) and go the same reading. This makes me think the issue is something else, not the thermistor.
For the interim while mulling this over, I am tweaking my slicing (Slic3r) settings to accommodate the (false) reading and continuing printing. I need to print some end-stop holders, so am opting the following two variations:
I'm trying these again, with good progress at the moment....
The prints completed this time, but the quality is shocking, even though the parts are usable. I wonder how I managed to print such a nice whistle so easily the other day.
I'm now messing around with trying to get the settings right to print out the Y-end stop. As part of this exercise, I thought I would check the filament feed. I recall nophead mentioning that he has to tighten the extruder idler up that the springs are almost totally compressed. I couldn't fit springs as the bolts I have are too short. I must have just been lucky!! Nophead also mentions that on his Mendel90 extruder he sticks with the original Wade's design instead of the "accessible" design as he likes to leave the tension springs alone once he has managed to configure it.
I decided to drill out a recess in the idler bracket so that the cap screw bolt heads could recess, allowing me to add springs. I did this and will now experiment further.As for not removing the idler, I can't see how that will ever work on my extruder as the hobbed bolt pushes the filament outwards to it won't naturally drop into the lower 3mm hole (which in my case is the PTFE tube which is part of my ParCan hotend).
The changes I made seemed to help somewhat, but the Y-end stop still came out unusable. I decided to refine the design and then attempt to print that. The result is on Thingverse.
Lazy Susan
I nicked my wife's cake decorating Lazy Susan to rest the coil of filament on. This has worked well, so I decided to make something similar, box it in and tidy up my workbench. I had some conveniently sized 9mm ply off cuts and an old bicycle wheel hub, so set to with that. This has resulting in a boxed in Lazy Susan filament holder, but I still need to try it out to see if it will be a success. The concept is similar to the TechZone Horizontal Filament Spool, but implement with stuff I had lying around and attempting to not take too long in doing so. I haven't rewound the filament, to this may well come back and haunt me later.
Viewing STLs
I was wanting to check the dimensions of some of the items in the STLs I had downloaded to print. I use Google Sketchup for editing/creating objects, and although I have found an STL importer for that, I find that it imports the dimensions incorrectly. This might be something to do with the settings I am using for Sketchup. Anyway, I decided to search the internet for an STL viewer and found this on SourceForge. It works pretty well on the files I've tried so far and is useful for checking dimensions of STLs.
For the interim while mulling this over, I am tweaking my slicing (Slic3r) settings to accommodate the (false) reading and continuing printing. I need to print some end-stop holders, so am opting the following two variations:
- "Prusa endstop holder with taller clamp for less play" by triffid_hunter - http://www.thingiverse.com/thing:13482
- "Y Endstop Holder For Back Rod For Prusa Mendel" by rrhb - http://www.thingiverse.com/thing:15683
My first attempt to print two of 13482 met with catastrophic failure for the first time.
I'm trying these again, with good progress at the moment....
The prints completed this time, but the quality is shocking, even though the parts are usable. I wonder how I managed to print such a nice whistle so easily the other day.
I'm now messing around with trying to get the settings right to print out the Y-end stop. As part of this exercise, I thought I would check the filament feed. I recall nophead mentioning that he has to tighten the extruder idler up that the springs are almost totally compressed. I couldn't fit springs as the bolts I have are too short. I must have just been lucky!! Nophead also mentions that on his Mendel90 extruder he sticks with the original Wade's design instead of the "accessible" design as he likes to leave the tension springs alone once he has managed to configure it.
I decided to drill out a recess in the idler bracket so that the cap screw bolt heads could recess, allowing me to add springs. I did this and will now experiment further.As for not removing the idler, I can't see how that will ever work on my extruder as the hobbed bolt pushes the filament outwards to it won't naturally drop into the lower 3mm hole (which in my case is the PTFE tube which is part of my ParCan hotend).
The changes I made seemed to help somewhat, but the Y-end stop still came out unusable. I decided to refine the design and then attempt to print that. The result is on Thingverse.
Lazy Susan
I nicked my wife's cake decorating Lazy Susan to rest the coil of filament on. This has worked well, so I decided to make something similar, box it in and tidy up my workbench. I had some conveniently sized 9mm ply off cuts and an old bicycle wheel hub, so set to with that. This has resulting in a boxed in Lazy Susan filament holder, but I still need to try it out to see if it will be a success. The concept is similar to the TechZone Horizontal Filament Spool, but implement with stuff I had lying around and attempting to not take too long in doing so. I haven't rewound the filament, to this may well come back and haunt me later.
Viewing STLs
I was wanting to check the dimensions of some of the items in the STLs I had downloaded to print. I use Google Sketchup for editing/creating objects, and although I have found an STL importer for that, I find that it imports the dimensions incorrectly. This might be something to do with the settings I am using for Sketchup. Anyway, I decided to search the internet for an STL viewer and found this on SourceForge. It works pretty well on the files I've tried so far and is useful for checking dimensions of STLs.
Monday, 26 March 2012
Tweaking the whistle
I took the printouts I did yesterday to work today, to show my colleagues.
One of the guys, Dan, is into product design and has used some professional equipment in this field while studying. He was very impressed, so I assume many more water cooler conversations on this topic.
The more I played around with the whistle, the more I felt that the issues appeared to be too little filament on the long runs (almost as if it was stretching too far). I know you are only meant to change one thing at a time, but I decided to try another print while changing the infill to 100% (probably should have had it at this before) and the perimeter speed to 60 (from 55).
What a difference. It makes a noise even without having broken free the ball. I'll load some pictures here later. While this was printing I got my wife out to have a look. At last, she now understands my obsession with this thing!!!
After this I also updated the skirt setting to 2 as I noted that the skirt wasn't being formed properly each time. This isn't really a fix, but will do for now.
Bed Temprature Mismatch
I just posted a question on the forum about a temperature mismatch on my heated bed and what is repeated back on Pronterface.
I would appreciate any suggestions.
In the meantime, I decided that another good test would be nophead's heart box which I could give to my wife as her first "Thing". I've just completed the base. The tip of the heart warped a bit, but I'm quickly printing the lid then I'm done for the day (it is also warping by the way!!!). The warping could be the start of the kapton tape losing it's power. I intend to migrate to "ABS Juice", but figured I would get things working first, then work on refining things.
Here are the pictures, due to the ABS shrinkage problems I had to print the lid's 1% larger than the boxes (or boxes 1% smaller as I didn't want to waste the spare lid/box)
One of the guys, Dan, is into product design and has used some professional equipment in this field while studying. He was very impressed, so I assume many more water cooler conversations on this topic.
The more I played around with the whistle, the more I felt that the issues appeared to be too little filament on the long runs (almost as if it was stretching too far). I know you are only meant to change one thing at a time, but I decided to try another print while changing the infill to 100% (probably should have had it at this before) and the perimeter speed to 60 (from 55).
What a difference. It makes a noise even without having broken free the ball. I'll load some pictures here later. While this was printing I got my wife out to have a look. At last, she now understands my obsession with this thing!!!
After this I also updated the skirt setting to 2 as I noted that the skirt wasn't being formed properly each time. This isn't really a fix, but will do for now.
Bed Temprature Mismatch
I just posted a question on the forum about a temperature mismatch on my heated bed and what is repeated back on Pronterface.
I did however note that I was struggling to get the bed to reach 110C.
I bought a multimeter which does temperature readings and noted that the bed was much higher than Pronterface (or the Sprinter firmware) was declaring. I am using an EPCOS 100k thermistor supplied by Think3DPrint3D and chose that (6) in the Sprinter firmware (I have the latest version committed by Kliment 8 days ago - 7d45ae9ecf) config.
I bought a multimeter which does temperature readings and noted that the bed was much higher than Pronterface (or the Sprinter firmware) was declaring. I am using an EPCOS 100k thermistor supplied by Think3DPrint3D and chose that (6) in the Sprinter firmware (I have the latest version committed by Kliment 8 days ago - 7d45ae9ecf) config.
I would appreciate any suggestions.
In the meantime, I decided that another good test would be nophead's heart box which I could give to my wife as her first "Thing". I've just completed the base. The tip of the heart warped a bit, but I'm quickly printing the lid then I'm done for the day (it is also warping by the way!!!). The warping could be the start of the kapton tape losing it's power. I intend to migrate to "ABS Juice", but figured I would get things working first, then work on refining things.
Here are the pictures, due to the ABS shrinkage problems I had to print the lid's 1% larger than the boxes (or boxes 1% smaller as I didn't want to waste the spare lid/box)
Sunday, 25 March 2012
Couldn't wait for the whistle
Told you I'd probably fiddle in the meantime.
I downloaded and printed Madkite's Whistle Redesign. It took 17.5 minutes and appart from my "normal" settings I changed the infill to 100%.
I was quite impressed with the bridging, but the lanyard hole didn't come out. I'm waiting for the bed to cool so I can remove it.
Here are some pictures:
I downloaded and printed Madkite's Whistle Redesign. It took 17.5 minutes and appart from my "normal" settings I changed the infill to 100%.
I was quite impressed with the bridging, but the lanyard hole didn't come out. I'm waiting for the bed to cool so I can remove it.
Here are some pictures:
Calibration continued
Having completed the mechanical calibration yesterday, it's time to move onto extruder/print calibration.
SIDEBAR: I suddenly realised I hadn't revisited the max values on all my axes after calibration, so here goes. The approach used was to home all axes and then to move each axis in turn using the various increments until I felt comfortable that the maximum had been reached. The values noted are:
Back to Slic3r
Having been reading quite a bit, I quite like the Slic3r is Nicer approach documented by RichRap, so will be following this. He doesn't actually document this as a calibration technique, but for print improvement. Well, why not do it in one. I will be trying to combine his methods with the standard calibration (i.e. the objects chosen to print while following his article will be based on the calibration objects where feasible). So, here are the steps followed:
Getting Slic3r running
Having already done a mechanical calibration on the extruder, I decided to still follow RichRap's advice method and use this as the time to double check the values. I followed these steps:
SIDEBAR: I suddenly realised I hadn't revisited the max values on all my axes after calibration, so here goes. The approach used was to home all axes and then to move each axis in turn using the various increments until I felt comfortable that the maximum had been reached. The values noted are:
- X-axis - 170
- Y-axis - 170
- Z-axis - 100
I then changed the values in the configuration.h and reloaded the firmware.
Back to Slic3r
Having been reading quite a bit, I quite like the Slic3r is Nicer approach documented by RichRap, so will be following this. He doesn't actually document this as a calibration technique, but for print improvement. Well, why not do it in one. I will be trying to combine his methods with the standard calibration (i.e. the objects chosen to print while following his article will be based on the calibration objects where feasible). So, here are the steps followed:
Getting Slic3r running
- Download the latest version from the website. (at the time of writing this is v0.7.1)
- Unzip to a convenient location (no setup required)
- You can run the slic3r.exe directly from the folder, but I prefer creating a shortcut on my Quick Launch bar as follows:
- Rt-Click the slic3r.exe file and drag it onto the Quick Launch bar. When you let go, choose Create shortcut here from the context menu.
- Try it out. You should get something like this:
Having already done a mechanical calibration on the extruder, I decided to still follow RichRap's advice method and use this as the time to double check the values. I followed these steps:
- Switch on the extruder heater
- Mark the filament (a piece of tape will do)
- Zero your measuring tool (or take a starting reading)
- Make sure the heater is up to temperature (if not, wait!!)
- Extrude 30mm, 5mm at a time with small pauses. This is to ensure you aren't extruding too quickly.
- Note the reading: 31.83
- Measure again: 31.51
- And a 3rd time for good measure: 31.10
- Average: 31.48
- New Steps = 608.519*30/31.48 = 579.91
- If the results mean you need to change your config, then upload these changes using Arduino.
- You should repeat the test to make sure it is now correct.
- Don't forget to remove the tape from the filament.
Slic3r Print Settings Tab
I won't repeat the contents of RichRap's article, but will focus on the changes I make to the default settings. These are:
- Transform
- no changes
- Accuracy
- Layer height - changed to 0.3mm based on his recommendation for a 0.5mm nozzle.
- Skirt
- no changes
- Print Settings
- Fill density - changed to 25% as I'll be testing things out and based on RichRap's article, this is a good general purpose value.
- This version of Slic3r now has a Generate support material setting.
- This looks like a useful feature to experiment with, even if using the same extruder. I'll have a go sometime, but for now I left it switched off.
- Retraction
- Speed - I changed this to 16mm/s as this is what RichRap used with Sprinter firmware. I may need to revisit this in the future.
Slic3r Printer and Filament Tab
- Printer
- Print center - 85,85
- Filament (for the temperatures I couldn't use RichRap's suggestions as he uses PLA)
- Diameter - 2.85
- Temperature - 230 (based on this article)
- First layer temperature - 215 (based on the same article as above)
- Bed Temperature - 110 (based on the setting in Pronterface)
- First layer bed temperature - 140 (based on Nophead's settings)
- Print Speed
- Perimeters - 65 (based on RichRap's "Normal" printing setting)
- Small perimeters - 55
- Infill - 80
- Solid infill - 70
- Bridges - 50 (RichRap uses between 35 & 70, so I'll start in the middle - sort of)
- Other speed settings
- Travel - 150 (RichRap reckons a Prusa could get up to 200, mine is a Sells with a heavier X-axis, so I'll start with 150)
- Bottom layer speed ratio - 0.35 (as per RichRap's article)
Slic3r Start/End GCODE
I decided to copy RichRap's Start/End GCODE settings as they make sense to me (this is copied directly from his article).
So, let's print!
I downloaded WickedAndy's polycup as per RichRap's article and sliced it. The resulting code said it would take around an hour to print, so I thought I would start with something a bit smaller. I simply setting Slic3r to scale the object to 50% and tried again. Result! ETA 12 minutes.
So I thought I would switch on the heated bed and hot end to get them warmed up first, but noted that now my heated bed isn't heating!!!
So, 2 steps forward, 1 step back.
That's me done for the day, I'm off to watch the Malaysian F1. (Having said that, I might print the odd other item in the interim)
I decided to copy RichRap's Start/End GCODE settings as they make sense to me (this is copied directly from his article).
Here is the Start Gcode I use - (Suitable for a Prusa with heated bed)
G28 ; home all axes
G92 E0 ;reset extruder
G1 E3 F1200 ;Prime extruder 3mm
G1 E2 F1200 ;retract extruder 1mm
G92 E0 ;reset extruder
And my End Gcode -
G1 X12.0 F4000 ; home (almost) x - stops extruder crashing into frame if at very top of Z height
G1 Y170 F4000 ; move the print to the front.
M104 S0 ; make sure the extuder is turned off.
M140 S0 ; make sure the bed is turned off.
M84 ; shut down motors.
G28 ; home all axes
G92 E0 ;reset extruder
G1 E3 F1200 ;Prime extruder 3mm
G1 E2 F1200 ;retract extruder 1mm
G92 E0 ;reset extruder
And my End Gcode -
G1 X12.0 F4000 ; home (almost) x - stops extruder crashing into frame if at very top of Z height
G1 Y170 F4000 ; move the print to the front.
M104 S0 ; make sure the extuder is turned off.
M140 S0 ; make sure the bed is turned off.
M84 ; shut down motors.
So, let's print!
I downloaded WickedAndy's polycup as per RichRap's article and sliced it. The resulting code said it would take around an hour to print, so I thought I would start with something a bit smaller. I simply setting Slic3r to scale the object to 50% and tried again. Result! ETA 12 minutes.
So I thought I would switch on the heated bed and hot end to get them warmed up first, but noted that now my heated bed isn't heating!!!
So, 2 steps forward, 1 step back.
- First thing, test the output voltage. Check!
- Next, check the PCB wiring. Aah!
- Seems one of the soldered joints gave in. Wonder if my solder is up to the job?
- Anyway, re-soldered and let's try again.
Reload the settings in Slic3r (as I was messing with them), then try again. The settings of importance that I tweaked from my standard settings above are:
- Temperatures:
- Hot End - 230,230
- Bed - 65,65 (it was taking ages to heat up and I got tired of waiting)
- Scale - 0.5
- Perimeters - 2
- Fill - concentric
Here are some pictures of my very first print. The cup is about 40mm diameter at it's widest. The quality isn't fantastic (especially at the bottom), but considering the following I am very happy:
Saturday, 24 March 2012
Calibration Time
End Stops
As mentioned, I need to get on with calibration of the Mendel, first the first step being sorting out the end stops.
With the change to Sanguinolo from TechZone Gen3, my end stops have changed from Opto's to limit switches. This means I don't have the correct mountings. I had a look at the Prusa Mendel assembly guide provided by Gary Hodgson. From this I could see where and how they mounted the limit switches. As I didn't have these printed parts, I quickly cut and drilled these pieces of Dibond shown below. Fitting these would allow the switches to move if bumped hard so one of the first things to print will be these endstop holders (possibly this one by triffid_hunter).
As mentioned, I need to get on with calibration of the Mendel, first the first step being sorting out the end stops.
With the change to Sanguinolo from TechZone Gen3, my end stops have changed from Opto's to limit switches. This means I don't have the correct mountings. I had a look at the Prusa Mendel assembly guide provided by Gary Hodgson. From this I could see where and how they mounted the limit switches. As I didn't have these printed parts, I quickly cut and drilled these pieces of Dibond shown below. Fitting these would allow the switches to move if bumped hard so one of the first things to print will be these endstop holders (possibly this one by triffid_hunter).
Calibration
Starting with the calibration page on the wiki, I changed the order of the steps a bit as I still don't have some glass to print on, and I want to first do the mechanical calibration )i.e. by measurement, then the "print" calibration.
All these steps should be executed with a finger on the power button in order to cut power if it looks like things are going wrong!
Also, I accept no responsibility if you follow my steps and something goes wrong. This is what I did, it may work for you, but use your common sense PLEASE!!!
- Checking the motors (based on steps 5-15) listed on the "Prusa Mendel Assembly" wiki page (starting with "Get a piece of paper")
- Instead of paper, I used this blog article. Wrote down "X,Y,Z,E".
- Fired up Pronterface
- Standing in front of the machine.
- X-axis
- Move forward 10mm. Bah!! it moved left. It's meant to move right, so note "REV"
- Y-axis
- Move forward 10mm. Yay!! it moved towards me. Note "OK"
- Z-axis
- Move up 10 mm. Yay!! it moved up. Note "OK"
- E-axis
- Extrude 5 mm. Yay!! it moved towards the nozzle. Note "OK"
- Checking the endstops
- Fire up Pronterface and connect to the printer
- As before, standing in front of the machine.
- X-axis
- Ensure the axis is about in the middle of it's travel (for safety).
- Keep a finger on the limit switch and select x-home (press the switch after movement to get it to stop)
- Did the X-axis move towards the limit switch?
- No!! - BUT, I was expected this as the axis is reversed (see above, and I haven't fixed this yet!)
- Did pressing the switch stop the movement?
- Yes!!
- Y-axis
- Ensure the axis is about in the middle of it's travel (for safety).
- Keep a finger on the limit switch and select x-home (press the switch after movement to get it to stop)
- Did the X-axis move towards the limit switch?
- Yes!!
- Did pressing the switch stop the movement?
- Yes!!
- Z-axis
- Ensure the axis is about in the middle of it's travel (for safety).
- Keep a finger on the limit switch and select x-home (press the switch after movement to get it to stop)
- Did the X-axis move towards the limit switch?
- Yes!!
- Did pressing the switch stop the movement?
- Yes!!
- Ok, so I need to fix the X-Axis. I'm not going to swap the wires, I'm going to change the firmware. So off to load up the firmware and software on my PC. (See separate blog article here).
- As part of setting up the software I made the change to INVERT_X_DIR, so we can now repeat steps 1 & 2 above.
- All axes and end stops are now working correctly.
- Z-axis end stop position
- I read somewhere that for a 0.5mm nozzle the Z-axis home should be about 2 paper thicknesses from the bed. I set it up like that with X & Y at 100mm. I will refine this after the "levelling the bed" calibration.
- Stepper motor currents
- I didn't see anything about tweaking the currents on my stepper drivers, but remembered that during my trials and tribulations with the TechZone electronics & Scrapstrap I had to tweak the pots on the drivers to get the best out of the motors (I was using old scrap motors). I found this forum post which made me realise I might not have to do anything if my steppers are behaving themselves.
- Anyway, I went to measure the voltages as suggested by Nophead, and found that mine are all 0.6V (or thereabouts). As he suggests 0.4V to get 1A, this means mine are currently putting out around 1.5A (if I have my formula right), so I think I will tweak them down a bit.
- This becomes a hit and miss affair with making a small change, measuring, change again, measure again until you get there. I started with one, figure I could work out approximately how many turns (or fractions of a turn) I had to make to get to the correct value.
- Starting values as follows:
- X-axis
- 0.600
- Y-axis
- 0.617
- Z-axis
- 0.650
- E-axis
- 0.620
- Results as follows:
- X-axis
- 0.403
- Y-axis
- 0.404
- Z-axis
- 0.409
- E-axis
- 0.402
- As I'd now messed with things I thought I would do a quick run through the axes to make sure all are still working.
- I noticed an issue with the Z-axis. One of the threaded rods was misaligned. I rectified this by adjusting the brackets.
- Levelling the bed
- I homed the machine (making sure Z was high). I then tweaked Z at the home position by adjusting the bed screw until it passed my Go-NoGo test using 2 and 3 sheets of paper respectively. The was then repeated for the other 3 corners as below:
- Next up, I raised the Z-axis and moved X across the bed, taking note how far I could move for max X (170mm - uncalibrated).
- Now tweak the Z-axis home at this position by adjusting the bed screw until it passes the Go-NoGo test. (No adjustment needed).
- Next up, raise Z and move to max Y (170mm - uncalibrated)
- Now tweak the Z-axis home at this position by adjusting the bed screw until it passes the Go-NoGo test.
- Last corner, raise Z and home X
- Now tweak the Z-axis home at this position by adjusting the bed screw until it passes the Go-NoGo test.
- Now, as changing one corner might affect another, re-test all the corners. (If any are wrong, adjust as per step one and keep looping till you're done)
- I got pretty darn close, but started to get bored as the corners do all impact each other. So I left at that for now.
- Calibrating distance. I have a digital vernier so I used this and the following steps (all of these with Z high up):
- X-axis
- Home the X-axis.
- Measure between to known points, one on the frame, one on the X-carriage (I zero'd my vernier, but you can make a note and then subtract this value later).
- Tell the software to move the X-axis 100mm.
- Measure the distance again. 99.82mm (not too bad - which it should be for a standard Mendel X-axis, but as printed gears and hardware can vary I feel it's best to tweak this)
- I decided to measure this a few times to be sure it's as accurate as I can get it.
- 99.82
- 99.88
- 99.81
- Average: 99.8367
- Calculate new Steps/mm figure for configuration.h file as follows:
- NewSteps = OldSteps*100/measured value
- NewSteps = 80*100/99.8367 = 80.131
- Y-axis (pretty much same as for X)
- Home the Y-axis. (My vernier is only 150mm, so I found starting at around 12mm, un-calibrated, I could find a good measuring point.
- Measure between to known points, one on the frame, one on the bede (I zero'd my vernier, but you can make a note and then subtract this value later).
- Tell the software to move the Y-axis 100mm.
- Measure the distance again. (multiple times and average)
- 99.20
- 99.20
- 99.62
- Average: 99.34
- Calculate new Steps/mm figure for configuration.h file as follows:
- NewSteps = OldSteps*100/measured value
- NewSteps = 80*100/99.34 = 80.531 (I kept the decimals on the average on my calculator)
- Z-axis
- I raised the Z-axis about halfway and then found a measuring point.
- Tell the software to move the Z-axis down 10mm.
- Measure the distance again. (multiple times and average)
- 3.81
- 3.71
- 3.74
- 3.76
- 3.78
- Average: 3.76
- Calculate new Steps/mm figure for configuration.h file as follows:
- NewSteps = OldSteps*10/measured value
- NewSteps = 3200/1.25*10/3.76 = 6808.511 (I kept the decimals on the average on my calculator)
- At first I was worried about the discrepancy, then I realised that the Prusa Mendel Z-axis is driven directly, whereas the Sells Mendel (which I have) has pulleys in the mix as well.
- E-axis
- As I have my hot end fitted, and don't want to kill it, I decided to test with the hot end running.
- Mark the filament so you can measure it.
- Tell the software to Extrude 30 mm, and then measure again.
- Measure the distance again. (multiple times and average)
- 34.82
- 34.25
- 34.46
- Average: 34.51
- Calculate new Steps/mm figure for configuration.h file as follows:
- NewSteps = OldSteps*30/measured value
- NewSteps = 700*30/34.51= 608.519 (I kept the decimals on the average on my calculator)
- We got some interesting shapes, see pictures below.
- I updated the configuration.h file with these values and re-flashed the firmware.
- Open sketchbook in Arduino (having made sure to shutdown Pronterface first)
- Ctrl-R to Verify/Compile
- Ctrl-U to Upload to I/O Board
- Shutdown Arduino and continue.
- After the new configuration was loaded I did some quick tests to see whether the calibration had helped. (My 10 year came in to help which was great as he could control the software while I took the measurements.)
- We had to tweak them a number of times, but got them to within the measuring tolerance of the tools being used.
- NEW! I thought I would record the final values here (for my own purposes if no-one elses)
- X-axis = 80.262
- Y-axis = 80.445
- Z-axis = 6723.349
- E-axis = 608.519
OK, let's call it a night there. The hardware is calibrated.
Next step is preparing the bed. Seems like ABS Juice - Acetone & ABS mixed is the way to go, although I do also have quite a bit of Kapton tape, just in case!!
I will be using RichRap's Slic3r is Nicer article as my printing calibration. See you soon.
Sanguinololu Sprinter Firmware
These are the steps I followed to be able to load the Sprinter firmware onto my hardware.
Sanguino for windows (link)
Sanguino for windows (link)
- Install Arduino software (I got version 1.0) (But this doesn't work for Sprinter yet (see below), so I also got 0023)
- Which means download it and unzip to a suitable folder. Then we skip to Sanguino steps
- Download latest Sanguino version from Google code. (I got version 0023r3)
- Copy /sanguino into arduino-xxxx/hardware
- So I ended up with arduino-1.0/hardware/Sanguino
- Start Arduino
- I put a shortcut on my Quick Launch bar
- Choose Sanguino from the Tools -> Board menu.
- Choose Com x from Tools -> Serial Port menu (where x is your printer com port. Mine is 6)
The above should now put me back to where I was when installing firmware on the TechZone Gen 3 stuff back in 2010.
The one thing I know I have to setup is the Thermistors. It's great to see that a number of the thermistors have now been loaded into the firmware config by default so you simply need select the correct one. (Thanks again to Think3dPrint3d)
//// Thermistor settings:
// 1 is 100k thermistor
// 2 is 200k thermistor
// 3 is mendel-parts thermistor
// 4 is 10k thermistor
// 5 is ParCan supplied 104GT-2 100K
// 6 is EPCOS 100k
// 7 is 100k Honeywell thermistor 135-104LAG-J01
My heated bed uses the EPCOS 100k (#6) and I have a ParCan HotEnd so I presume #5 (he didn't say).
I'll tweak these settings so long and use this as a test as I know I will need to make changes for the motors (having started this sidebar due to discovering my X-axis isn't performing as expected.
Basic Configuration Steps
- Open Arduino software
- Load sprinter.pde sketchbook (BTW: On saving, Arduino now changes the extension from .pde to .ino)
- Open configuration.h and read through, tweaking settings as you go. These are the ones I changed.
- MOTHERBOARD = 62
- THERMISTORHEATER = 5
- THERMISTORBED = 6
- I have a Metric Sells Mendel (not Prusa) with Wade extruder, so leaving the defaults in for Calibration until I get around to actual calibration.
- INVERT_X_DIR= true
- *_MAX_LENGTH I need to figure these out during calibration. Leaving as default at the moment.
- Save changes
- Choose Sketch -> Verify/Compile. Any Errors?
- Yes!! Sprinter.cpp:63:21: error: Arduino.h: No such file or directory
- So off to figure this one out.
- I found someone listing the same error in a comment on Dust's Reprap Blog. The answer is apparently to use Arduino 0022 as the firmware won't currently compile on v1.0.
- So, off to get 0022 (I saw 0023, so thought I would try that - sucker for punishment).
- Copy the Sanguino folder (which includes the edited values above) into the hardware folder.
- I actually moved the folder as I didn't want to confuse myself later with which was the correct one.
- I also deleted my Arduino 1.0 shortcut and replaced it with the new one.
- Select the appropriate board and com port as mentioned above. It remembered the settings, so probably stored as part of the sketchbook.
- Now repeat Steps 1,2,4 & 5 above till we have a success.
- Yay!! Done compiling!!!
- Switch on and connect to the printer (USB)
- Select File -> Upload to I/O Board.
- Yay!! Done uploading!!!
- So Arduino 0023 compiles and uploads Sprinter.
That's all for the firmware loading post. I will now be able continue with the calibration.
Friday, 23 March 2012
Some shopping, some bodge reversing
I took the day off work today as I needed to attend a private appointment this morning, so I figured I would use the rest of the day to progress with the Mendel.
Shopping
I stopped by the shops and managed to accumulate a number of goodies:
Shopping
I stopped by the shops and managed to accumulate a number of goodies:
- Sandbar resistors to reverse the bodge on the power supply.
- Some connecting posts to make the power supply more universal
- I picked up a new multimeter which includes a temperature sensor. (I figured this might be handy and they were on special).
- For the print bed I managed to locate a heat resistant glass cutting board which is 189mm x 288mm. As the bed is only really constrained in the one direction I figured this was perfect, so I bought a spare. The to side has a texture, but the bottom is smooth, so I'll simply use it upside down (See pictures).
- The Veho USB microscope I ordered also arrived. (I'll play with that later).
Reversing the bodge
I spent most of the afternoon turning the old PC power supply I am using into a universal 12V power supply. This involved fitting a switch salvaged off an old plan printer, some connecting pins, and a sandbar resistor to act as a latching load. The article I based this on mentioned cable tying the resistor to the case as a heat sink, but as I have a number of old CPU heatsinks and fans lying around I fitted that instead. Probably overkill, but better safe than sorry. The only mistake I made is that the fan is noisy and I didn't test it before soldering it in. Doh!!
Tuesday, 20 March 2012
Bodge Alert, but it melts plastic!!!
I ended the last post saying that I needed to try out the heating. Of course this wasn't going to be something I leave for very long.
I am using an old lab power supply that I was given by someone on FreeCycle a while back. I didn't expect it to make the grade as the ammeter only goes to 4 amps. I did try it however, but no such luck. I then went to dig out the various old PC power supplies I had stashed away in the garage and found this handy article on the web.
My power supplies are all AT, not ATX, but I grabbed the one with the highest power rating and decided to try it out. Reading the article I realised that I needed a decent load resistor which I couldn't find on any of the scrap electronics boards (mostly out of old printers or PCs) I have (I'm not very good at electronics so didn't know what I could use instead.).
I decided to try the supply without a load resistor, but that didn't work, so I then opted for the other trick mentioned in the article which talks about using an automotive bulb. I happened to have an old 2CV headlight lying around looking for a job, so roped it in. As you will see from the pictures, this really is a bodge. Don't do as I do! (i.e. Kids, don't try this at home).
I will tidy this all up later, but I couldn't wait to see if it worked. What I can tell is this. My LEDs on the heated bed PCB don't work, but the bed does heat up. Also, the extruder works. My first bit of melted plastic is pictured below. Now I really am motivated to sort this out. I have Friday afternoon off, so hope to be printing by the end of the weekend!!!
I am using an old lab power supply that I was given by someone on FreeCycle a while back. I didn't expect it to make the grade as the ammeter only goes to 4 amps. I did try it however, but no such luck. I then went to dig out the various old PC power supplies I had stashed away in the garage and found this handy article on the web.
My power supplies are all AT, not ATX, but I grabbed the one with the highest power rating and decided to try it out. Reading the article I realised that I needed a decent load resistor which I couldn't find on any of the scrap electronics boards (mostly out of old printers or PCs) I have (I'm not very good at electronics so didn't know what I could use instead.).
I decided to try the supply without a load resistor, but that didn't work, so I then opted for the other trick mentioned in the article which talks about using an automotive bulb. I happened to have an old 2CV headlight lying around looking for a job, so roped it in. As you will see from the pictures, this really is a bodge. Don't do as I do! (i.e. Kids, don't try this at home).
I will tidy this all up later, but I couldn't wait to see if it worked. What I can tell is this. My LEDs on the heated bed PCB don't work, but the bed does heat up. Also, the extruder works. My first bit of melted plastic is pictured below. Now I really am motivated to sort this out. I have Friday afternoon off, so hope to be printing by the end of the weekend!!!
Sunday, 18 March 2012
Extruder Mounting
The first think I noted was that the design of the extruder means that I have should have fitted it to the carriage before final assembly. I also think I need to figure out the hot end wiring at the same time, else I'll be tearing it down again.
PCB Heated Bed Mk2
I started with the bed. I had bought a load of DiBond FR as it is meant to be fire resistant, so should handle the heat better. While reading up on how to fit the PCB heated bed, it also became apparent that the purging notch is no longer needed for the bed. Great, that means my DiBond can be used without cutting, although it does make it larger than the PCB/heated area.
I also noted some people commenting about using some insualtion under the PCB. Prusa himself refers to air being a better insulator than wood in his post on mounting the PCB. I happened to have some heat resistant fibreglass matting from a plan printer that I dismantled (I had kept all the nichrome as well as this was before the days of PCB & resistor based heaters). So my final solution is going to be the following sandwich:
PCB Heated Bed Mk2
I started with the bed. I had bought a load of DiBond FR as it is meant to be fire resistant, so should handle the heat better. While reading up on how to fit the PCB heated bed, it also became apparent that the purging notch is no longer needed for the bed. Great, that means my DiBond can be used without cutting, although it does make it larger than the PCB/heated area.
I also noted some people commenting about using some insualtion under the PCB. Prusa himself refers to air being a better insulator than wood in his post on mounting the PCB. I happened to have some heat resistant fibreglass matting from a plan printer that I dismantled (I had kept all the nichrome as well as this was before the days of PCB & resistor based heaters). So my final solution is going to be the following sandwich:
- DiBond FR base
- Fibreglass matting (8mm)
- PCB (resistor side down to get concave warping)
- Heat resistant glass (bulldog clipped to the rest)
To make up for the 8mm height loss fibreglass matting, I am going to trim down the printed springs I have (well actually, I'm slipping them over the side of the DiBond, see the pictures). I've read they break anyway and people have moved on to using real springs. Heck, come to think of it, if I mount the PCB on floating bolts then the fibreglass matting will provide some spring anyway (but I'm not taking that risk right now).
In order to use the centre hole for the thermistor, I drilled a corresponding hole in the bed plate and cut a hole in the fibreglass matting.
The PCB board and thermistor is now wired up and the bed mounted as per the pictures below.
ParCan Hot End
Next up, mounting the ParCan MK2 Hot End. As I mentioned above, I had to strip down the extruder to mount it to the X-carriage, but that went quickly as I knew what I was doing. I cut a small notch to clear one of the long bolts, that being easier than cutting the bolt. I then reassembled the whole lot and started on wiring the hot end. It went really easily thanks to ParCan supplying some bootlace ferrules with his kit, so that the wires are simply crimped. I then insulated them with some Kapton tape.
I did however note that this hot end is very close to the x-carriage. Looking at the later Prusa Mendel carriages with the LM8UU bearings, they are MUCH slimmer which would result in the hot end being further from the plastic. I expect to get some heat damage on the carriage, so this might have to be the first area to change. Pictures below!!
The next job will be to locate a suitable piece of glass for the bed. I know a lot of people are using normal glass, but I prefer going with the safer option (as many others are) of using heat resistant glass. Glass place mats or pot stands should work, so I'll be keeping an eye out for something suitable. If anyone out there knows where I can get a 20cm x 20cm glass pot stand, please let me know.
However, in the interim, I am sure I'll be trying out the heating and starting to calibrate the machine.
Sanguinololu Setup
According to the supplier "Think3DPrint3D", my electronics was already flashed with Sprinter by Kliment and they user Kliment's Printrun/Pronterface to control it all, so after connecting it should just run. Great!!!
I went ahead and installed the pre-compiled version of Pronterface. When that didn't work I moved on to the latest version from GitHub (linked above). I wasn't really thinking straight, as the fact that Pronterface was only showing Com 1 should have immediately pointed me at the problem.
What he hadn't accounted for (not his fault) is that I had already messed up my PC while trying to get the Tech Zone stuff working. The device wasn't being recognised by my PC. After some googling, forum reading, etc, I figured out I needed to remove and upgrade the FTDI drivers (I'm running XP, so it's a pain, but this doc on the FTDI website helps).
So, now, I have the latest Pronterface, so let's see if this all works?
Brilliant, it connected, so on the testing of the motors. These are all working brilliantly, however I noted that I have wired the limit switches incorrectly, not finding clear instructions elsewhere I followed a random article which appears to have gotten it wrong. I need to go and do some reading, but I think I read somewhere that this can be swapped in the firmware, it's either that or redo the wiring.
I'll need to think about this and decide on the best approach. They are currently wired to normally open, whereas I guess normally closed would make more sense as the accidental disconnection of the limit switch would cause the machine to stop, thinking it is home (which appears the safer option).
I will need to sort out alternate wiring for the extruder motor as the wires are too short. I am thinking of following nophead's DB9 connector idea.
Next step on the electronics front will be to calibrate the system. Before that however I'm going to focus on some remaining hardware work. Namely mounting the bed and the extruder.
I went ahead and installed the pre-compiled version of Pronterface. When that didn't work I moved on to the latest version from GitHub (linked above). I wasn't really thinking straight, as the fact that Pronterface was only showing Com 1 should have immediately pointed me at the problem.
What he hadn't accounted for (not his fault) is that I had already messed up my PC while trying to get the Tech Zone stuff working. The device wasn't being recognised by my PC. After some googling, forum reading, etc, I figured out I needed to remove and upgrade the FTDI drivers (I'm running XP, so it's a pain, but this doc on the FTDI website helps).
So, now, I have the latest Pronterface, so let's see if this all works?
Brilliant, it connected, so on the testing of the motors. These are all working brilliantly, however I noted that I have wired the limit switches incorrectly, not finding clear instructions elsewhere I followed a random article which appears to have gotten it wrong. I need to go and do some reading, but I think I read somewhere that this can be swapped in the firmware, it's either that or redo the wiring.
I'll need to think about this and decide on the best approach. They are currently wired to normally open, whereas I guess normally closed would make more sense as the accidental disconnection of the limit switch would cause the machine to stop, thinking it is home (which appears the safer option).
I will need to sort out alternate wiring for the extruder motor as the wires are too short. I am thinking of following nophead's DB9 connector idea.
Next step on the electronics front will be to calibrate the system. Before that however I'm going to focus on some remaining hardware work. Namely mounting the bed and the extruder.
Saturday, 17 March 2012
Sanguinololu Installation
As mentioned earlier, I bought a Prusa Heated Bed and Sanguinololu kit from Think3dPrint3D.
I then started assembling the electronics. This is much simple than the TechZone ones due to being a single board, so basically the only issues were mounting the board on the frame and wiring all the molex connectors.
For mounting the board, I rough cut a piece of plywood, figuring I could do something better in the future when I can print.
The other difference between these electronics and the TechZone ones is that these use micro switches for the end stops instead of opto's. Much easier for non-electronics guys like me, but of course I had to find mounting locations. I figured some out, but they may change in the future when I am able to print some brackets.
Communication was fantastic and all the goods arrived this morning as promised, well packaged and labeled.
I then started assembling the electronics. This is much simple than the TechZone ones due to being a single board, so basically the only issues were mounting the board on the frame and wiring all the molex connectors.
For mounting the board, I rough cut a piece of plywood, figuring I could do something better in the future when I can print.
The other difference between these electronics and the TechZone ones is that these use micro switches for the end stops instead of opto's. Much easier for non-electronics guys like me, but of course I had to find mounting locations. I figured some out, but they may change in the future when I am able to print some brackets.
Next up I'll be figuring out the Tool Chain updates and trying to switch it on for the first time.
Subscribe to:
Posts (Atom)