loading
6Instructables47,793Views55 CommentsNew Zealand
55+ years in electronics, computers, and teaching ... now retired.

Tell us about yourself!

Complete Your Profile

Achievements

10K+ Views Earned a bronze medal
Show 0 More »
  • lingib commented on lingib's instructable CNC Drum Plotter2 weeks ago
    CNC Drum Plotter

    The code for this plotter has been updated.See step 11 of this instructable for Drum_Plotter_V2.ino

    View Instructable »
  • lingib commented on lingib's instructable CNC Graphics Tablet3 weeks ago
  • lingib commented on lingib's instructable CNC Drum Plotter1 month ago
  • lingib's instructable CNC Drum Plotter's weekly stats: 1 month ago
    • CNC Drum Plotter
      20,553 views
      238 favorites
      20 comments
  • lingib commented on lingib's instructable CNC Drum Plotter1 month ago
    CNC Drum Plotter

    Glad you liked it :)

    The linear guide is pretty solid and would probably carry the weight of a laser assembly.As mentioned the mechanical side needs to be improved and biarc curves need to be added to the interpreter if you are looking for a professional result.

    Several reasons for the lettering(1) wobbles due to backlash in the motor gears.(2) small motors don't like a lot of belt-tension. Changes of direction must take up any belt slack before anything moves. That can be fixed using larger motors (which have a higher torque) and matching controllers.(3) "play" in the linear guide.(4) ball-bearings not used for the drum(5) my interpreter ignores the I,J biarc Inkscape information for determining circle centers. It simply plots a line from point to point, rather than an arc, which accounts for the slight truncated look.Items (1) to (4) are purely mechanical and easily fixed $$$$Item (5) requires a software patch which I am currently working on. Instead of plotting a line between two points when it encounters a curve, a series of addit...see more »Several reasons for the lettering(1) wobbles due to backlash in the motor gears.(2) small motors don't like a lot of belt-tension. Changes of direction must take up any belt slack before anything moves. That can be fixed using larger motors (which have a higher torque) and matching controllers.(3) "play" in the linear guide.(4) ball-bearings not used for the drum(5) my interpreter ignores the I,J biarc Inkscape information for determining circle centers. It simply plots a line from point to point, rather than an arc, which accounts for the slight truncated look.Items (1) to (4) are purely mechanical and easily fixed $$$$Item (5) requires a software patch which I am currently working on. Instead of plotting a line between two points when it encounters a curve, a series of additional points will be introduced such that a true arc is plotted. I will upload the new .ino code to this instructable once it has been tested.As is, this plotter meets my requirement of transferring watercolor outlines onto paper.

    Thank you :)

    View Instructable »
  • lingib commented on lingib's instructable CNC Drum Plotter1 month ago
    CNC Drum Plotter

    Weather maps, wire photos, and slow scan TV. That brings back some fond memories.Unlike traditional XY plotters, raster scan images are possible with this plotter but the drum speed would need to be increased somewhat.Thanks for the memory :)

    Nice thought :)

    Details on constructing end-plugs, together with photos, are given in step 3

    I like to experiment. For example my hanging plotter, using the same motors and half-stepping, has a resolution of 4096 steps per revolution, whereas this plotter, using full-stepping, has a resolution of only 2048 steps per revolution but more output torque from the motors.

    View Instructable »
  • lingib commented on lingib's instructable CNC Drum Plotter1 month ago
  • lingib commented on lingib's instructable CNC Robot Plotter2 months ago
    CNC Robot Plotter

    Hi ThomasYour plotter seems to be working okay ... that's great ... well done :)The issue seems to be with the gcode that you are sending to the plotter. The following suggestions will help isolate the problem:(1) Send a series of manual commands (G0 X100 Y200) to the plotter. Does the plotter move to that co-ordinate. Each command should be echo'd onto your screen along with the Xon Xoff handshaking codes (17: 19:). If this is happening then your serial connection is working okay.(2) The third party gcode interpreter MUST be able to display your desired tool-path. If it can't then the plotter is receiving a garbled message. This will explain the random moves. Since the plotter is happy with the on-board test square try sending a square via the bluetooth link.(3) If that doesn't work ha...see more »Hi ThomasYour plotter seems to be working okay ... that's great ... well done :)The issue seems to be with the gcode that you are sending to the plotter. The following suggestions will help isolate the problem:(1) Send a series of manual commands (G0 X100 Y200) to the plotter. Does the plotter move to that co-ordinate. Each command should be echo'd onto your screen along with the Xon Xoff handshaking codes (17: 19:). If this is happening then your serial connection is working okay.(2) The third party gcode interpreter MUST be able to display your desired tool-path. If it can't then the plotter is receiving a garbled message. This will explain the random moves. Since the plotter is happy with the on-board test square try sending a square via the bluetooth link.(3) If that doesn't work have a look at the gcode output generated by Inkscape. A square only has six gcode instructions ... two positioning codes plus each of the four corners. Are these what you expect?(4) Inkscape generates headers and footers plus a lot of other codes that the on-board interpreter ignores. It is possible that Inkscape has generated an unfortunate sequence of alpha-numerics in the header. To eliminate this possibilty try "Step 8 ... Code Pre-Preprocessing" in my instructable http://www.instructables.com/id/CNC-HANGING-PLOTTE...Not only does this technique strip out all of the unwanted code it significantly reduces your plot time :)The important points are:(a) each gcode line must have a G-value, an X-value, and a Y-value(b) there should only be one of the above values in each line(c) you should be able manually plot the tool-path by following the gcode.

    Hi ThomasYour plotter seems to be working okay ... that great ... well done :)The issue seems to be with the gcode that you are sending to the plotter. The following suggestions will help isolate the problem:(1) Send a series of manual commands (G0 X100 Y200) to the plotter. Does the plotter move to that co-ordinate. Each command should be echo'd onto your screen along with the Xon Xoff handshaking codes (17: 19:). If this is happening then your serial connection is working okay.(2) The third party gcode interpreter MUST be able to display your desired tool-path. If it can't then the plotter is receiving a garbled message. This will explain the random moves. Since the plotter is happy with the on-board test square try sending a square via the bluetooth link.(3) If that doesn't work have...see more »Hi ThomasYour plotter seems to be working okay ... that great ... well done :)The issue seems to be with the gcode that you are sending to the plotter. The following suggestions will help isolate the problem:(1) Send a series of manual commands (G0 X100 Y200) to the plotter. Does the plotter move to that co-ordinate. Each command should be echo'd onto your screen along with the Xon Xoff handshaking codes (17: 19:). If this is happening then your serial connection is working okay.(2) The third party gcode interpreter MUST be able to display your desired tool-path. If it can't then the plotter is receiving a garbled message. This will explain the random moves. Since the plotter is happy with the on-board test square try sending a square via the bluetooth link.(3) If that doesn't work have a look at the gcode output generated by Inkscape. A square only has six gcode instructions ... two positioning codes plus each of the four corners. Are these what you expect? (4) Inkscape generates headers and footers plus a lot of other codes that the on-board interpreter ignores. It is possible that Inkscape has generated an unfortunate sequence of alpha-numerics in the header. To eliminate this possibilty try "Step 8 ... Code Pre-Preprocessing" in my instructable http://www.instructables.com/id/CNC-HANGING-PLOTTE...Not only does this technique strip out all of the unwanted code it significantly reduces your plot time :)The important points are:(a) each gcode line must have a G-value, an X-value, and a Y-value(b) there should only be one of the above values in each line(c) you should be able manually plot the tool-path by following the gcode.

    Hi ThomasYour plotter seems to be working okay ... that's great ... well done :)The issue seems to be with the gcode that you are sending to the plotter. The following suggestions will help isolate the problem:(1) Send a series of manual commands (G0 X100 Y200) to the plotter. Does the plotter move to that co-ordinate. Each command should be echo'd onto your screen along with the Xon Xoff handshaking codes (17: 19:). If this is happening then your serial connection is working okay.(2) The third party gcode interpreter MUST be able to display your desired tool-path. If it can't then the plotter is receiving a garbled message. This will explain the random moves. Since the plotter is happy with the on-board test square try sending a square via the bluetooth link.(3) If that doesn't work ha...see more »Hi ThomasYour plotter seems to be working okay ... that's great ... well done :)The issue seems to be with the gcode that you are sending to the plotter. The following suggestions will help isolate the problem:(1) Send a series of manual commands (G0 X100 Y200) to the plotter. Does the plotter move to that co-ordinate. Each command should be echo'd onto your screen along with the Xon Xoff handshaking codes (17: 19:). If this is happening then your serial connection is working okay.(2) The third party gcode interpreter MUST be able to display your desired tool-path. If it can't then the plotter is receiving a garbled message. This will explain the random moves. Since the plotter is happy with the on-board test square try sending a square via the bluetooth link.(3) If that doesn't work have a look at the gcode output generated by Inkscape. A square only has six gcode instructions ... two positioning codes plus each of the four corners. Are these what you expect?(4) Inkscape generates headers and footers plus a lot of other codes that the on-board interpreter ignores. It is possible that Inkscape has generated an unfortunate sequence of alpha-numerics in the header. To eliminate this possibilty try "Step 8 ... Code Pre-Preprocessing" in my instructable http://www.instructables.com/id/CNC-HANGING-PLOTTE...Not only does this technique strip out all of the unwanted code it significantly reduces your plot time :)The important points are:(a) each gcode line must have a G-value, an X-value, and a Y-value(b) there should only be one of the above values in each line(c) you should be able manually plot the tool-path by following the gcode.

    Some questions:1: What happens when you run one of the in-built test patterns ... say the square? Does this work as described? 2: How did you generate your gcode? The onboard interpreter will only accept the output from inkscape.3. Does the third-party gcode simulator draw what you expect?4: What is your Teraterm delay between characters when sending? Does it work if you increase the delay between characters to say 200mS? If it does then gradually reduce the delay until the bluetooth transmission is no longer reliable.5: Are you feeding the motors and servo via the 5 volt regulator? Voltage fluctuations can cause an arduino to do strange things.

    View Instructable »
  • lingib commented on lingib's instructable CNC Robot Plotter3 months ago
    CNC Robot Plotter

    The chassis dimensions are not critical. My chassis is 16cm long and 11cm wide.

    View Instructable »
  • lingib commented on lingib's instructable CNC Robot Plotter4 months ago
    CNC Robot Plotter

    A separate regulator is used because the the supply current, when both motors are running, peaks at around 550mA which exceeds the current rating for the onboard regulator.A summary of the Arduino current ratings may be found here:https://forum.arduino.cc/index.php?topic=50287.0

    A separate regulator is used because the supply current, when both motors are running, peaks at around 550mA which exceeds the current rating for the onboard regulator.A summary of the Arduino current ratings may be found here:https://forum.arduino.cc/index.php?topic=50287.0

    View Instructable »
  • lingib commented on lingib's instructable CNC Hanging Plotter4 months ago
    CNC Hanging Plotter

    Thank you for your comment.The main reason for not using an Arduino motor controller shield is that the BJY-48 stepping motors came with their own ULN2003 controllers plus I happened to have a number of Arduinos lying around. But you have raised some interesting points.Motor shields, https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino , do not appear to have the functionality required for this project. The lowest speed using the setSpeed() function in an Arduino motor shield appears to be 1 RPM whereas this project requires fractional speeds.Most plotter's use a line drawing algorithm such as https://en.wikipedia .org/wiki/Bresenham%27s_line_algorithm which requires a decision for each X-axis or Y-axis change. A motor shield that suports multiple stepping motors is ideal fo...see more »Thank you for your comment.The main reason for not using an Arduino motor controller shield is that the BJY-48 stepping motors came with their own ULN2003 controllers plus I happened to have a number of Arduinos lying around. But you have raised some interesting points.Motor shields, https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino , do not appear to have the functionality required for this project. The lowest speed using the setSpeed() function in an Arduino motor shield appears to be 1 RPM whereas this project requires fractional speeds.Most plotter's use a line drawing algorithm such as https://en.wikipedia .org/wiki/Bresenham%27s_line_algorithm which requires a decision for each X-axis or Y-axis change. A motor shield that suports multiple stepping motors is ideal for this algorithm.My algorithm is significantly different in that it only performs one set of calculations for each pen move: the number of steps, and the delay between steps, for each motor. The ratio of these delays is often extremly large ... often greater than possible using delay() or delayMicroseconds(). My algorithm caters for this but requires that each motor be placed in its own dedicated delay loop. This requires that two Arduinos are used as Arduino microcontrollers are only single-tasking.

    View Instructable »
  • lingib commented on lingib's instructable CNC Robot Plotter4 months ago
    CNC Robot Plotter

    The motor speed can be reduced by increasing the delay between motor steps. Search the code for "delay(" and play with the delay values. Currently the delay is set to delay(2) or 2 milliseconds between steps. Theoretically the motor speed may be doubled by setting the delay between steps to delay(1) but I have found that 1mS between steps is too fast for the motor to respond. Increasing the delay to delay(4) will half the robot speed.

    The motor speed can be reduced by increasing the delay between motor steps. Search the code for "delay(" and play with the delay values. Currently the delay is set to delay(2) or 2 milliseconds between steps. Theoretically the motor speed may be doubled by setting the delay between steps to delay(1) but I have found that 1mS between steps is too fast for the motor to respond. Increasing the delay to delay(4) will halve the robot speed.

    View Instructable »