New build in Sussex, UK

Hi everyone,
I’m a software engineer, radio control flying enthusiast and ex-Robot Wars guy, building an MPCNC mainly to cut foam board to build Flite Test models, and probably milling balsa and plywood parts occasionally, and hopefully other projects as they occur - I really like the multi-purpose nature of this machine.

So far I have steel conduit from Screwfix, bolts from the local fixing shop, bearings that claim to be ‘ABEC-9’ but were £3 for 10, and am most of the way though printing parts on the cheapest printer I could find on ebay.

3D printing has been a bit of a steep learning curve and I probably should have paid a bit more for a printer, as the bed is bent and only heated in the middle, so it won’t print the XYZ plate without the corners peeling up. There’s a new bed on the way, and some new rails as I’m sure I shouldn’t be able to rattle the bearings.

I’m still waiting for a RAMPS, motors and belt to arrive, and some more filament, but I have some rollers sliding along the conduit, and all the legs assembled.

Oh, I struggled with the M4 bolts in the legs. Nylock nuts just needed too much torque for either jamming a screwdriver alongside the nut, or the printed nut inserts. Instead I discovered that the nut sockets are 8mm across the flats, which fits an M5 nut nicely. I drilled the holes to 5mm and warmed up the bolt heads to help them bed into their sockets.

Now, how do I add a photo?

3 Likes

It’s the little arrow up coming out of a rectangle on the editing tools ribbon.

Sounds like you have some good skills.

Have you run across @dkj4linux foam ripper needle cutter? It’s pretty cool.

Great, thanks! For some reason I hadn’t connected ‘upload’ with images…

There are lots of pictures of familiar pieces lined up neatly, so here’s a messy work-in-progress picture instead. Today’s job was adding lights and a cooling fan to the printer because it was struggling with even the moderate overhangs of the MPCNC.

Thank for the kind words, but this project still feels like jumping into the deep end. I can build stuff, and program, but there’s a big gap in the middle!

@dkj4linux’s foam needle cutter was what got me started on this. A friend at the flying club mentioned it after I complained that my least favorite part of building planes was transferring the plans from the computer to the foam and cutting them out. I looked at the TimSav machine too, but thought the MPCNC looked capable of much more.

3 Likes

Dkj enticing everyone into machine build to cut cool planes. He is fun to have around. Trusting him also means you will fit right in around here.

That style import printer can be a bear to work with. It will force you learn a lot but I can tell you right now they made lots of bad choices when “designing” it. Every time you upgrade it it will get much better. I hope the CNC seems easier to work with that that!

1 Like

So, after replacing the bent bed on my printer, I’ve managed to achieve usable XYZ pieces. I also replaced all the rails and the head no longer wobbles (although the Y-axis bearings sound pretty bad). However, my prints now have little bobbles on some faces (but the back is fine) and overall it’s looking pretty scruffy (even compared to the earlier prints) especially around the bolt holes, and the top layer has gaps around the edges. Any thoughts what might be causing this?


Here’s the back view, which was nice and smooth on the first part, but had some lines on the second.

Just the last XY piece to go now (and one corner top, and a RAMPS case, and maybe drag chains).

I’ve hit an error message attempting to compile Marlin for my Arduino/Ramps. I’ve installed U8glib (as per the instructions) and can see it on the Sketch/Include library/Contributed libraries menu, and when I select that, two include statements are added to the top of the Marlin sketch

#include <U8x8lib.h>
#include <U8g2lib.h>

but when I verify or upload it, I get this error:

Multiple libraries were found for "U8x8lib.h"
 Used: /home/robin/Arduino/libraries/U8g2
sketch/src/HAL/HAL_AVR/u8g_com_HAL_AVR_sw_spi.cpp:65:10: fatal error: U8glib.h: No such file or directory
 #include <U8glib.h>
          ^~~~~~~~~~
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.

U8g installed into:
/home/robin/Arduino/libraries/U8g2/

Marlin is in:
/home/robin/Arduino/Marlin-MP3DP_Ramps_16T_MK/Marlin/

This is on a Linux PC, running Arduino 1.8.10 I’m not sure what else might be useful.
I’ve only really dabbled in Arduino code before, so I’ve probably done something silly.
Any suggestions?

Start over. Now that your arduino has u8glib installed open a fresh copy of the firmware and just try to upload it.

