Main components:

Step 2: Ideas


  • One blackboard.
  • Two stepper motors with pulleys and belts.
  • 一支笔起重微伺服。
  • Couple of counterweights.
  • 和重力力。

I have an 780 x 1200mm blackboard that my kids no longer use, so I make use of it to build a vertical plotter. My vertical plotter configuration is described in the picture below.

  • 机宽度:550mm。
  • Machine Height: 800mm.
  • 皮带长度:1000mm。

Step 3: Blackboard Assembly

  • 准备黑板,我的黑板有外部尺寸780 x 1200 mm,包括铝支撑宽度30mm。

  • Drilling 2 holes for mounting 2 stepper motors, the distance between two hole centers is 600mm.

  • Mounting 2 stepper motors at the backside of blackboard.

  • Attaching 2 pcs x pulleys 80 teeth to the motor shafts at the blackboard frontside. Pulley GT2 80 teeth has a pitch of 2mm per tooth so its diameter is: 80x2/PI = 50.955mm.

  • 将4个孔钻到Arduino Mega 2560 + Ramps 1.4板上的黑板顶部中心。


The main components to build the pen holder are including as follow:

  • 流量耦合器,包括防尘帽。

  • Empty tin wire plastic coil with center hole diameter 19mm, height 23mm and outer diameter 55mm.

  • GT2 6mm定时带2000mm和两个电缆腺,8 - 12毫米直径。电缆。我使用了2种电缆腺,一个是由塑料制成的,另一个来自金属。



I glued a servo at bottom of plastic coil (at metal cable gland side) and soldered 3 wires from servo to RAMPS 1.4 controller. Finally, pen holder was hung on the motor stepper pulleys. I moved it manually and checked if it slipped or not.

更新: The pen holder was shaked and vibrated during plotting so I had to did some adjustments to get its balancing. The steps are as follows:

  • Adding some more counterweights - nuts M10.

  • 用圆形塑料,直径100毫米,厚度为10mm,将锡丝塑料线圈连接。

  • Glueing the micro servo into round plastic and adjusting the servo arm so that it is as close to the pen tip as possible.

  • 安装笔,拧紧电缆腺以夹紧并尝试通过旋转伺服臂抬起并降低笔。

  • 完成。它的工作要好得多。



The V-Plotter connection diagram is shown below:

The main controllers of vertical plotter are an Arduino Mega 2560 and RAMPS 1.4. They control 2 stepper motors via A4988 drivers and one servo motor.


  • 为了使VPLotter正常运行,两个步进电机应沿相反方向旋转,因此我必须扭转右侧电机的电线。
  • The RAMPS 1.4 provides four servo male headers tied to pins D11, D6, D5 & D4. My pen lift micro servo is controlled by pin D11.
  • 关于伺服电源,我连接vcc.and5Vpins together (using jumper, 5V & Vcc headers for servo power supply are located nearby RESET button) following to the instructions from this page:https://reprap.org/wiki/RAMPS_1.4


2. V-Plotter connection

  • 为了整齐地和美观地布置电缆,我使用了PVC方形塑料电气管道以在内部运行布线。此外,根据A1纸张尺寸,八个钕磁铁在黑板背面粘合。

  • Covering plastic conduit. Done.

  • 准备A1纸进行测试。


我用了Makelangelo firmware这个github那which was created and developed by丹·罗伊尔-Marginally Clever RobotsLimited。Makelangelo firmware can be used in many different controllers and kinematic systems.

  • 支持机器人款式
#define偏光图1 //偏光图如makelangelo #define tradicidencexy 3 //龙门3轴设置。#define corexy 2 //龙门corexy设置。#define zarplotter 4 // 4电机,x形2d运动#define skycam 5 // 4电机,x形3d运动#define delta 6 // 3 arm delta机器人,旋转动作。未经测试。#define Stewart 7 // 6 Arm Stewart平台,旋转动作。未经测试。#define arm3 8 // 3dof托盘式机器人手臂。#define sixi 9 // 6dof机器人手臂。#define传统6 10 // 6轴机,没有限制。#define scara 11 // 2轴萨拉。
  • 微控制器支持
#define board_rumba 1 //重婚折扣rumba板#define board_ramps 2 // mega2560 +斜坡1.4 #define board_sguinolulu 3 // sanguinolulu #define board_teensylu 4 // teensylu #define board_wemos 5 // wemos d1 r2 + cnc盾v3(参见board_wemos。

Step 7: Firmware Adjustment


  • configure.h“:垂直绘图仪的配置设置

- 绘图仪类型:偏光图

- 控制器:Arduino Mega 2560 + Ramps 1.4


// ------------------------------------------------------------------------------------ // Robot styles supported //------------------------------------------------------------------------------ #define MACHINE_STYLE POLARGRAPH //------------------------------------------------------------------------------ // LCD panels supported //------------------------------------------------------------------------------ #define LCD_TYPE LCD_NONE //------------------------------------------------------------------------------ // Microcontrollers supported //------------------------------------------------------------------------------ #define MOTHERBOARD BOARD_RAMPS
  • robot_polargraph.h.“: Configuration settings for polargraph


