Diagram for capacitive sensor with optocoupler module

by Didakis May 11, 2018
Download All Files

Please Login to Comment

Thank you for your answer! It's clear now.
I have posted another question but now is under moderation???
Resuming it - If sensor is NO the output of optoisolator will be also NO and the mechanical switch should be connected as NO to match the logic of imput on Arduino?

Yes, it is under moderation because it seems that thingiverse detects a repeated entry, so it is interpreted the same as spam.

Resuming it . Yes, that's the idea.

Thank you Didakis!

I am sorry, it was a real repeated entry. Actually I wanted to edit first post, received a flag after releasing and doubled it hoping to delete one later.
P.S. I have some results in my tests - sensor is working as intended but not the switch? Could be even damage due to soldering:) .I have to check...

Hi Didakis,
One additional question (from a novice):
Some diagrams of octocoupler boards are shown with +5V on the output side connected , some without.
What is the outcome?
a. better powered.
b. better not powered.
c. power changes something in the logic of assembly.
d.no difference

The function of an optocoupler module is, as you know, the electrical isolation between two different circuits.
The need to have voltage in the output, is basically, to power the photoreceptor diode and obtain a clean logical signal.

Comments deleted.

Hi Didakis ,

Thanks for posting this. I'm very interested as i have already built it and I am in setting/testing phase.

I didn't understand the meaning of your posting:
"It really was not necessary to make those changes in the firmware.
If you need the signal to be reversed, switch to the input module, GND and 12V and you will get the reverse signal at the output.
That way, you will not have to modify your original endstop."
Maybe you can explain it for a lower level.

I built my leveling around a PNP NO inductive sensor (slightly different connection to OC board). I get flipping of 5V at the output of octocoupler but the only switch working is the mechanical switch (as it worked before). I had only a few minutes to test it last weekend, I'll do more today later.
My question is what and how should I change.
In your diagram the mechanical switch seem to be connected as NC (outer terminals). Is it real? I would like to keep it so if possible because of failsafe feature for wire breakage.

It would be great if you would expand this into a paralel tutorial for different types of sensors PNP/NPN/NO/NC / power voltages in what concerns differences in connection of components, mechanical endstop link in order not to impair working logic of sensor, changes in Marlin /other software.
You cannot find anywhere a solid presentation and a lot of info found here and there are conflicting or partial.

Thank you, ND.

Thanks, nice work. I will try to do this. What kind of resistors is it on R1 and R2?

I upload photos with details of the circuit.

R1 = 1K Ohm.
R2 = 10K Ohm.

Thanks, i will builder one this weekend.

If you publish the diagram, with a Gerber or Eagle file, I would be happy to link your publication.

First - thanks for that, but...did I missed something?
The diagram is missing for me. I only see a picture.

Where can I find details for the resistors for example?
Also, it would be nice to know how the LED or the resistors are connected.
With the picture I could only assuming the connections - not really the best way to build it.

And yes - I think I can understand it, not rly a difficult circuit. But maybe other guys would be thankful too to know it :)

I upload photos with details of the circuit.

Gracias por compartir tu circuito. Podrías proporcionar el diagrama electrónico ya que tengo una duda en cuanto a como conectar el endstop porque el mío solo tiene dos cables y en tu foto tiene tres. También quisiera saber como te ha funcionado el sensor desde que lo instalaste porque he leído en algunos foros que el sensor capacitivo tiende a fallar y no es muy confiable para hacer autolevel y es mejor usar un sensor inductivo pero yo uso cristal sobre mi cama caliente.

Hola iradsega:
El sensor lleva funcionando en mis impresoras desde diciembre de 2017. Yo también uso cristal sobre mi cama caliente, de 3mm. De la misma manera, están en un cerramiento de Ikea Lack que diseñé. Sin problemas. Está extendido su uso a muchos de mis compañeros del grupo facebook que modero. También sin problemas.
Los problemas asociados a este tipo de sensores, están más ligados a la errónea idea que funciona adecuadamente a 5v, es decir, conectado directamente a la placa. Es un sensor de 6V a 36V, no de 5V.
El diagrama electrónico, es el típico de un circuito optoacoplado, donde en la parte de 5V, es una tensión necesaria, para alimentar el fotoreceptor, por lo que puedes sacar la alimentación de 5V, de cualquier punto de tu placa en la que esté presente.
Si me indicas que board haces servir, te puedo indicar desde que puntos puedes obtener esta tensión.
Espero, que esto te ayude.

