

The CNC SHIELD V3, manufactured by INFO PROTONER (Part ID: CNC SHIELD), is a versatile control board designed for CNC machines, 3D printers, and laser engravers. It provides an efficient and user-friendly interface for controlling stepper motors, endstops, and other peripherals. The shield is compatible with Arduino boards, making it an excellent choice for hobbyists and professionals alike. Its modular design allows for easy integration of stepper motor drivers and other components, enabling precise control of motion systems.








The CNC SHIELD V3 is designed to work seamlessly with Arduino boards, such as the Arduino UNO. Below are the key technical details and pin configurations:
The CNC SHIELD V3 has a straightforward pin layout for easy connectivity. Below is a table describing the key pins and their functions:
| Pin Name | Description |
|---|---|
| X-STEP, Y-STEP, Z-STEP, A-STEP | Step pulse input for X, Y, Z, and A axes (connected to stepper drivers) |
| X-DIR, Y-DIR, Z-DIR, A-DIR | Direction control input for X, Y, Z, and A axes |
| EN (Enable) | Enables or disables all stepper drivers |
| X-END, Y-END, Z-END | Endstop inputs for X, Y, and Z axes (min and max positions) |
| SPN-EN | Spindle enable signal |
| SPN-DIR | Spindle direction control |
| PWM | Pulse-width modulation output for spindle speed control |
| VCC, GND | Power supply pins for logic (5V) |
| Motor Power Input | External power input for stepper motors (12V to 36V) |
Below is an example of how to control a stepper motor connected to the X-axis using the CNC SHIELD V3:
// Example code to control a stepper motor on the X-axis using CNC SHIELD V3
// Ensure GRBL firmware is installed for full functionality
#define X_STEP_PIN 2 // Pin for X-axis step signal
#define X_DIR_PIN 5 // Pin for X-axis direction signal
#define ENABLE_PIN 8 // Pin to enable stepper drivers
void setup() {
pinMode(X_STEP_PIN, OUTPUT); // Set X_STEP_PIN as output
pinMode(X_DIR_PIN, OUTPUT); // Set X_DIR_PIN as output
pinMode(ENABLE_PIN, OUTPUT); // Set ENABLE_PIN as output
digitalWrite(ENABLE_PIN, LOW); // Enable stepper drivers
}
void loop() {
digitalWrite(X_DIR_PIN, HIGH); // Set direction to forward
for (int i = 0; i < 200; i++) { // Move 200 steps (1 revolution for 1.8° stepper)
digitalWrite(X_STEP_PIN, HIGH); // Generate step pulse
delayMicroseconds(500); // Step pulse duration
digitalWrite(X_STEP_PIN, LOW); // End step pulse
delayMicroseconds(500); // Delay between steps
}
delay(1000); // Wait 1 second before reversing direction
digitalWrite(X_DIR_PIN, LOW); // Set direction to reverse
for (int i = 0; i < 200; i++) { // Move 200 steps in reverse
digitalWrite(X_STEP_PIN, HIGH);
delayMicroseconds(500);
digitalWrite(X_STEP_PIN, LOW);
delayMicroseconds(500);
}
delay(1000); // Wait 1 second before repeating
}
Stepper Motors Not Moving:
Overheating Stepper Drivers:
Endstops Not Detected:
GRBL Not Responding:
Can I use the CNC SHIELD V3 with other Arduino boards?
What stepper motor drivers are recommended?
How do I control the spindle speed?
Can I use the A-axis for a rotary tool?
By following this documentation, you can effectively set up and use the CNC SHIELD V3 for your motion control projects.