Introduction: ROTARY CNC BOTTLE PLOTTER
I picked up some rollers, which are probably used in the printer. I came up with the idea of turning them into the rotation axis of CNC bottle plotter. Today, I'd like to share how to build CNC bottle plotter from these rollers and other scraps.
To do this project, I was inspired by lingib with his CNC Drum Plotter: https://www.instructables.com/CNC-Drum-Plotter/
Let’s getting started.
Step 1: THINGS WE NEED
- 1pcs x Arduino Uno R3.
- 1pcs x Arduino CNC Shield V3 GRBL.
- 4pcs x Stepper Motor Driver A4988.
- 2pcs x Old CD/DVD Players.
- 2pcs x Stepper Motor NEMA 17-size.
- 2pcs x Old Printer Rollers, with length about 370mm and diameter 10mm.
- 2 meter x 8P Rainbow Ribbon Cable.
- 2pcs x Aluminum Flexible Shaft Coupling, Inner Hole Size: 5mm x 8mm.
- 1pcs x Aluminum Flexible Shaft Coupling, Inner Hole Size: 10mm x 10mm. It is used to clamp the pen/ pencil.
- 1pcs x Stapler.
- 6pcs x Copper Brass Pillars L-5/10mm.
- 3pcs x Threaded Rod Hangers and Nuts M10 x 500mm. I used threaded bolt type for hanging lights.
- 8pcs x Bearing 8mm ID.
- 2pcs x XH2.54mm – 6P 20cm Wire Cable Double Connector.
- 4pcs x L shape supports.
- 2pcs x Mounting Support for Stepper Motor.
- 1pcs x Power Supply 12V.
- Some small cable ties, cable spiral wrap, M4 bolts and nuts.
Step 2: SOFTWARES
- GRBL firmware.
- Inkscape.
- AxiDraw Software 2.6.3 by Evil Mad Scientist Laboratories. It is optional for hatch fill extension.
- Universal Gcode Sender.
Step 3: ROTARY Y AXIS ASSEMBLY
I reused 2 wooden sticks from my kids toys, drilled 2 holes on each sticks with distance about 65mm and mounted the bearing into drilling holes.
- Blue wooden stick dimension: 100 x 30 x 10mm
- Red wooden stick dimension: 165 x 30 x 10mm
Two printer rollers ends were inserted into bearing of blue wooden stick.
I inserted other side roller ends into bearing of red wooden stick and connected 2 stepper motors Y axis to 2 rollers by flexible coupling 5x8mm. Then I cut a wooden plate dimension 250x350mm to build a CNC footplate and mounted the L shape supports on it. The stepper motors and red wooden sticks were mounted on this footplate.
Step 4: X AND Z AXIS ASSEMBLY
The X-axis and Z-axis were mounted on a wooden box 12x10x6mm which was drilled 4 holes and inserted 4 nuts M10 into these holes. The distance between the two nuts on one side is 30mm.
The M10 threaded rods were polished at both ends until they reach a diameter of 8mm.
I screwed two M10x500 threaded rods into 4 nuts of the wooden box. Depending on the bottle length, I can adjust the position of the X-axis manually. Four other nuts were also screwed to two ends of thread rods in order to fix the desired position.
For X and Z axis, I mounted 2 old CD/DVD players on the above wooden box 12x10x6mm.
For clamping the pen/pencil, I used the stapler's spring mechanism and flexible coupling 10x10mm. Details you can check at my previous instructable: BACK TO BASIC-MINI CNC PLOTTER
I cut the 2 wood plates with dimension 100x200mm to build the left and right side support of X and Z axis. I drilled 2 holes on each plates with distance about 30mm and mounted the bearing into drilling holes. The other holes were used to connect to L shape supports.
Two threaded rods with two CD/DVD players were inserted into 2 bearings of the right and left side supports
In order to keep the X-axis supports strong enough, I used one additional threaded rod 10x500mm to connect the left and right supports.
The left and right supports of XZ axis were mounted on the CNC foot plate.
Because the X-axis is limited to 40mm, to be able to extend the plotting range, I used some printer gears and belt to connect 2 threaded rods together. By this way, I can adjust the desired plotting position depending on the bottle length by hand.
Done.
Step 5: CONNECTIONS
My project used 4 stepper motors and A4988 drivers. Because rotary Y axis operated with 2 stepper motors, I had to add 2 jumpers as below picture to configure the 4th axis. In this case, Y-Axis is cloned to the 4th stepper driver A4988 which is marked as "A" on the CNC shield.
Finally I mounted CNC Shield and Arduino Uno to CNC foot plate and connect cables from 4 stepper motors to 4 drivers A4988.
Notes: You can refer to my instructable BACK TO BASIC-MINI CNC PLOTTER at STEP 5 for setting up micro-steps and current limit of stepper driver A4988.
- My micro-steps setting is 1/8 step resolution for all stepper motors.
- We should pay attention to set the current limit of stepper motors by adjusting the trimmer potentiometer on the A4988 board.
All assemly works and electrical connections were done.
Step 6: GRBL FIRMWARE AND CALIBRATION
1. Upload GRBL firmware to Arduino Uno
- Download GRBL firmware files.
- Copy GRBL to C:\Users\Administrator\Documents\Arduino\libraries\
- Open Arduino IDE, from File menu click Examples ‣ GRBL ‣ grblUpload.
- Select the correct port and board (Arduino Uno), compile and upload the code to Arduino Uno.
2. GRBL parameters for my bottle plotter are as follows:
$0 | 10.000 | Step pulse time |
$1 | 25.000 | Step idle delay |
$2 | 0.000 | Step pulse invert |
$3 | 0.000 | Step direction invert |
$4 | 0.000 | Invert step enable pin |
$5 | 0.000 | Invert limit pins |
$6 | 0.000 | Invert probe pin |
$10 | 1.000 | Status report options |
$11 | 0.010 | Junction deviation |
$12 | 0.002 | Arc tolerance |
$13 | 0.000 | Report in inches |
$20 | 0.000 | Soft limits enable |
$21 | 0.000 | Hard limits enable |
$22 | 0.000 | Homing cycle enable |
$23 | 0.000 | Homing direction invert |
$24 | 25.000 | Homing locate feed rate |
$25 | 500.000 | Homing search seek rate |
$26 | 250.000 | Homing switch de-bounce delay |
$27 | 1.000 | Homing switch pull-off distance |
$30 | 1000.000 | Maximum spindle speed |
$31 | 0.000 | Minimum spindle speed |
$32 | 0.000 | Laser-mode enable |
$100 | 53.333 | X-axis travel resolution |
$101 | 20.000 | Y-axis travel resolution |
$102 | 53.333 | Z-axis travel resolution |
$110 | 1000.000 | X-axis maximum rate |
$111 | 1000.000 | Y-axis maximum rate |
$112 | 1000.000 | Z-axis maximum rate |
$120 | 50.000 | X-axis acceleration |
$121 | 50.000 | Y-axis acceleration |
$122 | 50.000 | Z-axis acceleration |
$130 | 40.000 | X-axis maximum travel |
$131 | 220.000 | Y-axis maximum travel |
$132 | 40.000 | Z-axis maximum travel |
The important parameters which I have done the calibrations are highlighted in table above.
3. STEP/MM setting:
The step/mm setting for stepper motors are shown in tables below by formula:
Steps/mm = (Steps per Revolution)*(Micro-steps) / (mm per Revolution)
- X AND Z AXIS - $101 and $103:
The working length of the screw: | 40.00 | mm |
Step angel: | 18 | ° |
The number of steps required for DVD stepper to make 1 complete revolution: | 20 | step/rev |
A4988 micro-steps setting: | 8 | - |
DVD stepper screw pitch (mm/revolution): | 3.0 | mm/rev |
STEP/MM: | 53.333 | step/mm |
- Y AND A AXIS - $101
To determine the STEP / mm of the rotary axis, I measured the circumference of the cylindrical rubber attached on the printer rollers. It is straight length for stepper motor to make 1 complete revolution and it is 80mm in my case.
In my testing, I used some glass bottles (fish sauce bottle) with circumference 220mm.
The working length of the rotary axis: | 220.000 | mm |
Step angel: | 1.8 | ° |
The number of steps required for stepper to make 1 complete revolution: | 200 | step/rev |
A4988 micro-steps setting: | 8 | - |
mm per revolution: | 80.000 | mm/rev |
STEP/MM: | 20.000 | step/mm |
Step 7: INKSCAPE AND UGS
1. INKSCAPE
- From the Inkscape menu go to File ‣ Properties and in the Page Tab set the Display Units (millimeters), the Orientation to Portrait and Page Size: 40x 220mm.
- Import a suitable image by using the menu File ‣ Import. In the menu, go to Path ‣ Trace Bitmap and convert the Object to Path.
- Go to Extensions ‣ Gcodetools ‣ Tools Libary. Select Tools Type: Cylindrical and click Apply.
- Go to Extensions ‣ Gcodetools ‣ Orientation Points
- Orientation type: 2-points mode.
- Z Surface: 0.0mm. This is the top of your paper surface.
- Z Depth: -1.0mm. This is working position of Z axis when CNC plotter is drawing object. This negative number ensure that the pen tip can touch the paper.
- Go to Extensions ‣ Gcodetools ‣ Path to Gcode
- Z safe height: 2mm. It is height above the plotting surface when moving between drawing points.
- Click the Path to Gcode Tab before clicking Apply. This creates the G-code file.
2. UNIVERSAL GCODE PLATFORM
- Open Universal Gcode Platform, select Port and set Baud to 115200, click on Connect tab.
- Select the appropriate position by moving X axes left - right, Y axes forward - backward and set the original coordinates by button Reset Zero.
- Click Open ‣ Browse to the G-code file that generated by INKSCAPE.
- Click Send and CNC plotter will perform drawing picture following the G-code.
- Monitor the plotter in action on the Visualizer tab.
Step 8: TESTING
I have a lot of fish sauce bottles made of glass. Usually, they are thrown away after use, but from now on, they will be named or decorated by my CNC bottle plotter to store the necessary liquid spices. We can easily change to different kind of pens, such as colored pen/ pencil...because they are clamped by motor flexible coupling 10x10mm.
Step 9: FINISH
You can see some pictures of this project.
Thank you very much for reading my work and hope you enjoyed my article this time!