Family Banner

Family Banner
Once upon a time...

Sunday, 9 June 2013

What's Now... Mendel 90 in progress

First, a quick recap on my last post, projects planned:

  • Filament extruder: I backed the filastruder Kickstarter so am just waiting for my kit to arrive so I can start experimenting with making my own filament.
  • Plastic shredder/grinder: No progress - Marcus Thymark is now focussed on his extruder, and his shredder although done is appears to be temporarily shelved.
  • Mendel90:  I've started work on this.  A colleague from work also wants one, so I have started collecting parts and printing.
With trying to print the parts of the Mendel90's, I have been following Nophead's recommended settings, but find the print quality isn't so great.  Some Googling has suggested that moving to Marlin from Sprinter would be a good idea, so today I am tackling this:

  1. Download the latest Marlin from GitHub
  2. Update the configuration.h file to suit my printer.  See these links for further info:
    1. 3d Printing update: Sprinter versus Marlin firmware & more
    2. Forum Topic
  3. Verify/Compile & Upload as per normal
    1. I found this didn't work as I used the new Hardware (Sanguinololu) definitions included with Marlin.  When I reverted to the Sprinter Hardware files it worked.
  4. PID Tuning
    1. One of the things I wanted to switch on in Marlin is PID control of the HotEnd.  I found this blog article by Lincomatic well written and helpful.
  5. Test and re-calibrate.
    1. I created my own stepped piece for use with Triffid Hunter's Calibration Guide as I found the 5x5 was a bit difficult to see while the printer is moving.
So, I now have Marlin running and a re-calibrated printer, so we will see if this helps with the Mendel90 Plastics printing...


Monday, 18 March 2013

What's next...

Having been absent from the RepRap scene for a while (well work and new baby seem to take a lot of time), I have managed to get my printer dusted off and running again.

I've done a lot of reading the last couple of weeks, together with some tinkering and decided on some future projects which I am watching.  These are (no order of importance or action intended):

  • Filament extruder: I always intended to recycle plastic, so am watching the "filastruder" developments with interest.  This has a number of similarities to the "Lyman Extruder" which won the desktop factory competition.  I suspect I may go for a mix of the two in the end.  Depends what the filastruder guys come up with by the time I am ready to progress.
  • Plastic shredder/grinder: Marcus Thymark is creating the "Filamaker", which will shred plastic and then extrude filament.  His initial focus is on the shredder which I think is great, but currently out of my budget, so ill keep an eye on developments.  He doesn't seem to have done much work on the extruder element yet.
  • Mendel90:  The most important thing any RepRap owner seems to need is: Another RepRap.  As mentioned in my last post, I will be making one of nophead's Mendel90s.  I do however want to make some changes (and need to keep costs down by recycling stuff I have), so will not be using a kit.  The main change is that I want a 300x300 build area and am thinking of dual extruders (with all the issues those bring).
Wish me luck....

Wednesday, 25 April 2012

Printing Spares

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.

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 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:
  • As I didn't have the parts (or the inclination to be soldering on my Sanguinololu), I elected to go for nophead's mosfet tab fix, as it is relatively straightforward
  • I also took the time to connect up the additional 2 pins on the HotEnd molex while I had the soldering iron out.

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.

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.


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:

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.