Here’s a quick and dirty guide to getting your motors working on a MakerGear Mendel Prusa 3D printer kit.
I assume you:
- installed your arduino software
- installed the Pronterface printer control software
- installed your copy of MakerGear|Rick’s version of Sprinter, and
- have flashed your Sprinter firmware to the RAMPS board.
If not, you may need to follow the steps in the “Getting Started Guide” (and followup comments) on the MakerGear Google Group.
1. Set driver pots for safety
With the ATX power supply switched off, and the USB cable unplugged, use a small screwdriver to gently turn all the stepper driver pots on the RAMPS board all the way counter-clockwise. Then turn them a quarter turn clockwise. (Do schools still teach kids to read analog clock faces?)
This will ensure you don’t fry your stepper driver ICs while setting things up. You may find later that you haven’t got enough drive to move the motors reliably, but that’s easy to tweak, whereas letting the magic blue smoke out of the ICs is expensive.
2. Check motor wiring (again). Yes, really.
Check that all your motors are wired with exactly the same colour sequence all the way from the motors to the RAMPS board. Red-Green-Yellow-Blue from left to right on the RAMPS board (with the USB port to the left). If your motors have different coloured wires, tell me and I’ll see if I can help.
3. Configure Sprinter (mostly) correctly
Look at “My Sprinter configuration.h file” on my blog. This file has the settings that make Sprinter work for me, though you still may have to change things like stepper direction and endstop details later if you find your printer is wired up differently to mine. And you’ll have to change the axis_steps_per_unit to get the extruder calibrated (also later).
The simplest approach is for you to rename your original copy of Sprinter’s configuration.h as configuration_original.h, and make a completely new configuration.h by copying and pasting the code in mine.
I got most of these settings from the version of Sprinter that MakerGear|Rick stickied to the MakerGear Google Groups forum. The default configuration.h file from github may have motor settings that don’t work for our specific MakerGear machines, due to things like the geared extruder being non-standard (better, but non-standard). I’m still tweaking my axis_steps_per_unit for my extruder, trying to get a perfect match for my very soft natural PLA.
Note that my file tells Sprinter that I’ll be talking to it at 250,000 bps. So you need the same setting in pronterface. Just make sure they match or you won’t be able to get pronterface to connect.
4. Connect with Pronterface
Plug the USB cable back into the RAMPS. Don’t turn the ATX power supply on yet.
Compile and upload Sprinter again if you changed anything in configuration.h, or created a new one from the contents of mine.
Check that you’ve got the right port selected next to the ‘Port’ button (check the port number in the device manager if you are using windows, sorry I can’t help with other platforms).
[Update: Oasis Vali kindly added the following:
…linux users can easily find their arduino port by first looking at the /dev/ directory, connecting the arduino and then checking the /dev/ directory again (command: ls /dev/). The newly added item after the connection is the arduino port (for me its something like ttyACM0)
Check that you’ve got the right speed set in the window next to the Port. This should be the same speed that you set in your configuration.h file (250000 if you are using mine).
Click ‘Connect’, and wait a minute or two for the connection response message.
If you don’t get a connection response, you’ll have to troubleshoot your connection. If you succeeded in flashing your Sprinter firmware to the arduino, the only likely problems are the wrong port, or the wrong speed.
Click on ‘Monitor Printer’ and you should start getting a constant stream of temperature readings. The figures should roughly match your room temperature (in degrees Celsius, of course, we’re all scientists here…)
5. Turn off all the motors
Turn on the ATX power supply. You may hear noise from the motors.
Click the ‘Motors off’ button in Pronterface, to turn off all the stepper motors. That’ll reduce the noise and anxiety and you can concentrate on one motor at a time.
6. Centre the build platform
After clicking the ‘motors off’ button, you should be able to easily move the x-carriage left and right by hand, and the y-carriage forwards and back likewise. If they don’t want to move, you’ve got a physical construction problem, before you even worry about electronics.
Move the y-platform and the x-carriage by hand so the nozzle is roughly in the centre of the y-platform.
7. You can’t go home (yet)
Avoid the home buttons like disease-infested bunny rabbits at this stage. Their cuteness will make you want to touch them, but it’s not healthy. Your end-stops are quite possibly set up wrong either on the machine or in the configuration file, and you will want to fix some stuff (like homing speed) before testing the endstops.
The default homing speed is FAST! Having your printer head charging full speed off the end of the build platform, banging into things in horrible grinding shudderiness is no fun at all.
If you insist on pressing a home button (don’t!) just because you hate being told what to do (never take up skydiving!) you’ll have to quickly switch the ATX power supply off to stop the noise and avoid damaging stuff.
Or you can press the reset switch on the side of the RAMPS board if you can get at it without losing a finger. You Have Been Warned.
8. Gentle baby steps
Clicking on any + or – x, y, or z button will turn on only that motor, and it will try to move by the amount on the button. Try the +1 and -1 buttons first, as they move enough for the direction to be noticable but not enough to damage things.
Test one axis at a time (x, y or z), and press ‘Motors off’ before starting on the next axis. That way you can hear the noises the motor makes, and get a sense of what is happening.
You shouldn’t need to send M-codes to check the motors; – the x, y and z buttons in pronterface will show you everything you need to know.
Make a list of which direction each motor moves the nozzle relative to the printbed, so you can tell if any of the motors need their direction inverted in the Sprinter configuration.h file. For example, if you tell the x motor to move +1 and it moves the nozzle in the minus direction, you need to change INVERT_X_DIR in configuration.h.
If you’ve followed all the above steps and fixed anything that didn’t do what I said it should, the motors should move.
If one of the motors won’t move (it just sits and hums or sings) and you really have fixed EVERYTHING I’ve talked about above, maybe you need a little bit more drive from the stepper drive chip. You probably don’t. The MakerGear kit is composed of good parts, and if put together carefully it should not need much drive to make the motors move.
So, run through all the previous 8 steps again. Pay really close attention. Think about whether what you are seeing really matches what I’ve described. Don’t take shortcuts. Don’t think you know more than me (you do, I’m sure, but right now pretend I’m right).
99.9x9beta (don’t do this until all else is perfect)
If you really must have more power for a motor:
- Turn off the ATX power supply (to de-power the stepper motors)
- Click ‘Disconnect’ in pronterface (because you’re about to unplug the arduino)
- Unplug the USB cable (so there’s no power on the arduino, in case you drop the screwdriver or short some pins out.)
- Turn the relevant driver pot up a tiny amount. Less than an eighth of a turn. Gently. Remember the pots are x,y,z from left to right at the bottom of the board, and E on its own on the top row.
It is normal for the heatsinks on the driver chips to get quite warm, but not too hot to touch. The motors may get warm if you print for a long time. Motors have a lot of thermal mass, and it takes a while to heat them up, so the driver heatsinks are a better warning of using too much driver current.