XY Plotter

Aus hyperdramatik
Zur Navigation springen Zur Suche springen

XY Plotter

Spiel und Objekt besitzt drei Makeblock XY Plotter.

An image of an xyPlotter during the 2023 GameJam at the FFT Düsseldorf
Given the age of the hardware, a lot of the documentation is out of date. This article will help you getting the device to work with your WINDOWS computer.

Assembly Instructions

If, for some reason, a device broke or you need to reassemble it, here is a link to the official assembly guide

General Hardware Specifications

  • They are controlled by a custom Arduino UNO compatible board with Custom Firmware.
  • The two stepper motors are driven by a 12V external Power supply
  • Some of them might have an additional Servo motor to control a Pen or a Magnet Holder.

Getting it to work

  • Connect the XY Plotter using a Micro-USB Cable.
  • Make sure the XY Plotter's 12V power supply is plugged in and that power is turned on (in addition to the USB Connection).
  • Download the software "mDraw" either from the official Plotter website or from the Spiel und Objekt Buschcloud.

using the mDraw Firmware (Recommended)

  • open mDraw
  • In the drop-down Menu on the top right, select XY-Plotter
  • Make sure the Plotter is connected, the COM port should be connected in the lower right hand side of the software.
  • Click Connect
  • If the firmware has changed recently, or you read the word "init" in the lower right hand Console Window and the Plotter seems to move super slow, you might want to reapply the mDraw Firmware.
  • To apply the mDraw firmware, click Update Firmware
  • Wait for the Firmware to Download onto the board
  • Profit!
    • Double-Clicking in the middle of the drawing area should move the Plotter to that point.
    • Clicking on the house Icon should move the Plotter back to its initial 0,0 Position
    • Feel free to explore the software. The plotters should work Out-Of-The-Box with the default settings of the Software. Please document if you Settings changed setting for other groups potentially using the Plotter. Here's an image of the setting as of 14.02.23: mDraw setting page

using the official gitHub Firmware (Not Recommended)

  • download the XY Plotter firmware from the GitHub page or use the one that comes in the Spiel und Objekt Buschcloud folder.
  • Open the Arduino file: XY-Plotter-2.0-master\software\GCodeParser.ino
  • Make sure the Plotter is connected, then select the COM port as usual in the Arduino software.
  • Contrary to the instructions on the official Firmware GitHub website, we selected "Arduino Uno" as our board type for success.
  • Upload the code to the controller board
  • The code is very, very slow, but it works. You can possibly adjust the values in the code itself to speed it up.
  • we really recommend using the mDraw Firmware, it is much much faster.

Using GCode

Once you have chosen a firmware (we really really suggest you use mDraw version of the firmware), you can use GCode Commands over Serial Communication to control the XY Plotter from Processing (or any other Serial compatible Code Environment).
GCode is a Command Set for CNC machines and 3D Printers that is often used to control and set up moving machines. The Makeblock XY Plotter uses GCode commands to move the stepper motors and the Servo into position, change its speed and other fun things.
GCode are submitted as Strings. For example:

G0 X100 Y100

moves the Plotter to the position 10cm to the right and 10cm forward from its initial home position (if the home position is on the bottom left).

If you want to test out GCode Commands, you can apply them directly in the Input field of the mDraw software (this works for both Firmware versions) or use an Arduino Serial Monitor. Just type the command and watch what happens.

Common GCode Commands for mDraw Firmware

  • G0 Xxxx Yyyy - moves the Plotter to xxx and yyy position in Millimeters from the Home Position
  • G1 Xxxx Yyyy - - moves the Plotter to xxx and yyy position in Millimeters from the Home Position
  • G28 - moves the Plotter to its 0,0 position
  • M1 xxx - rotates the Servo (from 0 to 255, like any Arduino Servo). Note that the Servo setup of the XY Plotter usually assumes that you have a Pen or Magnet attached to the Plotter, and so a value of 80 is usually considered Pen Down and a value of 160 is usually considered Pen Up
Note: We reverse engineered some of this information from the mDraw Source Code, that you can see on the Makeblock official GitHub page (Open Source for the win!), but you can also find really good info on this (thanks Clemens!) on this Github page!

Common GCode Commands for official Firmware

  • You can derive the GCode commands from the Source Code file in XY-Plotter-2.0-master\software\GCodeParser\process_string.io
  • Maybe there is more stuff you can do with that firmware?
  • What's nice about it though is that you can change the firmware yourself! It's just a .ino file!
  • We really recommend you use the mDraw Version

Project related Code


The following code connects a xy-plotter to unity and also simulates the movement of the plotter in the game view. A simple white plane represents the scale of the plotter and a white cube its movement. The movement is controlled by the arrow keys.

GitHub [1]