author
26Instructables267,463Views200CommentsNew ZealandJoined November 6th, 2015
55+ years in electronics, computers, and teaching ... now retired.

Tell us about yourself!

Complete Your Profile

Achievements

100+ Comments Earned a bronze medal
10K+ Views Earned a bronze medal
Show 1 More »
  • lingib commented on lingib's instructable Multi-task Your Arduino7 days ago
    Multi-task Your Arduino

    Thank you for your comment :)You could try an array-of-arrays-of-arrays" such as "lamps[pattern][delay][direction]". Such an array would allow any number of different of delays, and directions, to be applied to any pattern. Each lamp delay would require the use of "static" counters.Good luck ...

    View Instructable »
  • lingib's instructable Enhanced Ultrasonic Range Finder's weekly stats: 16 days ago
    • Enhanced Ultrasonic Range Finder
      196 views
      5 favorites
      0 comments
  • lingib commented on lingib's instructable Ultrasonic Range Finder23 days ago
    Ultrasonic Range Finder

    Photo 1 is the first photo shown in any given step.Click on any photo and that photo will be displayed along with arrow keys to the left and right. Now click the left-hand arrow until the left-hand arrow disappears. Photo 1 is the left-most image.For example, in "Step 3", Photo 1 shows the HC-SR04 ultrasonic sensor module, and photos 2,3,4, and 5 show waveforms for distances of 5cm, 10cm, 20cm, and 200cm.Restart your browser if you see no photos ...

    View Instructable »
  • lingib commented on lingib's instructable CNC Gcode Sender4 weeks ago
    CNC Gcode Sender

    An error message will appear if the COM port number in line 113 doesn't match your actual COM port number.The error message should disappear, and the terminal connect, if you make the following changes to the code:Step 1:Change line 69 to read "boolean debug_on = true;"Step 2:Run the code and note your COM port numbers. (Let's assume that your highest COM port number equals 1)Step 3:Change line 113 from "String arduino_port = Serial.list()[2];" to read "String arduino_port = Serial.list()[1];"Step 4:Rerun the code ... the error message should disappear. If not try another COM port number.Step 5:Once the error message disappears change line 69 to read "boolean debug_on = false;"

    View Instructable »
  • lingib commented on lingib's instructable Ultrasonic Range Finder5 weeks ago
    Ultrasonic Range Finder

    Thank you for sharing your project :)Your use of a second sensor for auto-calibration is clever. Does the distance vary much between day and night?

    View Instructable »
  • lingib's instructable Ultrasonic Range Finder's weekly stats: 5 weeks ago
    • Ultrasonic Range Finder
      5,098 views
      63 favorites
      7 comments
  • lingib commented on lingib's instructable Ultrasonic Range Finder5 weeks ago
    Ultrasonic Range Finder

    Having a LED light at a specific height (distance) is straight forward.Example:// ----- add this to the header#define LED 13//onboard LED on arduino pin 13// ----- add this to setup()pinMode(LED, OUTPUT);//initialize the onboard LEDdigitalWrite(LED,LOW);// ----- add this to the main loop()int distance = int(Distance);//convert (distance==15) ? digitalWrite(LED,HIGH): digitalWrite(LED,LOW);Optionally, use a switch(distance){} function to set different distances.You still need the ultrasonic sensor ...

    A possible solution is given in the above answers.

    View Instructable »
  • lingib commented on lingib's instructable CNC Robot Plotter5 weeks ago
    CNC Robot Plotter

    Software is not required if you remove the 5 volt supply to the motor(s) using a microswitch.The robot spends most of its time in a "process()" function. If you really need a software solution then consider writing an interrupt routine. This will eliminate any possible robot delays in responding to your sensors.Good luck :)

    View Instructable »
  • lingib posted a topic Web Site Improvements7 weeks ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter7 weeks ago
    CoreXY CNC Plotter

    My draw_line() function is a variation of Bresenham's Line Drawing Algorithm and uses "octants" as defined in the attached diagram.Bresenham's algorithm is only valid for "octant 0" which means that you have to convert each XY coordinate to "octant 0" for processing, then convert the results back to the original octant.There are also numerous software solutions, one of which is derived in my instructable https://www.instructables.com/id/CNC-Drum-Plotter/ (Step 5)In that instructable I used switch() functions, each with eight conditions, to encode and decode each of the eight octants. This works but is relatively slow as each plot requires up to twenty-four comparisons (eight for encoding; eight for decoding the X axis; and eight for decoding the Y axis).The...

    see more »

    My draw_line() function is a variation of Bresenham's Line Drawing Algorithm and uses "octants" as defined in the attached diagram.Bresenham's algorithm is only valid for "octant 0" which means that you have to convert each XY coordinate to "octant 0" for processing, then convert the results back to the original octant.There are also numerous software solutions, one of which is derived in my instructable https://www.instructables.com/id/CNC-Drum-Plotter/ (Step 5)In that instructable I used switch() functions, each with eight conditions, to encode and decode each of the eight octants. This works but is relatively slow as each plot requires up to twenty-four comparisons (eight for encoding; eight for decoding the X axis; and eight for decoding the Y axis).The algorithm that I have developed for this plotter recognizes that a circle not only contains eight "octants" but also has four "quadrants": - quadrant 0 contains octants 0,1 - quadrant 1 contains octants 2,3 - quadrant 2 contains octants 4,5 - quadrant 3 contains octants 6,7If you study the attached diagram you will note that dX is always positive in "quadrants" 0,3 and that dY is always positive in "quadrants" 0,1. Now add a "swap" flag and the number of comparisons needed to plot each point in the draw_line() function reduces to eight which is significantly faster.Hopefully this clarifies the following comment which appears in my draw_line() function:"The algorithm automatically maps all "octants" to "octant 0" and automatically swaps the XY coordinates if dY is greater than dX. A swap flag determines which motor moves for any combination X,Y inputs. The swap algorithm is further optimised by realising that dY is always positive in "quadrants" 0,1 and that dX is always positive in "quadrants" 0,3."

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL2 months ago
    How to Control a Servo Using GRBL

    In Step 6, "Configure your plotter", I made the comment:"To ensure that GRBL has full control of the XYZ speed settings I set the F(feed value) in the Inkscape’s “Default Tool” menu to a value higher than the $110, $111, and $112 values in GRBL on the basis that the lowest speed wins ... this approach appears to work." Instructions for increasing Inkscapes default F100 to F10000 are given in Step 4, photos 6 & 7.It would appear that your F100 (feed) setting was the cause of your speed problem.While I think about it, there appears to be a g-code scaling issue with some versions of Inkscape (https://forum.inkscapecommunity.com/index.php?PHPSESSID=c52vjf79gcfs02m5432siglr53&topic=486.0)Two solutions:(1)Search this topic for "gcodetools.py....

    see more »

    In Step 6, "Configure your plotter", I made the comment:"To ensure that GRBL has full control of the XYZ speed settings I set the F(feed value) in the Inkscape’s “Default Tool” menu to a value higher than the $110, $111, and $112 values in GRBL on the basis that the lowest speed wins ... this approach appears to work." Instructions for increasing Inkscapes default F100 to F10000 are given in Step 4, photos 6 & 7.It would appear that your F100 (feed) setting was the cause of your speed problem.While I think about it, there appears to be a g-code scaling issue with some versions of Inkscape (https://forum.inkscapecommunity.com/index.php?PHPSESSID=c52vjf79gcfs02m5432siglr53&topic=486.0)Two solutions:(1)Search this topic for "gcodetools.py.txt" by "Shockster" and follow his instructions ... (2)Downgrade to an earlier version of Inkscape until the problem is fixed.

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL2 months ago
    How to Control a Servo Using GRBL

    As far as I am aware GRBL does not support scaling. The following website, however, may be of interest http://eng-serve.com/cnc/gcode_scale.htmlYour plotter speed is defined by the S110, S111, and S112 parameters ... just check that they are not being overridden by the tool settings in Inkscape.GPP does not alter your code ... it only inserts pen up/down code sequences each of which inserts a 1 millisecond using the command G4 P1.Examine your g-code with a text editor, such as Notepad++, and search (CTRL-F) for P1000 which is a 1 second pause ... if that is the problem just replace them with P1 (1 millisecond).

    Thank you for your interest in my project ... congratulations on completing it ... nice plot:)Regarding your calibration issue ... I have no explanation for why 100mm (10cm) should be translated to 30mm!!!Examine your g-code file in a text editor such as Notepad++ and confirm that the difference between your minimum and maximum X values is 10cm ... and the same for the Y-axis.If not then try an earlier version of Inkscape as some of the later versions had a scaling error.

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL2 months ago
    How to Control a Servo Using GRBL

    I am surprised that you had to compile the source as the zip file at https://github.com/gnea/grbl/releases contains the compiled version?Well done for solving the problem :)

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL2 months ago
    How to Control a Servo Using GRBL

    Pen motion on CoreXY plotters uses differential motion:(1)Rotating both motors by the same amount in the same direction produces horizontal movement.(2) Rotating both motors by the same amount in opposite directions produces vertical movement.(3)Rotating a single motor only produce 45 degrees pen movement.(4)Rotating both motors by different amounts produces angles other than 45 degreesYour video does not appear to be attached, but your photo shows slanted text. This could occur if one motor was stationary.There are several possibilities.(1)You have somehow rotated your text in Inkscape. Does the text appear correctly orientated in Universal Gcode Sender.(2) You have two different brand of motors. Mixing a 1.8 degrees/step with a 0.9 degrees/step motor would produce diagonal text. Confi...

    see more »

    Pen motion on CoreXY plotters uses differential motion:(1)Rotating both motors by the same amount in the same direction produces horizontal movement.(2) Rotating both motors by the same amount in opposite directions produces vertical movement.(3)Rotating a single motor only produce 45 degrees pen movement.(4)Rotating both motors by different amounts produces angles other than 45 degreesYour video does not appear to be attached, but your photo shows slanted text. This could occur if one motor was stationary.There are several possibilities.(1)You have somehow rotated your text in Inkscape. Does the text appear correctly orientated in Universal Gcode Sender.(2) You have two different brand of motors. Mixing a 1.8 degrees/step with a 0.9 degrees/step motor would produce diagonal text. Confirm that your pen in the manner described above.(3)You have different jumper settings on one of the Big Easy Drivers. These jumpers determine the stepping mode for each motor. The Big Easy Drivers require 16 input steps for 1.8 degrees shaft rotation. This equates to 360/1.8*16 or 3200 input steps for one complete rotation of the shaft.(4)One of your timing belts could be too tight causing the motor to lose steps.(5)The wiring on one of your motors is reversed.Talk to your plotter using Universal Gcode Sender and type the following commands into the "command line":G0 X50 y0//your pen should move 50 millimeters to the right.G0 X50 Y50 //your pen should move 50 millimeters upwards. Hopefully this helps solve your issue.

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL3 months ago
    How to Control a Servo Using GRBL

    It would appear that you have missed one of the steps in "Step 4" Create Some Gcode".ALWAYS "select" your drawing before doing anything. (When "selected" your drawing will be surrounded by tiny arrow-heads)Probable causes are:(1) Your drawing was not "selected" when you clicked "Path|Object to path"(2) Your drawing was not "selected" when you clicked "Extensions|Gcodetools|Path to Gcode"Regarding the "padlock", compare photo 2 with photo 3 in "Step 4" Create Some Gcode".Photo 3 has a tiny blue square over a "closed padlock" symbol whereas the same symbol in photo2 shows an "open-padlock".When closed the padlock prevents you accidentally altering your drawing dimensions.

    View Instructable »
  • lingib posted a topic Launch statistics3 months ago
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL3 months ago
    How to Control a Servo Using GRBL

    Thank you for your comment and reference :)I have added a further step (Step 8) to this instructable plus an alternate version of GPP which may help with your project.

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL3 months ago
    How to Control a Servo Using GRBL

    Well done ... thank you for your comment:)When testing I found that my servo wouldn't operate until it received an "M3 S90" command (which includes the spindle speed) after which you can just use "M3" and "M5" without the S90 for raising/lowering the pen.For this reason I chose to raise the pen at the program start using "M3 S90" and to use "M5" for pen down to avoid having to manually type "M3 S90" prior to sending my gcode. It also prevents the pen marking the paper.I never saw this as a problem as there are two ways to correct your servo position" - reposition the servo arm by 90 degrees - reverse the numbers in lines 48,49 in spindle_control.c (see attached photo)If, however, you intend generating g-code by dropping an...

    see more »

    Well done ... thank you for your comment:)When testing I found that my servo wouldn't operate until it received an "M3 S90" command (which includes the spindle speed) after which you can just use "M3" and "M5" without the S90 for raising/lowering the pen.For this reason I chose to raise the pen at the program start using "M3 S90" and to use "M5" for pen down to avoid having to manually type "M3 S90" prior to sending my gcode. It also prevents the pen marking the paper.I never saw this as a problem as there are two ways to correct your servo position" - reposition the servo arm by 90 degrees - reverse the numbers in lines 48,49 in spindle_control.c (see attached photo)If, however, you intend generating g-code by dropping an SVG file into a program such as GRBL_Plotter then for compatibility you should use M3 S90 (the 'S' number doesn't appear to matter) for pen-down and M5 for pen-up.

    View Instructable »
  • lingib's instructable How to Control a Servo Using GRBL's weekly stats: 3 months ago
    • How to Control a Servo Using GRBL
      2,002 views
      53 favorites
      4 comments
  • lingib commented on lingib's instructable CNC Dual Arm Plotter Version 23 months ago
    CNC Dual Arm Plotter Version 2

    The distance between the holes for each of the plotters described in https://www.instructables.com/id/CNC-Dual-Arm-Plotter/ and https://www.instructables.com/id/CNC-Dual-Arm-Plotter-Version-2/ is 285mm.Another plotter, that works on a similar principle has a hole spacing of 300mm for each of the long arms, and is described in https://www.instructables.com/id/CNC-Drawing-Arm/. Step 4 of this article details how to make the spacers and cut them to length.The "spacers", which aren't absolutely necessary but reduce joint wobble, are readily available hollow cylinders with an outside diameter of 3/16" and an inside diameter suitable for a 3mm bolt. If you choose not to use them just drill 3mm bolt holes for each joint. You can always enlarge these holes at a later date if ne...

    see more »

    The distance between the holes for each of the plotters described in https://www.instructables.com/id/CNC-Dual-Arm-Plotter/ and https://www.instructables.com/id/CNC-Dual-Arm-Plotter-Version-2/ is 285mm.Another plotter, that works on a similar principle has a hole spacing of 300mm for each of the long arms, and is described in https://www.instructables.com/id/CNC-Drawing-Arm/. Step 4 of this article details how to make the spacers and cut them to length.The "spacers", which aren't absolutely necessary but reduce joint wobble, are readily available hollow cylinders with an outside diameter of 3/16" and an inside diameter suitable for a 3mm bolt. If you choose not to use them just drill 3mm bolt holes for each joint. You can always enlarge these holes at a later date if neccesary.

    View Instructable »
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL3 months ago
    How to Control a Servo Using GRBL

    Thank you for your interest in my project, and for your helpful suggestion :)I will try https://github.com/svenhb/GRBL-Plotter but please try my method before writing it off as being too complicated ... the workflow is extremely simple:(1) point the output of Inkscape towards your PostProcessor folder(2) set your feed rates in Inkscape before generating your file(3) run GcodePostProcessor(4) send the post-processed file to GRBL using UGSAs mentioned in my article, "I'm not an expert". Until now I have written custom interpreters for my projects ... this is my very first dabble into CNC using GRBL.All suggestions welcome ... the major problem I have is that you have to know what to look for when scouring the net.Thanks again.

    View Instructable »
  • lingib posted a topic Instructables Editor3 months ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter3 months ago
    CoreXY CNC Plotter

    Something to check ...The diagram in the A4988 pdf shows 5 volts connected to the VDD pin ... presumably this is to power the onboard logic.The Big Easy Driver provides its own 5 volts.Just a thought :)

    The winding resistance of 39 ohms indicates that you have the correct motors.On rereading your question the problem may well be your driver boards.Information about the Big Easy Driver may be found at http://www.schmalzhaus.com/BigEasyDriver/BigEasyD...Information about your A4988 driver may be found at http://www.communica.co.za/Content/Catalog/Docume...If you compare the two boards it would appear that your A4988 board is intended as a sub-module for another board. A significant difference is that your A4988 board has a VDD pin (voltage in) whereas the Big Easy Driver has a VCC pin (5V out). The documentation for the Big Easy Driver indicates that it has pull-up resistors on the Sleep and Reset lines which accounts for why I have left them disconnected. There may well be other diffe...

    see more »

    The winding resistance of 39 ohms indicates that you have the correct motors.On rereading your question the problem may well be your driver boards.Information about the Big Easy Driver may be found at http://www.schmalzhaus.com/BigEasyDriver/BigEasyD...Information about your A4988 driver may be found at http://www.communica.co.za/Content/Catalog/Docume...If you compare the two boards it would appear that your A4988 board is intended as a sub-module for another board. A significant difference is that your A4988 board has a VDD pin (voltage in) whereas the Big Easy Driver has a VCC pin (5V out). The documentation for the Big Easy Driver indicates that it has pull-up resistors on the Sleep and Reset lines which accounts for why I have left them disconnected. There may well be other differences.No doubt your A4988 board can be adapted but without having an A4988 board to test I am unable to provide further help.My plotter works with the parts listed in the instructable.

    View Instructable »
  • lingib commented on lingib's instructable How to Cut & Fold Sheet Aluminium3 months ago
    How to Cut & Fold Sheet Aluminium

    This question appears to relate to the plotter described in https://www.instructables.com/id/CoreXY-CNC-Plotte...I have posted a reply there ...

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

    The gantry and pen carriage on my plotter move under their own weight when I remove the timing belts and tilt the plotter by around 20 degrees. So long as everything is free to move your construction sounds okay. When fitting the timing belts you don't need much tension ... just enough to stop them sagging.You appear to have deviated a little from my design. I think that you have three problems:(1) I have used low current motors (either 400mA or 600mA motors). Your motors appear to be 1.2A motors with a coil resistance of 1.9 ohms which means that there will be a 2.28 volt drop across the motors and 3.72 volts across the Big Easy Driver if you use a 6 volt supply and the current limit to 1.2A. The Big EasyDrivers are going to get rather hot as they will be dissipating 4.46 watts. They ...

    see more »

    The gantry and pen carriage on my plotter move under their own weight when I remove the timing belts and tilt the plotter by around 20 degrees. So long as everything is free to move your construction sounds okay. When fitting the timing belts you don't need much tension ... just enough to stop them sagging.You appear to have deviated a little from my design. I think that you have three problems:(1) I have used low current motors (either 400mA or 600mA motors). Your motors appear to be 1.2A motors with a coil resistance of 1.9 ohms which means that there will be a 2.28 volt drop across the motors and 3.72 volts across the Big Easy Driver if you use a 6 volt supply and the current limit to 1.2A. The Big EasyDrivers are going to get rather hot as they will be dissipating 4.46 watts. They should be okay as they have thermal shutdown but may require some form of cooling (fan/heatsink)(2) More likely the strange behaviour is due to your motor wiring. Strange things happen if the coils leads get interchanged.According to http://www.makershop.co.nz/index.php?route=product... your motors should be connected as follows:Black A+ <-----+ | Winding AGreen A- <-----+Red B+ <-----+ | Winding BBlue B- <-----+Use a continuity checker (ohmmeter) to confirm the colors for each motor winding ... the Big EasyDriver expects the wires from each coil to be side-by-side as ahown.(3)There is no need to connect anything to the sleep and reset pins ... the plotter works fine without them.

    View Instructable »
  • lingib commented on lingib's instructable Multi-task Your Arduino4 months ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter4 months ago
    CoreXY CNC Plotter

    Thank you for your interest in my CoreXY plotter :)The fact that correct numbers are being sent to the motors indicates that your motor directions are reversed ... I have allowed for this in my code as some motors (depending on brand) have their internal wiring reversed.To reverse your motor directions go to the step_motor(){...} subroutine and change this code segment // ----- set motor directions //(DIRECTION1 == CW) ? SET(pattern, dir1) : CLR(pattern, dir1); //normal motor direction //(DIRECTION2 == CW) ? SET(pattern, dir2) : CLR(pattern, dir2); //normal motor direction (DIRECTION1 == CCW) ? SET(pattern, dir1) : CLR(pattern, dir1); //motor windings reversed (DIRECTION2 == CCW) ? SET(pattern, dir2) : CLR(pattern, dir2); //motor windings reversed to read // ----- set motor dir...

    see more »

    Thank you for your interest in my CoreXY plotter :)The fact that correct numbers are being sent to the motors indicates that your motor directions are reversed ... I have allowed for this in my code as some motors (depending on brand) have their internal wiring reversed.To reverse your motor directions go to the step_motor(){...} subroutine and change this code segment // ----- set motor directions //(DIRECTION1 == CW) ? SET(pattern, dir1) : CLR(pattern, dir1); //normal motor direction //(DIRECTION2 == CW) ? SET(pattern, dir2) : CLR(pattern, dir2); //normal motor direction (DIRECTION1 == CCW) ? SET(pattern, dir1) : CLR(pattern, dir1); //motor windings reversed (DIRECTION2 == CCW) ? SET(pattern, dir2) : CLR(pattern, dir2); //motor windings reversed to read // ----- set motor directions (DIRECTION1 == CW) ? SET(pattern, dir1) : CLR(pattern, dir1); //normal motor direction (DIRECTION2 == CW) ? SET(pattern, dir2) : CLR(pattern, dir2); //normal motor direction //(DIRECTION1 == CCW) ? SET(pattern, dir1) : CLR(pattern, dir1); //motor windings reversed //(DIRECTION2 == CCW) ? SET(pattern, dir2) : CLR(pattern, dir2); //motor windings reversedHopefully this solves your problem.

    View Instructable »
  • lingib commented on lingib's instructable Multi-task Your Arduino4 months ago
    Multi-task Your Arduino

    Thank you for your feedback. It's nice to know that the article was helpful :)

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

    Hi Mohan ... if your " motors are functioning perfectly in Menu" then you have successfully compiled, and installed, the software. Well done :)Now that you have your plotter working, you need two further pieces of software: (1) a software package, such as "https://inkscape.org/en/", for generating your g-code and (2) a terminal program, such as "https://www.instructables.com/id/CNC-Gcode-Sender/" for sending the above g-code to your plotter.Install both of these programs on to your computer.For now let's concentrate on sending the pre-compiled test g-code "Letter_B.ngc" from step 3 of "https://www.instructables.com/id/CNC-Gcode-Sender/" to your plotter. You can experiment with Inkscape later.Steps:(1) Close your arduino IDE ... it is no ...

    see more »

    Hi Mohan ... if your " motors are functioning perfectly in Menu" then you have successfully compiled, and installed, the software. Well done :)Now that you have your plotter working, you need two further pieces of software: (1) a software package, such as "https://inkscape.org/en/", for generating your g-code and (2) a terminal program, such as "https://www.instructables.com/id/CNC-Gcode-Sender/" for sending the above g-code to your plotter.Install both of these programs on to your computer.For now let's concentrate on sending the pre-compiled test g-code "Letter_B.ngc" from step 3 of "https://www.instructables.com/id/CNC-Gcode-Sender/" to your plotter. You can experiment with Inkscape later.Steps:(1) Close your arduino IDE ... it is no longer required.(2) Plug your arduino into the USB port of your computer. For all intents and purposes your plotter is now a printer waiting for some g-code. This is why there is no menu option to send g-code to the arduino.(3) Launch your terminal program. All going well you should now see the SAME menu as you saw when using the arduino IDE. If not press the "reset" button on your arduino.(4) Follow the instructions in step 3 of "https://www.instructables.com/id/CNC-Gcode-Sender/". Ignore the reference to the "CNC Drum Plotter" ... this terminal program was written before the "CoreXY Plotter".Hopefully this answers your question. My other plotter articles at " https://www.instructables.com/member/lingib/instructables/" may contain helpful information ... for example "https://www.instructables.com/id/CNC-Robot-Plotter/" details how to generate g-code using "Inkscape".

    View Instructable »
  • lingib's instructable Multi-task Your Arduino's weekly stats: 4 months ago
    • Multi-task Your Arduino
      1,519 views
      58 favorites
      3 comments
  • lingib commented on lingib's instructable CoreXY CNC Plotter4 months ago
    CoreXY CNC Plotter

    Your plotter sounds great ... glad to have been able to help :)You may also find these instructables to be of interest as they build upon your CoreXY design:https://www.instructables.com/id/CNC-Pen-Lift/https://www.instructables.com/id/Make-Your-Own-CNC-Plotter-Image/https://www.instructables.com/id/CNC-Pen-and-Wash-Portrait/

    View Instructable »
  • lingib commented on lingib's instructable CNC Pen Lift4 months ago
    CNC Pen Lift

    Software libraries are not required for this project.The pen-lift is attached to my CoreXY plotter described in https://www.instructables.com/id/CoreXY-CNC-Plotter/. The software for this plotter may be downloaded from step 3.The radial test pattern shown in the video uses the built-in test menu.

    View Instructable »
  • lingib commented on lingib's instructable Multi-task Your Arduino4 months ago
  • lingib followed CNC, Photography, Robots, Electronics and 7 others channel 4 months ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter4 months ago
    CoreXY CNC Plotter

    And thank you for sharing your results :)Your video is great. Am impressed with your mechanical setup, choice of rails, motor mounts, and your pen mechanism ... well done!

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

    You're welcome :)

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

    Your photos tell me that your robot is talking correctly to my G-code Sender ... well done :)You indicate that the robot is working correctly when you ask it to draw a "square" (T102) or a "target" (T103) which points to the G-code that the robot is receiving. If you look closely at the G-code in your second image you will notice:(1) the variation in X-axis movement is from X21..X29 which is a total of 9mm (2) and that the variation in Y-axis movement is from Y34..Y35 which is a total of 11mm.(3) in between these extremes the robot hardly moves.Download "test_chart.ngc" from step 8 of the instructable and send that to the robot. It should print the SAME test pattern that is built into the robot. (Rename the file to test_chart.ngc if the name changes during ...

    see more »

    Your photos tell me that your robot is talking correctly to my G-code Sender ... well done :)You indicate that the robot is working correctly when you ask it to draw a "square" (T102) or a "target" (T103) which points to the G-code that the robot is receiving. If you look closely at the G-code in your second image you will notice:(1) the variation in X-axis movement is from X21..X29 which is a total of 9mm (2) and that the variation in Y-axis movement is from Y34..Y35 which is a total of 11mm.(3) in between these extremes the robot hardly moves.Download "test_chart.ngc" from step 8 of the instructable and send that to the robot. It should print the SAME test pattern that is built into the robot. (Rename the file to test_chart.ngc if the name changes during the download process.)Also you should be able to print a "square" if you enter each of the following command manually or enter them into a text editor then save the file as "test.ngc" (without the quotes).G00 X36 Y213G01 X173 Y213G01 X173 Y82G01 X36 Y82G01 X36 Y213G00 X20 Y00G00 X00 Y00When creating you own code it is important to verify it using the method shown in step 10. Once verified visually check whether you need to apply a scale factor to the plotter before sending the file.Hopefully this solves the problem ...

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

    Glad that you found my instructable useful. Thank you for sharing ... you've just made my day :)Fine on porting GRBL to this design.Can you be a bit more specific about the circles. Are they round, elliptical, or don't the ends meet? How do GRBL circles compare with the same circles using my code?The following quote from https://github.com/grbl/grbl/wiki may be a clue."CoreXY Support: Grbl now supports CoreXY kinematics on an introductory-level. Most functions have been verified to work, but there may be bugs here or there. Please report any problems you find!"

    Fantastic :)I like the way you have mounted the motors.

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

    Try using https://www.instructables.com/id/CNC-Gcode-Sender/CNC-Robot-Plotter was my first attempt at controlling something using bluetooth. I used Tera Term because it appeared to work providing the appropriate delays were added. These delays were to prevent the terminal missing the Xoff signal from the robot.The problem with delays is that they they slow the data transfer rate down to a crawl. For this reason I wrote my own gcode sender which I now use in all of my projects.https://www.instructables.com/id/CNC-Gcode-Sender/ is 100% reliable as an internal Xoff signal is generated within the G-code sender at the end of each Gcode line ... no further data is sent until the robot sends an Xon.This eliminates all latency issues and as a result the data transfer rate is as fast as your rob...

    see more »

    Try using https://www.instructables.com/id/CNC-Gcode-Sender/CNC-Robot-Plotter was my first attempt at controlling something using bluetooth. I used Tera Term because it appeared to work providing the appropriate delays were added. These delays were to prevent the terminal missing the Xoff signal from the robot.The problem with delays is that they they slow the data transfer rate down to a crawl. For this reason I wrote my own gcode sender which I now use in all of my projects.https://www.instructables.com/id/CNC-Gcode-Sender/ is 100% reliable as an internal Xoff signal is generated within the G-code sender at the end of each Gcode line ... no further data is sent until the robot sends an Xon.This eliminates all latency issues and as a result the data transfer rate is as fast as your robot can handle.

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

    Each motor has two windings. Identify the leads that are attached to each winding (use an ohmeter on resistance) and connect the two leads side-by-side as shown on the EasyDriver screen print..Swap the two center wires if the coil wires are not adjacent. Hopefully this will solve the problem.

    View Instructable »
  • Simple Arduino Bluetooth Communication

    Nice project :)One small point ... connecting 5 volts from the arduino TX output directly to the 3.3 volt HC-06 RxD input risks damaging your bluetooth module. To prevent damage I would recommend using a voltage divider..

    View Instructable »
  • lingib commented on lingib's instructable How to Cut & Fold Sheet Aluminium5 months ago
    How to Cut & Fold Sheet Aluminium

    You're welcome :)

    View Instructable »
  • lingib commented on lingib's instructable CNC Dual Arm Plotter Version 25 months ago
    CNC Dual Arm Plotter Version 2

    Thank you for your comment :)There are two reasons for the tiny wiggles.(1) mechanical play and (2) an inherent design weakness that I discovered in https://www.instructables.com/id/CNC-Drawing-Arm/ ... this plotter uses the same code.This weakness is fully explained in the comment section that follows the above article but to summarize, a one step motor error will move the pen somewhere between 2.42mm and 5.48mm before gearing assuming 100mm arms.Using 16 times microstepping and 4:1 gearing the above figures translate to wiggle widths of 0.04mm and 0.09mm (approx. 0.1mm)Conventional XY cartesian plotters such as https://www.instructables.com/id/CoreXY-CNC-Plotte... do not suffer from this effect. An alternative pen-lift for this plotter is described in https://www.instructables.com/...

    see more »

    Thank you for your comment :)There are two reasons for the tiny wiggles.(1) mechanical play and (2) an inherent design weakness that I discovered in https://www.instructables.com/id/CNC-Drawing-Arm/ ... this plotter uses the same code.This weakness is fully explained in the comment section that follows the above article but to summarize, a one step motor error will move the pen somewhere between 2.42mm and 5.48mm before gearing assuming 100mm arms.Using 16 times microstepping and 4:1 gearing the above figures translate to wiggle widths of 0.04mm and 0.09mm (approx. 0.1mm)Conventional XY cartesian plotters such as https://www.instructables.com/id/CoreXY-CNC-Plotte... do not suffer from this effect. An alternative pen-lift for this plotter is described in https://www.instructables.com/id/CNC-Pen-Lift/. This pen-lift has a smooth action regardless of pen dimensions.

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

    Well done ... congratulations on your working robot :)A simple solution would be to return "home" using the following sequence of instructions:G00 X20 Y0; ... insert this line of code into your gcodeG00 X00 Y0;The first instruction will return the robot to the baseline (at an angle).The second instruction will cause the robot to align itself along the X-axis in order to return to the start position. The robot is now pointing towards the 3 o'clock position which is what you want.

    View Instructable »
  • lingib commented on 胡文杰's instructable Paper Cut Light Box for Sky5 months ago
    Paper Cut Light Box for Sky

    What a clever idea. The result is fantastic. Thank you for sharing :)

    View Instructable »
  • lingib commented on lingib's instructable 3-Wire CNC Plotter5 months ago
    3-Wire CNC Plotter

    A code update, "delta_plotter_v2.ino", has been added to step 3.

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

    Thank you for your interest in this instructable . I no longer have a working working robot ... the parts have been reused in later projects ... but the following checks should help isolate the problem.Things to check:1.Talk directly to the robot via your USB cable. Make sure the bluetooth module is unplugged ... power down before unplugging.Press the arduino reset button while your arduino Serial Monitor is running. A menu should appear. Now type M100 ... a second menu should scroll down the screen which indicates that the arduino code is okay.2.Unplug the USB cable and replace the bluetooth module ... the power must be off when you do this.Does an LED on the bluetooth module start flashing when power is applied to the robot ... it should.Does the LED stop flashing when you attempt ...

    see more »

    Thank you for your interest in this instructable . I no longer have a working working robot ... the parts have been reused in later projects ... but the following checks should help isolate the problem.Things to check:1.Talk directly to the robot via your USB cable. Make sure the bluetooth module is unplugged ... power down before unplugging.Press the arduino reset button while your arduino Serial Monitor is running. A menu should appear. Now type M100 ... a second menu should scroll down the screen which indicates that the arduino code is okay.2.Unplug the USB cable and replace the bluetooth module ... the power must be off when you do this.Does an LED on the bluetooth module start flashing when power is applied to the robot ... it should.Does the LED stop flashing when you attempt connecting to the robot ... it should.Press the arduino reset button ... a menu should appear.If it doesn't measure the voltage on the arduino RX pin ... it should be around 3 volts.Bluetooth can be a problem ... delete the HC-06 from your PC and try reinstalling. Try pairing another bluetooth module ... I experienced one that wouldn't communicate even when the LED stopped flashing.Try another terminal emulator such as https://www.instructables.com/id/CNC-Gcode-Sender/. Hopefully the above tests will isolate your problem ...

    View Instructable »
  • lingib commented on lingib's instructable 3-Wire CNC Plotter5 months ago
    3-Wire CNC Plotter

    An improved gondola, which eliminates the pen tilt, is described in step 15.

    Thank you for your comment :)Believe it or not this plotter actually doubles as a coffee table ... you just have to be careful not to place your cup on the strings ;)

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

    You're welcome :)

    View Instructable »
  • More Activities