Monday, 31 March 2014

Movement at the Station

Between moving house, recovering from an injury and (I'll admit it) some good old-fashioned procrastination, my ORD Bot has been sitting around and gathering dust for a few months.  A couple of weeks ago I decided it was high time to look it over again, see what needed to be done and continue with the build.

In my last post I described the issues I was having with my extruder, a 3D printed peristaltic pump design. I tried printing out some shims to see whether I could get the pump to work, but without luck. In the end I decided the best option is to work with a commercial product, which is tried, tested and has particular types and brands of tubing which are guaranteed to work with it. To that end I bought a pump from Adafruit. The best approach will probably be to remove the DC motor and attach a stepper motor.

But that's in the future - I decided that before messing around with the extruder again, it was time to get the machine moving.

The first step was loading firmware onto the RAMPS board. There are many flavours of RepRap firmware, but it was suggested a while ago that I use Marlin, because it's specifically configured to use with an LCD display. There are also a bunch of people at my hackerspace who use it. So I went in with my printer and laptop and asked for help - and by help I mean I got a couple of hackers to configure the firmware while I watched and asked questions. It was really important to take this step back, because I was able to get away from my frustration and reservations, and actually learn about my printer and how it works.

My main take away was that firmware isn't as intimidating as it might seem. The Arduino IDE is used to open the firmware, configure the settings and then upload it to the RAMPS board. I expected that upon opening Marlin in the IDE I'd face an impenetrable wall of code. In fact, there are plenty of explanatory notes and a lot of the terminology is common sense once you get your head around it:


I was also daunted by the number of tabs, each of which deals with a different aspect of the firmware, but it was explained to me that I only have to worry about the Configuration.h tab.

I still have A LOT to learn, but I'm now much less anxious about going forward. At the end of that first session, the endstops were all connected and the minimum limits set. The printer and my computer were connected and communicating, so I could control the movement of the axes through my printing software:



This was incredibly exciting! But it also brought up some other issues which needed to be dealt with.

The most pressing issue was that the z-axis wasn't moving properly. The rods that the extruder carriage moves on weren't turning evenly, were stalling, and after a certain point would move the carriage up, but not back down. My partners in crime decided that the best approach was to loosen the two z-axis stepper motors (which the rods are attached to), and move them around until the rods lined up correctly. This, and a decent quantity of machine oil, helped a little, but there was still some sticking. In the end it turned out that one of the z-axis stepper motors was malfunctioning.

This was pretty much unforeseeable. Stepper motors malfunction extremely infrequently, and it's not an option that would usually be considered. Luckily, a guru at the hackerspace recognised the grinding noise my z-axis motor was making as a sign of a short circuit. Even more fortunately, I had a spare motor which I'd bought for my extruder, so we were able to fit that. I now have four working motors and a fairly smooth movement on all axes. We've also begun rewiring the printer, shortening all the wires, running them through the frame so they're out of the way, and making sure all the connections are intact:




Also, check out the new, finger-friendly handle - it's actually a shopping bag holder from Daiso!

From there, I have a whole bunch of configuration to do, including:
  • Setting the maximums for each axis - the endstop settings currently define where one end of each axis is, but not the other yet.
  • Determine and set the steps per millimetre - so that the distances the firmware thinks it's moving each axis are the same as the actual distance they're travelling.
  • Set the feedrate - so the printer knows how fast each axis can move.
And after that I can start thinking about the extruder again...

No comments:

Post a Comment