Pages

Friday, October 4, 2013

Installing and PID tuning new J-Head Extruder

I recently received my new J-Head V Extruder Nozzle. Hotends.com are also now selling a 15mm long 30W cartridge, which fits the J-Head nicely. This is good since the fan ducting on the Mendel90 surrounds the heater block, and it wouldn't fit very well, if at all, with a larger heater cartridge. The 15mm cartridge is neater, and the currently popular 20mm 40W cartridges I've seen around. I also like that it draws slightly less power, at 30W, as I'm always concious of the risk of overheating connectors, wires or even some component a controller board.
The bits and pieces came well packaged. It included a heat resistor, but I plan to use the cartridge. It's good to have the heat resistor as a spare. It has a 100K thermistor, and since the last time I ordered, now includes suitably sized PTFE sleeves for insulating the thermistor and resistor wires. All the heater cartridges seem to sell with wires pre-crimped on and very well insulated, which is great.

The cartridge heater was a close fit to the hole in the J-Head brass heater block, and with one or two wraps of tinfoil it pushed snugly into place. (Cartridge wrapped in tinfoil and partially fitted, in photo above.)

I fitted the little PTFE sleeves to the thermistor, soldered some wires on and insulated the joints with heat-shrink. I inserted the thermistor into the hole in the heater-block, and surrounded it with some car exhaust putty. The wires from both the thermistor and heater cartridge where then zip-tied to the barrel (photo below.).
I thought about using car exhaust putty to secure the heater also, but the wiring is quite stiff, and it's a good fit to the block so it doesn't seem to be drifting. The one reservation I have about the cartridge arrangement is the bend in the wires. I was careful not to kink the very stiff wires, and hopefully they will be fine since they are secured well to the peek barrel. We'll see how it goes.
The J-Head Nozzle is secured to the extruder with three M3 bolts, M4 washers and M3 star washers to ensure nothing vibrates loose. This is Nophead's design, an excellent method of securing the nozzle. The M4 washers sit against the shoulder of the groove in the PEEK barrel and lock it firmly into the perfectly sized hole in the base of the extruder. It's not going anywhere!

I left the exhaust putty to dry for a few hours, connected the thermistor and heater into my connector board, plugged in my ribbon cable and gave the block a few hours at 100 Deg C to bed dry out the putty completely.


PID Tuning
A purchased printer kit, such as Nophead's Mendel90 will have pre-established PID values in the firmware, which will have been set for the characteristics of the extruder. The purchased M90 kit ships with a power resistor (at time of posting), but since I've chosen to try out a cartridge heater in the J-Head nozzle I've retuned the Marling firmware PID values using an auto-tuning feature. The auto-tuning is called on using an M303 Gcode command which is manually sent to the controller from the host software. If the command is executed on it's own it sets a target temperature of 150 Deg C, but to calibrate for different target temperatures the S parameter is added, e.g. M303 S230. You may want to obtain separate PID values for different target temperatures (different materials). 

Once the PID tuning has completed its process it will return a set of constants for you to note and enter.
The PID values can be later sent via a Start-Gcode, written to EPROM if supported, or hardcoded to the firmware. For hardcoding, the values are entered in the Configuration.h file, the firmware compiled and downloaded to the controller.
e.g.
// J-Head Mk V with cartridge heater. IOS 20131002
    #define  DEFAULT_Kp 27.95
    #define  DEFAULT_Ki 4.22  
    #define  DEFAULT_Kd 46.25

Repetier Host has a convenient temperature plotting capability which illustrates what's happening as the auto-tuning runs. You will see it tuning (pict below) to a target temperature of 220 Dec C, although I later repeated it to a target temperature of 230 for ABS, and at 185 for PLA, noting the value set for each.. The nozzle should be allowed to cool completely before repeating a calibration.

The graph shows the calibration process in action. The power is first applied fully, then as the target temperature is reached it is cut, then applied in cycles, reducing a little each time. The power is shown as % over time in Green, and Temperature plotted in Red. The concluding values and finishing message is also shown in the picture below.

