Welcome! Log In Create A New Profile

Advanced

Building a CoreXY and have some issues

Posted by davedavedave 
Building a CoreXY and have some issues
April 15, 2016 05:41AM
Hi, so I decided I wanted to build a printer. I bought a lot of material over the last year and finally got down to finishing the design and building it. I can put it together now if I wanted too but before I did that I wanted to check movements in pronterface. before I get into the issue I will tell you my equipment

12V 30A PSU

Nema 17's x 5 (1 extruder 4 axes: 2Z 1X 1Y)

Ramps 1.4 + Arduino mega 2560

4 Stepper drivers DRV8825

14-22 AWG wires (the thicker gauges used on psu to board while thinner go to nema's etc..)


some fans and other things that don't matter as much as whats listed above.

my issue is that once I uploaded the most recent Marlin FW onto the Arduino, I tried it on pronterface and at first I got a few endstop messages like "hit endstop: X0.01" for example. so I don't know what I did but I tried moving the motors after either clicking the endstops with my hand and bam the motors started moving. the thing is that they were moving slow, so I was wondering if that was normal, I touched the heatsinks one by one to check the temp and remember how it felt. then I boosted the voltage intake from aroujnd .8A to 1.3A and the motors started moving a tad bit faster which wasn't what i wanted to see. so i went back into the Arduino IDE and changed the min/max movement of something like that from what i had set before (70) to something higher like (100). uploaded it to the board once again and tried to move the motors. this time the problem with moving them came up. I'm really tired so i didn't want to bother with figuring out what was wrong. so i clicked the 10mm x movement option, then the 100Y mm option and finally i clicked the homeY option and the printer moved, and this time it was faster but I'm not sure if it was a good speed but at least it moved. i then clicked the Xhome and it moved yet again and at the same speed as the Yhome. both looked like they had moved around 5-8mm fast. or at least it sounded fast. anyway, during this whole experiment i was checking the heatsinks to see how hot they were getting and to make sure they didn't blow like another one i accidentally fried because i raised the voltage too high( this happened yesterday and not during these test so there is no correlation, just for laughs). As i kept my finger on the heatsink, i noticed it became pretty hot. i could keep my finger on it but it was uncomfortable. after a few more moves the heatsink was too hot to keep my finger on but not to the point were it would burn me yet. the current flowing through was rated at about 1.3-1.5 on the X and Y axes. the Z axes was working and was only warm and it only had about .7A flowing to it. although under load i may have to raise it.

Ok, so what i want to do now is find out if the heat emanating from the drivers is normal, and if they could get hotter without blowing like my other driver. or is there a setting that i might have not input correctly or might have missed. (by the way, i have a 80x80 mm fan pointed at the ramps blowing from the side. the driver still gets hot which worries me. but this is my first build so i have no clue how hot things can get.


Also, in the config.h i opted to use the dummy thermistors for both hot end and heat bed. so i could check the motors instead. i didn't have the 12v/Gnd connections in place to avoid unnecessary wiring that i wasn't testing. only the motors, the drivers, the endstops and 1 fan were connected.


Thanks for your time whoever reads this.
Re: Building a CoreXY and have some issues
April 15, 2016 06:36AM
Quote
davedavedave

Ok, so what i want to do now is find out if the heat emanating from the drivers is normal, and if they could get hotter without blowing like my other driver. or is there a setting that i might have not input correctly or might have missed. (by the way, i have a 80x80 mm fan pointed at the ramps blowing from the side. the driver still gets hot which worries me. but this is my first build so i have no clue how hot things can get.

ok, so you've fallen into the trap set by the people who, on the very first reprap, didn't read the datasheets for the ICs, bought the "experimentation" kits for the DRV8825 stepper drivers which are in ABSOLUTELY NO WAY intended for production usage, and then of course people copied what they'd done - again without reading the datasheets.

the datasheet for these DRV8825 stepper ICs *SPECIFICALLY SAYS* that there is a ceramic insulator at the top of the IC packaging, and it *SPECIFICALLY SAYS* that the thermal pad on the *BOTTOM* of the IC is where all the heat goes, down into the PCB, whereupon it is expected to radiate out through a large bit of copper that you are *SUPPOSED* to design in on the PCB.

all of this is CLEARLY STATED in the datasheet and the app notes for the stepper driver ICs.

now, if some idiot designs a PCB only 16x16mm high, how the hell do you think that heat is going to distribute out? and if there is an *INSULATOR* built-in to the top of the IC's package, how the hell is any kind of heat-sink, no matter how large, *ever* going to be effective?

so unfortunately you've fallen into a trap set by people who haven't really read up on how these ICs are supposed to be used. yes, sure, you can use fans, etc. but the stepper ICs will, at some point, fail due to the extreme thermal load being placed on them. it's not the high temperature per se that's the problem, it's the stresses caused by *changes* in the temperature which, due to thermal expansion, result in the IC's packaging cracking.

"luckily", *when* those ICs fail, they're on "modular" boards so you can of course replace them.

bottom line, "yes" it is "normal" for them to get so hot... but only because the people who've "designed" the boards haven't followed the recommended instructions from the designers of those ICs.

for this reason i only ever buy single-board designs. my mendel90 has a melzi, i got a Rambo V1.2g (but it turned out to have voltage-divider circuit issues), i'm now the proud owner of a Duet 0.8.5 which needs completely different build firmware / build environment (non-arduino) so i wouldn't recommend it for your very first purchase.

basically i would suggest you stick with what you've got for now - it works, don't break it - don't push it too hard, maybe get some extra fans, try to make sure there's lots of airflow on the underside of those (tiny, useless) PCBs as well as on the top, and you'll do fine.


Also, in the config.h i opted to use the dummy thermistors for both hot end and heat bed. so i could check the motors instead. i didn't have the 12v/Gnd connections in place to avoid unnecessary wiring that i wasn't testing. only the motors, the drivers, the endstops and 1 fan were connected.
[/quote]

yeah i use the "M302" command which permits cold extrusion - just type that into the box in the bottom right corner of pronterface, but for goodness sake don't actually try to stuff (or retract) filament into the hot-end whilst it's in "cold extrusion allowed" mode, you'll break things. but that way you don't have to mess about with "dummy thermistors", at least for the hotend.

the endstops you can turn those round in config.h - i've had to do that for my setup:

const bool X_MIN_ENDSTOP_INVERTING = true;

go grab yourself this page, and "pin" it in a browser tab, you'll need it a lot: [reprap.org] basically you can test all the end-stops with a g-code command that you'll find listed there, it reports the status of all (3? 6?) endstops. you can then operate them by hand, hold them down individually whilst running that g-code command to see if they work.

also if you haven't got MAX endstops, set the "disable" #define which is a bit further down.

what else.... when it comes to xyzextruder calibration, you want to google "marlin firmware configuration" or somesuch... let me find the page... here you go: [solidutopia.com]

basically look for the "movement settings" section, it's clearly-laid-out, you should be able to do the calculations based on your setup and trust them. i tried measuring the x-y and got it down to 80.3 but then i realised, duh, i might as well use the formulae and that of course came out to exactly 80.0 so i went "duh" and used that smiling smiley so, what i suggest is, use the formulae, make the calculations, do a move of 10mm or so and measure it accurately: if it comes out right, great. if it's off by a huge margin, check what you put into the formulae. you're almost certainly using the default 1/16th micro-stepping rates btw. and you're almost certainly using 200 steps / revolution motors.... but *CHECK THE DATASHEETS* on the NEMA17s that you purchased, ok? you should have done all this in advance, btw.... smiling smiley

if you're making a 3d printer, then basically you're an engineer, now, so you should be following best engineering practices, and that means doing the research, reading up on datasheets and so on before beginning. only occasionally do you "wing it" or design something based around what you've got lying around or have already bought. you're now in the latter category. you'll do ok smiling smiley
Re: Building a CoreXY and have some issues
April 15, 2016 06:43AM
Hi,

Normally i do the next steps to configure each of my steppers:
-use a voltmeter, and configure the stepper with 0.6/0.7v
-increase the voltage until the motor start to move well (use the motor noise to find the sweet spot)
-add +0.1v to the steppers to be more stable.
normally is necessary a voltage between 0.7 to 0.9v. With the configuration the motor and steppers will run cold (no more 50ÂșC).
When a steppers was to much voltage it start to make a very high pitch noise e get hot very fast.

One more suggestion: Try repetier firmware, in my opinion is a lot better, great stability, online configurator, lots of features, can change firmware configuration on the fly and repetier server. Marlin overall is well tested but is a big mess.
[www.repetier.com]
Re: Building a CoreXY and have some issues
April 15, 2016 03:07PM
Hey thanks for the extremely helpful and in depth post. I will be reading and rereading that until everything sinks in.

I didn't take into account the thermal spread and lack thereof issue. Its pretty hard to get airflow under it due to capacitors and pins in the way but I will still add that extra fan(luckily I bought quite a few just in case). I will remove the lCD screen because I do not really need it yet. and apparently it can cause a bit of an issue with corexy's. I will end up getting a smaller lcd. I also removed the max endstop last night because I had missed that. good think you wrote it in just in case. the nema data is right next to me. really glad I found it. I was looking for it for the last few days so I could finally wire these guys. luckily I used the multimeter method beforehand.

I used reprap calculator. these drivers are stated with 1/32 microstep capability. should I place them at 1/16?. I had them at 1/32 In the calculator with 20 tooth pulley etc.

the motors are the 200 steps/revolution. and I rarely wing it when I'm working with potential fire hazards hot smiley grinning smiley

overall thanks a lot! hopefully people can see this answer for a long time. it will most definitely be of use to many in the future. or at least until people invent software that does everything for them. wont that be boring..

if you have anything else to add, please do!
Re: Building a CoreXY and have some issues
April 15, 2016 03:11PM
Ok, I will work on those motors today to get them working and not heating up. well the motors didn't heat up at all last night but the drivers did. I will lower the voltage. it is a Bowden setup as to reduce the load on the extruder carriage.

I have been reading about repetier and will do that for my next corexy build.

I am also going to buy either a 32bit board. leaning towards the azteeg and smoothieboard. but as ive read before, the only functionality advantage is mainly speed and quality. the quality is the tiebreaker there. speed not as important to me. although its nice to have.
Re: Building a CoreXY and have some issues
April 15, 2016 04:04PM
EDIT: Ok finally got my printer moving smoothly. before it was all weird and janked up. but after messing with numbers on the marlin I got moving how I wanted it. now this is what I might need some advice on. so far it homes properly on the XY axes although it hits X endstop then travels about 40mm opposite of the wall it hit and then goes back and hits it again and finally stops. then it does the same with the Y axis. least its homing properly. I don't think it is that double endstop for accuracy safeguard since the travel distance is too far once the endstop is hit the first time.

anyways another issue is the Z axis. this thing I have left for last due to focusing on the XY axes. the bugger wont move one direction. so if I invert the motor, it moves only one direction. so if it moves up it wont move down but if I invert it, it will move down but not up using pronterface.

Issue #3: Whenever I tell the printer to move 1mm on either X or Y axis it moves about 10(haven't measured it yet because I am trying to figure out a way to solve the issue) if I hit 10 it moves over 100mm. and if I hit 100 it moves for a while. luckily my belts aren't tensioned to the point where damage would be caused. so I usually don't freak out like with my other printer where if it goes over the boundaries it makes a loud noise.


This is the end stop config I have
// coarse Endstop Settings
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

#if DISABLED(ENDSTOPPULLUPS)
  // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
  //#define ENDSTOPPULLUP_XMAX
  //#define ENDSTOPPULLUP_YMAX
  //#define ENDSTOPPULLUP_ZMAX
  //#define ENDSTOPPULLUP_XMIN
  //#define ENDSTOPPULLUP_YMIN
  //#define ENDSTOPPULLUP_ZMIN
  //#define ENDSTOPPULLUP_ZMIN_PROBE
#endif

// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS




this is my homing speed and movement speed config. maybe it has something to do with my travel/length traveled speed

#define HOMING_FEEDRATE {500,500, 4*60, 0}  // set the homing speeds (mm/min)

// default settings

#define DEFAULT_AXIS_STEPS_PER_UNIT   {2500,2500,5120,1000}  // default steps per unit for Ultimaker
#define DEFAULT_MAX_FEEDRATE          {300, 300, 3, 25}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {160,160,100,250}    // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot.

#define DEFAULT_ACCELERATION          1000    // X, Y, Z and E acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION  70    // E acceleration in mm/s^2 for retracts
#define DEFAULT_TRAVEL_ACCELERATION   50    // X, Y, Z acceleration in mm/s^2 for travel (non printing) moves

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK                30.0    // (mm/sec)
#define DEFAULT_ZJERK                 .8     // (mm/sec)
#define DEFAULT_EJERK                 5.0    // (mm/sec)

EDIT: 2500 steps per unit is way to much. but it moves like a normal printer would. except it travels way farther than it should. but if I put it at 160 steps it will hit the intended 10mm but really really slow. I am stumped. :/

Edited 4 time(s). Last edit at 04/16/2016 02:59AM by davedavedave.
Re: Building a CoreXY and have some issues
April 17, 2016 07:44PM
Quote
davedavedave
EDIT: Ok finally got my printer moving smoothly. before it was all weird and janked up. but after messing with numbers on the marlin I got moving how I wanted it. now this is what I might need some advice on. so far it homes properly on the XY axes although it hits X endstop then travels about 40mm opposite of the wall it hit and then goes back and hits it again and finally stops. then it does the same with the Y axis. least its homing properly. I don't think it is that double endstop for accuracy safeguard since the travel distance is too far once the endstop is hit the first time.

yes that's normal, the idea is so you don't get bored waiting for really slow homing, move-fast, click, go back and do it slower.

Quote

anyways another issue is the Z axis. this thing I have left for last due to focusing on the XY axes. the bugger wont move one direction. so if I invert the motor, it moves only one direction. so if it moves up it wont move down but if I invert it, it will move down but not up

yes that's.... ok it might be because you have Z_MIN_ENDSTOP_INVERTING = false, change that to true, but check beforehand, type "M119" in the bottom right corner, if Z endstop is enabled when it's not, invert it, check again afterwards.

Quote

Issue #3: Whenever I tell the printer to move 1mm on either X or Y axis it moves about 10(haven't measured it yet because I am trying to figure out a way to solve the issue) if I hit 10 it moves over 100mm. and if I hit 100 it moves for a while. luckily my belts aren't tensioned to the point where damage would be caused. so I usually don't freak out like with my other printer where if it goes over the boundaries it makes a loud noise.

#define DEFAULT_AXIS_STEPS_PER_UNIT {2500,2500,5120,1000} // default steps per unit for Ultimaker

yeah ya muppet, i _did_ say read that link about how to calculate the steps per unit smiling smiley try 80 - 2500 is like... monstrously-quick. you do need to do the calculations, the formula's in that web link i sent. you need to know how many teeth in the gears (probably 20), the pitch (probably 2mm, if you have GT2-20 the 2 is pitch, the 20 is teeth). steps/rev is probably 200, microstepping is probably set to the default of 1/16th, so try 80.

honestly - 2500 smiling smiley

about getting a 32-bit board, i just got a duet v0.8.5, it should be perfect for you - it's a little bit funny to configure, but i just converted mine so there are some configs for you to play with, see here [forums.reprap.org] dc42 maintains a corexy fork and he checks in the actual executables into the repository so you don't have to build them yourself, look in the Release directory, the source is all there, look him up on github ok? [github.com]

oh - one thing to definitely, definitely check: you might find on marlin that X and Y are mirrored. you CAN'T fix that except by turning one of x or y around, and moving either the x-stop or the y-stop to the OTHER end (if you want to keep them as "min" stops). as i CAN'T do that on my design, i set this:

#define Y_HOME_DIR 1

doesn't matter which one you pick - but basically it swaps (in this case) the Y min/max endstops around, and Y-homing goes to the 200 end instead of to the 0 end. i had to set all the endstop inverting to true, comment out all the "DISABLE_MAX/MIN_ENDSTOPS", and then i think what i did was plug the cable into the max-endstop port for Y instead of the min-endstop port.

basically that Y_HOME_DIR 1 trick will *SWAP* the max and min pin #defines (!!) so max becomes min and min becomes max.

but don't worry about all that unless you find it's actually a problem, ok? RepRapFirmware which runs on the duet 0.8.5 this was all a bit easier and more obvious.
Re: Building a CoreXY and have some issues
April 19, 2016 02:50AM
Heya. I ended up finding the out the problems to my issue about 2 days ago. The reason it was going slow is because I was using pronterface and the federate was about 100mm per MIN which is really slow. I have Dust(another forum member) to thank for that little tip. so that pretty much fixed the problem. now I just have to make sure the machine is moving the exact number of steps. whats great is that since I am going to be going Bowden style, I will print fast.

hopefully I can make this thing fast. the printer barely moves when the accel is set to 5000. so printing about about 160- 200 might be a cinch. but that's just a guesstimate. my other printer(bought) prints at about 60 and thing rocks like crazy(maybe due to the direct drive)

Edited 1 time(s). Last edit at 04/19/2016 05:27AM by davedavedave.
Re: Building a CoreXY and have some issues
April 19, 2016 05:55PM
Quote
davedavedave
Heya. I ended up finding the out the problems to my issue about 2 days ago. The reason it was going slow is because I was using pronterface and the federate was about 100mm per MIN which is really slow. I have Dust(another forum member) to thank for that little tip. so that pretty much fixed the problem.

yay!

Quote

now I just have to make sure the machine is moving the exact number of steps.

yeah do those calculations first! ... or, you could just move things and use a ruler smiling smiley the extruder you _really_ will need to calibrate properly, measure out 250mm of filament, then push it down the extruder tube (not the printhead! waste of 250mm of filament! waa!), and check that it's actually 250.0 mm. if not, divide, edit Configuration.h, and go.

Quote

whats great is that since I am going to be going Bowden style, I will print fast.

yehh, that's what i thought... and the extruder couldn't keep up. sooo thanks to Edvardas who mentioned that E3D have a "volcano" upgrade available with a 0.4mm nozzle, i tried that out and woo! the extruder's doing 35mm3/s of filament and the carriage at 350mm/s and the first print came out... ehh... useable. i have a few niggles. but, it means if i go slower i'll get reaally good quality.

basically what edvardas said to me was, the most you should ever expect a standard extruder to do is about 10mm3/s before things start to go wrong, which is abouuut 150mm/s - maybe you will get 12mm3/s. the E3Dv6 "volcano" upgrade, they turn the heat-chamber block round, so it gives the filament more time to melt. then you can easily run at 30mm3/s or higher.

the next upgrade to try is a flex3drive, that's on order so should be a couple of weeks. i looove the flex3drive, it's the best of what the bowden tube is trying to achieve, combined with direct-drive but then jason really _really_ went to town and added a 40:1 gear ratio using a worm-drive. i'm just really impressed so had to get one smiling smiley

Quote

hopefully I can make this thing fast. the printer barely moves when the accel is set to 5000. so printing about about 160- 200 might be a cinch. but that's just a guesstimate. my other printer(bought) prints at about 60 and thing rocks like crazy(maybe due to the direct drive)

haha yeah i put my mendel90 on cardboard because it was a nice table, and i'd sit there with the laptop going back and forth on the same bit of cardboard smiling smiley but, that way i was actually able to do 200mm/s (with a mendel90!) - noisy and funny, i loved it. sold now, my friend's running it at a muuch more sedate speed...

oh - do send us some pictures of what you made. is it an original design? if so, do consider putting up a page on reprap wiki, that'd be cool to see.
Sorry, only registered users may post in this forum.

Click here to login