Gracias por su respuesta. Yo estoy usando una creality cr-10s y quiero añadirle un autolevel con este tipo de sensor, por cierto que optoacoplador usas?. También tengo duda respecto al proceso de configuración y calibración del sensor, tendrá alguna información sobre esto que me pueda ayudar a guiarme?

Hola de nuevo:
A los usuarios de CR-10S, yo aconsejaría la utilización de una pequeña fuente de alimentación externa, del tipo "pared", uno de 12V es efectivo. Puedes usar este voltaje, para alimentar tanto la tensión del circuito de entrada, como el de salida, con lo que no tienes que operar en la caja externa. En cuanto al módulo optoacoplador, hay un enlace en la descripción, es un ejemplo, con que sea, de un canal y de 12v, es ideal.

lo felicito señor su electrónica funciona y es fácil de instalar gracias por dar solución al problema de electronica

Gracias por su confianza en este humilde proyecto.

Thanks for your great work on this prodject. I klove the feature of having the Z-min endstop activated as a fail safe. But for some reason I can't invert the signal from my z-min switch. I have tried the method MsG did and changing the cables. It just wont invert. god any Ideas?

Everything works wonderfull exept from this :)

The only thing that occurs to me is that you do not have a 5V presence at the output of the module. It must be connected to 5V so that you have a viable signal.

Tell me more, I would like to know if you solved it.

I sold my CR-10S, But I'm setting up this on my CR-X at the moment. I like the way that you manage to have the extra securety for the bed, So will se if the same problem will acure on this printer.

I installed this today. However I had to invert certain logic in the firmware, being:



Can I still use the original endstop as a fallback then?

Hi MsG
It really was not necessary to make those changes in the firmware.
If you need the signal to be reversed, switch at the module input, GND and 12V and you will get the reverse signal at the output.

That way, you will not have to modify your original endstop.

If I'm going to use this board on an ender-3 will it handle the 24V or do I need a stepdown unit to lover the voltage to 12V?
Instead of using a stepdown unit could i just change the resistors to a larger one?

Hi Sciuruz!!

There are several ways to achieve your goal. The simplest is to use a small 12V DC wall outlet power supply, or use a 24V relay module, but it is noisier, and induces a bit of delay.

That was a great idea, didden't think about that. I have a couple of smal 230V to 12V power supplyes laying around, thanks you :) . How many Amp should the power supply deliver for this thing?

(my original comment deleted) ... Correction, with an OC ... sorry, the GNDs will not be connected. My bad.

Hola como esta? Tengo una pregunta para usted a ver si me puede ayudar. Yo acabo de comprar un kit para Ender 3 (EZABL) y me vino defectuoso. El resistor no estaba bien soldado y pude lograr hacerlo funcionar un par de veces si lo movia pero ya no lo hace mas, creo que el resistor ya esta muerto. Se parece mucho al que usted usa que esta al lado del LED rojo. Me podria decir cuales son las especificaciones del resistor y tal vez, si ve mi foto, decirme si es el mismo? Gracias

Hola rrgerman:
Extraña petición. ¿Por que no te pones en contacto con el fabricante TH3D? Bien seguro, que tu dispositivo está en garantía.
Anyway. En mi caso, es una resistencia de 1K Ohm, la tuya, no se puede apreciar los colores con claridad.

Si, en eso ando. Solo queria saber para ver si lo arreglaba mientras tanto (sin tener que esperar por reemplazo de partes o enviarles la defectuosa) Pero si, en eso estoy.. contactandolos. Gracias por responder!

Hola de nuevo rrgerman:
Con la mano en el corazón, no es que no quiera ayudarte, me encantaría, pero no se distinguen los colores.
Dándole vueltas, no tiene sentido, que una resistencia se corte, sin más. El problema, podría ser otro.
Yo repasaría todas las soldaduras, (refundir el estaño).
De todas maneras, si necesitas hacer más pruebas, puedes encontrarme en el canal https://www.facebook.com/groups/Anet3Dprinters/, como Didac, soy uno de los moderadores.

Have a look at the ZedThing I made for my Ender-3.. Works on I3's and clones, creality etc..


