How to Use the CNC V4 Board (despite Its "quirks")

33K4629

Intro: How to Use the CNC V4 Board (despite Its "quirks")

This cheap (can be found under 10€ with arduino and stepper drivers) board is perfect numerically controlled machinning tools like CNCs or laser engraver/cutter ... or is it?

In theory yes, and in practice with enough time too, but this board seem to have weird design errors and mostly a lack of documentation that makes it non trivial to exploit.

I am actually not sure if the things I will talk about are true for all of those boards, because of the minimal documentation, but it seem unlikely that there are different designs of this board.

I will go through all the problems I encontered and how to fix or circuvent them, and the last step will summarize all the connections on the PCB.

STEP 1: Power Input

When you first try this board, your reflex is to just plug a 12v power supply to the power jack, as you can see the label under it say "M .... 2v" ... yes most of the label is hidden under the plug, but It's probably written "Motor 12v" ...

(actually, I removed the plug and it's written "Max-In 12V" so it's a hidden warning)

But doing this will in fact only power the arduino, because you need to place a jumper on "Mot-VOT-Sel" to propagate the power input to the drivers ... and no jumpers are included with the board, so you will need an extra one.

If you want to power the motors with a higher voltage, don't use this plug and jumper because it goes to the "Vin" of the arduino which is connected to an LM1117 rated for 7 to 12v. Instead, solder your power input to the holes on the motor plugs side labeled "Mot-vcc" and "Mot-GND".

and choose a way to power the arduino :

-7 to 12v power supply plugged the the jack.

-step down taking the motor voltage and giving it into the pin on the top of "Mot-VOT-Sel" (closest to "Sel") and one of the GND pins

-just use the USB plug of the arduino itself, easiest and enough if you need to have the machine plugged to a computer to control it anyway

STEP 2: Micro Stepping

This is usefull is you use the A4988 drivers, not the fancy TMC2130. (but if you bought this board you probably don't intend to use expensive drivers on it anyway)

Once again, no jumper included, but in fact here, even if you had jumpers, they wouldn't do anything.

This look like a design error : the jumper pins are meant to be connected to 5V, but on this board they are on GND

Because you already don't have enough extra jumpers, and there isn't much reasons to don't want micro stepping, the best way is to solder all of the micro stepping pins to one of the 5V pins.

On the pic you can see in green everything that need to be connected together, and the lines showing the shortest wire to achieve that.

STEP 3: Step and Dir Pins

The pic on this step is one of the rare documentation I could find about this board

And it shows that X, Y, Z dir are connected to D5, D6, D7 and step to D2, D3, D4.

WRONG

it's the other way around...

There are other errors on this schematic, like Vin shown to not be wired to anything, but the last step will summarize everything

to recap :

Xdir --> D2

Ydir --> D3

Zdir --> D4

Xstep --> D5

Ystep --> D6

Zstep --> D7

STEP 4: Summary

So I tried to redo the real schematic over a pic of the board here

First pic showing power distribution (+3 unused pins)

Second showing digital and analog wiring (+3 unused pins)

Third showing the physical dimensions of the board (all in mm)

13 Comments

Thanks Matthieu! I soldered a 7812 +12v regulator onto the jumper where the jack power can be connected to the motor power. As a bonus, there's also a ground pin very close to that jumper so, if you bend the pins right, you can 'float' the regulator right there. It's not pretty, but it works beautifully and takes a minute to add.
Then I just send 24v into the motor power input.
Salut,
i was looking for some documentation for this board, luckily i found your instruction: saved me many time and, because of the faulty informations there around, one or another Arduino.
Great work, thanks for this!
Very nice I found your instructions before I burn my Arduino.
I want to swap my woodpecker board to Keyes because I want to use Bluetooth connection neatly.

I saw on the board that if I use 24vdc voltage, the power and ground from power supply are connected directly to power and ground of the motor which mean when the power supply is on, so does the motor.
Then how to control motor on off by M3 command, also how to control motor speed by Sxxx command?
Which DC Jack is required for this Board?
Is this a 5,5 mm / 2,5 mm (outer diameter / inner diameter) or a 5,5 mm / 2,1 mm socket?

Great article.

I got fed up trying to change the cpu mapping to the pins, I eventually cut the step and direction tracks and rewired them underneath. Now it matches the schematic.

Now I can't get 5v out of D11 to control a solenoid via a relay. Am I missing a pull up resistor? If so, what value?

First, thank you for the doc -it's extremely helpful. Second, on my board, when I plug 12V into the external power jack, it sends 17V to VIN on the Arduino..... The Arduino shuts down the input from VIN due to the over voltage. I can make it work by plugging in the USB for power, but would like to use the single power jack. Does your board do this? I'm using a 12V 350ma supply.

I suspect its the fault of your PSU which sends 17V in open mode, ie not under load.

You definitely need a switched PSU for these devices like an old ATX psu and not the wallmart variable voltage style psu's.

CHeck the open volts on the psu to confirm what its output is.

The first thing I checked was the power supply and it was good. I noticed the cap was different on my board than most of those shown on boards on line (100 35V VT). I removed it and got 12V to the VIN pin.

see picture on the Step #2 pls. (There is on the left pin GND of any
jumper and 5V on the right pin of them, i.e. any jumper connects GND to
5V => dangerous short circuit).

BTW: On the RAMPS
without pull down (not pull up) resistor is the similar problem but with
(unusual) stepper driver with default high level on the mode pins only
(mode jumper has any effect).

Zdenek

Hi!

Well. it's no good idea replace bad solution with dangerous one - every installed jumper is hard shortcut between GND & 5V. The correct "enhancement" is connect pull up resistors between jumper pins & 5V to save full range microsteping selection. See picture.

P.S. The other changes is prepared to use serial connector to connect & control a standard servo at PWM manner.

Zdenek

what could be the danger of not using resistors?

I'm genuinly curious, because most power board with stepper driver socket only use jumpers like the RAMPS series of cards

what could be the danger of not using resistors?

I'm genuinly curious, because most power board with stepper driver socket only use jumpers like the RAMPS series of cards