The concept started as spindle modules. I wanted a single controller to be able to support any any spindle that FluidNC supported and to be able to future proof it for any new spindles that were added to the firmware. The idea quickly grew to cover all types of inputs, outputs, displays, pendants etc.
The ESP32 microcontroller is very well suited to this idea because most periferals like, UARTs, PWMs, I2C, etc can be router to most pins.
These modules support a great variety of CNC devices. Several controllers already support them.
Here is the basic schematic. It has up to 4 unique I/O pins (1,2,3,4), optionally 4 shared I/O pins (5,6,7,8), Gnd, 5V and VMot. VMot is determined by the user, but is generally breater than 9V and less than 48V.
Most controllers are going to be I/O limited. They may have some GPIO, some input only and some output only pins. Some of the GPIO may be able to do PWM, I2C, etc. In order to make it easiest for controller designers to use the most possible modules, we have some guidelines on how to align the pins with the features of the module.
VMot is whatever VMot is on the base controller. If you need a special voltage, like 3.3V, you will need to generate that on the board. You should pull no more than about 1 amp from either the 5V or VMot. If you need more current, you should bring that in on an edge connector.
If VMot has a range limitation, you should label that on your module or documentation.
Here are the dimensions. The mounting hole is not connected to ground on the controller side. The side opposite the 12 pin connector is assumed to be the board edge side and should have most of the external connections.
In general you can use both sides of the board. The space between boards is about 9mm.
Try to put the module sockets on a 1.30" pitch. This could allow for dual wide modules in the future.
Simple 2 wire mechanical switches connect to the signal and ground pins as shown below. It does not matter which wire goes to either terminal. This will work for normally open and normally closed switches. You simply need to change the active state attribute if the switch is reporting as active when it is not (:high or :low).
3 wire switches are common with DIY 3D printers. They are low cost and easy to wire. The 3 wires are +, gnd, and signal. The + and ground allow the switch to have an LED to indicate the state. Many are wired with a red (+), black (gnd), white (signal) color scheme. This is how they are hooked up.
Proximity switches must be 3 wire 5V NPN type switches. Most are NPN types, but most are higher voltage with a range of 6V-30V. This module can only provide 5V. Most use the standard Blue (0V), Brown (+) and Black (Signal) wire colors. See the image for the wiring. (Twidec p/n LJ8A3-2-Z/BX-5V)
If you need a higher voltage, you need to supply that yourself. Just wire the positive side of that power supply to the sensor and connect the negative side to the input module ground terminal (center pin) along with the sensor's ground pin.
This is primarily for use with VFD spindles.
This is an electrically isolated RS485 module for use with VFD spindles.
Many VFDs and other spindle speed controllers can be controlled via a 0-10v. There is a potentiometer that can adjust the output voltage so it can be used with 0-5V devices as well.
In socket #3
10V:
output_pin: gpio.26
forward_pin: gpio.4
reverse_pin: gpio.16
spinup_ms: 0
spindown_ms: 0
tool_num: 0
speed_map: 0=0% 6000=0% 24000=100%
In socket #4
10V:
output_pin: gpio.14
forward_pin: gpio.13
reverse_pin: gpio.15
spinup_ms: 0
spindown_ms: 0
tool_num: 0
speed_map: 0=0% 6000=0% 24000=100%
This has 4 RC servo connector. You can also use this with BESC (Brushless Electronic Speed Controller) controllers. There is a switch to select the servo power voltage from 5v to a user supplied voltage.
This protects the CNC controller from voltage spikes that come from a pendant or display that is connected by a long cord.
This module was designed to simplify the wiring for the FluidDial Penadant using RJ12 (6 wire) cables. It also protects your controller a little by adding current limiting resistors to the UART signals and a PTC fuse to the power terminal. The PTC fuse is limited to 30V and limits the current to 200mA. You can use this with other pendants and displays as long as they operate withing the range listed above.
This is a perfboard PCB to help with prototyping your own circuits.