-
Group work: First meeting and mockup
Before the first actual meeting we, meaning me and Antti Palosaari, his documentation part 1 and part 2, had discussed that we could make a pen plotter. For me the biggest reason for this choice was that it would be fairly easy to understand and make. I also had made a pen plotter called SER-CNC, SER meaning Sähkö- ja Elektroniikka Romu, from electronics waste before so I had some knowledge about the automation.
In the first meeting we started to go through the components that we had available. I brought an old rail that I had laying around and Fab Lab had some guide shafts, stepper motors, stepper motors with threaded rods, pulleys and belts. We were discussing if we should use the CoreXY, but ultimately decided not to, to have an machine where the kinematics would be easier to understand and troubleshoot. First we were going to use threaded rods to drive X and Y axes but Fab Lab instructor Gleb Bulygin suggested that we could use belt to drive one of the axis. This proved to be a great suggestion because it gave us some wiggle room to connect separetly designed parts later. We created a quick layout of how to parts would be connected and assembled.General layout of the components -
Individual assignment: mount for the rail and stepper motor pulley system
Since the distance to the end of the rail was different on both ends, I decided to make a rough model of the whole rail.Rail 3D model Starting to model the belt system Enough space for nuts on both sides Necessary parts modeled A bit weak joint Assemling my laser cut design
I laser cut my designs and glued them together.Stepper side asssembled. You can also see the cork spacer. Idler side glued. You can also see the bolt that will hold the idler and support the top part. -
Group work: Fitting the parts together and first test
When we both had our parts ready we got together and assembled the parts. We had to drill a couple of holes larger to get the fitment right. The guide shaft fitted really snuggly and provided goot support. Antti had designed the solid pen mount so we could test the XY-axes with a pen. We used a bench vise to press the guide bearing in to the pen mount.Pressing guide bearing to pen mount Assembled machine. Belts still only loosely tied. GRBL
I had an arduino uno with a generic ebay/aliexpress CNC shield V3. I downloaded GRBL extracted and installed folder named as grbl as .ZIP library to Arduino IDE. GRBL has a great wiki site that explains the installation and flashing very well. After installing it as a library I could goFile → Examples → grbl → grblUpload
and then just upload it without changing anything.Chilipeppr
Chilipeppr is a website that allows people to create different kind of workspaces to control their hardware. Two different ready made GRBL workspaces were used as CNC controllers. To get the website communicating with the GRBL through serial port a Serial Port JSON Server need to be running. When running the server first time you need to grant it web access in windows firewall.Getting the first axis to move
The shield was meant for stepstick a4988 stepper motor drivers but Fab Lab had DRV8825 drivers but from a quick look they looked to be pin compatible, other than the motor windings. After couple of tries we got the motor windings correct and managed to move the first axis. I was wondering why the axis coordinate didn't update when the stepper turned. This was because I was in GRBL-workspace but I needed to be in jpadie-workspace because we used GRBL 1.1.We used lab supply to power the setup First drawing
After that we connected the second axis and tuned the steps/mm to be correct for each axis. We also enabled 1/32 microstep resolution to get a bit smoother steps. We adjusted the current by watching the current on the lab supply and testing the stalling torque by blocing the motion with hand. We left it to around 200 mA per axis. We were using 12 volts.
We used the solid pen mount and loaded a pen in there using an O-ring as rubber band and run the default chilipeppr G-code. We used a thick marker and the drag from that was enough to move the paper and the machine itself. This was pretty funny to me because in my knowledge, rigidity and dampening are problems in metal CNC-designs.Chilipeppr interface and default G-code It looks pretty horrible because it doesn't stop drawing on the linking movements. We used a thick marker and drag from that was enough to move the machine and paper. Z-axis discussion
We discussed how we would implement the Z-axis. We thought that we would either use a servo to lift the pen or we could use a small stepper motor act as a more traditional Z-axis. In our minds both of these solutions had almost of equal problems or unknowns. With the servo we would need a customized version of GRBL that would support servos and maybe some hand modiying of the G-code. The stepper motor solution would be easy on the software side but harder on the hardware side; the modelling of the Z-axis gantry would be harder to design.
We decided to get pair of old CD-drives from an electronic waste bin. One of them had a small stepper and good guide shafts inside of it.Stepper and guide shafts inside of old CD-drive -
Individual assignment: Servo pen lifter
I really like to design laser cuttable parts because it's just so much faster to manuafacture those. I decided to use the guide rails from the CD-drive to limit the movement to one axis. I decided to use the servo just as a simple cam to lift the pen carriage up and down. I thought that I would use just a hot glue or some other easy method to mount the lead screw nut to the pen lifter. I made a pretty tight press fit for the guide bearing. I was thinking that I could made stack a couple of MDF layers on top of each other to reduce the flex in the Y-direction but in the end it wasn't necessary. In the first version I had made a mistake and measured clearance for the servo horn from the center of the lead screw instead of from the outer diameter of it.Everything hitting the lead screw or lead screw nut Interactive 3D model of the last servo design Lead screw nut mounted with bolt and guide bearing pressed in GRBL with pen servo
Grbl with Pen Servo Feature was one of the first results that I got from googling GRBL servo, so I decided to use it. I had bit of problems when trying to get it working on the Arduino Uno and I thought it was because I had previous GRBL install messing something up. I decided to try it by making a portable Arduino IDE so I would get a completely fresh install. I had previously used a Arduino Uno copy and now I was using a real genuine one. This caused that the Chilipeppr didn't use GRBL buffer as it's default buffer and caused the system work for a second and then fail. This was solved by just selecting grbl buffer from the dropdown menu.It's best to always check that you have the correct buffer in Chilipeppr -
Group work: Generating G-code and running it
Inkscape has a couple of powerful tools for this type of plotters. First is the hersey text extension in the text extensions submenu. You can just type text in inkscape with normal text tool and convert it to hersey text, meaning it's only one line thick.Hersey text Cone tool. Change feed rate just by typing the new value in to correct place We used the default settings. Generating the G-code GRBL Settings $0=10 $1=1 $2=0 $3=2 $4=0 $5=0 $6=0 $10=0 $11=0.010 $12=0.002 $13=0 $20=0 $21=0 $22=0 $23=0 $24=25.000 $25=500.000 $26=250 $27=1.000 $30=1000 $31=0 $32=0 $100=160.000 $101=800.000 $102=800.000 $110=8000.000 $111=3000.000 $112=1000.000 $120=150.000 $121=100.000 $122=10.000 $130=200.000 $131=200.000 $132=200.000
Results the top one was written with the stepper motor pen lifter and the bottom one with the servo version Vidoe with different versions. There is NO sound on the video. -
Group work: Improvements
- Servo motor is too slow when lowering the Z-axis. You can see gaps in letters. Might be fixable just by tuning Z-axis feed and acceleration.
- When the Y-axis is far from the stepper motor, it adds a wobbling effect. Maybe caused by bent lead screw. Maybe fixable by using two guide shafts instead of one. -
Downloads
My files:
rail.f3d
rail.svg
servo.f3d
servo.svg
Antti's files:
PenPlotter.FCStd contains every model
MotorMount.stl
PenMountSimple.stl
PenMountPart1.stl
PenMountPart2.stl