I think after fine tuning this design I will finish the version with geared wheels as it makes more sense economically if it works just as well since it will be 6 less parts to buy (2 belts & 4 idlers) & only 2 extra parts to print. I have been a little stuck getting the Z-axis with pen mount designed, but making progress. While I am pondering my problems with that, I made a carriage belt clamp that moves the belt connection about 6mm inward so it will be a straighter shot to the end pulleys. There should be about 3mm clear between belt slot & wheels. I can increase that if I need to. Here is what they look like. I added 2 M3 screw holes for the plastic part, but will initially just use one to see if that is sufficient. I had to put the belt thru the slot before putting wheels back on. Think I would make the M3 hole a slight horizontal slot to allow for plastic 3d printer tolerance with hole as that seemed to be a tight fit. The belt is more of an angle going to the motor since that is 16T drive pulley. The 20T pulley might be a better choice here. The 2 attached photos give an idea of how much of difference this makes using the belt route I chose.
I increased the offset of the belt clamp & have it pretty close to straight on the idler side. I will either change the 16T to a 20T on the motor end or make another version with a little more offset on the other side. I also attached a screen shot of my progress on the Pen Mount. I took the basic idea of it from the eggbot design I modified. I have the end of the mount connected with N52 10mmx2mm disc magnets on both sides. That might change to 3 magnets on each side or a steel screw on one side with magnets only on one side. This is one place stainless steel screws don't work, unless they are poor quality stainless. The problem I am having is coming up with a way to easily manually move the pen mount up or down depending on the distance to the drawing. I would like to keep the 65mm aluminum plate in the design as it is a nice solid platform to build on. Maybe a dovetail joint with a side locking screw. It is almost there. I would like to use rack & pinion on it somehow, but am going to start with this.
I got the servo motor working yesterday & was able to finally do some test drawings. I created the initial gcode with Estlcam & edited the file with Notepad++ to change the Z codes to use the M280 P0 Sx codes for the Pen up & Pen down. The Pen up for this configuration is M280 P0 S0 & the final Pen down & to keep from getting a blob on the pen down movement, I used a gradual movement from 35 degrees to 45 degrees in 1 degree increments: M280 P0 S35 M280 P0 S36 M280 P0 S37 M280 P0 S38 M280 P0 S39 M280 P0 S40 M280 P0 S41 M280 P0 S42 M280 P0 S43 M280 P0 S44 M280 P0 S45 ;Pen Down I set the SERVO_DELAY to 50 in Marlin to keep from getting a ink blob. The default was 300. Here is a link to the 1st drawing test video. I will upload a 2nd video that cuts a pattern in a pan of sand. #define SERVO_DELAY { 50}
Early on in this design, I realized I can create patterns in a shallow pan of sand or baking soda in this case. If you are familiar with the ZenXY machine, this kind of like that upside down without the restriction of using a steel ball & magnet. I used Sandify for the pattern. That software is created by one of the Zen XY users. Here is a video of the plotter creating a spiral circle design.
Congratulations @David Bunch really nice work! For future reference as you may not know about it but there is a really handy gcode editor built right into gcode editor tab of OpenBuilds CONTROL software. I use it all the time for a quick replace all when editing codes.
I had thought about looking at that to control the printer, but since the MKS Gen 1.4 board currently doesn't have WiFi, I was using octoprint with a Pi3. I am powering the Pi with a Ravpower charger to have one less wall connection. I did just the China package with the wifi addon board & the new SKR 1.4 board. I might see if I can add the Wifi board to the MKS 8bit board. Think I saw a video of the procedure to do that. I will take a look at that to see what it can do, but inkscape is probably the best bet for creating the Gcode, I just haven't gotten around to looking at it yet. I just found this plugin for it. Inkcut, An free and open source application for controlling 2D plotters, cutters, engravers, and 2D CNC machines There is also this site that looks to have some interesting links on. Drawingbots.net - Home I just printed a couple of timing belts out of PETG to try tomorrow since the TPU has a tendency to stretch a little. They feel pretty good.I had tried one on eSun PLA+, but I broke that when attaching it. That might work also if I was more careful installing it. I also ordered the parts from China I need to make the DIY portable P/S using Ryobi batteries. I am going to redraw his case in fusion 360 since I ordered the usb & Bluetooth addons for the DPS5005 I might need to change that case.
I attached a zip file to the files area that contains STL files of all the design files, BOM text file & the Marlin-2.0.4.4 firmware Configuration files. Let me know if I missed anything. I will probably add the fusion 360 files when I am finished all my fine tuning.
I created the Ryobi PS Mount using DIY battery powered PS as a starting template. I plan to use his instructable for making this. I just needed a way to mount it to the V-Slot. I rotated the DSP5005 180 to read correctly. Looks like it should work. I might add a USB mounting hole for it also after I get my parts. I also found this Ryobi Power Deck mount, but I like the one I modified better for my situation. I also updated the build photo to my latest changes. I tried 2 belts made with PETG & installed one for testing. It didn't work at all. TPU is the next best thing to real belt so far for me. Here is what the Ryobi PS mount modification looks like:
I found a Drawing Robot pen mount design that is better than what I am using & am going to rework that idea into my design. It uses 3mm rods from a DVD drive which is a size that ballpoint pen springs will fit around. I had a few spare DVD drives & took the worst one apart & retrieved those rods. I test printed the new gear drive today & looks & feels good. The test plate bends a little which actually made it easier to put that large gear on there since I didn't have motor screw access holes I will add some slotted holes on the final design. I still have to design a locking collar for the drive gear before reprinting that. The wheels will be printed first so I can see better of how to place that. Here is a photo of the test drive gear assembly.
Before reprinting these parts, I put the assembly together & looks pretty good. The only thing I see is the drive gear attached to the motors is about 2mm beyond the end of the shaft. There is still 17mm of it attached. Since I have the 4 spokes tapered to the center it should be strong enough. The .15mm backlash setting I took from a youtube video on creating custom gears in fusion360 by Product Design Online. Here are the Helical gear settings I used in fusion 360 (yellow highlighted with what I changed from default settings) & a couple screen shots of current design. The wheel motors are a little over 5mm above the bottom of the v-slot at highest tension point of mounted slots. I am tempted to move the wheels 6mm to 10mm lower in case I want to put the center v-slot all the way the center.
It was fairly easy to make an optional 10mm taller plate, so I went ahead and did it while the design is fresh in my head. I will still use the shorter plate as that should be more stable being closer to the ground. I would only have to reprint the 2 end plates if I want it taller.
After test fitting & moving the gears around, that big drive gear wobbled too much. I played with making the wheel space shorter to get a smaller drive gear, but then it would be difficult to adjust the 4 motor mount screws. To get the smaller drive gear, I needed an additional gear between the drive gear & wheels, so I made a gear that uses the two of 625-2RS bearings in each of those bearing gears. That is the same bearing in the full size wheel kit & I have enough spares of those around. I am not sure how to calculate the DEFAULT_AXIS_STEPS_PER_UNIT in Marlin, so that might be a trial & error. The gear ratio is now 1.83:1. and OD of 12T gears is 31.713mm. I found 3D Printer Firmware Settings - Stepper Motor Configuration | Matter Hackers , but this is for extruders. I guess the pinch wheel in this formula is the drive gear. Steps per Unit (Extruder) = Motor Steps per Revolution * Extruder Gear Ratio / (Pinch Wheel Diameter * Pi) Here is a screen shot of the current design. After assembling the gears in fusion, I initially had the drive gear teeth going the wrong way. Since I added the extra gear between the wheels that direction had to change.
While walking this morning I was thinking about how to keep the gears inline since I had a problem with that large drive gear. I had the bright idea of making o-ring slots to match the o-ring tires & also add an o-ring the outside of the drive gear. Not enough room to put a 2nd one on the inside of the drive gear. Having smaller gears might make the problem go away, but some extra help with keeping them in alignment wouldn't hurt. If they line up well, it should work. This Round #318 Very Hard Buna N O-Ring should fit the drive gear. I will test print them & see if there is a problem. Here is what the design change looks like. I am also changing the pen mount to use a 125mm length of 2020 mounted vertically on the front center of the carriage offset about 6mm with a plastic shim print . That should make it easier to mount anything to.
I finally got the 2 end plates printed for the new design after a couple of failed prints. They feel a little clunky rolling the gears around by hand, but might be alright after I get the adjustments correct. I should be ready to test it in the morning. I still kind of like using the big 33T gear on the motor since it less adjustments to do for meshing the gears. While I was waiting on my prints I decided to work on an idea to keep that big gear stable & this just might work. I designed a mount for inserting a Mini Ball Bearing 105zz 5x10x4 bearing on each side where the current in between gear is having it roll against the inside face of the gear. Seems like that should keep it inline. Here is what that idea looks like. I placed it so I would not have to reprint the endplates to test it. I tried to put the bearings closer to where gears meet, but using the current slotted holes this was the best I could do.
I tested the machine with the 2 in between bearing gears & could not get them to adjust for a good meshing of the gears. Just having that one gear to adjust makes a big difference. I redesigned that 33T drive gear to have a side slot mounting on the motor which will probably be a better fit than using the captive nut with M3 screws used as set screws like the aluminum drive pulleys use. If does not stay straight, I will try the bearing roller idea. Here is what the drive gear should look like. I should be able to test later today or tomorrow morning if my printer behaves.
It appears that with the 33T drive gear there is not enough torque to turn the wheels. I adjusted the vref from my initial .47v on the DRV8825 to .65v & then .91v & the wheels still will not turn. The drive gear will turn when the wheels are not engaged. I also tried it with the wheels off the ground to see if they would turn. I either need to go to a smaller tooth drive gear or go back to my original belt driven method. I might shorten the wheel offset & see if I can have motor mount access holes placed in the wheels. It is funny that my 1st idea worked the best. I have some 105zz 5x10x4 bearings I might try for making a smaller idler pulley with the belt design. Here is what the smaller idler pulley looks like. 18.5mm O.D.
That 1 bearing idea doesn't look like it will work, so I redesigned it with 2 bearings. I was trying to skimp on bearings.
I made a parametric openscad file creating these idler pulleys & uploaded the zip file Idler_Pulley_200326.zip to the files area. I created 4 sample STL files & included them. Idler_Pulley_105zz_Bearings_L_Rev1.stl Loose fitting (.35mm tolerance or .7mm bigger diameter than bearing) Idler_Pulley_105zz_Bearings_T_Rev1.stl Tight Fitting (.2mm tolerance or .4mm bigger diameter than bearing) Idler_Pulley_625-2RS_Bearings_L_Rev1.stl Idler_Pulley_625-2RS_Bearings_T_Rev1.stl Idler_Pulley_Bearing_Rev1.scad Idler_Pulley_Bearing_Rev1.jpg There is also an image showing what the variables are for. I attach it to this message as well.
I was about to get on thingiverse this morning, so I uploaded the idler pulley bearing design there & also made a version in fusion 360. Parametric Idler Pulley Bearing by GeoDave
I reprinted the wheels for the original GT2 belt driven version yesterday since I had not made the ones with indented version that used shorter length bolts. Actually I have one more of those to print since that last print failed. I have been working off & on with the Pen mount. That seems to be the most difficult for me. I found the pen mount portion of this design that seems like it will work in my design. Drawing Robot - Arduino Uno + CNC Shield + GRBL by henryarnold I used this remix Heavy Duty Pen Slider by Jonathan_K1906 of the pen mount portion & redrew it to fit within what I needed. I took most of the overhangs out to cut down on printing time. Here is what I have ready to print 1st test prints.
Think I have a descent pen mount now. It can stand a little more fine tuning, but should work. For the springs I took a dollar store pen (probably bought them in a pack of 3 or 4 pens) & cut the spring in half. It fits perfectly around the 3mm smooth rod & the pen mount slides very smoothly. I would have preferred to have the pen closer to the vertical 2020, but it is very light & should be alright. Looks like I could have moved it about 5mm closer. I will leave it for now since I might just change the orientation anyway. I started to mount the whole assembly with long M5 screws, but I had some M3x35mm & M3x45mm screws, so I designed it with them in mind. It took the 45mm lengths to reach. There are 4 printed parts to this design. The design I remixed this from I linked in previous message. Think I should be ready to test this again tomorrow.
The servo worked well, but the 3d printed belt is still a problem. I worked on moving the pen mount closer to the carriage. I mounted it sideways along the outside of the 2020 & changed the pen mount to have servo tabs on both outside edges instead of the center. I only need them on one side, but just in case I want to move it to the other side there is that option. The printed part count went from 4 to 3 when I moved it closer & only M3x16mm screws are used to hold it instead of the M3x45mm, so I essentially moved it 29mm closer. I am pretty happy with that mount now & will reassemble it tomorrow.
Here is a test of the servo for the Z-axis using Marlin firmware. The servo is not implemented for this unless I use a special branch that has “SERVOSTEPPER” option for Z_DRIVER_TYPE. Here is short video showing my problem. Stepper Driver type "SERVOSTEPPER" by TheSFReader · Pull Request #9935 · MarlinFirmware/Marlin I tried using this branch, but it doesn’t work for me. It works about the same as what it did before, but maybe a little slower servo movement. I don’t know what extra settings to make at this point. Anyone know what additional changes I would need to get this to work? I might be better off just using a small 28BYJ-48 stepper motor which should be easy to implement in current pen holder design. Here is the Marlin branch I used: TheSFReader/Marlin The only other change I made to use the servo was: #define Z_DRIVER_TYPE SERVOSTEPPER #define NUM_SERVOS 1 Here is the test GCODE I made: ;Test drawing Center Line with servo motor along Y-axis G90 M280 P0 S80 ;Pen Up G00 X0.0 Y0.0 Z0.0 M280 P0 S0 ;Pen Down G00 Y65.5000 F1200 M280 P0 S80 ;Pen Up G01 Y77.5 M280 P0 S0 ;Pen Down G01 Y97.5 M280 P0 S80 ;Pen Up G01 Y109.5 M280 P0 S0 ;Pen Down G01 Y154.0 M280 P0 S80 ;Pen Up G01 Y166.0 M280 P0 S0 ;Pen Down G01 Y186.0 M280 P0 S80 ;Pen Up G01 Y198.0 M280 P0 S0 ;Pen Down G01 Y240.5 M280 P0 S80 ;Pen Up G01 Y252.5 M280 P0 S0 ;Pen Down G01 Y272.5 M280 P0 S80 ;Pen Up G01 Y284.5 M280 P0 S0 ;Pen Down G01 Y350.0 M280 P0 S80 ;Pen Up G00 Y0.0000
I didn't make any progress with getting the servo motor to work correctly, so I decided to let go of that aggravation & work on a mount for a stepper motor. I first made a mount to use the small 28BYJ-48 5v motor, but that looks kind of kludgy to connect it all up. I have a nema17 pancake motor that is only 4.8oz so that is what I intend to use since it is a simple one cable connection to the controller board. Not sure if there is any correct steps per mm with this setup, so will probably just use 200 to start with. Here is a screen shot of both of those mounts.
Since I am dealing more with an angle movement for the z-axis & I want to use 5mm Z height for the Pen up which should be around 22.5 degrees, 160 looks like the number I want to use. I used the leadscrew calculator portion of the prusa calculator to see this easier.
Looks like my timing belts will be here any day now, but in the meanwhile I had a wild idea about another version of gear drive. Since I need a small drive gear for more torque & the intermediate gears would not mesh well, what about a planetary gear drive? After about an hour or so of drawing in fusion this is what I came up with. I could use my 2 or 3 of the small bearings rolling along the edge of the outer planetary ring as I mentioned in a previous post if it gets wobbly. I also have to mount the motor a little higher up. I think it looks pretty cool, but whether it works or not might be a different story. Not sure I can get them to print in place meshed with the fusion 360. That parametric openscad planetary gear file I have seen might be better for that. I have 12T sun & planets. Inner ring is 36T & outer ring is 44T & the wheels are 22T. Does that still give me a 1.83:1 gear ratio from 12T drive to 22T Wheels like the regular gears give or are planetary ratios figured differently? Someone from another forum says this needs to be a compound planetary gearset, so I will have to research that a little further.
I may have found a solution to using the servo for Z-axis. Yesterday I started looking into using klipper firmware instead of Marlin & posted a question to the klipper community on facebook. Someone mentioned using a retract macro for it. With a google search I found this page. Firmware retraction · Issue #824 · KevinOConnor/klipper That looks like it should work. For the retract, I will just substitute M280 P0 S80 ;Pen Up for G10 & M280 P0 S0 ;Pen Down and G11 I wonder if I could do something similar in Marlin & overwrite the G10 & G11 commands since I don’t need them with this configuration? I have configurated klipper before, so the klipper firmware shouldn’t be too difficult.
Here is a solution someone on the v1engineering forum gave me to my planetary gear idea. It is not really a planetary gear this way, but does look interesting. I might have to print a smaller ring example of this to see how it feels. It reminds me of a ferris wheel
After fiddling with klipper firmware for a day, it has solved all my firmware problems. The servo action works perfect. I created a G10 & G11 macro for Pen movements which keeps in the G1 gcode drawing sequence. I have a bad idler bearing & still have the TPU 3d printed belts on there. I should be able to test the real belts later in the week. One set of wheels are not rolling well which seems to be the bad idler bearing. I only had 6 of the flange bearings which have worked the best for me. I just need to come up with a better bearing substitute or get some more of those bearings. Here is short video testing the klipper firmware.