Post

Chess-Playing Robot — Plotter / Kitten Chaser

Turning the chess-robot gantry into a fast, reliable pen plotter (and accidental kitten magnet). Modeled a servo-lift pen head, added dual Y-axis steppers, and used Universal G-code Sender to draw on a whiteboard.

Chess-Playing Robot — Plotter / Kitten Chaser

Work in Progress — Plotter Stage
This post focuses on converting the chess-robot gantry into a working pen plotter, modeling a servo-lift pen head, adding a second Y-axis motor for rigidity, and running my first drawings through Universal G-code Sender.

I’ve been bouncing between job applications and random engineering distractions, but this one was actually planned. There are likely some forthcoming posts about those side quests though. Stay tuned.

I needed something fun to keep me motivated while the chess robot inches toward full functionality — so I decided to turn the gantry into a pen plotter. It seemed like a good way to shake down the mechanics and electronics of the system and move forward in incremental steps.

Plus, now when it’s not playing chess or being disassembled, it can draw me pretty pictures. Which is nice.

And since my kitten believes anything that moves is a toy, it’s now a nascent chessbot, a plotter, and a cat chaser. Super practical.


Modeling the Pen-Lift Head

Servo Pen Head 3D model of the compact servo-lift pen head.

I modeled a simple servo-driven pen lift in Onshape — nothing fancy, just a micro-servo, a crank arm, and some rails for it to slide on. The micro-servo rotates counter clockwise to push up a third rail to raise the pen and clockwise to drop down for contact with the surface. I used the Motor Idler as a base so it could just slip on to the same 8 mm rails we have been using. I had some cutoffs ready to go. It mounts right onto the X-Carriage. Wires follow the X endstop lines back to the CNC Shield on the Arduino.

It gives me about 12 mm of vertical travel, which is plenty for lifting a marker off a whiteboard.

The biggest problem with the plotter is the vertical distance from the X-axis to the writing surface. It should be as small as possible, not designed to clear 4-inch tall kings. This induces some error/wobble due to lack of perfect rigidity. Long pieces of plastic bend easier.


Dual Y-Axis Steppers

One Y-axis motor was fine for slow calibration — but as soon as I asked for plotter-level speeds, the frame flexed. Even with bearings, there was too much friction on the non-driven side to remain square and flat.

So I cloned the Y-axis driver signals and added a second motor on the opposite side. Now both sides move in perfect sync — faster, smoother, and no more racking. This was really easy with the CNC Shield. I just added a jumper to duplicate an axis and added another A4988 Stepper Motor Driver. Done. As long as the belts are tightened correctly they move perfectly in sync.

It’s overkill for a plotter, but necessary for a future chessboard with heavier payloads.

Results:

  • No racking
  • No twisting
  • Much smoother acceleration
  • Also, it looks cool

I think this is the right move for the chess robot long-term anyway; the end effector is going to get heavier, not lighter, and it makes sense that the Y-axis needs a little help. It’s moving the entire X-axis along with the X-carriage and whatever gets mounted to it. The X-axis just has to move the X-carriage. Which isn’t heavy… at least not yet.


First Plotting Tests

First scribbles on the whiteboard — proof of motion, proof of life.

Motor Mount Render
Before upgrading with the second Y-axis stepper
Stepper Online Data Sheet
With the second stepper, at low feed rate

With the servo-lift head mounted and both Y motors synced, I hooked the system up to Universal G-code Sender.

Early tests were chaotic:

  • Pen skipping
  • Servo jerking
  • Belts complaining
  • Wobbly lines
  • Kitten chasing the pen like it owed him money

But once tuned, it started producing clean, repeatable lines.

The sample test path is my chess club logo, since I had the files and it will be a chess robot eventually.

It’s simple, but it let me tune speed, acceleration, backlash, and servo timing.


The Kitten Chaser Mode

Kitten Chaser

To Taborlin the Great (the kitten), the moving pen became:

  • THE BEST TOY EVER
  • cardio
  • distraction
  • chaos generator

He’s now fully convinced CNC motion is a personal invitation to sprint at the machine.

I’m calling this a biologically-inspired dynamic obstacle-avoidance test.

Once I get the joystick setup I’ll get a video of it chasing him around the board. I was too concerned about him eating the belts and chewing on the Electric Spaghetti™ …or getting stuck in a belt to do much other than scoop him off with the machine running a preset program.

Note to self: install kill switch.


Lessons Learned

  • Dual-Y motors are absolutely the correct choice
  • Dry-erase markers make great plotter tools
  • Kittens should not be allowed near moving belts

Giant Running TO-DO List

Borrowed directly from the last post to maintain continuity — and updated:

From Last Post

  • Design and Prototype Plotter head
  • Integrate to run on Raspberry Pi (ALMOST THERE)
  • Draw something cool!
  • Re-design and print permanent mountings for end stop switches
  • Maybe add a joystick and arcade buttons?!? (ALMOST THERE)

Mechanical & Motion

  • Dual Y-axis stepper motors
  • Pen-lift servo head
  • Add cable-chain mounts + strain relief

Electronics & Sensors

  • Hall-effect sensors experimentation (current front runner)
    • Add hall-effect test board
    • Bench-test
  • RFID sensors experimentation
    • Add RFID test board
    • Bench-test
  • ibutton experimentation (low priority)

Software

  • Implement basic “pen up / pen down” G-code macros
  • ROS2
    • Sim of motion envelope
      • Export of CAD to useable format
  • Research integrating Stockfish move generator

Stretch Goals

  • Camera-based calibration/piece ID
  • “Do not fight the robot” kitten-proofing cover

For Next Post

  • Integrate to run on Raspberry Pi
  • Re-design and print permanent mountings for end stop switches (low priority)
  • Maybe add a joystick and arcade buttons?!?
    • Make one of the buttons a Kill Switch or at least a stop
  • Add cable-chain mounts + strain relief
    • Cable management for X-carriage
    • Cable management for Y-axis
  • Basic Electronics Enclosure

← Back to Projects

This post is licensed under CC BY 4.0 by the author.