These should not be there and it means you clicked on the u8glib after it was installed. No big deal, either just delete them or start with a fresh copy of the firmware.

Thanks, I usually work in C#, so header files are a new thing for me.

I read through the instructions again and realised I’d installed the wrong library (U8g2, not U8glib)

I also realised that I’d downloaded the MP3DP firmware, not the MPCNC version.

It compiles and uploads now :slight_smile:

1 Like

I printed the second XY piece today. It’s not great, but it means I can test fit most of the parts and play with sliding it around - fun!

The whole thing is balanced on my build table at the moment, but it’ll move on to the bench with the printer when I no longer need access to the back.

I swapped out the nice new smooth Y-rods from my printer and replaced the nasty, bendy, undersized tubes, and the bearings run much smoother, and most of the nasty blobs and misaligned layers went away.

Unfortunately it came loose from the bed when it was 94% printed, so I’ll have to redo it. That photo reminds me that I must get a deburring tool when I go back to the fixings shop for the two bolts that were the wrong length…

Now I’m just waiting for the wires, and need to print one more piece of the Z assembley.

Oh, and I managed to order a 2-start 200mm lead screw.
Can I use it if I put the nut on the top of the XY assembly?
Presumably I need to edit DEFAULT_AXIS_STEPS_PER_UNIT in configuration.h and re-upload the firmware?

How do the steps/mm work? The defaults are 200, 200, 800, 200 - but I’d have thought 200 steps was one revolution, so X and Y would move 32mm (assuming 16T pulley and 2mm belts) in 200 steps. Why aren’t those numbers 200/32=6.25 ?

EDIT: is the answer ‘microstepping’ and it’s expecting 32 microsteps for each actual step? If so, as I have A4988 drivers, I think they only do 1/16th steps so I’d need to halve all the values?

Anyway, assuming the defaults are right and I’m just confused, presumably for a 2-start screw, they should be 200, 200, 1600, 200 ? (or 100, 100, 800, 100 after I allow for the older drivers) and the DEFAULT_MAX_FEEDRATE Z-value should halve to 15?

Yep - you’ll need to modify the config values and upload the modified firmware.
Also, just in case it wasn’t obvious - you’ll need to comment out the _DRIVER_TYPE lines that configure the drivers to 8825s…

Thanks Kizmit, I hadn’t noticed that section.

My wires arrived, so I tried plugging one directly into a motor (i.e. before making up the series connections) and the motor just moved a fraction and then either buzzed or did nothing. This was with no belts, and using the ‘move axis’ command on the LCD. I tried it again with a different cable, different motor, different axis/driver, but got the same thing.

I had just been powering the two sockets nearest the edge of the RAMPS, and I wondered if I needed to power the other two as well, so I wired those up too - but in haste I managed to get the main power backwards :open_mouth::skull_and_crossbones:

The one driver that had a motor connected is very dead. The LCD still works and I can scroll around the menus, so I hope it and the Arduino are still OK. The other two drivers look OK but do nothing. The two spare drivers make motor twitch once and then do nothing. Reading up on other people making the same mistake, it sounds as if there are a couple of ‘poly fuses’ and a diode somewhere on the RAMPS that I should replace, but I can’t see anything obviously dead. Which parts are these?

Anyway, fortunately it’s fairly cheap, so I’ve ordered a new RAMPS board and drivers.

Don’t forget to adjust the liitle current screw on each driver. 0.7V to ground is a good starting setting.

Oh yes, electronics definitely isn’t my strong suit, so I’m not even sure what information I could supply to help find the problem!

The boards were all adjusted to 0.86v when I got them, and I first tried them like that before remembering to turn them down a bit. I turned them down to 0.7v but it didn’t help.

I’ve done some more reading and discovered that the ‘polyfuses’ are the big flat vertical things next to the power connector, and that they aren’t intended to protect against a short or reverse polarity. I’m not sure that helps, but I feel slightly less ignorant now…

If you plugged the stepper driver in backwards, that/those drivers are most likely dead (or at least damaged to the point they should be replaced) but the Ramps board itself (and the Mega) should be fine. I’ve done that more times than I’d like to admit…

If instead you actually fed the 12V lines to the Ramps in reverse - sorry, no experience with that. I would expect the Mega to survive that though (just based on the input power schematic of the Mega). Not sure about the Ramps board…

