author
31Instructables487,050Views306CommentsNew 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 Dual Sensor Echo Locator10 hours ago
    Dual Sensor Echo Locator

    A dual sensor echo locator can only track a single object. Instructable https://www.instructables.com/id/Multiplexed-Echo-... explains how multiple objects may be tracked.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera10 hours ago
    Make Your Own Camera

    The camera should work if you follow my instructable.The default baud speed for this project is 1000000. The project will NOT work if you set the baud sppeed to 9600.The processing code appears to be working as you appear to have captured the blank screen shown in your first image.Please read my responses to previous questions in the comments section as they contain all the debug information that you need.

    View Instructable »
  • lingib entered Omni Wheel CNC Plotter in the Epilog X Contest contest 7 days ago
  • lingib commented on lingib's instructable CNC Gcode Sender10 days ago
    CNC Gcode Sender

    Apart from an unintentional code change somewhere while installing the software I have no idea why you are getting this response?Something to try: - download the CoolTerm software terminal from http://freeware.the-meiers.org/ - installation instructions for using it may be found in Step 7 of my instructable https://www.instructables.com/id/Omni-Wheel-CNC-P... - copy outline.ngc to the "CoolTermWin" folder - instructions for sending this file are given in Step 8.

    My coreXY_plotter_1a.ino code will NOT work with a conventional XY plotter that has a separate motor for each of the X-axis and Y-axis.A CoreXY plotter is not a conventional plotter as it does not have separate X-axis and Y-axis motors.If you simultaneously step BOTH motors of a core-XY plotter in the same direction the pen will move horizontally.If you simultaneously step BOTH motors of a core-XY plotter in opposite directions the pen will move vertically.If you only step a SINGLE motor of a core-XY plotter the pen will move diagonally.

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

    A CoreXY plotter is not a conventional plotter.If you simultaneously step BOTH motors in the same direction the pen will move in that direction.If you simultaneously step BOTH motors in opposite directions the pen will move either up or down.Step a SINGLE motor and you only get diagonal movement.But feel free to experiment with the code ...

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

    Thank you for your interest in this project :)It shouldn't be too difficult to add an SD card reader.Replacing the 28BYJ-48 stepping motors and ULN2003 motor controllers with NEMA motors and Big Easy Drivers is on my list of things to do. Until then I can't comment on the backlash improvement.NEMA motors and Big Easy Drivers would enable all four motors to be controlled independently. I am not familiar with the DRV8825 driver boards that you mention.Higher mAH batteries will definitely be needed as NEMA motor currents are higher than those for the 28BYJ-48 stepping motors. Heat/heat-sinking is going to be an issue if you use too high a supply voltage. Keep in mind the power dissipated in each of your motors and motor controllers.

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

    I am not familiar with the Arduino Mega so in answer to your question ... probably.From what I have read most Arduino shields are compatible. My software should compile and run providing the pin-outs are the same.You will also need to rework the software if you choose to use 24 volt stepper motors as different motor controllers will be required.The electronics will also have to be reworked to avoid applying more than 12 volts to the Arduino.

    View Instructable »
  • lingib's instructable Omni Wheel CNC Plotter's weekly stats: 13 days ago
    • Omni Wheel CNC Plotter
      16,327 views
      153 favorites
      24 comments
  • lingib commented on lingib's instructable Omni Wheel CNC Plotter17 days ago
    Omni Wheel CNC Plotter

    I would if I had time ... thank you for commenting :)

    Well done ... I remember the Amiga days :)You can do something similar with this plotter using a cell-phone or tablet.https://www.instructables.com/id/CNC-Graphics-Tabl...

    View Instructable »
  • lingib commented on lingib's instructable Omni Wheel CNC Plotter18 days ago
    Omni Wheel CNC Plotter

    A laser possibly isn't a good idea unless you have: - eye protection for every one ... including the cat :) - fire insurance against burnt carpets ... or worse :(

    Thank you for the link :)Be aware that these 58mm wheels do not come with aluminium couplings ... the 5mm couplings must be purchased separately.

    Thank you for commenting :)

    You're welcome ... thank you for commenting :)

    View Instructable »
  • lingib commented on lingib's instructable All-Band Direct Conversion Receiver20 days ago
  • lingib commented on lingib's instructable Omni Wheel CNC Plotter20 days ago
    Omni Wheel CNC Plotter

    Theoretically yes ... providing a hobby knife can cut polystyrene sheeting.But in practice no for these reasons:- The plotter is very light-weight and would probably lift. - The plastic Omni-wheels in use have a low coefficient of friction and would slip- The motors have little torque and a tiny amount of backlash.A laser may be a better choice.?

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera21 days ago
    Make Your Own Camera

    Your frame-grabber is working as intended :)Tests 1,2,3 indicate that the frame-grabber is displaying an image after receiving 307200 (640*480) data bytes followed by a linefeed making 307201 bytes in total.The reason the screen exhibits a constant shade of gray in tests 1,2,3 is that we are deliberately sending the same data value.These tests also proves that you are receiving horizontal and vertical sync pulses from your OV7670. But tests 1,2,3 will not detect if a data byte is being dropped occasionally. The effect of a missed/dropped data byte would be to switch the camera output from monochrome to color and back producing horizontal lines.If you look at the images posted in the comments by skywalker58 you will see that his initial symptoms were similar to yours. His images then pro...

    see more »

    Your frame-grabber is working as intended :)Tests 1,2,3 indicate that the frame-grabber is displaying an image after receiving 307200 (640*480) data bytes followed by a linefeed making 307201 bytes in total.The reason the screen exhibits a constant shade of gray in tests 1,2,3 is that we are deliberately sending the same data value.These tests also proves that you are receiving horizontal and vertical sync pulses from your OV7670. But tests 1,2,3 will not detect if a data byte is being dropped occasionally. The effect of a missed/dropped data byte would be to switch the camera output from monochrome to color and back producing horizontal lines.If you look at the images posted in the comments by skywalker58 you will see that his initial symptoms were similar to yours. His images then progress from slanted images with lines, to rectangular images without lines. Non-rectangular images indicate a loss of sync. In skywalker58's case it appears that instability was the cause.Comparing your images to those of skywalker58 I notice a diagonal line running downwards from the top left-hand corner of the display when there is an image problem.. This diagonal line indicates a loss of sync or lost data bytes. If there is any instability (tendency to oscillate) you will not get an image.Sorry I cannot be more helpful ... I will contact you if I think of anything.

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

    In answer to your question ... "I don't know" :(But you have raised my curiosity !!There are three versions of the file "spindle)control.c":- the original version- the version which I have archived in Step 3 of this instructable- the latest version which may be found at https://github.com/bdring/Grbl_Pen_ServoThe original version supports the laser mode, details of which may be found at https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser... The archived version is a substantial rewrite of spindle_control.c and requires that M4, M5 codes be inserted into the g-code output from InkscapeThe latest Github version uses the positive and negative z-axis values in the g-code output from Inkscape to raise and lower the pen. This version sounds promising. At present I don't ha...

    see more »

    In answer to your question ... "I don't know" :(But you have raised my curiosity !!There are three versions of the file "spindle)control.c":- the original version- the version which I have archived in Step 3 of this instructable- the latest version which may be found at https://github.com/bdring/Grbl_Pen_ServoThe original version supports the laser mode, details of which may be found at https://github.com/gnea/grbl/wiki/Grbl-v1.1-Laser... The archived version is a substantial rewrite of spindle_control.c and requires that M4, M5 codes be inserted into the g-code output from InkscapeThe latest Github version uses the positive and negative z-axis values in the g-code output from Inkscape to raise and lower the pen. This version sounds promising. At present I don't have a laser to try.The Notepad++ text editor has a file compare function, an example of which is shown in Step 1 of this instructable. My guess is that the code with the least changes is more likely to work.My first approach to finding out would be to try each of these versions in turn. Sorry that I can't be more helpful. If I find an answer I will let you know.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera26 days ago
    Make Your Own Camera

    The following tests will pinpoint the problem:In screenshots 1,2,3, the word "data" in the "line Serial.write(data);" has been replaced with a hexadecimal value. Replacing the word "data" with each of these hexadecimal values will produce a different shade of gray in the image window. If you see these changes then your software is working correctly.Restore the code line to read Serial.write(data);Now make the code changes shown in screen shots 4,5. Do these tests in a darkened room (i.e. away from bright light). The image in screenshot 4 is the darkest image possible. Writing a single 1 into any position in the top two lines shown in yellow high-light will brighten the image as shown in image 5.In test 4 the hexadecimal values in tests 1,2,3 have been subst...

    see more »

    The following tests will pinpoint the problem:In screenshots 1,2,3, the word "data" in the "line Serial.write(data);" has been replaced with a hexadecimal value. Replacing the word "data" with each of these hexadecimal values will produce a different shade of gray in the image window. If you see these changes then your software is working correctly.Restore the code line to read Serial.write(data);Now make the code changes shown in screen shots 4,5. Do these tests in a darkened room (i.e. away from bright light). The image in screenshot 4 is the darkest image possible. Writing a single 1 into any position in the top two lines shown in yellow high-light will brighten the image as shown in image 5.In test 4 the hexadecimal values in tests 1,2,3 have been substituted with your OV7670 data.In test 5 we have increased the camera gain. At some point you should get an image ... if not then your OV7670 data is suspect.

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

    Things to try:(1) Confirm that your plotter works as follows:- Launch your Arduino IDE, - click "Tools|Serial Monitor", - then issue some manual commands.- close your Arduino IDE(2)Now send a known good file to your plotter- download and copy Letter_B.ngc into your C:\...\processing3_terminal folder- launch "processing3_terminal.pde"- now follow the instructions in Step 3 of the "CNC Gcode Sender" instructable(3)Now try your aa.ngc file- copy your aa.ngc file into your C:\...\processing3_terminal folder- mimic the the instructions in Step 3 of the "CNC Gcode Sender" instructable using aa.ngc instead of Letter_B.ngcIf steps (1) and (2) work then there is a problem with your aa.ngc file.

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

    Well done ... thanks for your update :)I am a little concerned at your NEMA motor currents of 1.7amps as Big Easy Drivers are only rated to about 1.4 amps per phase at room temperatures. Beyond that heatsinks (and/or cooling fans) are recommended.The reason for this is explained in the "heat Dissipation" paragraph in http://www.schmalzhaus.com/BigEasyDriver/BigEasyDr...The NEMA motors I specified for use in this instructable only draw 400mA which means that heatsinks are not required.

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

    I am unable to replicate your problem (screen shots attached)I notice that you appear to be using Arduino version 1.6.1 and Windows 7.I suggest that you update your software to the latest Arduino version for your operating system. The current Arduino version for Windows 10 is version 1.8.8.There are two versions of my code in Step 2 of this instructable. Try each of these files. The reason for two files is explained in my comment dated 22 December 2018.You have possibly copied the *.ino code into your "sketch_feb14b" twice as your error messages read: "coreXY_plotter.ino:104:6: error: redefinition of 'void setup()'"The following method should eliminate any copying errors:(1) download the file "coreXY_plotter_1a.ino" into your download folder(2) double-left-...

    see more »

    I am unable to replicate your problem (screen shots attached)I notice that you appear to be using Arduino version 1.6.1 and Windows 7.I suggest that you update your software to the latest Arduino version for your operating system. The current Arduino version for Windows 10 is version 1.8.8.There are two versions of my code in Step 2 of this instructable. Try each of these files. The reason for two files is explained in my comment dated 22 December 2018.You have possibly copied the *.ino code into your "sketch_feb14b" twice as your error messages read: "coreXY_plotter.ino:104:6: error: redefinition of 'void setup()'"The following method should eliminate any copying errors:(1) download the file "coreXY_plotter_1a.ino" into your download folder(2) double-left-click "coreXY_plotter_1a.ino" using Windows File Explorer.(3) this should launch the Arduino IDE which will then ask if it can place the file into a folder of the same name.(4) click "OK"(5) now upload the file to your Aduino ... all going well it should compile.

    View Instructable »
  • lingib commented on lingib's instructable CoreXY CNC Plotter6 weeks ago
    CoreXY CNC Plotter

    The SG90 has three wires.Just follow the wiring shown iin Photo 1,Step 3.The orange wire goes to pin D3 of the Arduino.The red wire goes to 5V on either the Easy Driver or the Big Easy Driver.The brown wire goes to GND on either the Easy Driver or the Big Easy Driver.

    View Instructable »
  • lingib commented on lingib's instructable CoreXY CNC Plotter6 weeks ago
    CoreXY CNC Plotter

    The reason the module looks different is that your module an "Easy Driver" not a "Big Easy driver".Both modules are similar but the "Big Easy Driver defaults to 16 x microstepping whereas the "Easy Driver" defaults to 8 x microstepping.If you wish to use the "Easy Driver" you will meed to change line 43 in the *.ino code to read:#define STEPS_PER_MM 200*8/40 //200steps/rev; 8 x microstepping; 40mm/revApart from this minor code change the wiring, and motor current adjustment(s), is the same as that set out in Step 1 of the instructable.Each of the pinouts for the "Easy Driver" are axplained in https://media.digikey.com/pdf/Data%20Sheets/Spark...Each of the pinouts for the "Big Easy Driver" are explained in http:/...

    see more »

    The reason the module looks different is that your module an "Easy Driver" not a "Big Easy driver".Both modules are similar but the "Big Easy Driver defaults to 16 x microstepping whereas the "Easy Driver" defaults to 8 x microstepping.If you wish to use the "Easy Driver" you will meed to change line 43 in the *.ino code to read:#define STEPS_PER_MM 200*8/40 //200steps/rev; 8 x microstepping; 40mm/revApart from this minor code change the wiring, and motor current adjustment(s), is the same as that set out in Step 1 of the instructable.Each of the pinouts for the "Easy Driver" are axplained in https://media.digikey.com/pdf/Data%20Sheets/Spark...Each of the pinouts for the "Big Easy Driver" are explained in http://www.schmalzhaus.com/BigEasyDriver/BigEasyD...

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

    The dimensions of all metal-work are given in step 1.The dimensions of platform that is attached to the metal-work is not critical. I used a scrap of acrylic sheet approximately 160mm x 110mm.There are no STL files for this project as it was made from readily available parts. If you do decide to 3D print this project pay particular attention to the chassis design ... it is critical that the wheel spacing does not alter.

    The components for this project are mounted on a blank prototype board.A suitable prototype board is available from https://www.aliexpress.com/ ...just search for "Prototype PCB Expansion Board For Arduino"

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera6 weeks ago
    Make Your Own Camera

    -------------------------------------In the "OV7670_camera_mono_v2.ino"-------------------------------------Your image brightness is controlled by registers 0x07, 0x10, and 0x04You are allowed to write a '1' into any of the positions below that are shown with an 'x'write_register(0x07, Bxxxxxxxx); write_register(0x10, Bxxxxxxxx); write_register(0x04, B000000xx); Maximum brightness occurs with the following register settings:write_register(0x07, B11111111); write_register(0x10, B11111111); write_register(0x04, B00000011);Minimum brightness occurs with the following register settings:write_register(0x07, B00000000); write_register(0x10, B00000000); write_register(0x04, B00000000);Medium brightness occurs with the following register settings:write_register(0x07, B00000000); write...

    see more »

    -------------------------------------In the "OV7670_camera_mono_v2.ino"-------------------------------------Your image brightness is controlled by registers 0x07, 0x10, and 0x04You are allowed to write a '1' into any of the positions below that are shown with an 'x'write_register(0x07, Bxxxxxxxx); write_register(0x10, Bxxxxxxxx); write_register(0x04, B000000xx); Maximum brightness occurs with the following register settings:write_register(0x07, B11111111); write_register(0x10, B11111111); write_register(0x04, B00000011);Minimum brightness occurs with the following register settings:write_register(0x07, B00000000); write_register(0x10, B00000000); write_register(0x04, B00000000);Medium brightness occurs with the following register settings:write_register(0x07, B00000000); write_register(0x10, B00000001); write_register(0x04, B00000011);

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera2 months ago
    Make Your Own Camera

    Thank you for posting a photo of your wiring layout.I notice that your camera module is not fixed which means your wiring moves with each photo. It is possible that an a poor connection on your breadboard could cause instability and horizontal banding. Hand capacity may also contribute to your problem.If you Google "OV7670 image" you will find that other people have also experienced your problem. Two examples:(1)https://www.instructables.com/id/OV7670-Without-FI...Step 7: Troubleshooting and Pictures shows similar image problems issues and suggests "try switching the USB of the arduino from a USB2.0 to a USB3.0 (blue socket) or vice versa."(2)https://www.instructables.com/id/OV7670-Arduino-Ca...Step 11 trouble-shooting: also says "try switching the USB of the ar...

    see more »

    Thank you for posting a photo of your wiring layout.I notice that your camera module is not fixed which means your wiring moves with each photo. It is possible that an a poor connection on your breadboard could cause instability and horizontal banding. Hand capacity may also contribute to your problem.If you Google "OV7670 image" you will find that other people have also experienced your problem. Two examples:(1)https://www.instructables.com/id/OV7670-Without-FI...Step 7: Troubleshooting and Pictures shows similar image problems issues and suggests "try switching the USB of the arduino from a USB2.0 to a USB3.0 (blue socket) or vice versa."(2)https://www.instructables.com/id/OV7670-Arduino-Ca...Step 11 trouble-shooting: also says "try switching the USB of the arduino from a USB2.0 to a USB3.0 (blue socket) or vice versa." and in theComments section: someone says "I met the same problem and I think it dues to bad connections in the circuit. After soldering the circuit, it worked."Both of the above Instructables use a similar circuit and use a Java based (as opposed to my Processing) frame-grabber.Unfortunately I am unable to offer any further suggestions as I am out of ideas.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera2 months ago
    Make Your Own Camera

    Originally you never got an image. With your help I traced this to: - incorrect wiring - a faulty 0V7670The fact that you are now getting an image with this second 0V7670 indicates that your circuit is working.But the cause of the horizontal bands is a mystery. These horizontal bands appear to contain faint image information (especially your second curtain photo) which suggests that the Arduino is missing an occasional PCLK signal. If this were to happen then you would see the UV color components of the image which, if you look at photo 1 in step 8 of this instructable, only contains faint image information. The image would return to normal if another PCLK signal was missed.To test this PCLK theory we have tried: - swapping the PCLK input to Arduino pin 12 in the off-chance that pin 8...

    see more »

    Originally you never got an image. With your help I traced this to: - incorrect wiring - a faulty 0V7670The fact that you are now getting an image with this second 0V7670 indicates that your circuit is working.But the cause of the horizontal bands is a mystery. These horizontal bands appear to contain faint image information (especially your second curtain photo) which suggests that the Arduino is missing an occasional PCLK signal. If this were to happen then you would see the UV color components of the image which, if you look at photo 1 in step 8 of this instructable, only contains faint image information. The image would return to normal if another PCLK signal was missed.To test this PCLK theory we have tried: - swapping the PCLK input to Arduino pin 12 in the off-chance that pin 8 was level sensitive - a faster method of sending dataThe only thing I can think of now is some form of instability which can be caused by - lead length - proximity of critical leads to anotherCan you please send a photo of your camera. I need to see your construction layout before I can make any further suggestions.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera2 months ago
    Make Your Own Camera

    If you study the photo in Step 3 of this instructable you will see how it is broken up into three sets of information.The desired "Y" information, which appears every second data position, produces a detailed image. This us why we sample the data every second PCLK.The unwanted "U" and "V" information only contains faint images. These signals, if displayed on a monochrome screen, would appear as faint monochrome outlines.If you now examine each of your three "window" images you can see faint outlines in each of the unwanted horizontal bands. It would appear that your Arduino is not detecting the occasional PCLK signal from your 0V7670 chip. If this were to happen then every second sample would become "U" then "V" information and...

    see more »

    If you study the photo in Step 3 of this instructable you will see how it is broken up into three sets of information.The desired "Y" information, which appears every second data position, produces a detailed image. This us why we sample the data every second PCLK.The unwanted "U" and "V" information only contains faint images. These signals, if displayed on a monochrome screen, would appear as faint monochrome outlines.If you now examine each of your three "window" images you can see faint outlines in each of the unwanted horizontal bands. It would appear that your Arduino is not detecting the occasional PCLK signal from your 0V7670 chip. If this were to happen then every second sample would become "U" then "V" information and the image would appear as faint monochrome outlines until another PCLK signal is missed at which point the desired image will reappear. This would also explain the slanted edges to each of your images as the frame-grabber is a dumb device and simply captures data until a linefeed symbol is received at which point it will display the data it has received.It would appear that:(1) your frame-grabber is working correctly(2) your 0V7670 camera chip is working.(3) your 5 volt Arduino is not reliably detecting the PCLK signals from the 3 volt 0V7670 CMOS camera chipThings to try:(1) Swap your existing Arduino board for another. Make certain you PROGRAM IT FIRST before attaching the OV7670 wires.(2) If you don't have a spare Arduino board then you could try mapping the PCLK signal to another unused Arduino pin ... some pins may be more sensitive. If you do this then you will need to change the binary patterns, and possibly ports numbers, in each of the code lines associated with the PCLK signal. Let me know if you need help with this.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera2 months ago
    Make Your Own Camera

    An image at last ... well done :)The fact that you are now getting an image indicates that both your camera module and frame grabber are working.I am a little puzzled about your images as I have not encountered this problem. Both images have a slanting edge which indicates a timing / synchronising issue. In particular the lower part of your first image appears to "wrap-around" the screen.The "bands" in each image also indicate a loss of sync. I suspect that you are occasionally loosing a sync pulse and what you are seeing are bands of "UV" (color) data then "Y" (image) data as you regain sync. If this problem occurs at start up then it may resolve after running for a while (I'm thinking temperature).Go back over my previous suggestions ... in part...

    see more »

    An image at last ... well done :)The fact that you are now getting an image indicates that both your camera module and frame grabber are working.I am a little puzzled about your images as I have not encountered this problem. Both images have a slanting edge which indicates a timing / synchronising issue. In particular the lower part of your first image appears to "wrap-around" the screen.The "bands" in each image also indicate a loss of sync. I suspect that you are occasionally loosing a sync pulse and what you are seeing are bands of "UV" (color) data then "Y" (image) data as you regain sync. If this problem occurs at start up then it may resolve after running for a while (I'm thinking temperature).Go back over my previous suggestions ... in particular the answer in which I post six images.

    The fact that you are getting a dark image indicates that the lighting levels have changed in which case you wiwll need to increase the camera gain.Since the picture also exhibits the same problems as your previous post I suggest that you concentrate on getting a stable image using the settings for your window shots before changing the lighting.

    I can understand your frustration. Keep in mind that I cannot see what you are doing and have no way of knowing what you have tried in an attempt to debug your latest problem ... you are my eyes and ears. Sounding off does not help.Currently you have progressed from no image to a (slightly) distorted image.Together we isolated your initial lack of an image to a faulty OV7670.I am assuming that you have confirmed that the framegrabber is working by performing the tests that I have previously sent you. I am attaching the three screen shots again. Your framegrabber screen should change from light-gray, to gray, and then to black when you change the Serial.print(data); line in yellow-high light. This test is probably unnecessary as you are now getting an image. Restore the line in yellow-h...

    see more »

    I can understand your frustration. Keep in mind that I cannot see what you are doing and have no way of knowing what you have tried in an attempt to debug your latest problem ... you are my eyes and ears. Sounding off does not help.Currently you have progressed from no image to a (slightly) distorted image.Together we isolated your initial lack of an image to a faulty OV7670.I am assuming that you have confirmed that the framegrabber is working by performing the tests that I have previously sent you. I am attaching the three screen shots again. Your framegrabber screen should change from light-gray, to gray, and then to black when you change the Serial.print(data); line in yellow-high light. This test is probably unnecessary as you are now getting an image. Restore the line in yellow-highlight to read Serial.print(data); when you have finished.The number 307201 should be displayed following each test.Assuming that the framegrabber tests okay you need to figure out why your data is getting corrupted.For this project to work you need relatively short leads as we are dealing with microsecond pulse widths. Long leads can distort pulses which could cause pulses to be missed which will result in a distorted image. If you look at my wiring the earth and supply leads are extremely short.

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

    I have not tried an XC4492 so am unable to comment.Big Easy Drivers are specifically designed for the motor configuration in this project. Specifically they feature: - a single direction pin - a single step pin - adjustable current limitUnless the XC4492 has these features I suggest that you replicate my design as Big Easy Drivers are readily available and extremely cheap.Good luck with your project :)

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

    Any 12 volt DC power adapter capable of 1 amp should be fine providing that you adjust each motor current to 400 milliamps (0.4 amps) as described in Step 1, "Adjusting the motor current(s)". Since power adapters do not have an inbuilt current meter you will need to (temporarily) insert an amp-meter in series with the power supply while you adjust each of the Big Easy Driver current limits to 0.4 amps (400 milliamps). Before adjusting the Big Easy Driver currents use an ohm-meter to check that each of the two motor coil windings are adjacent to each other on the Big Easy Driver boards.The 12 volt supply is ONLY connected to the Big Easy Drivers as shown in the CoreXY Plotter wiring diagram. The 5 volts for the Arduino Uno R3 is obtained from the USB cable connected to your PC.

    View Instructable »
  • Make a Simple EPUB From a Series of Pictures

    Thank you for taking the time to write this Instructable ... your sample epub is excellent :)In 2013 I wrote two books for Amazon Kindle. The software that I used wasn't really suited to illustrated books ... I wish that I had seen this article way back then as your method is so much simpler.

    View Instructable »
  • lingib commented on lingib's instructable Multiplexed Echo Locator2 months ago
    Multiplexed Echo Locator

    Correct. The video shows two objects being pin-pointed.In this instructable, as shown in step 3, four sensors create four detection areas which means that four separate objects may be detected providing that (1) each object is in a separate detection area and that (2) there is no "shadowing". In https://www.instructables.com/id/Dual-Sensor-Echo-Locator/ two sensors create a single detection area. To cover a given area the two sensors need to be offset below the baseline.Note that the sensors in this instructable are resting on the baseline whereas the two sensor version requires the sensors to be positioned below the baseline in order to completely illuminate the target area.

    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 look forward to your laser project. It sounds interesting. Good luck :)

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

    For some projects a servo provides a simpler, and cheaper, solution than a Z-axis motor and motor controller.I wrote this instructable as there is not a lot of information about using a servo with GRBL.An example of how this instructable has helped others may be found at https://github.com/WJonson/CNC-Object-Locator

    View Instructable »
  • lingib's instructable Simple Rotary Decoder's weekly stats: 2 months ago
    • Simple Rotary Decoder
      1,086 views
      5 favorites
      0 comments
  • lingib commented on lingib's instructable Dual Sensor Echo Locator3 months ago
    Dual Sensor Echo Locator

    Assuming that the "system" has been calibrated for temperature, humidity, and atmospheric pressure, the accuracy should approximate that of your sensors.Automatic calibration is possible using a third transducer (in the same environment) spaced a known distance from a separate reflector to calculate the correct value to use in place of the constants 59 and 29.5Without calibration the accuracy is within 1 or 2 centimeters depending on the shape of the object.

    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 commenting :)A correctly formatted version of "spindle_control.c" is attached to this instructable ... see Step 3, Note 1.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera3 months ago
    Make Your Own Camera

    The write_register() function only expects two values.The first value is the register numberThe second value is the actual value to be written into the register.In my previous answer I have provided several screen shots.The photos showing light-gray, darker-gray, and black screens have the test code shown in yellow highlight. You should see the same if you enter these values ... regardless of the settings in the initialise_OV7670() function.These three tests simply confirm that your frame-grabber is working correctly.The photo showing a completely white screen shows what you should see when you try sending actual data to the framegrabber with all of the gain bits (shown in yellow high-light) set to '1'.The photo showing a perfect picture requires the initialise_OV7670() shown.Increasi...

    see more »

    The write_register() function only expects two values.The first value is the register numberThe second value is the actual value to be written into the register.In my previous answer I have provided several screen shots.The photos showing light-gray, darker-gray, and black screens have the test code shown in yellow highlight. You should see the same if you enter these values ... regardless of the settings in the initialise_OV7670() function.These three tests simply confirm that your frame-grabber is working correctly.The photo showing a completely white screen shows what you should see when you try sending actual data to the framegrabber with all of the gain bits (shown in yellow high-light) set to '1'.The photo showing a perfect picture requires the initialise_OV7670() shown.Increasing the gain from zero to 4 produces the over-exposed image.

    The write_register() function only expects two values.The first value is the register numberThe second value is the actual value to be written into the register.In my previous answer I have provided several screen shots.The photos showing light-gray, darker-gray, and black screens have the test code shown in yellow highlight. You should see the same if you enter these values ... regardless of the settings in the initialise_OV7670() function.These three tests simply confirm that your frame-grabber is working correctly.The photo showing a completely white screen shows what you should see when you try sending actual data to the framegrabber with all of the gain bits (shown in yellow high-light) set to '1'.The photo showing a perfect picture requires the initialise_OV7670() shown.Increasing...

    see more »

    The write_register() function only expects two values.The first value is the register numberThe second value is the actual value to be written into the register.In my previous answer I have provided several screen shots.The photos showing light-gray, darker-gray, and black screens have the test code shown in yellow highlight. You should see the same if you enter these values ... regardless of the settings in the initialise_OV7670() function.These three tests simply confirm that your frame-grabber is working correctly.The photo showing a completely white screen shows what you should see when you try sending actual data to the framegrabber with all of the gain bits (shown in yellow high-light) set to '1'.The photo showing a perfect picture requires the initialise_OV7670() shown.Increasing the gain from zero to 4 produces the over-exposed image.*****************************************************************************************It would appear that you have previous attempted to make a camera as: (1) your PCLK, HREF, and VSYNC wiring was mapped to different pins(2) you were not using 4K7 pull-up resistors.(haven't tried but 10K is probably fine)In my article I stress, in several places, to upload my code to the arduino BEFORE

    With regards to this camera project I have simply exhausted all possibilities, but feel free to ask for help with any of your other projects :)Thank you for your questions. In trying to find a solution I found that a minor change to one line of the processing code significantly improved the image quality. No changes were required to the Arduino code.Please note that, should you rebuild your camera: (1) OV7670_camera_mono_V2.pde and OV7670_camera_color_V2.pde both contain this code update. The Arduino code is unaltered but is renamed to V2 to match.(2) No code changes should be needed.(3) Upload the arduino code BEFORE attaching any wires to your OV7670 as 5 volts will destroy the chip.

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

    Glad that GcodePostProcessor.pde has solved your problem :)I'm not certain that I understand your 100,100 problem? If the command G00 X100 Y100 is moving your plotter more than 100 millimeters then you need to change the $100,$101,$102 values shown in Step 6.The values of 80 for my plotter were calculated as follows: GT2-20 motor pulley = 2*20 = 40mm per revolution 1.8 degrees per step motor = 360/1.8 = 200 steps per revolution. Motor controller micro-stepping = 16 From which steps/mm = 200*16/40 = 80

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

    A solution to your problem is discussed in "Step 8: Raising and Lowering Your Pen"."GPP.zip", attached to Step 8, contains a post-processor that should fix your issue.The GPP post-processor is designed to work with Inkscape which generates a "M2" stop code. Non-Inkscape gcode may use M30 ... in which case edit the source code to suit.

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

    The code, "Arduino_CNC_plotter.ino", is attached to Step 5: Installing the Robot Software.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera3 months ago
    Make Your Own Camera

    Your camera may well be working ... it may just need more gain.Overwrite any code changes that you may have made by reinstalling BOTH "OV7670_camera_mono.pde" and "OV7670_camera_mono.ino". -------------------------------------In the "OV7670_camera_mono.pde" software-------------------------------------Change code line 78 to read:pixels[i] = color(int(byteBuffer[i])); Explanation:Changing the data type SIGNIFICANTLY improves the image. -------------------------------------In the "OV7670_camera_mono.ino"-------------------------------------Your image brightness may be adjusted as as follows:Change the code to read:write_register(0x07, B00000000); write_register(0x10, B00100000);write_register(0x04, B00000000);Explanation:These three lines control th...

    see more »

    Your camera may well be working ... it may just need more gain.Overwrite any code changes that you may have made by reinstalling BOTH "OV7670_camera_mono.pde" and "OV7670_camera_mono.ino". -------------------------------------In the "OV7670_camera_mono.pde" software-------------------------------------Change code line 78 to read:pixels[i] = color(int(byteBuffer[i])); Explanation:Changing the data type SIGNIFICANTLY improves the image. -------------------------------------In the "OV7670_camera_mono.ino"-------------------------------------Your image brightness may be adjusted as as follows:Change the code to read:write_register(0x07, B00000000); write_register(0x10, B00100000);write_register(0x04, B00000000);Explanation:These three lines control the image brightness. You are allowed to write a '1' into any of the positions below that are shown with an 'x'write_register(0x07, Bxxxxxxxx); write_register(0x10, Bxxxxxxxx); write_register(0x04, B000000xx); The default position is"write_register(0x07, B00000000);write_register(0x10, B00100000); write_register(0x04, B00000000); Please let me know if this works and I will update the Instructable.A screenshot showing the changes is attached.

    There is a strong possibility that your OV7670 is not working :(With a '1' written into every bit position your screen should be white as shown in Gain_high.jpg (attached) .... your screen is gray ???With a '0' written into every bit position you should get an image as shown in Gain_zero.jpg (attached).With a gain setting of 4 (binary 00000000 00000001 00) the image starts to over-expose as shown in Gain_four.jpg (attached).While you are getting valid sync pulses it appears that your OV7670 data lines are producing invalid data. A simple way of verifying this is to fill each bit position with a '1' (as you have done) and send known hexadecimal data values to your PC as shown in the remaining screen shots.0x00 produces a black screen as shown in Serial_write_0x00.jpg.0x80 produces a mid-...

    see more »

    There is a strong possibility that your OV7670 is not working :(With a '1' written into every bit position your screen should be white as shown in Gain_high.jpg (attached) .... your screen is gray ???With a '0' written into every bit position you should get an image as shown in Gain_zero.jpg (attached).With a gain setting of 4 (binary 00000000 00000001 00) the image starts to over-expose as shown in Gain_four.jpg (attached).While you are getting valid sync pulses it appears that your OV7670 data lines are producing invalid data. A simple way of verifying this is to fill each bit position with a '1' (as you have done) and send known hexadecimal data values to your PC as shown in the remaining screen shots.0x00 produces a black screen as shown in Serial_write_0x00.jpg.0x80 produces a mid-gray screen as shown in Serial_write_0x80.jpg.0xD0 produces a light-gray screen as shown in Serial_write_0xD0.jpg0xFF will produce a completely white screen.

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera3 months ago
    Make Your Own Camera

    The fact that you have data indicates that your hardware is working :)I suspect the problem is the result of too much light. If you pause the video in my Instructable at 0:14 seconds you will see that the room is dimly lit.In Step 4 (Design Notes: Side Effects) I mention "To prevent over-exposure I have set all of the AEC (auto exposure control) register bits to zero. Even so a neutral density filter is needed in front of the lens when the lighting is bright." The exposure values are set to minimum in the "initialise_OV7670(){}" subroutine should you wish to experiment.Try installing "OV7670_camera_mono.ino/pde" as this software is much faster which means that you can quickly see the effect of different light levels. The "color" software can be tr...

    see more »

    The fact that you have data indicates that your hardware is working :)I suspect the problem is the result of too much light. If you pause the video in my Instructable at 0:14 seconds you will see that the room is dimly lit.In Step 4 (Design Notes: Side Effects) I mention "To prevent over-exposure I have set all of the AEC (auto exposure control) register bits to zero. Even so a neutral density filter is needed in front of the lens when the lighting is bright." The exposure values are set to minimum in the "initialise_OV7670(){}" subroutine should you wish to experiment.Try installing "OV7670_camera_mono.ino/pde" as this software is much faster which means that you can quickly see the effect of different light levels. The "color" software can be tried once you have an image using the "mono" software. The "color" software requires the same lighting level ... it is essentially the "mono" software run twice then processed. Keep in mind the color "software is purely experimental" and that "the colors appear to be inverted".

    If you haven't already done so, upload "OV7670_camera_mono.ino" to your Arduino.Do not make any changes to the code. If you have access to an oscilloscope you should see signals on each of the data lines.Open the Arduino "Serial|Monitor" and set the baud speed to 1000000.Remove the lens-cap from your OV7670 in bright light. Removing the lens cap forces the OV7670 data pattern to 255 (white)Now send the letter 'c' to your Arduino and note the symbols/characters that appear in the Serial|Monitor.Replace the lens-cap on your OV7670. Adding the lens cap forces the data pattern to be 0 (black)Send the letter 'c' to your Arduino and note the symbols/characters that appear the Serial|Monitor. These symbols/characters should be different.If no visible characters appear on th...

    see more »

    If you haven't already done so, upload "OV7670_camera_mono.ino" to your Arduino.Do not make any changes to the code. If you have access to an oscilloscope you should see signals on each of the data lines.Open the Arduino "Serial|Monitor" and set the baud speed to 1000000.Remove the lens-cap from your OV7670 in bright light. Removing the lens cap forces the OV7670 data pattern to 255 (white)Now send the letter 'c' to your Arduino and note the symbols/characters that appear in the Serial|Monitor.Replace the lens-cap on your OV7670. Adding the lens cap forces the data pattern to be 0 (black)Send the letter 'c' to your Arduino and note the symbols/characters that appear the Serial|Monitor. These symbols/characters should be different.If no visible characters appear on the screen substitute the following (untested) code in "OV7670_camera_mono.ino": /* Read second byte */ while (PINB & B00000001); // Wait until PCLK pin 8 is low data = (PIND & B11110000) | (PINC & B00001111); // Read data if (data <128) { Serial.write('A'); } else { Serial.write('Z'); } while (!(PINB & B00000001)); // Wait until PCLK pin 8 is highIf the characters change from 'AAAAAA....' to 'ZZZZZZZ.....' when you add/remove the lens cap your OV7670 is okay, in which case upload "OV7670_camera_mono.ino" once more to your Arduino and run the OV7670_camera_mono.pde" sketch on your PC. Point your OV7670 to a dimly lit object.An image should appear in the PC image window, and the number 307201 should appear in the bottom Processing window (307201 = 640*480 pixels + 1 termination character)whenever your press the 'c' key.Now adjust the lighting level to suit.The above tests should determine whether your OV7670 is working .

    View Instructable »
  • lingib commented on lingib's instructable Make Your Own Camera3 months ago
    Make Your Own Camera

    Thank you for the screen-shot of the "OV7670_camera_color" software.The light-gray screen indicates that the Processing 3 software is working correctly.It would appear that you have changed the wiring for "PCLK", "HREF", and "VSYNC". As a result no data is being sent to the PC.For my code to work the wiring should be as follows:/* OV7670 */#define OV7670 0x21 // OV7670 address#define PCLK 8 //pixel clock from OV7670#define HREF 9 //horizontal sync from 0V7670 (not used)#define VSYNC 10 //vertical sync from OV7670#define XCLK 11 //8MHz output to OV7670A wiring-diagram is included in my code header. I am using pins 8,9,10,11 for the following reasons: - I found pins 2,3 unreliable (e...

    see more »

    Thank you for the screen-shot of the "OV7670_camera_color" software.The light-gray screen indicates that the Processing 3 software is working correctly.It would appear that you have changed the wiring for "PCLK", "HREF", and "VSYNC". As a result no data is being sent to the PC.For my code to work the wiring should be as follows:/* OV7670 */#define OV7670 0x21 // OV7670 address#define PCLK 8 //pixel clock from OV7670#define HREF 9 //horizontal sync from 0V7670 (not used)#define VSYNC 10 //vertical sync from OV7670#define XCLK 11 //8MHz output to OV7670A wiring-diagram is included in my code header. I am using pins 8,9,10,11 for the following reasons: - I found pins 2,3 unreliable (external interrupt pin loading ???) - Grouping pins 8,9,19,11 together makes it easier to tape the wires in place.The same pinouts are used for the "OV7670_camera_mono.ino" and "OV7670_camera_color.ino" software.You can confirm that the Arduino code is working using the "Serial|Monitor".Set the Arduino Serial|Monitor baud speed to 1000000 and type "c" in the command window. The link light on the Arduino should flash then, after a few seconds, a string of strange characters should race across the screen. If you want to see a string of visible characters then (temporarily) change code lines 233,296 to read: Serial.write('A'); // Send data to PCOnce you see a string of "AAAAAAAAAAAAAAAAAA...'s" you know the code is working. Change the code back to Serial.write(data); and launch Processing 3 again.

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

    The software for "Acoustic Radar Display" must be loaded in the following sequence:--------------------The Arduino software--------------------(1) Connect a USB cable between your Arduino and your PC(2) Click "Tools|Port" then select your Arduino serial port number.(3) Upload the Arduino sketch to your Arduino(4) Leave the USB plugged in to your PC(5) Close your Arduino IDE ... it is no longer required---------------------Processing 3 Software----------------------(1) Now run the Processing 3 sketch-----------------------Possible error messages------------------------You will get an error message if:(1) the Arduino USB cable is not plugged in to the PC.(2) The Processing serial port is not the same as that used to program the Arduino(3) The error message that you des...

    see more »

    The software for "Acoustic Radar Display" must be loaded in the following sequence:--------------------The Arduino software--------------------(1) Connect a USB cable between your Arduino and your PC(2) Click "Tools|Port" then select your Arduino serial port number.(3) Upload the Arduino sketch to your Arduino(4) Leave the USB plugged in to your PC(5) Close your Arduino IDE ... it is no longer required---------------------Processing 3 Software----------------------(1) Now run the Processing 3 sketch-----------------------Possible error messages------------------------You will get an error message if:(1) the Arduino USB cable is not plugged in to the PC.(2) The Processing serial port is not the same as that used to program the Arduino(3) The error message that you describe indicates that you have tried to upload software to your Arduino while the Processing sketch is running.

    View Instructable »
  • lingib's instructable Make Your Own Camera's weekly stats: 4 months ago
    • Make Your Own Camera
      499 views
      2 favorites
      0 comments
  • lingib commented on lingib's instructable CNC Drawing Arm4 months ago
    CNC Drawing Arm

    The method I devised for plotting arcs is explained in "Step 11" of https://www.instructables.com/id/CNC-Drum-Plotter/ Two identical triangles are formed when you bisect a chord drawn between the start and end points on a circle. The angle at the center of the circle can now be calculated using trigonometery. The arc-length can then be calculated using the formaula arc=angle*radius.If the start and end points are close together then each chord lies on the arc. My solution is to calculate the target arc-length, divide it into a number of smaller lengths (this makes each chord lie on the arc) and calculate the intermediate end points. The last intermediate point is connected to the target end-point.

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

    Not a problem ... happy to help :)

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

    See note [1] in "Step 3: Modifying GRBL".A copy of "spindle_control.c" is included there ...

    The "spindle_control.c" file in Step 3 expects GRBLversion 1.1f.You are using an earlier version ... Some suggestions:(1) Install GRBL version 1.1f and try again(2) Check your wiring as it is unusual for a servo to overheat

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

    "How can I learn the CNC programming for a cd drive turned 2d plotter .......I can't understand the codes in arduino and processing. Could you please help me."--------------------------------------"How can I learn the CNC programming"--------------------------------------The following link may be helpful:https://makezine.com/2016/10/24/get-to-know-your-cnc-how-to-read-g-code/There are many codes ... fortunately you only need to know a few.Codes that refer to positioning start with the letter 'G' ... they tell the machine where to go and how to get there.Examples:(1) G00 X100 Y150 = Go (rapidly with your pen up) to location X=100, Y=150(2) G01 X100 Y150 = Go (slowly with your pen down) to location X=100, Y=150(3) G02 X100 Y150 = Go clockwise (with your pen down) to l...

    see more »

    "How can I learn the CNC programming for a cd drive turned 2d plotter .......I can't understand the codes in arduino and processing. Could you please help me."--------------------------------------"How can I learn the CNC programming"--------------------------------------The following link may be helpful:https://makezine.com/2016/10/24/get-to-know-your-cnc-how-to-read-g-code/There are many codes ... fortunately you only need to know a few.Codes that refer to positioning start with the letter 'G' ... they tell the machine where to go and how to get there.Examples:(1) G00 X100 Y150 = Go (rapidly with your pen up) to location X=100, Y=150(2) G01 X100 Y150 = Go (slowly with your pen down) to location X=100, Y=150(3) G02 X100 Y150 = Go clockwise (with your pen down) to location X=100, Y=150(4) G03 X100 Y100 = Go CCW (with your pen down) to location X=100, Y=150Codes that start with the letter 'M' are general machine instructions.Examples:(1) M0 = Stop(2) M2 = Program End(3) M3 = Spindle On (Clockwise)(4) M4 = Spindle On (Counterclockwise)-----------------------------------------------------------------------With regards to "I can't understand the codes in arduino and processing"-----------------------------------------------------------------------Arduino, and Processing, programs both use the C, C++ language.If you have never written an arduino program then I recommend purchasing a copy of "Programming Arduino: Getting Started with Sketches", Second Edition, 2016by Simon Monk.The C & C++ languages do not use Gcode, but it is possible to a write program in C/C++, such as interpreter, that intercepts Gcode sent to it and makes your plotter perform the requested action.Such a program is GRBL ... see my instructable https://www.instructables.com/id/How-to-Control-a-Servo-Using-GRBL/ which includes instructions on how to create Gcode from a drawing.

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

    Assuming that you have constructed my "COREXY CNC PLOTTER" described in https://www.instructables.com/id/CoreXY-CNC-Plotter/:(1)Check that your wiring matches that in the photo "GRBL Servo Wiring" in the Intro section of https://www.instructables.com/id/How-to-Control-a-Servo-Using-GRBL/.(2)Delete your C:\Documents\Arduino\libraries\grbl1.1f_servo library.(3)Now reinstall your C:\Documents\Arduino\libraries\grbl1.1f_servo library.(4)It is important that you use a text editor, such as Notepad++, to uncomment line 189 in the file “spindle_control.c” in your C:\Documents\Arduino\libraries\grbl1.1f_servo folder. Do NOT use a word processor.Providing you follow each step in "Step 3: Modifying GRBL" your plotter should work.

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

    One way to disconnect your computer would be to use the SD card slot on your PC and add bluetooth as described in my instructable https://www.instructables.com/id/Add-Bluetooth-to-...But if you want a completely self contained plotter you will need to add an SD card reader module to the plotter and write the necessary code. An LCD display would also be helpful.A self contained plotter is plausible but if I were to go down this track I would modify my https://www.instructables.com/id/CoreXY-CNC-Plotte... plotter as - that plotter is significantly more accurate [1] - plus the paper is easier to load and unload - and the design is scalable[1] See my comment to DejayRezme in the comment section for https://www.instructables.com/id/CNC-Drawing-Arm/ which is also an angle-distance plotter.

    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 comment :)FYI a "scaling" issue in some of the earlier versions of Inkscape has been resolved in the latest release.

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

    The error message indicates that you may have accidentally added/deleted something while in edit mode. Providing you only delete the "//" comment in line 189 , as shown in slide 3, Step 3, everything should compile.Try this:(1) Delete and reinstall a fresh copy of spindle_control.c. (2) Does it compile ? (3) If so, edit line 189 as shown in Step 3, slide 3(4) If not, the problem is elsewhere ... check that you have GRBLversion 1.1fAll going well it should compile....

    View Instructable »
  • lingib commented on lingib's instructable Multiplexed Echo Locator6 months ago
    Multiplexed Echo Locator

    Thank you for your comment. Glad you like the idea :)

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

    My first approach would be to replace the USB cable with a two way wireless link. The following tutorials:https://www.instructables.com/id/Arduino-wireless-... https://www.instructables.com/id/Interfacing-OLED-...may be helpful.

    View Instructable »
  • lingib commented on lingib's instructable CNC Drawing Arm7 months 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 Plotter7 months 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 Sender7 months 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 Locator8 months ago
    Dual Sensor Echo Locator

    You are welcome ... thanks for commenting :)

    View Instructable »
  • lingib's instructable Multiplexed Echo Locator's weekly stats: 8 months 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 Locator8 months 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 Working8 months 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 Topic »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator8 months 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: 8 months ago
    • Dual Sensor Echo Locator
      1,799 views
      43 favorites
      8 comments
  • lingib commented on lingib's forum topic Launch Stats Not Working8 months ago

    Thanks Yonatan24 ...

    Thanks Troy :)

    View Topic »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator8 months 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 Locator8 months ago
    Dual Sensor Echo Locator

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

    View Instructable »
  • lingib commented on lingib's instructable Dual Sensor Echo Locator8 months 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 »
  • More Activities