-With Pen Lift.

- 没有LCD - 没有SDCard - 没有限位开关。

#define machine_hardware_version makelangelo_5 //更改我#define machine_has_liftable_pen .......................。。。。。。。。。。 #if MACHINE_HARDWARE_VERSION == MAKELANGELO_5 #ifndef MAX_SEGMENTS #define MAX_SEGMENTS (32) #endif //#define USE_LIMIT_SWITCH //#define HAS_SD //#define HAS_LCD #endif
  • configMotors.h“:步进电机和滑轮设置

- 我使用了步进电机Nema 17与Step Angel:1.8°。So the number of steps required for stepper motors to make 1 complete revolution:200步/转

-A4988 micro-steps setting:16.

- 我使用了GT2同步带,每个牙齿的音高为2mm,GT2-80滑轮具有80颗牙齿。价值80x2=160mmPULLEY_PITCH)表示步进电机使1旋转的滑轮(滑轮直径= 160 / PI = 50.9mm)的行进距离。

#pragma once /* * Motor settings shared between various kinematic systems */ // choose one of the following #define NORMAL_MOTOR_STEPS 200 // 1.8 degrees per step // stepper motor drivers can use microstepping to split steps into fractions of steps for greater precision. // A4988 drivers (Marginallyclever.com default) use 16x. #ifndef MICROSTEPS #define MICROSTEPS (16.0) #endif // Using GT2 timing belt, which has 2mm teeth. // I also use GT2-80 pulleys which have 80 teeth. // 80*2 means the pitch is 160. #define PULLEY_PITCH (160.0) #if NORMAL_MOTOR_STEPS == 200 #define DEFAULT_FEEDRATE (180.0) #define DEFAULT_ACCELERATION (150.0) #define DEGREES_PER_STEP (1.8) #endif #if NORMAL_MOTOR_STEPS == 400 #define DEFAULT_FEEDRATE (100.0) #define DEFAULT_ACCELERATION (150.0) #define DEGREES_PER_STEP (0.9) #endif
  • board_ramps.h“:Arduino Mega 2560针设置

Take note that the RAMPS 1.4 provides four servo male headers tied to pins D11, D6, D5 & D4. I used pin D11 for controlling pen lift micro servo.

#define max_board_servos(1)/ *默认值:4 * / #define servo0_pin(11)/ *默认值:11  - 伺服1 * / #define servo1_pin(6)#define servo2_pin(5)#define servo3_pin(4)


Makelangelo software是一个计算机工具,包含配置和导出垂直绘图仪的打印文件所需的一切。它允许我们调整绘图仪配置,纸张尺寸,笔升降微伺服设置....此外,它还具有用于将图像转换为GCODE并将其发送到绘图仪控制器的工具。

我们可以参考如何使用MakelangeGo软件:https://mcr.dozuki.com/guide/5.+makelangelo+softwa ...

  • Open Makelangelo software and connect to Arduino Mega 2560.

- 我们应该检查步进电机方向和旅行距离:来自“Manual Driving“drop-down list, click buttons left, right, up, down, with optional travel distances of 1, 10, 100mm.

- 点击笔起/笔下来buttons to check the micro servo functioning.

  • Click on "设置“选项卡并配置机器。

- 型号:Makelangelo(定制)。

- 机器宽度:550(mm)。

- 机床高度:800(mm)。

-Acceleration: 10 (mm/s²).

  • 设置纸张尺寸和边距。

  • 设置笔并绘制速度。通过调整伺服角度值,提升速度和“,可以校准笔升/下的笔升起/下降Test“ 纽扣。

  • 单击内置功能“生成艺术”,选择图和调整任何额外的标准ameters we want to draw.
  • Click on "打开文件“to select the images. Makelangelo software can converts the JPG, PNG, BMP, GIF, or DXF/SVG images into GCODE in several styles of conversion format, such as:



- 交联


- 脉冲螺旋

- 等等 ...

Step 9: Testing

我写了一个小Excel templateto simulate a vertical plotter. Realistically speaking, Excel is a useful tool and it has been used in most of my works or D.I.Y projects that I have gone through.


要执行第一次测试,我点击了内置功能“生成艺术“那selected a "Your message here“在下拉列表中,选择大小和字体,键入消息然后单击”Start“。

And this is the result.


测试“lissajous.“来自”的图表生成艺术“ 标签。

Continue to test "Spirograph“from "生成艺术“ 标签。


I tried to draw a portrait.


We can export an image in DXF/ SVG format from Inkscape with hatch fill extensions then open this DXF/ SVG file in Makelangelo, simply clickStart进行。

第10步: Finish

以下是黑板V-PLOTTER项目的其他一些图片。多亏了丹罗伊耶 - 边缘聪明的机器人,有限- 适用于伟大的固件和软件。


Anything Goes Contest“>
         <img src=Anything Goes Contest