Introduction: CylinDraw! a Cup-Specific Plotter & Engraver

About: Hi I'm Michael! I love all things Science, Engineering, & 3D Printing. If you've enjoyed my work then I've love to hear from you!

This is the CylinDraw, a new tool that lets you easily create incredible art on any kind of cup!

CylinDraw essentially does 2 things: It can engrave & it can paint. And it is highly adjustable so it can do those 2 things on any kind of cup. (tumblers, wine glasses, mason jars, shot glasses, mugs with handles, or any cylindrical object tapered or not under 3” diameter & 11” tall).

This is a large body of work and there is a lot to cover, so the introduction & demonstration video is a good place to start.

If you want to be the first to hear when kits become available then visit the project homepage and enter your email address.

As a painting tool, we have experimented and perfected techniques for drawing on multiple types of materials and coating the end result to make it dishwasher safe. (Though we have more to learn here to be sure. There is a world of markers and coatings out there to choose from to continue experimenting with!)

As an engraver, CylinDraw is an order of magnitude less expensive in terms of upfront/operating/& maintenance costs when compared to a rotary laser engraver, while offering better ease of use and equivalent drawing resolution. (CylinDraw operates at 0.2mm wide stroke, lasers are 0.1-0.5mm.) Engraving is also a safer cleaner process than laser etching since fumes and fire are not a factor. Lasers must be vented to the outside because of chemical byproducts (smoke), while mechanical engravers only create physical byproducts (microparticles) which can be contained with a shop vac.

But of equal importance to what it does, is how it does it.

Cool hardware is still a useless brick without software, and if the software sucks then its an irritating brick. But get both things right and using the tool becomes such an effective process that you can start taking it for granted. That's when you know it has improved your life and that was the intent. Every aspect of this tool is designed to make the user experience painless, because I think computers should just work so you can focus on the art!

CylinDraw software is all-inclusive. It can convert any bitmap image like a photo or screenshot into a vector graphic (SVG) and then into a drawing-in-progress in minutes. Most drawings are doable in under an hour.

The system automatically makes assumptions on your behalf to streamline the process. A few examples:

  • Multicolor jobs self sort the colors by brightness so you don't smear light colors with dark ones.
  • Optimized drawing paths using a honed greedy algorithm.
  • Automatically updating the feed & speed (steps-per-mm) to account for varying cup diameter.
  • Automatic connection to the tool when the USB cable is plugged in. A happy beep tells you all is well.
  • Separate user interfaces for separate functions so that all the information on screen is relevant, and the only controls you have are the ones you need.
  • No internet-of-things planned obsolescence security nightmare nonsense. CylinDraw operates entirely without internet access.
  • Custom 'JOB' files (machine readable g-code files) use an .svg extension so they can be viewed as thumbnails or in a browser.

Another interesting thing to note is that it does not use grbl. The software and firmware was written from scratch to best meet the unique requirements of this device. (grbl takes up a lot of space on Arduino & it is more complex than I need for some things, which was a hinderance for adding features I needed. So starting from scratch was the easier choice.)

Step 1: Software Test- Windows PC Required!

It is of critical importance that you perform this step before proceeding any further!

CylinDraw software & firmware is proprietary so there is no other way to control it without using a windows PC, with a USB serial cable, and the software on this linked page. So before attempting this project make sure it can run on your computer!

Be aware that the software will be license locked for some functions, but a lifetime license is free for anyone who buys a kit from us. Additionally, getting together all the random non-printed parts for the CylinDraw is cost & lead-time prohibitive to do on your own due to the global shipping delays. The best way to finish the machine is to pick up our kit because we buy all the pieces in bulk and can offer them at a good price. You can read more about our decision to design the software this way on our about/FAQ page here.

Step 2: Collect Tools & Materials, Pick a Kit!

All kits come with the tools needed to assemble them, as shown in the image.

Shopping link:

*Kit Option 1: You 3D Print + You Assemble it: You get the 3d printable files & make them yourself. We send you all the tools, electronics & mechanical hardware. You build it using instructions online.

*Kit Option 2: We 3D Print + You Assemble it: We send you all the 3d printed parts, tools, electronics & mechanical hardware. You build it using instructions online.

*Kit Option 3: We 3D Print + We Assemble it: CylinDraw comes to you tested & ready to use.

Note, keep the 3d printed wrenches handy after assembly, they also fit the red knobs used to tighten the chuck and tool holder.

Step 3: 3D Printed Parts