As Jeff points out - setting the current the stepper drivers provide is an important step. But since you’re using A4988 drivers, I suspect 0.7V is not actually the correct setting.
To determine the proper Vref setting for your drivers, first take a look at this link to help identify what Sense resistor your boards have: A4988 vs DRV8825 Chinese Stepper Driver Boards - RepRap

Then look at the “Adjusting and testing current” section of this page to determine the proper Vref setting for your boards and motors:
https://reprap.org/wiki/StepStick

Just as an example - on my machine (using the nema17 motors from Ryan) my Vref should be set at 1.12V (which derates the max motor current by about 20%). I’ve got them set there and the motors work great, plenty strong, don’t get hot.

Also, just an FYI – the stepper drivers really need to have their heatsinks installed, and need air blowing over them, or they will overheat and fail. (again, from experience with this on a previous 3D printer)…

1 Like

Yup, that’s what I did. I had read about the possible confusion with driver board direction and was careful to read the pin labels, and check with photos. Similarly with only plugging/unplugging the motor when powered down. I just forgot the absolute basics…

The diode next to the polyfuses now measures about 0.5k in both directions, so I think that needs replacing. I may have a go one day, but I don’t really want to start chasing problems around when I can’t tell what is working and what isn’t.

My A4988’s have resistors labelled ‘R100’, so (if I’ve got the calculation right) their original setting of VREF=0.86 would give a current of 1.075a, and VREF=0.7 would give 0.875a - of course, I’ve no idea what current I should be aiming for. I assumed I could just start out with low-force tests and watch out for the motors getting hot, and turn it down a bit if necessary.

I ordered DRV8825’s with the replacement RAMPS board; I think VREF=0.4 would give 0.8a on these?

Thanks for the warning, I’ll make sure I set up a fan.

I’m still puzzled over why my motors didn’t turn in the first place though. What could I check to track it down?

I would bet dollars to donuts that the wiring was wrong. Just a few hints to try to track it down:

  • color of the wires on stepper motors are notoriously inconsistent. Never trust them.
  • use an ohm meter to find which sets of pins/wires on the motors are shorted together (this is with the motor not attached to anything). The shorted pairs will be the two coils in the motor - one pair is generally called A-/A+ and the other B-/B+.
  • it’s best to find a data sheet for your motors which will show you which pins go to which coils.
1 Like

I’ll bet that’s it. My motors have 6 pins; 1 and 3, 4 and 6 are connected.

For some reason the wires I bought have the pins switched around on one end. I have Red, Blue, Green, Black at the RAMPS end, and Red, Black, Blue, Green at the motor end. I.e. the middle two wires go to one coil, and the other two wires go to the other. No wonder it didn’t work!

Presumably the RAMPS outputs are A-, A+, B-, B+ ?
The RepRap page isn’t very helpful (https://reprap.org/wiki/RAMPS_1.4#Wiring)

Ironically, if I’d actually stopped to solder up the series connections for a proper loom, I might have noticed - but I thought I’d try it before I introduced my own mistakes and just assumed all stepper motor wires were the same…

Thanks for the hint - there are so many unknowns here, it’s hard to know where to start trouble shooting.

Corrected based on Jeff’s input:
I don’t think so…
Yes, I think so…

Here’s a better pic (it’s Ramps 1.6, but same as 1.4):

Corrected based on Jeff’s input:
The ramps stepper pinout is 2B, 2A, 1A, 1B – where 1A-2A go to one coil (so A+/A- in my earlier notation), and 1B-2B go to the other coil (B+/B-). So the middle two pins go to one coil, the outer two to the other coil.

The ramps stepper pinout is 2B, 2A, 1A, 1B – where 2B-2A go to one coil (so A+/A- in my earlier notation), and 1A-1B go to the other coil (B+/B-). So the first two pins go to one coil, the remaining two to the other coil.

No, I don’t think that’s right. I think 1A and 1B are the same coil. Have I thought about this wrong this whole time?

1 Like

I could certainly be wrong! I was trying to find something definitive (before I posted that) and didn’t have a lot of luck, but thought I found something that led me to that conclusion. Of course I can’t find that now :angry:

But I did just find this:

Which supports your understanding. So I stand corrected! 1A-1B are one coil, 2A-2B are the other coil.
(I’m going to go back and strikethrough/edit my earlier post so that it doesn’t lead anyone astray in the future!

Thanks for catching that! :+1::+1:

2 Likes