I’m looking to install some proximity sensors on my Woodworker and came across the possibility of needing to supply additional power to these sensors.
What’s the cleanest and simplest way to do this? I hoped it would go directly into the breakout board and take power from there but it seems there’s a good chance it will need more than 3 volts.
I haven’t bought them yet in case I need to go down another path, but these are what I’m planning to get.
the Onefinity CNC controller has a power supply with 36 V DC inside. It goes to the AVR mainboard (Schematics, Pcb layout) from where the other voltages are converted.
Okay so I can just tap into this directly? That’s exactly what I was hoping but I didn’t think I could.
I added proximity sensors to the X and Y axis on my machine a couple months back. I used an external 12 VDC power supply I had laying around to power the sensors. I used opto-isolators to interface the sensor 12V logic with the controller 3V logic. Attached is a schematic I created to document my wiring that may be of help. It shows three sensors, but I only ended up using two. I didn’t want one for the Z-axis, but planned to have sensors on both Y-axis rails, to allow auto-squaring. It wasn’t until I had everything installed and wired that I discovered the Buildbotics controller does not support a sensor on the slave Y-axis, only the main Y-axis. Regardless, the accuracy/repeatability I am seeing when zeroing is great and I think worth the effort/expense. I included links to the sensors and isolators I used in case they might be of any help to you. Happy to answer any questions I can. Good luck!
12 VDC Power Supply
Damn, looks a bit more complicated than I thought. What do the opto-isolators do? Is it possible to tie the switches directly into the Buildbotics power supply instead? I just pulled the trigger on the switches, but now I wonder if I need to buy more stuff and invest a bunch of time into making a tidy enclosure.
I believe the max power supply output from the Onefinity Buildbotics controller is 3.3V, which is not enough to power the proximity sensors you referenced. They had an operating voltage range of 6V to 36V.
The opto-isolators act similarly to a relay, allowing the higher voltage output from the proximity sensor (0 to 12V in my application) to control the lower voltage input (0 to 3.3V) to the OneFinity controller. I am using Normally Closed (NC) proximity sensors to control the input to the opto-isolators. Their output is on (12V) when they are not detecting their target (i.e. Not-Homed), and off (0V) when they do (i.e. Homed). Using NC sensors acts as a bit of a fail-safe, in that loss of voltage or output from a proximity sensor will create a motor-min condition. The below describes how they respond in this application.
Not-Homed - Proximity Sensor NOT Detecting Target:
- Proximity sensor output is ON, applying 12V to the input of the opto-isolator
- Opto-isolator turns on, closing its output, and pulling the corresponding “Motor Min” input from the Onefinity Controller to 0V
- Controller has been configured to recognize this 0v condition as not at Motor Minimum
Homed - Proximity Sensor Detecting Target:
- Proximity sensor output is OFF, applying approximately 0V (actual 0.6V) to the input of the opto-isolator
- Opto-isolator turns off, opening its output, and allowing the corresponding “Motor Min” input from the Onefinity Controller to float high to 3.3V
- Controller has been configured to recognize this 3.3v condition as at Motor Minimum
One added advantage to using opto-isolators is that they provide electrical isolation between the proximity sensors/field wiring and the controller, and would help to prevent any over-voltage conditions from being impressed on the controller. Much cheaper/easier to replace an opto-isolator than the controller.
I’m using LJ12A3-4-Z/AX proxes on my X50 Journeyman. I have them connected to pins 6 (3.3v) and 7 (gnd) on the beakout board. I know they are labeled 6-36 vdc but when i tested them with my bench power supply I was able to get them to function as low as 3.3v. I’ve been using them all year without issue.
that is why I gave you the link to the Schematics of the Onefinity Controller (PDF). There you see that 0 V of the power supply is tied to ground of the AVR board. So if your circuit can share the common ground, you could use the 36 V directly. You can also see in the diagram that the AVR microcontroller exposes many of its pins directly on the 25-pin I/O port.
Image 1: Here you can see that with a NPN sensor (in sinking configuration), sensor and input share the DC V+.
Image 2: Here you can see that with PNP sensor (in sourcing configuration) ,sensor and input share the ground.
I see that you already get an answer from other users (thanks!), so explaining the use of an opto-coupler is not necessary for me.
I have not much time. But I want to mention that I have a project here that is a better, wired breakout box with connectors for inductive proximity sensors that I plan to use, but as long as I am that ill, I can’t work in my electronics lab so project is on hold.
Here if you want to read something:
I am not sure if I can follow your explanations.
What I plan is to have a setup where I get an error immediately should the proximity switch not be connected. For this, I have to set
- MOTOR №* →
- Homing → ‘homing-mode’ to “switch-min”
- Limits → ‘min-switch’ to “normally closed”.
This means should the sensor not be there, I get an error immediately. If it was set to “normally open” and the sensor would not be there, it would continue to try to find it by moving the stepper which is rather undesirable.
Also to consider is that usually in most opto-coupler circuits, the opto-coupler has a state-inverting effect, which means “low” gets to “high” and vice-versa, which for me meant to have a “normally closed” setting in the controller, I have to buy the “normally open” proximity sensor variant.
I will use ⌀ 8 mm Omron E2B Cylindrical Inductive Proximity Sensor (Datasheet) and the ubiquitous PC817 as opto-coupler.
Ah, okay, after a while I understand.
With “Motor №* Min” you refer to how they are called on the “Indicators” Tab on the tabbed section on the CONTROL page.
I refered to how the settings are called on the respective “MOTORS” page.
On the documentation of the 25-pin I/O port, they are called “Motor №* Min” too.