After writing the new PID values to the firmware I set a target temperature and turned the heater on. The graph below nicely illustrates the rate of heating, climbing quickly on full power to well over 200, then PID Control cuts in within 10 Deg of the target, set in this firmware line "#define PID_FUNCTIONAL_RANGE 10",  and from there you see the temperature curve climbing again but quickly smoothing out to the target temperature. Also visible is how the power delivery settles to modulate at a much reduced level, maintaining the target temperature nicely (green graph below.). The red curve drops down when the heater is turned off.
Finally, for comparison purposes I generated the same graph on my older printer, with it's Gen6 Controller, J-Head IV Extruder and 5.6 ohm power resistor. See picture below.
There are a number of aspects to compare, the rate of temperature rise and time to reach target temperature, the draw on power, the quality of PID control. There are explanations for the difference in each comparision, but one major conclusion... my new set-up is significantly better in all respects and I look forward to printing with it!

As always, thanks for viewing!
NumberSix

Sunday, September 29, 2013

Active cooling of J-Head insulator...

Construction of my self-build Mendel90 continues. Recently my new J-Head hot-end arrived, the final part of the jigsaw! Experience from my other printer has taught me that active cooling beneath the x-carriage has a number of positive benefits. Placement of a small fan that directs cooler air horizontally beneath the x-carriage causes a disruption to convected heat rising from the hot-end, preventing a temperature rise in the x-carriage that might cause deformation if overheated. It also cools the PEEK insulator on the J-Head which then maintains a short thermal transition zone, essential to prevent jamming. (There is a good illustration and explanation of thermal transition zone here on Nophead's blog.)

The current (at time of posting) Mendel90 x-carriage design didn't have a mounting point for such a fan. I had been designing a clip-on fan bracket when I saw Goopy's x-carriage modification to take a direct drive 1.75mm extruder, which included an under-carriage 40mm fan mount. Goopy's x-carriage wasn't suitable for me as he had also altered the carriage opening and extruder mounting-hole positions. So I imported the original x-carriage stl into Sketchup and modified it to meet my fan mounting needs. I also included M3 nut-traps into the design, which makes fitting the fan much easier, especially after the carriage is fitted to the printer. Goopy's lower shroud (half ducting) was of use as it directed the air flow above the stock cooling duct.
Illustrated above is the design change to the M90 x-carriage. 40mm fan mount. Design shared on Thingiverse.
Photo above/below shows first fit of 40mm fan and half-ducting.


Photo below shows new J-Head V in position. 

Below is a view from beneath the x-carriage, showing the new fan in position (right of pict) and the existing larger fan ducting for cooling the work. The half ducting on the new fan redirects air nicely up and over the larger ducting.
Finally below, a side view of the new fan mounted in position. It sits flush under the x-carriage resulting in no change in the length of the the carriage.

Controlling the fan:
The fan takes it's power via the ribbon cable to the x-carriage. The Mendel90 design has spare capacity on the 20 strands of ribbon cable that run to the x-carriage. I have the fan turning on/off automatically from the the Marlin firmware. A pin on the Azteeg X3 controller board becomes active when the temperature of the hot-end rises above 50deg C. This is all set is the ConfigurationAdv.h tab of Marlin (Section shown below.)

// Extruder cooling fans
// Configure fan pin outputs to automatically turn on/off when the associated
// extruder temperature is above/below EXTRUDER_AUTO_FAN_TEMPERATURE.
// Multiple extruders can be assigned to the same pin in which case 
// the fan will turn on when any selected extruder is above the threshold.
#define EXTRUDER_0_AUTO_FAN_PIN   5 //IOS 20130914 //-1
#define EXTRUDER_1_AUTO_FAN_PIN   -1
#define EXTRUDER_2_AUTO_FAN_PIN   -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED   255  // == full speed 

The benefit of this is the fan operates automatically under firmware control, and I don't need to add any start/end g-code to drive it. It remains on after the job has finished, but automatically shuts off once the nozzle temperature has dropped below 50, or some other temperature specified in firmware section above.

Thanks for viewing!
Comments and questions welcome.
NumberSix

Wednesday, September 11, 2013

Cooling Fan speed control via Azteeg PWM Fan Pin Output

The Azteeg X3 Controller has four low powered outputs which can be used to drive fans or even LEDs. These outputs can be controlled by the host-software or called on when printing by gcode commands inserted by the slicing software. Marlin firmware is configured to call on the Azteeg pin D4 when the M106/M107 (Fan On/Off) gcode commands are used. (Azteeg full wiring diagram here.)

I'm currently experimenting with the Azteeg board controlled by Reperier-Host software and Marlin firmware onboard. That combination enabled immediate testing of the newly wired (two-wire) cooling fan on my 'scratch build' Mendel 90. But I soon found that despite the suggestion of possible speed control by Repetier-Host, with it's 0% - 100% Fan Output slider, the fan would only run when the slider control was near or at 100%. A little more research revealed that the simple two-wire fan could utilise the PWM (Pulse Width Modulation) Fan Pin Output of the Azteeg board if two simple common components, a capacitor and diode, were added to the fan circuit. I had to try it! (There was an article on the Bukobot site which gave full details on this hack: http://bukobot.com/pla-print-cooling-fan Credit and thanks!)

I first bread-boarded the two components to test that it would work... and it did! This basic set-up, the 10uF capacitor in parallel with the fan wires, and the common diode (1N4148 / 1N914 diode) in series on the negative wire provided the speed management of the fan.


I then placed the components on my stepper mounted connector board and wired them in. Pict below:

The following short video best shows fan speed control being tested.

The true benefit will come when I enable Auto Cooling within Slicer and the commands to switch on/off, and change cooling percentages are applied to the sliced gcode and called on during the print job. Slic3r now contains such settings... see screenshot below:

Other controller boards may also provide PWM Pin Output, and this simple two component addition to the  fan wiring gives great control of print cooling when combined with the Slic3r Auto-Cooling features.

Hope you found it of interest.

Thanks for viewing!
NumberSix

Saturday, September 7, 2013

Azteeg X3 controller wired up (Mendel90)

Did I mention I'm building a Mendel90? :-)

I've chosen the Azteeg X3 3D Printer Controller from Panucutt as the motherboard. It's a full featured controller. I've wired it up and downloaded Marlin firmware to it. With some tuning it's performing basic movements. It's coming together nicely. There's lots more to say on the topic, the experience of installing this controller on the Mendel90 and combining it with Nophead's Marlin, but for now just a photo. Most of the day was spent wiring things up and doing some basic movement tests. It is coming together nicely.

The ribbon cable arrangement to the x-assembly give a neat wiring solution (Nophead's design). Via a 20 strand ribbon it's possible to drive the x-motor, extruder motor, hot-end (taking up 6 wires), control two fans (one for cooling the PEEK on the J-head, one for focused cooling of printed plastic), the hotend thermistor and x-endstop. It took some head scratching but I got it all wired up today.
This shows the wiring to the x-motor (on the right) and the x-endstop being readied for soldering to the ribbon cable strands. The joints are then neatly concealed in the x-motor housing.
A side view of the Mendel90. The electronics and powersupply are hidden in this corner.
That's it for now. More on the construction and set-up experience to follow.
Thanks for viewing!

Thursday, September 5, 2013

Extruder wiring connections (Mendel90)

I'm building a Mendel90... A dimension of the prescribed design utilises a ribbon cable to bring power to the hot-end, extruder motor and fan(s) and carries the hot-end thermistor reading back to the printers motherboard.

The Kit version of this printer, designed and sold by Chris (Nophead), has quite an involved connector assembly between the x-carriage and the ribbon cable that connects to it. In scratch building the Mendel90 I came at this connector fresh and have gone with my own take on it, though the essence of the design, a ribbon cable to the x-carriage, is maintained.

I've built a functioning prototype using various connectors from my junk box. I'm using the screw-down connector for heavier wired hot-end power, and simple push-on connectors for the motor and fan(s). The under side has a spaghetti of wires soldered to the various pins.

 Two longer bolts replace the motor bolts, allowing the connector block to be mounted on to the back of the stepper motor. A piece of plastic is placed between the board and motor for extra insulation on my prototype.

You can mix and match connectors to your own preference. The screw-down ones are definitely a good idea for power to the heavier duty wiring on the hot-end, and multiple strands of the ribbon cable are needed to carry power to it. The push-on connectors are fine for fans. The 16 pin ribbon connector might do with some kind of retaining clip to prevent it working loose when printing. We'll see how it goes!

I don't have access to PCB etching or any way of producing a more professional PCB connector block, so this is probably as far as I'll take this idea. I'm happy to share it so others might evolve it if they wish.

There's lots more to blog about with the Mendel90 build. This is just to get things moving again!

Thanks for viewing!
NumberSix

Sunday, January 27, 2013

Design and print a funnel (with basic Sketchup video tutorial).

In the winter time we refill the bird feeders regularly. Invariably I'd get bird seed all over the floor as I'd try to refill the container from a large bag of seed, so I decided to resolve the issue once and for all, and have some 3d printing fun along the way!
The solution was a funnel with a wide exit, and a shoulder that would enable it to sit securely on the top of the container being filled.
Didn't spill a single seed!

I drew the funnel in Sketchup, using a simple construction method, first drawing the cross-section of the desired shape and then using the "follow-me" tool to rotate that shape about a vertical axis. I've also been playing with various screen-recording tools, to find ways of enhancing blog presentations. As an experiment I've recorded the Sketchup drawing technique in "screencast-o-matic" and shared it below.

Finally...
The birds were very happy with the refilled feeders!

Thanks for viewing!
NumberSix


Monday, January 14, 2013

The Penrose Triangle Illusion...

The Penrose Triangle...

It's a great illusion of impossibly stacked little cubes, and readily printable, believe it or not! The STL file and full detail is posted here on Thingiverse. Credit goes to Jonathan Wong for explaining how he constructed the printable version of this illusion and providing instruction on how you can draw your own version. Some additional reference to the famous triangle may also be found here.

The printing challenge:
This is a challenging print in a number of respects. The nine "inverted pyramid shapes" have a very small area of contact with the print bed and don't actually support each other until over halfway built. You need to have laid down a good first layer, well bonded to the print bed. Even then, what may happen is the print head will clip any slightly curling edge as it moves about, and knock one piece over, destroying the entire print. However, there is one version of the STL file in the Thingiverse share that has a bracing piece between all the pyramids to give greater support on the print bed.
Above is what happened when my print head clipped off a slightly curled edge of one of the pyramids. I had to abandon this attempt. 

For my second attempt I used a Z-Lift feature in Slic3r (the STL slicing package) which raises the print head by a prescribed amount as it moves between printing sections, lowering it again to resume printing. (Z axis lift is discussed towards the end of this older post here by RichRap.) This feature worked ok but as the object grew there seemed to be degradation of print quality with a lot of gapping in the print, even though I had only changed one parameter  i.e. the z-lift. My observation was that this z-lift may have been allowing a little bit more time for retraction to take place and plastic would not resume extruding until a good length of print path had been travelled. While my retraction settings may not have been 100% initially, this setting seemed to exaggerate the problem. 

Rather than spend more time examining g-code and tweaking settings I said I'd give Kisslicer a go at slicing this object. I know from past use that Kisslicer prints sub-sections to completion before moving on to the next sub-section on the same layer; meaning it prints perimeters then in-fills that section before moving on. In contrast, Slic3r prints perimeters then returns later to infill after completing all perimeters. With an object like this, with its nine base triangles, Slic3r does a lot of zipping around in contrast to Kisslicer. My hope was that Kisslicer's approach to printing would decrease the risk of knocking one of the pyramids off its base, and the less zipping about would result in less retraction movements, maintaining print quality.


Kisslicer actually printed the object to completion first time (above photo), but my choice of settings produced some quality issues also. Kisslicer has different Retraction terminology, with what it calls Destringing (Suck & Prime), a whole other evening of experimenting! The "Destringing" settings I had, resulted in quite a scraggy print and left me with a bit of clean-up to do, quite the opposite of the gapped print Slic3r produced with too much retraction.

Finally, here's a short video clip showing it rotating in and out of its illusion position.


Tech Notes and Conclusions:
The object was printed in ABS plastic with a layer height of .3mm and a layer width of .45mm. It was printed on a RepRap style 3d printer, with 3mm filament fed to a .5mm j-head hotend, on a heated bed. Gentle cooling by a low powered fan was used across the object once it climbed off the print bed. This is not my typical practice when printing in ABS (usually no fan), but helped strengthen the narrow walls as they grew.

This object has very little surface area in contact with the print bed, has many thin walls growing to points, and leaning at angles. At its default size it's a challenging print with a .5mm print head nozzle. It might be worth scaling up to a larger size or else using a finer nozzle if you have one.

I'd be interested to learn how others may have got on printing this object. If you have any tips or even quentions then feel free to add a comment below.

Regards and thanks for viewing!
NumberSix