Tuesday, December 11, 2012

It has been a few years since I build the Mendel printer and the lack of a user friendly software made it very hard to even figure out if it was calibrated okay. I put the project under my desk until now!

I found a new software; Repetier from Repetier Software (Duh!). It support many versions and hybrids of 3D printers and even if my Mendel Gen6 is a bit old now, it works fine.

Repetier also converts the STL to G-Code with a very intuitive user interface. I had to reduce the default speed for everything by a factor 2 to not stall the stepper motors, but I'm still tweaking the temperature and flow speed to get the X and Y dimensions more precise.

From the beginning I calibrated the extruder's Z axis to the board surface and I discovered that the first layer star at Z=0. By offsetting the Z-axis with approx 0.4mm I got the first layer more correct.

I was mistaken... The nozzle had become lose and was scraping the board. After I tighten the bolts I could remove the Z-Offset again.

Now I have another problem with stalling motors, but I suspect it to be of the mechanic nature. It is only the Y-Motor that stalls, what seems to be randomly.

Update:
The belts where to tight and made the motors stall. After I loosened them up a bit I could increase the motor speed  without stalling.

Wednesday, August 31, 2011

Recompiling Mendel GEN6 firmware.

I downloaded the GEN6 source code and the Arduino + Sanguino package from Medel-parts.
Unziped the source code folder FiveD_GCode_Interpreter and the arduino-0018 folder.

Before we star the development environment we need to power up the Mendel and connect the USB cable.

In the arduino-0018 folder I started arduino.exe From the "File->Open" menu I opened the file "FiveD_GCode_Interpreter.pde" in the FiveD_GCode_Interpreter folder, and it loaded into a new window.


To increase the amount of steps/mm we need to find the definition of E0_STEPS_PER_MM in the file configuration.h

It was defined to be 20.2 and we need to increase this for Adrian's geared extruder by approximately 38 times (to 767.6). After some research I found that someone else, after some tests, had to change this to 780.6.

So I changed the line to: #define E0_STEPS_PER_MM 780.6

Before we compile and upload our modified firmware, be sure to select the right COM port under "Tools->serial port" and the platform under "Tools->Board" to "Sanguino".

Press the upload button and it will hopefully compile and upload the new firmware.

I printed my test cube again again and this time it looked extremely promising...

However, after a while the the pressure seems to go down  and  the last layers was only small dribbles of plastic. I suspect it has to do with the filament retraction when the nozzle moves to a new position. Time to elaborate with the gear lash...

Monday, August 1, 2011

Software and parameters

I Started to use the RepSnapper software and loaded some STL files, converted to GCode and printed at 200c.
To my disappointment it looked like crap! Also the Y position seemed to shift for each layer resulting in the leaning tower of pisa.

But when I wrote a GCode program manually and moved the Y position fort and back, it always came back to the same spot. So I was suspecting that RepSnappers conversion to GCode wasn't that accurate.

I tried to use Skeinforge for the GCode generation and the Y position became steady again, so it must have been some problem in RepSnapper.

Skeinforge looks like a technician puking buttons after a really bad meal in a foreign country. For a beginner it just looks pointless to even TRY fiddling with the parameters.

I just figured out that someone else must have done the same thing before me so I googled and found a setting made for a Mendel Gen6 in the Mendel-part forum.

The result looked better but now it seems like it is far to little plastic extruded.

It came to my mind that This settings are probably not for Adrian's Geared extruder that requires (according to my little calculation) 38 times more steps/mm. When I extrude 100mm it only does around 2.6mm, so 100/2.6 = 37.04 times more plastic is needed.

After some reading on various forums someone has changed the FW


#define E0_STEPS_PER_MM 20.2


to


#define E0_STEPS_PER_MM 765


The question naturally comes to my mind: Why doesn't Camiel deliver a FW that works with the extruder he put in his own Mendel kit (Adrian's geared Extruder)?


Anyway, I have not confirmed yet that this is the case with my FW, but everything points into that direction...
(If anyone knows a way to adjust this in Skeinforge, please drop a comment)