Hola! No se si prefiera Ingles o Espanol. Ante todo muchas gracias por compartir su proyecto.
Podria decirme si tiene un video de los optocouplers trabajando en sus maquinas? u algunas fotos de las instalaciones?
Seria una ayuda genial! Yo ya tengo mis opto... solo me falta instalar y ver que tengo que cambiar en el firmware y offsets, etc.

Espero su respuesta.
Un saludo,


Hola Mario:

Te adjunto unas fotos, a ver si te esto te ayuda.

Si necesitas más información, aclaración o apoyo para instalarlo, mándame un mensaje privado, y te facilitaré los datos, para que puedas contactarme a través de Facebook/Messenger, y ayudarte on-line en la instalación del hardware y configuración necesaria de Marlin.

Un saludo Didac.

What is normal state of this EndStop?

With this configuration it is normally open, (NO).

Hi, can I use this wiring? Are "ground" and "+12V" from PSU and mainboard the same?

The GND is the same. But I connect it to the board to avoid unnecessary wiring.

I have installed and that's work. Thanks!

I'm very happy for you. Thanks mate, for the trust.

This is a joke ! Not as bad as the relay but a joke nonetheless ! You obviously have never learned electronic. Can be done with a few resistors, diodes and safely ! Of course when you don't know about electronic :)
Anyway, as the only smart way is to use the nozzle touching the bed to achieve both purposes (Z 0 and bed compensation), no point developing further.
To achieve this, one can use piezo, strain gauges even simple contacts. Many solution available.

Fantástico circuito. Voy a probarlo porque todo lo que he probado hasta ahora no me ha funcionado. Una pregunta, no entiendo la parte del final de carrera. Hay que conectarlo también? No lo comprendo

Tal y como describe en el circuito, es recomendable, colocar el endstop de Z, pero no necesario. Pero yo en mis impresoras, lo tengo conectado. Te preguntarás por qué. La respuesta es, como sistema de backup o salvaguarda.

Durante el ajuste del sensor, o en algunas circunstancias, por ejemplo, intentar calibrar en frío, restos gruesos de laca, suciedad cumulada, etc, el sensor, puede no responder adecuadamente.

El resultado sería que el eje Z bajaría sin ningún control, partiendo el cristal, el nozzle, o algún componente del eje X.
Para evitar esto, coloco el endstop de Z, unos milímetros más abajo a menos de un milímetro, para que en caso de falla del sensor, pare la bajada del eje Z.

On English now:
As described in the circuit, it is recommendable to place the endstop of Z, but not necessary.. But I in my printers, I have it connected. You wonder why. The answer is, as a backup system or safeguard.

During the adjustment process of the sensor or in some circumstances, for example, trying to calibrate cold, coarse residues of any adhesion system, accumulated dirt, etc., the sensor maybe does not respond.

The result would be that the Z axis would go down without any control, breaking the glass, nozzle or some component of the X axis.
To avoid this, I put the Z endstop, a few millimeters belowless than 1 mm, so that in case of failure of the sensor, stop the descent of the Z axis.

Interesante el auto acoplador, usted tiene algunas fotos de la instalación,

Un saludo

Hola waterplanet.
Si me comentas que partes te interesan ver, puedo hacer un juego de fotos y subirlas. Es que ahora mismo, en ambas impresoras, están todos los cables recogidos y embridados y el módulo opto-acoplador colocado en su caja cerrada.

tengo una duda acerca del switch de backup. como lo pones unos milimetros mas abajo y que no se active antes (o a la vez) que el sensor ? Entiendo que si esta mas abajo y el sensor falla pegara antes el nozzle en la base que el carro en el switch......

Quiza con la flexion de la maquina al hacer tope se llegue a activar pero te va a preparar un buen estropicio no obstante.


Atendiendo a tu duda, he rectificado la explicación para que quede más claro.

Gracias por tu aporte.!

En mis impresoras, tengo instalado switches makerbots, que tienen una palanca más corta. Las de stock, acostumbran a ser más largas.

Cuando baja el sensor, también baja la palanca, y las tengo ajustadas para que cuando toca el cristal se active.

Si bien es cierto que llega a tocar el nozzle, al menos, no lo hace sin control.

Un saludo!!

Genial explicación, seguire tu consejo en cuanto reciba el sensor.


Comments deleted.

I really love the idea of a simple yet effective and also save to use autolevel... you said it work on glass, so it should work on mirrors just fine too right? :)

Yes, no doubt. Work with mirrors, because, detect first the glass on mirror, not the metal composite on background. However, i did the test for you.