If you choose the print it yourself option then start here, otherwise proceed to the next step.

External link to files:

Please be aware these files are meant for personal consumption only. Editing & redistribution are prohibited.

Materials, Print Settings, Part Quantity, & Post Processing are specified in the table attached. For all parts that say to use an 8mm reamer, the intent is to achieve a very close fit with the 8mm rods & shoulder screws that will pass through them. If I designed the parts to target 8mm without the extra machining then they would have too much variance and end up being too loose or too tight. Note the Taxis Mount Motor & Haxis Mount motor are the parts that have direct contact with the motors, I print these out of PETg for the kits to ensure they have adequate heat resistance.

Step 4: Begin Assembly- Review Vitamins

Attached is a generic list of the vitamins (non 3d printed parts) that are present in the different packages.

The spares kit has extra small pieces & such in case you or I drop/miscount something, or if the servo wears out. And it has a bonus sticker for fun!

Engraver kit parts are sold separately simply because their use is 100% specific to the Dremel Stylo product, and some people may only be interested in drawing but not engraving.

Step 5: Assembly- Frame

(Referring to the official names of the parts in the 3d printing step) Insert the 4x 'pin_locators' into the bottoms of the 'Taxis_Mount_Cone_Screw' and the 'Taxis_Mount_motor'. You may need to use the handle of the screwdriver to hit the pins all the way in. Then drop the frame pieces into place and use the 4x long plastite screws to attach them.

Step 6: Assembly Rotary Axis & Chuck

Here we are attaching the t-axis stepper motor to the frame. Then building up the chuck but gluing a timing belt pulley inside of it. This trick makes for a super strong connection between the plastic chuck and the motor shaft.

Make sure that both set screws of the pulley are accessible through the side holes in the chuck as shown.

Tighten the chuck to the motor shaft very hard. We don't want anything to move.

Similarly, the last couple photos show the use of a sticky tack pad to add a bit of squish/stick to the chuck so the cup wont move anywhere. Vibrations from engraving can be intense so these measures are absolutely necessary.

Step 7: Assembly Live Center

The threaded rod may not look fancy but its a dead simple, effective, & reliable design. Use the two printed wrenches to lock the nuts against each other on the threaded rod.

The stabilizer shown in the last photo is only necessary when you are working on large heavy things, like a glass stein with a handle, in which case you want it to be as steady as you can. (also in that case maybe turn down the acceleration a bit)

Step 8: Assembly- Linear Axis

Assemble the axis as shown in the images in order.

After you install the pulleys, wrap the belt around then and tuck it into the fixed carriage is so it belt remains barely slack. You will be able to tension the belt it by pivoting the motor to pull on it. Its tempting to make the belt really tight but it ends up making the machine noisy and its unnecessary. Its hard to specify the correct tension, but play with it, the carriage should move freely.

Next mount the 'Flag' and the hand 'ChuckNut_Thicc' for adjusting it. This part is necessary because when you tilt up the frame to accommodate tapered cups or if you switch from a pen to an engraver, you will need to adjust the flag so that it will hit the end stop such that the tip of your tool is aligned with the ends of the chuck grips. This design decision was made to ensure that the tip of the marker wouldn't crash into the cup or the chuck when you home the machine.

Step 9: Assembly- Carriage

When installing the 6mm linear bearings, it can be helpful to make a mark with a marker on exterior of the bearing face to indicate where the line of balls are inside the bearing. Then after you assemble everything together you can adjust the tightness of the lifter carriage by rotating the bearing to make very minute adjustments.

When zip-tieing the lifter carriage to the linear bearings, pull all 3 cables on one side completely tight, but leave the other side slightly loose! If you hard clamp all 6 cables then the lifter wont move freely since it will be over constrained. The carriage will need to slight freely with gravity but not jiggle at all.

The servo is attached without its horn for now. (Later when the machine is assembled, you can power it on & connect to 'run mode' then command the machine to lift the servo lifter, then you can attach the horn vertically while its intended position is known!)

Step 10: Sub Assembly Integration

Follow the images in order. (First attach carriage onto linear axis, then attach linear axis to the frame.)

*Run the wire harness through the wire guide and zip tie it into place. This ensures that the cables will never end up in the inch point when the machine is homing. Also pass the wire harness through the support loop under the linear axis motor.

*You can attach the entire carriage to the linear axis with one shoulder screw.

*After the carriage and linear axis are mated, embed the 6 disc magnets into the holes and superglue in place. The magnets in these parts should attract to each other to help lock everything in place.