Friday, July 15, 2011

Night 8 - Applying Kapton tape, the easy way

So far we have built all the mechanic, tested the home sensor, motors and calibrated the X,Y and Z home positions.

Before we can print we need to apply the Kapton tape on the heated board, but first we need to see if it works. I soldered a DC connector to the heated table's wire so the power brick can be reattached easily.

When strapping cables to the bars, I used some tubing in between to not damage the wires against the sharp threads. My idea is to later on print out a bracket to mount it correctly to the bar.


Measure the resistance to check for any short circuits, it should in theory be 8.8 ohm, but due to the 5% tolerance mine read 9.5 ohm. Set the power brick to 17v and plug it in. After a while it should start to heat up the board.

I used a professional surface temperature probe from Testo. The heat is quite accurate and spread evenly over the whole surface. I got approx. 57c all over except over the resistors where I got about 60c.

If your table doesn't get hot enough or too hot, check what voltage you have selected or even better, use a multimeter to measure the voltage in the DC connector.

I found a useful page converting Watt to Celsius (yes, I'm sceptical to the conversion formula, but it somehow seems to be in the ballpark).  Use this formula to get your Watt: U*U / R, for example in my case 17*17 = 289, 289/9.5 = 30.42W and this will give me 57.7c according to the conversion site.

Applying Kapton tape was no easy task. It wrinkles easily and capture a lot of air bubbles. I got quite frustrated and Googled to see how other was doing it. I stumbled upon an extremely good solution that "zaggo" came up with. Before you start you should clean the surface with Acetone or similar.

You need a small bowl with water, some dish soap, a scraper (or similar), a scissor and Kapton tape.
Mix some dish soap into the water and stir a bit.


As you can see I have already started and applied the first strip of Kapton, perfectly without any wrinkles or bubbles.

Start to apply the water-soap solution on the surface where you want to put the Kapton tape. Don't be afraid to apply to much of the solution (but try to keep it on the plate :)


I'm going to overlap the Kapton a little bit, so That's why we have the solution on the Kapton strip as well.
Now, apply a strip of Kapton over the water solution. It will not stick to the surface yet, allowing you to easily move it around to put it in place.


I positioned mine with a 0.5mm overlap and dried up the exceeding water solution around the new Kapton tape.


Use a scraper (in my case a cork handle) to push out the water. I used some paper to dry it up at the ends. Then just leave it to dry for a while and it will stick to the surface like a glove :)

Repeat the process over again until you finished the whole surface.


No wrinkles, no bubbles, just easy...

Day 8 - X,Y and Z calibration

It's time to calibrate the home positions by cutting the flags into their proper length. to do this wee need to start-up the electronic.

First I attached 12v to the main board without anything else attached. I used a lab power supply with a current limiter started at 0 Amps and slowly rising until we get a steady current that is reasonable. My board showed about 40mA and that is resonable. If it goes up to a few 100mA something is wrong. Switch off power.

If you don't have a power supply with a current limiter you can connect an ampere meter in serial to see the current (Power + to ampere meter Amp input and then ampere meter Ground/Common to Mendel +). If it rises above reasonable limits quickly turn off the power.

Install the FTDI driver on your computer and connect the USB cable. Connected the X,Y and  Z motors + the X,Y and Z home sensors.

When it comes to host software I'm no fan of Java written programs. Yes it is platform independent as long you stick to simple things, then the problems starts. In my opinion, if you are not too lazy, it is possible to write x-platform software in C/C++ with great success. Blender is an extraordinary good example on this approach.

So I tried both RepRap and Replicator and none of the was able to find the communication port (running on 64-bit Vista, and yes it works as a charm on my computer)). I ended up with a home brewed communication software I wrote 10 years ago (ComSpy2 and yes I'm lazy, it only runs on Window platforms).


You can either use a Java application that works on your system or whatever terminal program you like. Set baud rate to 19200 8,n,1 no handshake. Turn on the power and rise the current limiter. You should be at approx. 630 mA and after a while you should read "start" in your terminal program. Now we have connection and the current looks okay.

Start with the command G28 Y0 to move the heated board into its home position.

If they go in the opposite directions or not move at all, you have some sort of problem :) Motors running backwards usually have the wires in the wrong place (change them in the connector). If it isn't moving at all, it might be the same problem or a faulty motor / driver.

