OhmEye, send me a gift that I am going to use on my MendelMax2. It was something I knew he would be sending and it was something that made me really excited…
What could it be? …..
What makes these different than the ones pololu made, is that these got the hardware fix needed already done. This is needed for them to be drop-in replacements for the previous A4988/A4983 based drivers.
As you can see, another improvement is also the copper is extended from underneath the chip and out where a heat-sink can be put on, instead of slapping it on top of the chip, where the chip is not designed to be cooled from.
A little problem with the heat-sinks provided though… They are a bit too big.
Since my last post about my start and end G-Codes Slic3r has been updated, I found some ways of doing things I like better, so here my current are.
M106 S0 ; Make sure fan is stopped M104 S0 ;Cancel the M104 set by Slic3r M140 S[first_layer_bed_temperature] ;Start heating the bed up M104 S100 ;Start heating the nozzle to something non-plastic-melting while it homes G00 X-200 F10000 G00 Y-200 F10000 G00 Z-100 F10000 G28 X Y; home x and y M84 ;Disable all steppers G28 Z; home z G0 Z3 M84 ;Disable all steppers M84 S30 ;Set stepper timeout to 30 seconds M104 S100 ;Set hotend temp to something that wont melt the plastic M190 S[first_layer_bed_temperature] ;Set bed temperature and wait M109 S[first_layer_temperature] ;Set hotend temperature and wait G91 ;Make coordinates relative G01 E5 F60 ;Extrude 5mm G92 E0 ;Reset extruder position G90 ;Use absolute coordinates again
M140 S0 ;Turn heated bed off M104 S0 ;Turn nozzle heat off G91 ;Make coordinates relative G0 Z2 E-2 ;Move up 2mm and retract extuder 2mm G90 ;Use absolute coordinates again G01 X100 Y200 F15000 ;Go to dump area M84 ;Disable steppers so they dont get hot during idling...
After last batch of filament pulleys, I decided to try and use another technique to make the teeth.
So far I have just used a tap to make them, but the result of that is the teeth being a bit slanted.
This illustrate how the teeth got the same pitch as the tap used to make them.
Instead I used a mill to make the teeth instead, and the result is spectacular.
As you can see here, the teeth are more clean looking than before, almost shiny too, and what is even better, they are perfectly straight.
If you still think “ah, they still aren’t perfectly straight” then the picture must be fooling your eyes. Measured over 100mm the lathe is 0.01mm out of alignment, this groove is about 4.4mm wide.
But what is different? The difference is that before all the teeth was all made in one go with the tool and pulley both spinning at the same time. With the new ones each tooth is milled on its own, then the pulley is rotated a bit before the next one is milled, and here is how that looks…
As many I already know, I am a big fan of cable carriers.
This is also a thing that has annoyed me so much with my current prusa, because I haven’t been able to find a good way to put any cable carriers on it, but with this MendelMax2 build I am aiming in that direction from the beginning!
The first axis I am going to do this on is the Y axis. (Notice, my rail is not the one from the complete kit, so yours might look different)
To attach one end of the cable carrier to the axis I simply found a good place to drill the holes. The place you want to find is somewhere where the axis can move from minimum to maximum, with the shortest cable carrier possible, and without it getting in the way for anything. To do that you want to do it like this.
With the first end mounted like this, it will be able to go out over one edge of the printer without hitting anything. At the same time it can also go to the opposite extreme end without hitting anything, because the cable carrier is so short it will just curl up and get out of the way.
The next step is to get the wires through, this is done by simply drilling a hole and pulling the wires through, after that it gets more difficult because now it’s time to get the wires through the cable carrier itself.
If you look closely at mine you will notice mine is the completely closed type. This type is a lot harder to get the wires through because you can’t just put them in from one side which you can from the half closed type.
Now with the wires through we are ready to find the position where the opposite end should be fastened. To find this position you simply move the axis from one extreme end to the other a few times where you just hold the lose end with your fingers, then mark the spot where it looks right.
My printer is going to have a bottom where both the power supply, controller, step-down and so on will be securely mounted, so this end of the cable carrier will be mounted to that too.
At last you might be thinking why going through all this trouble, just for some wires… Well, there are a few reasons. Not only does it look much more clean than wires just hanging off, it also makes sure the wires only go where you want them to go. They will never get caught on anything, or get too close to some eventual hot parts you want them to avoid. But there is an even bigger advantage of these, and that is the wear on the cable. When you got a cable hanging free between two points, the wear is most often a lot higher near the two ends of the wire, that is where it will wiggle back and forth with the rest of the cable just hanging in the same arc. With a cable carrier you will spread the wear out to more of the cable and you will also be sure the radius it is bent in is never too small and could damage the cable.
Update, just to give an idea of how picky I am with this build.
In the earlier photo you can see the two wires for the heater is crossing on the way through the hole, that annoyed me so much I took it apart again just to straighten them, and to do that I also had to twist the two wires all the way through the cable carrier, just so they would lay parallel there too without twisting around each other.
This isn’t the worlds most complicated thing to do, but it makes the finished look a lot better.
The end caps can be found on adafruit‘s page, and will require a bit of hammering to get in, specially if you like me got thread in at the same time.
First post about my MM2 build, and here is one of the first things I am going to make different.
I am upgrading my MM1.5 to an MM2, so I have the plate set only, some of this will not be the same on a full kit, so some things might need changing because of that, other things I just want to change because that is what I do…
The first thing I am going to change is the Z lead screws, I got some with lower friction between the nut and screw and at the same time more straight than the ones I could salvage from the MM1.5 too. There are however also a downside to this, the downside is that the flanges on the ones I am going to use instead isn’t the exact same type, so they will not fit directly onto the ends of the X axis, but more about this in another post when I get to that.
But here is the problem, the MM2 got a bearing at the bottom to guide the lead screws (notice, if your lead screws aren’t straight, or if you can’t align them properly, then constraining them in both ends is a bad idea), and also to help lift the X assembly so the motor doesn’t do all the lifting. Another advantage of this is also the coupling connecting the lead screw to the motor can be stretched so Z could vary a bit depending on how much they stretch, this bearing will eliminate that potential stretching.
My problem was now the lead screws I got, they are turned down to a diameter of 7.9mm 10mm in, on the opposite end than the motor, where a 608 bearing (which is the one the MM2 use) is only 7mm wide. This makes the end of the lead screw rest on the extrusion instead of the bearing. This might work just fine, but I don’t like it.
Instead I am going to make this little device to replace the 608 bearing at the bottom of the Z lead screw.
This contraption consist of a top and bottom part, with a thrust bearing (51101) in between. The thrust bearing is made to handle this kind of pressure, and at the same time this also lifts the end of the lead screw up so it will rest on the top piece instead of on the extrusion.
If you have no idea what a thrust bearing is, here is a little description.
A thrust bearing is pretty much like a normal ball bearing, just instead with the sides cut open. This allows the top and bottom half to rotate freely even with a lot of pressure on them. If a normal ball bearing was used for this the balls would press against one side in the inner and outer ring instead of the grove it was designed to ride in. But even when normal ball bearings are not made to be used as they are in the MM2 it is no problem because the forces involved are so small compared to the load they can handle.
And here we are, ready to assemble!
The bottom part fits tight into the hole in the black aluminium part.
The thrust bearing then fits lose into the bottom part, and same goes for the top part.
When the bearing is put in and the top is put on, there will be a 0.5mm gap between the two parts with the thrust bearing lifting the load from the X assembly.
A while ago I received my Rumba board which is going to control my MendelMax2, and not only is it a pretty nice little board, it also got some extra handy features.
I have in other blog posts written about the functions I made to turn a fan on and off when the hotend got over a defined temperature or if any of the drivers were on, and the rumba is almost perfect for this!
Let’s have a look at the pcb…
Bottom in the center of the pcb you find HE2, FAN0 and FAN1. These are the ones we are interested in.
Since it is not marked on the pcb I will here bring the pin numbers.
HE2 = 6 FAN0 = 7 FAN1 = 8
As default the fan cooling the extruded plastic is set to pin 7 (FAN0), and we will leave it like that to (hopefully) make it less confusing.
Before continuing you need to have a look at what power supply you have connected to MAIN-PWR, if it isn’t 12V and your fans are 12V, you need to connect the pin-header between the center pin and PWR next to each of the three outputs. If you are using a 24V power supply, which are getting more and more common, you set it to 12V-Select instead. This sets the outputs to use the power from the on-board voltage regulator, which is 12V.
With the default fan on pin 7 we got HE2 and FAN1 left to play with, and that is exactly what we are going to do!
To the HE2 we will connect the fan cooling the barrel of the hotend, and to FAN1 we connect a fan which cools the stepper drivers.
Next step, which is also the last, is to configure the firmware.
These functions should be in both Sprinter and Marlin, but they are in different files. In Sprinter you will find them in Configuration.h, and in Marlin Configuration_adv.h
#define CONTROLLERFAN_PIN 8 //Pin used for the fan to cool controller, comment out to disable this function #define CONTROLLERFAN_SEC 60 //How many seconds, after all motors were disabled, the fan should run //This is for controlling a fan that will keep the extruder cool. #define EXTRUDERFAN_PIN 6 //Pin used to control the fan, comment out to disable this function #define EXTRUDERFAN_DEC 80 //Hotend temperature from where the fan will be turned on
This will turn FAN1 on when any stepper driver is activated, and leave it on for 60 seconds after the last has been turned off. It also makes HE2 turn on when the hotend temperature is above 80C and leave it on until it is below again.
This is a bit about how to set up and adjust the Marlin firmware to use my Cheap-O end stop sensor correctly.
For my Cheap-O endstop you don’t need the internal pull-up that can be activated in the firmware.
To disable the pull-up resistors you can comment them out like this
But if you are using mechanical switches on the other axis, and only got two wires connected to the NO and C pin on those, you will still need the pull-up for those. If you got mechanical switches as endstops elsewhere, you can instead disable the pull-up for just the Z axis by commenting this line out instead. (which can be found a few lines lower than the previous mentioned line.
#ifdef ENDSTOPPULLUPS #define ENDSTOPPULLUP_XMAX #define ENDSTOPPULLUP_YMAX #define ENDSTOPPULLUP_ZMAX #define ENDSTOPPULLUP_XMIN #define ENDSTOPPULLUP_YMIN //#define ENDSTOPPULLUP_ZMIN #endif
For the Cheap-O sensor to work correctly it must be inverted too. You do that with this line.
const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
The next thing we need to change is how much Z is lifting before touching down again on the homing procedure.
This is needs to be tweaked because the sensor got build in hysteresis and therefor need a bit more movement before changing it’s state.
The line you need to find is this
#define Z_HOME_RETRACT_MM 1
and it must be changed from 1mm to 2mm.
#define Z_HOME_RETRACT_MM 2
This makes the firmware lift the Z axis 2mm, after touching down first time, before touching down a second time.
Do not continue if you are not 100% sure of what you are doing yet.
Manual adjusting Z height in firmware
If you are having problems adjusting your Z0 (zero) height by hand you can adjust it in the firmware.
To do this you first need to uncomment
Which can be found in Configuration.h.
This enables the ability to offset the different zero points.
The next thing we need to do is to define how much we want to offset the Z0 point. To change that you need to find this line.
#define MANUAL_Z_HOME_POS 0
Which can be found just a few lines lower than the line enabling the function.
Now when we have found the line we need, and also enabled the function, the offset should be easy to offset, but remember it is the opposite of what you put in.
#define MANUAL_Z_HOME_POS 1
This will set Z0 1mm above the point the sensor got triggered at, so when you tell your printer to go to Z0 it will move down 1mm! If you scroll back up to the top of this page, you can see that this sensor got plenty of air between the trigger point and the pcb, so 1mm (and even a bit more) would not be a problem, but if you use a mechanical switch you got way less room to work with.
Also notice, if you do this wrong, or got less clearance than you think you got, you will crash your hotend into the printbed, because you tell it is is somewhere else, and if that is wrong it will do something wrong too. So if you are not 100% sure what you are doing yet don’t touch this, and instead adjust the height mechanically, or try tweaking the first layer height in Slic3er if that is what you are using. (This setting can be found under “Printer Settings > General > Z offset:”, this is safer to use since your printer still wont go below the Z0 height you set when you mounted and adjusted the sensor)
Quite some time ago I received my QU-BD extruder.
At first I had problems deciding if I wanted to try it or not, the reason for hesitating was because it was both good looking, and at the same time stupid looking, here is what…
- Good looking
- Insulation for keeping the heat shielded from various fans blowing air over the print
- Seemed easy to fit onto multiple carriages
- Filament drive wheel having flat teeth
- Short metal barrel between extruder and hotend
- Needing active cooling
- Idler pressing filament against drive wheel being just a bolt with a smooth end, which causes extra unneeded friction
But I ended up getting one anyways, because $49 (including stepper motor) isn’t that bad, even if it would totally fail.
First up, let’s have a look at that is in the package.
These are all the parts needed, which is not overwhelming and also looks pretty straight forward to put together. But let’s also have a closer look at the individual parts.
Filament drive wheel
This is the item in the package I was most worried about and as you can see on the pictures, the teeth where the filament is pressing against is also completely flat, I suspect it might have been better to just do nothing to the gear instead of making that groove into it.
After testing it a bit on some filament in free air it actually seems to grip it, but requires a lot of pressure to to so.
Instead of a ball bearing which many extruders use, this one just uses a bolt with a flat end instead.
This bolt concern me with two things, both the extra friction between the filament and bolt surface, and also that the end of this bolt actually isn’t flat, but instead a bit round. This round end will try to push the filament away from the groove, while the groove is trying to keep the filament at the right place. It might work, but my philosophy is always to design things to they help each other, instead of fighting each other.
Next thing on my table was the power resistor, which immediately made me shake my head.
The function of the resistor is to get hot so the hot part of the hotend gets heated up. To heat this up the heat from the resistor needs to be transferred to the hotend, and to do this you need surface contact, as much as possible. And as you can see on the picture, this resistor could not have a worse shape.
This shape as an american football would mean it only got surface contact on two small points, it might work fine if you fill the hole around it with exhaust putty, but why use a resistor with this shape when there are more suited available?
Last part of the items I am going to look at is the stepper motor.
To be able to compare it properly I decided to get the stepper motor from QU-BD too, and it seems to be a good one they decided to provide.
The specs is not that different from most nema17 stepper motors, but what worried me was the extra friction from the idler pressing the filament against the drive wheel, and also direct drive with the drive wheel mounted directly on the motor. These forces might mean some steppers would not be strong enough, but this motor should do the trick.
The assembly went pretty easy without any drama, but here is another look at the things that concerned me.
Filament drive wheel and idler
After putting the first things together we can now have a look at the two parts I don’t like the most.
The round ended idler ready to press the filament into the flat teeth on the drive wheel mounted on the motor.
Putting the drive wheel on the motor was not easy either, all bolts seems to be metric, except the bolt on the drive wheel. From the part list on QU-BD’s website they should all be metric, but no key in my umbraco set fit into it, either it was too big or too small.
Next assembly was the hotend, and as you can see, I decided to not even try to use the power resistor QU-BD provided with the kit.
Here one of my concerns also was the short metal barrel between the cold and hot part of the extruder. At the same time it is also connected directly to the plate using to mount the extruder to the carriage, so if this is made of plastic you really don’t want any heat to slip out there.
One of the things I really like about this extruder is how nice it looks with the insulation put on.
This instantly gives it a more professional look.
After putting it all together, this really looks like a nice piece of hardware. The wires seems easy to route, the entire thing is compact and does not feel like it is about to break in any way.
But does it only have the look, or can it actually do some work?
Getting it to work
When I tried tested it in ran into problems right away, my problem was I could not get the filament to go into the barrel leading down to the nozzle.
As you see here, the filament must be straightened out before putting it into the extruder, just slightly bending makes it miss the hole.
The thing that worried me the most was the grip on the filament, and while it seems to work it also seems to require more force than I normally use.
This filament is only 1.75mm in diameter, and to be able to grip it I had to tighten the bolt enough so it would be pressed into the drive wheel.
These are the marks from the drive wheel and it looks like it got a good grip on the filament, but at the same time I also had to turn the driver for the stepper motor up to overcome the extra friction.
The extrusion from it looked fairly smooth and consistent, but when feeling over the extruded plastic it felt like it was full of small waves. Before deciding on if it is the extruder, hotend, filament, or me being the issue I need to do some more testing.
Stay tuned for part 2
Now when these are getting into the hands of more and more people, it might be a good idea for me to actually write a bit on how to use it…
On the far right side there is the 2×5 pin header for connecting it to the ramps AUX-2 port. These pins must be soldered on so they point down to connect with the ramps port correctly.
The IN, D44, D59, D66 and D64 I recommend soldering so they point up for easier access.
The IN pins connect to the power supply directly to bypass the arduino and protect it from getting overloaded.
When connected to ramps the D44 even got PWM capability due to the ArduinoMEGA having pwm on D44-D45.
The mosfets on the board can handle 20A on one channel, but I only recommend a total draw of 3A on all pins. Meaning you can do 4x 750mA, 2x 500mA + 1x 2A, 1x 3A, 3x 1A, or what else you could fancy, as long as the total is 3A or less.