* Attach the linear axis to the frame with another of the same shoulder screw at the pivot point. Then scrure the free end with the bolted handle as shown.

*. Connect the servo motor to the extension wire. Note that this is the intended break point for if you ever have to replace your servo motor.

Step 11: Electronics Assembly Routing

CylinDraw uses an arduino nano 3 axis CNC breakout board. We only need to populate the X & Y stepper drivers as shown in the pictures. Z is left open. (We keep the 3rd driver in case we destroy one during calibration. Once they get to you they are setup & last forever so you only need 2.)

The table below correlates the silkscreened labels on the board with the connections to make. As per the photos, you will need to use 2 small jumper wires to connect the buzzer to the board.

Stuff we do for you: The servo motor is connected to a 3-wire ribbon cable extension, and then that extension is connected to 3 individual jumper wires. We also tune the resistance trimmers on the stepper drivers to supply the appropriate current, then superglue them in place & mark them with a line. (we do this for you in all our kits because the consequences of doing this wrong can be disastrous)

-The PCB should keep all the jumpers underneath the drivers. (These jumpers configure the microstepping steps per rotation)

  • A0 (abort)= unconnected
  • A1 (hold)= unconnected
  • A2 (resume)= unconnected
  • A3(cool) = unconnected
  • A4 (SDA)= unconnected
  • A5 (SCL) = unconnected
  • A6 = unconnected
  • A7 servo2 = unconnected
  • D0 (RX) =unconnected
  • D1 (TX) = unconnected
  • D2 (Xstep)= (part of drivers)
  • D3~(Ystep)= (part of drivers)
  • D4 (Zstep)= unconnected
  • D5~(Xdir) = (part of drivers)
  • D6~(Ydir)= (part of drivers)
  • D7 (Zdir)= unconnected
  • D8 (enable) = (part of drivers)
  • D9~ (X+,X-) = unconnected
  • D10~ (Y+ & Y-)= Limit switch red wire (normally closed leg)
  • D11~(Z- & Z+) = Servo Yellow wire (sig)
  • D12 = Buzzer+
  • D13 = Arduino Embedded LED
  • GND = Buzzer-, Servo Brown Wire, Limit switch black center wire.

5V = Servo Red (Center wire) ( I use the available 5v pin next to A6)

Step 12: Initial Test Run- Open Calibration Mode

Open the Run Mode program and at the top press the button that says Run Mode vs Calibration.

Calibration mode is only useful for this moment. You've just finished assembling and now you need to safely test the functionality of each component.

The tests layout pretty explicitly what is expected, follow them in order. After you pass the final one you are ready to go!!!

This is also the time to reinstall that servo horn onto the carriage. This process takes the guesswork out of the servo positioning, just open run mode, press 'tool up' with the machine connected and enabled, then attach the horn completely vertical so it will like the carriage all the way up.

CylinDraw's software has a default JOB file prepared of the CylinDraw logo sized for an 8oz paper cup. Install the marker that ships with kit, adjust the machine so that home places the tip of the marker aligned with the tip of the cup chuck holders, then go for it!

Step 13: Using the CylinDraw: Workflow

The intended workflow has three main steps:

1. DePixelizer: Convert an Image to SVG.

2. Job Creator: Convert an SVG to a JOB file. (You can also use SVGs from anywhere.)

(2.5. Job Viewer: Verify that the job looks good)

3. Run Mode: Read JOB files to draw on cups.

By default the system assumes you don't want to generate a ton of files so the intermediate files passed between the above programs are temporary and get overwritten next time you generate the same file type. In the help menu you get the option of specifying the output file as something non-temporary if you wanted to save it to use again in the future. You might notice that the JOB files also have an .svg extension. This is so you can view them as thumbnails or open them in your browser.

In practice I spend the most time in DePixelizer mode playing around. This is the appropriate place to get your drawing dialed in to look just how you want it. The cool thing about DePixelizer is that it takes your pen diameter into consideration. (This is necessary because imagine how your signature differs when signing with a pen vs a sharpie.)

In run mode the code is sent to the machine from the computer in real time. This lets you pause it any time and change settings from the pc. For multicolor jobs it will draw light colors first and beep when its time to change the pen.

In any case each program has a help menu to tell you about the function of every button. I think I've covered everything I meant to in this instructable, thanks for reading, enjoy!

CNC Contest

Participated in the
CNC Contest