If they don't stop at the home position you might have a faulty sensor or miss wired it.

If that worked well issue the G28 X0 to move the extruder sled into home position. Then issue the G28 Z0 command. Be ready to push the reset button (on the board) if it doesn't stop at the home position. If you haven't touched the flags yet, the Z-Axel will stop quite a bit over the heated bed.

Now when we have tested the home sensors it is time to do some adjustments.

By now I finally found a program that finds the "Mendel serial port", Repsnapper on Mendel-part's download page ;) So for now on, I'm using Repsnapper.


On the "Print" tab you can control each axle separately. First connect to the Mendel by pressing the "Connect to printer" button. Below "GCode" there are another 3 tabs, select the "Interactive Control" tab, then press "Home all" and all 3 axles should move out and home again.

As you can see there are 3 rows all begining with a "Home" button. This is the X,Y and Z axis. In the middle of each row there is an edit box with a 0 value.


Make a not of the distance nozzle - edges. Write 200 in the edit box for the X and Y axis (we will wait with the Z axis for now).

The motors should start as soon you type in values in the box. Now, notice the distance between nozzle and edges again. All your flags should be to long at this point. By shortening them you will move the home position further in on the heated bed (widening the distance nozzle - edges) and thus shortening them in the other end.

Cut the flags gradually to adjust the margins on the home and 200 position to be about equal.

When entering values in the edit boxes it will not do a sanity check! if you enter 2000 instead of 200 it will try to move 2m. Press the reset button on the board to abort.

I found the Z-axis to be the trickiest part. First of all you must be sure that the heated bed is levelled with the X-Sled (extruder).

To get a good reference, I first tightened the springs (under the heated bed) so there was a clearance of 20mm PTFE to PTFE at all springs (picture on right).

I used a spirit-level to check that the "ground" (table or whatever you place your Mendel on) was in level. Then I checked the heated table with the spirit-level. I was lucky and had it in perfect level. If not, adjust the table to level it. Check the level in both X and Y direction!

Manually lower the z-axis to about 5mm over the surface. Manually move the extruder slowly back and forth to see if the gap is the same in both ends, do the same in the other Y position.

If they are not the same we need to adjust one of the z-rods. Loosen up the belt so you can manually turn them individually. Place two papers at the end with the smallest gap and lover the z-axle so the nozzle touches the paper. You should feel a slight friction when moving the paper. Now move over to the other side and lower that z-axle until the nozzle touches the paper. You should adjust it to get about the same friction as before.

Carefully put back the z-belt without rotating the z-axles before they are connected with the belt. At this point the nozzle should be aligned with the heated table.

Next step I tighten the Z-opto sensor a few rounds (not to many) so I can losen it up if I cut away to much of the Z-flag. If you already didn't bend the Z-flag in a god and sturdy shape, now is the time to do it.
Manually move the Z-axle so the flag is positioned  near the opto sensors's centre and press the "Home All" button.

Shorten the Z-flag gradually and press the z-axis home button to get it as close as possible to the surface.
Again use 2 sheets of paper (I used standard office paper, 80g/m2) to get a slight friction. Press "Home All" and then slowly manually move the nozzle around all corners to check that it had the same friction every where. Done!

Thursday, July 14, 2011

Day 7 - Finishing the extruder

The stepper motor's shaft needs to be shaped rectangular to fit the small cog wheel.

I first taped the shaft inlet (not shown on the picture) to protect the motor from dust. Then I tried both a rasp and then a Dremel to get it into shape. I found that the rasp was the most effective tool to use.


You need to get down over half the shaft to be able to align the cog wheel with the bigger one later. Be sure to not take away too much, the cog wheel should be press fitted and still, not crack when you attach it.

