author
28Instructables338,583Views241CommentsNew 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 CNC Drawing Arm10 days ago
    CNC Drawing Arm

    Step 4 : "Each joint is sleeved with a tubular 3/16 inch spacer that is 6mm in length."Length = 6mmOD: 3/16"ID: takes 3mm bolt

    View Instructable »
  • lingib commented on lingib's instructable CNC Drum Plotter10 days ago
    CNC Drum Plotter

    TeraTerm is a PC application available from https://osdn.net/projects/ttssh2/releases/A list of all code, and installation instructions, may be found in Step 6 of this instructable.An alternate terminal program that is specifically designed to work with my plotters may be found at https://www.instructables.com/id/CNC-Gcode-Sender/. I recommend using this application as it is able to transfer data at a higher rate which significantly reduces your plot times.

    View Instructable »
  • lingib commented on lingib's instructable CNC Gcode Sender11 days ago
    CNC Gcode Sender

    In order to help I need further information:(1) What operation?(2) This terminal program will (unless modified) only work with my plotters. Are you attempting to talk to one of my plotters or are you connected to a 3rd-party plotter?(3) All of my plotters respond with a menu. Did a "menu" and a "grey box" appear? (4) Your screen indicates that you have something attached to your serial port (as there is no error message). Does your serial baud speed match your plotter?

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator24 days ago
    Dual Sensor Echo Locator

    You are welcome ... thanks for commenting :)

    View Instructable »
  • lingib's instructable Multiplexed Echo Locator's weekly stats: 4 weeks ago
    • Multiplexed Echo Locator
      207 views
      5 favorites
      0 comments
  • Arduino Frequency Synthesiser Using 160MHz Si5351

    Hi,A zipped version of the (original) LiquidCrystal_I2C library is attached. Thanks for drawing my attention to the fact that the original libraries have been updated.Look forward to seeing your code updates.

    Hi,This is the only other library that I can find. The files are dated 1/05/2017 ... hopefully this is what you are looking for.

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator5 weeks ago
    Dual Sensor Echo Locator

    The time interval for sensor A is from when Echo line A goes high until Echo line A goes low.Similarly the time interval for sensor B is from when Echo line B goes high until Echo line B goes low.The Echo lines only go high when the sensors receive a trigger pulse. For the system to work we must trigger BOTH sensors together.The ping from sensor B is not heard by sensor A as the transmit pulse is blocked by the addition of masking tape over the transmit sensor B.If you examine the Arduino code you will see that I quickly trigger each sensor in turn then wait until both Echo lines have gone high.The reason for waiting is that there is a considerable delay after a Trig pulse before the Echo line go high ... see the waveforms in my article https://www.instructables.com/id/Enhanced-Ultrason...

    see more »

    The time interval for sensor A is from when Echo line A goes high until Echo line A goes low.Similarly the time interval for sensor B is from when Echo line B goes high until Echo line B goes low.The Echo lines only go high when the sensors receive a trigger pulse. For the system to work we must trigger BOTH sensors together.The ping from sensor B is not heard by sensor A as the transmit pulse is blocked by the addition of masking tape over the transmit sensor B.If you examine the Arduino code you will see that I quickly trigger each sensor in turn then wait until both Echo lines have gone high.The reason for waiting is that there is a considerable delay after a Trig pulse before the Echo line go high ... see the waveforms in my article https://www.instructables.com/id/Enhanced-Ultrason...The point at which both Echo lines go high is defined as my start point ... the slight time difference between Trig pulses is not significant.This time difference, however, may be eliminated by writing a "pattern" to the output port. An example of this technique may be found in my instructable https://www.instructables.com/id/CoreXY-CNC-Plotte...

    View Instructable »
  • lingib commented on lingib's forum topic Launch Stats Not Working6 weeks ago

    Frustrating isn't it ...Surely it can't be too hard to fix as the Launch Stats feature was working perfectly before it stopped ... just do a code roll-back.

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator6 weeks ago
    Dual Sensor Echo Locator

    Thank you for commenting :)

    The time interval for sensor A is from when Echo line A goes high until Echo line A goes low. See the waveforms in my article https://www.instructables.com/id/Enhanced-Ultrason...Similarly the time interval for sensor B is from when Echo line B goes high until Echo line B goes low.The Echo lines only go high when the sensors receive a trigger pulse. For the system to work we must trigger BOTH sensors together.The ping from sensor B is not heard by sensor A as the transmit pulse is blocked by the addition of masking tape over the transmit sensor B.

    View Instructable »
  • lingib's instructable Dual Sensor Echo Locator's weekly stats: 6 weeks ago
    • Dual Sensor Echo Locator
      1,799 views
      43 favorites
      8 comments
  • lingib commented on lingib's forum topic Launch Stats Not Working6 weeks ago

    Thanks Yonatan24 ...

    Thanks Troy :)

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator6 weeks ago
    Dual Sensor Echo Locator

    Sounds like you have a project in mind! Thanks for commenting :)

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator7 weeks ago
    Dual Sensor Echo Locator

    Glad you like the idea ... thanks for commenting :)

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator7 weeks ago
    Dual Sensor Echo Locator

    The beam-width of an ultrasonic sensor is approximately 30 degrees ... think of this as, say, 100 individual beams each at a slightly different angle to the one next to it.In physics the "angle-of-incidence" equals the "angle-of-reflection" on the opposite side of a "perpendicular" drawn at the point of reflection. Ultrasonic "radar-like" displays using a servo only see the the beam that gets reflected directly back (along the perpendicular)... the other 99 beams get lost.This detector uses the same principle. Sensor A sees the beam that gets reflected directly back ... the other 99 beams each get reflected at slightly different angles.Sensor B sees one of these 99 reflected beams ... the other 98 beams get lost.Photo 2 in Step 3 shows a diagra...

    see more »

    The beam-width of an ultrasonic sensor is approximately 30 degrees ... think of this as, say, 100 individual beams each at a slightly different angle to the one next to it.In physics the "angle-of-incidence" equals the "angle-of-reflection" on the opposite side of a "perpendicular" drawn at the point of reflection. Ultrasonic "radar-like" displays using a servo only see the the beam that gets reflected directly back (along the perpendicular)... the other 99 beams get lost.This detector uses the same principle. Sensor A sees the beam that gets reflected directly back ... the other 99 beams each get reflected at slightly different angles.Sensor B sees one of these 99 reflected beams ... the other 98 beams get lost.Photo 2 in Step 3 shows a diagram of the two beam paths and the equations for determining the X and Y coordinates relative to sensor A

    View Instructable »
  • lingib commented on lingib's instructable Acoustic Radar Display7 weeks ago
    Acoustic Radar Display

    The peas, and black berries, ""worked well" too!Thanks for commenting :)

    You're welcome :)

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator7 weeks ago
    Dual Sensor Echo Locator

    Thank you :)Oh for a 3D printer ...

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

    Possibly ,,, but I can't answer as I don't have one to experiment with.I searched the internet to find circuit diagrams for the HC-SR04 and Hy-SRF05 ultrasonic sensors. To my surprise I came up with four different circuits depending on the manufacturer.All circuits were similar but required a bit of oscilloscope probing to find a suitable point for attaching the wire. I avoid soldering to copper track as that has virtually no "peel strength".

    View Instructable »
  • lingib commented on lingib's instructable Acoustic Radar Display7 weeks ago
    Acoustic Radar Display

    The HC-SR04 and HY-SRF05 sensors have a maximum range of around 4 meters. I have restricted this range to 1 meter in my code.

    View Instructable »
  • lingib commented on lingib's instructable Acoustic Radar Display8 weeks ago
    Acoustic Radar Display

    Step 7 contains a bug-fix for "acoustic_radar_sender_1.ino" which exhibits "scan-creep".My thanks to https://www.instructables.com/member/newtoeu/instr... for pointing it out.

    View Instructable »
  • lingib commented on lingib's forum topic Launch Stats appear to have stopped ?8 weeks ago

    Probably not as we are al[ using different ISP'sMy guess is that it's a coding issue ... I flagged this issue as a potential "bug" but so far have had no acknowledgement that they are aware of the issue.

    View Instructable »
  • lingib's instructable Acoustic Radar Display's weekly stats: 8 weeks ago
    • Acoustic Radar Display
      25,469 views
      366 favorites
      29 comments
  • lingib commented on lingib's instructable Acoustic Radar Display8 weeks ago
    Acoustic Radar Display

    Well done ... your video is great :)To double the 100cm radius to 200cm radius:(1) double the numbers in // ----- label the arcs fill(255); //light gray text textAlign(LEFT, BOTTOM); text("100cm", +5, -width/2); //"100cm" text("75", +5, -width/2*0.75); //"75cm" text("50", +5, -width/2*0.5); //"50cm" text("25", +5, -width/2*0.25); //"25cm"// ----- new code followstext("200cm", +5, -width/2); //"200cm"text("150", +5, -width/2*0.75); //"150cm"text("100", +5, -width/2*0.5); //"100cm"text("50", +5, -width/2*0.25); //&quo...

    see more »

    Well done ... your video is great :)To double the 100cm radius to 200cm radius:(1) double the numbers in // ----- label the arcs fill(255); //light gray text textAlign(LEFT, BOTTOM); text("100cm", +5, -width/2); //"100cm" text("75", +5, -width/2*0.75); //"75cm" text("50", +5, -width/2*0.5); //"50cm" text("25", +5, -width/2*0.25); //"25cm"// ----- new code followstext("200cm", +5, -width/2); //"200cm"text("150", +5, -width/2*0.75); //"150cm"text("100", +5, -width/2*0.5); //"100cm"text("50", +5, -width/2*0.25); //"50cm"(2) Change the following four code lines in// =======================// plot data// ======================= stroke(255, 0, 0); //set data1 color to red if (Ping[index][0]>100) Ping[index][0] = 1000; //hide by printing off-screen ellipse(width/2*Ping[index][0]/100, 0, 5, 5); //plot data1 stroke(0, 0, 255); //set data2 color to blue if (Ping[index][1]>100) Ping[index][1] = 1000; //hide by printing off-screen ellipse(width/2*Ping[index][1]/100, 0, 5, 5); //plot data2// ----- new code follows stroke(255, 0, 0); //set data1 color to red if (Ping[index][0]>200) Ping[index][0] = 1000; //hide by printing off-screen ellipse(width/2*Ping[index][0]/200, 0, 5, 5); //plot data1 stroke(0, 0, 255); //set data2 color to blue if (Ping[index][1]>200) Ping[index][1] = 1000; //hide by printing off-screen ellipse(width/2*Ping[index][1]/200, 0, 5, 5); //plot data2

    The arduino code is self contained and does not use libraries

    Check that:(1) Check that the link on the ULN2003 controller is present. Removing that link removes power to the motor and you won't see any lights.(2) Check that 5 volts is getting to the ULN2003 controller.(3) None of the lights will light when the motor is first turned on as all outputs will be zero.The motor should be rotating if your display is seeing code. Check, with a voltmeter that voltage is appearing on the IN1, IN2, IN3, IN4 input pins. (I have not tried this but you could disconnect say IN1 and apply 5 volts directly, via a 560 ohm .. or 1000 ohm resistor to that pin ... if the controller is okay then one of the lights should light).(4) Is it possible that something is jamming the motor shaft?(5) Check also your wiring ... I tape my arduino connections as they have a ha...

    see more »

    Check that:(1) Check that the link on the ULN2003 controller is present. Removing that link removes power to the motor and you won't see any lights.(2) Check that 5 volts is getting to the ULN2003 controller.(3) None of the lights will light when the motor is first turned on as all outputs will be zero.The motor should be rotating if your display is seeing code. Check, with a voltmeter that voltage is appearing on the IN1, IN2, IN3, IN4 input pins. (I have not tried this but you could disconnect say IN1 and apply 5 volts directly, via a 560 ohm .. or 1000 ohm resistor to that pin ... if the controller is okay then one of the lights should light).(4) Is it possible that something is jamming the motor shaft?(5) Check also your wiring ... I tape my arduino connections as they have a habit of falling out. It only takes one pin.

    You're welcome ... thank you :)

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

    The sound waves from the transmitter behave like those from a normal radio speaker ... except that we can't hear the sound as it is above our hearing range. Utrasound does penetrate non-metallic objects as it is used in the medical profession but I haven't tried.My scanner detects all solid objects, such as glass metal and wood, but ignores cats and soft furnishings.

    Glad you like it :)

    View Instructable »
  • lingib commented on lingib's instructable Acoustic Radar Display2 months ago
    Acoustic Radar Display

    Just a thought ... try increasing the motor parameter in the arduino heading from Delay=2; to say Delay=4;I had one motor that refused to start when the delay was time was small.

    The short answer is no .... The speed of rotation is affected by all of the following:Within the arduino header: (a) reduce the Delay = 2; to Delay = 1;(b) decrease the "Speed_of_rotation" from 30 down to 1.(c) you could double the motor speed by changing the motor pattern to "full-stepping". I tried this but the 28BJY-48 motor then required a minimum delay of Delay=2 for reliable starting so nothing was gained ... I opted for "half-stepping" as that felt smoother and works with a delay of 1.The serial BAUD speed also affects the speed. Use as high a speed as possible as strings of data take longer at 9600 bauds which slows the hand-shaking.Factors that

    View Instructable »
  • lingib commented on lingib's instructable Acoustic Radar Display2 months ago
    Acoustic Radar Display

    You're welcome. Thank you for commenting :)

    Thank you for your comment :) I recently hired a car while overseas and noticed that lights on the wing-mirrors lit up to warn you of nearby vehicles. Perhaps there is already something similar for bikes?

    Thanks :)

    Thank you for the reference and also for your comment. It's amazing how things get simpler with time !!!

    View Instructable »
  • lingib commented on lingib's instructable Multi-task Your Arduino2 months 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: 2 months ago
    • Enhanced Ultrasonic Range Finder
      196 views
      5 favorites
      0 comments
  • lingib commented on lingib's instructable Ultrasonic Range Finder2 months 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 Sender3 months 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 Finder3 months 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: 3 months ago
    • Ultrasonic Range Finder
      5,098 views
      63 favorites
      7 comments
  • lingib commented on lingib's instructable Ultrasonic Range Finder3 months 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 Plotter3 months 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 Improvements3 months ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter3 months 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 GRBL4 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 GRBL4 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 GRBL4 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 GRBL4 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 GRBL5 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 statistics5 months ago
  • lingib commented on lingib's instructable How to Control a Servo Using GRBL5 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 GRBL5 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: 5 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 25 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 GRBL5 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 Editor5 months ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter5 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 Aluminium5 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 Plotter5 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 Arduino6 months ago
  • lingib commented on lingib's instructable CoreXY CNC Plotter6 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 Arduino6 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 Plotter6 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: 6 months ago
    • Multi-task Your Arduino
      1,519 views
      58 favorites
      3 comments
  • lingib commented on lingib's instructable CoreXY CNC Plotter6 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 Lift6 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 Arduino6 months ago
  • lingib followed 3D Printing channel 6 months ago
  • More Activities