Z Probe pin 15


Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
  • #18853

    My CNC machine uses a Arduino Mega with GRBL version 1.1 and the HobbyCNC Pro 4 axis board. I hooked up a probe on pin 15 and when grounded (Ground between the probe pad and the CNC bit) pin 15 goes to 0 and the mega detects it. When idle the voltage on pin 15 is very close to 5V, this is pulled up with the on board resistor of the board. This is how it should work and how it has worked twice but here is the problem.

    The ADC convertor on the Mega has been damaged twice using this setup and does not read any level over 2V anymore, this was tested without the HobbyCNC board with the same result, basically the ADC on the Mega is no longer working and the Z probe also not working. The first time this happened I replaced the Mega and it worked again but failed a month or so later, same identical problem. By the way all axis as well as the limit detection on pin 10,11,12 work well.

    Any idea what could be causing this to mess up my Mega? From what I read with the Mega only a high voltage could cause the ADC to blow up.


    Dear Jacques,
    Microprocessor I/O pins are quite delicate. They are not designed to string long wires from them into the ‘real world’, especially if there is ANY chance of ANY voltage getting applied to that wire. I always use opto-isolation on any/all inputs and driver chips (like a ULN-200X) on all output pins.

    “The Arduino input impedance of an ADC (analog-to-digital converter) pin is specified as 100 megohms.” (source). This is ripe for any noise on that line to damage the input, quickly and easily.

    Not sure why you’re using ADC for a probe. Typically this is just a switch input, like any limit switch.

    I would not exceed a few inches on any wire connected directly to a microprocessor input, and if I went longer, I’d be double-damn sure they’re not running near anything that could pump electromagnetic noise into the wire (like, say, the wiring that carries the current to the stepper motors.

    You need to put some isolation/buffer/driver between all I/O pins and the real world.

    From: https://http://www.rugged-circuits.com/10-ways-to-destroy-an-arduino
    Method #3: Apply Overvoltage to I/O Pins

    Apply a voltage exceeding 5.5V to any I/O pin. The I/O pin is destroyed.

    This method of destruction forward-biases the ESD protection diode built-in to the microcontroller. Here is a model of each microcontroller I/O pin from the Atmel ATmega328P datasheet:

    Once the voltage at the I/O pin is greater than the supply voltage (5V) by about 0.5V, the top diode starts to conduct current. This is OK for diverting a short-duration overvoltage event, like ESD (electro-static discharge), but that diode is not meant to be on all the time. It will simply burn out and stop protecting the pin.



Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.