Then it's time to put it all together, except for the hotend that is not quite finished yet.


Start with the PTFE sheet (bottom), load spread plate (top) and filament guide. Then mount the stepper motor and finally slide on the feed mechanism.


Adjust the small cog wheel so it easily connects with the bigger wheel. Here you can also see the rectangular shaft coming up from the small cog wheel.



The silicon sealant has hardened into a rubber like material now and we can continue to wire the hotend.
Assemble the nozzle, PEEK barrier and heat block. Attach the black (or red) wire to the thermistor wire as shown below. You can't solder them together, unless you use a highly specialized solder tin that melt above 300c. The easiest way here is to crimp them together with a ferrule. DON'T FORGET to insert the wires into 15mm (or so) high temp heatshrink. The common heatshrink usually only goes up to a 180c or so.


Also notice that these wires are made for high temperature installations, not the ordinary stuff you find in the local shop. Use the Kapton tape we left on the other thermistor wire to insulate the ferrule. Repeat the process for the other thermistor wire and the heat resistor. Use the Black & Red with the smaller ferrule to the thermistor and the Yellow & Gray with the larger ferrule to the heat resistor. Cut away excessive wires and legs, apply the high temp heatshrink and use a heat gun to shrink them in place. You should now have something that looks like this:


The colours Camiel have chosen doesn't make any sense to me. Usually Red & Black are used for main power and Yellow for small signals. However, the colours are not important but the pin numbers in the connector are. 1 & 2 for thermistor and 3 & 4 to the heat resistor.

Check the resistance on the thermistor again and the heater resistor. The heater resistor should be around 6 ohm or so.

As the next step I wrap the cables together with another piece of Kapton tape to hold them in place.


Then mount the studs and tighten. I guess the Nylock can't take the heat and that is why we lock them with two ordinary nuts.

All together it will look something like this:


As you can see the extruder is already mounted on the X-Sled, mainly because I had to rip it apart to press fit two nylocks I had forgot earlier. The Gray wire is nicely placed in a small slot behind the bearing.

Check the resistance again, both thermistor and heater resistor.

Night 6 - Building the extruder

After a while I decided how to proceed with the extruder. I used the M4x60 to easy the spring load and it worked. I was able to load the filament with brute force.

Instead of just tapering the thermistor outside the heat block, I drilled a 1.2mm hole.

The hole is only 3 - 4mm deep.





I cleaned up the hole for the thermistor and the heat resistor with Aceton to remove all grease. Then I put a small string of Silicon sealant inside the hole and carefully inserted the resistor while turning it to smear out the silicon (be careful to not get any silicone on parts that should be soldered or have electrical joints).

Then top up with more sealant to fill the ends.

The sealant will react with the moister in the air and turn into a silicon rubber like material. After 24 hours it will be ready.

The thermistor is only a few mm in size with 2 uninsulated wires. These needs to be isolated before we seal it into the small hole. But first check that it is working by hooking up an ohm meter. Check that the resistance are changing when you move from cold to hot and vice versa.


I wrapped a piece of 14mm Kapton tape around one of the naked wires and then together with the other wire.

Then wrap another Kapton piece around the same wire, overlapping the first one a bit. We need the wires to be insulated in different length so the crimp hats doesn't shortcut against each other.


Check the resistance again so it is not shorted (significant lower resistance, around 1 ohm or so). If it is to low you have shortened the two thermistor wires and need to start over again.

Then fill the hole with silicon sealant and push in the thermistor. Leave it to cook over the night.

Meanwhile, I countersunk the extruder PTFE a little bit to guide the filament into the hole.

I did the same with the filament-guide so it would be easier to load the filament.





I want to be able to change the extruder hotend in the future and need to be sure that it is not press fitted into the extruder base. I used various tools to open up the PTFE support and finally found out that if I used a drill as a milling machine it went al quick and smooth.

The hole is wide enough that I can press in the hotend PTFE with my hand and remove it again without tools.

I don't think there will be any problems if the hole gets a little bit too big. It will be hold in place with 2 studs later.

That was all for tonight folks....